aboutsummaryrefslogtreecommitdiff
path: root/javascript
diff options
context:
space:
mode:
authoralexwl <alexey.a.kiryushin@gmail.com>2018-10-02 13:17:04 +0300
committeralexwl <alexey.a.kiryushin@gmail.com>2018-10-02 13:17:04 +0300
commitcf2c56c7061b7ed40fdd3b40a352ddb9c9b7371f (patch)
treeb1de9ada0f1b1cb064e3a9e0d4042d1f519085bd /javascript
Initial commit
Diffstat (limited to 'javascript')
-rw-r--r--javascript/.ember-cli9
-rw-r--r--javascript/.eslintrc.js15
-rw-r--r--javascript/.gitignore15
-rw-r--r--javascript/.watchmanconfig3
-rw-r--r--javascript/README.md26
-rw-r--r--javascript/app/app.js15
-rw-r--r--javascript/app/components/.gitkeep0
-rw-r--r--javascript/app/components/bottom-panel.js52
-rw-r--r--javascript/app/components/expression-info.js3
-rw-r--r--javascript/app/components/file-tree.js94
-rw-r--r--javascript/app/components/haskell-module.js492
-rw-r--r--javascript/app/components/identifier-info.js62
-rw-r--r--javascript/app/components/identifier-name.js60
-rw-r--r--javascript/app/components/infinite-list.js50
-rw-r--r--javascript/app/components/info-window.js144
-rw-r--r--javascript/app/components/input-with-autocomplete.js131
-rw-r--r--javascript/app/components/instance-info.js21
-rw-r--r--javascript/app/components/paginated-list.js48
-rw-r--r--javascript/app/components/resizable-panel.js72
-rw-r--r--javascript/app/components/text-file.js67
-rw-r--r--javascript/app/components/type-component.js29
-rw-r--r--javascript/app/components/type-signature-text.js4
-rw-r--r--javascript/app/components/type-signature.js23
-rw-r--r--javascript/app/controllers/application.js21
-rw-r--r--javascript/app/controllers/package.js24
-rw-r--r--javascript/app/controllers/package/index.js14
-rw-r--r--javascript/app/controllers/package/search.js15
-rw-r--r--javascript/app/controllers/package/show/file.js9
-rw-r--r--javascript/app/controllers/packages.js12
-rw-r--r--javascript/app/helpers/.gitkeep0
-rw-r--r--javascript/app/index.html22
-rw-r--r--javascript/app/router.js20
-rw-r--r--javascript/app/routes/application.js3
-rw-r--r--javascript/app/routes/package.js38
-rw-r--r--javascript/app/routes/package/index.js7
-rw-r--r--javascript/app/routes/package/search.js36
-rw-r--r--javascript/app/routes/package/show/file.js27
-rw-r--r--javascript/app/routes/package/show/index.js7
-rw-r--r--javascript/app/routes/packages.js16
-rw-r--r--javascript/app/services/settings.js21
-rw-r--r--javascript/app/services/store.js141
-rw-r--r--javascript/app/styles/app.scss555
-rw-r--r--javascript/app/templates/application.hbs26
-rw-r--r--javascript/app/templates/bad-url.hbs6
-rw-r--r--javascript/app/templates/components/.gitkeep0
-rw-r--r--javascript/app/templates/components/bottom-panel.hbs9
-rw-r--r--javascript/app/templates/components/expression-info.hbs8
-rw-r--r--javascript/app/templates/components/file-tree.hbs8
-rw-r--r--javascript/app/templates/components/haskell-module.hbs57
-rw-r--r--javascript/app/templates/components/identifier-info.hbs39
-rw-r--r--javascript/app/templates/components/identifier-name.hbs12
-rw-r--r--javascript/app/templates/components/infinite-list.hbs3
-rw-r--r--javascript/app/templates/components/info-window.hbs12
-rw-r--r--javascript/app/templates/components/input-with-autocomplete.hbs19
-rw-r--r--javascript/app/templates/components/instance-info.hbs10
-rw-r--r--javascript/app/templates/components/paginated-list.hbs17
-rw-r--r--javascript/app/templates/components/resizable-panel.hbs5
-rw-r--r--javascript/app/templates/components/text-file.hbs3
-rw-r--r--javascript/app/templates/components/type-component.hbs3
-rw-r--r--javascript/app/templates/components/type-signature-text.hbs2
-rw-r--r--javascript/app/templates/components/type-signature.hbs10
-rw-r--r--javascript/app/templates/package.hbs57
-rw-r--r--javascript/app/templates/package/index.hbs12
-rw-r--r--javascript/app/templates/package/search.hbs21
-rw-r--r--javascript/app/templates/package/show.hbs1
-rw-r--r--javascript/app/templates/package/show/file.hbs16
-rw-r--r--javascript/app/templates/packages.hbs26
-rw-r--r--javascript/app/utils/api-urls.js29
-rw-r--r--javascript/app/utils/color-themes.js188
-rw-r--r--javascript/app/utils/go-to-definition.js95
-rw-r--r--javascript/app/utils/line-selection.js111
-rw-r--r--javascript/bower.json6
-rw-r--r--javascript/config/environment.js64
-rw-r--r--javascript/config/targets.js9
-rw-r--r--javascript/ember-cli-build.js21
-rw-r--r--javascript/package.json53
-rw-r--r--javascript/public/assets/32px.pngbin0 -> 1562 bytes
-rw-r--r--javascript/public/assets/40px.pngbin0 -> 5717 bytes
-rw-r--r--javascript/public/assets/favicon.icobin0 -> 1270 bytes
-rw-r--r--javascript/public/assets/haskell.icobin0 -> 1270 bytes
-rw-r--r--javascript/public/assets/throbber.gifbin0 -> 1720 bytes
-rw-r--r--javascript/public/robots.txt3
-rw-r--r--javascript/release/assets/32px-eebaf260766f5e0e773f53d3ea4f3e4d.pngbin0 -> 1562 bytes
-rw-r--r--javascript/release/assets/40px-51286e68b083696edaf4f9fc577e2a2d.pngbin0 -> 5717 bytes
-rw-r--r--javascript/release/assets/favicon.icobin0 -> 1270 bytes
-rw-r--r--javascript/release/assets/haskell-code-explorer-132e5ea09a5eb8889a4b7fe11ee25e98.js204
-rw-r--r--javascript/release/assets/haskell-code-explorer-7473ab64643f48019c68ec4624ce37cb.css6
-rw-r--r--javascript/release/assets/haskell.icobin0 -> 1270 bytes
-rw-r--r--javascript/release/assets/throbber-62be6ed2b189444b472b8000dc187240.gifbin0 -> 1720 bytes
-rw-r--r--javascript/release/assets/vendor-1da6cdb46c95e61ce73ee429881d2b12.js5057
-rw-r--r--javascript/release/assets/vendor-61c2b6995db771bb0e33f39a71767638.css3
-rw-r--r--javascript/release/index.html25
-rw-r--r--javascript/release/robots.txt3
-rw-r--r--javascript/server/.eslintrc.js5
-rw-r--r--javascript/server/index.js30
-rw-r--r--javascript/server/mocks/packages.js397
-rw-r--r--javascript/testem.js24
-rw-r--r--javascript/tests/.eslintrc.js5
-rw-r--r--javascript/tests/acceptance/haskell-module-test.js28
-rw-r--r--javascript/tests/acceptance/package-test.js23
-rw-r--r--javascript/tests/acceptance/packages-test.js16
-rw-r--r--javascript/tests/helpers/.gitkeep0
-rw-r--r--javascript/tests/index.html33
-rw-r--r--javascript/tests/integration/.gitkeep0
-rw-r--r--javascript/tests/integration/components/.gitkeep0
-rw-r--r--javascript/tests/test-helper.js8
-rw-r--r--javascript/vendor/.gitkeep0
-rw-r--r--javascript/vendor/jquery-ui-1.12.1.custom/AUTHORS.txt333
-rw-r--r--javascript/vendor/jquery-ui-1.12.1.custom/LICENSE.txt43
-rw-r--r--javascript/vendor/jquery-ui-1.12.1.custom/external/jquery/jquery.js11008
-rw-r--r--javascript/vendor/jquery-ui-1.12.1.custom/images/ui-icons_444444_256x240.pngbin0 -> 6992 bytes
-rw-r--r--javascript/vendor/jquery-ui-1.12.1.custom/images/ui-icons_555555_256x240.pngbin0 -> 6988 bytes
-rw-r--r--javascript/vendor/jquery-ui-1.12.1.custom/images/ui-icons_777620_256x240.pngbin0 -> 4549 bytes
-rw-r--r--javascript/vendor/jquery-ui-1.12.1.custom/images/ui-icons_777777_256x240.pngbin0 -> 6999 bytes
-rw-r--r--javascript/vendor/jquery-ui-1.12.1.custom/images/ui-icons_cc0000_256x240.pngbin0 -> 4549 bytes
-rw-r--r--javascript/vendor/jquery-ui-1.12.1.custom/images/ui-icons_ffffff_256x240.pngbin0 -> 6299 bytes
-rw-r--r--javascript/vendor/jquery-ui-1.12.1.custom/index.html325
-rw-r--r--javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.css596
-rw-r--r--javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.js3553
-rw-r--r--javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.min.css7
-rw-r--r--javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.min.js7
-rw-r--r--javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.structure.css170
-rw-r--r--javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.structure.min.css5
-rw-r--r--javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.theme.css443
-rw-r--r--javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.theme.min.css5
-rw-r--r--javascript/vendor/jquery-ui-1.12.1.custom/package.json74
126 files changed, 25820 insertions, 0 deletions
diff --git a/javascript/.ember-cli b/javascript/.ember-cli
new file mode 100644
index 0000000..59bb55f
--- /dev/null
+++ b/javascript/.ember-cli
@@ -0,0 +1,9 @@
+{
+ /**
+ Ember CLI sends analytics information by default. The data is completely
+ anonymous, but there are times when you might want to disable this behavior.
+
+ Setting `disableAnalytics` to true will prevent any data from being sent.
+ */
+ "disableAnalytics": true
+}
diff --git a/javascript/.eslintrc.js b/javascript/.eslintrc.js
new file mode 100644
index 0000000..56940e4
--- /dev/null
+++ b/javascript/.eslintrc.js
@@ -0,0 +1,15 @@
+module.exports = {
+ root: true,
+ parserOptions: {
+ ecmaVersion: 2017,
+ sourceType: 'module'
+ },
+ extends: 'eslint:recommended',
+ env: {
+ browser: true
+ },
+ rules: {
+ 'no-console':0,
+ "no-useless-escape": 0
+ }
+};
diff --git a/javascript/.gitignore b/javascript/.gitignore
new file mode 100644
index 0000000..20b90e3
--- /dev/null
+++ b/javascript/.gitignore
@@ -0,0 +1,15 @@
+# compiled output
+/dist
+/tmp
+
+# dependencies
+/node_modules
+/bower_components
+
+# misc
+/.sass-cache
+/connect.lock
+/coverage/*
+/libpeerconnection.log
+npm-debug.log
+testem.log
diff --git a/javascript/.watchmanconfig b/javascript/.watchmanconfig
new file mode 100644
index 0000000..e7834e3
--- /dev/null
+++ b/javascript/.watchmanconfig
@@ -0,0 +1,3 @@
+{
+ "ignore_dirs": ["tmp", "dist"]
+}
diff --git a/javascript/README.md b/javascript/README.md
new file mode 100644
index 0000000..d73ef9e
--- /dev/null
+++ b/javascript/README.md
@@ -0,0 +1,26 @@
+# haskell-code-explorer
+
+## Prerequisites
+* [Node.js](https://nodejs.org/) (with NPM)
+* [Ember CLI](https://ember-cli.com/)
+* [bower](https://bower.io/)
+
+## Installation
+* `cd haskell-code-explorer/javascript`
+* `npm install`
+* `bower install`
+
+## Running / Development
+* Start haskell-code-server on port 8080
+* `ember server --port=4200 --proxy=http://localhost:8080`
+* Visit your app at [http://localhost:4200](http://localhost:4200).
+
+To test the app with real-world data :
+* ember server --proxy=https://haskell-code-explorer.mfix.io/
+
+## Running Tests
+* `ember server --port=4200`
+* Open [http://localhost:4200/tests](http://localhost:4200/tests) in a browser
+
+## Building
+* `ember build --environment production`
diff --git a/javascript/app/app.js b/javascript/app/app.js
new file mode 100644
index 0000000..9b24136
--- /dev/null
+++ b/javascript/app/app.js
@@ -0,0 +1,15 @@
+import Ember from 'ember';
+import Resolver from 'ember-resolver';
+import loadInitializers from 'ember-load-initializers';
+import config from './config/environment';
+
+var App;
+
+App = Ember.Application.extend({
+ modulePrefix: config.modulePrefix,
+ Resolver: Resolver
+});
+
+loadInitializers(App, config.modulePrefix);
+
+export default App;
diff --git a/javascript/app/components/.gitkeep b/javascript/app/components/.gitkeep
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/javascript/app/components/.gitkeep
diff --git a/javascript/app/components/bottom-panel.js b/javascript/app/components/bottom-panel.js
new file mode 100644
index 0000000..5d8b5bc
--- /dev/null
+++ b/javascript/app/components/bottom-panel.js
@@ -0,0 +1,52 @@
+import Ember from 'ember';
+
+function show(component) {
+ const height = Math.floor(component.$containerElement.height() /2);
+ component.$().css({
+ "display":"block",
+ "top" : height+"px"
+ });
+ component.$topPanelElement.css({
+ "height":height+"px"
+ });
+}
+
+function hide(component) {
+ const height = Math.floor(component.$containerElement.height()/2);
+ component.$().css({
+ "display":"none",
+ "height":height+"px"
+ });
+ component.$topPanelElement.css({
+ "height":"100%"
+ });
+}
+
+export default Ember.Component.extend({
+ classNames:["bottom-panel"],
+ didInsertElement : function () {
+ this._super(...arguments);
+ this.$topPanelElement = Ember.$(this.get('topPanelElementId'));
+ this.$containerElement = Ember.$(this.get('containerElementId'));
+ Ember.run.next(this,() => {
+ Ember.$(this.element).resizable({
+ handles:"n",
+ maxHeight:700,
+ minHeight:200,
+ resize: (event,ui) => {
+ Ember.run.next(this,() => {
+ this.$topPanelElement.css({"height": this.$containerElement.height() - ui.size.height});
+ });
+ }
+ });
+ });
+ },
+ visibilityObserver : Ember.observer('visible',function () {
+ this.get('visible') ? show(this) : hide(this);
+ }),
+ actions : {
+ close () {
+ this.set('visible',false);
+ }
+ }
+});
diff --git a/javascript/app/components/expression-info.js b/javascript/app/components/expression-info.js
new file mode 100644
index 0000000..d403c49
--- /dev/null
+++ b/javascript/app/components/expression-info.js
@@ -0,0 +1,3 @@
+import Ember from 'ember';
+export default Ember.Component.extend({
+});
diff --git a/javascript/app/components/file-tree.js b/javascript/app/components/file-tree.js
new file mode 100644
index 0000000..c86a71d
--- /dev/null
+++ b/javascript/app/components/file-tree.js
@@ -0,0 +1,94 @@
+import Ember from 'ember';
+
+const directoryTreeToJsTree = function (packageId,directoryTree) {
+ return directoryTree.contents.map((node) => {
+ const jsTreeNode = {};
+ jsTreeNode.text = node.name;
+ jsTreeNode.data = node;
+ if(node.path) {
+ jsTreeNode.id = node.path;
+ jsTreeNode.a_attr = {href:"/package/" + packageId + "/show/" + node.path};
+ }
+ if(node.tag === "Dir") {
+ jsTreeNode.children = directoryTreeToJsTree(packageId,node);
+ jsTreeNode.state = {"opened" : containsHaskellModule(node)};
+ } else {
+ if(node.isHaskellModule) {
+ jsTreeNode.icon = "/assets/haskell.ico";
+ jsTreeNode.isHaskellModule = true;
+ } else {
+ jsTreeNode.icon = "jstree-file";
+ jsTreeNode.isHaskellModule = false;
+ }
+ }
+ return jsTreeNode;
+ });
+};
+
+const containsHaskellModule = function(node) {
+ return node.contents.some((n) => {
+ if(n.tag === "File") {
+ return n.isHaskellModule;
+ } else {
+ return containsHaskellModule(n);
+ }
+ });
+}
+
+export default Ember.Component.extend({
+ query: null,
+ didInsertElement : function () {
+ this._super(...arguments);
+ const element = this.element.getElementsByClassName('file-tree')[0];
+
+ const jstreeElement = Ember.$(element).jstree({
+ 'core' : {
+ 'data' : directoryTreeToJsTree(this.get('packageId'),this.get('directoryTree'))
+ },
+ "plugins" : [
+ "search"
+ ],
+ "search": {
+ "case_insensitive": true,
+ "show_only_matches" : true,
+ "show_only_matches_children": true
+ }
+ });
+
+ jstreeElement.on("select_node.jstree",(event,data) => {
+ const file = data.node.data;
+ if(file.tag != "Dir") {
+ this.sendAction('openFile',file.path);
+ }
+ });
+
+ const jstree = jstreeElement.jstree(true);
+
+ if(this.get('currentFile')) {
+ jstree.select_node(this.get('currentFile'));
+ const node = jstree.get_node(this.get('currentFile'),true)[0];
+ if(node) {
+ node.scrollIntoView();
+ }
+ }
+ this.jstree = jstree;
+ },
+ currentFileObserver : Ember.observer('currentFile',function() {
+ Ember.run.next(() => {
+ this.jstree.deselect_all();
+ this.jstree.select_node(this.get('currentFile'));
+ });
+ }),
+ queryObserver : Ember.observer('query',function() {
+ if(this.get('query')) {
+ this.jstree.search(this.get('query'));
+ } else {
+ this.jstree.clear_search();
+ }
+ }),
+ actions : {
+ hide() {
+ this.get('hide')();
+ }
+ }
+});
diff --git a/javascript/app/components/haskell-module.js b/javascript/app/components/haskell-module.js
new file mode 100644
index 0000000..8883a9c
--- /dev/null
+++ b/javascript/app/components/haskell-module.js
@@ -0,0 +1,492 @@
+import Ember from 'ember';
+import {goToDefinition} from '../utils/go-to-definition';
+import {initializeLineSelection} from '../utils/line-selection';
+
+function compareLocations (p1,p2) {
+ if(p1.line === p2.line) {
+ if(p1.column === p2.column) {
+ return 0;
+ } else if(p1.column > p2.column) {
+ return 1;
+ } else {
+ return -1;
+ }
+ } else if(p1.line > p2.line) {
+ return 1;
+ } else {
+ return -1;
+ }
+}
+
+function buildSrcSpan(sourceCodeLines,start,end) {
+ if(sourceCodeLines[start.line] && sourceCodeLines[end.line]) {
+ if(start.line === end.line) {
+ return sourceCodeLines[start.line].slice(start.column-1,end.column-1);
+ } else {
+ const firstLine = sourceCodeLines[start.line];
+ let middleLines = [];
+ for(let i = start.line + 1; i < end.line;i ++) {
+ middleLines.push(sourceCodeLines[i]);
+ }
+ const lastLine = sourceCodeLines[end.line];
+ const minOffset = Math.min(start.column,
+ (middleLines.concat([lastLine]))
+ .map((line) => line.search(/\S/))
+ .reduce((min,value) => Math.min(min,value)));
+ return firstLine.slice(start.column-1,firstLine.length) + "\n"
+ + middleLines.map((line) => line.slice(minOffset,line.length)).join("\n")
+ + (middleLines.length ? "\n" : "") + lastLine.slice(minOffset,end.column-1);
+ }
+ } else {
+ return null;
+ }
+}
+
+function modifyClass(element,on) {
+ if(on) {
+ element.classList.add('highlighted-identifier');
+ } else {
+ element.classList.remove('highlighted-identifier');
+ }
+}
+
+function highlightIdentifiers(parentElement,identifierElement,on) {
+ if(identifierElement.id) {
+ const identifiers = Array.prototype.slice.call(parentElement.querySelectorAll("span[id='"+identifierElement.id+"']"));
+ identifiers.forEach((identifier) => {
+ modifyClass(identifier,on);
+ });
+ } else {
+ modifyClass(identifierElement,on);//Literal
+ }
+}
+
+//divident is a string
+//divident may have any number of digits
+function modulo(divident, divisor) {
+ return Array.from(divident).map(c => parseInt(c))
+ .reduce((acc, value) => {
+ return (acc * 10 + value) % divisor;
+ },0);
+}
+
+function isDefinedInCurrentModule(moduleName,modulePath,identifierInfo) {
+ return (identifierInfo.sort === "External") &&
+ (identifierInfo.locationInfo.modulePath === modulePath
+ || identifierInfo.locationInfo.moduleName === moduleName)
+}
+
+function identifierStyle(identifierElement,
+ identifiers,
+ occurrences,
+ path,
+ colorTheme,
+ moduleName) {
+ const idOcc = occurrences[identifierElement.dataset.occurrence];
+
+ let color = colorTheme.defaultColor;
+ let fontWeight;
+
+ if(idOcc) {
+ if(idOcc.sort.tag === 'TypeId') {
+ color = colorTheme.typeColor;
+ } else if(idOcc.description === "HsLit" ||
+ idOcc.description === "HsOverLit"||
+ idOcc.description === "LitPat" ||
+ idOcc.description === "NPat" ||
+ idOcc.description === "NPlusKPat" ||
+ idOcc.description === "OverLit") {
+ color = colorTheme.literalColor;
+ } else {
+ const idInfo = identifiers[identifierElement.dataset.identifier];
+ if(idInfo) {
+ if(isDefinedInCurrentModule(moduleName,path,idInfo)) {
+ color = colorTheme.topLevelIdFromCurrentModule;
+ } else if(idInfo.sort === "Internal" && idInfo.locationInfo.tag === "ExactLocation") {
+ const colorNumber = modulo(identifierElement.id,colorTheme.localIdentifierColor.length);
+ color = colorTheme.localIdentifierColor[colorNumber];
+ fontWeight = "bold";
+ }
+ }
+ }
+ }
+
+ return "color:"+color+";"
+ +(fontWeight ? "font-weight:" + fontWeight : "")+";"
+ +(idOcc.isBinder ? "text-decoration:underline;" : "");
+}
+
+function initializeIdentifiers (sourceCodeContainerElement,component) {
+ const identifierElements = Array.prototype.slice.call(sourceCodeContainerElement.querySelectorAll("span.identifier"));
+ if(identifierElements.length > 0) {
+ const timeout = 250;//milliseconds
+ let timer = null;
+
+ identifierElements.forEach((identifierElement) => {
+
+ const cssText = identifierStyle(identifierElement,
+ component.get('identifiers'),
+ component.get('occurrences'),
+ component.get('path'),
+ component.get('colorTheme'),
+ component.get('name'));
+
+ identifierElement.style.cssText = cssText;
+
+ //go to definition
+ identifierElement.onmouseup = (event) => {
+ if(timer) {
+ clearTimeout(timer);
+ }
+
+ if(!window.getSelection().isCollapsed) {
+ return;
+ }
+
+ const identifierInfo = component.get('identifiers')[identifierElement.dataset.identifier];
+ const idOccurrenceInfo = component.get('occurrences')[identifierElement.dataset.occurrence];
+
+ const currentLineNumber = parseInt(identifierElement.parentNode.dataset.line);
+
+ if(idOccurrenceInfo.sort.tag === "ModuleId") {
+ goToDefinition(component.get('store'),
+ idOccurrenceInfo.sort.contents,
+ event.which,
+ currentLineNumber);
+ }
+ else {
+ if(!idOccurrenceInfo.isBinder && identifierInfo
+ && (event.which === 1 || event.which === 2)) {
+ goToDefinition(component.get('store'),
+ identifierInfo.locationInfo,
+ event.which,
+ currentLineNumber);
+ }
+ }
+ }
+
+ identifierElement.onmouseover = () => {
+ highlightIdentifiers(sourceCodeContainerElement,identifierElement,true);
+ if(timer) {
+ clearTimeout(timer);
+ }
+ timer = setTimeout(() => {
+ Ember.run.next(component,() => {
+ const identifierInfo = component.get('identifiers')[identifierElement.dataset.identifier];
+ const identifierOccurrence = component.get('occurrences')[identifierElement.dataset.occurrence];
+ console.log(identifierOccurrence);
+ console.log(identifierInfo);
+
+ component.set('selectedIdentifier',identifierElement);
+ component.set('currentLineNumber',parseInt(identifierElement.parentNode.dataset.line) || 1);
+ component.set('identifierInfo',identifierInfo);
+ component.set('identifierOccurrence',identifierOccurrence);
+ component.set('hasSelectedExpression',false);
+ component.set('isHoveredOverIdentifier',true);
+
+ });
+ },timeout);
+ };
+
+ identifierElement.onmouseout = () => {
+ highlightIdentifiers(sourceCodeContainerElement,identifierElement,false);
+
+ if(timer) {
+ clearTimeout(timer);
+ }
+
+ timer = setTimeout (() => {
+ Ember.run.next(component,() => {
+ component.set('isHoveredOverIdentifier',false);
+ });
+ },timeout);
+ };
+ });
+ component.timer = timer;
+ }
+}
+
+
+
+function contains (node, other) {
+ return node === other || !!(node.compareDocumentPosition(other) & 16);
+}
+
+function initializeExpressionInfo(sourceCodeContainerElement,component) {
+ const lineElements = Array.prototype.slice.call(sourceCodeContainerElement.querySelectorAll("td.line-content"));
+ if(lineElements.length > 0) {
+
+ //Line numbers start with 1
+ let sourceCodeLines = [""];
+
+ lineElements.forEach((el) => {
+ sourceCodeLines.push(el.textContent);
+ });
+
+ const allowedNodeNames = ["#text","SPAN","TD"];
+ let isLoading = false;
+ let shouldWait = false;
+ const timeout = 400;//milliseconds
+
+ const onmouseup = function() {
+ Ember.run.next(() => {
+ if(isLoading || shouldWait) {
+ return;
+ }
+ shouldWait = true;
+ setTimeout(() => {shouldWait = false;},timeout);
+
+ component.set('hasSelectedExpression',false);
+
+ const selection = window.getSelection();
+
+ //Selection of multiple lines inside a table doesn't work in Firefox
+ //https://bugzilla.mozilla.org/show_bug.cgi?id=365900
+
+ if(!(selection.anchorNode && selection.focusNode)
+ || !contains(sourceCodeContainerElement,selection.anchorNode)
+ || !contains(sourceCodeContainerElement,selection.focusNode)
+ || (allowedNodeNames.indexOf(selection.anchorNode.nodeName) === -1)
+ || (allowedNodeNames.indexOf(selection.focusNode.nodeName) === -1)
+ || selection.isCollapsed) {
+ return;
+ }
+
+ // Detects whether the selection is backwards
+ const detectionRange = document.createRange();
+ detectionRange.setStart(selection.anchorNode, selection.anchorOffset);
+ detectionRange.setEnd(selection.focusNode, selection.focusOffset);
+ const isBackward = detectionRange.collapsed;
+
+ let startNode,startNodeOffset,endNode,endNodeOffset;
+
+ if(isBackward) {
+ startNode = selection.focusNode;
+ startNodeOffset = selection.focusOffset;
+ endNode = selection.anchorNode;
+ endNodeOffset = selection.anchorOffset;
+ } else {
+ startNode = selection.anchorNode;
+ startNodeOffset = selection.anchorOffset;
+ endNode = selection.focusNode;
+ endNodeOffset = selection.focusOffset;
+ }
+
+ let lineStart,columnStart,lineEnd,columnEnd;
+ let infoWindowTargetElement;
+
+
+ //HTML inside source code container :
+ //<tr><td><span data-start="1" date-end="3">abc</span><span>...</span></td></tr>
+ //<tr>...</tr>
+ if(startNode.nodeName === "#text") {
+ const parent = startNode.parentNode;//<span>
+ columnStart = parseInt(parent.dataset.start) + startNodeOffset;
+ lineStart = parseInt(parent.parentNode.dataset.line);
+
+ if(startNodeOffset === startNode.textContent.length && parent.nextSibling === null) {
+ const tr = startNode.parentNode.parentNode.parentNode;// span -> td -> tr
+
+ //Skipping empty lines
+ let nextLine = tr.nextSibling;
+ while(nextLine.children[1].textContent === "") {
+ nextLine = nextLine.nextSibling;
+ }
+ infoWindowTargetElement = nextLine.children[1].children[0];
+
+ } else {
+ if(!(startNodeOffset === 0) && (parent.nextSibling)) {
+ infoWindowTargetElement = parent.nextSibling;
+ } else {
+ infoWindowTargetElement = parent;
+ }
+ }
+ } else if(startNode.nodeName === "SPAN") {
+ columnStart = 1;
+ lineStart = parseInt(startNode.parentNode.dataset.line);
+
+ const tr = startNode.parentNode.parentNode; // td -> tr
+ let nextLine = tr.nextSibling;
+ while(nextLine.children[1].textContent === "") {
+ nextLine = nextLine.nextSibling;
+ }
+ infoWindowTargetElement = nextLine.children[1].children[0];
+
+ } else if(startNode.nodeName === "TD") {
+ if(startNodeOffset > 0) {
+ const child = startNode.children[startNodeOffset-1];
+ columnStart = parseInt(child.dataset.start);
+ } else {
+ columnStart = 1;
+ }
+ lineStart = parseInt(startNode.id.slice(2));
+ infoWindowTargetElement = startNode.children[0];
+ }
+
+ if(endNode.nodeName === "#text") {
+ columnEnd = parseInt(endNode.parentNode.dataset.start) + endNodeOffset;
+ lineEnd = parseInt(endNode.parentNode.parentNode.dataset.line);
+ } else if(endNode.nodeName === "SPAN") {
+ columnEnd = 1;
+ lineEnd = parseInt(endNode.parentNode.dataset.line);
+ } else if(endNode.nodeName === "TD"){
+ if(endNodeOffset > 0) {
+ const child = endNode.children[endNodeOffset-1];
+ columnEnd = parseInt(child.dataset.start);
+ } else {
+ columnEnd = 1;
+ }
+ lineEnd = parseInt(endNode.id.slice(2));
+ }
+
+ const loadExprPromise = component.get('store').loadExpressions(
+ component.get('packageId'),
+ component.get('path'),
+ lineStart,
+ columnStart,
+ lineEnd,
+ columnEnd);
+ isLoading = true;
+
+ loadExprPromise.then((expressions) => {
+ Ember.run.next(() => {
+ if(expressions && expressions.length > 0) {
+ expressions.sort(function(expr1,expr2) {
+ if( compareLocations(expr1.srcSpan.start,expr2.srcSpan.start) <= 0
+ && compareLocations(expr1.srcSpan.end,expr2.srcSpan.end) >= 0 ) {
+ return -1;
+ } else {
+ return 1;
+ }
+ });
+
+ const expressionsWithSourceCode = expressions.reduce((result,expression) => {
+ const object = Ember.copy(expression);
+ const srcSpan = buildSrcSpan(sourceCodeLines,
+ expression.srcSpan.start,
+ expression.srcSpan.end);
+ if(srcSpan) {
+ object.sourceCode = srcSpan;
+ return result.concat(object);
+ } else {
+ return result;
+ }
+ },[]);
+
+ if(expressionsWithSourceCode.length > 0) {
+ component.set('selectedIdentifier',infoWindowTargetElement);
+ component.set('expressions',expressionsWithSourceCode);
+ component.set('currentLineNumber',parseInt(infoWindowTargetElement.parentNode.dataset.line) || 1);
+ component.set('hasSelectedExpression',true);
+
+ }
+ }
+ isLoading = false;
+ });
+ });
+ });
+ };
+
+ sourceCodeContainerElement.addEventListener('mouseup',onmouseup);
+ component._onmouseup = onmouseup;
+ }
+}
+
+export default Ember.Component.extend({
+ store : Ember.inject.service('store'),
+ selectedIdentifier : null,
+ isHoveredOverIdentifier : false,
+ hasSelectedExpression : false,
+ showDeclarations : true,
+ showDeclarationsLabel : Ember.computed('showDeclarations',function () {
+ return this.get('showDeclarations') ? "Hide" : "Show";
+ }),
+ queryObserver : Ember.observer("query",function() {
+ Ember.run.debounce(this, () => {
+ const regExp = new RegExp(this.get('query'),"i");
+ const filteredDeclarations = this.get('declarations').filter((d) => d.name.search(regExp) != -1);
+ Ember.run.next(() => {
+ this.set('filteredDeclarations',filteredDeclarations);
+ });
+ }, 300);
+ }),
+ identifierLocationInfo : Ember.computed('identifierInfo','identifierOccurrence',function() {
+ const idOcc = this.get('identifierOccurrence');
+ const idInfo = this.get('identifierInfo');
+ if(idOcc) {
+ if(idOcc.sort.tag === "ModuleId") {
+ return idOcc.sort.contents;
+ } else {
+ if(idInfo) {
+ return idInfo.locationInfo;
+ } else {
+ return null;
+ }
+ }
+ }
+ }),
+ themeObserver : Ember.observer('colorTheme',function() {
+ Ember.run.next(this,() => {
+ this.cleanup();
+ this.didInsertElement();
+ });
+ }),
+ fileObserver : Ember.observer('path',function() {
+ Ember.run.next(this,() => {
+ this.cleanup();
+ this.didInsertElement();
+ });
+ }),
+ cleanup() {
+ if(this.timer) {
+ clearTimeout(this.timer);
+ }
+ if(this._onhashchange) {
+ window.removeEventListener('hashchange',this._onhashchange);
+ }
+ if(this._onkeydown) {
+ document.removeEventListener('keydown',this._onkeydown);
+ }
+ if(this._onkeyup) {
+ document.removeEventListener('keyup',this._onkeyup);
+ }
+ if(this._onmouseup) {
+ this.sourceCodeContainerElement.removeEventListener('mouseup',this._onmouseup);
+ }
+ this.set('selectedIdentifier',null);
+ this.set('isHoveredOverIdentifier',false);
+ this.set('hasSelectedExpression',false);
+ this.set('showDeclarations',true);
+ },
+ didReceiveAttrs() {
+ this.set('filteredDeclarations',this.get('declarations'));
+ },
+ didInsertElement() {
+ this._super(...arguments);
+ const sourceCodeContainerElement = this.element.querySelector('.source-code-container');
+ sourceCodeContainerElement.innerHTML = this.get('html');
+ this.sourceCodeContainerElement = sourceCodeContainerElement;
+ this.element.parentNode.scrollTop = 0;
+ const declarations = this.element.querySelector('.declarations-content');
+ this.set('query','');
+ if(declarations) {
+ declarations.scrollTop = 0;
+ }
+ Ember.run.next(this,() => {
+ initializeIdentifiers(sourceCodeContainerElement,this);
+ initializeLineSelection(sourceCodeContainerElement,this);
+ initializeExpressionInfo(sourceCodeContainerElement,this);
+ });
+ },
+ willDestroyElement() {
+ this.cleanup();
+ },
+ actions : {
+ goToLine(lineNumber) {
+ window.location.hash = "L"+lineNumber;
+ },
+ toggleShowDeclarations() {
+ this.toggleProperty('showDeclarations');
+ }
+ }
+});
diff --git a/javascript/app/components/identifier-info.js b/javascript/app/components/identifier-info.js
new file mode 100644
index 0000000..537697a
--- /dev/null
+++ b/javascript/app/components/identifier-info.js
@@ -0,0 +1,62 @@
+import Ember from 'ember';
+import {goToDefinition} from '../utils/go-to-definition';
+
+export default Ember.Component.extend({
+ store : Ember.inject.service('store'),
+ downloadedDocumentation : null,
+ didInsertElement () {
+ const onmouseup = (event) => {
+ if(event.target.dataset.location) {
+ let location;
+ try {
+ location = JSON.parse(event.target.dataset.location);
+ } catch (e) {
+ console.log(e);
+ }
+ if(location) {
+ goToDefinition(this.get('store'),location,event.which,this.get('currentLineNumber'));
+ }
+ }
+ };
+ this.element.addEventListener('mouseup',onmouseup);
+ this._onmouseup = onmouseup;
+ },
+ willDestroyElement : function () {
+ if(this._onmouseup) {
+ this.element.removeEventListener('mouseup',this._onmouseup);
+ }
+ },
+ //Naughty record selectors :
+ //https://github.com/ghc/ghc/blob/ced2cb5e8fbf4493488d1c336da7b00d174923ce/compiler/typecheck/TcTyDecls.hs#L940-L961
+ isNaughtyRecSel : Ember.computed('identifierInfo',function () {
+ const idInfo = this.get('identifierInfo');
+ return idInfo ? (idInfo.details === "RecSelIdNaughty") : false;
+ }),
+ isExternalIdentifier : Ember.computed('identifierInfo',function () {
+ const idInfo = this.get('identifierInfo');
+ return idInfo ? (idInfo.sort === "External") : false;
+ }),
+ identifierObserver : Ember.observer('identifierInfo',function () {
+ this.set("downloadedDocumentation","");
+ const idInfo = this.get('identifierInfo');
+ if(idInfo) {
+ const locationInfo = idInfo.locationInfo;
+ if(locationInfo.tag === "ApproximateLocation") {
+ const packageId = locationInfo.packageId.name + "-" + locationInfo.packageId.version;
+ const currentIdentifier = idInfo;
+
+ this.get('store').loadDefinitionSite(packageId,
+ locationInfo.moduleName,
+ locationInfo.componentId,
+ locationInfo.entity,
+ locationInfo.name)
+ .then((definitionSite) => {
+ Ember.run.next(this,() => {
+ if(currentIdentifier === this.get('identifierInfo')) {
+ this.set('downloadedDocumentation',definitionSite.documentation);
+ }});
+ });
+ }
+ }
+ })
+});
diff --git a/javascript/app/components/identifier-name.js b/javascript/app/components/identifier-name.js
new file mode 100644
index 0000000..950b8c7
--- /dev/null
+++ b/javascript/app/components/identifier-name.js
@@ -0,0 +1,60 @@
+import Ember from 'ember';
+import {goToDefinition} from '../utils/go-to-definition';
+
+export default Ember.Component.extend({
+ store : Ember.inject.service('store'),
+ name : Ember.computed('identifierElement',function() {
+ const element = this.get('identifierElement');
+ if(element) {
+ return element.innerText;
+ }
+ }),
+ style : Ember.computed('identifierElement',function() {
+ const element = this.get('identifierElement');
+ if(element) {
+ return new Ember.String.htmlSafe("color:"+element.style.color);
+ }
+ }),
+ locationInfo : Ember.computed('identifierInfo','identifierOccurrence',function() {
+ if(this.get('identifierOccurrence.sort.tag') === "ModuleId") {
+ return this.get('identifierOccurrence.sort.contents');
+ } else {
+ return this.get('identifierInfo.locationInfo');
+ }
+ }),
+ location : Ember.computed('locationInfo',function() {
+ const loc = this.get('locationInfo');
+ if(loc) {
+ if(loc.tag === "ExactLocation") {
+ return loc.modulePath;
+ } else if(loc.tag === "ApproximateLocation") {
+ if(loc.entity === "Mod") {
+ return loc.packageId.name + "-" + loc.packageId.version;
+ } else {
+ return loc.packageId.name + "-" + loc.packageId.version + " " + loc.moduleName;
+ }
+ } else {
+ return loc.contents;
+ }
+ } else {
+ return "";
+ }
+ }),
+ isExternalIdentifier : Ember.computed('identifierInfo',function () {
+ return (this.get('identifierInfo.sort') === "External");
+ }),
+ actions : {
+ goToDefinition (event) {
+ goToDefinition(this.get('store'),
+ this.get('locationInfo'),
+ event.which,
+ this.get('currentLineNumber'));
+ return false;
+ },
+ findReferences (identifierInfo,currentPackageId) {
+ this.get('findReferences')(currentPackageId,
+ identifierInfo.externalId,
+ identifierInfo.demangledOccName);
+ }
+ }
+});
diff --git a/javascript/app/components/infinite-list.js b/javascript/app/components/infinite-list.js
new file mode 100644
index 0000000..b73b6d4
--- /dev/null
+++ b/javascript/app/components/infinite-list.js
@@ -0,0 +1,50 @@
+import Component from '@ember/component';
+import { run } from '@ember/runloop';
+import { observer } from '@ember/object';
+
+let pageNumber;
+let updating = false;
+
+function initialize(component) {
+ component.set('renderedElements',component.get('elements').slice(0,component.get('perPage')));
+ pageNumber = 1;
+}
+
+export default Component.extend({
+ renderedElements : [],
+ init() {
+ this._super(...arguments);
+ initialize(this);
+ },
+ elementsObserver : observer('elements',function() {
+ initialize(this);
+ const containerElement = document.getElementById(this.get('containerElementId'));
+ if(containerElement) {
+ containerElement.scrollTop = 0;
+ }
+ }),
+ didInsertElement() {
+ const containerElement = document.getElementById(this.get('containerElementId'));
+ if(containerElement) {
+ const component = this;
+ containerElement.onscroll = function() {
+ const perPage = component.get('perPage');
+ const elements = component.get('elements');
+
+ if(!updating &&
+ (pageNumber * perPage < elements.length) &&
+ (containerElement.scrollTop + containerElement.offsetHeight
+ > component.element.offsetHeight - 100)) {
+
+ updating = true;
+ run.next(component,() => {
+ const newElements = elements.slice(pageNumber * perPage,(pageNumber + 1) * perPage);
+ component.get('renderedElements').pushObjects(newElements);
+ pageNumber ++;
+ updating = false;
+ });
+ }
+ }
+ }
+ }
+});
diff --git a/javascript/app/components/info-window.js b/javascript/app/components/info-window.js
new file mode 100644
index 0000000..a011f99
--- /dev/null
+++ b/javascript/app/components/info-window.js
@@ -0,0 +1,144 @@
+import Ember from 'ember';
+
+let resizing = false;
+let dragging = false;
+
+function updatePosition(component) {
+ const targetElement = component.get('targetElement');
+ if(targetElement) {
+ const infoWindowHeight = component.element.offsetHeight;
+ const targetElementHeight = targetElement.offsetHeight;
+
+ const parent = targetElement.parentNode;//<td> element
+ const containerElement = document.querySelector("#" + component.get('containerElementId'));
+
+ //getBoundingClientRect() returns the smallest rectangle which contains
+ //the entire element, with read-only left, top, right, bottom, x, y, width,
+ //and height properties describing the overall border-box in pixels. Properties
+ //other than width and height are relative to the top-left of the *viewport*.
+ const targetTopViewport = targetElement.getBoundingClientRect().top;
+
+ let containerTopViewport;
+ if (containerElement) {
+ containerTopViewport = containerElement.getBoundingClientRect().top;
+ } else {
+ containerTopViewport = 0;
+ }
+
+ let infoWindowTop;
+ if(targetTopViewport < infoWindowHeight + containerTopViewport) {
+ //offsetTop is the number of pixels from the top of the closest relatively
+ //positioned parent element.
+ infoWindowTop = targetElement.offsetTop + parent.offsetTop
+ + targetElementHeight + 10 + "px";
+ } else {
+ infoWindowTop = targetElement.offsetTop + parent.offsetTop
+ - infoWindowHeight + "px";
+ }
+
+ const infoWindowLeft = targetElement.offsetLeft + parent.offsetLeft + "px";
+
+ component.$().css({
+ top:infoWindowTop,
+ left:infoWindowLeft
+ });
+ } else {
+ component.set('isPinned',false);
+ }
+}
+
+export default Ember.Component.extend({
+ classNames : ["info-window-container"],
+ attributeBindings: ['hidden'],
+ isPinned : false,
+ isFocused: false,
+ didInsertElement () {
+ const component = this;
+
+ const $headerElement = Ember.$(component.element.querySelector(".info-window-header"));
+ const $contentElement = Ember.$(component.element.querySelector(".info-window-content"));
+ const $infoWindowElement = Ember.$(component.element.querySelector(".info-window"));
+ const $infoWindowContainerElement = Ember.$(component.element);
+
+ this.$headerElement = $headerElement;
+ this.$contentElement = $contentElement;
+
+ this.$().resizable({
+ handles: "n,w",
+ minHeight: 80,
+ minWidth: 400,
+ start: function() {
+ resizing = true;
+ },
+ stop: function() {
+ resizing = false;
+ },
+ resize : function() {
+ const containerHeight = $infoWindowContainerElement.height();
+ $infoWindowElement.css({
+ "height": containerHeight + 2 + "px"
+ });
+ $contentElement.css({
+ "max-height":(containerHeight - $headerElement.outerHeight(true)) + "px"
+ });
+ }
+ });
+ this.$().draggable({
+ containment:"#" + this.get('containerElementId'),
+ handle: $headerElement,
+ start: function() {
+ dragging = true;
+ },
+ stop: function() {
+ dragging = false;
+ }
+ });
+ },
+ mouseEnter () {
+ if(!this.get('hasSelectedExpression')) {
+ this.set('isFocused',true);
+ }
+ },
+ mouseLeave (event) {
+ //Workaround for a bug in Chrome
+ const element = document.elementFromPoint(event.clientX,event.clientY);
+ if(element && element.classList.contains('link')) {
+ return;
+ }
+ if(!resizing
+ && !dragging
+ && !this.get('isPinned')
+ && !this.get('hasSelectedExpression')) {
+ this.set('isFocused',false);
+ }
+ },
+ hidden : Ember.computed('isHoveredOverIdentifier',
+ 'isFocused',
+ 'hasSelectedExpression',
+ 'isPinned', function() {
+ if (this.$contentElement) {
+ this.$contentElement.scrollTop(0);
+ }
+ if (this.get('isPinned')
+ || this.get('isFocused')
+ || this.get('isHoveredOverIdentifier')
+ || this.get('hasSelectedExpression')) {
+ return false;
+ } else {
+ return true;
+ }
+ }),
+ didUpdate() {
+ updatePosition(this);
+ },
+ actions : {
+ close() {
+ this.set('isPinned',false);
+ this.set('isFocused',false);
+ this.set('hasSelectedExpression',false);
+ },
+ pin() {
+ this.toggleProperty('isPinned');
+ }
+ }
+});
diff --git a/javascript/app/components/input-with-autocomplete.js b/javascript/app/components/input-with-autocomplete.js
new file mode 100644
index 0000000..2b09ea4
--- /dev/null
+++ b/javascript/app/components/input-with-autocomplete.js
@@ -0,0 +1,131 @@
+import Ember from 'ember';
+export default Ember.Component.extend({
+ store : Ember.inject.service('store'),
+ highlightedItemIndex: -1,
+ items : [],
+ query: null,
+ didInsertElement() {
+ const $input = Ember.$(this.element).find(".search-input");
+ const $autocompleteContainer = Ember.$(this.element).find(".autocomplete-container");
+ this.$input = $input;
+ this.$autocompleteContainer = $autocompleteContainer;
+ const width = $input.width() + 300;
+ $autocompleteContainer.css({
+ "width" : width+"px",
+ "top" : $input.outerHeight()
+ });
+ $input.keyup((e) => {
+ if(e.which === 13) {
+ this.onEnter();
+ } else if(e.which === 27) {
+ this.onEsc();
+ } else if(e.which === 40) {
+ this.onDown();
+ } else if(e.which === 38) {
+ this.onUp();
+ }
+ });
+ $input.focusin(() => {
+ this.showAutocompleteList();
+ });
+ $input.focusout(() => {
+ //Timeout is needed to make sure that click event fires
+ Ember.run.later((() => {
+ this.hideAutocompleteList();
+ }), 100);
+ });
+ },
+ willDestroyElement() {
+ this._super(...arguments);
+ this.$input.off('keyup');
+ this.$input.off('focusin');
+ this.$input.off('focusout');
+ },
+ onEnter() {
+ if(this.get('highlightedItemIndex') !== -1) {
+ const item = this.get('items')[this.get('highlightedItemIndex')];
+ if(item) {
+ this.hideAutocompleteList();
+ this.get('selectItem')(item);
+ }
+ } else {
+ this.hideAutocompleteList();
+ this.get('onSubmit')(this.get('query'));
+ }
+ },
+ onEsc() {
+ this.hideAutocompleteList();
+ },
+ onDown() {
+ this.showAutocompleteList();
+ const index = this.get('highlightedItemIndex');
+ const items = this.get('items');
+ const itemsCount = items.length;
+ if(itemsCount > 0) {
+ if(index !== -1) {
+ if(index === itemsCount - 1) {
+ this.set('highlightedItemIndex',0);
+ } else {
+ this.set('highlightedItemIndex',index+1);
+ }
+ } else {
+ this.set('highlightedItemIndex',0);
+ }
+ }
+ },
+ onUp() {
+ this.showAutocompleteList();
+ const index = this.get('highlightedItemIndex');
+ const items = this.get('items');
+ const itemsCount = items.length;
+ if(itemsCount > 0) {
+ if(index !== -1) {
+ if(index === 0) {
+ this.set('highlightedItemIndex',itemsCount - 1);
+ } else {
+ this.set('highlightedItemIndex',index - 1);
+ }
+ } else {
+ this.set('highlightedItemIndex',itemsCount - 1);
+ }
+ }
+ },
+ hideAutocompleteList() {
+ this.set('highlightedItemIndex',-1);
+ this.$autocompleteContainer.css({
+ "display":"none",
+ });
+ },
+ showAutocompleteList() {
+ this.$autocompleteContainer.css({
+ "display":"block"
+ });
+ },
+ queryObserver : Ember.observer("query",function() {
+ if(this.get('query')) {
+ const perPage = this.get('maxItems') ? this.get('maxItems') : 10;
+ const url = this.get('createSearchUrlFunction')(this.get('query')) + "?per_page=" + perPage;
+ Ember.run.debounce(this, () => {
+ this.get('store').loadFromUrlPaginated(url).then((result) => {
+ Ember.run.next(() => {
+ this.set('items',result.items);
+ });
+ });
+ }, 400);
+ this.showAutocompleteList();
+ } else {
+ this.hideAutocompleteList();
+ this.set('items',[]);
+ }
+ }),
+ actions : {
+ onSubmit() {
+ this.hideAutocompleteList();
+ this.get('onSubmit')(this.get('query'));
+ },
+ goToDefinition (item) {
+ this.hideAutocompleteList();
+ this.get('selectItem')(item);
+ }
+ }
+});
diff --git a/javascript/app/components/instance-info.js b/javascript/app/components/instance-info.js
new file mode 100644
index 0000000..a0e04ed
--- /dev/null
+++ b/javascript/app/components/instance-info.js
@@ -0,0 +1,21 @@
+import Ember from 'ember';
+import {goToDefinition} from '../utils/go-to-definition';
+
+export default Ember.Component.extend({
+ store : Ember.inject.service('store'),
+ style : Ember.computed('nestedLevel',function() {
+ return new Ember.String.htmlSafe("margin-left :" + this.get('nestedLevel') * 10 + "px");
+ }),
+ nextNestedLevel : Ember.computed('nestedLevel',function () {
+ return this.get('nestedLevel') + 1;
+ }),
+ actions : {
+ goToDefinition (event) {
+ goToDefinition(this.get('store'),
+ this.get('instance.location'),
+ event.which,
+ this.get('currentLineNumber'));
+ return false;
+ }
+ }
+});
diff --git a/javascript/app/components/paginated-list.js b/javascript/app/components/paginated-list.js
new file mode 100644
index 0000000..9d85610
--- /dev/null
+++ b/javascript/app/components/paginated-list.js
@@ -0,0 +1,48 @@
+import Ember from 'ember';
+function loadItems(store,component,url) {
+ store.loadFromUrlPaginated(url).then((result) => {
+ Ember.run.next(() => {
+ component.set('total',result.total);
+ component.set('items',result.items);
+ component.set('first',result.linkHeader.first);
+ component.set('next',result.linkHeader.next);
+ component.set('prev',result.linkHeader.prev);
+ component.set('last',result.linkHeader.last);
+
+ const pageMatch = url.match(/(&|\?)page=(\d+)/);
+ const perPageMatch = url.match(/(&|\?)per_page=(\d+)/);
+
+ const page = pageMatch ? pageMatch[2] : 1;
+ const perPage = perPageMatch ? perPageMatch[2] : 20;
+
+ if(result.linkHeader.next || result.linkHeader.prev) {
+ component.set('firstItemOnPage',(page - 1) * perPage + 1);
+ if(!result.linkHeader.last) {
+ component.set('lastItemOnPage',result.total);
+ } else {
+ component.set('lastItemOnPage',page * perPage);
+ }
+ }
+ });
+ });
+}
+
+export default Ember.Component.extend({
+ store : Ember.inject.service('store'),
+ init() {
+ this._super(...arguments);
+ if(this.get('url')) {
+ loadItems(this.get('store'),this,this.get('url'));
+ }
+ },
+ urlObserver : Ember.observer('url',function () {
+ loadItems(this.get('store'),this,this.get('url'));
+ this.element.querySelector(".paginated-list-content").scrollTop = 0;
+ }),
+ actions : {
+ update(url) {
+ this.element.querySelector(".paginated-list-content").scrollTop = 0;
+ loadItems(this.get('store'),this,url);
+ }
+ }
+});
diff --git a/javascript/app/components/resizable-panel.js b/javascript/app/components/resizable-panel.js
new file mode 100644
index 0000000..8dae7ed
--- /dev/null
+++ b/javascript/app/components/resizable-panel.js
@@ -0,0 +1,72 @@
+import Ember from 'ember';
+
+function hide (component,byUser) {
+ component.$alsoResizeElement.css({left: 0});
+ component.$().css({width:0});
+ component.set('hidden',true);
+ component.$(".show-left-panel-button").show();
+ if(byUser) {
+ component.set('hiddenByUser',true);
+ }
+}
+
+function show (component,byUser) {
+ component.$alsoResizeElement.css({left: 300});
+ component.$().css({width:300});
+ component.set('hidden',false);
+ component.$(".show-left-panel-button").hide();
+ if(byUser) {
+ component.set('hiddenByUser',false);
+ }
+}
+
+export default Ember.Component.extend({
+ hidden:false,
+ hiddenByUser:false,
+ didInsertElement : function () {
+ this._super(...arguments);
+ Ember.run.next(this,() => {
+ const onresize = () => {
+ if(!this.get('hiddenByUser')) {
+ const width = window.innerWidth;
+ if(!this.get('hidden') && width < 700) {
+ hide(this,false);
+ } else if(this.get('hidden') && width > 700) {
+ show(this,false);
+ }
+ }
+ };
+ this._onresize = onresize;
+ window.addEventListener('resize', onresize);
+ const $alsoResizeElement = Ember.$(this.get('alsoResizeElementId'));
+ Ember.$(this.element).resizable({
+ maxWidth: 800,
+ minWidth: 200,
+ handles: 'e',
+ resize: (event,ui) => {
+ Ember.run.next(this,() => {
+ $alsoResizeElement.css({left: ui.size.width});
+ });
+ }
+ });
+ this.$alsoResizeElement = $alsoResizeElement;
+ });
+ },
+ hideButtonLabel : Ember.computed('hidden',function() {
+ return this.get('hidden') ? "&gt;" : "&lt;";
+ }),
+ willDestroyElement() {
+ if(this._onresize) {
+ window.removeEventListener('resize',this._onresize);
+ }
+ },
+ actions : {
+ hide() {
+ if(this.get('hidden')) {
+ show(this,true);
+ } else {
+ hide(this,true);
+ }
+ }
+ }
+});
diff --git a/javascript/app/components/text-file.js b/javascript/app/components/text-file.js
new file mode 100644
index 0000000..05be31a
--- /dev/null
+++ b/javascript/app/components/text-file.js
@@ -0,0 +1,67 @@
+/* global showdown */
+import Ember from 'ember';
+import {initializeLineSelection} from '../utils/line-selection';
+
+function escapeHtml(text) {
+ return text.replace(/[\"&<>]/g, function (a) {
+ return { '"': '&quot;', '&': '&amp;', '<': '&lt;', '>': '&gt;' }[a];
+ });
+}
+
+function addLineNumbers (text) {
+ const start = "<table class='source-code'><tbody>";
+ const end = "</tbody></table>";
+ let lineNumber = 0;
+ const lines = text.split("\n").map((line) => {
+ lineNumber ++;
+ const lineNumberHtml = "<td id='LN"+lineNumber+"' class='line-number'>"+lineNumber+"</td>";
+ const lineContentHtml = "<td id='LC"+lineNumber+"' class='line-content'>"+escapeHtml(line)+"</td>";
+ return "<tr>"+ lineNumberHtml + lineContentHtml + "</tr>";
+ }).join("");
+ return start + lines + end;
+}
+
+const markdownExtensions = ["markdown", "mdown", "mkdn", "mkd", "md"];
+
+export default Ember.Component.extend({
+ isMarkdown : Ember.computed('path',function() {
+ const maybeExtension = this.get('path').split('.').pop();
+ return markdownExtensions.any((extension) => (maybeExtension === extension));
+ }),
+ html : Ember.computed('path','isMarkdown',function() {
+ if(this.get('isMarkdown')) {
+ return this.markdownConverter.makeHtml(this.get('text'));
+ } else {
+ return addLineNumbers(this.get('text'));
+ }
+ }),
+ init() {
+ this._super(...arguments);
+ this.markdownConverter = new showdown.Converter();
+ },
+ didInsertElement() {
+ const sourceCodeContainerElement = this.element.querySelector('.source-code-container');
+ initializeLineSelection(sourceCodeContainerElement,this);
+ this.element.parentNode.scrollTop = 0;
+ },
+ willDestroyElement : function () {
+ this.cleanup();
+ },
+ cleanup() {
+ if(this._onhashchange) {
+ window.removeEventListener('hashchange',this._onhashchange);
+ }
+ if(this._onkeydown) {
+ document.removeEventListener('keydown',this._onkeydown);
+ }
+ if(this._onkeyup) {
+ document.removeEventListener('keyup',this._onkeyup);
+ }
+ },
+ pathObserver : Ember.observer('path',function() {
+ Ember.run.next(this,() => {
+ this.cleanup();
+ this.didInsertElement();
+ });
+ })
+});
diff --git a/javascript/app/components/type-component.js b/javascript/app/components/type-component.js
new file mode 100644
index 0000000..c19facc
--- /dev/null
+++ b/javascript/app/components/type-component.js
@@ -0,0 +1,29 @@
+import Ember from 'ember';
+import {goToDefinition} from '../utils/go-to-definition';
+
+export default Ember.Component.extend({
+ store : Ember.inject.service('store'),
+ tagName : 'span',
+ classNames: ["type-component"],
+ contextMenu() {//right mouse button click to show kind of a type constructor or type variable
+ if(this.get('identifiers') && this.get('internalId')) {
+ this.set('expanded',true);
+ }
+ return false;
+ },
+ linkClass : Ember.computed('identifierInfo',function() {
+ return this.get('identifierInfo') ? "link" : "";
+ }),
+ identifierInfo : Ember.computed('internalId',function() {
+ return this.get('internalId') ? this.get('identifiers')[this.get('internalId')] : null;
+ }),
+ actions : {
+ onmouseup (event) {
+ if(this.get('identifierInfo') && (event.which !== 3 )) {
+ const locationInfo = this.get('identifierInfo').locationInfo;
+ goToDefinition(this.get('store'),locationInfo,event.which,this.get('currentLineNumber'));
+ return false;
+ }
+ }
+ }
+});
diff --git a/javascript/app/components/type-signature-text.js b/javascript/app/components/type-signature-text.js
new file mode 100644
index 0000000..e4eb200
--- /dev/null
+++ b/javascript/app/components/type-signature-text.js
@@ -0,0 +1,4 @@
+import Ember from 'ember';
+export default Ember.Component.extend({
+ tagName : "span"
+});
diff --git a/javascript/app/components/type-signature.js b/javascript/app/components/type-signature.js
new file mode 100644
index 0000000..ed1849c
--- /dev/null
+++ b/javascript/app/components/type-signature.js
@@ -0,0 +1,23 @@
+import Ember from 'ember';
+export default Ember.Component.extend({
+ tagName : "span",
+ expandTypeSynonyms: false,
+ expandTypeSynonymsLabel : Ember.computed('expandTypeSynonyms',function() {
+ return this.get('expandTypeSynonyms') ? "Show type synonyms" : "Expand type synonyms";
+ }),
+ components : Ember.computed('type','expandTypeSynonyms',function() {
+ if(this.get('expandTypeSynonyms') && this.get('type.componentsExpanded')) {
+ return this.get('type.componentsExpanded');
+ } else {
+ return this.get('type.components');
+ }
+ }),
+ typeObserver : Ember.observer('type',function() {
+ this.set('expandTypeSynonyms',false);
+ }),
+ actions : {
+ toggleExpandTypeSynonyms () {
+ this.toggleProperty('expandTypeSynonyms');
+ }
+ }
+});
diff --git a/javascript/app/controllers/application.js b/javascript/app/controllers/application.js
new file mode 100644
index 0000000..2936011
--- /dev/null
+++ b/javascript/app/controllers/application.js
@@ -0,0 +1,21 @@
+import {updateColorThemeCss,themes} from '../utils/color-themes';
+import Ember from 'ember';
+
+export default Ember.Controller.extend({
+ settings : Ember.inject.service('settings'),
+ themes: Object.values(themes),
+ init() {
+ this._super(...arguments);
+ updateColorThemeCss(this.get('settings').get('colorTheme'));
+ },
+ currentTheme: Ember.computed('settings',function() {
+ return this.get('settings.colorTheme.id');
+ }),
+ actions : {
+ themeChanged (themeId) {
+ const theme = themes[themeId];
+ this.get('settings').set('colorTheme',theme);
+ updateColorThemeCss(theme);
+ }
+ }
+});
diff --git a/javascript/app/controllers/package.js b/javascript/app/controllers/package.js
new file mode 100644
index 0000000..45a8bab
--- /dev/null
+++ b/javascript/app/controllers/package.js
@@ -0,0 +1,24 @@
+import Ember from 'ember';
+import {goToDefinition} from '../utils/go-to-definition';
+export default Ember.Controller.extend({
+ store : Ember.inject.service('store'),
+ currentFile : null,
+ loadItemsFunction : null,
+ query : null,
+ actions : {
+ searchIdentifier (query) {
+ if(query) {
+ this.set('currentFile',null);
+ document.title = this.get('model.id');
+ this.transitionToRoute('package.search',query);
+ }
+ },
+ showIdentifier (identifierInfo) {
+ goToDefinition(this.get('store'),
+ identifierInfo.locationInfo,
+ 1,//left mouse button
+ null);
+ return false;
+ }
+ }
+});
diff --git a/javascript/app/controllers/package/index.js b/javascript/app/controllers/package/index.js
new file mode 100644
index 0000000..cd02416
--- /dev/null
+++ b/javascript/app/controllers/package/index.js
@@ -0,0 +1,14 @@
+import Ember from 'ember';
+export default Ember.Controller.extend({
+ modulesFiltered : Ember.computed('model','query',function () {
+ const query = this.get('query');
+ const modules = Object.keys(this.get('model.modules')).sort();
+ if(query) {
+ const regExp = new RegExp(query,"i");
+ return modules.filter((p) => p.search(regExp) != -1);
+ } else {
+ return modules;
+ }
+ })
+});
+
diff --git a/javascript/app/controllers/package/search.js b/javascript/app/controllers/package/search.js
new file mode 100644
index 0000000..46f2efd
--- /dev/null
+++ b/javascript/app/controllers/package/search.js
@@ -0,0 +1,15 @@
+import Ember from 'ember';
+import {goToDefinition} from '../../utils/go-to-definition';
+
+export default Ember.Controller.extend({
+ store : Ember.inject.service('store'),
+ actions : {
+ goToDefinition (locationInfo,event) {
+ goToDefinition(this.get('store'),
+ locationInfo,
+ event.which,
+ null);
+ return false;
+ }
+ }
+});
diff --git a/javascript/app/controllers/package/show/file.js b/javascript/app/controllers/package/show/file.js
new file mode 100644
index 0000000..c566e7e
--- /dev/null
+++ b/javascript/app/controllers/package/show/file.js
@@ -0,0 +1,9 @@
+import Ember from 'ember';
+export default Ember.Controller.extend({
+ settings : Ember.inject.service('settings'),
+ actions : {
+ findReferences(packageId,externalId,occName) {
+ this.send('updateReferences',packageId,externalId,occName);
+ }
+ }
+});
diff --git a/javascript/app/controllers/packages.js b/javascript/app/controllers/packages.js
new file mode 100644
index 0000000..a1724dd
--- /dev/null
+++ b/javascript/app/controllers/packages.js
@@ -0,0 +1,12 @@
+import Ember from 'ember';
+export default Ember.Controller.extend({
+ queryObserver : Ember.observer("query",function() {
+ Ember.run.debounce(this, () => {
+ const regExp = new RegExp(this.get('query'),"i");
+ const packages = this.get('model').filter((p) => p.name.search(regExp) != -1);
+ Ember.run.next(() => {
+ this.set('packages',packages);
+ });
+ }, 300);
+ })
+});
diff --git a/javascript/app/helpers/.gitkeep b/javascript/app/helpers/.gitkeep
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/javascript/app/helpers/.gitkeep
diff --git a/javascript/app/index.html b/javascript/app/index.html
new file mode 100644
index 0000000..0c8f882
--- /dev/null
+++ b/javascript/app/index.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <title>Haskell code explorer</title>
+ <meta name="description" content="Haskell code explorer">
+ <meta name="google" content="notranslate">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ {{content-for 'head'}}
+ <link rel="stylesheet" href="/assets/vendor.css">
+ <link rel="stylesheet" href="/assets/haskell-code-explorer.css">
+ {{content-for 'head-footer'}}
+ </head>
+ <body>
+ {{content-for 'body'}}
+ <script pace-src="/assets/vendor.js"></script>
+ <script pace-src="/assets/haskell-code-explorer.js"></script>
+ {{content-for 'body-footer'}}
+ <noscript>You need to enable JavaScript to run this app.</noscript>
+ </body>
+</html>
diff --git a/javascript/app/router.js b/javascript/app/router.js
new file mode 100644
index 0000000..f58e9ab
--- /dev/null
+++ b/javascript/app/router.js
@@ -0,0 +1,20 @@
+import Ember from 'ember';
+import config from './config/environment';
+
+var Router = Ember.Router.extend({
+ location: config.locationType
+});
+
+Router.map(function() {
+ this.route('packages',{path:''});
+ this.route('package', {path:'/package/:packageId'}, function() {
+ this.route('show',function() {
+ this.route('file', {path:'*filePath'}, function() {
+ });
+ });
+ this.route('search',{path:'/search/:query'});
+ });
+ this.route('bad-url', { path: '/*badurl' });
+});
+
+export default Router;
diff --git a/javascript/app/routes/application.js b/javascript/app/routes/application.js
new file mode 100644
index 0000000..279bd32
--- /dev/null
+++ b/javascript/app/routes/application.js
@@ -0,0 +1,3 @@
+import Ember from 'ember';
+export default Ember.Route.extend({
+});
diff --git a/javascript/app/routes/package.js b/javascript/app/routes/package.js
new file mode 100644
index 0000000..92fea03
--- /dev/null
+++ b/javascript/app/routes/package.js
@@ -0,0 +1,38 @@
+import Ember from 'ember';
+import {urls} from '../utils/api-urls';
+
+export default Ember.Route.extend({
+ store : Ember.inject.service('store'),
+ model (params) {
+ return this.get('store').loadPackage(params.packageId)
+ .catch((e) => {console.log(e);this.transitionTo("/package-not-found");});
+ },
+ afterModel(model) {
+ document.title = model.id;
+ },
+ setupController(controller, model) {
+ this._super(controller, model);
+ const packageId = this.modelFor('package').id;
+ controller.set('bottomPanelVisible',false);
+ controller.set('createSearchUrlFunction',(query) => {
+ return urls.identifierSearchUrl(packageId,query);
+ });
+ },
+ actions : {
+ openFile (filePath) {
+ this.transitionTo('package.show.file',filePath);
+ },
+ fileOpened (filePath) {
+ if(this.get('controller')) {
+ this.set('controller.currentFile',filePath);
+ }
+ },
+ updateReferences(packageId,externalId,occName) {
+ this.set('controller.packageId',packageId);
+ this.set('controller.externalId',externalId);
+ this.set('controller.occName',occName);
+ this.set('controller.bottomPanelVisible',true);
+ this.set('controller.referencesUrl',urls.referencesUrl(packageId,externalId)+"?per_page=50");
+ }
+ }
+});
diff --git a/javascript/app/routes/package/index.js b/javascript/app/routes/package/index.js
new file mode 100644
index 0000000..e36abd5
--- /dev/null
+++ b/javascript/app/routes/package/index.js
@@ -0,0 +1,7 @@
+import Ember from 'ember';
+
+export default Ember.Route.extend({
+ afterModel : function (model,transition) {
+ transition.send("fileOpened",null);
+ }
+});
diff --git a/javascript/app/routes/package/search.js b/javascript/app/routes/package/search.js
new file mode 100644
index 0000000..7bc711b
--- /dev/null
+++ b/javascript/app/routes/package/search.js
@@ -0,0 +1,36 @@
+import Ember from 'ember';
+import {urls} from '../../utils/api-urls';
+import {goToDefinition} from '../../utils/go-to-definition';
+
+export default Ember.Route.extend({
+ store : Ember.inject.service('store'),
+ model (params) {
+ return {
+ query: params.query,
+ url: urls.identifierSearchUrl(this.modelFor('package').id,params.query)+"?per_page=20"
+ };
+ },
+ afterModel () {
+ const onmouseup = (event) => {
+ // This makes links in documentation clickable
+ if(event.target.dataset.location) {
+ let location;
+ try {
+ location = JSON.parse(event.target.dataset.location);
+ } catch (e) {
+ console.log(e);
+ }
+ if(location) {
+ goToDefinition(this.get('store'),location,event.which);
+ }
+ }
+ };
+ this._onmouseup = onmouseup;
+ document.addEventListener('mouseup',onmouseup);
+ },
+ deactivate() {
+ if(this._onmouseup) {
+ document.removeEventListener('mouseup',this._onmouseup);
+ }
+ }
+});
diff --git a/javascript/app/routes/package/show/file.js b/javascript/app/routes/package/show/file.js
new file mode 100644
index 0000000..ead6ee8
--- /dev/null
+++ b/javascript/app/routes/package/show/file.js
@@ -0,0 +1,27 @@
+import Ember from 'ember';
+
+export default Ember.Route.extend({
+ store : Ember.inject.service(),
+ model : function (params) {
+ const packageInfo = this.modelFor('package');
+ if(packageInfo.modules[params.filePath]) {
+ return this.get('store').loadHaskellModule(packageInfo.id,params.filePath)
+ .catch((e) => {console.log(e);this.transitionTo("/not-found");});
+ } else {
+ return this.get('store').loadFile(packageInfo.id,params.filePath)
+ .then((result) => {
+ document.title = packageInfo.id;
+ return result;
+ })
+ .catch((e) => {console.log(e);this.transitionTo("/not-found");});
+ }
+ },
+ afterModel (model) {
+ document.title = model.id + " - " + this.modelFor('package').id;
+ },
+ actions : {
+ didTransition : function () {
+ this.send("fileOpened",this.currentModel.id);
+ }
+ }
+});
diff --git a/javascript/app/routes/package/show/index.js b/javascript/app/routes/package/show/index.js
new file mode 100644
index 0000000..e36abd5
--- /dev/null
+++ b/javascript/app/routes/package/show/index.js
@@ -0,0 +1,7 @@
+import Ember from 'ember';
+
+export default Ember.Route.extend({
+ afterModel : function (model,transition) {
+ transition.send("fileOpened",null);
+ }
+});
diff --git a/javascript/app/routes/packages.js b/javascript/app/routes/packages.js
new file mode 100644
index 0000000..2bbf9bc
--- /dev/null
+++ b/javascript/app/routes/packages.js
@@ -0,0 +1,16 @@
+import Ember from 'ember';
+import {urls} from '../utils/api-urls';
+import config from '../config/environment';
+
+export default Ember.Route.extend({
+ model () {
+ return Ember.$.getJSON(urls.packagesUrl);
+ },
+ setupController(controller, model) {
+ this._super(controller, model);
+ controller.set('packages',model);
+ },
+ afterModel () {
+ document.title = config.APP.title;
+ }
+});
diff --git a/javascript/app/services/settings.js b/javascript/app/services/settings.js
new file mode 100644
index 0000000..a79779a
--- /dev/null
+++ b/javascript/app/services/settings.js
@@ -0,0 +1,21 @@
+import Ember from 'ember';
+import {themes} from '../utils/color-themes';
+
+export default Ember.Service.extend({
+ init() {
+ this._super(...arguments);
+ if(localStorage) {
+ const colorThemeId = localStorage.getItem("colorThemeId");
+ const colorTheme = themes[colorThemeId];
+ if(colorThemeId) {
+ this.set('colorTheme',colorTheme);
+ }
+ }
+ },
+ colorTheme : themes["darkTheme"],
+ settingsObserver : Ember.observer("colorTheme",function() {
+ if(localStorage) {
+ localStorage.setItem("colorThemeId",this.get('colorTheme').id);
+ }
+ })
+});
diff --git a/javascript/app/services/store.js b/javascript/app/services/store.js
new file mode 100644
index 0000000..cf48f9d
--- /dev/null
+++ b/javascript/app/services/store.js
@@ -0,0 +1,141 @@
+import Ember from 'ember';
+import RSVP from 'rsvp';
+import {urls} from '../utils/api-urls';
+
+
+//********************************************************************************
+//https://coderwall.com/p/zrlulq/parsing-a-link-header-in-javascript
+function unquote(value) {
+ if (value.charAt(0) == '"' && value.charAt(value.length - 1) == '"') {
+ return value.substring(1, value.length - 1);
+ } else {
+ return value;
+ }
+}
+
+function parseLinkHeader(header) {
+ if(!header) {return {}}
+ var linkexp = /<[^>]*>\s*(\s*;\s*[^\(\)<>@,;:"\/\[\]\?={} \t]+=(([^\(\)<>@,;:"\/\[\]\?={} \t]+)|("[^"]*")))*(,|$)/g;
+ var paramexp = /[^\(\)<>@,;:"\/\[\]\?={} \t]+=(([^\(\)<>@,;:"\/\[\]\?={} \t]+)|("[^"]*"))/g;
+
+ var matches = header.match(linkexp);
+ var rels = new Object();
+ for (let i = 0; i < matches.length; i++) {
+ var split = matches[i].split('>');
+ var href = split[0].substring(1);
+ var ps = split[1];
+ var link = new Object();
+ link.href = href;
+ var s = ps.match(paramexp);
+ for (let j = 0; j < s.length; j++) {
+ var p = s[j];
+ var paramsplit = p.split('=');
+ var name = paramsplit[0];
+ link[name] = unquote(paramsplit[1]);
+ }
+
+ if (link.rel != undefined) {
+ rels[link.rel] = link;
+ }
+ }
+ return rels;
+}
+//********************************************************************************
+
+
+export default Ember.Service.extend({
+ init() {
+ this.packages = {};
+ this.files = {};
+ this.haskellModules = {};
+ this.definitionSites = {};
+ this.modulePaths = {};
+ this.expressions = {};
+ this.references = {};
+ },
+ loadPackage(packageId) {
+ const packageInfo = this.packages[packageId];
+ if(packageInfo) {
+ return new RSVP.Promise((resolve) => {resolve(packageInfo);});
+ } else {
+ const url = urls.packageInfoUrl(packageId);
+ return Ember.$.getJSON(url).then((packageInfo) => {
+ this.packages[packageId] = packageInfo;
+ return packageInfo;
+ });
+ }
+ },
+ loadFile(packageId,filePath) {
+ const fileId = packageId + "/" + filePath;
+ const file = this.files[fileId];
+ if(file) {
+ return new RSVP.Promise((resolve) => {resolve(file);});
+ } else {
+ const url = urls.fileUrl(packageId,filePath);
+ return Ember.$.get({url:url,dataType:"text"}).then((text) => {
+ const file = {};
+ file.text = text;
+ file.packageId = packageId;
+ file.isHaskellModule = false;
+ file.id = filePath;
+ this.files[fileId] = file;
+ return file;
+ });
+ }
+ },
+ loadHaskellModule(packageId,filePath) {
+ const moduleId = packageId + "/" + filePath ;
+ const module = this.haskellModules[moduleId];
+ if(module) {
+ return new RSVP.Promise((resolve)=>{resolve(module);});
+ } else {
+ const url = urls.haskellModuleUrl(packageId,filePath);
+ return Ember.$.getJSON(url).then((module) => {
+ module.packageId = packageId;
+ module.isHaskellModule = true;
+ this.haskellModules[moduleId] = module;
+ return module;
+ });
+ }
+ },
+ loadDefinitionSite(packageId,moduleName,componentId,entity,name) {
+ const id = packageId + "/"+ componentId + "/" + moduleName + "/" + entity + "/" + name;
+ const definitionSite = this.definitionSites[id];
+ if(definitionSite) {
+ return new RSVP.Promise((resolve)=>{resolve(definitionSite);});
+ } else {
+ const url = urls.identifierDefinitionSiteUrl(packageId,moduleName,componentId,entity,name);
+ return Ember.$.getJSON(url).then((definitionSite) => {
+ this.definitionSites[id] = definitionSite;
+ return definitionSite;
+ });
+ }
+ },
+ loadExpressions(packageId,modulePath,lineStart,columnStart,lineEnd,columnEnd) {
+ const id = packageId + "/" + encodeURIComponent(modulePath)
+ + "/" + lineStart + "/" + columnStart + "/" + lineEnd + "/" + columnEnd;
+ const exprs = this.expressions[id];
+ if(exprs) {
+ return new RSVP.Promise((resolve)=>{resolve(exprs);});
+ } else {
+ const url = urls.expressionsUrl(packageId,modulePath,lineStart,columnStart,lineEnd,columnEnd);
+ return Ember.$.getJSON(url).then((exprs) => {
+ this.expressions[id] = exprs;
+ return exprs;
+ });
+ }
+ },
+ loadFromUrlPaginated(url) {
+ return Ember.$.getJSON(url).then((items,textStatus,jqXHR) => {
+ const linkHeaderText = jqXHR.getResponseHeader('Link');
+ const totalCountHeaderText = jqXHR.getResponseHeader('x-total-count');
+ const linkHeader = parseLinkHeader(linkHeaderText);
+ const total = parseInt(totalCountHeaderText);
+ return {
+ items:items,
+ total:total,
+ linkHeader:linkHeader
+ };
+ });
+ }
+});
diff --git a/javascript/app/styles/app.scss b/javascript/app/styles/app.scss
new file mode 100644
index 0000000..f094187
--- /dev/null
+++ b/javascript/app/styles/app.scss
@@ -0,0 +1,555 @@
+@import "ember-cli-bootstrap-4/bootstrap";
+
+body {
+ font-size:14px;
+}
+
+a, a:visited, a:focus, a:active, a:hover{
+ outline:0 none;
+}
+
+input:focus{
+ outline:none;
+}
+
+p {
+ margin-top:1rem;
+}
+
+.ember-radio-button {
+ cursor:pointer;
+}
+
+label {
+ margin-bottom:0px;
+}
+
+ul {
+ list-style: none;
+ padding : 0;
+}
+
+ol {
+ list-style: none;
+ padding : 0;
+}
+
+li {
+ list-style: none;
+}
+
+.documentation {
+ margin-top:10px;
+ li {
+ list-style: disc outside none;
+ }
+ ul {
+ padding-left:15px;
+ }
+ ol {
+ padding-left:15px;
+ }
+}
+
+.flex-container {
+ display:flex;
+ flex-direction:column;
+ height:100%;
+ width:100%;
+}
+
+.absolute-container {
+ position:absolute;
+ top:0;
+ bottom:0;
+ left:0;
+ right:0;
+}
+
+.header {
+ flex: none;
+ padding:5px;
+ img {
+ float:left;
+ }
+}
+
+.header-item {
+ display:inline-block;
+ margin-top:5px;
+ font-size : 1rem;
+ margin-right: 40px;
+ white-space: nowrap;
+ @media screen and (max-width: 700px) {
+ margin-right: 10px;
+ margin-left: 10px;
+ }
+}
+
+.content {
+ flex: auto;
+ position:relative;
+ overflow:auto;
+}
+
+.packages {
+ flex:auto;
+ overflow-y:auto;
+ li {
+ margin-bottom: 5px;
+ }
+ a {
+ margin-right:5px;
+ }
+}
+
+.package-content {
+ flex:auto;
+ position:relative;
+}
+
+.package-header {
+ padding:5px;
+}
+
+.package-header-input {
+ display:inline-block;
+ margin-right:10px;
+}
+
+.package-modules {
+ margin-left:10px;
+}
+
+.module-name {
+ font-size:0.7rem;
+}
+
+.package-search-form {
+ max-width:500px;
+ margin-bottom:10px;
+ margin-top:20px;
+}
+
+.package-header-filename {
+ white-space: nowrap;
+}
+
+.package-header-package-name {
+ margin-right:10px;
+ font-size:17px;
+}
+
+.module-search-input {
+ max-width:500px;
+ margin:5px;
+}
+
+ul.modules {
+ position:absolute;
+ top:50px;
+ bottom:0px;
+ margin:0px;
+ padding-left:15px;
+ left:0px;
+ right:0px;
+ display:flex;
+ flex-direction: column;
+ flex-wrap: wrap;
+ li {
+ margin-right: 10px;
+ }
+ overflow-x:auto;
+}
+
+.left-panel {
+ position: absolute;
+ bottom : 0;
+ top : 0;
+ left : 0;
+ width : 300px;
+}
+
+.show-left-panel-button {
+ position:absolute;
+ top:0px;
+ right:-20px;
+ z-index:2;
+ width:20px;
+ height:20px;
+ text-align:center;
+ vertical-align:middle;
+ a {
+ text-decoration:none;
+ }
+ opacity:0.6;
+ display:none;
+}
+
+.show-left-panel-button:hover {
+ opacity:1;
+ cursor:pointer;
+}
+
+.hide-file-tree {
+ position: relative;
+ top: 8px;
+ left: 3px;
+}
+
+.hide-declarations {
+ margin:7px;
+}
+
+.right-panel {
+ position: absolute;
+ bottom : 0;
+ top : 0;
+ right : 0;
+ left : 300px;
+ overflow-x: auto;
+ overflow-y: auto;
+}
+
+.file-tree-container {
+ overflow-x: hidden;
+ overflow-y: auto;
+ position: absolute;
+ bottom : 0;
+ top : 0;
+ left: 0;
+ right: 0;
+}
+
+.file-container {
+ position: absolute;
+ bottom : 0px;
+ top : 0;
+ right : 0;
+ left : 0;
+ overflow-x: auto;
+ overflow-y: auto;
+}
+
+.bottom-panel {
+ display:none;
+ position: absolute;
+ bottom : 0;
+ right : 0;
+ left : 0;
+ overflow-x: auto;
+ overflow-y: auto;
+ z-index:4;
+}
+
+.bottom-panel-header {
+ position: absolute;
+ top: 0;
+ right : 0;
+ left : 0;
+ height: 35px;
+ padding: 5px;
+}
+
+.bottom-panel-content {
+ position: absolute;
+ bottom : 0;
+ top : 35px;
+ right : 0;
+ left : 0;
+ overflow-x: auto;
+ overflow-y: auto;
+}
+
+.bottom-panel-header-options {
+ float:right;
+}
+
+.bottom-panel-header-content {
+ white-space:nowrap;
+}
+
+.highlighted-identifier {
+ border-radius: 3px;
+ box-shadow: 0 0 0 1px #B4B4B4;
+}
+
+.identifier {
+ cursor:pointer;
+}
+
+td.line-number {
+ cursor:pointer;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ width: 1%;
+ min-width: 60px;
+ text-align: left;
+ padding-left:10px;
+ opacity: 0.8;
+}
+
+td.line-number:hover {
+ opacity : 1;
+}
+
+td.line-content {
+ padding-left:5px;
+
+}
+
+$source-code-font:Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif;
+
+.source-code {
+ font-family: $source-code-font;
+ white-space:pre;
+ line-height:1.25;
+ tab-size: 4;
+}
+
+.break-word {
+ word-wrap:break-word;
+}
+
+code,pre {
+ font-family: $source-code-font !important;
+ white-space:pre;
+ line-height:1.25;
+ font-size:100%;
+ color : unset;
+}
+
+.source-code-font {
+ font-family: $source-code-font;
+ line-height:1.25;
+}
+
+.source-code-snippet {
+ padding: 4px;
+ text-decoration:none !important;
+ display:block;
+}
+
+.source-code-snippet > b {
+ border-radius: 3px;
+ border: 1px solid #B4B4B4;
+ margin: -1px;
+}
+
+.source-code-snippet:hover {
+ text-decoration:none;
+}
+
+.source-code-container {
+ margin : 5px;
+}
+
+.declarations {
+ position:fixed;
+ top:150px;
+ right:15px;
+ width: 450px;
+ z-index:1;
+ div {
+ margin : 5px;
+ }
+}
+
+.declarations-header {
+ opacity:0.9;
+ height:50px;
+}
+
+.declarations-content {
+ opacity:0.9;
+ position:absolute;
+ top:50px;
+ left:0px;
+ right:0px;
+ max-height:500px;
+ overflow-y:auto;
+ overflow-x:hidden;
+}
+
+@media screen and (max-width: 1500px) {
+ .declarations {
+ display:none;
+ }
+}
+
+.info-window-container {
+ position:absolute;
+ width:750px;
+ z-index:10;
+}
+
+.info-window-header {
+ margin:5px;
+ width: 100%;
+ cursor: move;
+ cursor: grab;
+ cursor: -moz-grab;
+ cursor: -webkit-grab;
+}
+
+.info-window-content {
+ max-height:200px;
+ overflow-x:auto;
+ overflow-y:auto;
+}
+
+.info-window-options {
+ margin-right:10px;
+ margin-left:10px;
+ float:right;
+}
+
+
+.ui-draggable-dragging .info-window-header {
+ cursor: grabbing;
+ cursor: -moz-grabbing;
+ cursor: -webkit-grabbing;
+}
+
+span.link {
+ cursor:pointer;
+ white-space:nowrap;
+}
+
+span.link:hover {
+ text-decoration:underline;
+}
+
+.ui-resizable-n {
+ height: 13px !important;;
+}
+
+.ui-resizable-w {
+ width: 13px !important;;
+}
+
+.type-info {
+ padding-top: 5px;
+ padding-bottom: 5px;
+}
+
+.type-component {
+ display: inline-block;
+}
+
+dd {
+ margin-left: 1em;
+}
+
+.autocomplete-container {
+ position:absolute;
+ z-index:10;
+ display:none;
+ left:0px;
+}
+
+ul.autocomplete-items {
+ li {
+ cursor:pointer;
+ max-height: 200px;
+ overflow: hidden;
+ }
+}
+
+.autocomplete-item {
+ padding:5px;
+}
+
+.file-tree-header {
+ position:absolute;
+ top:0;
+ left:0;
+ right:0;
+ height:50px;
+ margin:5px;
+}
+
+.file-tree-content {
+ position:absolute;
+ top:50px;
+ left:0;
+ right:0;
+ bottom:0;
+ overflow-x:auto;
+ overflow-x:auto;
+}
+
+button {
+ color:black;
+}
+
+.paginated-list-header {
+ position:absolute;
+ top:0px;
+ left:0px;
+ right:0px;
+ height:40px;
+ padding: 5px;
+ white-space:nowrap;
+}
+
+.paginated-list-content {
+ position:absolute;
+ top:40px;
+ bottom:0px;
+ left:0px;
+ right:0px;
+ overflow:auto;
+}
+
+.pagination-button {
+ font-size: 10px;
+}
+
+.search-results-header {
+ position:absolute;
+ top:0px;
+ left:0px;
+ right:0px;
+ height:35px;
+ padding: 5px;
+ white-space:nowrap;
+}
+
+.search-results-content {
+ position:absolute;
+ top:35px;
+ bottom:0px;
+ left:0px;
+ right:0px;
+}
+
+.search-result {
+ padding:5px;
+}
+
+.expression {
+ margin-bottom:15px;
+}
+
+.expressions {
+ margin:5px;
+}
+
+.file-name {
+ margin-left:5px;
+}
+
+.identifier-info {
+ margin:5px;
+}
+
+.identifier-module {
+ margin-top:10px;
+}
+
+.identifier-menu-item {
+ margin-right:10px;
+}
diff --git a/javascript/app/templates/application.hbs b/javascript/app/templates/application.hbs
new file mode 100644
index 0000000..bd64fdb
--- /dev/null
+++ b/javascript/app/templates/application.hbs
@@ -0,0 +1,26 @@
+<div class="absolute-container">
+ <div class="flex-container">
+ <div class="header">
+ <img src="/assets/haskell.ico">
+ <div class="container">
+ <span class="header-item">{{#link-to 'packages'}}Haskell packages{{/link-to}}</span>
+ <span class="header-item"><a target="_blank" href="https://github.com/alexwl/haskell-code-explorer">About</a></span>
+ <span class="header-item">
+ {{#each themes as |theme|}}
+ {{#radio-button
+ value=theme.id
+ groupValue=currentTheme
+ changed="themeChanged"}}
+ <span>{{theme.name}}</span>
+ {{/radio-button}}
+ {{/each}}
+ </span>
+ </div>
+ </div>
+ <div class="content">
+ <div class="absolute-container">
+ {{outlet}}
+ </div>
+ </div>
+ </div>
+</div>
diff --git a/javascript/app/templates/bad-url.hbs b/javascript/app/templates/bad-url.hbs
new file mode 100644
index 0000000..6b36386
--- /dev/null
+++ b/javascript/app/templates/bad-url.hbs
@@ -0,0 +1,6 @@
+<div class="container">
+ <div style="margin-top:10px">
+ <h1>Not found</h1>
+ <div><a href="/">Main page</a></div>
+ </div>
+</div>
diff --git a/javascript/app/templates/components/.gitkeep b/javascript/app/templates/components/.gitkeep
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/javascript/app/templates/components/.gitkeep
diff --git a/javascript/app/templates/components/bottom-panel.hbs b/javascript/app/templates/components/bottom-panel.hbs
new file mode 100644
index 0000000..26b1919
--- /dev/null
+++ b/javascript/app/templates/components/bottom-panel.hbs
@@ -0,0 +1,9 @@
+<div class="bottom-panel-header">
+ <span class="bottom-panel-header-content">{{yield "header"}}</span>
+ <span class="bottom-panel-header-options">
+ <a href="#" {{action "close"}}>Close</a>
+ </span>
+</div>
+<div class="bottom-panel-content">
+ {{yield "body"}}
+</div>
diff --git a/javascript/app/templates/components/expression-info.hbs b/javascript/app/templates/components/expression-info.hbs
new file mode 100644
index 0000000..509fb24
--- /dev/null
+++ b/javascript/app/templates/components/expression-info.hbs
@@ -0,0 +1,8 @@
+<div class="expressions">
+ {{#each expressions as |expression|}}
+ <div class="expression">
+ <span class="source-code">{{expression.sourceCode}}</span>
+ <br/>:: {{type-signature type=expression.info.exprType identifiers=identifiers currentLineNumber=currentLineNumber}}
+ </div>
+ {{/each}}
+</div>
diff --git a/javascript/app/templates/components/file-tree.hbs b/javascript/app/templates/components/file-tree.hbs
new file mode 100644
index 0000000..b5e38ef
--- /dev/null
+++ b/javascript/app/templates/components/file-tree.hbs
@@ -0,0 +1,8 @@
+<div class="file-tree-header">
+ <div class="input-group">
+ {{input class="form-control" value=query placeholder="Filename"}}<a class="hide-file-tree" href="#" {{action "hide"}}>Hide</a>
+ </div>
+</div>
+<div class="file-tree-content">
+ <div class="file-tree"></div>
+</div>
diff --git a/javascript/app/templates/components/haskell-module.hbs b/javascript/app/templates/components/haskell-module.hbs
new file mode 100644
index 0000000..77b9df7
--- /dev/null
+++ b/javascript/app/templates/components/haskell-module.hbs
@@ -0,0 +1,57 @@
+<div class="source-code-container"></div>
+{{#if declarations}}
+ <div class="declarations">
+ <div class="declarations-header">
+ <div class="input-group">
+ {{input class="form-control" value=query placeholder="Identifier"}}<a class="hide-declarations" href="#" {{action "toggleShowDeclarations"}}>{{showDeclarationsLabel}}</a>
+ </div>
+ </div>
+ {{#if showDeclarations}}
+ <div id="declarations-content" class="declarations-content">
+ <ul>
+ {{#infinite-list containerElementId="declarations-content" elements=filteredDeclarations perPage=30 as |declaration|}}
+ <li class="declaration">
+ <div class="declaration">
+ <a {{action "goToLine" declaration.lineNumber}} href="#"><span class="source-code-font">{{declaration.name}}{{#if declaration.declType}} :: {{type-signature-text components=declaration.declType.components}}{{/if}}</span>
+ </a><span>{{#unless declaration.isExported}}<i>(not exported)</i>{{/unless}}</span>
+ </div>
+ </li>
+ {{/infinite-list}}
+ </ul>
+ </div>
+ {{/if}}
+ </div>
+{{/if}}
+{{#info-window
+ targetElement=selectedIdentifier
+ isHoveredOverIdentifier=isHoveredOverIdentifier
+ hasSelectedExpression=hasSelectedExpression
+ containerElementId="right-panel" as |section|}}
+ {{#if (eq section "header")}}
+ {{#if hasSelectedExpression}}
+ <div>Selected expressions</div>
+ {{else}}
+ {{identifier-name
+ identifierInfo=identifierInfo
+ identifierOccurrence=identifierOccurrence
+ identifierElement=selectedIdentifier
+ currentPackageId=packageId
+ isBinder=identifierOccurrence.isBinder
+ currentLineNumber=currentLineNumber
+ findReferences=findReferences}}
+ {{/if}}
+ {{else}}
+ {{#unless hasSelectedExpression}}
+ {{identifier-info
+ identifierInfo=identifierInfo
+ identifierOccurrence=identifierOccurrence
+ identifiers=identifiers
+ currentLineNumber=currentLineNumber}}
+ {{else}}
+ {{expression-info
+ expressions=expressions
+ identifiers=identifiers
+ currentLineNumber=currentLineNumber}}
+ {{/unless}}
+ {{/if}}
+{{/info-window}}
diff --git a/javascript/app/templates/components/identifier-info.hbs b/javascript/app/templates/components/identifier-info.hbs
new file mode 100644
index 0000000..7146a2e
--- /dev/null
+++ b/javascript/app/templates/components/identifier-info.hbs
@@ -0,0 +1,39 @@
+{{#if (or identifierInfo identifierOccurrence.idOccType)}}
+ <div class="identifier-info">
+ {{#if identifierInfo}}
+ {{#if isNaughtyRecSel}}
+ <i>This record selector can never be called because its type mentions a type variable that isn't in the result type of the constructor</i>
+ {{else}}
+ {{type-signature
+ type=identifierInfo.idType
+ identifiers=identifiers
+ currentLineNumber=currentLineNumber}}
+ {{/if}}
+ {{/if}}
+ {{#if (and identifierInfo identifierOccurrence identifierOccurrence.idOccType)}}
+ <div style="height:10px"></div>
+ {{/if}}
+ {{#if (and identifierOccurrence identifierOccurrence.idOccType)}}
+ {{type-signature
+ type=identifierOccurrence.idOccType
+ identifiers=identifiers
+ currentLineNumber=currentLineNumber}}
+ {{/if}}
+ <div class="documentation">
+ {{{identifierInfo.doc}}}
+ {{{downloadedDocumentation}}}
+ </div>
+ {{#if identifierOccurrence.instanceResolution}}
+ <div style="height:10px"></div>
+ {{/if}}
+ <div>
+ {{#if identifierOccurrence.instanceResolution}}
+ {{instance-info
+ instance=identifierOccurrence.instanceResolution
+ identifiers=identifiers
+ nestedLevel=0
+ currentLineNumber=currentLineNumber}}
+ {{/if}}
+ </div>
+ </div>
+{{/if}}
diff --git a/javascript/app/templates/components/identifier-name.hbs b/javascript/app/templates/components/identifier-name.hbs
new file mode 100644
index 0000000..ca16e23
--- /dev/null
+++ b/javascript/app/templates/components/identifier-name.hbs
@@ -0,0 +1,12 @@
+<div>
+ <span class="source-code-font break-word identifier-menu-item" style={{style}}>{{#if identifierInfo.demangledOccName}}{{identifierInfo.demangledOccName}}{{else}}{{name}}{{/if}}</span>
+ {{#unless isBinder}}
+ {{#if location}}
+ <span class="identifier-menu-item">{{location}}</span>
+ <span class="link identifier-menu-item" onmouseup={{action "goToDefinition"}}>Go to definition</span>
+ {{/if}}
+ {{/unless}}
+ {{#if isExternalIdentifier}}
+ <span class="link identifier-menu-item" onmouseup={{action "findReferences" identifierInfo currentPackageId}}>Find references</span>
+ {{/if}}
+</div>
diff --git a/javascript/app/templates/components/infinite-list.hbs b/javascript/app/templates/components/infinite-list.hbs
new file mode 100644
index 0000000..ab103d4
--- /dev/null
+++ b/javascript/app/templates/components/infinite-list.hbs
@@ -0,0 +1,3 @@
+{{#each renderedElements as |element|}}
+ {{yield element}}
+{{/each}}
diff --git a/javascript/app/templates/components/info-window.hbs b/javascript/app/templates/components/info-window.hbs
new file mode 100644
index 0000000..003e2c5
--- /dev/null
+++ b/javascript/app/templates/components/info-window.hbs
@@ -0,0 +1,12 @@
+<div class="info-window">
+ <div class="info-window-header">
+ <div class="info-window-options">
+ <a href="#" {{action "pin"}}>{{#if isPinned}}Unpin{{else}}Pin{{/if}}</a>
+ <a href="#" {{action "close"}}>Close</a>
+ </div>
+ {{yield "header"}}
+ </div>
+ <div class="info-window-content">
+ {{yield "body"}}
+ </div>
+</div>
diff --git a/javascript/app/templates/components/input-with-autocomplete.hbs b/javascript/app/templates/components/input-with-autocomplete.hbs
new file mode 100644
index 0000000..eb0100d
--- /dev/null
+++ b/javascript/app/templates/components/input-with-autocomplete.hbs
@@ -0,0 +1,19 @@
+<div class="input-group">
+ {{input class="form-control search-input" value=query placeholder=placeholder}}
+ <div class="autocomplete-container">
+ {{# if items}}
+ <ul class="autocomplete-items">
+ {{#each items as |item index|}}
+ <li class="{{if (eq index highlightedItemIndex) "highlighted"}}" onclick={{action "goToDefinition" item}}>
+ <div class="autocomplete-item">
+ {{yield item}}
+ </div>
+ </li>
+ {{/each}}
+ </ul>
+ {{/if}}
+ </div>
+ <div class="input-group-append">
+ <button id="search-input" class="btn btn-outline-secondary" {{action "onSubmit" query}}>Search</button>
+ </div>
+</div>
diff --git a/javascript/app/templates/components/instance-info.hbs b/javascript/app/templates/components/instance-info.hbs
new file mode 100644
index 0000000..b5c2fdf
--- /dev/null
+++ b/javascript/app/templates/components/instance-info.hbs
@@ -0,0 +1,10 @@
+{{#if instance}}
+ <div style={{style}}>
+ <span class="source-code-font">
+ instance {{type-signature type=instance.instanceType identifiers=identifiers currentLineNumber=currentLineNumber noExpand=true}}</span>
+ (<span class="link" onclick={{action "goToDefinition"}}>Go to definition</span>)
+ {{#each instance.instances as |inst|}}
+ {{instance-info instance=inst identifiers=identifiers nestedLevel=nextNestedLevel currentLineNumber=currentLineNumber}}
+ {{/each}}
+ </div>
+{{/if}}
diff --git a/javascript/app/templates/components/paginated-list.hbs b/javascript/app/templates/components/paginated-list.hbs
new file mode 100644
index 0000000..2ae9813
--- /dev/null
+++ b/javascript/app/templates/components/paginated-list.hbs
@@ -0,0 +1,17 @@
+<div class="paginated-list-header">
+ <span>Found {{total}}</span>
+ {{#if (or next prev)}}
+ &nbsp;
+ &nbsp;
+ <span>
+ {{#if first}}<button class="btn btn-outline-secondary btn-sm" {{action "update" first.href}}>&lt;&lt;</button>{{/if}}
+ {{#if prev}}<button button class="btn btn-outline-secondary btn-sm" {{action "update" prev.href}}>&lt;</button>{{/if}}
+ {{firstItemOnPage}} - {{lastItemOnPage}}
+ {{#if next}}<button button class="btn btn-outline-secondary btn-sm" {{action "update" next.href}}>&gt;</button>{{/if}}
+ {{#if last}}<button button class="btn btn-outline-secondary btn-sm" {{action "update" last.href}}>&gt;&gt;</button>{{/if}}
+ </span>
+ {{/if}}
+</div>
+<div class="paginated-list-content">
+ {{yield items}}
+</div>
diff --git a/javascript/app/templates/components/resizable-panel.hbs b/javascript/app/templates/components/resizable-panel.hbs
new file mode 100644
index 0000000..0fd3aa7
--- /dev/null
+++ b/javascript/app/templates/components/resizable-panel.hbs
@@ -0,0 +1,5 @@
+<div class="absolute-container">{{yield (action "hide")}}
+ <div onclick={{action "hide"}} class="show-left-panel-button">
+ {{{hideButtonLabel}}}
+ </div>
+</div>
diff --git a/javascript/app/templates/components/text-file.hbs b/javascript/app/templates/components/text-file.hbs
new file mode 100644
index 0000000..6a50453
--- /dev/null
+++ b/javascript/app/templates/components/text-file.hbs
@@ -0,0 +1,3 @@
+<div class="source-code-container">
+{{{html}}}
+</div>
diff --git a/javascript/app/templates/components/type-component.hbs b/javascript/app/templates/components/type-component.hbs
new file mode 100644
index 0000000..775324e
--- /dev/null
+++ b/javascript/app/templates/components/type-component.hbs
@@ -0,0 +1,3 @@
+{{#if (and expanded identifierInfo)}}({{/if}}
+<span class="source-code {{linkClass}}" onmouseup={{action "onmouseup"}}>{{occName}}</span>
+{{#if (and expanded identifierInfo)}} :: {{type-signature type=identifierInfo.idType identifiers=identifiers noExpand=true}}){{/if}}
diff --git a/javascript/app/templates/components/type-signature-text.hbs b/javascript/app/templates/components/type-signature-text.hbs
new file mode 100644
index 0000000..505a466
--- /dev/null
+++ b/javascript/app/templates/components/type-signature-text.hbs
@@ -0,0 +1,2 @@
+{{!-- No newlines to get rid of spaces between spans --}}
+{{#each components as |typeComponent|}}{{#if (eq typeComponent.tag "Text")}}{{typeComponent.contents}}{{else}}{{typeComponent.name}}{{/if}}{{/each}}
diff --git a/javascript/app/templates/components/type-signature.hbs b/javascript/app/templates/components/type-signature.hbs
new file mode 100644
index 0000000..249f1b8
--- /dev/null
+++ b/javascript/app/templates/components/type-signature.hbs
@@ -0,0 +1,10 @@
+{{!-- No newlines to get rid of spaces between spans --}}
+{{#each components as |typeComponent|}}{{#if (eq typeComponent.tag "Text")}}<span class="source-code">{{typeComponent.contents}}</span>{{else}}{{type-component occName=typeComponent.name internalId=typeComponent.internalId identifiers=identifiers currentLineNumber=currentLineNumber}}{{/if}}{{/each}}
+{{#unless noExpand}}
+ {{#if type.componentsExpanded}}
+ <div style="margin-top:5px">
+ <button class="btn btn-outline-secondary btn-sm" {{action "toggleExpandTypeSynonyms"}}>{{expandTypeSynonymsLabel}}
+ </button>
+ </div>
+ {{/if}}
+{{/unless}}
diff --git a/javascript/app/templates/package.hbs b/javascript/app/templates/package.hbs
new file mode 100644
index 0000000..c8ed0dc
--- /dev/null
+++ b/javascript/app/templates/package.hbs
@@ -0,0 +1,57 @@
+<div class="flex-container">
+ <div class="package-header">
+ <span class="package-header-package-name">{{#link-to 'package' model}}{{model.id}}{{/link-to}}</span>
+ <span class="package-header-input">
+ {{#input-with-autocomplete
+ onSubmit=(action 'searchIdentifier')
+ createSearchUrlFunction=createSearchUrlFunction
+ maxItems=10
+ selectItem=(action 'showIdentifier')
+ placeholder="Identifier" as |identifier|}}
+ <span class="source-code-font">{{identifier.demangledOccName}} :: {{type-signature-text components=identifier.idType.components}}</span>
+ <div class="module-name">
+ {{#if identifier.locationInfo.modulePath}}
+ {{identifier.locationInfo.modulePath}}
+ {{else}}
+ {{identifier.locationInfo.moduleName}}
+ {{/if}}
+ </div>
+ {{/input-with-autocomplete}}
+ </span>
+ {{#if currentFile}}
+ <span class="package-header-filename">
+ {{currentFile}}
+ </span>
+ {{/if}}
+ </div>
+ <div class="package-content">
+ {{#resizable-panel class="left-panel" alsoResizeElementId="#right-panel" as |hide|}}
+ <div class="file-tree-container">
+ {{file-tree directoryTree=model.directoryTree openFile="openFile" currentFile=currentFile packageId=model.id hide=hide}}
+ </div>
+ {{/resizable-panel}}
+ <div id="right-panel" class="right-panel">
+ <div id="file-container" class="file-container">
+ {{outlet}}
+ </div>
+ {{#bottom-panel visible=bottomPanelVisible topPanelElementId="#file-container" containerElementId="#right-panel" as |section|}}
+ {{#if (eq section "header")}}
+ References to <b><span class="source-code">{{occName}}</span></b> in <span class="source-code">{{packageId}}</span>
+ {{else}}
+ {{#paginated-list url=referencesUrl as |files|}}
+ <ul>
+ {{#each files as |file|}}
+ <li>
+ <div class="file-name"><a href="/package/{{packageId}}/show/{{file.name}}">{{file.name}}</a></div>
+ {{#each file.references as |reference|}}
+ <a class="source-code source-code-snippet" href="/package/{{packageId}}/show/{{file.name}}#L{{reference.idSrcSpan.line}}">{{{reference.sourceCodeHtml}}}</a>
+ {{/each}}
+ </li>
+ {{/each}}
+ </ul>
+ {{/paginated-list}}
+ {{/if}}
+ {{/bottom-panel}}
+ </div>
+ </div>
+</div>
diff --git a/javascript/app/templates/package/index.hbs b/javascript/app/templates/package/index.hbs
new file mode 100644
index 0000000..e9bc592
--- /dev/null
+++ b/javascript/app/templates/package/index.hbs
@@ -0,0 +1,12 @@
+<div class="package-modules">
+ <div class="module-search-input">
+ {{input class="form-control" type="text" value=query placeholder="Module name"}}
+ </div>
+ <ul class="modules">
+ {{#each modulesFiltered as |module|}}
+ <li>
+ <a href="/package/{{model.id}}/show/{{module}}">{{module}}</a>
+ </li>
+ {{/each}}
+ </ul>
+</div>
diff --git a/javascript/app/templates/package/search.hbs b/javascript/app/templates/package/search.hbs
new file mode 100644
index 0000000..ebc4d52
--- /dev/null
+++ b/javascript/app/templates/package/search.hbs
@@ -0,0 +1,21 @@
+<div class="search-results-header">
+ Query : {{model.query}}
+</div>
+<div class="search-results-content">
+ {{#paginated-list url=model.url as |identifiers|}}
+ <ul>
+ {{#each identifiers as |identifier|}}
+ <li class="search-result">
+ <span class="source-code" >{{identifier.demangledOccName}} :: {{type-signature-text components=identifier.idType.components}}</span>
+ <div><a href="#" onmouseup={{action "goToDefinition" identifier.locationInfo}}>Go to definition</a></div>
+ <div class="identifier-module">
+ {{#if identifier.locationInfo.modulePath}}
+ Defined in <a href="/package/{{identifier.locationInfo.packageId.name}}-{{identifier.locationInfo.packageId.version}}/show/{{identifier.locationInfo.modulePath}}">{{identifier.locationInfo.modulePath}}</a>
+ {{/if}}
+ </div>
+ <div>{{{identifier.doc}}}</div>
+ </li>
+ {{/each}}
+ </ul>
+ {{/paginated-list}}
+</div>
diff --git a/javascript/app/templates/package/show.hbs b/javascript/app/templates/package/show.hbs
new file mode 100644
index 0000000..c24cd68
--- /dev/null
+++ b/javascript/app/templates/package/show.hbs
@@ -0,0 +1 @@
+{{outlet}}
diff --git a/javascript/app/templates/package/show/file.hbs b/javascript/app/templates/package/show/file.hbs
new file mode 100644
index 0000000..b127fd7
--- /dev/null
+++ b/javascript/app/templates/package/show/file.hbs
@@ -0,0 +1,16 @@
+{{#if model.isHaskellModule}}
+ {{haskell-module
+ path=model.id
+ name=model.name
+ packageId=model.packageId
+ componentId=model.componentId
+ html=model.sourceCodeHtml
+ identifiers=model.identifiers
+ occurrences=model.occurrences
+ colorTheme=settings.colorTheme
+ declarations=model.declarations
+ findReferences=(action "findReferences")
+ }}
+{{else}}
+ {{text-file text=model.text path=model.id}}
+{{/if}}
diff --git a/javascript/app/templates/packages.hbs b/javascript/app/templates/packages.hbs
new file mode 100644
index 0000000..6dc4b7b
--- /dev/null
+++ b/javascript/app/templates/packages.hbs
@@ -0,0 +1,26 @@
+<div class="flex-container container">
+ <div>
+ <!-- <p class="lead"><b>Haskell code explorer</b> </p> -->
+ <div class="package-search-form">
+ {{input class="form-control" type="text" value=query placeholder="Package name"}}
+ <span>Number of packages : {{packages.length}}</span>
+ </div>
+ </div>
+ <div id="packages" class="packages">
+ <ul>
+ {{#infinite-list containerElementId="packages" elements=packages perPage=80 as |package|}}
+ <li>
+ {{#each package.versions as |version index|}}
+ {{#link-to 'package' (concat package.name "-" version)}}
+ {{#if (gt index 0)}}
+ {{version}}
+ {{else}}
+ {{package.name}}-{{version}}
+ {{/if}}
+ {{/link-to}}
+ {{/each}}
+ </li>
+ {{/infinite-list}}
+ </ul>
+ </div>
+</div>
diff --git a/javascript/app/utils/api-urls.js b/javascript/app/utils/api-urls.js
new file mode 100644
index 0000000..b2748b6
--- /dev/null
+++ b/javascript/app/utils/api-urls.js
@@ -0,0 +1,29 @@
+import config from '../config/environment';
+
+export const urls = {
+ packageInfoUrl : function(packageId) {
+ return config.APP.staticUrlPrefix+"/"+packageId+"/"+config.APP.haskellCodeExplorerDirectory+"/packageInfo.json";
+ },
+ fileUrl : function(packageId,filePath) {
+ return config.APP.staticUrlPrefix+"/"+packageId+"/"+filePath;
+ },
+ haskellModuleUrl : function (packageId,filePath) {
+ return config.APP.staticUrlPrefix+"/"+packageId+"/"+config.APP.haskellCodeExplorerDirectory+"/"+encodeURIComponent(encodeURIComponent(filePath))+ ".json";
+ },
+ packagesUrl : config.APP.apiUrlPrefix + "/packages",
+ identifierDefinitionSiteUrl : function(packageId,moduleName,componentId,entity,name) {
+ return config.APP.apiUrlPrefix + "/definitionSite/" + packageId+"/"+componentId+"/"+moduleName+"/"+entity+"/"+encodeURIComponent(name).replace(/\./g, '%2E');
+ },
+ modulePathUrl : function (packageId,moduleName,componentId) {
+ return config.APP.apiUrlPrefix + "/modulePath/"+packageId+"/"+componentId+"/"+moduleName;
+ },
+ expressionsUrl : function (packageId,modulePath,lineStart,columnStart,lineEnd,columnEnd) {
+ return config.APP.apiUrlPrefix + "/expressions/"+packageId+"/"+encodeURIComponent(modulePath) +"/"+lineStart+"/"+columnStart+"/"+lineEnd+"/"+columnEnd;
+ },
+ referencesUrl : function (packageId,externalId) {
+ return config.APP.apiUrlPrefix + "/references/"+packageId+"/"+encodeURIComponent(externalId);
+ },
+ identifierSearchUrl : function (packageId,query) {
+ return config.APP.apiUrlPrefix + "/identifiers/"+packageId+"/"+encodeURIComponent(query).replace(/\./g, '%2E');
+ }
+}
diff --git a/javascript/app/utils/color-themes.js b/javascript/app/utils/color-themes.js
new file mode 100644
index 0000000..0a563ff
--- /dev/null
+++ b/javascript/app/utils/color-themes.js
@@ -0,0 +1,188 @@
+function colorThemeToCss(colorTheme) {
+ const css = `
+ body {
+ color: ${colorTheme.defaultColor} !important;
+ background-color: ${colorTheme.backgroundColor} !important;
+ }
+ input {
+ color: ${colorTheme.defaultColor} !important;
+ background-color: ${colorTheme.backgroundColor} !important;
+ border-color: ${colorTheme.borderColor} !important;
+ }
+ .package-content {
+ border-top: 1px solid ${colorTheme.borderColor} !important;
+ }
+ .header a {
+ color : ${colorTheme.menuLinkColor} !important;
+ }
+ a {
+ color: ${colorTheme.typeColor} !important;
+ }
+ span.link {
+ color: ${colorTheme.typeColor} !important;
+ }
+ .header {
+ background-color: ${colorTheme.menuColor} !important;
+ border-bottom: 1px solid ${colorTheme.borderColor} !important;
+ }
+ .declarations-content {
+ background-color: ${colorTheme.navigationPanelColor} !important;
+ border: 1px solid ${colorTheme.borderColor} !important;
+ }
+ .declarations-header {
+ background-color: ${colorTheme.navigationPanelColor} !important;
+ border: 1px solid ${colorTheme.borderColor} !important;
+ }
+ li.declaration {
+ border-bottom: 1px solid ${colorTheme.borderColor} !important;
+ }
+ .left-panel {
+ background-color: ${colorTheme.navigationPanelColor} !important;
+ border-right: 1px solid ${colorTheme.borderColor} !important;
+ }
+ .show-left-panel-button {
+ background-color: ${colorTheme.navigationPanelColor} !important;
+ border-right:1px solid ${colorTheme.borderColor} !important;
+ border-bottom:1px solid ${colorTheme.borderColor} !important;
+ }
+ .right-panel {
+ background-color: ${colorTheme.backgroundColor} !important;
+ }
+ a.jstree-anchor {
+ color: ${colorTheme.defaultColor} !important;
+ }
+ .declaration > a {
+ color: ${colorTheme.defaultColor} !important;
+ }
+ .highlighted-line {
+ background : ${colorTheme.highlightedLineColor} !important;
+ }
+ table.source-code {
+ background-color: ${colorTheme.backgroundColor} !important;
+ color: ${colorTheme.defaultColor} !important;
+ }
+ .jstree-clicked {
+ background-color: ${colorTheme.backgroundColor} !important;
+ }
+ .jstree-hovered {
+ background-color: ${colorTheme.backgroundColor} !important;
+ }
+ ul.autocomplete-items {
+ background-color: ${colorTheme.backgroundColor} !important;
+ border-top: 1px solid ${colorTheme.borderColor} !important;
+ border-left: 1px solid ${colorTheme.borderColor} !important;
+ border-right: 1px solid ${colorTheme.borderColor} !important;
+ }
+ ul.autocomplete-items > li {
+ border-bottom: 1px solid ${colorTheme.borderColor} !important;
+ }
+ ul.autocomplete-items > li:hover {
+ background-color: ${colorTheme.highlightedLineColor} !important;
+ }
+ ul.autocomplete-items > li.highlighted {
+ background-color: ${colorTheme.highlightedLineColor} !important;
+ }
+ .source-code-snippet {
+ color: ${colorTheme.defaultColor} !important;
+ border-bottom: 1px solid ${colorTheme.borderColor} !important;
+ }
+ .source-code-snippet:hover {
+ background-color: ${colorTheme.highlightedLineColor} !important;
+ }
+ .bottom-panel {
+ background-color: ${colorTheme.backgroundColor} !important;
+ border-top: 1px solid ${colorTheme.borderColor} !important;
+ }
+ .bottom-panel-header {
+ border-bottom: 1px solid ${colorTheme.borderColor} !important;
+ }
+ .paginated-list-header {
+ border-bottom: 1px solid ${colorTheme.borderColor} !important;
+ }
+ li.search-result {
+ border-bottom: 1px solid ${colorTheme.borderColor} !important;
+ }
+ .search-results-header {
+ border-bottom: 1px solid ${colorTheme.borderColor} !important;
+ }
+ .info-window-content {
+ border-top: 1px solid ${colorTheme.borderColor} !important;
+ }
+ .info-window {
+ border: 1px solid ${colorTheme.borderColor} !important;
+ background-color:${colorTheme.infoWindowColor} !important;
+ color: ${colorTheme.defaultColor} !important;
+ }
+ .type-info {
+ border-top: 1px solid ${colorTheme.borderColor} !important;
+ }`;
+ return css;
+}
+
+const darkTheme = {
+ id: "darkTheme",
+ name: "Dark theme",
+ description: "Dark theme (Monokai based)",
+ defaultColor: "#F8F8F2",
+ backgroundColor: "#272822",
+ typeColor: "#66D9EF",
+ literalColor: "#E6DB74",
+ topLevelIdFromCurrentModule : "#A6E22E",
+ localIdentifierColor: ["#F0A3FF","#0075DC","#993F00",
+ "#2BCE48","#FFCC99","#808080","#94FFB5","#8F7C00",
+ "#C20088","#FFA405","#FFA8BB","#426600","#FF0010",
+ "#5EF1F2","#00998F","#E0FF66","#FFFF80",
+ "#FFFF00","#FF5005"],
+ menuColor: "#3c3b37",
+ menuLinkColor : "#F8F8F2",
+ infoWindowColor: "#3c3b37",
+ navigationPanelColor: "#3c3b37",
+ linkColor : "#0366d6",
+ borderColor: "#535557",
+ highlightedLineColor: "#4a4a4a"
+};
+
+const lightTheme = {
+ id: "lightTheme",
+ name: "Light theme",
+ description: "Light theme (Github based)",
+ defaultColor: "#24292e",
+ backgroundColor: "#ffffff",
+ typeColor: "#005cc5",
+ literalColor: "#032f62",
+ topLevelIdFromCurrentModule : "#6f42c1",
+ localIdentifierColor: ["#005C31",
+ "#2BCE48","#808080","#8F7C00",
+ "#C20088","#FFA405","#ffa8bb","#426600","#FF0010",
+ "#09d7d8","#00998F","#990000","#FF5005"],
+ menuColor: "#f2f4f8",
+ menuLinkColor : "#24292e",
+ infoWindowColor: "#f2f4f8",
+ navigationPanelColor: "#f2f4f8",
+ linkColor : "#0366d6",
+ borderColor: "#e1e4e8",
+ highlightedLineColor: "#eaeaea"
+};
+
+function updateColorThemeCss (colorTheme) {
+ const newStyle = document.createElement('style');
+ newStyle.type = 'text/css';
+ newStyle.innerHTML = colorThemeToCss(colorTheme);
+ newStyle.id = 'color-theme';
+ const oldStyle = document.querySelector("style#color-theme");
+ if(oldStyle) {
+ oldStyle.parentElement.removeChild(oldStyle);
+ }
+ document.getElementsByTagName('head')[0].appendChild(newStyle);
+}
+
+const themes = {
+ darkTheme: darkTheme,
+ lightTheme: lightTheme
+};
+
+export {
+ updateColorThemeCss,
+ colorThemeToCss,
+ themes
+}
diff --git a/javascript/app/utils/go-to-definition.js b/javascript/app/utils/go-to-definition.js
new file mode 100644
index 0000000..e05f6bf
--- /dev/null
+++ b/javascript/app/utils/go-to-definition.js
@@ -0,0 +1,95 @@
+function exactLocationToUrl(exactLocation) {
+ const modulePath = exactLocation.modulePath;
+ const packageId = exactLocation.packageId.name + "-" + exactLocation.packageId.version;
+ let hash = "";
+ if(exactLocation.startLine != 1) {
+ hash = "#L" + exactLocation.startLine;
+ }
+ return "/package/"+packageId+"/show/"+modulePath+hash;
+}
+
+function hackageUrl(packageId,locationInfo) {
+ const dasherizedModuleName = locationInfo.moduleName.replace(/\./g,'-');
+ let key;
+ if(locationInfo.entity === "Val") {
+ key = "v";
+ } else {
+ key = "t";
+ }
+ let hash = "";
+ if(locationInfo.entity === "Val" || locationInfo.entity === "Typ") {
+ hash = "#"+key+":"+locationInfo.haddockAnchorId;
+ }
+ return "https://hackage.haskell.org/package/"+packageId+"/docs/"+dasherizedModuleName+".html"+hash;
+}
+
+function openUrl(buttonId,url) {
+ if(buttonId === 2) {//middle mouse button
+ window.open(url, '_blank');
+ } else if(buttonId == 1) {//left mouse button
+ window.location = url;
+ }
+ return false;
+}
+
+function saveCurrentLocation(currentLineNumber) {
+ if(currentLineNumber) {
+ const url = window.location.origin + window.location.pathname + "#L" + currentLineNumber;
+ if(location.href != url) {
+ window.location.hash = "#L" + currentLineNumber;
+ }
+ }
+}
+
+function goToDefinition(store,locationInfo,buttonId,currentLineNumber) {
+ if(locationInfo.tag === "ExactLocation") {
+ const url = exactLocationToUrl(locationInfo);
+ if(locationInfo.startLine !== currentLineNumber) {
+ saveCurrentLocation(currentLineNumber);
+ }
+ openUrl(buttonId,url);
+ } else if(locationInfo.tag === "ApproximateLocation") {
+ const packageId = locationInfo.packageId.name+"-"+locationInfo.packageId.version;
+ if(locationInfo.entity === "Mod") {
+ store.loadDefinitionSite(packageId,
+ locationInfo.moduleName,
+ locationInfo.componentId,
+ locationInfo.entity,
+ locationInfo.moduleName)
+ .then((defSite) => {
+ const packageId = defSite.location.packageId.name + "-" + defSite.location.packageId.version;
+ openUrl(buttonId,"/package/" + packageId + "/show/" + defSite.location.modulePath);
+ }).catch(() => {
+ openUrl(buttonId,hackageUrl(packageId,locationInfo));
+ });
+ } else {
+ store.loadDefinitionSite(packageId,
+ locationInfo.moduleName,
+ locationInfo.componentId,
+ locationInfo.entity,
+ locationInfo.name)
+ .then((definitionSite) => {
+ if(definitionSite.location.tag === "ExactLocation") {
+ const url = exactLocationToUrl(definitionSite.location);
+ if(locationInfo.startLine !== currentLineNumber) {
+ saveCurrentLocation(currentLineNumber);
+ }
+ openUrl(buttonId,url);
+ } else {
+ saveCurrentLocation(currentLineNumber);
+ openUrl(buttonId,hackageUrl(packageId,locationInfo));
+ }
+ }).catch((e) => {
+ console.log(e);
+ saveCurrentLocation(currentLineNumber);
+ openUrl(buttonId,hackageUrl(packageId,locationInfo));
+ });
+ }
+ } else {
+ alert('No location info');
+ }
+}
+
+export {
+ goToDefinition,openUrl
+}
diff --git a/javascript/app/utils/line-selection.js b/javascript/app/utils/line-selection.js
new file mode 100644
index 0000000..d6d0976
--- /dev/null
+++ b/javascript/app/utils/line-selection.js
@@ -0,0 +1,111 @@
+function initializeLineSelection(sourceCodeContainerElement,component) {
+ const lineNumbers = Array.prototype.slice.call(sourceCodeContainerElement.querySelectorAll("td.line-number"));
+ if(lineNumbers.length > 0) {
+ const onhashchange = function () {
+ highlightSelectedLines(sourceCodeContainerElement);
+ }
+ window.addEventListener("hashchange",onhashchange);
+ component._onhashchange = onhashchange;
+
+ let shiftPressed;
+ const onkeydown = function (event) {
+ if(event.keyCode === 16) { shiftPressed = true; }
+ };
+ const onkeyup = function (event) {
+ if(event.keyCode === 16) { shiftPressed = false; }
+ };
+
+ document.addEventListener('keydown',onkeydown);
+ document.addEventListener('keyup',onkeyup);
+ component._onkeydown = onkeydown;
+ component._onkeyup = onkeyup;
+
+ let selectedLine1,selectedLine2;
+ lineNumbers.forEach((lineNumberElement) => {
+ lineNumberElement.onclick = function() {
+ const number = parseInt(this.textContent);
+ if(shiftPressed && selectedLine1) {
+ if(selectedLine1 != number) {
+ selectedLine2 = number;
+ if(selectedLine1 < selectedLine2) {
+ highlightLines(sourceCodeContainerElement,selectedLine1,selectedLine2);
+ window.location.hash = "L"+selectedLine1+"-L"+selectedLine2;
+ } else {
+ highlightLines(sourceCodeContainerElement,selectedLine2,selectedLine1);
+ window.location.hash = "L"+selectedLine2+"-L"+selectedLine1;
+ }
+ }
+ } else {
+ selectedLine1 = number;
+ selectedLine2 = null;
+ highlightLines(sourceCodeContainerElement,selectedLine1,selectedLine1);
+ window.location.hash = "L"+number;
+ }
+ }
+ });
+ const lines = highlightSelectedLines(sourceCodeContainerElement);
+ if(lines.length) {
+ selectedLine1 = lines[0];
+ selectedLine2 = lines[1];
+ }
+ }
+}
+
+function highlightSelectedLines (sourceCodeContainerElement) {
+ const lineInfo = window.location.hash.slice(1);
+ if(lineInfo) {
+ if(lineInfo.includes('-')) {
+ const lines = lineInfo.split("-");
+ const lineNumber1 = parseInt(lines[0].substring(1));
+ const lineNumber2 = parseInt(lines[1].substring(1));
+ if(lineNumber1 && lineNumber2 && lineNumber1 <= lineNumber2) {
+ highlightLines(sourceCodeContainerElement,lineNumber1,lineNumber2);
+ const line = sourceCodeContainerElement.querySelector("td#LC"+lineNumber1);
+ if(line) {
+ scrollLineIntoView(line,sourceCodeContainerElement);
+ }
+ return [lineNumber1,lineNumber2];
+ }
+ } else {
+ const lineNumber = parseInt(lineInfo.substring(1));
+ if(lineNumber) {
+ highlightLines(sourceCodeContainerElement,lineNumber,lineNumber);
+ const line = sourceCodeContainerElement.querySelector("td#LC"+lineNumber);
+ if(line) {
+ scrollLineIntoView(line,sourceCodeContainerElement);
+ }
+ return [lineNumber];
+ }
+ }
+ } else {
+ highlightLines(sourceCodeContainerElement,0,0);
+ return [];
+ }
+}
+
+function scrollLineIntoView(lineElement,sourceCodeContainerElement) {
+ lineElement.parentNode.scrollIntoView();
+ const container = sourceCodeContainerElement.parentNode.parentNode;
+ const windowHeight = container.offsetHeight;
+ const fullHeight = sourceCodeContainerElement.offsetHeight;
+
+ if(fullHeight - container.scrollTop > windowHeight) {
+ container.scrollTop = container.scrollTop - (windowHeight/2 - 20);
+ }
+}
+
+function highlightLines(parentElement,startLine,endLine) {
+ const lineElements = Array.prototype.slice.call(parentElement.querySelectorAll("td.line-content"));
+ lineElements.forEach((lineElement) => {
+ const number = parseInt(lineElement.id.substring(2)); //<td "id"="LC10">...</td>
+ if(number >= startLine && number <= endLine) {
+ lineElement.classList.add('highlighted-line');
+ } else {
+ lineElement.classList.remove('highlighted-line');
+ }
+ });
+}
+
+export {
+ initializeLineSelection,highlightLines,highlightSelectedLines
+}
diff --git a/javascript/bower.json b/javascript/bower.json
new file mode 100644
index 0000000..9b3b4a5
--- /dev/null
+++ b/javascript/bower.json
@@ -0,0 +1,6 @@
+{
+ "name": "haskell-code-explorer",
+ "dependencies": {
+ "pace": "^1.0.2"
+ }
+}
diff --git a/javascript/config/environment.js b/javascript/config/environment.js
new file mode 100644
index 0000000..5e53024
--- /dev/null
+++ b/javascript/config/environment.js
@@ -0,0 +1,64 @@
+/* eslint-env node */
+'use strict';
+
+module.exports = function(environment) {
+ let ENV = {
+ modulePrefix: 'haskell-code-explorer',
+ environment,
+ rootURL: '/',
+ locationType: 'auto',
+ EmberENV: {
+ FEATURES: {
+ // Here you can enable experimental features on an ember canary build
+ // e.g. 'with-controller': true
+ },
+ EXTEND_PROTOTYPES: {
+ // Prevent Ember Data from overriding Date.parse.
+ Date: false
+ }
+ },
+ pace: {
+ theme: 'minimal',
+ color: 'silver',
+ target: 'body',
+ elements: {
+ checkInterval: 100,
+ selectors: ['body', '.ember-view']
+ },
+ ajax: false
+ },
+ APP: {
+ staticUrlPrefix: "/files",
+ apiUrlPrefix: "/api",
+ haskellCodeExplorerDirectory: ".haskell-code-explorer",
+ title: "Haskell code explorer"
+ }
+ };
+
+ if (environment === 'development') {
+ // ENV.APP.LOG_RESOLVER = true;
+ // ENV.APP.LOG_ACTIVE_GENERATION = true;
+ // ENV.APP.LOG_TRANSITIONS = true;
+ // ENV.APP.LOG_TRANSITIONS_INTERNAL = true;
+ // ENV.APP.LOG_VIEW_LOOKUPS = true;
+ }
+
+ if (environment === 'test') {
+ // Testem prefers this...
+ ENV.locationType = 'none';
+
+ // keep test console output quieter
+ ENV.APP.LOG_ACTIVE_GENERATION = false;
+ ENV.APP.LOG_VIEW_LOOKUPS = false;
+
+ ENV.APP.autoboot = false;
+
+ ENV.APP.rootElement = '#ember-testing';
+ }
+
+ if (environment === 'production') {
+
+ }
+
+ return ENV;
+};
diff --git a/javascript/config/targets.js b/javascript/config/targets.js
new file mode 100644
index 0000000..df7664c
--- /dev/null
+++ b/javascript/config/targets.js
@@ -0,0 +1,9 @@
+/* eslint-env node */
+module.exports = {
+ browsers: [
+ 'ie 9',
+ 'last 1 Chrome versions',
+ 'last 1 Firefox versions',
+ 'last 1 Safari versions'
+ ]
+};
diff --git a/javascript/ember-cli-build.js b/javascript/ember-cli-build.js
new file mode 100644
index 0000000..0178882
--- /dev/null
+++ b/javascript/ember-cli-build.js
@@ -0,0 +1,21 @@
+/* eslint-env node */
+'use strict';
+
+const EmberApp = require('ember-cli/lib/broccoli/ember-app');
+
+module.exports = function(defaults) {
+ let app = new EmberApp(defaults, {
+ 'ember-cli-bootstrap-4': {
+ js: null
+ },
+ 'ember-cli-babel': {
+ includePolyfill: true
+ }
+ });
+ app.import('vendor/jquery-ui-1.12.1.custom/jquery-ui.min.js')// only draggable and resizable
+ app.import('vendor/jquery-ui-1.12.1.custom/jquery-ui.structure.min.css')
+ app.import('node_modules/jstree/dist/jstree.min.js');
+ app.import('node_modules/jstree/dist/themes/default/style.min.css');
+ app.import('node_modules/showdown/dist/showdown.min.js');
+ return app.toTree();
+};
diff --git a/javascript/package.json b/javascript/package.json
new file mode 100644
index 0000000..ce4f045
--- /dev/null
+++ b/javascript/package.json
@@ -0,0 +1,53 @@
+{
+ "name": "haskell-code-explorer",
+ "version": "0.0.1",
+ "description": "Haskell code explorer",
+ "private": false,
+ "license": "MIT",
+ "author": "alexwl",
+ "directories": {
+ "doc": "doc",
+ "test": "tests"
+ },
+ "repository": "",
+ "scripts": {
+ "build": "ember build --environment=production",
+ "release": "ember build --environment=production --output-path=release",
+ "start": "ember server"
+ },
+ "devDependencies": {
+ "broccoli-asset-rev": "^2.4.5",
+ "ember-cli": "^3.2.0",
+ "ember-cli-app-version": "^3.0.0",
+ "ember-cli-babel": "^6.12.0",
+ "ember-cli-bootstrap-4": "^0.5.6",
+ "ember-cli-dependency-checker": "^1.3.0",
+ "ember-cli-eslint": "^4.2.1",
+ "ember-cli-htmlbars": "^2.0.1",
+ "ember-cli-htmlbars-inline-precompile": "^1.0.0",
+ "ember-cli-inject-live-reload": "^1.4.1",
+ "ember-cli-pace": "^0.1.0",
+ "ember-cli-qunit": "^4.1.1",
+ "ember-cli-sass": "^7.1.7",
+ "ember-cli-shims": "^1.1.0",
+ "ember-cli-sri": "^2.1.0",
+ "ember-cli-uglify": "^1.2.0",
+ "ember-export-application-global": "^2.0.0",
+ "ember-load-initializers": "^1.0.0",
+ "ember-radio-button": "^1.1.1",
+ "ember-resolver": "^4.0.0",
+ "ember-sinon": "^1.0.1",
+ "ember-sinon-qunit": "^2.0.0",
+ "ember-source": "3.2.0",
+ "ember-truth-helpers": "^2.0.0",
+ "express": "^4.16.2",
+ "glob": "^4.5.3",
+ "jstree": "3.3.5",
+ "loader.js": "^4.2.3",
+ "morgan": "^1.9.0",
+ "showdown": "^1.8.6"
+ },
+ "engines": {
+ "node": "^4.5 || 6.* || >= 7.*"
+ }
+}
diff --git a/javascript/public/assets/32px.png b/javascript/public/assets/32px.png
new file mode 100644
index 0000000..d6fd721
--- /dev/null
+++ b/javascript/public/assets/32px.png
Binary files differ
diff --git a/javascript/public/assets/40px.png b/javascript/public/assets/40px.png
new file mode 100644
index 0000000..4fc88e4
--- /dev/null
+++ b/javascript/public/assets/40px.png
Binary files differ
diff --git a/javascript/public/assets/favicon.ico b/javascript/public/assets/favicon.ico
new file mode 100644
index 0000000..37816fd
--- /dev/null
+++ b/javascript/public/assets/favicon.ico
Binary files differ
diff --git a/javascript/public/assets/haskell.ico b/javascript/public/assets/haskell.ico
new file mode 100644
index 0000000..37816fd
--- /dev/null
+++ b/javascript/public/assets/haskell.ico
Binary files differ
diff --git a/javascript/public/assets/throbber.gif b/javascript/public/assets/throbber.gif
new file mode 100644
index 0000000..cd75035
--- /dev/null
+++ b/javascript/public/assets/throbber.gif
Binary files differ
diff --git a/javascript/public/robots.txt b/javascript/public/robots.txt
new file mode 100644
index 0000000..f591645
--- /dev/null
+++ b/javascript/public/robots.txt
@@ -0,0 +1,3 @@
+# http://www.robotstxt.org
+User-agent: *
+Disallow:
diff --git a/javascript/release/assets/32px-eebaf260766f5e0e773f53d3ea4f3e4d.png b/javascript/release/assets/32px-eebaf260766f5e0e773f53d3ea4f3e4d.png
new file mode 100644
index 0000000..d6fd721
--- /dev/null
+++ b/javascript/release/assets/32px-eebaf260766f5e0e773f53d3ea4f3e4d.png
Binary files differ
diff --git a/javascript/release/assets/40px-51286e68b083696edaf4f9fc577e2a2d.png b/javascript/release/assets/40px-51286e68b083696edaf4f9fc577e2a2d.png
new file mode 100644
index 0000000..4fc88e4
--- /dev/null
+++ b/javascript/release/assets/40px-51286e68b083696edaf4f9fc577e2a2d.png
Binary files differ
diff --git a/javascript/release/assets/favicon.ico b/javascript/release/assets/favicon.ico
new file mode 100644
index 0000000..37816fd
--- /dev/null
+++ b/javascript/release/assets/favicon.ico
Binary files differ
diff --git a/javascript/release/assets/haskell-code-explorer-132e5ea09a5eb8889a4b7fe11ee25e98.js b/javascript/release/assets/haskell-code-explorer-132e5ea09a5eb8889a4b7fe11ee25e98.js
new file mode 100644
index 0000000..36bba99
--- /dev/null
+++ b/javascript/release/assets/haskell-code-explorer-132e5ea09a5eb8889a4b7fe11ee25e98.js
@@ -0,0 +1,204 @@
+"use strict"
+define("haskell-code-explorer/app",["exports","ember-resolver","ember-load-initializers","haskell-code-explorer/config/environment"],function(e,t,n,o){Object.defineProperty(e,"__esModule",{value:!0})
+var r
+r=Ember.Application.extend({modulePrefix:o.default.modulePrefix,Resolver:t.default}),(0,n.default)(r,o.default.modulePrefix),e.default=r}),define("haskell-code-explorer/components/bottom-panel",["exports"],function(e){function t(e){var t=Math.floor(e.$containerElement.height()/2)
+e.$().css({display:"block",top:t+"px"}),e.$topPanelElement.css({height:t+"px"})}function n(e){var t=Math.floor(e.$containerElement.height()/2)
+e.$().css({display:"none",height:t+"px"}),e.$topPanelElement.css({height:"100%"})}Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({classNames:["bottom-panel"],didInsertElement:function(){var e=this
+this._super.apply(this,arguments),this.$topPanelElement=Ember.$(this.get("topPanelElementId")),this.$containerElement=Ember.$(this.get("containerElementId")),Ember.run.next(this,function(){Ember.$(e.element).resizable({handles:"n",maxHeight:700,minHeight:200,resize:function(t,n){Ember.run.next(e,function(){e.$topPanelElement.css({height:e.$containerElement.height()-n.size.height})})}})})},visibilityObserver:Ember.observer("visible",function(){this.get("visible")?t(this):n(this)}),actions:{close:function(){this.set("visible",!1)}}})}),define("haskell-code-explorer/components/expression-info",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({})}),define("haskell-code-explorer/components/file-tree",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0})
+var t=function e(t,o){return o.contents.map(function(o){var r={}
+return r.text=o.name,r.data=o,o.path&&(r.id=o.path,r.a_attr={href:"/package/"+t+"/show/"+o.path}),"Dir"===o.tag?(r.children=e(t,o),r.state={opened:n(o)}):o.isHaskellModule?(r.icon="/assets/haskell.ico",r.isHaskellModule=!0):(r.icon="jstree-file",r.isHaskellModule=!1),r})},n=function e(t){return t.contents.some(function(t){return"File"===t.tag?t.isHaskellModule:e(t)})}
+e.default=Ember.Component.extend({query:null,didInsertElement:function(){var e=this
+this._super.apply(this,arguments)
+var n=this.element.getElementsByClassName("file-tree")[0],o=Ember.$(n).jstree({core:{data:t(this.get("packageId"),this.get("directoryTree"))},plugins:["search"],search:{case_insensitive:!0,show_only_matches:!0,show_only_matches_children:!0}})
+o.on("select_node.jstree",function(t,n){var o=n.node.data
+"Dir"!=o.tag&&e.sendAction("openFile",o.path)})
+var r=o.jstree(!0)
+if(this.get("currentFile")){r.select_node(this.get("currentFile"))
+var i=r.get_node(this.get("currentFile"),!0)[0]
+i&&i.scrollIntoView()}this.jstree=r},currentFileObserver:Ember.observer("currentFile",function(){var e=this
+Ember.run.next(function(){e.jstree.deselect_all(),e.jstree.select_node(e.get("currentFile"))})}),queryObserver:Ember.observer("query",function(){this.get("query")?this.jstree.search(this.get("query")):this.jstree.clear_search()}),actions:{hide:function(){this.get("hide")()}}})}),define("haskell-code-explorer/components/haskell-module",["exports","haskell-code-explorer/utils/go-to-definition","haskell-code-explorer/utils/line-selection"],function(e,t,n){function o(e,t){return e.line===t.line?e.column===t.column?0:e.column>t.column?1:-1:e.line>t.line?1:-1}function r(e,t,n){if(e[t.line]&&e[n.line]){if(t.line===n.line)return e[t.line].slice(t.column-1,n.column-1)
+for(var o=e[t.line],r=[],i=t.line+1;i<n.line;i++)r.push(e[i])
+var l=e[n.line],s=Math.min(t.column,r.concat([l]).map(function(e){return e.search(/\S/)}).reduce(function(e,t){return Math.min(e,t)}))
+return o.slice(t.column-1,o.length)+"\n"+r.map(function(e){return e.slice(s,e.length)}).join("\n")+(r.length?"\n":"")+l.slice(s,n.column-1)}return null}function i(e,t){t?e.classList.add("highlighted-identifier"):e.classList.remove("highlighted-identifier")}function l(e,t,n){if(t.id){Array.prototype.slice.call(e.querySelectorAll("span[id='"+t.id+"']")).forEach(function(e){i(e,n)})}else i(t,n)}function s(e,t){return Array.from(e).map(function(e){return parseInt(e)}).reduce(function(e,n){return(10*e+n)%t},0)}function a(e,t,n){return"External"===n.sort&&(n.locationInfo.modulePath===t||n.locationInfo.moduleName===e)}function c(e,t,n,o,r,i){var l=n[e.dataset.occurrence],c=r.defaultColor,d=void 0
+if(l)if("TypeId"===l.sort.tag)c=r.typeColor
+else if("HsLit"===l.description||"HsOverLit"===l.description||"LitPat"===l.description||"NPat"===l.description||"NPlusKPat"===l.description||"OverLit"===l.description)c=r.literalColor
+else{var u=t[e.dataset.identifier]
+if(u)if(a(i,o,u))c=r.topLevelIdFromCurrentModule
+else if("Internal"===u.sort&&"ExactLocation"===u.locationInfo.tag){var p=s(e.id,r.localIdentifierColor.length)
+c=r.localIdentifierColor[p],d="bold"}}return"color:"+c+";"+(d?"font-weight:"+d:"")+";"+(l.isBinder?"text-decoration:underline;":"")}function d(e,n){var o=Array.prototype.slice.call(e.querySelectorAll("span.identifier"))
+if(o.length>0){var r=null
+o.forEach(function(o){var i=c(o,n.get("identifiers"),n.get("occurrences"),n.get("path"),n.get("colorTheme"),n.get("name"))
+o.style.cssText=i,o.onmouseup=function(e){if(r&&clearTimeout(r),window.getSelection().isCollapsed){var i=n.get("identifiers")[o.dataset.identifier],l=n.get("occurrences")[o.dataset.occurrence],s=parseInt(o.parentNode.dataset.line)
+"ModuleId"===l.sort.tag?(0,t.goToDefinition)(n.get("store"),l.sort.contents,e.which,s):l.isBinder||!i||1!==e.which&&2!==e.which||(0,t.goToDefinition)(n.get("store"),i.locationInfo,e.which,s)}},o.onmouseover=function(){l(e,o,!0),r&&clearTimeout(r),r=setTimeout(function(){Ember.run.next(n,function(){var e=n.get("identifiers")[o.dataset.identifier],t=n.get("occurrences")[o.dataset.occurrence]
+console.log(t),console.log(e),n.set("selectedIdentifier",o),n.set("currentLineNumber",parseInt(o.parentNode.dataset.line)||1),n.set("identifierInfo",e),n.set("identifierOccurrence",t),n.set("hasSelectedExpression",!1),n.set("isHoveredOverIdentifier",!0)})},250)},o.onmouseout=function(){l(e,o,!1),r&&clearTimeout(r),r=setTimeout(function(){Ember.run.next(n,function(){n.set("isHoveredOverIdentifier",!1)})},250)}}),n.timer=r}}function u(e,t){return e===t||!!(16&e.compareDocumentPosition(t))}function p(e,t){var n=Array.prototype.slice.call(e.querySelectorAll("td.line-content"))
+if(n.length>0){var i=[""]
+n.forEach(function(e){i.push(e.textContent)})
+var l=["#text","SPAN","TD"],s=!1,a=!1,c=function(){Ember.run.next(function(){if(!s&&!a){a=!0,setTimeout(function(){a=!1},400),t.set("hasSelectedExpression",!1)
+var n=window.getSelection()
+if(n.anchorNode&&n.focusNode&&u(e,n.anchorNode)&&u(e,n.focusNode)&&-1!==l.indexOf(n.anchorNode.nodeName)&&-1!==l.indexOf(n.focusNode.nodeName)&&!n.isCollapsed){var c=document.createRange()
+c.setStart(n.anchorNode,n.anchorOffset),c.setEnd(n.focusNode,n.focusOffset)
+var d=c.collapsed,p=void 0,f=void 0,m=void 0,h=void 0
+d?(p=n.focusNode,f=n.focusOffset,m=n.anchorNode,h=n.anchorOffset):(p=n.anchorNode,f=n.anchorOffset,m=n.focusNode,h=n.focusOffset)
+var b=void 0,g=void 0,v=void 0,x=void 0,y=void 0
+if("#text"===p.nodeName){var k=p.parentNode
+if(g=parseInt(k.dataset.start)+f,b=parseInt(k.parentNode.dataset.line),f===p.textContent.length&&null===k.nextSibling){for(var E=p.parentNode.parentNode.parentNode,I=E.nextSibling;""===I.children[1].textContent;)I=I.nextSibling
+y=I.children[1].children[0]}else y=0!==f&&k.nextSibling?k.nextSibling:k}else if("SPAN"===p.nodeName){g=1,b=parseInt(p.parentNode.dataset.line)
+for(var P=p.parentNode.parentNode,_=P.nextSibling;""===_.children[1].textContent;)_=_.nextSibling
+y=_.children[1].children[0]}else if("TD"===p.nodeName){if(f>0){var O=p.children[f-1]
+g=parseInt(O.dataset.start)}else g=1
+b=parseInt(p.id.slice(2)),y=p.children[0]}if("#text"===m.nodeName)x=parseInt(m.parentNode.dataset.start)+h,v=parseInt(m.parentNode.parentNode.dataset.line)
+else if("SPAN"===m.nodeName)x=1,v=parseInt(m.parentNode.dataset.line)
+else if("TD"===m.nodeName){if(h>0){var w=m.children[h-1]
+x=parseInt(w.dataset.start)}else x=1
+v=parseInt(m.id.slice(2))}var C=t.get("store").loadExpressions(t.get("packageId"),t.get("path"),b,g,v,x)
+s=!0,C.then(function(e){Ember.run.next(function(){if(e&&e.length>0){e.sort(function(e,t){return o(e.srcSpan.start,t.srcSpan.start)<=0&&o(e.srcSpan.end,t.srcSpan.end)>=0?-1:1})
+var n=e.reduce(function(e,t){var n=Ember.copy(t),o=r(i,t.srcSpan.start,t.srcSpan.end)
+return o?(n.sourceCode=o,e.concat(n)):e},[])
+n.length>0&&(t.set("selectedIdentifier",y),t.set("expressions",n),t.set("currentLineNumber",parseInt(y.parentNode.dataset.line)||1),t.set("hasSelectedExpression",!0))}s=!1})})}}})}
+e.addEventListener("mouseup",c),t._onmouseup=c}}Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({store:Ember.inject.service("store"),selectedIdentifier:null,isHoveredOverIdentifier:!1,hasSelectedExpression:!1,showDeclarations:!0,showDeclarationsLabel:Ember.computed("showDeclarations",function(){return this.get("showDeclarations")?"Hide":"Show"}),queryObserver:Ember.observer("query",function(){var e=this
+Ember.run.debounce(this,function(){var t=new RegExp(e.get("query"),"i"),n=e.get("declarations").filter(function(e){return-1!=e.name.search(t)})
+Ember.run.next(function(){e.set("filteredDeclarations",n)})},300)}),identifierLocationInfo:Ember.computed("identifierInfo","identifierOccurrence",function(){var e=this.get("identifierOccurrence"),t=this.get("identifierInfo")
+if(e)return"ModuleId"===e.sort.tag?e.sort.contents:t?t.locationInfo:null}),themeObserver:Ember.observer("colorTheme",function(){var e=this
+Ember.run.next(this,function(){e.cleanup(),e.didInsertElement()})}),fileObserver:Ember.observer("path",function(){var e=this
+Ember.run.next(this,function(){e.cleanup(),e.didInsertElement()})}),cleanup:function(){this.timer&&clearTimeout(this.timer),this._onhashchange&&window.removeEventListener("hashchange",this._onhashchange),this._onkeydown&&document.removeEventListener("keydown",this._onkeydown),this._onkeyup&&document.removeEventListener("keyup",this._onkeyup),this._onmouseup&&this.sourceCodeContainerElement.removeEventListener("mouseup",this._onmouseup),this.set("selectedIdentifier",null),this.set("isHoveredOverIdentifier",!1),this.set("hasSelectedExpression",!1),this.set("showDeclarations",!0)},didReceiveAttrs:function(){this.set("filteredDeclarations",this.get("declarations"))},didInsertElement:function(){var e=this
+this._super.apply(this,arguments)
+var t=this.element.querySelector(".source-code-container")
+t.innerHTML=this.get("html"),this.sourceCodeContainerElement=t,this.element.parentNode.scrollTop=0
+var o=this.element.querySelector(".declarations-content")
+this.set("query",""),o&&(o.scrollTop=0),Ember.run.next(this,function(){d(t,e),(0,n.initializeLineSelection)(t,e),p(t,e)})},willDestroyElement:function(){this.cleanup()},actions:{goToLine:function(e){window.location.hash="L"+e},toggleShowDeclarations:function(){this.toggleProperty("showDeclarations")}}})}),define("haskell-code-explorer/components/identifier-info",["exports","haskell-code-explorer/utils/go-to-definition"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({store:Ember.inject.service("store"),downloadedDocumentation:null,didInsertElement:function(){var e=this,n=function(n){if(n.target.dataset.location){var o=void 0
+try{o=JSON.parse(n.target.dataset.location)}catch(e){console.log(e)}o&&(0,t.goToDefinition)(e.get("store"),o,n.which,e.get("currentLineNumber"))}}
+this.element.addEventListener("mouseup",n),this._onmouseup=n},willDestroyElement:function(){this._onmouseup&&this.element.removeEventListener("mouseup",this._onmouseup)},isNaughtyRecSel:Ember.computed("identifierInfo",function(){var e=this.get("identifierInfo")
+return!!e&&"RecSelIdNaughty"===e.details}),isExternalIdentifier:Ember.computed("identifierInfo",function(){var e=this.get("identifierInfo")
+return!!e&&"External"===e.sort}),identifierObserver:Ember.observer("identifierInfo",function(){var e=this
+this.set("downloadedDocumentation","")
+var t=this.get("identifierInfo")
+if(t){var n=t.locationInfo
+if("ApproximateLocation"===n.tag){var o=n.packageId.name+"-"+n.packageId.version,r=t
+this.get("store").loadDefinitionSite(o,n.moduleName,n.componentId,n.entity,n.name).then(function(t){Ember.run.next(e,function(){r===e.get("identifierInfo")&&e.set("downloadedDocumentation",t.documentation)})})}}})})}),define("haskell-code-explorer/components/identifier-name",["exports","haskell-code-explorer/utils/go-to-definition"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({store:Ember.inject.service("store"),name:Ember.computed("identifierElement",function(){var e=this.get("identifierElement")
+if(e)return e.innerText}),style:Ember.computed("identifierElement",function(){var e=this.get("identifierElement")
+if(e)return new Ember.String.htmlSafe("color:"+e.style.color)}),locationInfo:Ember.computed("identifierInfo","identifierOccurrence",function(){return"ModuleId"===this.get("identifierOccurrence.sort.tag")?this.get("identifierOccurrence.sort.contents"):this.get("identifierInfo.locationInfo")}),location:Ember.computed("locationInfo",function(){var e=this.get("locationInfo")
+return e?"ExactLocation"===e.tag?e.modulePath:"ApproximateLocation"===e.tag?"Mod"===e.entity?e.packageId.name+"-"+e.packageId.version:e.packageId.name+"-"+e.packageId.version+" "+e.moduleName:e.contents:""}),isExternalIdentifier:Ember.computed("identifierInfo",function(){return"External"===this.get("identifierInfo.sort")}),actions:{goToDefinition:function(e){return(0,t.goToDefinition)(this.get("store"),this.get("locationInfo"),e.which,this.get("currentLineNumber")),!1},findReferences:function(e,t){this.get("findReferences")(t,e.externalId,e.demangledOccName)}}})}),define("haskell-code-explorer/components/infinite-list",["exports"],function(e){function t(e){e.set("renderedElements",e.get("elements").slice(0,e.get("perPage"))),n=1}Object.defineProperty(e,"__esModule",{value:!0})
+var n=void 0,o=!1
+e.default=Ember.Component.extend({renderedElements:[],init:function(){this._super.apply(this,arguments),t(this)},elementsObserver:Ember.observer("elements",function(){t(this)
+var e=document.getElementById(this.get("containerElementId"))
+e&&(e.scrollTop=0)}),didInsertElement:function(){var e=document.getElementById(this.get("containerElementId"))
+if(e){var t=this
+e.onscroll=function(){var r=t.get("perPage"),i=t.get("elements")
+!o&&n*r<i.length&&e.scrollTop+e.offsetHeight>t.element.offsetHeight-100&&(o=!0,Ember.run.next(t,function(){var e=i.slice(n*r,(n+1)*r)
+t.get("renderedElements").pushObjects(e),n++,o=!1}))}}}})}),define("haskell-code-explorer/components/info-window",["exports"],function(e){function t(e){var t=e.get("targetElement")
+if(t){var n=e.element.offsetHeight,o=t.offsetHeight,r=t.parentNode,i=document.querySelector("#"+e.get("containerElementId")),l=t.getBoundingClientRect().top,s=void 0
+s=i?i.getBoundingClientRect().top:0
+var a=void 0
+a=l<n+s?t.offsetTop+r.offsetTop+o+10+"px":t.offsetTop+r.offsetTop-n+"px"
+var c=t.offsetLeft+r.offsetLeft+"px"
+e.$().css({top:a,left:c})}else e.set("isPinned",!1)}Object.defineProperty(e,"__esModule",{value:!0})
+var n=!1,o=!1
+e.default=Ember.Component.extend({classNames:["info-window-container"],attributeBindings:["hidden"],isPinned:!1,isFocused:!1,didInsertElement:function(){var e=this,t=Ember.$(e.element.querySelector(".info-window-header")),r=Ember.$(e.element.querySelector(".info-window-content")),i=Ember.$(e.element.querySelector(".info-window")),l=Ember.$(e.element)
+this.$headerElement=t,this.$contentElement=r,this.$().resizable({handles:"n,w",minHeight:80,minWidth:400,start:function(){n=!0},stop:function(){n=!1},resize:function(){var e=l.height()
+i.css({height:e+2+"px"}),r.css({"max-height":e-t.outerHeight(!0)+"px"})}}),this.$().draggable({containment:"#"+this.get("containerElementId"),handle:t,start:function(){o=!0},stop:function(){o=!1}})},mouseEnter:function(){this.get("hasSelectedExpression")||this.set("isFocused",!0)},mouseLeave:function(e){var t=document.elementFromPoint(e.clientX,e.clientY)
+t&&t.classList.contains("link")||n||o||this.get("isPinned")||this.get("hasSelectedExpression")||this.set("isFocused",!1)},hidden:Ember.computed("isHoveredOverIdentifier","isFocused","hasSelectedExpression","isPinned",function(){return this.$contentElement&&this.$contentElement.scrollTop(0),!(this.get("isPinned")||this.get("isFocused")||this.get("isHoveredOverIdentifier")||this.get("hasSelectedExpression"))}),didUpdate:function(){t(this)},actions:{close:function(){this.set("isPinned",!1),this.set("isFocused",!1),this.set("hasSelectedExpression",!1)},pin:function(){this.toggleProperty("isPinned")}}})}),define("haskell-code-explorer/components/input-with-autocomplete",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({store:Ember.inject.service("store"),highlightedItemIndex:-1,items:[],query:null,didInsertElement:function(){var e=this,t=Ember.$(this.element).find(".search-input"),n=Ember.$(this.element).find(".autocomplete-container")
+this.$input=t,this.$autocompleteContainer=n
+var o=t.width()+300
+n.css({width:o+"px",top:t.outerHeight()}),t.keyup(function(t){13===t.which?e.onEnter():27===t.which?e.onEsc():40===t.which?e.onDown():38===t.which&&e.onUp()}),t.focusin(function(){e.showAutocompleteList()}),t.focusout(function(){Ember.run.later(function(){e.hideAutocompleteList()},100)})},willDestroyElement:function(){this._super.apply(this,arguments),this.$input.off("keyup"),this.$input.off("focusin"),this.$input.off("focusout")},onEnter:function(){if(-1!==this.get("highlightedItemIndex")){var e=this.get("items")[this.get("highlightedItemIndex")]
+e&&(this.hideAutocompleteList(),this.get("selectItem")(e))}else this.hideAutocompleteList(),this.get("onSubmit")(this.get("query"))},onEsc:function(){this.hideAutocompleteList()},onDown:function(){this.showAutocompleteList()
+var e=this.get("highlightedItemIndex"),t=this.get("items"),n=t.length
+n>0&&(-1!==e?e===n-1?this.set("highlightedItemIndex",0):this.set("highlightedItemIndex",e+1):this.set("highlightedItemIndex",0))},onUp:function(){this.showAutocompleteList()
+var e=this.get("highlightedItemIndex"),t=this.get("items"),n=t.length
+n>0&&(-1!==e?0===e?this.set("highlightedItemIndex",n-1):this.set("highlightedItemIndex",e-1):this.set("highlightedItemIndex",n-1))},hideAutocompleteList:function(){this.set("highlightedItemIndex",-1),this.$autocompleteContainer.css({display:"none"})},showAutocompleteList:function(){this.$autocompleteContainer.css({display:"block"})},queryObserver:Ember.observer("query",function(){var e=this
+if(this.get("query")){var t=this.get("maxItems")?this.get("maxItems"):10,n=this.get("createSearchUrlFunction")(this.get("query"))+"?per_page="+t
+Ember.run.debounce(this,function(){e.get("store").loadFromUrlPaginated(n).then(function(t){Ember.run.next(function(){e.set("items",t.items)})})},400),this.showAutocompleteList()}else this.hideAutocompleteList(),this.set("items",[])}),actions:{onSubmit:function(){this.hideAutocompleteList(),this.get("onSubmit")(this.get("query"))},goToDefinition:function(e){this.hideAutocompleteList(),this.get("selectItem")(e)}}})}),define("haskell-code-explorer/components/instance-info",["exports","haskell-code-explorer/utils/go-to-definition"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({store:Ember.inject.service("store"),style:Ember.computed("nestedLevel",function(){return new Ember.String.htmlSafe("margin-left :"+10*this.get("nestedLevel")+"px")}),nextNestedLevel:Ember.computed("nestedLevel",function(){return this.get("nestedLevel")+1}),actions:{goToDefinition:function(e){return(0,t.goToDefinition)(this.get("store"),this.get("instance.location"),e.which,this.get("currentLineNumber")),!1}}})}),define("haskell-code-explorer/components/labeled-radio-button",["exports","ember-radio-button/components/labeled-radio-button"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("haskell-code-explorer/components/paginated-list",["exports"],function(e){function t(e,t,n){e.loadFromUrlPaginated(n).then(function(e){Ember.run.next(function(){t.set("total",e.total),t.set("items",e.items),t.set("first",e.linkHeader.first),t.set("next",e.linkHeader.next),t.set("prev",e.linkHeader.prev),t.set("last",e.linkHeader.last)
+var o=n.match(/(&|\?)page=(\d+)/),r=n.match(/(&|\?)per_page=(\d+)/),i=o?o[2]:1,l=r?r[2]:20;(e.linkHeader.next||e.linkHeader.prev)&&(t.set("firstItemOnPage",(i-1)*l+1),e.linkHeader.last?t.set("lastItemOnPage",i*l):t.set("lastItemOnPage",e.total))})})}Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({store:Ember.inject.service("store"),init:function(){this._super.apply(this,arguments),this.get("url")&&t(this.get("store"),this,this.get("url"))},urlObserver:Ember.observer("url",function(){t(this.get("store"),this,this.get("url")),this.element.querySelector(".paginated-list-content").scrollTop=0}),actions:{update:function(e){this.element.querySelector(".paginated-list-content").scrollTop=0,t(this.get("store"),this,e)}}})}),define("haskell-code-explorer/components/radio-button-input",["exports","ember-radio-button/components/radio-button-input"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("haskell-code-explorer/components/radio-button",["exports","ember-radio-button/components/radio-button"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("haskell-code-explorer/components/resizable-panel",["exports"],function(e){function t(e,t){e.$alsoResizeElement.css({left:0}),e.$().css({width:0}),e.set("hidden",!0),e.$(".show-left-panel-button").show(),t&&e.set("hiddenByUser",!0)}function n(e,t){e.$alsoResizeElement.css({left:300}),e.$().css({width:300}),e.set("hidden",!1),e.$(".show-left-panel-button").hide(),t&&e.set("hiddenByUser",!1)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({hidden:!1,hiddenByUser:!1,didInsertElement:function(){var e=this
+this._super.apply(this,arguments),Ember.run.next(this,function(){var o=function(){if(!e.get("hiddenByUser")){var o=window.innerWidth
+!e.get("hidden")&&o<700?t(e,!1):e.get("hidden")&&o>700&&n(e,!1)}}
+e._onresize=o,window.addEventListener("resize",o)
+var r=Ember.$(e.get("alsoResizeElementId"))
+Ember.$(e.element).resizable({maxWidth:800,minWidth:200,handles:"e",resize:function(t,n){Ember.run.next(e,function(){r.css({left:n.size.width})})}}),e.$alsoResizeElement=r})},hideButtonLabel:Ember.computed("hidden",function(){return this.get("hidden")?"&gt;":"&lt;"}),willDestroyElement:function(){this._onresize&&window.removeEventListener("resize",this._onresize)},actions:{hide:function(){this.get("hidden")?n(this,!0):t(this,!0)}}})}),define("haskell-code-explorer/components/text-file",["exports","haskell-code-explorer/utils/line-selection"],function(e,t){function n(e){return e.replace(/[\"&<>]/g,function(e){return{'"':"&quot;","&":"&amp;","<":"&lt;",">":"&gt;"}[e]})}function o(e){var t=0
+return"<table class='source-code'><tbody>"+e.split("\n").map(function(e){return"<tr><td id='LN"+ ++t+"' class='line-number'>"+t+"</td><td id='LC"+t+"' class='line-content'>"+n(e)+"</td></tr>"}).join("")+"</tbody></table>"}Object.defineProperty(e,"__esModule",{value:!0})
+var r=["markdown","mdown","mkdn","mkd","md"]
+e.default=Ember.Component.extend({isMarkdown:Ember.computed("path",function(){var e=this.get("path").split(".").pop()
+return r.any(function(t){return e===t})}),html:Ember.computed("path","isMarkdown",function(){return this.get("isMarkdown")?this.markdownConverter.makeHtml(this.get("text")):o(this.get("text"))}),init:function(){this._super.apply(this,arguments),this.markdownConverter=new showdown.Converter},didInsertElement:function(){var e=this.element.querySelector(".source-code-container");(0,t.initializeLineSelection)(e,this),this.element.parentNode.scrollTop=0},willDestroyElement:function(){this.cleanup()},cleanup:function(){this._onhashchange&&window.removeEventListener("hashchange",this._onhashchange),this._onkeydown&&document.removeEventListener("keydown",this._onkeydown),this._onkeyup&&document.removeEventListener("keyup",this._onkeyup)},pathObserver:Ember.observer("path",function(){var e=this
+Ember.run.next(this,function(){e.cleanup(),e.didInsertElement()})})})}),define("haskell-code-explorer/components/type-component",["exports","haskell-code-explorer/utils/go-to-definition"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({store:Ember.inject.service("store"),tagName:"span",classNames:["type-component"],contextMenu:function(){return this.get("identifiers")&&this.get("internalId")&&this.set("expanded",!0),!1},linkClass:Ember.computed("identifierInfo",function(){return this.get("identifierInfo")?"link":""}),identifierInfo:Ember.computed("internalId",function(){return this.get("internalId")?this.get("identifiers")[this.get("internalId")]:null}),actions:{onmouseup:function(e){if(this.get("identifierInfo")&&3!==e.which){var n=this.get("identifierInfo").locationInfo
+return(0,t.goToDefinition)(this.get("store"),n,e.which,this.get("currentLineNumber")),!1}}}})}),define("haskell-code-explorer/components/type-signature-text",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({tagName:"span"})}),define("haskell-code-explorer/components/type-signature",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({tagName:"span",expandTypeSynonyms:!1,expandTypeSynonymsLabel:Ember.computed("expandTypeSynonyms",function(){return this.get("expandTypeSynonyms")?"Show type synonyms":"Expand type synonyms"}),components:Ember.computed("type","expandTypeSynonyms",function(){return this.get("expandTypeSynonyms")&&this.get("type.componentsExpanded")?this.get("type.componentsExpanded"):this.get("type.components")}),typeObserver:Ember.observer("type",function(){this.set("expandTypeSynonyms",!1)}),actions:{toggleExpandTypeSynonyms:function(){this.toggleProperty("expandTypeSynonyms")}}})}),define("haskell-code-explorer/controllers/application",["exports","haskell-code-explorer/utils/color-themes"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Controller.extend({settings:Ember.inject.service("settings"),themes:Object.values(t.themes),init:function(){this._super.apply(this,arguments),(0,t.updateColorThemeCss)(this.get("settings").get("colorTheme"))},currentTheme:Ember.computed("settings",function(){return this.get("settings.colorTheme.id")}),actions:{themeChanged:function(e){var n=t.themes[e]
+this.get("settings").set("colorTheme",n),(0,t.updateColorThemeCss)(n)}}})}),define("haskell-code-explorer/controllers/package",["exports","haskell-code-explorer/utils/go-to-definition"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Controller.extend({store:Ember.inject.service("store"),currentFile:null,loadItemsFunction:null,query:null,actions:{searchIdentifier:function(e){e&&(this.set("currentFile",null),document.title=this.get("model.id"),this.transitionToRoute("package.search",e))},showIdentifier:function(e){return(0,t.goToDefinition)(this.get("store"),e.locationInfo,1,null),!1}}})}),define("haskell-code-explorer/controllers/package/index",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Controller.extend({modulesFiltered:Ember.computed("model","query",function(){var e=this.get("query"),t=Object.keys(this.get("model.modules")).sort()
+if(e){var n=new RegExp(e,"i")
+return t.filter(function(e){return-1!=e.search(n)})}return t})})}),define("haskell-code-explorer/controllers/package/search",["exports","haskell-code-explorer/utils/go-to-definition"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Controller.extend({store:Ember.inject.service("store"),actions:{goToDefinition:function(e,n){return(0,t.goToDefinition)(this.get("store"),e,n.which,null),!1}}})}),define("haskell-code-explorer/controllers/package/show/file",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Controller.extend({settings:Ember.inject.service("settings"),actions:{findReferences:function(e,t,n){this.send("updateReferences",e,t,n)}}})}),define("haskell-code-explorer/controllers/packages",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Controller.extend({queryObserver:Ember.observer("query",function(){var e=this
+Ember.run.debounce(this,function(){var t=new RegExp(e.get("query"),"i"),n=e.get("model").filter(function(e){return-1!=e.name.search(t)})
+Ember.run.next(function(){e.set("packages",n)})},300)})})}),define("haskell-code-explorer/helpers/and",["exports","ember-truth-helpers/helpers/and"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"and",{enumerable:!0,get:function(){return t.and}})}),define("haskell-code-explorer/helpers/app-version",["exports","haskell-code-explorer/config/environment","ember-cli-app-version/utils/regexp"],function(e,t,n){function o(e){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.default.APP.version,i=o.versionOnly||o.hideSha,l=o.shaOnly||o.hideVersion,s=null
+return i&&(o.showExtended&&(s=r.match(n.versionExtendedRegExp)),s||(s=r.match(n.versionRegExp))),l&&(s=r.match(n.shaRegExp)),s?s[0]:r}Object.defineProperty(e,"__esModule",{value:!0}),e.appVersion=o,e.default=Ember.Helper.helper(o)}),define("haskell-code-explorer/helpers/eq",["exports","ember-truth-helpers/helpers/equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"equal",{enumerable:!0,get:function(){return t.equal}})}),define("haskell-code-explorer/helpers/gt",["exports","ember-truth-helpers/helpers/gt"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"gt",{enumerable:!0,get:function(){return t.gt}})})
+define("haskell-code-explorer/helpers/gte",["exports","ember-truth-helpers/helpers/gte"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"gte",{enumerable:!0,get:function(){return t.gte}})}),define("haskell-code-explorer/helpers/is-array",["exports","ember-truth-helpers/helpers/is-array"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isArray",{enumerable:!0,get:function(){return t.isArray}})}),define("haskell-code-explorer/helpers/is-equal",["exports","ember-truth-helpers/helpers/is-equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isEqual",{enumerable:!0,get:function(){return t.isEqual}})}),define("haskell-code-explorer/helpers/lt",["exports","ember-truth-helpers/helpers/lt"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"lt",{enumerable:!0,get:function(){return t.lt}})}),define("haskell-code-explorer/helpers/lte",["exports","ember-truth-helpers/helpers/lte"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"lte",{enumerable:!0,get:function(){return t.lte}})}),define("haskell-code-explorer/helpers/not-eq",["exports","ember-truth-helpers/helpers/not-equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"notEq",{enumerable:!0,get:function(){return t.notEq}})}),define("haskell-code-explorer/helpers/not",["exports","ember-truth-helpers/helpers/not"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"not",{enumerable:!0,get:function(){return t.not}})}),define("haskell-code-explorer/helpers/or",["exports","ember-truth-helpers/helpers/or"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"or",{enumerable:!0,get:function(){return t.or}})}),define("haskell-code-explorer/helpers/xor",["exports","ember-truth-helpers/helpers/xor"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"xor",{enumerable:!0,get:function(){return t.xor}})}),define("haskell-code-explorer/initializers/app-version",["exports","ember-cli-app-version/initializer-factory","haskell-code-explorer/config/environment"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0})
+var o=void 0,r=void 0
+n.default.APP&&(o=n.default.APP.name,r=n.default.APP.version),e.default={name:"App Version",initialize:(0,t.default)(o,r)}}),define("haskell-code-explorer/initializers/container-debug-adapter",["exports","ember-resolver/resolvers/classic/container-debug-adapter"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"container-debug-adapter",initialize:function(){var e=arguments[1]||arguments[0]
+e.register("container-debug-adapter:main",t.default),e.inject("container-debug-adapter:main","namespace","application:main")}}}),define("haskell-code-explorer/initializers/export-application-global",["exports","haskell-code-explorer/config/environment"],function(e,t){function n(){var e=arguments[1]||arguments[0]
+if(!1!==t.default.exportApplicationGlobal){var n
+if("undefined"!=typeof window)n=window
+else if("undefined"!=typeof global)n=global
+else{if("undefined"==typeof self)return
+n=self}var o,r=t.default.exportApplicationGlobal
+o="string"==typeof r?r:Ember.String.classify(t.default.modulePrefix),n[o]||(n[o]=e,e.reopen({willDestroy:function(){this._super.apply(this,arguments),delete n[o]}}))}}Object.defineProperty(e,"__esModule",{value:!0}),e.initialize=n,e.default={name:"export-application-global",initialize:n}}),define("haskell-code-explorer/router",["exports","haskell-code-explorer/config/environment"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0})
+var n=Ember.Router.extend({location:t.default.locationType})
+n.map(function(){this.route("packages",{path:""}),this.route("package",{path:"/package/:packageId"},function(){this.route("show",function(){this.route("file",{path:"*filePath"},function(){})}),this.route("search",{path:"/search/:query"})}),this.route("bad-url",{path:"/*badurl"})}),e.default=n}),define("haskell-code-explorer/routes/application",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Route.extend({})}),define("haskell-code-explorer/routes/package",["exports","haskell-code-explorer/utils/api-urls"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Route.extend({store:Ember.inject.service("store"),model:function(e){var t=this
+return this.get("store").loadPackage(e.packageId).catch(function(e){console.log(e),t.transitionTo("/package-not-found")})},afterModel:function(e){document.title=e.id},setupController:function(e,n){this._super(e,n)
+var o=this.modelFor("package").id
+e.set("bottomPanelVisible",!1),e.set("createSearchUrlFunction",function(e){return t.urls.identifierSearchUrl(o,e)})},actions:{openFile:function(e){this.transitionTo("package.show.file",e)},fileOpened:function(e){this.get("controller")&&this.set("controller.currentFile",e)},updateReferences:function(e,n,o){this.set("controller.packageId",e),this.set("controller.externalId",n),this.set("controller.occName",o),this.set("controller.bottomPanelVisible",!0),this.set("controller.referencesUrl",t.urls.referencesUrl(e,n)+"?per_page=50")}}})}),define("haskell-code-explorer/routes/package/index",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Route.extend({afterModel:function(e,t){t.send("fileOpened",null)}})}),define("haskell-code-explorer/routes/package/search",["exports","haskell-code-explorer/utils/api-urls","haskell-code-explorer/utils/go-to-definition"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Route.extend({store:Ember.inject.service("store"),model:function(e){return{query:e.query,url:t.urls.identifierSearchUrl(this.modelFor("package").id,e.query)+"?per_page=20"}},afterModel:function(){var e=this,t=function(t){if(t.target.dataset.location){var o=void 0
+try{o=JSON.parse(t.target.dataset.location)}catch(e){console.log(e)}o&&(0,n.goToDefinition)(e.get("store"),o,t.which)}}
+this._onmouseup=t,document.addEventListener("mouseup",t)},deactivate:function(){this._onmouseup&&document.removeEventListener("mouseup",this._onmouseup)}})}),define("haskell-code-explorer/routes/package/show/file",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Route.extend({store:Ember.inject.service(),model:function(e){var t=this,n=this.modelFor("package")
+return n.modules[e.filePath]?this.get("store").loadHaskellModule(n.id,e.filePath).catch(function(e){console.log(e),t.transitionTo("/not-found")}):this.get("store").loadFile(n.id,e.filePath).then(function(e){return document.title=n.id,e}).catch(function(e){console.log(e),t.transitionTo("/not-found")})},afterModel:function(e){document.title=e.id+" - "+this.modelFor("package").id},actions:{didTransition:function(){this.send("fileOpened",this.currentModel.id)}}})}),define("haskell-code-explorer/routes/package/show/index",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Route.extend({afterModel:function(e,t){t.send("fileOpened",null)}})}),define("haskell-code-explorer/routes/packages",["exports","haskell-code-explorer/utils/api-urls","haskell-code-explorer/config/environment"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Route.extend({model:function(){return Ember.$.getJSON(t.urls.packagesUrl)},setupController:function(e,t){this._super(e,t),e.set("packages",t)},afterModel:function(){document.title=n.default.APP.title}})}),define("haskell-code-explorer/services/settings",["exports","haskell-code-explorer/utils/color-themes"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Service.extend({init:function(){if(this._super.apply(this,arguments),localStorage){var e=localStorage.getItem("colorThemeId"),n=t.themes[e]
+e&&this.set("colorTheme",n)}},colorTheme:t.themes.darkTheme,settingsObserver:Ember.observer("colorTheme",function(){localStorage&&localStorage.setItem("colorThemeId",this.get("colorTheme").id)})})}),define("haskell-code-explorer/services/store",["exports","haskell-code-explorer/utils/api-urls"],function(e,t){function n(e){return'"'==e.charAt(0)&&'"'==e.charAt(e.length-1)?e.substring(1,e.length-1):e}function o(e){if(!e)return{}
+for(var t=/<[^>]*>\s*(\s*;\s*[^\(\)<>@,;:"\/\[\]\?={} \t]+=(([^\(\)<>@,;:"\/\[\]\?={} \t]+)|("[^"]*")))*(,|$)/g,o=/[^\(\)<>@,;:"\/\[\]\?={} \t]+=(([^\(\)<>@,;:"\/\[\]\?={} \t]+)|("[^"]*"))/g,r=e.match(t),i=new Object,l=0;l<r.length;l++){var s=r[l].split(">"),a=s[0].substring(1),c=s[1],d=new Object
+d.href=a
+for(var u=c.match(o),p=0;p<u.length;p++){var f=u[p],m=f.split("=")
+d[m[0]]=n(m[1])}void 0!=d.rel&&(i[d.rel]=d)}return i}Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Service.extend({init:function(){this.packages={},this.files={},this.haskellModules={},this.definitionSites={},this.modulePaths={},this.expressions={},this.references={}},loadPackage:function(e){var n=this,o=this.packages[e]
+if(o)return new Ember.RSVP.Promise(function(e){e(o)})
+var r=t.urls.packageInfoUrl(e)
+return Ember.$.getJSON(r).then(function(t){return n.packages[e]=t,t})},loadFile:function(e,n){var o=this,r=e+"/"+n,i=this.files[r]
+if(i)return new Ember.RSVP.Promise(function(e){e(i)})
+var l=t.urls.fileUrl(e,n)
+return Ember.$.get({url:l,dataType:"text"}).then(function(t){var i={}
+return i.text=t,i.packageId=e,i.isHaskellModule=!1,i.id=n,o.files[r]=i,i})},loadHaskellModule:function(e,n){var o=this,r=e+"/"+n,i=this.haskellModules[r]
+if(i)return new Ember.RSVP.Promise(function(e){e(i)})
+var l=t.urls.haskellModuleUrl(e,n)
+return Ember.$.getJSON(l).then(function(t){return t.packageId=e,t.isHaskellModule=!0,o.haskellModules[r]=t,t})},loadDefinitionSite:function(e,n,o,r,i){var l=this,s=e+"/"+o+"/"+n+"/"+r+"/"+i,a=this.definitionSites[s]
+if(a)return new Ember.RSVP.Promise(function(e){e(a)})
+var c=t.urls.identifierDefinitionSiteUrl(e,n,o,r,i)
+return Ember.$.getJSON(c).then(function(e){return l.definitionSites[s]=e,e})},loadExpressions:function(e,n,o,r,i,l){var s=this,a=e+"/"+encodeURIComponent(n)+"/"+o+"/"+r+"/"+i+"/"+l,c=this.expressions[a]
+if(c)return new Ember.RSVP.Promise(function(e){e(c)})
+var d=t.urls.expressionsUrl(e,n,o,r,i,l)
+return Ember.$.getJSON(d).then(function(e){return s.expressions[a]=e,e})},loadFromUrlPaginated:function(e){return Ember.$.getJSON(e).then(function(e,t,n){var r=n.getResponseHeader("Link"),i=n.getResponseHeader("x-total-count"),l=o(r)
+return{items:e,total:parseInt(i),linkHeader:l}})}})}),define("haskell-code-explorer/templates/application",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"VFOlgxX7",block:'{"symbols":["theme"],"statements":[[6,"div"],[10,"class","absolute-container"],[8],[0,"\\n "],[6,"div"],[10,"class","flex-container"],[8],[0,"\\n "],[6,"div"],[10,"class","header"],[8],[0,"\\n "],[6,"img"],[10,"src","/assets/haskell.ico"],[8],[9],[0,"\\n "],[6,"div"],[10,"class","container"],[8],[0,"\\n "],[6,"span"],[10,"class","header-item"],[8],[4,"link-to",["packages"],null,{"statements":[[0,"Haskell packages"]],"parameters":[]},null],[9],[0,"\\n "],[6,"span"],[10,"class","header-item"],[8],[6,"a"],[10,"target","_blank"],[10,"href","https://github.com/alexwl/haskell-code-explorer"],[8],[0,"About"],[9],[9],[0,"\\n "],[6,"span"],[10,"class","header-item"],[8],[0,"\\n"],[4,"each",[[22,["themes"]]],null,{"statements":[[4,"radio-button",null,[["value","groupValue","changed"],[[21,1,["id"]],[22,["currentTheme"]],"themeChanged"]],{"statements":[[0," "],[6,"span"],[8],[1,[21,1,["name"]],false],[9],[0,"\\n"]],"parameters":[]},null]],"parameters":[1]},null],[0," "],[9],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"div"],[10,"class","content"],[8],[0,"\\n "],[6,"div"],[10,"class","absolute-container"],[8],[0,"\\n "],[1,[20,"outlet"],false],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/application.hbs"}})}),define("haskell-code-explorer/templates/bad-url",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"xPTRbxVj",block:'{"symbols":[],"statements":[[6,"div"],[10,"class","container"],[8],[0," \\n "],[6,"div"],[10,"style","margin-top:10px"],[8],[0,"\\n "],[6,"h1"],[8],[0,"Not found"],[9],[0,"\\n "],[6,"div"],[8],[6,"a"],[10,"href","/"],[8],[0,"Main page"],[9],[9],[0,"\\n "],[9],[0,"\\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/bad-url.hbs"}})}),define("haskell-code-explorer/templates/components/bottom-panel",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"npSIWyPX",block:'{"symbols":["&default"],"statements":[[6,"div"],[10,"class","bottom-panel-header"],[8],[0,"\\n "],[6,"span"],[10,"class","bottom-panel-header-content"],[8],[13,1,["header"]],[9],[0,"\\n "],[6,"span"],[10,"class","bottom-panel-header-options"],[8],[0,"\\n "],[6,"a"],[10,"href","#"],[3,"action",[[21,0,[]],"close"]],[8],[0,"Close"],[9],[0,"\\n "],[9],[0,"\\n"],[9],[0,"\\n"],[6,"div"],[10,"class","bottom-panel-content"],[8],[0,"\\n "],[13,1,["body"]],[0,"\\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/components/bottom-panel.hbs"}})}),define("haskell-code-explorer/templates/components/expression-info",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"3orLnFsH",block:'{"symbols":["expression"],"statements":[[6,"div"],[10,"class","expressions"],[8],[0,"\\n"],[4,"each",[[22,["expressions"]]],null,{"statements":[[0," "],[6,"div"],[10,"class","expression"],[8],[0,"\\n "],[6,"span"],[10,"class","source-code"],[8],[1,[21,1,["sourceCode"]],false],[9],[0,"\\n "],[6,"br"],[8],[9],[0,":: "],[1,[26,"type-signature",null,[["type","identifiers","currentLineNumber"],[[21,1,["info","exprType"]],[22,["identifiers"]],[22,["currentLineNumber"]]]]],false],[0,"\\n "],[9],[0,"\\n"]],"parameters":[1]},null],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/components/expression-info.hbs"}})}),define("haskell-code-explorer/templates/components/file-tree",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"GBZ0wuAl",block:'{"symbols":[],"statements":[[6,"div"],[10,"class","file-tree-header"],[8],[0,"\\n "],[6,"div"],[10,"class","input-group"],[8],[0,"\\n "],[1,[26,"input",null,[["class","value","placeholder"],["form-control",[22,["query"]],"Filename"]]],false],[6,"a"],[10,"class","hide-file-tree"],[10,"href","#"],[3,"action",[[21,0,[]],"hide"]],[8],[0,"Hide"],[9],[0,"\\n "],[9],[0,"\\n"],[9],[0,"\\n"],[6,"div"],[10,"class","file-tree-content"],[8],[0,"\\n "],[6,"div"],[10,"class","file-tree"],[8],[9],[0,"\\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/components/file-tree.hbs"}})}),define("haskell-code-explorer/templates/components/haskell-module",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"9AHnGiA+",block:'{"symbols":["section","declaration"],"statements":[[6,"div"],[10,"class","source-code-container"],[8],[9],[0,"\\n"],[4,"if",[[22,["declarations"]]],null,{"statements":[[0," "],[6,"div"],[10,"class","declarations"],[8],[0,"\\n "],[6,"div"],[10,"class","declarations-header"],[8],[0," \\n "],[6,"div"],[10,"class","input-group"],[8],[0,"\\n "],[1,[26,"input",null,[["class","value","placeholder"],["form-control",[22,["query"]],"Identifier"]]],false],[6,"a"],[10,"class","hide-declarations"],[10,"href","#"],[3,"action",[[21,0,[]],"toggleShowDeclarations"]],[8],[1,[20,"showDeclarationsLabel"],false],[9],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n"],[4,"if",[[22,["showDeclarations"]]],null,{"statements":[[0," "],[6,"div"],[10,"id","declarations-content"],[10,"class","declarations-content"],[8],[0," \\n "],[6,"ul"],[8],[0," \\n"],[4,"infinite-list",null,[["containerElementId","elements","perPage"],["declarations-content",[22,["filteredDeclarations"]],30]],{"statements":[[0," "],[6,"li"],[10,"class","declaration"],[8],[0,"\\n "],[6,"div"],[10,"class","declaration"],[8],[0,"\\n "],[6,"a"],[10,"href","#"],[3,"action",[[21,0,[]],"goToLine",[21,2,["lineNumber"]]]],[8],[6,"span"],[10,"class","source-code-font"],[8],[1,[21,2,["name"]],false],[4,"if",[[21,2,["declType"]]],null,{"statements":[[0," :: "],[1,[26,"type-signature-text",null,[["components"],[[21,2,["declType","components"]]]]],false]],"parameters":[]},null],[9],[0,"\\n "],[9],[6,"span"],[8],[4,"unless",[[21,2,["isExported"]]],null,{"statements":[[6,"i"],[8],[0,"(not exported)"],[9]],"parameters":[]},null],[9],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n"]],"parameters":[2]},null],[0," "],[9],[0,"\\n "],[9],[0,"\\n"]],"parameters":[]},null],[0," "],[9],[0,"\\n"]],"parameters":[]},null],[4,"info-window",null,[["targetElement","isHoveredOverIdentifier","hasSelectedExpression","containerElementId"],[[22,["selectedIdentifier"]],[22,["isHoveredOverIdentifier"]],[22,["hasSelectedExpression"]],"right-panel"]],{"statements":[[4,"if",[[26,"eq",[[21,1,[]],"header"],null]],null,{"statements":[[4,"if",[[22,["hasSelectedExpression"]]],null,{"statements":[[0," "],[6,"div"],[8],[0,"Selected expressions"],[9],[0,"\\n"]],"parameters":[]},{"statements":[[0," "],[1,[26,"identifier-name",null,[["identifierInfo","identifierOccurrence","identifierElement","currentPackageId","isBinder","currentLineNumber","findReferences"],[[22,["identifierInfo"]],[22,["identifierOccurrence"]],[22,["selectedIdentifier"]],[22,["packageId"]],[22,["identifierOccurrence","isBinder"]],[22,["currentLineNumber"]],[22,["findReferences"]]]]],false],[0,"\\n"]],"parameters":[]}]],"parameters":[]},{"statements":[[4,"unless",[[22,["hasSelectedExpression"]]],null,{"statements":[[0," "],[1,[26,"identifier-info",null,[["identifierInfo","identifierOccurrence","identifiers","currentLineNumber"],[[22,["identifierInfo"]],[22,["identifierOccurrence"]],[22,["identifiers"]],[22,["currentLineNumber"]]]]],false],[0,"\\n"]],"parameters":[]},{"statements":[[0," "],[1,[26,"expression-info",null,[["expressions","identifiers","currentLineNumber"],[[22,["expressions"]],[22,["identifiers"]],[22,["currentLineNumber"]]]]],false],[0,"\\n"]],"parameters":[]}]],"parameters":[]}]],"parameters":[1]},null]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/components/haskell-module.hbs"}})}),define("haskell-code-explorer/templates/components/identifier-info",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"zMkGyYS+",block:'{"symbols":[],"statements":[[4,"if",[[26,"or",[[22,["identifierInfo"]],[22,["identifierOccurrence","idOccType"]]],null]],null,{"statements":[[0," "],[6,"div"],[10,"class","identifier-info"],[8],[0,"\\n"],[4,"if",[[22,["identifierInfo"]]],null,{"statements":[[4,"if",[[22,["isNaughtyRecSel"]]],null,{"statements":[[0," "],[6,"i"],[8],[0,"This record selector can never be called because its type mentions a type variable that isn\'t in the result type of the constructor"],[9],[0,"\\n"]],"parameters":[]},{"statements":[[0," "],[1,[26,"type-signature",null,[["type","identifiers","currentLineNumber"],[[22,["identifierInfo","idType"]],[22,["identifiers"]],[22,["currentLineNumber"]]]]],false],[0,"\\n"]],"parameters":[]}]],"parameters":[]},null],[4,"if",[[26,"and",[[22,["identifierInfo"]],[22,["identifierOccurrence"]],[22,["identifierOccurrence","idOccType"]]],null]],null,{"statements":[[0," "],[6,"div"],[10,"style","height:10px"],[8],[9],[0,"\\n"]],"parameters":[]},null],[4,"if",[[26,"and",[[22,["identifierOccurrence"]],[22,["identifierOccurrence","idOccType"]]],null]],null,{"statements":[[0," "],[1,[26,"type-signature",null,[["type","identifiers","currentLineNumber"],[[22,["identifierOccurrence","idOccType"]],[22,["identifiers"]],[22,["currentLineNumber"]]]]],false],[0,"\\n"]],"parameters":[]},null],[0," "],[6,"div"],[10,"class","documentation"],[8],[0,"\\n "],[1,[22,["identifierInfo","doc"]],true],[0,"\\n "],[1,[20,"downloadedDocumentation"],true],[0,"\\n "],[9],[0,"\\n"],[4,"if",[[22,["identifierOccurrence","instanceResolution"]]],null,{"statements":[[0," "],[6,"div"],[10,"style","height:10px"],[8],[9],[0,"\\n"]],"parameters":[]},null],[0," "],[6,"div"],[8],[0,"\\n"],[4,"if",[[22,["identifierOccurrence","instanceResolution"]]],null,{"statements":[[0," "],[1,[26,"instance-info",null,[["instance","identifiers","nestedLevel","currentLineNumber"],[[22,["identifierOccurrence","instanceResolution"]],[22,["identifiers"]],0,[22,["currentLineNumber"]]]]],false],[0,"\\n"]],"parameters":[]},null],[0," "],[9],[0,"\\n "],[9],[0,"\\n"]],"parameters":[]},null]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/components/identifier-info.hbs"}})}),define("haskell-code-explorer/templates/components/identifier-name",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"R4FDvyEH",block:'{"symbols":[],"statements":[[6,"div"],[8],[0,"\\n "],[6,"span"],[10,"class","source-code-font break-word identifier-menu-item"],[11,"style",[20,"style"]],[8],[4,"if",[[22,["identifierInfo","demangledOccName"]]],null,{"statements":[[1,[22,["identifierInfo","demangledOccName"]],false]],"parameters":[]},{"statements":[[1,[20,"name"],false]],"parameters":[]}],[9],[0,"\\n"],[4,"unless",[[22,["isBinder"]]],null,{"statements":[[4,"if",[[22,["location"]]],null,{"statements":[[0," "],[6,"span"],[10,"class","identifier-menu-item"],[8],[1,[20,"location"],false],[9],[0," \\n "],[6,"span"],[10,"class","link identifier-menu-item"],[11,"onmouseup",[26,"action",[[21,0,[]],"goToDefinition"],null]],[8],[0,"Go to definition"],[9],[0,"\\n"]],"parameters":[]},null]],"parameters":[]},null],[4,"if",[[22,["isExternalIdentifier"]]],null,{"statements":[[0," "],[6,"span"],[10,"class","link identifier-menu-item"],[11,"onmouseup",[26,"action",[[21,0,[]],"findReferences",[22,["identifierInfo"]],[22,["currentPackageId"]]],null]],[8],[0,"Find references"],[9],[0,"\\n"]],"parameters":[]},null],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/components/identifier-name.hbs"}})})
+define("haskell-code-explorer/templates/components/infinite-list",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"AVFRMQuE",block:'{"symbols":["element","&default"],"statements":[[4,"each",[[22,["renderedElements"]]],null,{"statements":[[0," "],[13,2,[[21,1,[]]]],[0,"\\n"]],"parameters":[1]},null]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/components/infinite-list.hbs"}})}),define("haskell-code-explorer/templates/components/info-window",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"Xi4+uOqU",block:'{"symbols":["&default"],"statements":[[6,"div"],[10,"class","info-window"],[8],[0,"\\n "],[6,"div"],[10,"class","info-window-header"],[8],[0,"\\n "],[6,"div"],[10,"class","info-window-options"],[8],[0,"\\n "],[6,"a"],[10,"href","#"],[3,"action",[[21,0,[]],"pin"]],[8],[4,"if",[[22,["isPinned"]]],null,{"statements":[[0,"Unpin"]],"parameters":[]},{"statements":[[0,"Pin"]],"parameters":[]}],[9],[0,"\\n "],[6,"a"],[10,"href","#"],[3,"action",[[21,0,[]],"close"]],[8],[0,"Close"],[9],[0,"\\n "],[9],[0,"\\n "],[13,1,["header"]],[0,"\\n "],[9],[0,"\\n "],[6,"div"],[10,"class","info-window-content"],[8],[0,"\\n "],[13,1,["body"]],[0,"\\n "],[9],[0,"\\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/components/info-window.hbs"}})}),define("haskell-code-explorer/templates/components/input-with-autocomplete",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"zEeiJBdD",block:'{"symbols":["item","index","&default"],"statements":[[6,"div"],[10,"class","input-group"],[8],[0,"\\n "],[1,[26,"input",null,[["class","value","placeholder"],["form-control search-input",[22,["query"]],[22,["placeholder"]]]]],false],[0,"\\n "],[6,"div"],[10,"class","autocomplete-container"],[8],[0,"\\n"],[4,"if",[[22,["items"]]],null,{"statements":[[0," "],[6,"ul"],[10,"class","autocomplete-items"],[8],[0,"\\n"],[4,"each",[[22,["items"]]],null,{"statements":[[0," "],[6,"li"],[11,"class",[27,[[26,"if",[[26,"eq",[[21,2,[]],[22,["highlightedItemIndex"]]],null],"highlighted"],null]]]],[11,"onclick",[26,"action",[[21,0,[]],"goToDefinition",[21,1,[]]],null]],[8],[0,"\\n "],[6,"div"],[10,"class","autocomplete-item"],[8],[0,"\\n "],[13,3,[[21,1,[]]]],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n"]],"parameters":[1,2]},null],[0," "],[9],[0,"\\n"]],"parameters":[]},null],[0," "],[9],[0,"\\n "],[6,"div"],[10,"class","input-group-append"],[8],[0,"\\n "],[6,"button"],[10,"id","search-input"],[10,"class","btn btn-outline-secondary"],[3,"action",[[21,0,[]],"onSubmit",[22,["query"]]]],[8],[0,"Search"],[9],[0,"\\n "],[9],[0,"\\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/components/input-with-autocomplete.hbs"}})}),define("haskell-code-explorer/templates/components/instance-info",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"uCPSf7BD",block:'{"symbols":["inst"],"statements":[[4,"if",[[22,["instance"]]],null,{"statements":[[0," "],[6,"div"],[11,"style",[20,"style"]],[8],[0,"\\n "],[6,"span"],[10,"class","source-code-font"],[8],[0,"\\n instance "],[1,[26,"type-signature",null,[["type","identifiers","currentLineNumber","noExpand"],[[22,["instance","instanceType"]],[22,["identifiers"]],[22,["currentLineNumber"]],true]]],false],[9],[0,"\\n ("],[6,"span"],[10,"class","link"],[11,"onclick",[26,"action",[[21,0,[]],"goToDefinition"],null]],[8],[0,"Go to definition"],[9],[0,")\\n"],[4,"each",[[22,["instance","instances"]]],null,{"statements":[[0," "],[1,[26,"instance-info",null,[["instance","identifiers","nestedLevel","currentLineNumber"],[[21,1,[]],[22,["identifiers"]],[22,["nextNestedLevel"]],[22,["currentLineNumber"]]]]],false],[0,"\\n"]],"parameters":[1]},null],[0," "],[9],[0,"\\n"]],"parameters":[]},null]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/components/instance-info.hbs"}})}),define("haskell-code-explorer/templates/components/paginated-list",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"1Snh4cz4",block:'{"symbols":["&default"],"statements":[[6,"div"],[10,"class","paginated-list-header"],[8],[0," \\n "],[6,"span"],[8],[0,"Found "],[1,[20,"total"],false],[9],[0,"\\n"],[4,"if",[[26,"or",[[22,["next"]],[22,["prev"]]],null]],null,{"statements":[[0,"  \\n  \\n "],[6,"span"],[8],[0,"\\n "],[4,"if",[[22,["first"]]],null,{"statements":[[6,"button"],[10,"class","btn btn-outline-secondary btn-sm"],[3,"action",[[21,0,[]],"update",[22,["first","href"]]]],[8],[0,"<<"],[9]],"parameters":[]},null],[0,"\\n "],[4,"if",[[22,["prev"]]],null,{"statements":[[6,"button"],[10,"button",""],[10,"class","btn btn-outline-secondary btn-sm"],[3,"action",[[21,0,[]],"update",[22,["prev","href"]]]],[8],[0,"<"],[9]],"parameters":[]},null],[0,"\\n "],[1,[20,"firstItemOnPage"],false],[0," - "],[1,[20,"lastItemOnPage"],false],[0,"\\n "],[4,"if",[[22,["next"]]],null,{"statements":[[6,"button"],[10,"button",""],[10,"class","btn btn-outline-secondary btn-sm"],[3,"action",[[21,0,[]],"update",[22,["next","href"]]]],[8],[0,">"],[9]],"parameters":[]},null],[0,"\\n "],[4,"if",[[22,["last"]]],null,{"statements":[[6,"button"],[10,"button",""],[10,"class","btn btn-outline-secondary btn-sm"],[3,"action",[[21,0,[]],"update",[22,["last","href"]]]],[8],[0,">>"],[9]],"parameters":[]},null],[0,"\\n "],[9],[0,"\\n"]],"parameters":[]},null],[9],[0,"\\n"],[6,"div"],[10,"class","paginated-list-content"],[8],[0,"\\n "],[13,1,[[22,["items"]]]],[0," \\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/components/paginated-list.hbs"}})}),define("haskell-code-explorer/templates/components/resizable-panel",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"tpKUpnLR",block:'{"symbols":["&default"],"statements":[[6,"div"],[10,"class","absolute-container"],[8],[13,1,[[26,"action",[[21,0,[]],"hide"],null]]],[0,"\\n "],[6,"div"],[11,"onclick",[26,"action",[[21,0,[]],"hide"],null]],[10,"class","show-left-panel-button"],[8],[0,"\\n "],[1,[20,"hideButtonLabel"],true],[0,"\\n "],[9],[0,"\\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/components/resizable-panel.hbs"}})}),define("haskell-code-explorer/templates/components/text-file",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"yYFMOyZb",block:'{"symbols":[],"statements":[[6,"div"],[10,"class","source-code-container"],[8],[0,"\\n"],[1,[20,"html"],true],[0,"\\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/components/text-file.hbs"}})}),define("haskell-code-explorer/templates/components/type-component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"nSuhY152",block:'{"symbols":[],"statements":[[4,"if",[[26,"and",[[22,["expanded"]],[22,["identifierInfo"]]],null]],null,{"statements":[[0,"("]],"parameters":[]},null],[0,"\\n"],[6,"span"],[11,"class",[27,["source-code ",[20,"linkClass"]]]],[11,"onmouseup",[26,"action",[[21,0,[]],"onmouseup"],null]],[8],[1,[20,"occName"],false],[9],[0,"\\n"],[4,"if",[[26,"and",[[22,["expanded"]],[22,["identifierInfo"]]],null]],null,{"statements":[[0," :: "],[1,[26,"type-signature",null,[["type","identifiers","noExpand"],[[22,["identifierInfo","idType"]],[22,["identifiers"]],true]]],false],[0,")"]],"parameters":[]},null],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/components/type-component.hbs"}})}),define("haskell-code-explorer/templates/components/type-signature-text",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"+rUvtMa3",block:'{"symbols":["typeComponent"],"statements":[[4,"each",[[22,["components"]]],null,{"statements":[[4,"if",[[26,"eq",[[21,1,["tag"]],"Text"],null]],null,{"statements":[[1,[21,1,["contents"]],false]],"parameters":[]},{"statements":[[1,[21,1,["name"]],false]],"parameters":[]}]],"parameters":[1]},null],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/components/type-signature-text.hbs"}})}),define("haskell-code-explorer/templates/components/type-signature",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"SdJzinj9",block:'{"symbols":["typeComponent"],"statements":[[4,"each",[[22,["components"]]],null,{"statements":[[4,"if",[[26,"eq",[[21,1,["tag"]],"Text"],null]],null,{"statements":[[6,"span"],[10,"class","source-code"],[8],[1,[21,1,["contents"]],false],[9]],"parameters":[]},{"statements":[[1,[26,"type-component",null,[["occName","internalId","identifiers","currentLineNumber"],[[21,1,["name"]],[21,1,["internalId"]],[22,["identifiers"]],[22,["currentLineNumber"]]]]],false]],"parameters":[]}]],"parameters":[1]},null],[0,"\\n"],[4,"unless",[[22,["noExpand"]]],null,{"statements":[[4,"if",[[22,["type","componentsExpanded"]]],null,{"statements":[[0," "],[6,"div"],[10,"style","margin-top:5px"],[8],[0,"\\n "],[6,"button"],[10,"class","btn btn-outline-secondary btn-sm"],[3,"action",[[21,0,[]],"toggleExpandTypeSynonyms"]],[8],[1,[20,"expandTypeSynonymsLabel"],false],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n"]],"parameters":[]},null]],"parameters":[]},null]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/components/type-signature.hbs"}})}),define("haskell-code-explorer/templates/package",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"wmOuG9eh",block:'{"symbols":["section","files","file","reference","hide","identifier"],"statements":[[6,"div"],[10,"class","flex-container"],[8],[0,"\\n "],[6,"div"],[10,"class","package-header"],[8],[0,"\\n "],[6,"span"],[10,"class","package-header-package-name"],[8],[4,"link-to",["package",[22,["model"]]],null,{"statements":[[1,[22,["model","id"]],false]],"parameters":[]},null],[9],[0," \\n "],[6,"span"],[10,"class","package-header-input"],[8],[0,"\\n"],[4,"input-with-autocomplete",null,[["onSubmit","createSearchUrlFunction","maxItems","selectItem","placeholder"],[[26,"action",[[21,0,[]],"searchIdentifier"],null],[22,["createSearchUrlFunction"]],10,[26,"action",[[21,0,[]],"showIdentifier"],null],"Identifier"]],{"statements":[[0," "],[6,"span"],[10,"class","source-code-font"],[8],[1,[21,6,["demangledOccName"]],false],[0," :: "],[1,[26,"type-signature-text",null,[["components"],[[21,6,["idType","components"]]]]],false],[9],[0,"\\n "],[6,"div"],[10,"class","module-name"],[8],[0,"\\n"],[4,"if",[[21,6,["locationInfo","modulePath"]]],null,{"statements":[[0," "],[1,[21,6,["locationInfo","modulePath"]],false],[0,"\\n"]],"parameters":[]},{"statements":[[0," "],[1,[21,6,["locationInfo","moduleName"]],false],[0,"\\n"]],"parameters":[]}],[0," "],[9],[0,"\\n"]],"parameters":[6]},null],[0," "],[9],[0,"\\n"],[4,"if",[[22,["currentFile"]]],null,{"statements":[[0," "],[6,"span"],[10,"class","package-header-filename"],[8],[0,"\\n "],[1,[20,"currentFile"],false],[0,"\\n "],[9],[0,"\\n"]],"parameters":[]},null],[0," "],[9],[0,"\\n "],[6,"div"],[10,"class","package-content"],[8],[0,"\\n"],[4,"resizable-panel",null,[["class","alsoResizeElementId"],["left-panel","#right-panel"]],{"statements":[[0," "],[6,"div"],[10,"class","file-tree-container"],[8],[0,"\\n "],[1,[26,"file-tree",null,[["directoryTree","openFile","currentFile","packageId","hide"],[[22,["model","directoryTree"]],"openFile",[22,["currentFile"]],[22,["model","id"]],[21,5,[]]]]],false],[0,"\\n "],[9],[0,"\\n"]],"parameters":[5]},null],[0," "],[6,"div"],[10,"id","right-panel"],[10,"class","right-panel"],[8],[0,"\\n "],[6,"div"],[10,"id","file-container"],[10,"class","file-container"],[8],[0," \\n "],[1,[20,"outlet"],false],[0," \\n "],[9],[0,"\\n"],[4,"bottom-panel",null,[["visible","topPanelElementId","containerElementId"],[[22,["bottomPanelVisible"]],"#file-container","#right-panel"]],{"statements":[[4,"if",[[26,"eq",[[21,1,[]],"header"],null]],null,{"statements":[[0," References to "],[6,"b"],[8],[6,"span"],[10,"class","source-code"],[8],[1,[20,"occName"],false],[9],[9],[0," in "],[6,"span"],[10,"class","source-code"],[8],[1,[20,"packageId"],false],[9],[0,"\\n"]],"parameters":[]},{"statements":[[4,"paginated-list",null,[["url"],[[22,["referencesUrl"]]]],{"statements":[[0," "],[6,"ul"],[8],[0,"\\n"],[4,"each",[[21,2,[]]],null,{"statements":[[0," "],[6,"li"],[8],[0,"\\n "],[6,"div"],[10,"class","file-name"],[8],[6,"a"],[11,"href",[27,["/package/",[20,"packageId"],"/show/",[21,3,["name"]]]]],[8],[1,[21,3,["name"]],false],[9],[9],[0,"\\n"],[4,"each",[[21,3,["references"]]],null,{"statements":[[0," "],[6,"a"],[10,"class","source-code source-code-snippet"],[11,"href",[27,["/package/",[20,"packageId"],"/show/",[21,3,["name"]],"#L",[21,4,["idSrcSpan","line"]]]]],[8],[1,[21,4,["sourceCodeHtml"]],true],[9],[0,"\\n"]],"parameters":[4]},null],[0," "],[9],[0,"\\n"]],"parameters":[3]},null],[0," "],[9],[0,"\\n"]],"parameters":[2]},null]],"parameters":[]}]],"parameters":[1]},null],[0," "],[9],[0,"\\n "],[9],[0,"\\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/package.hbs"}})}),define("haskell-code-explorer/templates/package/index",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"NL2mPZNK",block:'{"symbols":["module"],"statements":[[6,"div"],[10,"class","package-modules"],[8],[0,"\\n "],[6,"div"],[10,"class","module-search-input"],[8],[0,"\\n "],[1,[26,"input",null,[["class","type","value","placeholder"],["form-control","text",[22,["query"]],"Module name"]]],false],[0," \\n "],[9],[0," \\n "],[6,"ul"],[10,"class","modules"],[8],[0,"\\n"],[4,"each",[[22,["modulesFiltered"]]],null,{"statements":[[0," "],[6,"li"],[8],[0,"\\n "],[6,"a"],[11,"href",[27,["/package/",[22,["model","id"]],"/show/",[21,1,[]]]]],[8],[1,[21,1,[]],false],[9],[0,"\\n "],[9],[0,"\\n"]],"parameters":[1]},null],[0," "],[9],[0," \\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/package/index.hbs"}})}),define("haskell-code-explorer/templates/package/search",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"tnwltDLx",block:'{"symbols":["identifiers","identifier"],"statements":[[6,"div"],[10,"class","search-results-header"],[8],[0,"\\n Query : "],[1,[22,["model","query"]],false],[0,"\\n"],[9],[0,"\\n"],[6,"div"],[10,"class","search-results-content"],[8],[0,"\\n"],[4,"paginated-list",null,[["url"],[[22,["model","url"]]]],{"statements":[[0," "],[6,"ul"],[8],[0,"\\n"],[4,"each",[[21,1,[]]],null,{"statements":[[0," "],[6,"li"],[10,"class","search-result"],[8],[0," \\n "],[6,"span"],[10,"class","source-code"],[8],[1,[21,2,["demangledOccName"]],false],[0," :: "],[1,[26,"type-signature-text",null,[["components"],[[21,2,["idType","components"]]]]],false],[9],[0,"\\n "],[6,"div"],[8],[6,"a"],[10,"href","#"],[11,"onmouseup",[26,"action",[[21,0,[]],"goToDefinition",[21,2,["locationInfo"]]],null]],[8],[0,"Go to definition"],[9],[9],[0,"\\n "],[6,"div"],[10,"class","identifier-module"],[8],[0,"\\n"],[4,"if",[[21,2,["locationInfo","modulePath"]]],null,{"statements":[[0," Defined in "],[6,"a"],[11,"href",[27,["/package/",[21,2,["locationInfo","packageId","name"]],"-",[21,2,["locationInfo","packageId","version"]],"/show/",[21,2,["locationInfo","modulePath"]]]]],[8],[1,[21,2,["locationInfo","modulePath"]],false],[9],[0,"\\n"]],"parameters":[]},null],[0," "],[9],[0,"\\n "],[6,"div"],[8],[1,[21,2,["doc"]],true],[9],[0,"\\n "],[9],[0,"\\n"]],"parameters":[2]},null],[0," "],[9],[0,"\\n"]],"parameters":[1]},null],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/package/search.hbs"}})}),define("haskell-code-explorer/templates/package/show",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"aR1d98il",block:'{"symbols":[],"statements":[[1,[20,"outlet"],false],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/package/show.hbs"}})}),define("haskell-code-explorer/templates/package/show/file",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"n+gY0z10",block:'{"symbols":[],"statements":[[4,"if",[[22,["model","isHaskellModule"]]],null,{"statements":[[0," "],[1,[26,"haskell-module",null,[["path","name","packageId","componentId","html","identifiers","occurrences","colorTheme","declarations","findReferences"],[[22,["model","id"]],[22,["model","name"]],[22,["model","packageId"]],[22,["model","componentId"]],[22,["model","sourceCodeHtml"]],[22,["model","identifiers"]],[22,["model","occurrences"]],[22,["settings","colorTheme"]],[22,["model","declarations"]],[26,"action",[[21,0,[]],"findReferences"],null]]]],false],[0,"\\n"]],"parameters":[]},{"statements":[[0," "],[1,[26,"text-file",null,[["text","path"],[[22,["model","text"]],[22,["model","id"]]]]],false],[0,"\\n"]],"parameters":[]}]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/package/show/file.hbs"}})}),define("haskell-code-explorer/templates/packages",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"b/AToiBD",block:'{"symbols":["package","version","index"],"statements":[[6,"div"],[10,"class","flex-container container"],[8],[0,"\\n "],[6,"div"],[8],[0," \\n "],[2," <p class=\\"lead\\"><b>Haskell code explorer</b> </p> "],[0,"\\n "],[6,"div"],[10,"class","package-search-form"],[8],[0,"\\n "],[1,[26,"input",null,[["class","type","value","placeholder"],["form-control","text",[22,["query"]],"Package name"]]],false],[0,"\\n "],[6,"span"],[8],[0,"Number of packages : "],[1,[22,["packages","length"]],false],[9],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"div"],[10,"id","packages"],[10,"class","packages"],[8],[0,"\\n "],[6,"ul"],[8],[0,"\\n"],[4,"infinite-list",null,[["containerElementId","elements","perPage"],["packages",[22,["packages"]],80]],{"statements":[[0," "],[6,"li"],[8],[0,"\\n"],[4,"each",[[21,1,["versions"]]],null,{"statements":[[4,"link-to",["package",[26,"concat",[[21,1,["name"]],"-",[21,2,[]]],null]],null,{"statements":[[4,"if",[[26,"gt",[[21,3,[]],0],null]],null,{"statements":[[0," "],[1,[21,2,[]],false],[0,"\\n"]],"parameters":[]},{"statements":[[0," "],[1,[21,1,["name"]],false],[0,"-"],[1,[21,2,[]],false],[0,"\\n"]],"parameters":[]}]],"parameters":[]},null]],"parameters":[2,3]},null],[0," "],[9],[0,"\\n"]],"parameters":[1]},null],[0," "],[9],[0,"\\n "],[9],[0,"\\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"haskell-code-explorer/templates/packages.hbs"}})}),define("haskell-code-explorer/utils/api-urls",["exports","haskell-code-explorer/config/environment"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.urls=void 0
+e.urls={packageInfoUrl:function(e){return t.default.APP.staticUrlPrefix+"/"+e+"/"+t.default.APP.haskellCodeExplorerDirectory+"/packageInfo.json"},fileUrl:function(e,n){return t.default.APP.staticUrlPrefix+"/"+e+"/"+n},haskellModuleUrl:function(e,n){return t.default.APP.staticUrlPrefix+"/"+e+"/"+t.default.APP.haskellCodeExplorerDirectory+"/"+encodeURIComponent(encodeURIComponent(n))+".json"},packagesUrl:t.default.APP.apiUrlPrefix+"/packages",identifierDefinitionSiteUrl:function(e,n,o,r,i){return t.default.APP.apiUrlPrefix+"/definitionSite/"+e+"/"+o+"/"+n+"/"+r+"/"+encodeURIComponent(i).replace(/\./g,"%2E")},modulePathUrl:function(e,n,o){return t.default.APP.apiUrlPrefix+"/modulePath/"+e+"/"+o+"/"+n},expressionsUrl:function(e,n,o,r,i,l){return t.default.APP.apiUrlPrefix+"/expressions/"+e+"/"+encodeURIComponent(n)+"/"+o+"/"+r+"/"+i+"/"+l},referencesUrl:function(e,n){return t.default.APP.apiUrlPrefix+"/references/"+e+"/"+encodeURIComponent(n)},identifierSearchUrl:function(e,n){return t.default.APP.apiUrlPrefix+"/identifiers/"+e+"/"+encodeURIComponent(n).replace(/\./g,"%2E")}}}),define("haskell-code-explorer/utils/color-themes",["exports"],function(e){function t(e){return"\n body { \n color: "+e.defaultColor+" !important;\n background-color: "+e.backgroundColor+" !important;\n }\n input {\n color: "+e.defaultColor+" !important;\n background-color: "+e.backgroundColor+" !important;\n border-color: "+e.borderColor+" !important;\n }\n .package-content {\n border-top: 1px solid "+e.borderColor+" !important;\n }\n .header a {\n color : "+e.menuLinkColor+" !important;\n }\n a {\n color: "+e.typeColor+" !important;\n }\n span.link {\n color: "+e.typeColor+" !important;\n }\n .header {\n background-color: "+e.menuColor+" !important;\n border-bottom: 1px solid "+e.borderColor+" !important;\n }\n .declarations-content {\n background-color: "+e.navigationPanelColor+" !important;\n border: 1px solid "+e.borderColor+" !important;\n }\n .declarations-header {\n background-color: "+e.navigationPanelColor+" !important;\n border: 1px solid "+e.borderColor+" !important; \n }\n li.declaration {\n border-bottom: 1px solid "+e.borderColor+" !important;\n }\n .left-panel {\n background-color: "+e.navigationPanelColor+" !important;\n border-right: 1px solid "+e.borderColor+" !important;\n }\n .show-left-panel-button {\n background-color: "+e.navigationPanelColor+" !important;\n border-right:1px solid "+e.borderColor+" !important;\n border-bottom:1px solid "+e.borderColor+" !important;\n }\n .right-panel {\n background-color: "+e.backgroundColor+" !important;\n }\n a.jstree-anchor {\n color: "+e.defaultColor+" !important;\n }\n .declaration > a {\n color: "+e.defaultColor+" !important;\n }\n .highlighted-line {\n background : "+e.highlightedLineColor+" !important;\n }\n table.source-code {\n background-color: "+e.backgroundColor+" !important;\n color: "+e.defaultColor+" !important;\n }\n .jstree-clicked {\n background-color: "+e.backgroundColor+" !important;\n }\n .jstree-hovered {\n background-color: "+e.backgroundColor+" !important;\n }\n ul.autocomplete-items {\n background-color: "+e.backgroundColor+" !important;\n border-top: 1px solid "+e.borderColor+" !important;\n border-left: 1px solid "+e.borderColor+" !important;\n border-right: 1px solid "+e.borderColor+" !important;\n }\n ul.autocomplete-items > li { \n border-bottom: 1px solid "+e.borderColor+" !important;\n }\n ul.autocomplete-items > li:hover { \n background-color: "+e.highlightedLineColor+" !important;\n }\n ul.autocomplete-items > li.highlighted { \n background-color: "+e.highlightedLineColor+" !important;\n }\n .source-code-snippet {\n color: "+e.defaultColor+" !important;\n border-bottom: 1px solid "+e.borderColor+" !important;\n } \n .source-code-snippet:hover {\n background-color: "+e.highlightedLineColor+" !important;\n }\n .bottom-panel {\n background-color: "+e.backgroundColor+" !important;\n border-top: 1px solid "+e.borderColor+" !important;\n }\n .bottom-panel-header {\n border-bottom: 1px solid "+e.borderColor+" !important; \n }\n .paginated-list-header {\n border-bottom: 1px solid "+e.borderColor+" !important;\n }\n li.search-result {\n border-bottom: 1px solid "+e.borderColor+" !important;\n }\n .search-results-header {\n border-bottom: 1px solid "+e.borderColor+" !important;\n }\n .info-window-content {\n border-top: 1px solid "+e.borderColor+" !important;\n }\n .info-window {\n border: 1px solid "+e.borderColor+" !important;\n background-color:"+e.infoWindowColor+" !important;\n color: "+e.defaultColor+" !important;\n }\n .type-info {\n border-top: 1px solid "+e.borderColor+" !important;\n }"}function n(e){var n=document.createElement("style")
+n.type="text/css",n.innerHTML=t(e),n.id="color-theme"
+var o=document.querySelector("style#color-theme")
+o&&o.parentElement.removeChild(o),document.getElementsByTagName("head")[0].appendChild(n)}Object.defineProperty(e,"__esModule",{value:!0})
+var o={id:"darkTheme",name:"Dark theme",description:"Dark theme (Monokai based)",defaultColor:"#F8F8F2",backgroundColor:"#272822",typeColor:"#66D9EF",literalColor:"#E6DB74",topLevelIdFromCurrentModule:"#A6E22E",localIdentifierColor:["#F0A3FF","#0075DC","#993F00","#2BCE48","#FFCC99","#808080","#94FFB5","#8F7C00","#C20088","#FFA405","#FFA8BB","#426600","#FF0010","#5EF1F2","#00998F","#E0FF66","#FFFF80","#FFFF00","#FF5005"],menuColor:"#3c3b37",menuLinkColor:"#F8F8F2",infoWindowColor:"#3c3b37",navigationPanelColor:"#3c3b37",linkColor:"#0366d6",borderColor:"#535557",highlightedLineColor:"#4a4a4a"},r={id:"lightTheme",name:"Light theme",description:"Light theme (Github based)",defaultColor:"#24292e",backgroundColor:"#ffffff",typeColor:"#005cc5",literalColor:"#032f62",topLevelIdFromCurrentModule:"#6f42c1",localIdentifierColor:["#005C31","#2BCE48","#808080","#8F7C00","#C20088","#FFA405","#ffa8bb","#426600","#FF0010","#09d7d8","#00998F","#990000","#FF5005"],menuColor:"#f2f4f8",menuLinkColor:"#24292e",infoWindowColor:"#f2f4f8",navigationPanelColor:"#f2f4f8",linkColor:"#0366d6",borderColor:"#e1e4e8",highlightedLineColor:"#eaeaea"},i={darkTheme:o,lightTheme:r}
+e.updateColorThemeCss=n,e.colorThemeToCss=t,e.themes=i}),define("haskell-code-explorer/utils/go-to-definition",["exports"],function(e){function t(e){var t=e.modulePath,n=e.packageId.name+"-"+e.packageId.version,o=""
+return 1!=e.startLine&&(o="#L"+e.startLine),"/package/"+n+"/show/"+t+o}function n(e,t){var n=t.moduleName.replace(/\./g,"-"),o=void 0
+o="Val"===t.entity?"v":"t"
+var r=""
+return"Val"!==t.entity&&"Typ"!==t.entity||(r="#"+o+":"+t.haddockAnchorId),"https://hackage.haskell.org/package/"+e+"/docs/"+n+".html"+r}function o(e,t){return 2===e?window.open(t,"_blank"):1==e&&(window.location=t),!1}function r(e){if(e){var t=window.location.origin+window.location.pathname+"#L"+e
+location.href!=t&&(window.location.hash="#L"+e)}}function i(e,i,l,s){if("ExactLocation"===i.tag){var a=t(i)
+i.startLine!==s&&r(s),o(l,a)}else if("ApproximateLocation"===i.tag){var c=i.packageId.name+"-"+i.packageId.version
+"Mod"===i.entity?e.loadDefinitionSite(c,i.moduleName,i.componentId,i.entity,i.moduleName).then(function(e){var t=e.location.packageId.name+"-"+e.location.packageId.version
+o(l,"/package/"+t+"/show/"+e.location.modulePath)}).catch(function(){o(l,n(c,i))}):e.loadDefinitionSite(c,i.moduleName,i.componentId,i.entity,i.name).then(function(e){if("ExactLocation"===e.location.tag){var a=t(e.location)
+i.startLine!==s&&r(s),o(l,a)}else r(s),o(l,n(c,i))}).catch(function(e){console.log(e),r(s),o(l,n(c,i))})}else alert("No location info")}Object.defineProperty(e,"__esModule",{value:!0}),e.goToDefinition=i,e.openUrl=o}),define("haskell-code-explorer/utils/line-selection",["exports"],function(e){function t(e,t){var o=Array.prototype.slice.call(e.querySelectorAll("td.line-number"))
+if(o.length>0){var i=function(){n(e)}
+window.addEventListener("hashchange",i),t._onhashchange=i
+var l=void 0,s=function(e){16===e.keyCode&&(l=!0)},a=function(e){16===e.keyCode&&(l=!1)}
+document.addEventListener("keydown",s),document.addEventListener("keyup",a),t._onkeydown=s,t._onkeyup=a
+var c=void 0,d=void 0
+o.forEach(function(t){t.onclick=function(){var t=parseInt(this.textContent)
+l&&c?c!=t&&(d=t,c<d?(r(e,c,d),window.location.hash="L"+c+"-L"+d):(r(e,d,c),window.location.hash="L"+d+"-L"+c)):(c=t,d=null,r(e,c,c),window.location.hash="L"+t)}})
+var u=n(e)
+u.length&&(c=u[0],d=u[1])}}function n(e){var t=window.location.hash.slice(1)
+if(!t)return r(e,0,0),[]
+if(t.includes("-")){var n=t.split("-"),i=parseInt(n[0].substring(1)),l=parseInt(n[1].substring(1))
+if(i&&l&&i<=l){r(e,i,l)
+var s=e.querySelector("td#LC"+i)
+return s&&o(s,e),[i,l]}}else{var a=parseInt(t.substring(1))
+if(a){r(e,a,a)
+var c=e.querySelector("td#LC"+a)
+return c&&o(c,e),[a]}}}function o(e,t){e.parentNode.scrollIntoView()
+var n=t.parentNode.parentNode,o=n.offsetHeight
+t.offsetHeight-n.scrollTop>o&&(n.scrollTop=n.scrollTop-(o/2-20))}function r(e,t,n){Array.prototype.slice.call(e.querySelectorAll("td.line-content")).forEach(function(e){var o=parseInt(e.id.substring(2))
+o>=t&&o<=n?e.classList.add("highlighted-line"):e.classList.remove("highlighted-line")})}Object.defineProperty(e,"__esModule",{value:!0}),e.initializeLineSelection=t,e.highlightLines=r,e.highlightSelectedLines=n}),define("haskell-code-explorer/config/environment",[],function(){try{var e="haskell-code-explorer/config/environment",t=document.querySelector('meta[name="'+e+'"]').getAttribute("content"),n=JSON.parse(unescape(t)),o={default:n}
+return Object.defineProperty(o,"__esModule",{value:!0}),o}catch(t){throw new Error('Could not read config from meta tag with name "'+e+'".')}}),runningTests||require("haskell-code-explorer/app").default.create({staticUrlPrefix:"/files",apiUrlPrefix:"/api",haskellCodeExplorerDirectory:".haskell-code-explorer",title:"Haskell code explorer",name:"haskell-code-explorer",version:"0.0.1+cdeabaf8"})
diff --git a/javascript/release/assets/haskell-code-explorer-7473ab64643f48019c68ec4624ce37cb.css b/javascript/release/assets/haskell-code-explorer-7473ab64643f48019c68ec4624ce37cb.css
new file mode 100644
index 0000000..25c381b
--- /dev/null
+++ b/javascript/release/assets/haskell-code-explorer-7473ab64643f48019c68ec4624ce37cb.css
@@ -0,0 +1,6 @@
+/*!
+ * Bootstrap v4.1.2 (https://getbootstrap.com/)
+ * Copyright 2011-2018 The Bootstrap Authors
+ * Copyright 2011-2018 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */dd,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem}dl,ol,pre,ul{margin-top:0}address,dl,ol,p,pre,ul{margin-bottom:1rem}img,svg:not(:root){vertical-align:middle}body,caption{text-align:left}pre,textarea{overflow:auto}article,aside,figcaption,figure,footer,header,hgroup,legend,main,nav,section{display:block}address,legend{line-height:inherit}.badge,progress,sub,sup{vertical-align:baseline}button,hr,input{overflow:visible}.btn-outline-danger,.btn-outline-dark,.btn-outline-info,.btn-outline-light,.btn-outline-primary,.btn-outline-success,.btn-outline-warning,.btn:not(:disabled):not(.disabled).active,.btn:not(:disabled):not(.disabled):active{background-image:none}.dropdown-menu,.form-control,.modal-content,.popover{background-clip:padding-box}.dropdown-menu,.nav,.navbar-nav{list-style:none}:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}@-ms-viewport{width:device-width}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-weight:400;line-height:1.5;color:#212529;background-color:#fff}.text-monospace,code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}[tabindex="-1"]:focus{outline:0!important}h1,h2,h3,h4,h5,h6{margin-top:0}abbr[data-original-title],abbr[title]{text-decoration:underline;text-decoration:underline dotted;cursor:help;border-bottom:0}.btn:not(:disabled):not(.disabled),.navbar-toggler:not(:disabled):not(.disabled),.page-link:not(:disabled):not(.disabled),summary{cursor:pointer}address{font-style:normal}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}blockquote,figure{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-size:1em}pre{-ms-overflow-style:scrollbar}img{border-style:none}svg:not(:root){overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;caption-side:bottom}th{text-align:inherit}label,output{display:inline-block}button{border-radius:0}button:focus{outline:dotted 1px;outline:-webkit-focus-ring-color auto 5px}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[type=submit],[type=reset],button,html [type=button]{-webkit-appearance:button}[type=submit]::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=radio],input[type=checkbox]{box-sizing:border-box;padding:0}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:listbox}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;color:inherit;white-space:normal}.badge,.btn,.dropdown-header,.dropdown-item,.input-group-text,.navbar-brand,.progress-bar{white-space:nowrap}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}.display-1,.display-2,.display-3,.display-4{line-height:1.2}summary{display:list-item}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-family:inherit;font-weight:500;line-height:1.2;color:inherit}.blockquote,hr{margin-bottom:1rem}.display-1,.display-2,.display-3,.display-4,.lead{font-weight:300}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem}.display-1{font-size:6rem}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-4{font-size:3.5rem}hr{box-sizing:content-box;height:0;margin-top:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014 \00A0"}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}a>code,pre code{color:inherit}code{word-break:break-word}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}.container,.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto;width:100%}.btn,.btn-link,.dropdown-item{font-weight:400}pre{display:block}pre code{font-size:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;min-height:1px;padding-right:15px;padding-left:15px}.col{flex-basis:0;flex-grow:1;max-width:100%}.col-auto{flex:0 0 auto;width:auto;max-width:none}.col-1{flex:0 0 8.33333%;max-width:8.33333%}.col-2{flex:0 0 16.66667%;max-width:16.66667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.33333%;max-width:33.33333%}.col-5{flex:0 0 41.66667%;max-width:41.66667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.33333%;max-width:58.33333%}.col-8{flex:0 0 66.66667%;max-width:66.66667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.33333%;max-width:83.33333%}.col-11{flex:0 0 91.66667%;max-width:91.66667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.33333%}.offset-2{margin-left:16.66667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333%}.offset-5{margin-left:41.66667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333%}.offset-8{margin-left:66.66667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333%}.offset-11{margin-left:91.66667%}@media (min-width:576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:none}.col-sm-1{flex:0 0 8.33333%;max-width:8.33333%}.col-sm-2{flex:0 0 16.66667%;max-width:16.66667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.33333%;max-width:33.33333%}.col-sm-5{flex:0 0 41.66667%;max-width:41.66667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.33333%;max-width:58.33333%}.col-sm-8{flex:0 0 66.66667%;max-width:66.66667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.33333%;max-width:83.33333%}.col-sm-11{flex:0 0 91.66667%;max-width:91.66667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333%}.offset-sm-2{margin-left:16.66667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333%}.offset-sm-5{margin-left:41.66667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333%}.offset-sm-8{margin-left:66.66667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333%}.offset-sm-11{margin-left:91.66667%}}@media (min-width:768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.col-md-auto{flex:0 0 auto;width:auto;max-width:none}.col-md-1{flex:0 0 8.33333%;max-width:8.33333%}.col-md-2{flex:0 0 16.66667%;max-width:16.66667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.33333%;max-width:33.33333%}.col-md-5{flex:0 0 41.66667%;max-width:41.66667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.33333%;max-width:58.33333%}.col-md-8{flex:0 0 66.66667%;max-width:66.66667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.33333%;max-width:83.33333%}.col-md-11{flex:0 0 91.66667%;max-width:91.66667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333%}.offset-md-2{margin-left:16.66667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333%}.offset-md-5{margin-left:41.66667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333%}.offset-md-8{margin-left:66.66667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333%}.offset-md-11{margin-left:91.66667%}}@media (min-width:992px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:none}.col-lg-1{flex:0 0 8.33333%;max-width:8.33333%}.col-lg-2{flex:0 0 16.66667%;max-width:16.66667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.33333%;max-width:33.33333%}.col-lg-5{flex:0 0 41.66667%;max-width:41.66667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.33333%;max-width:58.33333%}.col-lg-8{flex:0 0 66.66667%;max-width:66.66667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.33333%;max-width:83.33333%}.col-lg-11{flex:0 0 91.66667%;max-width:91.66667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333%}.offset-lg-2{margin-left:16.66667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333%}.offset-lg-5{margin-left:41.66667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333%}.offset-lg-8{margin-left:66.66667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333%}.offset-lg-11{margin-left:91.66667%}}@media (min-width:1200px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:none}.col-xl-1{flex:0 0 8.33333%;max-width:8.33333%}.col-xl-2{flex:0 0 16.66667%;max-width:16.66667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.33333%;max-width:33.33333%}.col-xl-5{flex:0 0 41.66667%;max-width:41.66667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.33333%;max-width:58.33333%}.col-xl-8{flex:0 0 66.66667%;max-width:66.66667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.33333%;max-width:83.33333%}.col-xl-11{flex:0 0 91.66667%;max-width:91.66667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333%}.offset-xl-2{margin-left:16.66667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333%}.offset-xl-5{margin-left:41.66667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333%}.offset-xl-8{margin-left:66.66667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333%}.offset-xl-11{margin-left:91.66667%}}.table{width:100%;max-width:100%;margin-bottom:1rem;background-color:transparent}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table .table{background-color:#fff}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#212529;border-color:#32383e}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#212529}.table-dark td,.table-dark th,.table-dark thead th{border-color:#32383e}.table-dark.table-bordered,.table-responsive>.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.collapsing,.modal,.modal-open,.progress{overflow:hidden}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:not([size]):not([multiple]){height:calc(2.25rem + 2px)}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.custom-file-input.is-valid~.custom-file-label,.custom-select.is-valid,.form-control.is-valid,.was-validated .custom-file-input:valid~.custom-file-label,.was-validated .custom-select:valid,.was-validated .form-control:valid{border-color:#28a745}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm,.input-group-lg>.form-control-plaintext.form-control,.input-group-lg>.input-group-append>.form-control-plaintext.btn,.input-group-lg>.input-group-append>.form-control-plaintext.input-group-text,.input-group-lg>.input-group-prepend>.form-control-plaintext.btn,.input-group-lg>.input-group-prepend>.form-control-plaintext.input-group-text,.input-group-sm>.form-control-plaintext.form-control,.input-group-sm>.input-group-append>.form-control-plaintext.btn,.input-group-sm>.input-group-append>.form-control-plaintext.input-group-text,.input-group-sm>.input-group-prepend>.form-control-plaintext.btn,.input-group-sm>.input-group-prepend>.form-control-plaintext.input-group-text{padding-right:0;padding-left:0}.form-control-sm,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-sm>.input-group-append>select.btn:not([size]):not([multiple]),.input-group-sm>.input-group-append>select.input-group-text:not([size]):not([multiple]),.input-group-sm>.input-group-prepend>select.btn:not([size]):not([multiple]),.input-group-sm>.input-group-prepend>select.input-group-text:not([size]):not([multiple]),.input-group-sm>select.form-control:not([size]):not([multiple]),select.form-control-sm:not([size]):not([multiple]){height:calc(1.8125rem + 2px)}.form-control-lg,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-lg>.input-group-append>select.btn:not([size]):not([multiple]),.input-group-lg>.input-group-append>select.input-group-text:not([size]):not([multiple]),.input-group-lg>.input-group-prepend>select.btn:not([size]):not([multiple]),.input-group-lg>.input-group-prepend>select.input-group-text:not([size]):not([multiple]),.input-group-lg>select.form-control:not([size]):not([multiple]),select.form-control-lg:not([size]):not([multiple]){height:calc(2.875rem + 2px)}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.invalid-tooltip,.valid-tooltip{position:absolute;z-index:5;max-width:100%;padding:.5rem;line-height:1;border-radius:.2rem;top:100%}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{display:none;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(40,167,69,.8)}.custom-control-input.is-valid~.valid-feedback,.custom-control-input.is-valid~.valid-tooltip,.custom-file-input.is-valid~.valid-feedback,.custom-file-input.is-valid~.valid-tooltip,.custom-select.is-valid~.valid-feedback,.custom-select.is-valid~.valid-tooltip,.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.form-control-file.is-valid~.valid-feedback,.form-control-file.is-valid~.valid-tooltip,.form-control.is-valid~.valid-feedback,.form-control.is-valid~.valid-tooltip,.was-validated .custom-control-input:valid~.valid-feedback,.was-validated .custom-control-input:valid~.valid-tooltip,.was-validated .custom-file-input:valid~.valid-feedback,.was-validated .custom-file-input:valid~.valid-tooltip,.was-validated .custom-select:valid~.valid-feedback,.was-validated .custom-select:valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip,.was-validated .form-control-file:valid~.valid-feedback,.was-validated .form-control-file:valid~.valid-tooltip,.was-validated .form-control:valid~.valid-feedback,.was-validated .form-control:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.form-check-input.is-valid~.form-check-label,.was-validated .custom-control-input:valid~.custom-control-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.custom-select.is-valid:focus,.form-control.is-valid:focus,.was-validated .custom-select:valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{background-color:#71dd8a}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(40,167,69,.25)}.custom-file-input.is-valid~.custom-file-label::before,.was-validated .custom-file-input:valid~.custom-file-label::before{border-color:inherit}.custom-file-input.is-invalid~.custom-file-label,.custom-select.is-invalid,.form-control.is-invalid,.was-validated .custom-file-input:invalid~.custom-file-label,.was-validated .custom-select:invalid,.was-validated .form-control:invalid{border-color:#dc3545}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{display:none;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(220,53,69,.8)}.collapsing,.dropdown,.dropleft,.dropright,.dropup{position:relative}.custom-control-input.is-invalid~.invalid-feedback,.custom-control-input.is-invalid~.invalid-tooltip,.custom-file-input.is-invalid~.invalid-feedback,.custom-file-input.is-invalid~.invalid-tooltip,.custom-select.is-invalid~.invalid-feedback,.custom-select.is-invalid~.invalid-tooltip,.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.form-control-file.is-invalid~.invalid-feedback,.form-control-file.is-invalid~.invalid-tooltip,.form-control.is-invalid~.invalid-feedback,.form-control.is-invalid~.invalid-tooltip,.was-validated .custom-control-input:invalid~.invalid-feedback,.was-validated .custom-control-input:invalid~.invalid-tooltip,.was-validated .custom-file-input:invalid~.invalid-feedback,.was-validated .custom-file-input:invalid~.invalid-tooltip,.was-validated .custom-select:invalid~.invalid-feedback,.was-validated .custom-select:invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip,.was-validated .form-control-file:invalid~.invalid-feedback,.was-validated .form-control-file:invalid~.invalid-tooltip,.was-validated .form-control:invalid~.invalid-feedback,.was-validated .form-control:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.form-check-input.is-invalid~.form-check-label,.was-validated .custom-control-input:invalid~.custom-control-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.custom-select.is-invalid:focus,.form-control.is-invalid:focus,.was-validated .custom-select:invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{background-color:#efa2a9}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(220,53,69,.25)}.custom-file-input.is-invalid~.custom-file-label::before,.was-validated .custom-file-input:invalid~.custom-file-label::before{border-color:inherit}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:flex;align-items:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:flex;flex:0 0 auto;flex-flow:row wrap;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn-block,input[type=submit].btn-block,input[type=button].btn-block,input[type=reset].btn-block{width:100%}.btn{display:inline-block;text-align:center;vertical-align:middle;user-select:none;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:focus,.btn:hover{text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn-primary.focus,.btn-primary:focus,.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-success.focus,.btn-success:focus,.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-info.focus,.btn-info:focus,.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-warning.focus,.btn-warning:focus,.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-danger.focus,.btn-danger:focus,.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-light.focus,.btn-light:focus,.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-dark.focus,.btn-dark:focus,.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-outline-primary.focus,.btn-outline-primary:focus,.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary{color:#007bff;background-color:transparent;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-secondary.focus,.btn-outline-secondary:focus,.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary{color:#6c757d;background-color:transparent;background-image:none;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-success.focus,.btn-outline-success:focus,.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success{color:#28a745;background-color:transparent;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-info.focus,.btn-outline-info:focus,.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info{color:#17a2b8;background-color:transparent;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-warning.focus,.btn-outline-warning:focus,.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning{color:#ffc107;background-color:transparent;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-danger.focus,.btn-outline-danger:focus,.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger{color:#dc3545;background-color:transparent;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-light.focus,.btn-outline-light:focus,.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light{color:#f8f9fa;background-color:transparent;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-dark.focus,.btn-outline-dark:focus,.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark{color:#343a40;background-color:transparent;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-link,.btn-link:hover{background-color:transparent}.btn-link.focus,.btn-link:focus,.btn-link:hover{text-decoration:underline;border-color:transparent}.btn-link{color:#007bff}.btn-link:hover{color:#0056b3}.btn-link.focus,.btn-link:focus{box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block}.btn-block+.btn-block{margin-top:.5rem}.dropdown-toggle::after,.dropup .dropdown-toggle::after{width:0;height:0;vertical-align:.255em;content:""}.fade{transition:opacity .15s linear}@media screen and (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;transition:height .35s ease}@media screen and (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown-toggle::after{display:inline-block;margin-left:.255em;border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;background-color:#fff;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-right{right:0;left:auto}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropleft .dropdown-toggle::before,.dropright .dropdown-toggle::after{width:0;content:"";border-top:.3em solid transparent;border-bottom:.3em solid transparent;height:0}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;border-right:0;border-left:.3em solid;vertical-align:0}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;border-right:.3em solid;vertical-align:0}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropdown-menu[x-placement^=top],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn,.custom-control-label,.custom-file,.dropdown-header,.input-group-text,.nav{margin-bottom:0}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;color:#212529;text-align:inherit;background-color:transparent;border:0}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after,.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child),.input-group>.custom-file:not(:first-child) .custom-file-label,.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;font-size:.875rem;color:#6c757d}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:0 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group,.btn-group-vertical .btn+.btn,.btn-group-vertical .btn+.btn-group,.btn-group-vertical .btn-group+.btn,.btn-group-vertical .btn-group+.btn-group{margin-left:-1px}.btn-group>.btn:first-child,.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical .btn,.btn-group-vertical .btn-group{width:100%}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.input-group-append,.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text,.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control{margin-left:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control{position:relative;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file{display:flex;align-items:center}.input-group-append,.input-group-prepend{display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-prepend{margin-right:-1px}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.nav,.navbar{flex-wrap:wrap}.input-group-text input[type=radio],.input-group-text input[type=checkbox]{margin-top:0}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;z-index:-1;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:active~.custom-control-label::before{color:#fff;background-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative}.custom-control-label::after,.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:""}.custom-control-label::before{pointer-events:none;user-select:none;background-color:#dee2e6}.custom-checkbox .custom-control-input:checked~.custom-control-label::before,.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{background-color:#007bff}.custom-control-label::after{background-repeat:no-repeat;background-position:center center;background-size:50% 50%}.custom-file-input:lang(en)~.custom-file-label::after,.custom-file-label::after{content:"Browse"}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before,.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::before{background-color:#007bff}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(2.25rem + 2px);padding:.375rem 1.75rem .375rem .75rem;line-height:1.5;color:#495057;vertical-align:middle;background:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") right .75rem center no-repeat #fff;background-size:8px 10px;border:1px solid #ced4da;border-radius:.25rem;appearance:none}.custom-select-lg,.custom-select-sm{padding-top:.375rem;padding-bottom:.375rem}.custom-file-input:focus~.custom-file-label::after,.custom-select:focus{border-color:#80bdff}.custom-select:focus{outline:0;box-shadow:0 0 0 .2rem rgba(128,189,255,.5)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-file-input:disabled~.custom-file-label,.custom-select:disabled{background-color:#e9ecef}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d}.custom-select::-ms-expand{opacity:0}.custom-select-sm{height:calc(1.8125rem + 2px);font-size:75%}.custom-select-lg{height:calc(2.875rem + 2px);font-size:125%}.custom-file,.custom-file-input,.custom-file-label{height:calc(2.25rem + 2px)}.custom-file{position:relative;display:inline-block;width:100%}.custom-file-input{position:relative;z-index:2;width:100%;margin:0;opacity:0}.custom-file-label,.custom-file-label::after{position:absolute;padding:.375rem .75rem;line-height:1.5;color:#495057;top:0;right:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-label{left:0;z-index:1;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{bottom:0;z-index:3;display:block;height:2.25rem;background-color:#e9ecef;border-left:1px solid #ced4da;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;padding-left:0;background-color:transparent;appearance:none}.custom-range:focus{outline:0}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media screen and (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{transition:none}}.custom-range::-webkit-slider-thumb:focus{outline:0;box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media screen and (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{transition:none}}.custom-range::-moz-range-thumb:focus{outline:0;box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media screen and (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{transition:none}}.custom-range::-ms-thumb:focus{outline:0;box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:flex;padding-left:0}.nav-link,.navbar{padding:.5rem 1rem}.nav-link{display:block}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;align-items:center;justify-content:space-between}.navbar>.container,.navbar>.container-fluid{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:center center no-repeat;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{flex:1 1 auto;padding:1.25rem}.card-footer,.card-header{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03)}.card-title{margin-bottom:.75rem}.card-header,.card-subtitle,.card-text:last-child{margin-bottom:0}.card-subtitle{margin-top:-.375rem}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-header{border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.alert,.btn .badge,.page-link{position:relative}.card-img{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck{display:flex;flex-direction:column}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{display:flex;flex:1 0 0%;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group{display:flex;flex-direction:column}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:first-child .card-header,.card-group>.card:first-child .card-img-top{border-top-right-radius:0}.card-group>.card:first-child .card-footer,.card-group>.card:first-child .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:last-child .card-header,.card-group>.card:last-child .card-img-top{border-top-left-radius:0}.card-group>.card:last-child .card-footer,.card-group>.card:last-child .card-img-bottom{border-bottom-left-radius:0}.card-group>.card:only-child{border-radius:.25rem}.card-group>.card:only-child .card-header,.card-group>.card:only-child .card-img-top{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card-group>.card:only-child .card-footer,.card-group>.card:only-child .card-img-bottom{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-group>.card:not(:first-child):not(:last-child):not(:only-child),.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-footer,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-header,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-top{border-radius:0}.card-columns{column-count:3;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.card-columns .card{margin-bottom:.75rem}.accordion .card:not(:first-of-type):not(:last-of-type){border-bottom:0;border-radius:0}.accordion .card:not(:first-of-type) .card-header:first-child{border-radius:0}.accordion .card:first-of-type{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion .card:last-of-type{border-top-left-radius:0;border-top-right-radius:0}.breadcrumb,.pagination{border-radius:.25rem;list-style:none}.breadcrumb{display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;background-color:#e9ecef}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0}.page-link{display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:1;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.carousel-indicators li,.close:not(:disabled):not(.disabled),.ember-radio-button,.identifier,td.line-number{cursor:pointer}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.badge,.close{font-weight:700;line-height:1}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;text-align:center;border-radius:.25rem}.badge:empty{display:none}.btn .badge{top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}.badge-primary[href]:focus,.badge-primary[href]:hover{color:#fff;text-decoration:none;background-color:#0062cc}.badge-secondary{color:#fff;background-color:#6c757d}.badge-secondary[href]:focus,.badge-secondary[href]:hover{color:#fff;text-decoration:none;background-color:#545b62}.badge-success{color:#fff;background-color:#28a745}.badge-success[href]:focus,.badge-success[href]:hover{color:#fff;text-decoration:none;background-color:#1e7e34}.badge-info{color:#fff;background-color:#17a2b8}.badge-info[href]:focus,.badge-info[href]:hover{color:#fff;text-decoration:none;background-color:#117a8b}.badge-warning{color:#212529;background-color:#ffc107}.badge-warning[href]:focus,.badge-warning[href]:hover{color:#212529;text-decoration:none;background-color:#d39e00}.badge-danger{color:#fff;background-color:#dc3545}.badge-danger[href]:focus,.badge-danger[href]:hover{color:#fff;text-decoration:none;background-color:#bd2130}.badge-light{color:#212529;background-color:#f8f9fa}.badge-light[href]:focus,.badge-light[href]:hover{color:#212529;text-decoration:none;background-color:#dae0e5}.badge-dark{color:#fff;background-color:#343a40}.badge-dark[href]:focus,.badge-dark[href]:hover{color:#fff;text-decoration:none;background-color:#1d2124}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:flex;height:1rem;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:flex;flex-direction:column;justify-content:center;color:#fff;text-align:center;background-color:#007bff;transition:width .6s ease}@media screen and (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{animation:progress-bar-stripes 1s linear infinite}.media{display:flex;align-items:flex-start}.media-body{flex:1}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item:focus,.list-group-item:hover{z-index:1;text-decoration:none}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.popover,.tooltip{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-style:normal;font-weight:400;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;text-decoration:none;word-wrap:break-word}.modal-title,.popover,.tooltip{line-height:1.5}.popover,.text-hide,.tooltip{text-shadow:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{color:#000;text-decoration:none;opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;outline:0}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0,-25%)}@media screen and (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:translate(0,0)}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - (.5rem * 2))}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem;border-bottom:1px solid #e9ecef;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;align-items:center;justify-content:flex-end;padding:1rem;border-top:1px solid #e9ecef}.popover,.popover .arrow,.popover .arrow::after,.popover .arrow::before,.tooltip,.tooltip .arrow{position:absolute;display:block}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-centered{min-height:calc(100% - (1.75rem * 2))}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg{max-width:800px}}.tooltip{z-index:1070;margin:0;text-align:left;text-align:start;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;text-align:left;text-align:start;background-color:#fff;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top] .arrow,.bs-popover-top .arrow{bottom:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::after,.bs-popover-top .arrow::before{border-width:.5rem .5rem 0}.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::before{bottom:0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-top .arrow::after{bottom:1px;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right] .arrow,.bs-popover-right .arrow{left:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::after,.bs-popover-right .arrow::before{border-width:.5rem .5rem .5rem 0}.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::before{left:0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-right .arrow::after{left:1px;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom] .arrow,.bs-popover-bottom .arrow{top:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::after,.bs-popover-bottom .arrow::before{border-width:0 .5rem .5rem}.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::before{top:0;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-bottom .arrow::after{top:1px;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.carousel,.carousel-inner,.carousel-item{position:relative}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left] .arrow,.bs-popover-left .arrow{right:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::after,.bs-popover-left .arrow::before{border-width:.5rem 0 .5rem .5rem}.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::before{right:0;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-left .arrow::after{right:1px;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;color:inherit;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel-inner{width:100%;overflow:hidden}.carousel-item{display:none;align-items:center;width:100%;backface-visibility:hidden;perspective:1000px}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block;transition:transform .6s ease}@media screen and (prefers-reduced-motion:reduce){.carousel-item-next,.carousel-item-prev,.carousel-item.active{transition:none}}.carousel-item-next,.carousel-item-prev{position:absolute;top:0}.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{transform:translateX(0)}@supports (transform-style:preserve-3d){.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{transform:translate3d(0,0,0)}}.active.carousel-item-right,.carousel-item-next{transform:translateX(100%)}@supports (transform-style:preserve-3d){.active.carousel-item-right,.carousel-item-next{transform:translate3d(100%,0,0)}}.active.carousel-item-left,.carousel-item-prev{transform:translateX(-100%)}@supports (transform-style:preserve-3d){.active.carousel-item-left,.carousel-item-prev{transform:translate3d(-100%,0,0)}}.carousel-fade .carousel-item{opacity:0;transition-duration:.6s;transition-property:opacity}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{opacity:0}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-prev,.carousel-fade .carousel-item-next,.carousel-fade .carousel-item-prev,.carousel-fade .carousel-item.active{transform:translateX(0)}@supports (transform-style:preserve-3d){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-prev,.carousel-fade .carousel-item-next,.carousel-fade .carousel-item-prev,.carousel-fade .carousel-item.active{transform:translate3d(0,0,0)}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:center center no-repeat;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E")}.carousel-control-next-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E")}.carousel-indicators{position:absolute;right:0;bottom:10px;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{position:relative;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;background-color:rgba(255,255,255,.5)}.carousel-indicators li::after,.carousel-indicators li::before{left:0;display:inline-block;height:10px;position:absolute;content:"";width:100%}.carousel-indicators li::before{top:-10px}.carousel-indicators li::after{bottom:-10px}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-left,.rounded-top{border-top-left-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded{border-radius:.25rem!important}.rounded-circle{border-radius:50%!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.85714%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{flex:1 1 auto!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.fixed-bottom,.fixed-top{position:fixed;z-index:1030;right:0;left:0}.fixed-top{top:0}.fixed-bottom{bottom:0}@supports (position:sticky){.sticky-top{position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}.text-justify{text-align:justify!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.right-panel,ul.modules{bottom:0;overflow-x:auto}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0062cc!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#545b62!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#1e7e34!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#117a8b!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#d39e00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#bd2130!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#dae0e5!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#1d2124!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;background-color:transparent;border:0}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{blockquote,img,pre,tr{page-break-inside:avoid}*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd}thead{display:table-header-group}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}.bottom-panel-header-content,.header-item,.package-header-filename{white-space:nowrap}body{font-size:14px}a,a:active,a:focus,a:hover,a:visited,input:focus{outline:0}p{margin-top:1rem}label{margin-bottom:0}ol,ul{list-style:none;padding:0}li{list-style:none}.documentation{margin-top:10px}.documentation li{list-style:disc}.documentation ol,.documentation ul{padding-left:15px}.header,.package-header{padding:5px}.flex-container{display:flex;flex-direction:column;height:100%;width:100%}.absolute-container{position:absolute;top:0;bottom:0;left:0;right:0}.header{flex:none}.header img{float:left}.header-item{display:inline-block;margin-top:5px;font-size:1rem;margin-right:40px}@media screen and (max-width:700px){.header-item{margin-right:10px;margin-left:10px}}.content{flex:auto;position:relative;overflow:auto}.packages{flex:auto;overflow-y:auto}.packages li{margin-bottom:5px}.packages a{margin-right:5px}.package-content{flex:auto;position:relative}.package-header-input{display:inline-block;margin-right:10px}.package-modules{margin-left:10px}.module-name{font-size:.7rem}.package-search-form{max-width:500px;margin-bottom:10px;margin-top:20px}.package-header-package-name{margin-right:10px;font-size:17px}.module-search-input{max-width:500px;margin:5px}ul.modules{position:absolute;top:50px;margin:0;padding-left:15px;left:0;right:0;display:flex;flex-direction:column;flex-wrap:wrap}ul.modules li{margin-right:10px}.left-panel{position:absolute;bottom:0;top:0;left:0;width:300px}.show-left-panel-button{position:absolute;top:0;right:-20px;z-index:2;width:20px;height:20px;text-align:center;vertical-align:middle;opacity:.6;display:none}.show-left-panel-button a{text-decoration:none}.show-left-panel-button:hover{opacity:1;cursor:pointer}.hide-file-tree{position:relative;top:8px;left:3px}.hide-declarations{margin:7px}.right-panel{position:absolute;top:0;right:0;left:300px;overflow-y:auto}.file-tree-container{overflow-x:hidden;overflow-y:auto;position:absolute;bottom:0;top:0;left:0;right:0}.bottom-panel,.bottom-panel-content,.file-container{position:absolute;right:0;left:0;overflow-x:auto;overflow-y:auto;bottom:0}.file-container{top:0}.bottom-panel{display:none;z-index:4}.bottom-panel-header{position:absolute;top:0;right:0;left:0;height:35px;padding:5px}.bottom-panel-content{top:35px}.bottom-panel-header-options{float:right}.source-code,code,pre{white-space:pre;line-height:1.25}.highlighted-identifier{border-radius:3px;box-shadow:0 0 0 1px #B4B4B4}td.line-number{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1%;min-width:60px;text-align:left;padding-left:10px;opacity:.8}td.line-number:hover{opacity:1}td.line-content{padding-left:5px}.source-code{font-family:Consolas,Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace,serif;tab-size:4}.break-word{word-wrap:break-word}code,pre{font-family:Consolas,Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace,serif!important;font-size:100%;color:unset}.source-code-font{font-family:Consolas,Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace,serif;line-height:1.25}.source-code-snippet{padding:4px;text-decoration:none!important;display:block}.autocomplete-item,.search-result,.search-results-header{padding:5px}.source-code-snippet>b{border-radius:3px;border:1px solid #B4B4B4;margin:-1px}.declarations div,.source-code-container{margin:5px}.source-code-snippet:hover{text-decoration:none}.declarations{position:fixed;top:150px;right:15px;width:450px;z-index:1}.declarations-content,.file-tree-content,.file-tree-header,.paginated-list-content,.paginated-list-header,.search-results-content,.search-results-header{position:absolute;left:0;right:0}.declarations-header{opacity:.9;height:50px}.declarations-content{opacity:.9;top:50px;max-height:500px;overflow-y:auto;overflow-x:hidden}@media screen and (max-width:1500px){.declarations{display:none}}.info-window-container{position:absolute;width:750px;z-index:10}.info-window-header{margin:5px;width:100%;cursor:move;cursor:grab;cursor:-moz-grab;cursor:-webkit-grab}.info-window-content{max-height:200px;overflow-x:auto;overflow-y:auto}.info-window-options{margin-right:10px;margin-left:10px;float:right}.ui-draggable-dragging .info-window-header{cursor:grabbing;cursor:-moz-grabbing;cursor:-webkit-grabbing}span.link{cursor:pointer;white-space:nowrap}span.link:hover{text-decoration:underline}.ui-resizable-n{height:13px!important}.ui-resizable-w{width:13px!important}.type-info{padding-top:5px;padding-bottom:5px}.type-component{display:inline-block}dd{margin-left:1em}.autocomplete-container{position:absolute;z-index:10;display:none;left:0}ul.autocomplete-items li{cursor:pointer;max-height:200px;overflow:hidden}.file-tree-header{top:0;height:50px;margin:5px}.file-tree-content{top:50px;bottom:0;overflow-x:auto}button{color:#000}.paginated-list-header{top:0;height:40px;padding:5px;white-space:nowrap}.paginated-list-content{top:40px;bottom:0;overflow:auto}.pagination-button{font-size:10px}.search-results-header{top:0;height:35px;white-space:nowrap}.search-results-content{top:35px;bottom:0}.expression{margin-bottom:15px}.expressions,.identifier-info{margin:5px}.file-name{margin-left:5px}.identifier-module{margin-top:10px}.identifier-menu-item{margin-right:10px} \ No newline at end of file
diff --git a/javascript/release/assets/haskell.ico b/javascript/release/assets/haskell.ico
new file mode 100644
index 0000000..37816fd
--- /dev/null
+++ b/javascript/release/assets/haskell.ico
Binary files differ
diff --git a/javascript/release/assets/throbber-62be6ed2b189444b472b8000dc187240.gif b/javascript/release/assets/throbber-62be6ed2b189444b472b8000dc187240.gif
new file mode 100644
index 0000000..cd75035
--- /dev/null
+++ b/javascript/release/assets/throbber-62be6ed2b189444b472b8000dc187240.gif
Binary files differ
diff --git a/javascript/release/assets/vendor-1da6cdb46c95e61ce73ee429881d2b12.js b/javascript/release/assets/vendor-1da6cdb46c95e61ce73ee429881d2b12.js
new file mode 100644
index 0000000..a33be0e
--- /dev/null
+++ b/javascript/release/assets/vendor-1da6cdb46c95e61ce73ee429881d2b12.js
@@ -0,0 +1,5057 @@
+function createDeprecatedModule(e){define(e,["exports","ember-resolver/resolver","ember"],function(t,n,r){r.default.deprecate("Usage of `"+e+"` module is deprecated, please update to `ember-resolver`.",!1,{id:"ember-resolver.legacy-shims",until:"3.0.0"}),t.default=n.default})}window.EmberENV={FEATURES:{},EXTEND_PROTOTYPES:{Date:!1}}
+var runningTests=!1,loader,define,requireModule,require,requirejs;(function(e){"use strict"
+function t(){var e=Object.create(null)
+return e.__=void 0,delete e.__,e}function n(e){throw new Error("an unsupported module was defined, expected `define(id, deps, module)` instead got: `"+e+"` arguments to define`")}function r(e,t,n,r){this.uuid=p++,this.id=e,this.deps=!t.length&&n.length?f:t,this.module={exports:{}},this.callback=n,this.hasExportsAsDep=!1,this.isAlias=r,this.reified=new Array(t.length),this.state="new"}function i(){}function o(e){this.id=e}function s(e,t){throw new Error("Could not find module `"+e+"` imported from `"+t+"`")}function a(e,t,n){for(var r=h[e]||h[e+"/index"];r&&r.isAlias;)r=h[r.id]||h[r.id+"/index"]
+return r||s(e,t),n&&"pending"!==r.state&&"finalized"!==r.state&&(r.findDeps(n),n.push(r)),r}function u(e,t){if("."!==e.charAt(0))return e
+for(var n=e.split("/"),r=t.split("/"),i=r.slice(0,-1),o=0,s=n.length;o<s;o++){var a=n[o]
+if(".."===a){if(0===i.length)throw new Error("Cannot access parent module of root")
+i.pop()}else{if("."===a)continue
+i.push(a)}}return i.join("/")}function c(e){return!(!h[e]&&!h[e+"/index"])}var l={loader:loader,define:define,requireModule:requireModule,require:require,requirejs:requirejs}
+requirejs=require=requireModule=function(e){for(var t=[],n=a(e,"(require)",t),r=t.length-1;r>=0;r--)t[r].exports()
+return n.module.exports},loader={noConflict:function(t){var n,r
+for(n in t)t.hasOwnProperty(n)&&l.hasOwnProperty(n)&&(r=t[n],e[r]=e[n],e[n]=l[n])},makeDefaultExport:!0}
+var h=t(),d=t(),p=0,f=["require","exports","module"]
+r.prototype.makeDefaultExport=function(){var e=this.module.exports
+null===e||"object"!=typeof e&&"function"!=typeof e||void 0!==e.default||!Object.isExtensible(e)||(e.default=e)},r.prototype.exports=function(){if("finalized"===this.state||"reifying"===this.state)return this.module.exports
+loader.wrapModules&&(this.callback=loader.wrapModules(this.id,this.callback)),this.reify()
+var e=this.callback.apply(this,this.reified)
+return this.reified.length=0,this.state="finalized",this.hasExportsAsDep&&void 0===e||(this.module.exports=e),loader.makeDefaultExport&&this.makeDefaultExport(),this.module.exports},r.prototype.unsee=function(){this.state="new",this.module={exports:{}}},r.prototype.reify=function(){if("reified"!==this.state){this.state="reifying"
+try{this.reified=this._reify(),this.state="reified"}finally{"reifying"===this.state&&(this.state="errored")}}},r.prototype._reify=function(){for(var e=this.reified.slice(),t=0;t<e.length;t++){var n=e[t]
+e[t]=n.exports?n.exports:n.module.exports()}return e},r.prototype.findDeps=function(e){if("new"===this.state){this.state="pending"
+for(var t=this.deps,n=0;n<t.length;n++){var r=t[n],i=this.reified[n]={exports:void 0,module:void 0}
+"exports"===r?(this.hasExportsAsDep=!0,i.exports=this.module.exports):"require"===r?i.exports=this.makeRequire():"module"===r?i.exports=this.module:i.module=a(u(r,this.id),this.id,e)}}},r.prototype.makeRequire=function(){var e=this.id,t=function(t){return require(u(t,e))}
+return t.default=t,t.moduleId=e,t.has=function(t){return c(u(t,e))},t},define=function(e,t,i){var s=h[e]
+s&&"new"!==s.state||(arguments.length<2&&n(arguments.length),Array.isArray(t)||(i=t,t=[]),h[e]=i instanceof o?new r(i.id,t,i,!0):new r(e,t,i,!1))},define.exports=function(e,t){var n=h[e]
+if(!n||"new"===n.state)return n=new r(e,[],i,null),n.module.exports=t,n.state="finalized",h[e]=n,n},define.alias=function(e,t){return 2===arguments.length?define(t,new o(e)):new o(e)},requirejs.entries=requirejs._eak_seen=h,requirejs.has=c,requirejs.unsee=function(e){a(e,"(unsee)",!1).unsee()},requirejs.clear=function(){requirejs.entries=requirejs._eak_seen=h=t(),d=t()},define("foo",function(){}),define("foo/bar",[],function(){}),define("foo/asdf",["module","exports","require"],function(e,t,n){n.has("foo/bar")&&n("foo/bar")}),define("foo/baz",[],define.alias("foo")),define("foo/quz",define.alias("foo")),define.alias("foo","foo/qux"),define("foo/bar",["foo","./quz","./baz","./asdf","./bar","../foo"],function(){}),define("foo/main",["foo/bar"],function(){}),define.exports("foo/exports",{}),require("foo/exports"),require("foo/main"),require.unsee("foo/bar"),requirejs.clear(),"object"==typeof exports&&"object"==typeof module&&module.exports&&(module.exports={require:require,define:define})})(this),function e(t,n,r){function i(s,a){if(!n[s]){if(!t[s]){var u="function"==typeof require&&require
+if(!a&&u)return u(s,!0)
+if(o)return o(s,!0)
+var c=new Error("Cannot find module '"+s+"'")
+throw c.code="MODULE_NOT_FOUND",c}var l=n[s]={exports:{}}
+t[s][0].call(l.exports,function(e){var n=t[s][1][e]
+return i(n||e)},l,l.exports,e,t,n,r)}return n[s].exports}for(var o="function"==typeof require&&require,s=0;s<r.length;s++)i(r[s])
+return i}({1:[function(e,t,n){(function(t){"use strict"
+function n(e,t,n){e[t]||Object[r](e,t,{writable:!0,configurable:!0,value:n})}if(e(327),e(328),e(2),t._babelPolyfill)throw new Error("only one instance of babel-polyfill is allowed")
+t._babelPolyfill=!0
+var r="defineProperty"
+n(String.prototype,"padLeft","".padStart),n(String.prototype,"padRight","".padEnd),"pop,reverse,shift,keys,values,entries,indexOf,every,some,forEach,map,filter,find,findIndex,includes,join,slice,concat,push,splice,unshift,sort,lastIndexOf,reduce,reduceRight,copyWithin,fill".split(",").forEach(function(e){[][e]&&n(Array,e,Function.call.bind([][e]))})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{2:2,327:327,328:328}],2:[function(e,t,n){e(130),t.exports=e(23).RegExp.escape},{130:130,23:23}],3:[function(e,t,n){t.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!")
+return e}},{}],4:[function(e,t,n){var r=e(18)
+t.exports=function(e,t){if("number"!=typeof e&&"Number"!=r(e))throw TypeError(t)
+return+e}},{18:18}],5:[function(e,t,n){var r=e(128)("unscopables"),i=Array.prototype
+void 0==i[r]&&e(42)(i,r,{}),t.exports=function(e){i[r][e]=!0}},{128:128,42:42}],6:[function(e,t,n){t.exports=function(e,t,n,r){if(!(e instanceof t)||void 0!==r&&r in e)throw TypeError(n+": incorrect invocation!")
+return e}},{}],7:[function(e,t,n){var r=e(51)
+t.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!")
+return e}},{51:51}],8:[function(e,t,n){"use strict"
+var r=e(119),i=e(114),o=e(118)
+t.exports=[].copyWithin||function(e,t){var n=r(this),s=o(n.length),a=i(e,s),u=i(t,s),c=arguments.length>2?arguments[2]:void 0,l=Math.min((void 0===c?s:i(c,s))-u,s-a),h=1
+for(u<a&&a<u+l&&(h=-1,u+=l-1,a+=l-1);l-- >0;)u in n?n[a]=n[u]:delete n[a],a+=h,u+=h
+return n}},{114:114,118:118,119:119}],9:[function(e,t,n){"use strict"
+var r=e(119),i=e(114),o=e(118)
+t.exports=function(e){for(var t=r(this),n=o(t.length),s=arguments.length,a=i(s>1?arguments[1]:void 0,n),u=s>2?arguments[2]:void 0,c=void 0===u?n:i(u,n);c>a;)t[a++]=e
+return t}},{114:114,118:118,119:119}],10:[function(e,t,n){var r=e(39)
+t.exports=function(e,t){var n=[]
+return r(e,!1,n.push,n,t),n}},{39:39}],11:[function(e,t,n){var r=e(117),i=e(118),o=e(114)
+t.exports=function(e){return function(t,n,s){var a,u=r(t),c=i(u.length),l=o(s,c)
+if(e&&n!=n){for(;c>l;)if((a=u[l++])!=a)return!0}else for(;c>l;l++)if((e||l in u)&&u[l]===n)return e||l||0
+return!e&&-1}}},{114:114,117:117,118:118}],12:[function(e,t,n){var r=e(25),i=e(47),o=e(119),s=e(118),a=e(15)
+t.exports=function(e,t){var n=1==e,u=2==e,c=3==e,l=4==e,h=6==e,d=5==e||h,p=t||a
+return function(t,a,f){for(var g,m,v=o(t),y=i(v),b=r(a,f,3),C=s(y.length),A=0,_=n?p(t,C):u?p(t,0):void 0;C>A;A++)if((d||A in y)&&(g=y[A],m=b(g,A,v),e))if(n)_[A]=m
+else if(m)switch(e){case 3:return!0
+case 5:return g
+case 6:return A
+case 2:_.push(g)}else if(l)return!1
+return h?-1:c||l?l:_}}},{118:118,119:119,15:15,25:25,47:47}],13:[function(e,t,n){var r=e(3),i=e(119),o=e(47),s=e(118)
+t.exports=function(e,t,n,a,u){r(t)
+var c=i(e),l=o(c),h=s(c.length),d=u?h-1:0,p=u?-1:1
+if(n<2)for(;;){if(d in l){a=l[d],d+=p
+break}if(d+=p,u?d<0:h<=d)throw TypeError("Reduce of empty array with no initial value")}for(;u?d>=0:h>d;d+=p)d in l&&(a=t(a,l[d],d,c))
+return a}},{118:118,119:119,3:3,47:47}],14:[function(e,t,n){var r=e(51),i=e(49),o=e(128)("species")
+t.exports=function(e){var t
+return i(e)&&(t=e.constructor,"function"!=typeof t||t!==Array&&!i(t.prototype)||(t=void 0),r(t)&&null===(t=t[o])&&(t=void 0)),void 0===t?Array:t}},{128:128,49:49,51:51}],15:[function(e,t,n){var r=e(14)
+t.exports=function(e,t){return new(r(e))(t)}},{14:14}],16:[function(e,t,n){"use strict"
+var r=e(3),i=e(51),o=e(46),s=[].slice,a={},u=function(e,t,n){if(!(t in a)){for(var r=[],i=0;i<t;i++)r[i]="a["+i+"]"
+a[t]=Function("F,a","return new F("+r.join(",")+")")}return a[t](e,n)}
+t.exports=Function.bind||function(e){var t=r(this),n=s.call(arguments,1),a=function(){var r=n.concat(s.call(arguments))
+return this instanceof a?u(t,r.length,r):o(t,r,e)}
+return i(t.prototype)&&(a.prototype=t.prototype),a}},{3:3,46:46,51:51}],17:[function(e,t,n){var r=e(18),i=e(128)("toStringTag"),o="Arguments"==r(function(){return arguments}()),s=function(e,t){try{return e[t]}catch(e){}}
+t.exports=function(e){var t,n,a
+return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=s(t=Object(e),i))?n:o?r(t):"Object"==(a=r(t))&&"function"==typeof t.callee?"Arguments":a}},{128:128,18:18}],18:[function(e,t,n){var r={}.toString
+t.exports=function(e){return r.call(e).slice(8,-1)}},{}],19:[function(e,t,n){"use strict"
+var r=e(72).f,i=e(71),o=e(93),s=e(25),a=e(6),u=e(39),c=e(55),l=e(57),h=e(100),d=e(29),p=e(66).fastKey,f=e(125),g=d?"_s":"size",m=function(e,t){var n,r=p(t)
+if("F"!==r)return e._i[r]
+for(n=e._f;n;n=n.n)if(n.k==t)return n}
+t.exports={getConstructor:function(e,t,n,c){var l=e(function(e,r){a(e,l,t,"_i"),e._t=t,e._i=i(null),e._f=void 0,e._l=void 0,e[g]=0,void 0!=r&&u(r,n,e[c],e)})
+return o(l.prototype,{clear:function(){for(var e=f(this,t),n=e._i,r=e._f;r;r=r.n)r.r=!0,r.p&&(r.p=r.p.n=void 0),delete n[r.i]
+e._f=e._l=void 0,e[g]=0},delete:function(e){var n=f(this,t),r=m(n,e)
+if(r){var i=r.n,o=r.p
+delete n._i[r.i],r.r=!0,o&&(o.n=i),i&&(i.p=o),n._f==r&&(n._f=i),n._l==r&&(n._l=o),n[g]--}return!!r},forEach:function(e){f(this,t)
+for(var n,r=s(e,arguments.length>1?arguments[1]:void 0,3);n=n?n.n:this._f;)for(r(n.v,n.k,this);n&&n.r;)n=n.p},has:function(e){return!!m(f(this,t),e)}}),d&&r(l.prototype,"size",{get:function(){return f(this,t)[g]}}),l},def:function(e,t,n){var r,i,o=m(e,t)
+return o?o.v=n:(e._l=o={i:i=p(t,!0),k:t,v:n,p:r=e._l,n:void 0,r:!1},e._f||(e._f=o),r&&(r.n=o),e[g]++,"F"!==i&&(e._i[i]=o)),e},getEntry:m,setStrong:function(e,t,n){c(e,t,function(e,n){this._t=f(e,t),this._k=n,this._l=void 0},function(){for(var e=this,t=e._k,n=e._l;n&&n.r;)n=n.p
+return e._t&&(e._l=n=n?n.n:e._t._f)?"keys"==t?l(0,n.k):"values"==t?l(0,n.v):l(0,[n.k,n.v]):(e._t=void 0,l(1))},n?"entries":"values",!n,!0),h(t)}}},{100:100,125:125,25:25,29:29,39:39,55:55,57:57,6:6,66:66,71:71,72:72,93:93}],20:[function(e,t,n){var r=e(17),i=e(10)
+t.exports=function(e){return function(){if(r(this)!=e)throw TypeError(e+"#toJSON isn't generic")
+return i(this)}}},{10:10,17:17}],21:[function(e,t,n){"use strict"
+var r=e(93),i=e(66).getWeak,o=e(7),s=e(51),a=e(6),u=e(39),c=e(12),l=e(41),h=e(125),d=c(5),p=c(6),f=0,g=function(e){return e._l||(e._l=new m)},m=function(){this.a=[]},v=function(e,t){return d(e.a,function(e){return e[0]===t})}
+m.prototype={get:function(e){var t=v(this,e)
+if(t)return t[1]},has:function(e){return!!v(this,e)},set:function(e,t){var n=v(this,e)
+n?n[1]=t:this.a.push([e,t])},delete:function(e){var t=p(this.a,function(t){return t[0]===e})
+return~t&&this.a.splice(t,1),!!~t}},t.exports={getConstructor:function(e,t,n,o){var c=e(function(e,r){a(e,c,t,"_i"),e._t=t,e._i=f++,e._l=void 0,void 0!=r&&u(r,n,e[o],e)})
+return r(c.prototype,{delete:function(e){if(!s(e))return!1
+var n=i(e)
+return!0===n?g(h(this,t)).delete(e):n&&l(n,this._i)&&delete n[this._i]},has:function(e){if(!s(e))return!1
+var n=i(e)
+return!0===n?g(h(this,t)).has(e):n&&l(n,this._i)}}),c},def:function(e,t,n){var r=i(o(t),!0)
+return!0===r?g(e).set(t,n):r[e._i]=n,e},ufstore:g}},{12:12,125:125,39:39,41:41,51:51,6:6,66:66,7:7,93:93}],22:[function(e,t,n){"use strict"
+var r=e(40),i=e(33),o=e(94),s=e(93),a=e(66),u=e(39),c=e(6),l=e(51),h=e(35),d=e(56),p=e(101),f=e(45)
+t.exports=function(e,t,n,g,m,v){var y=r[e],b=y,C=m?"set":"add",A=b&&b.prototype,_={},I=function(e){var t=A[e]
+o(A,e,"delete"==e?function(e){return!(v&&!l(e))&&t.call(this,0===e?0:e)}:"has"==e?function(e){return!(v&&!l(e))&&t.call(this,0===e?0:e)}:"get"==e?function(e){return v&&!l(e)?void 0:t.call(this,0===e?0:e)}:"add"==e?function(e){return t.call(this,0===e?0:e),this}:function(e,n){return t.call(this,0===e?0:e,n),this})}
+if("function"==typeof b&&(v||A.forEach&&!h(function(){(new b).entries().next()}))){var w=new b,x=w[C](v?{}:-0,1)!=w,k=h(function(){w.has(1)}),j=d(function(e){new b(e)}),E=!v&&h(function(){for(var e=new b,t=5;t--;)e[C](t,t)
+return!e.has(-0)})
+j||(b=t(function(t,n){c(t,b,e)
+var r=f(new y,t,b)
+return void 0!=n&&u(n,m,r[C],r),r}),b.prototype=A,A.constructor=b),(k||E)&&(I("delete"),I("has"),m&&I("get")),(E||x)&&I(C),v&&A.clear&&delete A.clear}else b=g.getConstructor(t,e,m,C),s(b.prototype,n),a.NEED=!0
+return p(b,e),_[e]=b,i(i.G+i.W+i.F*(b!=y),_),v||g.setStrong(b,e,m),b}},{101:101,33:33,35:35,39:39,40:40,45:45,51:51,56:56,6:6,66:66,93:93,94:94}],23:[function(e,t,n){var r=t.exports={version:"2.5.0"}
+"number"==typeof __e&&(__e=r)},{}],24:[function(e,t,n){"use strict"
+var r=e(72),i=e(92)
+t.exports=function(e,t,n){t in e?r.f(e,t,i(0,n)):e[t]=n}},{72:72,92:92}],25:[function(e,t,n){var r=e(3)
+t.exports=function(e,t,n){if(r(e),void 0===t)return e
+switch(n){case 1:return function(n){return e.call(t,n)}
+case 2:return function(n,r){return e.call(t,n,r)}
+case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}}},{3:3}],26:[function(e,t,n){"use strict"
+var r=e(35),i=Date.prototype.getTime,o=Date.prototype.toISOString,s=function(e){return e>9?e:"0"+e}
+t.exports=r(function(){return"0385-07-25T07:06:39.999Z"!=o.call(new Date(-5e13-1))})||!r(function(){o.call(new Date(NaN))})?function(){if(!isFinite(i.call(this)))throw RangeError("Invalid time value")
+var e=this,t=e.getUTCFullYear(),n=e.getUTCMilliseconds(),r=t<0?"-":t>9999?"+":""
+return r+("00000"+Math.abs(t)).slice(r?-6:-4)+"-"+s(e.getUTCMonth()+1)+"-"+s(e.getUTCDate())+"T"+s(e.getUTCHours())+":"+s(e.getUTCMinutes())+":"+s(e.getUTCSeconds())+"."+(n>99?n:"0"+s(n))+"Z"}:o},{35:35}],27:[function(e,t,n){"use strict"
+var r=e(7),i=e(120)
+t.exports=function(e){if("string"!==e&&"number"!==e&&"default"!==e)throw TypeError("Incorrect hint")
+return i(r(this),"number"!=e)}},{120:120,7:7}],28:[function(e,t,n){t.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e)
+return e}},{}],29:[function(e,t,n){t.exports=!e(35)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},{35:35}],30:[function(e,t,n){var r=e(51),i=e(40).document,o=r(i)&&r(i.createElement)
+t.exports=function(e){return o?i.createElement(e):{}}},{40:40,51:51}],31:[function(e,t,n){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},{}],32:[function(e,t,n){var r=e(81),i=e(78),o=e(82)
+t.exports=function(e){var t=r(e),n=i.f
+if(n)for(var s,a=n(e),u=o.f,c=0;a.length>c;)u.call(e,s=a[c++])&&t.push(s)
+return t}},{78:78,81:81,82:82}],33:[function(e,t,n){var r=e(40),i=e(23),o=e(42),s=e(94),a=e(25),u=function(e,t,n){var c,l,h,d,p=e&u.F,f=e&u.G,g=e&u.S,m=e&u.P,v=e&u.B,y=f?r:g?r[t]||(r[t]={}):(r[t]||{}).prototype,b=f?i:i[t]||(i[t]={}),C=b.prototype||(b.prototype={})
+f&&(n=t)
+for(c in n)l=!p&&y&&void 0!==y[c],h=(l?y:n)[c],d=v&&l?a(h,r):m&&"function"==typeof h?a(Function.call,h):h,y&&s(y,c,h,e&u.U),b[c]!=h&&o(b,c,d),m&&C[c]!=h&&(C[c]=h)}
+r.core=i,u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,t.exports=u},{23:23,25:25,40:40,42:42,94:94}],34:[function(e,t,n){var r=e(128)("match")
+t.exports=function(e){var t=/./
+try{"/./"[e](t)}catch(n){try{return t[r]=!1,!"/./"[e](t)}catch(e){}}return!0}},{128:128}],35:[function(e,t,n){t.exports=function(e){try{return!!e()}catch(e){return!0}}},{}],36:[function(e,t,n){"use strict"
+var r=e(42),i=e(94),o=e(35),s=e(28),a=e(128)
+t.exports=function(e,t,n){var u=a(e),c=n(s,u,""[e]),l=c[0],h=c[1]
+o(function(){var t={}
+return t[u]=function(){return 7},7!=""[e](t)})&&(i(String.prototype,e,l),r(RegExp.prototype,u,2==t?function(e,t){return h.call(e,this,t)}:function(e){return h.call(e,this)}))}},{128:128,28:28,35:35,42:42,94:94}],37:[function(e,t,n){"use strict"
+var r=e(7)
+t.exports=function(){var e=r(this),t=""
+return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t}},{7:7}],38:[function(e,t,n){"use strict"
+function r(e,t,n,c,l,h,d,p){for(var f,g,m=l,v=0,y=!!d&&a(d,p,3);v<c;){if(v in n){if(f=y?y(n[v],v,t):n[v],g=!1,o(f)&&(g=f[u],g=void 0!==g?!!g:i(f)),g&&h>0)m=r(e,t,f,s(f.length),m,h-1)-1
+else{if(m>=9007199254740991)throw TypeError()
+e[m]=f}m++}v++}return m}var i=e(49),o=e(51),s=e(118),a=e(25),u=e(128)("isConcatSpreadable")
+t.exports=r},{118:118,128:128,25:25,49:49,51:51}],39:[function(e,t,n){var r=e(25),i=e(53),o=e(48),s=e(7),a=e(118),u=e(129),c={},l={},n=t.exports=function(e,t,n,h,d){var p,f,g,m,v=d?function(){return e}:u(e),y=r(n,h,t?2:1),b=0
+if("function"!=typeof v)throw TypeError(e+" is not iterable!")
+if(o(v)){for(p=a(e.length);p>b;b++)if((m=t?y(s(f=e[b])[0],f[1]):y(e[b]))===c||m===l)return m}else for(g=v.call(e);!(f=g.next()).done;)if((m=i(g,y,f.value,t))===c||m===l)return m}
+n.BREAK=c,n.RETURN=l},{118:118,129:129,25:25,48:48,53:53,7:7}],40:[function(e,t,n){var r=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")()
+"number"==typeof __g&&(__g=r)},{}],41:[function(e,t,n){var r={}.hasOwnProperty
+t.exports=function(e,t){return r.call(e,t)}},{}],42:[function(e,t,n){var r=e(72),i=e(92)
+t.exports=e(29)?function(e,t,n){return r.f(e,t,i(1,n))}:function(e,t,n){return e[t]=n,e}},{29:29,72:72,92:92}],43:[function(e,t,n){var r=e(40).document
+t.exports=r&&r.documentElement},{40:40}],44:[function(e,t,n){t.exports=!e(29)&&!e(35)(function(){return 7!=Object.defineProperty(e(30)("div"),"a",{get:function(){return 7}}).a})},{29:29,30:30,35:35}],45:[function(e,t,n){var r=e(51),i=e(99).set
+t.exports=function(e,t,n){var o,s=t.constructor
+return s!==n&&"function"==typeof s&&(o=s.prototype)!==n.prototype&&r(o)&&i&&i(e,o),e}},{51:51,99:99}],46:[function(e,t,n){t.exports=function(e,t,n){var r=void 0===n
+switch(t.length){case 0:return r?e():e.call(n)
+case 1:return r?e(t[0]):e.call(n,t[0])
+case 2:return r?e(t[0],t[1]):e.call(n,t[0],t[1])
+case 3:return r?e(t[0],t[1],t[2]):e.call(n,t[0],t[1],t[2])
+case 4:return r?e(t[0],t[1],t[2],t[3]):e.call(n,t[0],t[1],t[2],t[3])}return e.apply(n,t)}},{}],47:[function(e,t,n){var r=e(18)
+t.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},{18:18}],48:[function(e,t,n){var r=e(58),i=e(128)("iterator"),o=Array.prototype
+t.exports=function(e){return void 0!==e&&(r.Array===e||o[i]===e)}},{128:128,58:58}],49:[function(e,t,n){var r=e(18)
+t.exports=Array.isArray||function(e){return"Array"==r(e)}},{18:18}],50:[function(e,t,n){var r=e(51),i=Math.floor
+t.exports=function(e){return!r(e)&&isFinite(e)&&i(e)===e}},{51:51}],51:[function(e,t,n){t.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},{}],52:[function(e,t,n){var r=e(51),i=e(18),o=e(128)("match")
+t.exports=function(e){var t
+return r(e)&&(void 0!==(t=e[o])?!!t:"RegExp"==i(e))}},{128:128,18:18,51:51}],53:[function(e,t,n){var r=e(7)
+t.exports=function(e,t,n,i){try{return i?t(r(n)[0],n[1]):t(n)}catch(t){var o=e.return
+throw void 0!==o&&r(o.call(e)),t}}},{7:7}],54:[function(e,t,n){"use strict"
+var r=e(71),i=e(92),o=e(101),s={}
+e(42)(s,e(128)("iterator"),function(){return this}),t.exports=function(e,t,n){e.prototype=r(s,{next:i(1,n)}),o(e,t+" Iterator")}},{101:101,128:128,42:42,71:71,92:92}],55:[function(e,t,n){"use strict"
+var r=e(60),i=e(33),o=e(94),s=e(42),a=e(41),u=e(58),c=e(54),l=e(101),h=e(79),d=e(128)("iterator"),p=!([].keys&&"next"in[].keys()),f=function(){return this}
+t.exports=function(e,t,n,g,m,v,y){c(n,t,g)
+var b,C,A,_=function(e){if(!p&&e in k)return k[e]
+switch(e){case"keys":case"values":return function(){return new n(this,e)}}return function(){return new n(this,e)}},I=t+" Iterator",w="values"==m,x=!1,k=e.prototype,j=k[d]||k["@@iterator"]||m&&k[m],E=j||_(m),S=m?w?_("entries"):E:void 0,T="Array"==t?k.entries||j:j
+if(T&&(A=h(T.call(new e)))!==Object.prototype&&A.next&&(l(A,I,!0),r||a(A,d)||s(A,d,f)),w&&j&&"values"!==j.name&&(x=!0,E=function(){return j.call(this)}),r&&!y||!p&&!x&&k[d]||s(k,d,E),u[t]=E,u[I]=f,m)if(b={values:w?E:_("values"),keys:v?E:_("keys"),entries:S},y)for(C in b)C in k||o(k,C,b[C])
+else i(i.P+i.F*(p||x),t,b)
+return b}},{101:101,128:128,33:33,41:41,42:42,54:54,58:58,60:60,79:79,94:94}],56:[function(e,t,n){var r=e(128)("iterator"),i=!1
+try{var o=[7][r]()
+o.return=function(){i=!0},Array.from(o,function(){throw 2})}catch(e){}t.exports=function(e,t){if(!t&&!i)return!1
+var n=!1
+try{var o=[7],s=o[r]()
+s.next=function(){return{done:n=!0}},o[r]=function(){return s},e(o)}catch(e){}return n}},{128:128}],57:[function(e,t,n){t.exports=function(e,t){return{value:t,done:!!e}}},{}],58:[function(e,t,n){t.exports={}},{}],59:[function(e,t,n){var r=e(81),i=e(117)
+t.exports=function(e,t){for(var n,o=i(e),s=r(o),a=s.length,u=0;a>u;)if(o[n=s[u++]]===t)return n}},{117:117,81:81}],60:[function(e,t,n){t.exports=!1},{}],61:[function(e,t,n){var r=Math.expm1
+t.exports=!r||r(10)>22025.465794806718||r(10)<22025.465794806718||-2e-17!=r(-2e-17)?function(e){return 0==(e=+e)?e:e>-1e-6&&e<1e-6?e+e*e/2:Math.exp(e)-1}:r},{}],62:[function(e,t,n){var r=e(65),i=Math.pow,o=i(2,-52),s=i(2,-23),a=i(2,127)*(2-s),u=i(2,-126),c=function(e){return e+1/o-1/o}
+t.exports=Math.fround||function(e){var t,n,i=Math.abs(e),l=r(e)
+return i<u?l*c(i/u/s)*u*s:(t=(1+s/o)*i,n=t-(t-i),n>a||n!=n?l*(1/0):l*n)}},{65:65}],63:[function(e,t,n){t.exports=Math.log1p||function(e){return(e=+e)>-1e-8&&e<1e-8?e-e*e/2:Math.log(1+e)}},{}],64:[function(e,t,n){t.exports=Math.scale||function(e,t,n,r,i){return 0===arguments.length||e!=e||t!=t||n!=n||r!=r||i!=i?NaN:e===1/0||e===-1/0?e:(e-t)*(i-r)/(n-t)+r}},{}],65:[function(e,t,n){t.exports=Math.sign||function(e){return 0==(e=+e)||e!=e?e:e<0?-1:1}},{}],66:[function(e,t,n){var r=e(124)("meta"),i=e(51),o=e(41),s=e(72).f,a=0,u=Object.isExtensible||function(){return!0},c=!e(35)(function(){return u(Object.preventExtensions({}))}),l=function(e){s(e,r,{value:{i:"O"+ ++a,w:{}}})},h=function(e,t){if(!i(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e
+if(!o(e,r)){if(!u(e))return"F"
+if(!t)return"E"
+l(e)}return e[r].i},d=function(e,t){if(!o(e,r)){if(!u(e))return!0
+if(!t)return!1
+l(e)}return e[r].w},p=function(e){return c&&f.NEED&&u(e)&&!o(e,r)&&l(e),e},f=t.exports={KEY:r,NEED:!1,fastKey:h,getWeak:d,onFreeze:p}},{124:124,35:35,41:41,51:51,72:72}],67:[function(e,t,n){var r=e(160),i=e(33),o=e(103)("metadata"),s=o.store||(o.store=new(e(266))),a=function(e,t,n){var i=s.get(e)
+if(!i){if(!n)return
+s.set(e,i=new r)}var o=i.get(t)
+if(!o){if(!n)return
+i.set(t,o=new r)}return o},u=function(e,t,n){var r=a(t,n,!1)
+return void 0!==r&&r.has(e)},c=function(e,t,n){var r=a(t,n,!1)
+return void 0===r?void 0:r.get(e)},l=function(e,t,n,r){a(n,r,!0).set(e,t)},h=function(e,t){var n=a(e,t,!1),r=[]
+return n&&n.forEach(function(e,t){r.push(t)}),r},d=function(e){return void 0===e||"symbol"==typeof e?e:String(e)},p=function(e){i(i.S,"Reflect",e)}
+t.exports={store:s,map:a,has:u,get:c,set:l,keys:h,key:d,exp:p}},{103:103,160:160,266:266,33:33}],68:[function(e,t,n){var r=e(40),i=e(113).set,o=r.MutationObserver||r.WebKitMutationObserver,s=r.process,a=r.Promise,u="process"==e(18)(s)
+t.exports=function(){var e,t,n,c=function(){var r,i
+for(u&&(r=s.domain)&&r.exit();e;){i=e.fn,e=e.next
+try{i()}catch(r){throw e?n():t=void 0,r}}t=void 0,r&&r.enter()}
+if(u)n=function(){s.nextTick(c)}
+else if(o){var l=!0,h=document.createTextNode("")
+new o(c).observe(h,{characterData:!0}),n=function(){h.data=l=!l}}else if(a&&a.resolve){var d=a.resolve()
+n=function(){d.then(c)}}else n=function(){i.call(r,c)}
+return function(r){var i={fn:r,next:void 0}
+t&&(t.next=i),e||(e=i,n()),t=i}}},{113:113,18:18,40:40}],69:[function(e,t,n){"use strict"
+function r(e){var t,n
+this.promise=new e(function(e,r){if(void 0!==t||void 0!==n)throw TypeError("Bad Promise constructor")
+t=e,n=r}),this.resolve=i(t),this.reject=i(n)}var i=e(3)
+t.exports.f=function(e){return new r(e)}},{3:3}],70:[function(e,t,n){"use strict"
+var r=e(81),i=e(78),o=e(82),s=e(119),a=e(47),u=Object.assign
+t.exports=!u||e(35)(function(){var e={},t={},n=Symbol(),r="abcdefghijklmnopqrst"
+return e[n]=7,r.split("").forEach(function(e){t[e]=e}),7!=u({},e)[n]||Object.keys(u({},t)).join("")!=r})?function(e,t){for(var n=s(e),u=arguments.length,c=1,l=i.f,h=o.f;u>c;)for(var d,p=a(arguments[c++]),f=l?r(p).concat(l(p)):r(p),g=f.length,m=0;g>m;)h.call(p,d=f[m++])&&(n[d]=p[d])
+return n}:u},{119:119,35:35,47:47,78:78,81:81,82:82}],71:[function(e,t,n){var r=e(7),i=e(73),o=e(31),s=e(102)("IE_PROTO"),a=function(){},u=function(){var t,n=e(30)("iframe"),r=o.length
+for(n.style.display="none",e(43).appendChild(n),n.src="javascript:",t=n.contentWindow.document,t.open(),t.write("<script>document.F=Object<\/script>"),t.close(),u=t.F;r--;)delete u.prototype[o[r]]
+return u()}
+t.exports=Object.create||function(e,t){var n
+return null!==e?(a.prototype=r(e),n=new a,a.prototype=null,n[s]=e):n=u(),void 0===t?n:i(n,t)}},{102:102,30:30,31:31,43:43,7:7,73:73}],72:[function(e,t,n){var r=e(7),i=e(44),o=e(120),s=Object.defineProperty
+n.f=e(29)?Object.defineProperty:function(e,t,n){if(r(e),t=o(t,!0),r(n),i)try{return s(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!")
+return"value"in n&&(e[t]=n.value),e}},{120:120,29:29,44:44,7:7}],73:[function(e,t,n){var r=e(72),i=e(7),o=e(81)
+t.exports=e(29)?Object.defineProperties:function(e,t){i(e)
+for(var n,s=o(t),a=s.length,u=0;a>u;)r.f(e,n=s[u++],t[n])
+return e}},{29:29,7:7,72:72,81:81}],74:[function(e,t,n){"use strict"
+t.exports=e(60)||!e(35)(function(){var t=Math.random()
+__defineSetter__.call(null,t,function(){}),delete e(40)[t]})},{35:35,40:40,60:60}],75:[function(e,t,n){var r=e(82),i=e(92),o=e(117),s=e(120),a=e(41),u=e(44),c=Object.getOwnPropertyDescriptor
+n.f=e(29)?c:function(e,t){if(e=o(e),t=s(t,!0),u)try{return c(e,t)}catch(e){}if(a(e,t))return i(!r.f.call(e,t),e[t])}},{117:117,120:120,29:29,41:41,44:44,82:82,92:92}],76:[function(e,t,n){var r=e(117),i=e(77).f,o={}.toString,s="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],a=function(e){try{return i(e)}catch(e){return s.slice()}}
+t.exports.f=function(e){return s&&"[object Window]"==o.call(e)?a(e):i(r(e))}},{117:117,77:77}],77:[function(e,t,n){var r=e(80),i=e(31).concat("length","prototype")
+n.f=Object.getOwnPropertyNames||function(e){return r(e,i)}},{31:31,80:80}],78:[function(e,t,n){n.f=Object.getOwnPropertySymbols},{}],79:[function(e,t,n){var r=e(41),i=e(119),o=e(102)("IE_PROTO"),s=Object.prototype
+t.exports=Object.getPrototypeOf||function(e){return e=i(e),r(e,o)?e[o]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?s:null}},{102:102,119:119,41:41}],80:[function(e,t,n){var r=e(41),i=e(117),o=e(11)(!1),s=e(102)("IE_PROTO")
+t.exports=function(e,t){var n,a=i(e),u=0,c=[]
+for(n in a)n!=s&&r(a,n)&&c.push(n)
+for(;t.length>u;)r(a,n=t[u++])&&(~o(c,n)||c.push(n))
+return c}},{102:102,11:11,117:117,41:41}],81:[function(e,t,n){var r=e(80),i=e(31)
+t.exports=Object.keys||function(e){return r(e,i)}},{31:31,80:80}],82:[function(e,t,n){n.f={}.propertyIsEnumerable},{}],83:[function(e,t,n){var r=e(33),i=e(23),o=e(35)
+t.exports=function(e,t){var n=(i.Object||{})[e]||Object[e],s={}
+s[e]=t(n),r(r.S+r.F*o(function(){n(1)}),"Object",s)}},{23:23,33:33,35:35}],84:[function(e,t,n){var r=e(81),i=e(117),o=e(82).f
+t.exports=function(e){return function(t){for(var n,s=i(t),a=r(s),u=a.length,c=0,l=[];u>c;)o.call(s,n=a[c++])&&l.push(e?[n,s[n]]:s[n])
+return l}}},{117:117,81:81,82:82}],85:[function(e,t,n){var r=e(77),i=e(78),o=e(7),s=e(40).Reflect
+t.exports=s&&s.ownKeys||function(e){var t=r.f(o(e)),n=i.f
+return n?t.concat(n(e)):t}},{40:40,7:7,77:77,78:78}],86:[function(e,t,n){var r=e(40).parseFloat,i=e(111).trim
+t.exports=1/r(e(112)+"-0")!=-1/0?function(e){var t=i(String(e),3),n=r(t)
+return 0===n&&"-"==t.charAt(0)?-0:n}:r},{111:111,112:112,40:40}],87:[function(e,t,n){var r=e(40).parseInt,i=e(111).trim,o=e(112),s=/^[-+]?0[xX]/
+t.exports=8!==r(o+"08")||22!==r(o+"0x16")?function(e,t){var n=i(String(e),3)
+return r(n,t>>>0||(s.test(n)?16:10))}:r},{111:111,112:112,40:40}],88:[function(e,t,n){"use strict"
+var r=e(89),i=e(46),o=e(3)
+t.exports=function(){for(var e=o(this),t=arguments.length,n=Array(t),s=0,a=r._,u=!1;t>s;)(n[s]=arguments[s++])===a&&(u=!0)
+return function(){var r,o=this,s=arguments.length,c=0,l=0
+if(!u&&!s)return i(e,n,o)
+if(r=n.slice(),u)for(;t>c;c++)r[c]===a&&(r[c]=arguments[l++])
+for(;s>l;)r.push(arguments[l++])
+return i(e,r,o)}}},{3:3,46:46,89:89}],89:[function(e,t,n){t.exports=e(40)},{40:40}],90:[function(e,t,n){t.exports=function(e){try{return{e:!1,v:e()}}catch(e){return{e:!0,v:e}}}},{}],91:[function(e,t,n){var r=e(69)
+t.exports=function(e,t){var n=r.f(e)
+return(0,n.resolve)(t),n.promise}},{69:69}],92:[function(e,t,n){t.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},{}],93:[function(e,t,n){var r=e(94)
+t.exports=function(e,t,n){for(var i in t)r(e,i,t[i],n)
+return e}},{94:94}],94:[function(e,t,n){var r=e(40),i=e(42),o=e(41),s=e(124)("src"),a=Function.toString,u=(""+a).split("toString")
+e(23).inspectSource=function(e){return a.call(e)},(t.exports=function(e,t,n,a){var c="function"==typeof n
+c&&(o(n,"name")||i(n,"name",t)),e[t]!==n&&(c&&(o(n,s)||i(n,s,e[t]?""+e[t]:u.join(String(t)))),e===r?e[t]=n:a?e[t]?e[t]=n:i(e,t,n):(delete e[t],i(e,t,n)))})(Function.prototype,"toString",function(){return"function"==typeof this&&this[s]||a.call(this)})},{124:124,23:23,40:40,41:41,42:42}],95:[function(e,t,n){t.exports=function(e,t){var n=t===Object(t)?function(e){return t[e]}:t
+return function(t){return String(t).replace(e,n)}}},{}],96:[function(e,t,n){t.exports=Object.is||function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}},{}],97:[function(e,t,n){"use strict"
+var r=e(33),i=e(3),o=e(25),s=e(39)
+t.exports=function(e){r(r.S,e,{from:function(e){var t,n,r,a,u=arguments[1]
+return i(this),t=void 0!==u,t&&i(u),void 0==e?new this:(n=[],t?(r=0,a=o(u,arguments[2],2),s(e,!1,function(e){n.push(a(e,r++))})):s(e,!1,n.push,n),new this(n))}})}},{25:25,3:3,33:33,39:39}],98:[function(e,t,n){"use strict"
+var r=e(33)
+t.exports=function(e){r(r.S,e,{of:function(){for(var e=arguments.length,t=Array(e);e--;)t[e]=arguments[e]
+return new this(t)}})}},{33:33}],99:[function(e,t,n){var r=e(51),i=e(7),o=function(e,t){if(i(e),!r(t)&&null!==t)throw TypeError(t+": can't set as prototype!")}
+t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,n,r){try{r=e(25)(Function.call,e(75).f(Object.prototype,"__proto__").set,2),r(t,[]),n=!(t instanceof Array)}catch(e){n=!0}return function(e,t){return o(e,t),n?e.__proto__=t:r(e,t),e}}({},!1):void 0),check:o}},{25:25,51:51,7:7,75:75}],100:[function(e,t,n){"use strict"
+var r=e(40),i=e(72),o=e(29),s=e(128)("species")
+t.exports=function(e){var t=r[e]
+o&&t&&!t[s]&&i.f(t,s,{configurable:!0,get:function(){return this}})}},{128:128,29:29,40:40,72:72}],101:[function(e,t,n){var r=e(72).f,i=e(41),o=e(128)("toStringTag")
+t.exports=function(e,t,n){e&&!i(e=n?e:e.prototype,o)&&r(e,o,{configurable:!0,value:t})}},{128:128,41:41,72:72}],102:[function(e,t,n){var r=e(103)("keys"),i=e(124)
+t.exports=function(e){return r[e]||(r[e]=i(e))}},{103:103,124:124}],103:[function(e,t,n){var r=e(40),i=r["__core-js_shared__"]||(r["__core-js_shared__"]={})
+t.exports=function(e){return i[e]||(i[e]={})}},{40:40}],104:[function(e,t,n){var r=e(7),i=e(3),o=e(128)("species")
+t.exports=function(e,t){var n,s=r(e).constructor
+return void 0===s||void 0==(n=r(s)[o])?t:i(n)}},{128:128,3:3,7:7}],105:[function(e,t,n){"use strict"
+var r=e(35)
+t.exports=function(e,t){return!!e&&r(function(){t?e.call(null,function(){},1):e.call(null)})}},{35:35}],106:[function(e,t,n){var r=e(116),i=e(28)
+t.exports=function(e){return function(t,n){var o,s,a=String(i(t)),u=r(n),c=a.length
+return u<0||u>=c?e?"":void 0:(o=a.charCodeAt(u),o<55296||o>56319||u+1===c||(s=a.charCodeAt(u+1))<56320||s>57343?e?a.charAt(u):o:e?a.slice(u,u+2):s-56320+(o-55296<<10)+65536)}}},{116:116,28:28}],107:[function(e,t,n){var r=e(52),i=e(28)
+t.exports=function(e,t,n){if(r(t))throw TypeError("String#"+n+" doesn't accept regex!")
+return String(i(e))}},{28:28,52:52}],108:[function(e,t,n){var r=e(33),i=e(35),o=e(28),s=/"/g,a=function(e,t,n,r){var i=String(o(e)),a="<"+t
+return""!==n&&(a+=" "+n+'="'+String(r).replace(s,"&quot;")+'"'),a+">"+i+"</"+t+">"}
+t.exports=function(e,t){var n={}
+n[e]=t(a),r(r.P+r.F*i(function(){var t=""[e]('"')
+return t!==t.toLowerCase()||t.split('"').length>3}),"String",n)}},{28:28,33:33,35:35}],109:[function(e,t,n){var r=e(118),i=e(110),o=e(28)
+t.exports=function(e,t,n,s){var a=String(o(e)),u=a.length,c=void 0===n?" ":String(n),l=r(t)
+if(l<=u||""==c)return a
+var h=l-u,d=i.call(c,Math.ceil(h/c.length))
+return d.length>h&&(d=d.slice(0,h)),s?d+a:a+d}},{110:110,118:118,28:28}],110:[function(e,t,n){"use strict"
+var r=e(116),i=e(28)
+t.exports=function(e){var t=String(i(this)),n="",o=r(e)
+if(o<0||o==1/0)throw RangeError("Count can't be negative")
+for(;o>0;(o>>>=1)&&(t+=t))1&o&&(n+=t)
+return n}},{116:116,28:28}],111:[function(e,t,n){var r=e(33),i=e(28),o=e(35),s=e(112),a="["+s+"]",u="​…",c=RegExp("^"+a+a+"*"),l=RegExp(a+a+"*$"),h=function(e,t,n){var i={},a=o(function(){return!!s[e]()||u[e]()!=u}),c=i[e]=a?t(d):s[e]
+n&&(i[n]=c),r(r.P+r.F*a,"String",i)},d=h.trim=function(e,t){return e=String(i(e)),1&t&&(e=e.replace(c,"")),2&t&&(e=e.replace(l,"")),e}
+t.exports=h},{112:112,28:28,33:33,35:35}],112:[function(e,t,n){t.exports="\t\n\v\f\r   ᠎              \u2028\u2029\ufeff"},{}],113:[function(e,t,n){var r,i,o,s=e(25),a=e(46),u=e(43),c=e(30),l=e(40),h=l.process,d=l.setImmediate,p=l.clearImmediate,f=l.MessageChannel,g=l.Dispatch,m=0,v={},y=function(){var e=+this
+if(v.hasOwnProperty(e)){var t=v[e]
+delete v[e],t()}},b=function(e){y.call(e.data)}
+d&&p||(d=function(e){for(var t=[],n=1;arguments.length>n;)t.push(arguments[n++])
+return v[++m]=function(){a("function"==typeof e?e:Function(e),t)},r(m),m},p=function(e){delete v[e]},"process"==e(18)(h)?r=function(e){h.nextTick(s(y,e,1))}:g&&g.now?r=function(e){g.now(s(y,e,1))}:f?(i=new f,o=i.port2,i.port1.onmessage=b,r=s(o.postMessage,o,1)):l.addEventListener&&"function"==typeof postMessage&&!l.importScripts?(r=function(e){l.postMessage(e+"","*")},l.addEventListener("message",b,!1)):r="onreadystatechange"in c("script")?function(e){u.appendChild(c("script")).onreadystatechange=function(){u.removeChild(this),y.call(e)}}:function(e){setTimeout(s(y,e,1),0)}),t.exports={set:d,clear:p}},{18:18,25:25,30:30,40:40,43:43,46:46}],114:[function(e,t,n){var r=e(116),i=Math.max,o=Math.min
+t.exports=function(e,t){return e=r(e),e<0?i(e+t,0):o(e,t)}},{116:116}],115:[function(e,t,n){var r=e(116),i=e(118)
+t.exports=function(e){if(void 0===e)return 0
+var t=r(e),n=i(t)
+if(t!==n)throw RangeError("Wrong length!")
+return n}},{116:116,118:118}],116:[function(e,t,n){var r=Math.ceil,i=Math.floor
+t.exports=function(e){return isNaN(e=+e)?0:(e>0?i:r)(e)}},{}],117:[function(e,t,n){var r=e(47),i=e(28)
+t.exports=function(e){return r(i(e))}},{28:28,47:47}],118:[function(e,t,n){var r=e(116),i=Math.min
+t.exports=function(e){return e>0?i(r(e),9007199254740991):0}},{116:116}],119:[function(e,t,n){var r=e(28)
+t.exports=function(e){return Object(r(e))}},{28:28}],120:[function(e,t,n){var r=e(51)
+t.exports=function(e,t){if(!r(e))return e
+var n,i
+if(t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i
+if("function"==typeof(n=e.valueOf)&&!r(i=n.call(e)))return i
+if(!t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i
+throw TypeError("Can't convert object to primitive value")}},{51:51}],121:[function(e,t,n){"use strict"
+if(e(29)){var r=e(60),i=e(40),o=e(35),s=e(33),a=e(123),u=e(122),c=e(25),l=e(6),h=e(92),d=e(42),p=e(93),f=e(116),g=e(118),m=e(115),v=e(114),y=e(120),b=e(41),C=e(17),A=e(51),_=e(119),I=e(48),w=e(71),x=e(79),k=e(77).f,j=e(129),E=e(124),S=e(128),T=e(12),P=e(11),O=e(104),R=e(141),N=e(58),M=e(56),L=e(100),D=e(9),z=e(8),F=e(72),B=e(75),H=F.f,U=B.f,q=i.RangeError,V=i.TypeError,W=i.Uint8Array,G=Array.prototype,Y=u.ArrayBuffer,K=u.DataView,Q=T(0),Z=T(2),X=T(3),J=T(4),$=T(5),ee=T(6),te=P(!0),ne=P(!1),re=R.values,ie=R.keys,oe=R.entries,se=G.lastIndexOf,ae=G.reduce,ue=G.reduceRight,ce=G.join,le=G.sort,he=G.slice,de=G.toString,pe=G.toLocaleString,fe=S("iterator"),ge=S("toStringTag"),me=E("typed_constructor"),ve=E("def_constructor"),ye=a.CONSTR,be=a.TYPED,Ce=a.VIEW,Ae=T(1,function(e,t){return ke(O(e,e[ve]),t)}),_e=o(function(){return 1===new W(new Uint16Array([1]).buffer)[0]}),Ie=!!W&&!!W.prototype.set&&o(function(){new W(1).set({})}),we=function(e,t){var n=f(e)
+if(n<0||n%t)throw q("Wrong offset!")
+return n},xe=function(e){if(A(e)&&be in e)return e
+throw V(e+" is not a typed array!")},ke=function(e,t){if(!(A(e)&&me in e))throw V("It is not a typed array constructor!")
+return new e(t)},je=function(e,t){return Ee(O(e,e[ve]),t)},Ee=function(e,t){for(var n=0,r=t.length,i=ke(e,r);r>n;)i[n]=t[n++]
+return i},Se=function(e,t,n){H(e,t,{get:function(){return this._d[n]}})},Te=function(e){var t,n,r,i,o,s,a=_(e),u=arguments.length,l=u>1?arguments[1]:void 0,h=void 0!==l,d=j(a)
+if(void 0!=d&&!I(d)){for(s=d.call(a),r=[],t=0;!(o=s.next()).done;t++)r.push(o.value)
+a=r}for(h&&u>2&&(l=c(l,arguments[2],2)),t=0,n=g(a.length),i=ke(this,n);n>t;t++)i[t]=h?l(a[t],t):a[t]
+return i},Pe=function(){for(var e=0,t=arguments.length,n=ke(this,t);t>e;)n[e]=arguments[e++]
+return n},Oe=!!W&&o(function(){pe.call(new W(1))}),Re=function(){return pe.apply(Oe?he.call(xe(this)):xe(this),arguments)},Ne={copyWithin:function(e,t){return z.call(xe(this),e,t,arguments.length>2?arguments[2]:void 0)},every:function(e){return J(xe(this),e,arguments.length>1?arguments[1]:void 0)},fill:function(e){return D.apply(xe(this),arguments)},filter:function(e){return je(this,Z(xe(this),e,arguments.length>1?arguments[1]:void 0))},find:function(e){return $(xe(this),e,arguments.length>1?arguments[1]:void 0)},findIndex:function(e){return ee(xe(this),e,arguments.length>1?arguments[1]:void 0)},forEach:function(e){Q(xe(this),e,arguments.length>1?arguments[1]:void 0)},indexOf:function(e){return ne(xe(this),e,arguments.length>1?arguments[1]:void 0)},includes:function(e){return te(xe(this),e,arguments.length>1?arguments[1]:void 0)},join:function(e){return ce.apply(xe(this),arguments)},lastIndexOf:function(e){return se.apply(xe(this),arguments)},map:function(e){return Ae(xe(this),e,arguments.length>1?arguments[1]:void 0)},reduce:function(e){return ae.apply(xe(this),arguments)},reduceRight:function(e){return ue.apply(xe(this),arguments)},reverse:function(){for(var e,t=this,n=xe(t).length,r=Math.floor(n/2),i=0;i<r;)e=t[i],t[i++]=t[--n],t[n]=e
+return t},some:function(e){return X(xe(this),e,arguments.length>1?arguments[1]:void 0)},sort:function(e){return le.call(xe(this),e)},subarray:function(e,t){var n=xe(this),r=n.length,i=v(e,r)
+return new(O(n,n[ve]))(n.buffer,n.byteOffset+i*n.BYTES_PER_ELEMENT,g((void 0===t?r:v(t,r))-i))}},Me=function(e,t){return je(this,he.call(xe(this),e,t))},Le=function(e){xe(this)
+var t=we(arguments[1],1),n=this.length,r=_(e),i=g(r.length),o=0
+if(i+t>n)throw q("Wrong length!")
+for(;o<i;)this[t+o]=r[o++]},De={entries:function(){return oe.call(xe(this))},keys:function(){return ie.call(xe(this))},values:function(){return re.call(xe(this))}},ze=function(e,t){return A(e)&&e[be]&&"symbol"!=typeof t&&t in e&&String(+t)==String(t)},Fe=function(e,t){return ze(e,t=y(t,!0))?h(2,e[t]):U(e,t)},Be=function(e,t,n){return!(ze(e,t=y(t,!0))&&A(n)&&b(n,"value"))||b(n,"get")||b(n,"set")||n.configurable||b(n,"writable")&&!n.writable||b(n,"enumerable")&&!n.enumerable?H(e,t,n):(e[t]=n.value,e)}
+ye||(B.f=Fe,F.f=Be),s(s.S+s.F*!ye,"Object",{getOwnPropertyDescriptor:Fe,defineProperty:Be}),o(function(){de.call({})})&&(de=pe=function(){return ce.call(this)})
+var He=p({},Ne)
+p(He,De),d(He,fe,De.values),p(He,{slice:Me,set:Le,constructor:function(){},toString:de,toLocaleString:Re}),Se(He,"buffer","b"),Se(He,"byteOffset","o"),Se(He,"byteLength","l"),Se(He,"length","e"),H(He,ge,{get:function(){return this[be]}}),t.exports=function(e,t,n,u){u=!!u
+var c=e+(u?"Clamped":"")+"Array",h="get"+e,p="set"+e,f=i[c],v=f||{},y=f&&x(f),b=!f||!a.ABV,_={},I=f&&f.prototype,j=function(e,n){var r=e._d
+return r.v[h](n*t+r.o,_e)},E=function(e,n,r){var i=e._d
+u&&(r=(r=Math.round(r))<0?0:r>255?255:255&r),i.v[p](n*t+i.o,r,_e)},S=function(e,t){H(e,t,{get:function(){return j(this,t)},set:function(e){return E(this,t,e)},enumerable:!0})}
+b?(f=n(function(e,n,r,i){l(e,f,c,"_d")
+var o,s,a,u,h=0,p=0
+if(A(n)){if(!(n instanceof Y||"ArrayBuffer"==(u=C(n))||"SharedArrayBuffer"==u))return be in n?Ee(f,n):Te.call(f,n)
+o=n,p=we(r,t)
+var v=n.byteLength
+if(void 0===i){if(v%t)throw q("Wrong length!")
+if((s=v-p)<0)throw q("Wrong length!")}else if((s=g(i)*t)+p>v)throw q("Wrong length!")
+a=s/t}else a=m(n),s=a*t,o=new Y(s)
+for(d(e,"_d",{b:o,o:p,l:s,e:a,v:new K(o)});h<a;)S(e,h++)}),I=f.prototype=w(He),d(I,"constructor",f)):o(function(){f(1)})&&o(function(){new f(-1)})&&M(function(e){new f,new f(null),new f(1.5),new f(e)},!0)||(f=n(function(e,n,r,i){l(e,f,c)
+var o
+return A(n)?n instanceof Y||"ArrayBuffer"==(o=C(n))||"SharedArrayBuffer"==o?void 0!==i?new v(n,we(r,t),i):void 0!==r?new v(n,we(r,t)):new v(n):be in n?Ee(f,n):Te.call(f,n):new v(m(n))}),Q(y!==Function.prototype?k(v).concat(k(y)):k(v),function(e){e in f||d(f,e,v[e])}),f.prototype=I,r||(I.constructor=f))
+var T=I[fe],P=!!T&&("values"==T.name||void 0==T.name),O=De.values
+d(f,me,!0),d(I,be,c),d(I,Ce,!0),d(I,ve,f),(u?new f(1)[ge]==c:ge in I)||H(I,ge,{get:function(){return c}}),_[c]=f,s(s.G+s.W+s.F*(f!=v),_),s(s.S,c,{BYTES_PER_ELEMENT:t}),s(s.S+s.F*o(function(){v.of.call(f,1)}),c,{from:Te,of:Pe}),"BYTES_PER_ELEMENT"in I||d(I,"BYTES_PER_ELEMENT",t),s(s.P,c,Ne),L(c),s(s.P+s.F*Ie,c,{set:Le}),s(s.P+s.F*!P,c,De),r||I.toString==de||(I.toString=de),s(s.P+s.F*o(function(){new f(1).slice()}),c,{slice:Me}),s(s.P+s.F*(o(function(){return[1,2].toLocaleString()!=new f([1,2]).toLocaleString()})||!o(function(){I.toLocaleString.call([1,2])})),c,{toLocaleString:Re}),N[c]=P?T:O,r||P||d(I,fe,O)}}else t.exports=function(){}},{100:100,104:104,11:11,114:114,115:115,116:116,118:118,119:119,12:12,120:120,122:122,123:123,124:124,128:128,129:129,141:141,17:17,25:25,29:29,33:33,35:35,40:40,41:41,42:42,48:48,51:51,56:56,58:58,6:6,60:60,71:71,72:72,75:75,77:77,79:79,8:8,9:9,92:92,93:93}],122:[function(e,t,n){"use strict"
+function r(e,t,n){var r,i,o,s=Array(n),a=8*n-t-1,u=(1<<a)-1,c=u>>1,l=23===t?z(2,-24)-z(2,-77):0,h=0,d=e<0||0===e&&1/e<0?1:0
+for(e=D(e),e!=e||e===M?(i=e!=e?1:0,r=u):(r=F(B(e)/H),e*(o=z(2,-r))<1&&(r--,o*=2),e+=r+c>=1?l/o:l*z(2,1-c),e*o>=2&&(r++,o/=2),r+c>=u?(i=0,r=u):r+c>=1?(i=(e*o-1)*z(2,t),r+=c):(i=e*z(2,c-1)*z(2,t),r=0));t>=8;s[h++]=255&i,i/=256,t-=8);for(r=r<<t|i,a+=t;a>0;s[h++]=255&r,r/=256,a-=8);return s[--h]|=128*d,s}function i(e,t,n){var r,i=8*n-t-1,o=(1<<i)-1,s=o>>1,a=i-7,u=n-1,c=e[u--],l=127&c
+for(c>>=7;a>0;l=256*l+e[u],u--,a-=8);for(r=l&(1<<-a)-1,l>>=-a,a+=t;a>0;r=256*r+e[u],u--,a-=8);if(0===l)l=1-s
+else{if(l===o)return r?NaN:c?-M:M
+r+=z(2,t),l-=s}return(c?-1:1)*r*z(2,l-t)}function o(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]}function s(e){return[255&e]}function a(e){return[255&e,e>>8&255]}function u(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]}function c(e){return r(e,52,8)}function l(e){return r(e,23,4)}function h(e,t,n){k(e[S],t,{get:function(){return this[n]}})}function d(e,t,n,r){var i=+n,o=w(i)
+if(o+t>e[q])throw N(T)
+var s=e[U]._b,a=o+e[V],u=s.slice(a,a+t)
+return r?u:u.reverse()}function p(e,t,n,r,i,o){var s=+n,a=w(s)
+if(a+t>e[q])throw N(T)
+for(var u=e[U]._b,c=a+e[V],l=r(+i),h=0;h<t;h++)u[c+h]=l[o?h:t-h-1]}var f=e(40),g=e(29),m=e(60),v=e(123),y=e(42),b=e(93),C=e(35),A=e(6),_=e(116),I=e(118),w=e(115),x=e(77).f,k=e(72).f,j=e(9),E=e(101),S="prototype",T="Wrong index!",P=f.ArrayBuffer,O=f.DataView,R=f.Math,N=f.RangeError,M=f.Infinity,L=P,D=R.abs,z=R.pow,F=R.floor,B=R.log,H=R.LN2,U=g?"_b":"buffer",q=g?"_l":"byteLength",V=g?"_o":"byteOffset"
+if(v.ABV){if(!C(function(){P(1)})||!C(function(){new P(-1)})||C(function(){return new P,new P(1.5),new P(NaN),"ArrayBuffer"!=P.name})){P=function(e){return A(this,P),new L(w(e))}
+for(var W,G=P[S]=L[S],Y=x(L),K=0;Y.length>K;)(W=Y[K++])in P||y(P,W,L[W])
+m||(G.constructor=P)}var Q=new O(new P(2)),Z=O[S].setInt8
+Q.setInt8(0,2147483648),Q.setInt8(1,2147483649),!Q.getInt8(0)&&Q.getInt8(1)||b(O[S],{setInt8:function(e,t){Z.call(this,e,t<<24>>24)},setUint8:function(e,t){Z.call(this,e,t<<24>>24)}},!0)}else P=function(e){A(this,P,"ArrayBuffer")
+var t=w(e)
+this._b=j.call(Array(t),0),this[q]=t},O=function(e,t,n){A(this,O,"DataView"),A(e,P,"DataView")
+var r=e[q],i=_(t)
+if(i<0||i>r)throw N("Wrong offset!")
+if(n=void 0===n?r-i:I(n),i+n>r)throw N("Wrong length!")
+this[U]=e,this[V]=i,this[q]=n},g&&(h(P,"byteLength","_l"),h(O,"buffer","_b"),h(O,"byteLength","_l"),h(O,"byteOffset","_o")),b(O[S],{getInt8:function(e){return d(this,1,e)[0]<<24>>24},getUint8:function(e){return d(this,1,e)[0]},getInt16:function(e){var t=d(this,2,e,arguments[1])
+return(t[1]<<8|t[0])<<16>>16},getUint16:function(e){var t=d(this,2,e,arguments[1])
+return t[1]<<8|t[0]},getInt32:function(e){return o(d(this,4,e,arguments[1]))},getUint32:function(e){return o(d(this,4,e,arguments[1]))>>>0},getFloat32:function(e){return i(d(this,4,e,arguments[1]),23,4)},getFloat64:function(e){return i(d(this,8,e,arguments[1]),52,8)},setInt8:function(e,t){p(this,1,e,s,t)},setUint8:function(e,t){p(this,1,e,s,t)},setInt16:function(e,t){p(this,2,e,a,t,arguments[2])},setUint16:function(e,t){p(this,2,e,a,t,arguments[2])},setInt32:function(e,t){p(this,4,e,u,t,arguments[2])},setUint32:function(e,t){p(this,4,e,u,t,arguments[2])},setFloat32:function(e,t){p(this,4,e,l,t,arguments[2])},setFloat64:function(e,t){p(this,8,e,c,t,arguments[2])}})
+E(P,"ArrayBuffer"),E(O,"DataView"),y(O[S],v.VIEW,!0),n.ArrayBuffer=P,n.DataView=O},{101:101,115:115,116:116,118:118,123:123,29:29,35:35,40:40,42:42,6:6,60:60,72:72,77:77,9:9,93:93}],123:[function(e,t,n){for(var r,i=e(40),o=e(42),s=e(124),a=s("typed_array"),u=s("view"),c=!(!i.ArrayBuffer||!i.DataView),l=c,h=0,d="Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array".split(",");h<9;)(r=i[d[h++]])?(o(r.prototype,a,!0),o(r.prototype,u,!0)):l=!1
+t.exports={ABV:c,CONSTR:l,TYPED:a,VIEW:u}},{124:124,40:40,42:42}],124:[function(e,t,n){var r=0,i=Math.random()
+t.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++r+i).toString(36))}},{}],125:[function(e,t,n){var r=e(51)
+t.exports=function(e,t){if(!r(e)||e._t!==t)throw TypeError("Incompatible receiver, "+t+" required!")
+return e}},{51:51}],126:[function(e,t,n){var r=e(40),i=e(23),o=e(60),s=e(127),a=e(72).f
+t.exports=function(e){var t=i.Symbol||(i.Symbol=o?{}:r.Symbol||{})
+"_"==e.charAt(0)||e in t||a(t,e,{value:s.f(e)})}},{127:127,23:23,40:40,60:60,72:72}],127:[function(e,t,n){n.f=e(128)},{128:128}],128:[function(e,t,n){var r=e(103)("wks"),i=e(124),o=e(40).Symbol,s="function"==typeof o;(t.exports=function(e){return r[e]||(r[e]=s&&o[e]||(s?o:i)("Symbol."+e))}).store=r},{103:103,124:124,40:40}],129:[function(e,t,n){var r=e(17),i=e(128)("iterator"),o=e(58)
+t.exports=e(23).getIteratorMethod=function(e){if(void 0!=e)return e[i]||e["@@iterator"]||o[r(e)]}},{128:128,17:17,23:23,58:58}],130:[function(e,t,n){var r=e(33),i=e(95)(/[\\^$*+?.()|[\]{}]/g,"\\$&")
+r(r.S,"RegExp",{escape:function(e){return i(e)}})},{33:33,95:95}],131:[function(e,t,n){var r=e(33)
+r(r.P,"Array",{copyWithin:e(8)}),e(5)("copyWithin")},{33:33,5:5,8:8}],132:[function(e,t,n){"use strict"
+var r=e(33),i=e(12)(4)
+r(r.P+r.F*!e(105)([].every,!0),"Array",{every:function(e){return i(this,e,arguments[1])}})},{105:105,12:12,33:33}],133:[function(e,t,n){var r=e(33)
+r(r.P,"Array",{fill:e(9)}),e(5)("fill")},{33:33,5:5,9:9}],134:[function(e,t,n){"use strict"
+var r=e(33),i=e(12)(2)
+r(r.P+r.F*!e(105)([].filter,!0),"Array",{filter:function(e){return i(this,e,arguments[1])}})},{105:105,12:12,33:33}],135:[function(e,t,n){"use strict"
+var r=e(33),i=e(12)(6),o="findIndex",s=!0
+o in[]&&Array(1)[o](function(){s=!1}),r(r.P+r.F*s,"Array",{findIndex:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}}),e(5)(o)},{12:12,33:33,5:5}],136:[function(e,t,n){"use strict"
+var r=e(33),i=e(12)(5),o=!0
+"find"in[]&&Array(1).find(function(){o=!1}),r(r.P+r.F*o,"Array",{find:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}}),e(5)("find")},{12:12,33:33,5:5}],137:[function(e,t,n){"use strict"
+var r=e(33),i=e(12)(0),o=e(105)([].forEach,!0)
+r(r.P+r.F*!o,"Array",{forEach:function(e){return i(this,e,arguments[1])}})},{105:105,12:12,33:33}],138:[function(e,t,n){"use strict"
+var r=e(25),i=e(33),o=e(119),s=e(53),a=e(48),u=e(118),c=e(24),l=e(129)
+i(i.S+i.F*!e(56)(function(e){Array.from(e)}),"Array",{from:function(e){var t,n,i,h,d=o(e),p="function"==typeof this?this:Array,f=arguments.length,g=f>1?arguments[1]:void 0,m=void 0!==g,v=0,y=l(d)
+if(m&&(g=r(g,f>2?arguments[2]:void 0,2)),void 0==y||p==Array&&a(y))for(t=u(d.length),n=new p(t);t>v;v++)c(n,v,m?g(d[v],v):d[v])
+else for(h=y.call(d),n=new p;!(i=h.next()).done;v++)c(n,v,m?s(h,g,[i.value,v],!0):i.value)
+return n.length=v,n}})},{118:118,119:119,129:129,24:24,25:25,33:33,48:48,53:53,56:56}],139:[function(e,t,n){"use strict"
+var r=e(33),i=e(11)(!1),o=[].indexOf,s=!!o&&1/[1].indexOf(1,-0)<0
+r(r.P+r.F*(s||!e(105)(o)),"Array",{indexOf:function(e){return s?o.apply(this,arguments)||0:i(this,e,arguments[1])}})},{105:105,11:11,33:33}],140:[function(e,t,n){var r=e(33)
+r(r.S,"Array",{isArray:e(49)})},{33:33,49:49}],141:[function(e,t,n){"use strict"
+var r=e(5),i=e(57),o=e(58),s=e(117)
+t.exports=e(55)(Array,"Array",function(e,t){this._t=s(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,n=this._i++
+return!e||n>=e.length?(this._t=void 0,i(1)):"keys"==t?i(0,n):"values"==t?i(0,e[n]):i(0,[n,e[n]])},"values"),o.Arguments=o.Array,r("keys"),r("values"),r("entries")},{117:117,5:5,55:55,57:57,58:58}],142:[function(e,t,n){"use strict"
+var r=e(33),i=e(117),o=[].join
+r(r.P+r.F*(e(47)!=Object||!e(105)(o)),"Array",{join:function(e){return o.call(i(this),void 0===e?",":e)}})},{105:105,117:117,33:33,47:47}],143:[function(e,t,n){"use strict"
+var r=e(33),i=e(117),o=e(116),s=e(118),a=[].lastIndexOf,u=!!a&&1/[1].lastIndexOf(1,-0)<0
+r(r.P+r.F*(u||!e(105)(a)),"Array",{lastIndexOf:function(e){if(u)return a.apply(this,arguments)||0
+var t=i(this),n=s(t.length),r=n-1
+for(arguments.length>1&&(r=Math.min(r,o(arguments[1]))),r<0&&(r=n+r);r>=0;r--)if(r in t&&t[r]===e)return r||0
+return-1}})},{105:105,116:116,117:117,118:118,33:33}],144:[function(e,t,n){"use strict"
+var r=e(33),i=e(12)(1)
+r(r.P+r.F*!e(105)([].map,!0),"Array",{map:function(e){return i(this,e,arguments[1])}})},{105:105,12:12,33:33}],145:[function(e,t,n){"use strict"
+var r=e(33),i=e(24)
+r(r.S+r.F*e(35)(function(){function e(){}return!(Array.of.call(e)instanceof e)}),"Array",{of:function(){for(var e=0,t=arguments.length,n=new("function"==typeof this?this:Array)(t);t>e;)i(n,e,arguments[e++])
+return n.length=t,n}})},{24:24,33:33,35:35}],146:[function(e,t,n){"use strict"
+var r=e(33),i=e(13)
+r(r.P+r.F*!e(105)([].reduceRight,!0),"Array",{reduceRight:function(e){return i(this,e,arguments.length,arguments[1],!0)}})},{105:105,13:13,33:33}],147:[function(e,t,n){"use strict"
+var r=e(33),i=e(13)
+r(r.P+r.F*!e(105)([].reduce,!0),"Array",{reduce:function(e){return i(this,e,arguments.length,arguments[1],!1)}})},{105:105,13:13,33:33}],148:[function(e,t,n){"use strict"
+var r=e(33),i=e(43),o=e(18),s=e(114),a=e(118),u=[].slice
+r(r.P+r.F*e(35)(function(){i&&u.call(i)}),"Array",{slice:function(e,t){var n=a(this.length),r=o(this)
+if(t=void 0===t?n:t,"Array"==r)return u.call(this,e,t)
+for(var i=s(e,n),c=s(t,n),l=a(c-i),h=Array(l),d=0;d<l;d++)h[d]="String"==r?this.charAt(i+d):this[i+d]
+return h}})},{114:114,118:118,18:18,33:33,35:35,43:43}],149:[function(e,t,n){"use strict"
+var r=e(33),i=e(12)(3)
+r(r.P+r.F*!e(105)([].some,!0),"Array",{some:function(e){return i(this,e,arguments[1])}})},{105:105,12:12,33:33}],150:[function(e,t,n){"use strict"
+var r=e(33),i=e(3),o=e(119),s=e(35),a=[].sort,u=[1,2,3]
+r(r.P+r.F*(s(function(){u.sort(void 0)})||!s(function(){u.sort(null)})||!e(105)(a)),"Array",{sort:function(e){return void 0===e?a.call(o(this)):a.call(o(this),i(e))}})},{105:105,119:119,3:3,33:33,35:35}],151:[function(e,t,n){e(100)("Array")},{100:100}],152:[function(e,t,n){var r=e(33)
+r(r.S,"Date",{now:function(){return(new Date).getTime()}})},{33:33}],153:[function(e,t,n){var r=e(33),i=e(26)
+r(r.P+r.F*(Date.prototype.toISOString!==i),"Date",{toISOString:i})},{26:26,33:33}],154:[function(e,t,n){"use strict"
+var r=e(33),i=e(119),o=e(120)
+r(r.P+r.F*e(35)(function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}),"Date",{toJSON:function(e){var t=i(this),n=o(t)
+return"number"!=typeof n||isFinite(n)?t.toISOString():null}})},{119:119,120:120,33:33,35:35}],155:[function(e,t,n){var r=e(128)("toPrimitive"),i=Date.prototype
+r in i||e(42)(i,r,e(27))},{128:128,27:27,42:42}],156:[function(e,t,n){var r=Date.prototype,i=r.toString,o=r.getTime
+new Date(NaN)+""!="Invalid Date"&&e(94)(r,"toString",function(){var e=o.call(this)
+return e===e?i.call(this):"Invalid Date"})},{94:94}],157:[function(e,t,n){var r=e(33)
+r(r.P,"Function",{bind:e(16)})},{16:16,33:33}],158:[function(e,t,n){"use strict"
+var r=e(51),i=e(79),o=e(128)("hasInstance"),s=Function.prototype
+o in s||e(72).f(s,o,{value:function(e){if("function"!=typeof this||!r(e))return!1
+if(!r(this.prototype))return e instanceof this
+for(;e=i(e);)if(this.prototype===e)return!0
+return!1}})},{128:128,51:51,72:72,79:79}],159:[function(e,t,n){var r=e(72).f,i=Function.prototype,o=/^\s*function ([^ (]*)/
+"name"in i||e(29)&&r(i,"name",{configurable:!0,get:function(){try{return(""+this).match(o)[1]}catch(e){return""}}})},{29:29,72:72}],160:[function(e,t,n){"use strict"
+var r=e(19),i=e(125)
+t.exports=e(22)("Map",function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},{get:function(e){var t=r.getEntry(i(this,"Map"),e)
+return t&&t.v},set:function(e,t){return r.def(i(this,"Map"),0===e?0:e,t)}},r,!0)},{125:125,19:19,22:22}],161:[function(e,t,n){var r=e(33),i=e(63),o=Math.sqrt,s=Math.acosh
+r(r.S+r.F*!(s&&710==Math.floor(s(Number.MAX_VALUE))&&s(1/0)==1/0),"Math",{acosh:function(e){return(e=+e)<1?NaN:e>94906265.62425156?Math.log(e)+Math.LN2:i(e-1+o(e-1)*o(e+1))}})},{33:33,63:63}],162:[function(e,t,n){function r(e){return isFinite(e=+e)&&0!=e?e<0?-r(-e):Math.log(e+Math.sqrt(e*e+1)):e}var i=e(33),o=Math.asinh
+i(i.S+i.F*!(o&&1/o(0)>0),"Math",{asinh:r})},{33:33}],163:[function(e,t,n){var r=e(33),i=Math.atanh
+r(r.S+r.F*!(i&&1/i(-0)<0),"Math",{atanh:function(e){return 0==(e=+e)?e:Math.log((1+e)/(1-e))/2}})},{33:33}],164:[function(e,t,n){var r=e(33),i=e(65)
+r(r.S,"Math",{cbrt:function(e){return i(e=+e)*Math.pow(Math.abs(e),1/3)}})},{33:33,65:65}],165:[function(e,t,n){var r=e(33)
+r(r.S,"Math",{clz32:function(e){return(e>>>=0)?31-Math.floor(Math.log(e+.5)*Math.LOG2E):32}})},{33:33}],166:[function(e,t,n){var r=e(33),i=Math.exp
+r(r.S,"Math",{cosh:function(e){return(i(e=+e)+i(-e))/2}})},{33:33}],167:[function(e,t,n){var r=e(33),i=e(61)
+r(r.S+r.F*(i!=Math.expm1),"Math",{expm1:i})},{33:33,61:61}],168:[function(e,t,n){var r=e(33)
+r(r.S,"Math",{fround:e(62)})},{33:33,62:62}],169:[function(e,t,n){var r=e(33),i=Math.abs
+r(r.S,"Math",{hypot:function(e,t){for(var n,r,o=0,s=0,a=arguments.length,u=0;s<a;)n=i(arguments[s++]),u<n?(r=u/n,o=o*r*r+1,u=n):n>0?(r=n/u,o+=r*r):o+=n
+return u===1/0?1/0:u*Math.sqrt(o)}})},{33:33}],170:[function(e,t,n){var r=e(33),i=Math.imul
+r(r.S+r.F*e(35)(function(){return-5!=i(4294967295,5)||2!=i.length}),"Math",{imul:function(e,t){var n=+e,r=+t,i=65535&n,o=65535&r
+return 0|i*o+((65535&n>>>16)*o+i*(65535&r>>>16)<<16>>>0)}})},{33:33,35:35}],171:[function(e,t,n){var r=e(33)
+r(r.S,"Math",{log10:function(e){return Math.log(e)*Math.LOG10E}})},{33:33}],172:[function(e,t,n){var r=e(33)
+r(r.S,"Math",{log1p:e(63)})},{33:33,63:63}],173:[function(e,t,n){var r=e(33)
+r(r.S,"Math",{log2:function(e){return Math.log(e)/Math.LN2}})},{33:33}],174:[function(e,t,n){var r=e(33)
+r(r.S,"Math",{sign:e(65)})},{33:33,65:65}],175:[function(e,t,n){var r=e(33),i=e(61),o=Math.exp
+r(r.S+r.F*e(35)(function(){return-2e-17!=!Math.sinh(-2e-17)}),"Math",{sinh:function(e){return Math.abs(e=+e)<1?(i(e)-i(-e))/2:(o(e-1)-o(-e-1))*(Math.E/2)}})},{33:33,35:35,61:61}],176:[function(e,t,n){var r=e(33),i=e(61),o=Math.exp
+r(r.S,"Math",{tanh:function(e){var t=i(e=+e),n=i(-e)
+return t==1/0?1:n==1/0?-1:(t-n)/(o(e)+o(-e))}})},{33:33,61:61}],177:[function(e,t,n){var r=e(33)
+r(r.S,"Math",{trunc:function(e){return(e>0?Math.floor:Math.ceil)(e)}})},{33:33}],178:[function(e,t,n){"use strict"
+var r=e(40),i=e(41),o=e(18),s=e(45),a=e(120),u=e(35),c=e(77).f,l=e(75).f,h=e(72).f,d=e(111).trim,p=r.Number,f=p,g=p.prototype,m="Number"==o(e(71)(g)),v="trim"in String.prototype,y=function(e){var t=a(e,!1)
+if("string"==typeof t&&t.length>2){t=v?t.trim():d(t,3)
+var n,r,i,o=t.charCodeAt(0)
+if(43===o||45===o){if(88===(n=t.charCodeAt(2))||120===n)return NaN}else if(48===o){switch(t.charCodeAt(1)){case 66:case 98:r=2,i=49
+break
+case 79:case 111:r=8,i=55
+break
+default:return+t}for(var s,u=t.slice(2),c=0,l=u.length;c<l;c++)if((s=u.charCodeAt(c))<48||s>i)return NaN
+return parseInt(u,r)}}return+t}
+if(!p(" 0o1")||!p("0b1")||p("+0x1")){p=function(e){var t=arguments.length<1?0:e,n=this
+return n instanceof p&&(m?u(function(){g.valueOf.call(n)}):"Number"!=o(n))?s(new f(y(t)),n,p):y(t)}
+for(var b,C=e(29)?c(f):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),A=0;C.length>A;A++)i(f,b=C[A])&&!i(p,b)&&h(p,b,l(f,b))
+p.prototype=g,g.constructor=p,e(94)(r,"Number",p)}},{111:111,120:120,18:18,29:29,35:35,40:40,41:41,45:45,71:71,72:72,75:75,77:77,94:94}],179:[function(e,t,n){var r=e(33)
+r(r.S,"Number",{EPSILON:Math.pow(2,-52)})},{33:33}],180:[function(e,t,n){var r=e(33),i=e(40).isFinite
+r(r.S,"Number",{isFinite:function(e){return"number"==typeof e&&i(e)}})},{33:33,40:40}],181:[function(e,t,n){var r=e(33)
+r(r.S,"Number",{isInteger:e(50)})},{33:33,50:50}],182:[function(e,t,n){var r=e(33)
+r(r.S,"Number",{isNaN:function(e){return e!=e}})},{33:33}],183:[function(e,t,n){var r=e(33),i=e(50),o=Math.abs
+r(r.S,"Number",{isSafeInteger:function(e){return i(e)&&o(e)<=9007199254740991}})},{33:33,50:50}],184:[function(e,t,n){var r=e(33)
+r(r.S,"Number",{MAX_SAFE_INTEGER:9007199254740991})},{33:33}],185:[function(e,t,n){var r=e(33)
+r(r.S,"Number",{MIN_SAFE_INTEGER:-9007199254740991})},{33:33}],186:[function(e,t,n){var r=e(33),i=e(86)
+r(r.S+r.F*(Number.parseFloat!=i),"Number",{parseFloat:i})},{33:33,86:86}],187:[function(e,t,n){var r=e(33),i=e(87)
+r(r.S+r.F*(Number.parseInt!=i),"Number",{parseInt:i})},{33:33,87:87}],188:[function(e,t,n){"use strict"
+var r=e(33),i=e(116),o=e(4),s=e(110),a=1..toFixed,u=Math.floor,c=[0,0,0,0,0,0],l="Number.toFixed: incorrect invocation!",h=function(e,t){for(var n=-1,r=t;++n<6;)r+=e*c[n],c[n]=r%1e7,r=u(r/1e7)},d=function(e){for(var t=6,n=0;--t>=0;)n+=c[t],c[t]=u(n/e),n=n%e*1e7},p=function(){for(var e=6,t="";--e>=0;)if(""!==t||0===e||0!==c[e]){var n=String(c[e])
+t=""===t?n:t+s.call("0",7-n.length)+n}return t},f=function(e,t,n){return 0===t?n:t%2==1?f(e,t-1,n*e):f(e*e,t/2,n)},g=function(e){for(var t=0,n=e;n>=4096;)t+=12,n/=4096
+for(;n>=2;)t+=1,n/=2
+return t}
+r(r.P+r.F*(!!a&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!e(35)(function(){a.call({})})),"Number",{toFixed:function(e){var t,n,r,a,u=o(this,l),c=i(e),m="",v="0"
+if(c<0||c>20)throw RangeError(l)
+if(u!=u)return"NaN"
+if(u<=-1e21||u>=1e21)return String(u)
+if(u<0&&(m="-",u=-u),u>1e-21)if(t=g(u*f(2,69,1))-69,n=t<0?u*f(2,-t,1):u/f(2,t,1),n*=4503599627370496,(t=52-t)>0){for(h(0,n),r=c;r>=7;)h(1e7,0),r-=7
+for(h(f(10,r,1),0),r=t-1;r>=23;)d(1<<23),r-=23
+d(1<<r),h(1,1),d(2),v=p()}else h(0,n),h(1<<-t,0),v=p()+s.call("0",c)
+return c>0?(a=v.length,v=m+(a<=c?"0."+s.call("0",c-a)+v:v.slice(0,a-c)+"."+v.slice(a-c))):v=m+v,v}})},{110:110,116:116,33:33,35:35,4:4}],189:[function(e,t,n){"use strict"
+var r=e(33),i=e(35),o=e(4),s=1..toPrecision
+r(r.P+r.F*(i(function(){return"1"!==s.call(1,void 0)})||!i(function(){s.call({})})),"Number",{toPrecision:function(e){var t=o(this,"Number#toPrecision: incorrect invocation!")
+return void 0===e?s.call(t):s.call(t,e)}})},{33:33,35:35,4:4}],190:[function(e,t,n){var r=e(33)
+r(r.S+r.F,"Object",{assign:e(70)})},{33:33,70:70}],191:[function(e,t,n){var r=e(33)
+r(r.S,"Object",{create:e(71)})},{33:33,71:71}],192:[function(e,t,n){var r=e(33)
+r(r.S+r.F*!e(29),"Object",{defineProperties:e(73)})},{29:29,33:33,73:73}],193:[function(e,t,n){var r=e(33)
+r(r.S+r.F*!e(29),"Object",{defineProperty:e(72).f})},{29:29,33:33,72:72}],194:[function(e,t,n){var r=e(51),i=e(66).onFreeze
+e(83)("freeze",function(e){return function(t){return e&&r(t)?e(i(t)):t}})},{51:51,66:66,83:83}],195:[function(e,t,n){var r=e(117),i=e(75).f
+e(83)("getOwnPropertyDescriptor",function(){return function(e,t){return i(r(e),t)}})},{117:117,75:75,83:83}],196:[function(e,t,n){e(83)("getOwnPropertyNames",function(){return e(76).f})},{76:76,83:83}],197:[function(e,t,n){var r=e(119),i=e(79)
+e(83)("getPrototypeOf",function(){return function(e){return i(r(e))}})},{119:119,79:79,83:83}],198:[function(e,t,n){var r=e(51)
+e(83)("isExtensible",function(e){return function(t){return!!r(t)&&(!e||e(t))}})},{51:51,83:83}],199:[function(e,t,n){var r=e(51)
+e(83)("isFrozen",function(e){return function(t){return!r(t)||!!e&&e(t)}})},{51:51,83:83}],200:[function(e,t,n){var r=e(51)
+e(83)("isSealed",function(e){return function(t){return!r(t)||!!e&&e(t)}})},{51:51,83:83}],201:[function(e,t,n){var r=e(33)
+r(r.S,"Object",{is:e(96)})},{33:33,96:96}],202:[function(e,t,n){var r=e(119),i=e(81)
+e(83)("keys",function(){return function(e){return i(r(e))}})},{119:119,81:81,83:83}],203:[function(e,t,n){var r=e(51),i=e(66).onFreeze
+e(83)("preventExtensions",function(e){return function(t){return e&&r(t)?e(i(t)):t}})},{51:51,66:66,83:83}],204:[function(e,t,n){var r=e(51),i=e(66).onFreeze
+e(83)("seal",function(e){return function(t){return e&&r(t)?e(i(t)):t}})},{51:51,66:66,83:83}],205:[function(e,t,n){var r=e(33)
+r(r.S,"Object",{setPrototypeOf:e(99).set})},{33:33,99:99}],206:[function(e,t,n){"use strict"
+var r=e(17),i={}
+i[e(128)("toStringTag")]="z",i+""!="[object z]"&&e(94)(Object.prototype,"toString",function(){return"[object "+r(this)+"]"},!0)},{128:128,17:17,94:94}],207:[function(e,t,n){var r=e(33),i=e(86)
+r(r.G+r.F*(parseFloat!=i),{parseFloat:i})},{33:33,86:86}],208:[function(e,t,n){var r=e(33),i=e(87)
+r(r.G+r.F*(parseInt!=i),{parseInt:i})},{33:33,87:87}],209:[function(e,t,n){"use strict"
+var r,i,o,s,a=e(60),u=e(40),c=e(25),l=e(17),h=e(33),d=e(51),p=e(3),f=e(6),g=e(39),m=e(104),v=e(113).set,y=e(68)(),b=e(69),C=e(90),A=e(91),_=u.TypeError,I=u.process,w=u.Promise,x="process"==l(I),k=function(){},j=i=b.f,E=!!function(){try{var t=w.resolve(1),n=(t.constructor={})[e(128)("species")]=function(e){e(k,k)}
+return(x||"function"==typeof PromiseRejectionEvent)&&t.then(k)instanceof n}catch(e){}}(),S=a?function(e,t){return e===t||e===w&&t===s}:function(e,t){return e===t},T=function(e){var t
+return!(!d(e)||"function"!=typeof(t=e.then))&&t},P=function(e,t){if(!e._n){e._n=!0
+var n=e._c
+y(function(){for(var r=e._v,i=1==e._s,o=0;n.length>o;)(function(t){var n,o,s=i?t.ok:t.fail,a=t.resolve,u=t.reject,c=t.domain
+try{s?(i||(2==e._h&&N(e),e._h=1),!0===s?n=r:(c&&c.enter(),n=s(r),c&&c.exit()),n===t.promise?u(_("Promise-chain cycle")):(o=T(n))?o.call(n,a,u):a(n)):u(r)}catch(e){u(e)}})(n[o++])
+e._c=[],e._n=!1,t&&!e._h&&O(e)})}},O=function(e){v.call(u,function(){var t,n,r,i=e._v,o=R(e)
+if(o&&(t=C(function(){x?I.emit("unhandledRejection",i,e):(n=u.onunhandledrejection)?n({promise:e,reason:i}):(r=u.console)&&r.error&&r.error("Unhandled promise rejection",i)}),e._h=x||R(e)?2:1),e._a=void 0,o&&t.e)throw t.v})},R=function(e){if(1==e._h)return!1
+for(var t,n=e._a||e._c,r=0;n.length>r;)if(t=n[r++],t.fail||!R(t.promise))return!1
+return!0},N=function(e){v.call(u,function(){var t
+x?I.emit("rejectionHandled",e):(t=u.onrejectionhandled)&&t({promise:e,reason:e._v})})},M=function(e){var t=this
+t._d||(t._d=!0,t=t._w||t,t._v=e,t._s=2,t._a||(t._a=t._c.slice()),P(t,!0))},L=function(e){var t,n=this
+if(!n._d){n._d=!0,n=n._w||n
+try{if(n===e)throw _("Promise can't be resolved itself");(t=T(e))?y(function(){var r={_w:n,_d:!1}
+try{t.call(e,c(L,r,1),c(M,r,1))}catch(e){M.call(r,e)}}):(n._v=e,n._s=1,P(n,!1))}catch(e){M.call({_w:n,_d:!1},e)}}}
+E||(w=function(e){f(this,w,"Promise","_h"),p(e),r.call(this)
+try{e(c(L,this,1),c(M,this,1))}catch(e){M.call(this,e)}},r=function(e){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1},r.prototype=e(93)(w.prototype,{then:function(e,t){var n=j(m(this,w))
+return n.ok="function"!=typeof e||e,n.fail="function"==typeof t&&t,n.domain=x?I.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&P(this,!1),n.promise},catch:function(e){return this.then(void 0,e)}}),o=function(){var e=new r
+this.promise=e,this.resolve=c(L,e,1),this.reject=c(M,e,1)},b.f=j=function(e){return S(w,e)?new o(e):i(e)}),h(h.G+h.W+h.F*!E,{Promise:w}),e(101)(w,"Promise"),e(100)("Promise"),s=e(23).Promise,h(h.S+h.F*!E,"Promise",{reject:function(e){var t=j(this)
+return(0,t.reject)(e),t.promise}}),h(h.S+h.F*(a||!E),"Promise",{resolve:function(e){return e instanceof w&&S(e.constructor,this)?e:A(this,e)}}),h(h.S+h.F*!(E&&e(56)(function(e){w.all(e).catch(k)})),"Promise",{all:function(e){var t=this,n=j(t),r=n.resolve,i=n.reject,o=C(function(){var n=[],o=0,s=1
+g(e,!1,function(e){var a=o++,u=!1
+n.push(void 0),s++,t.resolve(e).then(function(e){u||(u=!0,n[a]=e,--s||r(n))},i)}),--s||r(n)})
+return o.e&&i(o.v),n.promise},race:function(e){var t=this,n=j(t),r=n.reject,i=C(function(){g(e,!1,function(e){t.resolve(e).then(n.resolve,r)})})
+return i.e&&r(i.v),n.promise}})},{100:100,101:101,104:104,113:113,128:128,17:17,23:23,25:25,3:3,33:33,39:39,40:40,51:51,56:56,6:6,60:60,68:68,69:69,90:90,91:91,93:93}],210:[function(e,t,n){var r=e(33),i=e(3),o=e(7),s=(e(40).Reflect||{}).apply,a=Function.apply
+r(r.S+r.F*!e(35)(function(){s(function(){})}),"Reflect",{apply:function(e,t,n){var r=i(e),u=o(n)
+return s?s(r,t,u):a.call(r,t,u)}})},{3:3,33:33,35:35,40:40,7:7}],211:[function(e,t,n){var r=e(33),i=e(71),o=e(3),s=e(7),a=e(51),u=e(35),c=e(16),l=(e(40).Reflect||{}).construct,h=u(function(){function e(){}return!(l(function(){},[],e)instanceof e)}),d=!u(function(){l(function(){})})
+r(r.S+r.F*(h||d),"Reflect",{construct:function(e,t){o(e),s(t)
+var n=arguments.length<3?e:o(arguments[2])
+if(d&&!h)return l(e,t,n)
+if(e==n){switch(t.length){case 0:return new e
+case 1:return new e(t[0])
+case 2:return new e(t[0],t[1])
+case 3:return new e(t[0],t[1],t[2])
+case 4:return new e(t[0],t[1],t[2],t[3])}var r=[null]
+return r.push.apply(r,t),new(c.apply(e,r))}var u=n.prototype,p=i(a(u)?u:Object.prototype),f=Function.apply.call(e,p,t)
+return a(f)?f:p}})},{16:16,3:3,33:33,35:35,40:40,51:51,7:7,71:71}],212:[function(e,t,n){var r=e(72),i=e(33),o=e(7),s=e(120)
+i(i.S+i.F*e(35)(function(){Reflect.defineProperty(r.f({},1,{value:1}),1,{value:2})}),"Reflect",{defineProperty:function(e,t,n){o(e),t=s(t,!0),o(n)
+try{return r.f(e,t,n),!0}catch(e){return!1}}})},{120:120,33:33,35:35,7:7,72:72}],213:[function(e,t,n){var r=e(33),i=e(75).f,o=e(7)
+r(r.S,"Reflect",{deleteProperty:function(e,t){var n=i(o(e),t)
+return!(n&&!n.configurable)&&delete e[t]}})},{33:33,7:7,75:75}],214:[function(e,t,n){"use strict"
+var r=e(33),i=e(7),o=function(e){this._t=i(e),this._i=0
+var t,n=this._k=[]
+for(t in e)n.push(t)}
+e(54)(o,"Object",function(){var e,t=this,n=t._k
+do{if(t._i>=n.length)return{value:void 0,done:!0}}while(!((e=n[t._i++])in t._t))
+return{value:e,done:!1}}),r(r.S,"Reflect",{enumerate:function(e){return new o(e)}})},{33:33,54:54,7:7}],215:[function(e,t,n){var r=e(75),i=e(33),o=e(7)
+i(i.S,"Reflect",{getOwnPropertyDescriptor:function(e,t){return r.f(o(e),t)}})},{33:33,7:7,75:75}],216:[function(e,t,n){var r=e(33),i=e(79),o=e(7)
+r(r.S,"Reflect",{getPrototypeOf:function(e){return i(o(e))}})},{33:33,7:7,79:79}],217:[function(e,t,n){function r(e,t){var n,a,l=arguments.length<3?e:arguments[2]
+return c(e)===l?e[t]:(n=i.f(e,t))?s(n,"value")?n.value:void 0!==n.get?n.get.call(l):void 0:u(a=o(e))?r(a,t,l):void 0}var i=e(75),o=e(79),s=e(41),a=e(33),u=e(51),c=e(7)
+a(a.S,"Reflect",{get:r})},{33:33,41:41,51:51,7:7,75:75,79:79}],218:[function(e,t,n){var r=e(33)
+r(r.S,"Reflect",{has:function(e,t){return t in e}})},{33:33}],219:[function(e,t,n){var r=e(33),i=e(7),o=Object.isExtensible
+r(r.S,"Reflect",{isExtensible:function(e){return i(e),!o||o(e)}})},{33:33,7:7}],220:[function(e,t,n){var r=e(33)
+r(r.S,"Reflect",{ownKeys:e(85)})},{33:33,85:85}],221:[function(e,t,n){var r=e(33),i=e(7),o=Object.preventExtensions
+r(r.S,"Reflect",{preventExtensions:function(e){i(e)
+try{return o&&o(e),!0}catch(e){return!1}}})},{33:33,7:7}],222:[function(e,t,n){var r=e(33),i=e(99)
+i&&r(r.S,"Reflect",{setPrototypeOf:function(e,t){i.check(e,t)
+try{return i.set(e,t),!0}catch(e){return!1}}})},{33:33,99:99}],223:[function(e,t,n){function r(e,t,n){var u,d,p=arguments.length<4?e:arguments[3],f=o.f(l(e),t)
+if(!f){if(h(d=s(e)))return r(d,t,n,p)
+f=c(0)}return a(f,"value")?!(!1===f.writable||!h(p))&&(u=o.f(p,t)||c(0),u.value=n,i.f(p,t,u),!0):void 0!==f.set&&(f.set.call(p,n),!0)}var i=e(72),o=e(75),s=e(79),a=e(41),u=e(33),c=e(92),l=e(7),h=e(51)
+u(u.S,"Reflect",{set:r})},{33:33,41:41,51:51,7:7,72:72,75:75,79:79,92:92}],224:[function(e,t,n){var r=e(40),i=e(45),o=e(72).f,s=e(77).f,a=e(52),u=e(37),c=r.RegExp,l=c,h=c.prototype,d=/a/g,p=/a/g,f=new c(d)!==d
+if(e(29)&&(!f||e(35)(function(){return p[e(128)("match")]=!1,c(d)!=d||c(p)==p||"/a/i"!=c(d,"i")}))){c=function(e,t){var n=this instanceof c,r=a(e),o=void 0===t
+return!n&&r&&e.constructor===c&&o?e:i(f?new l(r&&!o?e.source:e,t):l((r=e instanceof c)?e.source:e,r&&o?u.call(e):t),n?this:h,c)}
+for(var g=s(l),m=0;g.length>m;)(function(e){e in c||o(c,e,{configurable:!0,get:function(){return l[e]},set:function(t){l[e]=t}})})(g[m++])
+h.constructor=c,c.prototype=h,e(94)(r,"RegExp",c)}e(100)("RegExp")},{100:100,128:128,29:29,35:35,37:37,40:40,45:45,52:52,72:72,77:77,94:94}],225:[function(e,t,n){e(29)&&"g"!=/./g.flags&&e(72).f(RegExp.prototype,"flags",{configurable:!0,get:e(37)})},{29:29,37:37,72:72}],226:[function(e,t,n){e(36)("match",1,function(e,t,n){return[function(n){"use strict"
+var r=e(this),i=void 0==n?void 0:n[t]
+return void 0!==i?i.call(n,r):new RegExp(n)[t](String(r))},n]})},{36:36}],227:[function(e,t,n){e(36)("replace",2,function(e,t,n){return[function(r,i){"use strict"
+var o=e(this),s=void 0==r?void 0:r[t]
+return void 0!==s?s.call(r,o,i):n.call(String(o),r,i)},n]})},{36:36}],228:[function(e,t,n){e(36)("search",1,function(e,t,n){return[function(n){"use strict"
+var r=e(this),i=void 0==n?void 0:n[t]
+return void 0!==i?i.call(n,r):new RegExp(n)[t](String(r))},n]})},{36:36}],229:[function(e,t,n){e(36)("split",2,function(t,n,r){"use strict"
+var i=e(52),o=r,s=[].push,a="length"
+if("c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1)[a]||2!="ab".split(/(?:ab)*/)[a]||4!=".".split(/(.?)(.?)/)[a]||".".split(/()()/)[a]>1||"".split(/.?/)[a]){var u=void 0===/()??/.exec("")[1]
+r=function(e,t){var n=String(this)
+if(void 0===e&&0===t)return[]
+if(!i(e))return o.call(n,e,t)
+var r,c,l,h,d,p=[],f=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),g=0,m=void 0===t?4294967295:t>>>0,v=new RegExp(e.source,f+"g")
+for(u||(r=new RegExp("^"+v.source+"$(?!\\s)",f));(c=v.exec(n))&&!((l=c.index+c[0][a])>g&&(p.push(n.slice(g,c.index)),!u&&c[a]>1&&c[0].replace(r,function(){for(d=1;d<arguments[a]-2;d++)void 0===arguments[d]&&(c[d]=void 0)}),c[a]>1&&c.index<n[a]&&s.apply(p,c.slice(1)),h=c[0][a],g=l,p[a]>=m));)v.lastIndex===c.index&&v.lastIndex++
+return g===n[a]?!h&&v.test("")||p.push(""):p.push(n.slice(g)),p[a]>m?p.slice(0,m):p}}else"0".split(void 0,0)[a]&&(r=function(e,t){return void 0===e&&0===t?[]:o.call(this,e,t)})
+return[function(e,i){var o=t(this),s=void 0==e?void 0:e[n]
+return void 0!==s?s.call(e,o,i):r.call(String(o),e,i)},r]})},{36:36,52:52}],230:[function(e,t,n){"use strict"
+e(225)
+var r=e(7),i=e(37),o=e(29),s=/./.toString,a=function(t){e(94)(RegExp.prototype,"toString",t,!0)}
+e(35)(function(){return"/a/b"!=s.call({source:"a",flags:"b"})})?a(function(){var e=r(this)
+return"/".concat(e.source,"/","flags"in e?e.flags:!o&&e instanceof RegExp?i.call(e):void 0)}):"toString"!=s.name&&a(function(){return s.call(this)})},{225:225,29:29,35:35,37:37,7:7,94:94}],231:[function(e,t,n){"use strict"
+var r=e(19),i=e(125)
+t.exports=e(22)("Set",function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},{add:function(e){return r.def(i(this,"Set"),e=0===e?0:e,e)}},r)},{125:125,19:19,22:22}],232:[function(e,t,n){"use strict"
+e(108)("anchor",function(e){return function(t){return e(this,"a","name",t)}})},{108:108}],233:[function(e,t,n){"use strict"
+e(108)("big",function(e){return function(){return e(this,"big","","")}})},{108:108}],234:[function(e,t,n){"use strict"
+e(108)("blink",function(e){return function(){return e(this,"blink","","")}})},{108:108}],235:[function(e,t,n){"use strict"
+e(108)("bold",function(e){return function(){return e(this,"b","","")}})},{108:108}],236:[function(e,t,n){"use strict"
+var r=e(33),i=e(106)(!1)
+r(r.P,"String",{codePointAt:function(e){return i(this,e)}})},{106:106,33:33}],237:[function(e,t,n){"use strict"
+var r=e(33),i=e(118),o=e(107),s="".endsWith
+r(r.P+r.F*e(34)("endsWith"),"String",{endsWith:function(e){var t=o(this,e,"endsWith"),n=arguments.length>1?arguments[1]:void 0,r=i(t.length),a=void 0===n?r:Math.min(i(n),r),u=String(e)
+return s?s.call(t,u,a):t.slice(a-u.length,a)===u}})},{107:107,118:118,33:33,34:34}],238:[function(e,t,n){"use strict"
+e(108)("fixed",function(e){return function(){return e(this,"tt","","")}})},{108:108}],239:[function(e,t,n){"use strict"
+e(108)("fontcolor",function(e){return function(t){return e(this,"font","color",t)}})},{108:108}],240:[function(e,t,n){"use strict"
+e(108)("fontsize",function(e){return function(t){return e(this,"font","size",t)}})},{108:108}],241:[function(e,t,n){var r=e(33),i=e(114),o=String.fromCharCode,s=String.fromCodePoint
+r(r.S+r.F*(!!s&&1!=s.length),"String",{fromCodePoint:function(e){for(var t,n=[],r=arguments.length,s=0;r>s;){if(t=+arguments[s++],i(t,1114111)!==t)throw RangeError(t+" is not a valid code point")
+n.push(t<65536?o(t):o(55296+((t-=65536)>>10),t%1024+56320))}return n.join("")}})},{114:114,33:33}],242:[function(e,t,n){"use strict"
+var r=e(33),i=e(107)
+r(r.P+r.F*e(34)("includes"),"String",{includes:function(e){return!!~i(this,e,"includes").indexOf(e,arguments.length>1?arguments[1]:void 0)}})},{107:107,33:33,34:34}],243:[function(e,t,n){"use strict"
+e(108)("italics",function(e){return function(){return e(this,"i","","")}})},{108:108}],244:[function(e,t,n){"use strict"
+var r=e(106)(!0)
+e(55)(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,n=this._i
+return n>=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})})},{106:106,55:55}],245:[function(e,t,n){"use strict"
+e(108)("link",function(e){return function(t){return e(this,"a","href",t)}})},{108:108}],246:[function(e,t,n){var r=e(33),i=e(117),o=e(118)
+r(r.S,"String",{raw:function(e){for(var t=i(e.raw),n=o(t.length),r=arguments.length,s=[],a=0;n>a;)s.push(String(t[a++])),a<r&&s.push(String(arguments[a]))
+return s.join("")}})},{117:117,118:118,33:33}],247:[function(e,t,n){var r=e(33)
+r(r.P,"String",{repeat:e(110)})},{110:110,33:33}],248:[function(e,t,n){"use strict"
+e(108)("small",function(e){return function(){return e(this,"small","","")}})},{108:108}],249:[function(e,t,n){"use strict"
+var r=e(33),i=e(118),o=e(107),s="".startsWith
+r(r.P+r.F*e(34)("startsWith"),"String",{startsWith:function(e){var t=o(this,e,"startsWith"),n=i(Math.min(arguments.length>1?arguments[1]:void 0,t.length)),r=String(e)
+return s?s.call(t,r,n):t.slice(n,n+r.length)===r}})},{107:107,118:118,33:33,34:34}],250:[function(e,t,n){"use strict"
+e(108)("strike",function(e){return function(){return e(this,"strike","","")}})},{108:108}],251:[function(e,t,n){"use strict"
+e(108)("sub",function(e){return function(){return e(this,"sub","","")}})},{108:108}],252:[function(e,t,n){"use strict"
+e(108)("sup",function(e){return function(){return e(this,"sup","","")}})},{108:108}],253:[function(e,t,n){"use strict"
+e(111)("trim",function(e){return function(){return e(this,3)}})},{111:111}],254:[function(e,t,n){"use strict"
+var r=e(40),i=e(41),o=e(29),s=e(33),a=e(94),u=e(66).KEY,c=e(35),l=e(103),h=e(101),d=e(124),p=e(128),f=e(127),g=e(126),m=e(59),v=e(32),y=e(49),b=e(7),C=e(117),A=e(120),_=e(92),I=e(71),w=e(76),x=e(75),k=e(72),j=e(81),E=x.f,S=k.f,T=w.f,P=r.Symbol,O=r.JSON,R=O&&O.stringify,N=p("_hidden"),M=p("toPrimitive"),L={}.propertyIsEnumerable,D=l("symbol-registry"),z=l("symbols"),F=l("op-symbols"),B=Object.prototype,H="function"==typeof P,U=r.QObject,q=!U||!U.prototype||!U.prototype.findChild,V=o&&c(function(){return 7!=I(S({},"a",{get:function(){return S(this,"a",{value:7}).a}})).a})?function(e,t,n){var r=E(B,t)
+r&&delete B[t],S(e,t,n),r&&e!==B&&S(B,t,r)}:S,W=function(e){var t=z[e]=I(P.prototype)
+return t._k=e,t},G=H&&"symbol"==typeof P.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof P},Y=function(e,t,n){return e===B&&Y(F,t,n),b(e),t=A(t,!0),b(n),i(z,t)?(n.enumerable?(i(e,N)&&e[N][t]&&(e[N][t]=!1),n=I(n,{enumerable:_(0,!1)})):(i(e,N)||S(e,N,_(1,{})),e[N][t]=!0),V(e,t,n)):S(e,t,n)},K=function(e,t){b(e)
+for(var n,r=v(t=C(t)),i=0,o=r.length;o>i;)Y(e,n=r[i++],t[n])
+return e},Q=function(e,t){return void 0===t?I(e):K(I(e),t)},Z=function(e){var t=L.call(this,e=A(e,!0))
+return!(this===B&&i(z,e)&&!i(F,e))&&(!(t||!i(this,e)||!i(z,e)||i(this,N)&&this[N][e])||t)},X=function(e,t){if(e=C(e),t=A(t,!0),e!==B||!i(z,t)||i(F,t)){var n=E(e,t)
+return!n||!i(z,t)||i(e,N)&&e[N][t]||(n.enumerable=!0),n}},J=function(e){for(var t,n=T(C(e)),r=[],o=0;n.length>o;)i(z,t=n[o++])||t==N||t==u||r.push(t)
+return r},$=function(e){for(var t,n=e===B,r=T(n?F:C(e)),o=[],s=0;r.length>s;)!i(z,t=r[s++])||n&&!i(B,t)||o.push(z[t])
+return o}
+H||(P=function(){if(this instanceof P)throw TypeError("Symbol is not a constructor!")
+var e=d(arguments.length>0?arguments[0]:void 0),t=function(n){this===B&&t.call(F,n),i(this,N)&&i(this[N],e)&&(this[N][e]=!1),V(this,e,_(1,n))}
+return o&&q&&V(B,e,{configurable:!0,set:t}),W(e)},a(P.prototype,"toString",function(){return this._k}),x.f=X,k.f=Y,e(77).f=w.f=J,e(82).f=Z,e(78).f=$,o&&!e(60)&&a(B,"propertyIsEnumerable",Z,!0),f.f=function(e){return W(p(e))}),s(s.G+s.W+s.F*!H,{Symbol:P})
+for(var ee="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),te=0;ee.length>te;)p(ee[te++])
+for(var ne=j(p.store),re=0;ne.length>re;)g(ne[re++])
+s(s.S+s.F*!H,"Symbol",{for:function(e){return i(D,e+="")?D[e]:D[e]=P(e)},keyFor:function(e){if(G(e))return m(D,e)
+throw TypeError(e+" is not a symbol!")},useSetter:function(){q=!0},useSimple:function(){q=!1}}),s(s.S+s.F*!H,"Object",{create:Q,defineProperty:Y,defineProperties:K,getOwnPropertyDescriptor:X,getOwnPropertyNames:J,getOwnPropertySymbols:$}),O&&s(s.S+s.F*(!H||c(function(){var e=P()
+return"[null]"!=R([e])||"{}"!=R({a:e})||"{}"!=R(Object(e))})),"JSON",{stringify:function(e){if(void 0!==e&&!G(e)){for(var t,n,r=[e],i=1;arguments.length>i;)r.push(arguments[i++])
+return t=r[1],"function"==typeof t&&(n=t),!n&&y(t)||(t=function(e,t){if(n&&(t=n.call(this,e,t)),!G(t))return t}),r[1]=t,R.apply(O,r)}}}),P.prototype[M]||e(42)(P.prototype,M,P.prototype.valueOf),h(P,"Symbol"),h(Math,"Math",!0),h(r.JSON,"JSON",!0)},{101:101,103:103,117:117,120:120,124:124,126:126,127:127,128:128,29:29,32:32,33:33,35:35,40:40,41:41,42:42,49:49,59:59,60:60,66:66,7:7,71:71,72:72,75:75,76:76,77:77,78:78,81:81,82:82,92:92,94:94}],255:[function(e,t,n){"use strict"
+var r=e(33),i=e(123),o=e(122),s=e(7),a=e(114),u=e(118),c=e(51),l=e(40).ArrayBuffer,h=e(104),d=o.ArrayBuffer,p=o.DataView,f=i.ABV&&l.isView,g=d.prototype.slice,m=i.VIEW
+r(r.G+r.W+r.F*(l!==d),{ArrayBuffer:d}),r(r.S+r.F*!i.CONSTR,"ArrayBuffer",{isView:function(e){return f&&f(e)||c(e)&&m in e}}),r(r.P+r.U+r.F*e(35)(function(){return!new d(2).slice(1,void 0).byteLength}),"ArrayBuffer",{slice:function(e,t){if(void 0!==g&&void 0===t)return g.call(s(this),e)
+for(var n=s(this).byteLength,r=a(e,n),i=a(void 0===t?n:t,n),o=new(h(this,d))(u(i-r)),c=new p(this),l=new p(o),f=0;r<i;)l.setUint8(f++,c.getUint8(r++))
+return o}}),e(100)("ArrayBuffer")},{100:100,104:104,114:114,118:118,122:122,123:123,33:33,35:35,40:40,51:51,7:7}],256:[function(e,t,n){var r=e(33)
+r(r.G+r.W+r.F*!e(123).ABV,{DataView:e(122).DataView})},{122:122,123:123,33:33}],257:[function(e,t,n){e(121)("Float32",4,function(e){return function(t,n,r){return e(this,t,n,r)}})},{121:121}],258:[function(e,t,n){e(121)("Float64",8,function(e){return function(t,n,r){return e(this,t,n,r)}})},{121:121}],259:[function(e,t,n){e(121)("Int16",2,function(e){return function(t,n,r){return e(this,t,n,r)}})},{121:121}],260:[function(e,t,n){e(121)("Int32",4,function(e){return function(t,n,r){return e(this,t,n,r)}})},{121:121}],261:[function(e,t,n){e(121)("Int8",1,function(e){return function(t,n,r){return e(this,t,n,r)}})},{121:121}],262:[function(e,t,n){e(121)("Uint16",2,function(e){return function(t,n,r){return e(this,t,n,r)}})},{121:121}],263:[function(e,t,n){e(121)("Uint32",4,function(e){return function(t,n,r){return e(this,t,n,r)}})},{121:121}],264:[function(e,t,n){e(121)("Uint8",1,function(e){return function(t,n,r){return e(this,t,n,r)}})},{121:121}],265:[function(e,t,n){e(121)("Uint8",1,function(e){return function(t,n,r){return e(this,t,n,r)}},!0)},{121:121}],266:[function(e,t,n){"use strict"
+var r,i=e(12)(0),o=e(94),s=e(66),a=e(70),u=e(21),c=e(51),l=e(35),h=e(125),d=s.getWeak,p=Object.isExtensible,f=u.ufstore,g={},m=function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},v={get:function(e){if(c(e)){var t=d(e)
+return!0===t?f(h(this,"WeakMap")).get(e):t?t[this._i]:void 0}},set:function(e,t){return u.def(h(this,"WeakMap"),e,t)}},y=t.exports=e(22)("WeakMap",m,v,u,!0,!0)
+l(function(){return 7!=(new y).set((Object.freeze||Object)(g),7).get(g)})&&(r=u.getConstructor(m,"WeakMap"),a(r.prototype,v),s.NEED=!0,i(["delete","has","get","set"],function(e){var t=y.prototype,n=t[e]
+o(t,e,function(t,i){if(c(t)&&!p(t)){this._f||(this._f=new r)
+var o=this._f[e](t,i)
+return"set"==e?this:o}return n.call(this,t,i)})}))},{12:12,125:125,21:21,22:22,35:35,51:51,66:66,70:70,94:94}],267:[function(e,t,n){"use strict"
+var r=e(21),i=e(125)
+e(22)("WeakSet",function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},{add:function(e){return r.def(i(this,"WeakSet"),e,!0)}},r,!1,!0)},{125:125,21:21,22:22}],268:[function(e,t,n){"use strict"
+var r=e(33),i=e(38),o=e(119),s=e(118),a=e(3),u=e(15)
+r(r.P,"Array",{flatMap:function(e){var t,n,r=o(this)
+return a(e),t=s(r.length),n=u(r,0),i(n,r,r,t,0,1,e,arguments[1]),n}}),e(5)("flatMap")},{118:118,119:119,15:15,3:3,33:33,38:38,5:5}],269:[function(e,t,n){"use strict"
+var r=e(33),i=e(38),o=e(119),s=e(118),a=e(116),u=e(15)
+r(r.P,"Array",{flatten:function(){var e=arguments[0],t=o(this),n=s(t.length),r=u(t,0)
+return i(r,t,t,n,0,void 0===e?1:a(e)),r}}),e(5)("flatten")},{116:116,118:118,119:119,15:15,33:33,38:38,5:5}],270:[function(e,t,n){"use strict"
+var r=e(33),i=e(11)(!0)
+r(r.P,"Array",{includes:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}}),e(5)("includes")},{11:11,33:33,5:5}],271:[function(e,t,n){var r=e(33),i=e(68)(),o=e(40).process,s="process"==e(18)(o)
+r(r.G,{asap:function(e){var t=s&&o.domain
+i(t?t.bind(e):e)}})},{18:18,33:33,40:40,68:68}],272:[function(e,t,n){var r=e(33),i=e(18)
+r(r.S,"Error",{isError:function(e){return"Error"===i(e)}})},{18:18,33:33}],273:[function(e,t,n){var r=e(33)
+r(r.G,{global:e(40)})},{33:33,40:40}],274:[function(e,t,n){e(97)("Map")},{97:97}],275:[function(e,t,n){e(98)("Map")},{98:98}],276:[function(e,t,n){var r=e(33)
+r(r.P+r.R,"Map",{toJSON:e(20)("Map")})},{20:20,33:33}],277:[function(e,t,n){var r=e(33)
+r(r.S,"Math",{clamp:function(e,t,n){return Math.min(n,Math.max(t,e))}})},{33:33}],278:[function(e,t,n){var r=e(33)
+r(r.S,"Math",{DEG_PER_RAD:Math.PI/180})},{33:33}],279:[function(e,t,n){var r=e(33),i=180/Math.PI
+r(r.S,"Math",{degrees:function(e){return e*i}})},{33:33}],280:[function(e,t,n){var r=e(33),i=e(64),o=e(62)
+r(r.S,"Math",{fscale:function(e,t,n,r,s){return o(i(e,t,n,r,s))}})},{33:33,62:62,64:64}],281:[function(e,t,n){var r=e(33)
+r(r.S,"Math",{iaddh:function(e,t,n,r){var i=e>>>0,o=t>>>0,s=n>>>0
+return o+(r>>>0)+((i&s|(i|s)&~(i+s>>>0))>>>31)|0}})},{33:33}],282:[function(e,t,n){var r=e(33)
+r(r.S,"Math",{imulh:function(e,t){var n=+e,r=+t,i=65535&n,o=65535&r,s=n>>16,a=r>>16,u=(s*o>>>0)+(i*o>>>16)
+return s*a+(u>>16)+((i*a>>>0)+(65535&u)>>16)}})},{33:33}],283:[function(e,t,n){var r=e(33)
+r(r.S,"Math",{isubh:function(e,t,n,r){var i=e>>>0,o=t>>>0,s=n>>>0
+return o-(r>>>0)-((~i&s|~(i^s)&i-s>>>0)>>>31)|0}})},{33:33}],284:[function(e,t,n){var r=e(33)
+r(r.S,"Math",{RAD_PER_DEG:180/Math.PI})},{33:33}],285:[function(e,t,n){var r=e(33),i=Math.PI/180
+r(r.S,"Math",{radians:function(e){return e*i}})},{33:33}],286:[function(e,t,n){var r=e(33)
+r(r.S,"Math",{scale:e(64)})},{33:33,64:64}],287:[function(e,t,n){var r=e(33)
+r(r.S,"Math",{signbit:function(e){return(e=+e)!=e?e:0==e?1/e==1/0:e>0}})},{33:33}],288:[function(e,t,n){var r=e(33)
+r(r.S,"Math",{umulh:function(e,t){var n=+e,r=+t,i=65535&n,o=65535&r,s=n>>>16,a=r>>>16,u=(s*o>>>0)+(i*o>>>16)
+return s*a+(u>>>16)+((i*a>>>0)+(65535&u)>>>16)}})},{33:33}],289:[function(e,t,n){"use strict"
+var r=e(33),i=e(119),o=e(3),s=e(72)
+e(29)&&r(r.P+e(74),"Object",{__defineGetter__:function(e,t){s.f(i(this),e,{get:o(t),enumerable:!0,configurable:!0})}})},{119:119,29:29,3:3,33:33,72:72,74:74}],290:[function(e,t,n){"use strict"
+var r=e(33),i=e(119),o=e(3),s=e(72)
+e(29)&&r(r.P+e(74),"Object",{__defineSetter__:function(e,t){s.f(i(this),e,{set:o(t),enumerable:!0,configurable:!0})}})},{119:119,29:29,3:3,33:33,72:72,74:74}],291:[function(e,t,n){var r=e(33),i=e(84)(!0)
+r(r.S,"Object",{entries:function(e){return i(e)}})},{33:33,84:84}],292:[function(e,t,n){var r=e(33),i=e(85),o=e(117),s=e(75),a=e(24)
+r(r.S,"Object",{getOwnPropertyDescriptors:function(e){for(var t,n,r=o(e),u=s.f,c=i(r),l={},h=0;c.length>h;)void 0!==(n=u(r,t=c[h++]))&&a(l,t,n)
+return l}})},{117:117,24:24,33:33,75:75,85:85}],293:[function(e,t,n){"use strict"
+var r=e(33),i=e(119),o=e(120),s=e(79),a=e(75).f
+e(29)&&r(r.P+e(74),"Object",{__lookupGetter__:function(e){var t,n=i(this),r=o(e,!0)
+do{if(t=a(n,r))return t.get}while(n=s(n))}})},{119:119,120:120,29:29,33:33,74:74,75:75,79:79}],294:[function(e,t,n){"use strict"
+var r=e(33),i=e(119),o=e(120),s=e(79),a=e(75).f
+e(29)&&r(r.P+e(74),"Object",{__lookupSetter__:function(e){var t,n=i(this),r=o(e,!0)
+do{if(t=a(n,r))return t.set}while(n=s(n))}})},{119:119,120:120,29:29,33:33,74:74,75:75,79:79}],295:[function(e,t,n){var r=e(33),i=e(84)(!1)
+r(r.S,"Object",{values:function(e){return i(e)}})},{33:33,84:84}],296:[function(e,t,n){"use strict"
+var r=e(33),i=e(40),o=e(23),s=e(68)(),a=e(128)("observable"),u=e(3),c=e(7),l=e(6),h=e(93),d=e(42),p=e(39),f=p.RETURN,g=function(e){return null==e?void 0:u(e)},m=function(e){var t=e._c
+t&&(e._c=void 0,t())},v=function(e){return void 0===e._o},y=function(e){v(e)||(e._o=void 0,m(e))},b=function(e,t){c(e),this._c=void 0,this._o=e,e=new C(this)
+try{var n=t(e),r=n
+null!=n&&("function"==typeof n.unsubscribe?n=function(){r.unsubscribe()}:u(n),this._c=n)}catch(t){return void e.error(t)}v(this)&&m(this)}
+b.prototype=h({},{unsubscribe:function(){y(this)}})
+var C=function(e){this._s=e}
+C.prototype=h({},{next:function(e){var t=this._s
+if(!v(t)){var n=t._o
+try{var r=g(n.next)
+if(r)return r.call(n,e)}catch(e){try{y(t)}finally{throw e}}}},error:function(e){var t=this._s
+if(v(t))throw e
+var n=t._o
+t._o=void 0
+try{var r=g(n.error)
+if(!r)throw e
+e=r.call(n,e)}catch(e){try{m(t)}finally{throw e}}return m(t),e},complete:function(e){var t=this._s
+if(!v(t)){var n=t._o
+t._o=void 0
+try{var r=g(n.complete)
+e=r?r.call(n,e):void 0}catch(e){try{m(t)}finally{throw e}}return m(t),e}}})
+var A=function(e){l(this,A,"Observable","_f")._f=u(e)}
+h(A.prototype,{subscribe:function(e){return new b(e,this._f)},forEach:function(e){var t=this
+return new(o.Promise||i.Promise)(function(n,r){u(e)
+var i=t.subscribe({next:function(t){try{return e(t)}catch(e){r(e),i.unsubscribe()}},error:r,complete:n})})}}),h(A,{from:function(e){var t="function"==typeof this?this:A,n=g(c(e)[a])
+if(n){var r=c(n.call(e))
+return r.constructor===t?r:new t(function(e){return r.subscribe(e)})}return new t(function(t){var n=!1
+return s(function(){if(!n){try{if(p(e,!1,function(e){if(t.next(e),n)return f})===f)return}catch(e){if(n)throw e
+return void t.error(e)}t.complete()}}),function(){n=!0}})},of:function(){for(var e=0,t=arguments.length,n=Array(t);e<t;)n[e]=arguments[e++]
+return new("function"==typeof this?this:A)(function(e){var t=!1
+return s(function(){if(!t){for(var r=0;r<n.length;++r)if(e.next(n[r]),t)return
+e.complete()}}),function(){t=!0}})}}),d(A.prototype,a,function(){return this}),r(r.G,{Observable:A}),e(100)("Observable")},{100:100,128:128,23:23,3:3,33:33,39:39,40:40,42:42,6:6,68:68,7:7,93:93}],297:[function(e,t,n){"use strict"
+var r=e(33),i=e(23),o=e(40),s=e(104),a=e(91)
+r(r.P+r.R,"Promise",{finally:function(e){var t=s(this,i.Promise||o.Promise),n="function"==typeof e
+return this.then(n?function(n){return a(t,e()).then(function(){return n})}:e,n?function(n){return a(t,e()).then(function(){throw n})}:e)}})},{104:104,23:23,33:33,40:40,91:91}],298:[function(e,t,n){"use strict"
+var r=e(33),i=e(69),o=e(90)
+r(r.S,"Promise",{try:function(e){var t=i.f(this),n=o(e)
+return(n.e?t.reject:t.resolve)(n.v),t.promise}})},{33:33,69:69,90:90}],299:[function(e,t,n){var r=e(67),i=e(7),o=r.key,s=r.set
+r.exp({defineMetadata:function(e,t,n,r){s(e,t,i(n),o(r))}})},{67:67,7:7}],300:[function(e,t,n){var r=e(67),i=e(7),o=r.key,s=r.map,a=r.store
+r.exp({deleteMetadata:function(e,t){var n=arguments.length<3?void 0:o(arguments[2]),r=s(i(t),n,!1)
+if(void 0===r||!r.delete(e))return!1
+if(r.size)return!0
+var u=a.get(t)
+return u.delete(n),!!u.size||a.delete(t)}})},{67:67,7:7}],301:[function(e,t,n){var r=e(231),i=e(10),o=e(67),s=e(7),a=e(79),u=o.keys,c=o.key,l=function(e,t){var n=u(e,t),o=a(e)
+if(null===o)return n
+var s=l(o,t)
+return s.length?n.length?i(new r(n.concat(s))):s:n}
+o.exp({getMetadataKeys:function(e){return l(s(e),arguments.length<2?void 0:c(arguments[1]))}})},{10:10,231:231,67:67,7:7,79:79}],302:[function(e,t,n){var r=e(67),i=e(7),o=e(79),s=r.has,a=r.get,u=r.key,c=function(e,t,n){if(s(e,t,n))return a(e,t,n)
+var r=o(t)
+return null!==r?c(e,r,n):void 0}
+r.exp({getMetadata:function(e,t){return c(e,i(t),arguments.length<3?void 0:u(arguments[2]))}})},{67:67,7:7,79:79}],303:[function(e,t,n){var r=e(67),i=e(7),o=r.keys,s=r.key
+r.exp({getOwnMetadataKeys:function(e){return o(i(e),arguments.length<2?void 0:s(arguments[1]))}})},{67:67,7:7}],304:[function(e,t,n){var r=e(67),i=e(7),o=r.get,s=r.key
+r.exp({getOwnMetadata:function(e,t){return o(e,i(t),arguments.length<3?void 0:s(arguments[2]))}})},{67:67,7:7}],305:[function(e,t,n){var r=e(67),i=e(7),o=e(79),s=r.has,a=r.key,u=function(e,t,n){if(s(e,t,n))return!0
+var r=o(t)
+return null!==r&&u(e,r,n)}
+r.exp({hasMetadata:function(e,t){return u(e,i(t),arguments.length<3?void 0:a(arguments[2]))}})},{67:67,7:7,79:79}],306:[function(e,t,n){var r=e(67),i=e(7),o=r.has,s=r.key
+r.exp({hasOwnMetadata:function(e,t){return o(e,i(t),arguments.length<3?void 0:s(arguments[2]))}})},{67:67,7:7}],307:[function(e,t,n){var r=e(67),i=e(7),o=e(3),s=r.key,a=r.set
+r.exp({metadata:function(e,t){return function(n,r){a(e,t,(void 0!==r?i:o)(n),s(r))}}})},{3:3,67:67,7:7}],308:[function(e,t,n){e(97)("Set")},{97:97}],309:[function(e,t,n){e(98)("Set")},{98:98}],310:[function(e,t,n){var r=e(33)
+r(r.P+r.R,"Set",{toJSON:e(20)("Set")})},{20:20,33:33}],311:[function(e,t,n){"use strict"
+var r=e(33),i=e(106)(!0)
+r(r.P,"String",{at:function(e){return i(this,e)}})},{106:106,33:33}],312:[function(e,t,n){"use strict"
+var r=e(33),i=e(28),o=e(118),s=e(52),a=e(37),u=RegExp.prototype,c=function(e,t){this._r=e,this._s=t}
+e(54)(c,"RegExp String",function(){var e=this._r.exec(this._s)
+return{value:e,done:null===e}}),r(r.P,"String",{matchAll:function(e){if(i(this),!s(e))throw TypeError(e+" is not a regexp!")
+var t=String(this),n="flags"in u?String(e.flags):a.call(e),r=new RegExp(e.source,~n.indexOf("g")?n:"g"+n)
+return r.lastIndex=o(e.lastIndex),new c(r,t)}})},{118:118,28:28,33:33,37:37,52:52,54:54}],313:[function(e,t,n){"use strict"
+var r=e(33),i=e(109)
+r(r.P,"String",{padEnd:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0,!1)}})},{109:109,33:33}],314:[function(e,t,n){"use strict"
+var r=e(33),i=e(109)
+r(r.P,"String",{padStart:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0,!0)}})},{109:109,33:33}],315:[function(e,t,n){"use strict"
+e(111)("trimLeft",function(e){return function(){return e(this,1)}},"trimStart")},{111:111}],316:[function(e,t,n){"use strict"
+e(111)("trimRight",function(e){return function(){return e(this,2)}},"trimEnd")},{111:111}],317:[function(e,t,n){e(126)("asyncIterator")},{126:126}],318:[function(e,t,n){e(126)("observable")},{126:126}],319:[function(e,t,n){var r=e(33)
+r(r.S,"System",{global:e(40)})},{33:33,40:40}],320:[function(e,t,n){e(97)("WeakMap")},{97:97}],321:[function(e,t,n){e(98)("WeakMap")},{98:98}],322:[function(e,t,n){e(97)("WeakSet")},{97:97}],323:[function(e,t,n){e(98)("WeakSet")},{98:98}],324:[function(e,t,n){for(var r=e(141),i=e(81),o=e(94),s=e(40),a=e(42),u=e(58),c=e(128),l=c("iterator"),h=c("toStringTag"),d=u.Array,p={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},f=i(p),g=0;g<f.length;g++){var m,v=f[g],y=p[v],b=s[v],C=b&&b.prototype
+if(C&&(C[l]||a(C,l,d),C[h]||a(C,h,v),u[v]=d,y))for(m in r)C[m]||o(C,m,r[m],!0)}},{128:128,141:141,40:40,42:42,58:58,81:81,94:94}],325:[function(e,t,n){var r=e(33),i=e(113)
+r(r.G+r.B,{setImmediate:i.set,clearImmediate:i.clear})},{113:113,33:33}],326:[function(e,t,n){var r=e(40),i=e(33),o=e(46),s=e(88),a=r.navigator,u=!!a&&/MSIE .\./.test(a.userAgent),c=function(e){return u?function(t,n){return e(o(s,[].slice.call(arguments,2),"function"==typeof t?t:Function(t)),n)}:e}
+i(i.G+i.B+i.F*u,{setTimeout:c(r.setTimeout),setInterval:c(r.setInterval)})},{33:33,40:40,46:46,88:88}],327:[function(e,t,n){e(254),e(191),e(193),e(192),e(195),e(197),e(202),e(196),e(194),e(204),e(203),e(199),e(200),e(198),e(190),e(201),e(205),e(206),e(157),e(159),e(158),e(208),e(207),e(178),e(188),e(189),e(179),e(180),e(181),e(182)
+e(183),e(184),e(185),e(186),e(187),e(161),e(162),e(163),e(164),e(165),e(166),e(167),e(168),e(169),e(170),e(171),e(172),e(173),e(174),e(175),e(176),e(177),e(241),e(246),e(253),e(244),e(236),e(237),e(242),e(247)
+e(249),e(232),e(233),e(234),e(235),e(238),e(239),e(240),e(243),e(245),e(248),e(250),e(251),e(252),e(152),e(154),e(153),e(156),e(155),e(140),e(138),e(145),e(142),e(148),e(150),e(137),e(144),e(134),e(149),e(132)
+e(147),e(146),e(139),e(143),e(131),e(133),e(136),e(135),e(151),e(141),e(224),e(230),e(225),e(226),e(227),e(228),e(229),e(209),e(160),e(231),e(266),e(267),e(255),e(256),e(261),e(264),e(265),e(259),e(262),e(260)
+e(263),e(257),e(258),e(210),e(211),e(212),e(213),e(214),e(217),e(215),e(216),e(218),e(219),e(220),e(221),e(223),e(222),e(270),e(268),e(269),e(311),e(314),e(313),e(315),e(316),e(312),e(317),e(318),e(292),e(295)
+e(291),e(289),e(290),e(293),e(294),e(276),e(310),e(275),e(309),e(321),e(323),e(274),e(308),e(320),e(322),e(273),e(319),e(272),e(277),e(278),e(279),e(280),e(281),e(283),e(282),e(284),e(285),e(286),e(288),e(287)
+e(297),e(298),e(299),e(300),e(302),e(301),e(304),e(303),e(305),e(306),e(307),e(271),e(296),e(326),e(325),e(324),t.exports=e(23)},{131:131,132:132,133:133,134:134,135:135,136:136,137:137,138:138,139:139,140:140,141:141,142:142,143:143,144:144,145:145,146:146,147:147,148:148,149:149,150:150,151:151,152:152,153:153,154:154,155:155,156:156,157:157,158:158,159:159,160:160,161:161,162:162,163:163,164:164,165:165,166:166,167:167,168:168,169:169,170:170,171:171,172:172,173:173,174:174,175:175,176:176,177:177,178:178,179:179,180:180,181:181,182:182,183:183,184:184,185:185,186:186,187:187,188:188,189:189,190:190,191:191,192:192,193:193,194:194,195:195,196:196,197:197,198:198,199:199,200:200,201:201,202:202,203:203,204:204,205:205,206:206,207:207,208:208,209:209,210:210,211:211,212:212,213:213,214:214,215:215,216:216,217:217,218:218,219:219,220:220,221:221,222:222,223:223,224:224,225:225,226:226,227:227,228:228,229:229,23:23,230:230,231:231,232:232,233:233,234:234,235:235,236:236,237:237,238:238,239:239,240:240,241:241,242:242,243:243,244:244,245:245,246:246,247:247,248:248,249:249,250:250,251:251,252:252,253:253,254:254,255:255,256:256,257:257,258:258,259:259,260:260,261:261,262:262,263:263,264:264,265:265,266:266,267:267,268:268,269:269,270:270,271:271,272:272,273:273,274:274,275:275,276:276,277:277,278:278,279:279,280:280,281:281,282:282,283:283,284:284,285:285,286:286,287:287,288:288,289:289,290:290,291:291,292:292,293:293,294:294,295:295,296:296,297:297,298:298,299:299,300:300,301:301,302:302,303:303,304:304,305:305,306:306,307:307,308:308,309:309,310:310,311:311,312:312,313:313,314:314,315:315,316:316,317:317,318:318,319:319,320:320,321:321,322:322,323:323,324:324,325:325,326:326}],328:[function(e,t,n){(function(e){!function(e){"use strict"
+function n(e,t,n,r){var o=t&&t.prototype instanceof i?t:i,s=Object.create(o.prototype),a=new p(r||[])
+return s._invoke=c(e,n,a),s}function r(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}function i(){}function o(){}function s(){}function a(e){["next","throw","return"].forEach(function(t){e[t]=function(e){return this._invoke(t,e)}})}function u(t){function n(e,i,o,s){var a=r(t[e],t,i)
+if("throw"!==a.type){var u=a.arg,c=u.value
+return c&&"object"==typeof c&&y.call(c,"__await")?Promise.resolve(c.__await).then(function(e){n("next",e,o,s)},function(e){n("throw",e,o,s)}):Promise.resolve(c).then(function(e){u.value=e,o(u)},s)}s(a.arg)}function i(e,t){function r(){return new Promise(function(r,i){n(e,t,r,i)})}return o=o?o.then(r,r):r()}"object"==typeof e.process&&e.process.domain&&(n=e.process.domain.bind(n))
+var o
+this._invoke=i}function c(e,t,n){var i=x
+return function(o,s){if(i===j)throw new Error("Generator is already running")
+if(i===E){if("throw"===o)throw s
+return g()}for(n.method=o,n.arg=s;;){var a=n.delegate
+if(a){var u=l(a,n)
+if(u){if(u===S)continue
+return u}}if("next"===n.method)n.sent=n._sent=n.arg
+else if("throw"===n.method){if(i===x)throw i=E,n.arg
+n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg)
+i=j
+var c=r(e,t,n)
+if("normal"===c.type){if(i=n.done?E:k,c.arg===S)continue
+return{value:c.arg,done:n.done}}"throw"===c.type&&(i=E,n.method="throw",n.arg=c.arg)}}}function l(e,t){var n=e.iterator[t.method]
+if(n===m){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=m,l(e,t),"throw"===t.method))return S
+t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return S}var i=r(n,e.iterator,t.arg)
+if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,S
+var o=i.arg
+return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=m),t.delegate=null,S):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,S)}function h(e){var t={tryLoc:e[0]}
+1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function d(e){var t=e.completion||{}
+t.type="normal",delete t.arg,e.completion=t}function p(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(h,this),this.reset(!0)}function f(e){if(e){var t=e[C]
+if(t)return t.call(e)
+if("function"==typeof e.next)return e
+if(!isNaN(e.length)){var n=-1,r=function t(){for(;++n<e.length;)if(y.call(e,n))return t.value=e[n],t.done=!1,t
+return t.value=m,t.done=!0,t}
+return r.next=r}}return{next:g}}function g(){return{value:m,done:!0}}var m,v=Object.prototype,y=v.hasOwnProperty,b="function"==typeof Symbol?Symbol:{},C=b.iterator||"@@iterator",A=b.asyncIterator||"@@asyncIterator",_=b.toStringTag||"@@toStringTag",I="object"==typeof t,w=e.regeneratorRuntime
+if(w)return void(I&&(t.exports=w))
+w=e.regeneratorRuntime=I?t.exports:{},w.wrap=n
+var x="suspendedStart",k="suspendedYield",j="executing",E="completed",S={},T={}
+T[C]=function(){return this}
+var P=Object.getPrototypeOf,O=P&&P(P(f([])))
+O&&O!==v&&y.call(O,C)&&(T=O)
+var R=s.prototype=i.prototype=Object.create(T)
+o.prototype=R.constructor=s,s.constructor=o,s[_]=o.displayName="GeneratorFunction",w.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor
+return!!t&&(t===o||"GeneratorFunction"===(t.displayName||t.name))},w.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,_ in e||(e[_]="GeneratorFunction")),e.prototype=Object.create(R),e},w.awrap=function(e){return{__await:e}},a(u.prototype),u.prototype[A]=function(){return this},w.AsyncIterator=u,w.async=function(e,t,r,i){var o=new u(n(e,t,r,i))
+return w.isGeneratorFunction(t)?o:o.next().then(function(e){return e.done?e.value:o.next()})},a(R),R[_]="Generator",R[C]=function(){return this},R.toString=function(){return"[object Generator]"},w.keys=function(e){var t=[]
+for(var n in e)t.push(n)
+return t.reverse(),function n(){for(;t.length;){var r=t.pop()
+if(r in e)return n.value=r,n.done=!1,n}return n.done=!0,n}},w.values=f,p.prototype={constructor:p,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=m,this.done=!1,this.delegate=null,this.method="next",this.arg=m,this.tryEntries.forEach(d),!e)for(var t in this)"t"===t.charAt(0)&&y.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=m)},stop:function(){this.done=!0
+var e=this.tryEntries[0],t=e.completion
+if("throw"===t.type)throw t.arg
+return this.rval},dispatchException:function(e){function t(t,r){return o.type="throw",o.arg=e,n.next=t,r&&(n.method="next",n.arg=m),!!r}if(this.done)throw e
+for(var n=this,r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r],o=i.completion
+if("root"===i.tryLoc)return t("end")
+if(i.tryLoc<=this.prev){var s=y.call(i,"catchLoc"),a=y.call(i,"finallyLoc")
+if(s&&a){if(this.prev<i.catchLoc)return t(i.catchLoc,!0)
+if(this.prev<i.finallyLoc)return t(i.finallyLoc)}else if(s){if(this.prev<i.catchLoc)return t(i.catchLoc,!0)}else{if(!a)throw new Error("try statement without catch or finally")
+if(this.prev<i.finallyLoc)return t(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n]
+if(r.tryLoc<=this.prev&&y.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var i=r
+break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null)
+var o=i?i.completion:{}
+return o.type=e,o.arg=t,i?(this.method="next",this.next=i.finallyLoc,S):this.complete(o)},complete:function(e,t){if("throw"===e.type)throw e.arg
+return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),S},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t]
+if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),d(n),S}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t]
+if(n.tryLoc===e){var r=n.completion
+if("throw"===r.type){var i=r.arg
+d(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:f(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=m),S}}}("object"==typeof e?e:"object"==typeof window?window:"object"==typeof self?self:this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1]),function(e,t){"use strict"
+"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document")
+return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){"use strict"
+function n(e,t,n){t=t||se
+var r,i=t.createElement("script")
+if(i.text=e,n)for(r in Ce)n[r]&&(i[r]=n[r])
+t.head.appendChild(i).parentNode.removeChild(i)}function r(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?de[pe.call(e)]||"object":typeof e}function i(e){var t=!!e&&"length"in e&&e.length,n=r(e)
+return!ye(e)&&!be(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}function o(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}function s(e,t,n){return ye(t)?Ae.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?Ae.grep(e,function(e){return e===t!==n}):"string"!=typeof t?Ae.grep(e,function(e){return he.call(t,e)>-1!==n}):Ae.filter(t,e,n)}function a(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}function u(e){var t={}
+return Ae.each(e.match(Oe)||[],function(e,n){t[n]=!0}),t}function c(e){return e}function l(e){throw e}function h(e,t,n,r){var i
+try{e&&ye(i=e.promise)?i.call(e).done(t).fail(n):e&&ye(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}function d(){se.removeEventListener("DOMContentLoaded",d),e.removeEventListener("load",d),Ae.ready()}function p(e,t){return t.toUpperCase()}function f(e){return e.replace(Le,"ms-").replace(De,p)}function g(){this.expando=Ae.expando+g.uid++}function m(e){return"true"===e||"false"!==e&&("null"===e?null:e===+e+""?+e:He.test(e)?JSON.parse(e):e)}function v(e,t,n){var r
+if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Ue,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n=m(n)}catch(e){}Be.set(e,t,n)}else n=void 0
+return n}function y(e,t,n,r){var i,o,s=20,a=r?function(){return r.cur()}:function(){return Ae.css(e,t,"")},u=a(),c=n&&n[3]||(Ae.cssNumber[t]?"":"px"),l=(Ae.cssNumber[t]||"px"!==c&&+u)&&Ve.exec(Ae.css(e,t))
+if(l&&l[3]!==c){for(u/=2,c=c||l[3],l=+u||1;s--;)Ae.style(e,t,l+c),(1-o)*(1-(o=a()/u||.5))<=0&&(s=0),l/=o
+l*=2,Ae.style(e,t,l+c),n=n||[]}return n&&(l=+l||+u||0,i=n[1]?l+(n[1]+1)*n[2]:+n[2],r&&(r.unit=c,r.start=l,r.end=i)),i}function b(e){var t,n=e.ownerDocument,r=e.nodeName,i=Ke[r]
+return i||(t=n.body.appendChild(n.createElement(r)),i=Ae.css(t,"display"),t.parentNode.removeChild(t),"none"===i&&(i="block"),Ke[r]=i,i)}function C(e,t){for(var n,r,i=[],o=0,s=e.length;o<s;o++)r=e[o],r.style&&(n=r.style.display,t?("none"===n&&(i[o]=Fe.get(r,"display")||null,i[o]||(r.style.display="")),""===r.style.display&&Ge(r)&&(i[o]=b(r))):"none"!==n&&(i[o]="none",Fe.set(r,"display",n)))
+for(o=0;o<s;o++)null!=i[o]&&(e[o].style.display=i[o])
+return e}function A(e,t){var n
+return n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&o(e,t)?Ae.merge([e],n):n}function _(e,t){for(var n=0,r=e.length;n<r;n++)Fe.set(e[n],"globalEval",!t||Fe.get(t[n],"globalEval"))}function I(e,t,n,i,o){for(var s,a,u,c,l,h,d=t.createDocumentFragment(),p=[],f=0,g=e.length;f<g;f++)if((s=e[f])||0===s)if("object"===r(s))Ae.merge(p,s.nodeType?[s]:s)
+else if($e.test(s)){for(a=a||d.appendChild(t.createElement("div")),u=(Ze.exec(s)||["",""])[1].toLowerCase(),c=Je[u]||Je._default,a.innerHTML=c[1]+Ae.htmlPrefilter(s)+c[2],h=c[0];h--;)a=a.lastChild
+Ae.merge(p,a.childNodes),a=d.firstChild,a.textContent=""}else p.push(t.createTextNode(s))
+for(d.textContent="",f=0;s=p[f++];)if(i&&Ae.inArray(s,i)>-1)o&&o.push(s)
+else if(l=Ae.contains(s.ownerDocument,s),a=A(d.appendChild(s),"script"),l&&_(a),n)for(h=0;s=a[h++];)Xe.test(s.type||"")&&n.push(s)
+return d}function w(){return!0}function x(){return!1}function k(){try{return se.activeElement}catch(e){}}function j(e,t,n,r,i,o){var s,a
+if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0)
+for(a in t)j(e,a,n,r,t[a],o)
+return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=x
+else if(!i)return e
+return 1===o&&(s=i,i=function(e){return Ae().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=Ae.guid++)),e.each(function(){Ae.event.add(this,t,i,r,n)})}function E(e,t){return o(e,"table")&&o(11!==t.nodeType?t:t.firstChild,"tr")?Ae(e).children("tbody")[0]||e:e}function S(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function T(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function P(e,t){var n,r,i,o,s,a,u,c
+if(1===t.nodeType){if(Fe.hasData(e)&&(o=Fe.access(e),s=Fe.set(t,o),c=o.events)){delete s.handle,s.events={}
+for(i in c)for(n=0,r=c[i].length;n<r;n++)Ae.event.add(t,i,c[i][n])}Be.hasData(e)&&(a=Be.access(e),u=Ae.extend({},a),Be.set(t,u))}}function O(e,t){var n=t.nodeName.toLowerCase()
+"input"===n&&Qe.test(e.type)?t.checked=e.checked:"input"!==n&&"textarea"!==n||(t.defaultValue=e.defaultValue)}function R(e,t,r,i){t=ce.apply([],t)
+var o,s,a,u,c,l,h=0,d=e.length,p=d-1,f=t[0],g=ye(f)
+if(g||d>1&&"string"==typeof f&&!ve.checkClone&&st.test(f))return e.each(function(n){var o=e.eq(n)
+g&&(t[0]=f.call(this,n,o.html())),R(o,t,r,i)})
+if(d&&(o=I(t,e[0].ownerDocument,!1,e,i),s=o.firstChild,1===o.childNodes.length&&(o=s),s||i)){for(a=Ae.map(A(o,"script"),S),u=a.length;h<d;h++)c=o,h!==p&&(c=Ae.clone(c,!0,!0),u&&Ae.merge(a,A(c,"script"))),r.call(e[h],c,h)
+if(u)for(l=a[a.length-1].ownerDocument,Ae.map(a,T),h=0;h<u;h++)c=a[h],Xe.test(c.type||"")&&!Fe.access(c,"globalEval")&&Ae.contains(l,c)&&(c.src&&"module"!==(c.type||"").toLowerCase()?Ae._evalUrl&&Ae._evalUrl(c.src):n(c.textContent.replace(at,""),l,c))}return e}function N(e,t,n){for(var r,i=t?Ae.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||Ae.cleanData(A(r)),r.parentNode&&(n&&Ae.contains(r.ownerDocument,r)&&_(A(r,"script")),r.parentNode.removeChild(r))
+return e}function M(e,t,n){var r,i,o,s,a=e.style
+return n=n||ct(e),n&&(s=n.getPropertyValue(t)||n[t],""!==s||Ae.contains(e.ownerDocument,e)||(s=Ae.style(e,t)),!ve.pixelBoxStyles()&&ut.test(s)&&lt.test(t)&&(r=a.width,i=a.minWidth,o=a.maxWidth,a.minWidth=a.maxWidth=a.width=s,s=n.width,a.width=r,a.minWidth=i,a.maxWidth=o)),void 0!==s?s+"":s}function L(e,t){return{get:function(){return e()?void delete this.get:(this.get=t).apply(this,arguments)}}}function D(e){if(e in mt)return e
+for(var t=e[0].toUpperCase()+e.slice(1),n=gt.length;n--;)if((e=gt[n]+t)in mt)return e}function z(e){var t=Ae.cssProps[e]
+return t||(t=Ae.cssProps[e]=D(e)||e),t}function F(e,t,n){var r=Ve.exec(t)
+return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function B(e,t,n,r,i,o){var s="width"===t?1:0,a=0,u=0
+if(n===(r?"border":"content"))return 0
+for(;s<4;s+=2)"margin"===n&&(u+=Ae.css(e,n+We[s],!0,i)),r?("content"===n&&(u-=Ae.css(e,"padding"+We[s],!0,i)),"margin"!==n&&(u-=Ae.css(e,"border"+We[s]+"Width",!0,i))):(u+=Ae.css(e,"padding"+We[s],!0,i),"padding"!==n?u+=Ae.css(e,"border"+We[s]+"Width",!0,i):a+=Ae.css(e,"border"+We[s]+"Width",!0,i))
+return!r&&o>=0&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-a-.5))),u}function H(e,t,n){var r=ct(e),i=M(e,t,r),o="border-box"===Ae.css(e,"boxSizing",!1,r),s=o
+if(ut.test(i)){if(!n)return i
+i="auto"}return s=s&&(ve.boxSizingReliable()||i===e.style[t]),("auto"===i||!parseFloat(i)&&"inline"===Ae.css(e,"display",!1,r))&&(i=e["offset"+t[0].toUpperCase()+t.slice(1)],s=!0),(i=parseFloat(i)||0)+B(e,t,n||(o?"border":"content"),s,r,i)+"px"}function U(e,t,n,r,i){return new U.prototype.init(e,t,n,r,i)}function q(){yt&&(!1===se.hidden&&e.requestAnimationFrame?e.requestAnimationFrame(q):e.setTimeout(q,Ae.fx.interval),Ae.fx.tick())}function V(){return e.setTimeout(function(){vt=void 0}),vt=Date.now()}function W(e,t){var n,r=0,i={height:e}
+for(t=t?1:0;r<4;r+=2-t)n=We[r],i["margin"+n]=i["padding"+n]=e
+return t&&(i.opacity=i.width=e),i}function G(e,t,n){for(var r,i=(Q.tweeners[t]||[]).concat(Q.tweeners["*"]),o=0,s=i.length;o<s;o++)if(r=i[o].call(n,t,e))return r}function Y(e,t,n){var r,i,o,s,a,u,c,l,h="width"in t||"height"in t,d=this,p={},f=e.style,g=e.nodeType&&Ge(e),m=Fe.get(e,"fxshow")
+n.queue||(s=Ae._queueHooks(e,"fx"),null==s.unqueued&&(s.unqueued=0,a=s.empty.fire,s.empty.fire=function(){s.unqueued||a()}),s.unqueued++,d.always(function(){d.always(function(){s.unqueued--,Ae.queue(e,"fx").length||s.empty.fire()})}))
+for(r in t)if(i=t[r],bt.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!m||void 0===m[r])continue
+g=!0}p[r]=m&&m[r]||Ae.style(e,r)}if((u=!Ae.isEmptyObject(t))||!Ae.isEmptyObject(p)){h&&1===e.nodeType&&(n.overflow=[f.overflow,f.overflowX,f.overflowY],c=m&&m.display,null==c&&(c=Fe.get(e,"display")),l=Ae.css(e,"display"),"none"===l&&(c?l=c:(C([e],!0),c=e.style.display||c,l=Ae.css(e,"display"),C([e]))),("inline"===l||"inline-block"===l&&null!=c)&&"none"===Ae.css(e,"float")&&(u||(d.done(function(){f.display=c}),null==c&&(l=f.display,c="none"===l?"":l)),f.display="inline-block")),n.overflow&&(f.overflow="hidden",d.always(function(){f.overflow=n.overflow[0],f.overflowX=n.overflow[1],f.overflowY=n.overflow[2]})),u=!1
+for(r in p)u||(m?"hidden"in m&&(g=m.hidden):m=Fe.access(e,"fxshow",{display:c}),o&&(m.hidden=!g),g&&C([e],!0),d.done(function(){g||C([e]),Fe.remove(e,"fxshow")
+for(r in p)Ae.style(e,r,p[r])})),u=G(g?m[r]:0,r,d),r in m||(m[r]=u.start,g&&(u.end=u.start,u.start=0))}}function K(e,t){var n,r,i,o,s
+for(n in e)if(r=f(n),i=t[r],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(s=Ae.cssHooks[r])&&"expand"in s){o=s.expand(o),delete e[r]
+for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}function Q(e,t,n){var r,i,o=0,s=Q.prefilters.length,a=Ae.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1
+for(var t=vt||V(),n=Math.max(0,c.startTime+c.duration-t),r=n/c.duration||0,o=1-r,s=0,u=c.tweens.length;s<u;s++)c.tweens[s].run(o)
+return a.notifyWith(e,[c,o,n]),o<1&&u?n:(u||a.notifyWith(e,[c,1,0]),a.resolveWith(e,[c]),!1)},c=a.promise({elem:e,props:Ae.extend({},t),opts:Ae.extend(!0,{specialEasing:{},easing:Ae.easing._default},n),originalProperties:t,originalOptions:n,startTime:vt||V(),duration:n.duration,tweens:[],createTween:function(t,n){var r=Ae.Tween(e,c.opts,t,n,c.opts.specialEasing[t]||c.opts.easing)
+return c.tweens.push(r),r},stop:function(t){var n=0,r=t?c.tweens.length:0
+if(i)return this
+for(i=!0;n<r;n++)c.tweens[n].run(1)
+return t?(a.notifyWith(e,[c,1,0]),a.resolveWith(e,[c,t])):a.rejectWith(e,[c,t]),this}}),l=c.props
+for(K(l,c.opts.specialEasing);o<s;o++)if(r=Q.prefilters[o].call(c,e,l,c.opts))return ye(r.stop)&&(Ae._queueHooks(c.elem,c.opts.queue).stop=r.stop.bind(r)),r
+return Ae.map(l,G,c),ye(c.opts.start)&&c.opts.start.call(e,c),c.progress(c.opts.progress).done(c.opts.done,c.opts.complete).fail(c.opts.fail).always(c.opts.always),Ae.fx.timer(Ae.extend(u,{elem:e,anim:c,queue:c.opts.queue})),c}function Z(e){return(e.match(Oe)||[]).join(" ")}function X(e){return e.getAttribute&&e.getAttribute("class")||""}function J(e){return Array.isArray(e)?e:"string"==typeof e?e.match(Oe)||[]:[]}function $(e,t,n,i){var o
+if(Array.isArray(t))Ae.each(t,function(t,r){n||Pt.test(e)?i(e,r):$(e+"["+("object"==typeof r&&null!=r?t:"")+"]",r,n,i)})
+else if(n||"object"!==r(t))i(e,t)
+else for(o in t)$(e+"["+o+"]",t[o],n,i)}function ee(e){return function(t,n){"string"!=typeof t&&(n=t,t="*")
+var r,i=0,o=t.toLowerCase().match(Oe)||[]
+if(ye(n))for(;r=o[i++];)"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function te(e,t,n,r){function i(a){var u
+return o[a]=!0,Ae.each(e[a]||[],function(e,a){var c=a(t,n,r)
+return"string"!=typeof c||s||o[c]?s?!(u=c):void 0:(t.dataTypes.unshift(c),i(c),!1)}),u}var o={},s=e===qt
+return i(t.dataTypes[0])||!o["*"]&&i("*")}function ne(e,t){var n,r,i=Ae.ajaxSettings.flatOptions||{}
+for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n])
+return r&&Ae.extend(!0,e,r),e}function re(e,t,n){for(var r,i,o,s,a=e.contents,u=e.dataTypes;"*"===u[0];)u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"))
+if(r)for(i in a)if(a[i]&&a[i].test(r)){u.unshift(i)
+break}if(u[0]in n)o=u[0]
+else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i
+break}s||(s=i)}o=o||s}if(o)return o!==u[0]&&u.unshift(o),n[o]}function ie(e,t,n,r){var i,o,s,a,u,c={},l=e.dataTypes.slice()
+if(l[1])for(s in e.converters)c[s.toLowerCase()]=e.converters[s]
+for(o=l.shift();o;)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=l.shift())if("*"===o)o=u
+else if("*"!==u&&u!==o){if(!(s=c[u+" "+o]||c["* "+o]))for(i in c)if(a=i.split(" "),a[1]===o&&(s=c[u+" "+a[0]]||c["* "+a[0]])){!0===s?s=c[i]:!0!==c[i]&&(o=a[0],l.unshift(a[1]))
+break}if(!0!==s)if(s&&e.throws)t=s(t)
+else try{t=s(t)}catch(e){return{state:"parsererror",error:s?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}var oe=[],se=e.document,ae=Object.getPrototypeOf,ue=oe.slice,ce=oe.concat,le=oe.push,he=oe.indexOf,de={},pe=de.toString,fe=de.hasOwnProperty,ge=fe.toString,me=ge.call(Object),ve={},ye=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},be=function(e){return null!=e&&e===e.window},Ce={type:!0,src:!0,noModule:!0},Ae=function(e,t){return new Ae.fn.init(e,t)},_e=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g
+Ae.fn=Ae.prototype={jquery:"3.3.1",constructor:Ae,length:0,toArray:function(){return ue.call(this)},get:function(e){return null==e?ue.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=Ae.merge(this.constructor(),e)
+return t.prevObject=this,t},each:function(e){return Ae.each(this,e)},map:function(e){return this.pushStack(Ae.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(ue.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0)
+return this.pushStack(n>=0&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:le,sort:oe.sort,splice:oe.splice},Ae.extend=Ae.fn.extend=function(){var e,t,n,r,i,o,s=arguments[0]||{},a=1,u=arguments.length,c=!1
+for("boolean"==typeof s&&(c=s,s=arguments[a]||{},a++),"object"==typeof s||ye(s)||(s={}),a===u&&(s=this,a--);a<u;a++)if(null!=(e=arguments[a]))for(t in e)n=s[t],r=e[t],s!==r&&(c&&r&&(Ae.isPlainObject(r)||(i=Array.isArray(r)))?(i?(i=!1,o=n&&Array.isArray(n)?n:[]):o=n&&Ae.isPlainObject(n)?n:{},s[t]=Ae.extend(c,o,r)):void 0!==r&&(s[t]=r))
+return s},Ae.extend({expando:"jQuery"+("3.3.1"+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n
+return!(!e||"[object Object]"!==pe.call(e))&&(!(t=ae(e))||"function"==typeof(n=fe.call(t,"constructor")&&t.constructor)&&ge.call(n)===me)},isEmptyObject:function(e){var t
+for(t in e)return!1
+return!0},globalEval:function(e){n(e)},each:function(e,t){var n,r=0
+if(i(e))for(n=e.length;r<n&&!1!==t.call(e[r],r,e[r]);r++);else for(r in e)if(!1===t.call(e[r],r,e[r]))break
+return e},trim:function(e){return null==e?"":(e+"").replace(_e,"")},makeArray:function(e,t){var n=t||[]
+return null!=e&&(i(Object(e))?Ae.merge(n,"string"==typeof e?[e]:e):le.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:he.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r]
+return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,s=!n;i<o;i++)!t(e[i],i)!==s&&r.push(e[i])
+return r},map:function(e,t,n){var r,o,s=0,a=[]
+if(i(e))for(r=e.length;s<r;s++)null!=(o=t(e[s],s,n))&&a.push(o)
+else for(s in e)null!=(o=t(e[s],s,n))&&a.push(o)
+return ce.apply([],a)},guid:1,support:ve}),"function"==typeof Symbol&&(Ae.fn[Symbol.iterator]=oe[Symbol.iterator]),Ae.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){de["[object "+t+"]"]=t.toLowerCase()})
+var Ie=function(e){function t(e,t,n,r){var i,o,s,a,u,l,d,p=t&&t.ownerDocument,f=t?t.nodeType:9
+if(n=n||[],"string"!=typeof e||!e||1!==f&&9!==f&&11!==f)return n
+if(!r&&((t?t.ownerDocument||t:F)!==P&&T(t),t=t||P,R)){if(11!==f&&(u=ge.exec(e)))if(i=u[1]){if(9===f){if(!(s=t.getElementById(i)))return n
+if(s.id===i)return n.push(s),n}else if(p&&(s=p.getElementById(i))&&D(t,s)&&s.id===i)return n.push(s),n}else{if(u[2])return Z.apply(n,t.getElementsByTagName(e)),n
+if((i=u[3])&&C.getElementsByClassName&&t.getElementsByClassName)return Z.apply(n,t.getElementsByClassName(i)),n}if(C.qsa&&!V[e+" "]&&(!N||!N.test(e))){if(1!==f)p=t,d=e
+else if("object"!==t.nodeName.toLowerCase()){for((a=t.getAttribute("id"))?a=a.replace(be,Ce):t.setAttribute("id",a=z),l=w(e),o=l.length;o--;)l[o]="#"+a+" "+h(l[o])
+d=l.join(","),p=me.test(e)&&c(t.parentNode)||t}if(d)try{return Z.apply(n,p.querySelectorAll(d)),n}catch(e){}finally{a===z&&t.removeAttribute("id")}}}return k(e.replace(oe,"$1"),t,n,r)}function n(){function e(n,r){return t.push(n+" ")>A.cacheLength&&delete e[t.shift()],e[n+" "]=r}var t=[]
+return e}function r(e){return e[z]=!0,e}function i(e){var t=P.createElement("fieldset")
+try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function o(e,t){for(var n=e.split("|"),r=n.length;r--;)A.attrHandle[n[r]]=t}function s(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex
+if(r)return r
+if(n)for(;n=n.nextSibling;)if(n===t)return-1
+return e?1:-1}function a(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&_e(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function u(e){return r(function(t){return t=+t,r(function(n,r){for(var i,o=e([],n.length,t),s=o.length;s--;)n[i=o[s]]&&(n[i]=!(r[i]=n[i]))})})}function c(e){return e&&void 0!==e.getElementsByTagName&&e}function l(){}function h(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value
+return r}function d(e,t,n){var r=t.dir,i=t.next,o=i||r,s=n&&"parentNode"===o,a=H++
+return t.first?function(t,n,i){for(;t=t[r];)if(1===t.nodeType||s)return e(t,n,i)
+return!1}:function(t,n,u){var c,l,h,d=[B,a]
+if(u){for(;t=t[r];)if((1===t.nodeType||s)&&e(t,n,u))return!0}else for(;t=t[r];)if(1===t.nodeType||s)if(h=t[z]||(t[z]={}),l=h[t.uniqueID]||(h[t.uniqueID]={}),i&&i===t.nodeName.toLowerCase())t=t[r]||t
+else{if((c=l[o])&&c[0]===B&&c[1]===a)return d[2]=c[2]
+if(l[o]=d,d[2]=e(t,n,u))return!0}return!1}}function p(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1
+return!0}:e[0]}function f(e,n,r){for(var i=0,o=n.length;i<o;i++)t(e,n[i],r)
+return r}function g(e,t,n,r,i){for(var o,s=[],a=0,u=e.length,c=null!=t;a<u;a++)(o=e[a])&&(n&&!n(o,r,i)||(s.push(o),c&&t.push(a)))
+return s}function m(e,t,n,i,o,s){return i&&!i[z]&&(i=m(i)),o&&!o[z]&&(o=m(o,s)),r(function(r,s,a,u){var c,l,h,d=[],p=[],m=s.length,v=r||f(t||"*",a.nodeType?[a]:a,[]),y=!e||!r&&t?v:g(v,d,e,a,u),b=n?o||(r?e:m||i)?[]:s:y
+if(n&&n(y,b,a,u),i)for(c=g(b,p),i(c,[],a,u),l=c.length;l--;)(h=c[l])&&(b[p[l]]=!(y[p[l]]=h))
+if(r){if(o||e){if(o){for(c=[],l=b.length;l--;)(h=b[l])&&c.push(y[l]=h)
+o(null,b=[],c,u)}for(l=b.length;l--;)(h=b[l])&&(c=o?J(r,h):d[l])>-1&&(r[c]=!(s[c]=h))}}else b=g(b===s?b.splice(m,b.length):b),o?o(null,s,b,u):Z.apply(s,b)})}function v(e){for(var t,n,r,i=e.length,o=A.relative[e[0].type],s=o||A.relative[" "],a=o?1:0,u=d(function(e){return e===t},s,!0),c=d(function(e){return J(t,e)>-1},s,!0),l=[function(e,n,r){var i=!o&&(r||n!==j)||((t=n).nodeType?u(e,n,r):c(e,n,r))
+return t=null,i}];a<i;a++)if(n=A.relative[e[a].type])l=[d(p(l),n)]
+else{if(n=A.filter[e[a].type].apply(null,e[a].matches),n[z]){for(r=++a;r<i&&!A.relative[e[r].type];r++);return m(a>1&&p(l),a>1&&h(e.slice(0,a-1).concat({value:" "===e[a-2].type?"*":""})).replace(oe,"$1"),n,a<r&&v(e.slice(a,r)),r<i&&v(e=e.slice(r)),r<i&&h(e))}l.push(n)}return p(l)}function y(e,n){var i=n.length>0,o=e.length>0,s=function(r,s,a,u,c){var l,h,d,p=0,f="0",m=r&&[],v=[],y=j,b=r||o&&A.find.TAG("*",c),C=B+=null==y?1:Math.random()||.1,_=b.length
+for(c&&(j=s===P||s||c);f!==_&&null!=(l=b[f]);f++){if(o&&l){for(h=0,s||l.ownerDocument===P||(T(l),a=!R);d=e[h++];)if(d(l,s||P,a)){u.push(l)
+break}c&&(B=C)}i&&((l=!d&&l)&&p--,r&&m.push(l))}if(p+=f,i&&f!==p){for(h=0;d=n[h++];)d(m,v,s,a)
+if(r){if(p>0)for(;f--;)m[f]||v[f]||(v[f]=K.call(u))
+v=g(v)}Z.apply(u,v),c&&!r&&v.length>0&&p+n.length>1&&t.uniqueSort(u)}return c&&(B=C,j=y),m}
+return i?r(s):s}var b,C,A,_,I,w,x,k,j,E,S,T,P,O,R,N,M,L,D,z="sizzle"+1*new Date,F=e.document,B=0,H=0,U=n(),q=n(),V=n(),W=function(e,t){return e===t&&(S=!0),0},G={}.hasOwnProperty,Y=[],K=Y.pop,Q=Y.push,Z=Y.push,X=Y.slice,J=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n
+return-1},$="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",ee="[\\x20\\t\\r\\n\\f]",te="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",ne="\\["+ee+"*("+te+")(?:"+ee+"*([*^$|!~]?=)"+ee+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+te+"))|)"+ee+"*\\]",re=":("+te+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+ne+")*)|.*)\\)|)",ie=new RegExp(ee+"+","g"),oe=new RegExp("^"+ee+"+|((?:^|[^\\\\])(?:\\\\.)*)"+ee+"+$","g"),se=new RegExp("^"+ee+"*,"+ee+"*"),ae=new RegExp("^"+ee+"*([>+~]|"+ee+")"+ee+"*"),ue=new RegExp("="+ee+"*([^\\]'\"]*?)"+ee+"*\\]","g"),ce=new RegExp(re),le=new RegExp("^"+te+"$"),he={ID:new RegExp("^#("+te+")"),CLASS:new RegExp("^\\.("+te+")"),TAG:new RegExp("^("+te+"|[*])"),ATTR:new RegExp("^"+ne),PSEUDO:new RegExp("^"+re),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ee+"*(even|odd|(([+-]|)(\\d*)n|)"+ee+"*(?:([+-]|)"+ee+"*(\\d+)|))"+ee+"*\\)|)","i"),bool:new RegExp("^(?:"+$+")$","i"),needsContext:new RegExp("^"+ee+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ee+"*((?:-\\d)?\\d*)"+ee+"*\\)|)(?=[^-]|$)","i")},de=/^(?:input|select|textarea|button)$/i,pe=/^h\d$/i,fe=/^[^{]+\{\s*\[native \w/,ge=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,me=/[+~]/,ve=new RegExp("\\\\([\\da-f]{1,6}"+ee+"?|("+ee+")|.)","ig"),ye=function(e,t,n){var r="0x"+t-65536
+return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},be=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,Ce=function(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},Ae=function(){T()},_e=d(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"})
+try{Z.apply(Y=X.call(F.childNodes),F.childNodes),Y[F.childNodes.length].nodeType}catch(e){Z={apply:Y.length?function(e,t){Q.apply(e,X.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}C=t.support={},I=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement
+return!!t&&"HTML"!==t.nodeName},T=t.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:F
+return r!==P&&9===r.nodeType&&r.documentElement?(P=r,O=P.documentElement,R=!I(P),F!==P&&(n=P.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",Ae,!1):n.attachEvent&&n.attachEvent("onunload",Ae)),C.attributes=i(function(e){return e.className="i",!e.getAttribute("className")}),C.getElementsByTagName=i(function(e){return e.appendChild(P.createComment("")),!e.getElementsByTagName("*").length}),C.getElementsByClassName=fe.test(P.getElementsByClassName),C.getById=i(function(e){return O.appendChild(e).id=z,!P.getElementsByName||!P.getElementsByName(z).length}),C.getById?(A.filter.ID=function(e){var t=e.replace(ve,ye)
+return function(e){return e.getAttribute("id")===t}},A.find.ID=function(e,t){if(void 0!==t.getElementById&&R){var n=t.getElementById(e)
+return n?[n]:[]}}):(A.filter.ID=function(e){var t=e.replace(ve,ye)
+return function(e){var n=void 0!==e.getAttributeNode&&e.getAttributeNode("id")
+return n&&n.value===t}},A.find.ID=function(e,t){if(void 0!==t.getElementById&&R){var n,r,i,o=t.getElementById(e)
+if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o]
+for(i=t.getElementsByName(e),r=0;o=i[r++];)if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),A.find.TAG=C.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):C.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e)
+if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n)
+return r}return o},A.find.CLASS=C.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&R)return t.getElementsByClassName(e)},M=[],N=[],(C.qsa=fe.test(P.querySelectorAll))&&(i(function(e){O.appendChild(e).innerHTML="<a id='"+z+"'></a><select id='"+z+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&N.push("[*^$]="+ee+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||N.push("\\["+ee+"*(?:value|"+$+")"),e.querySelectorAll("[id~="+z+"-]").length||N.push("~="),e.querySelectorAll(":checked").length||N.push(":checked"),e.querySelectorAll("a#"+z+"+*").length||N.push(".#.+[+~]")}),i(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>"
+var t=P.createElement("input")
+t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&N.push("name"+ee+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&N.push(":enabled",":disabled"),O.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&N.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),N.push(",.*:")})),(C.matchesSelector=fe.test(L=O.matches||O.webkitMatchesSelector||O.mozMatchesSelector||O.oMatchesSelector||O.msMatchesSelector))&&i(function(e){C.disconnectedMatch=L.call(e,"*"),L.call(e,"[s!='']:x"),M.push("!=",re)}),N=N.length&&new RegExp(N.join("|")),M=M.length&&new RegExp(M.join("|")),t=fe.test(O.compareDocumentPosition),D=t||fe.test(O.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode
+return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0
+return!1},W=t?function(e,t){if(e===t)return S=!0,0
+var n=!e.compareDocumentPosition-!t.compareDocumentPosition
+return n||(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&n||!C.sortDetached&&t.compareDocumentPosition(e)===n?e===P||e.ownerDocument===F&&D(F,e)?-1:t===P||t.ownerDocument===F&&D(F,t)?1:E?J(E,e)-J(E,t):0:4&n?-1:1)}:function(e,t){if(e===t)return S=!0,0
+var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],u=[t]
+if(!i||!o)return e===P?-1:t===P?1:i?-1:o?1:E?J(E,e)-J(E,t):0
+if(i===o)return s(e,t)
+for(n=e;n=n.parentNode;)a.unshift(n)
+for(n=t;n=n.parentNode;)u.unshift(n)
+for(;a[r]===u[r];)r++
+return r?s(a[r],u[r]):a[r]===F?-1:u[r]===F?1:0},P):P},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==P&&T(e),n=n.replace(ue,"='$1']"),C.matchesSelector&&R&&!V[n+" "]&&(!M||!M.test(n))&&(!N||!N.test(n)))try{var r=L.call(e,n)
+if(r||C.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return t(n,P,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==P&&T(e),D(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==P&&T(e)
+var n=A.attrHandle[t.toLowerCase()],r=n&&G.call(A.attrHandle,t.toLowerCase())?n(e,t,!R):void 0
+return void 0!==r?r:C.attributes||!R?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},t.escape=function(e){return(e+"").replace(be,Ce)},t.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},t.uniqueSort=function(e){var t,n=[],r=0,i=0
+if(S=!C.detectDuplicates,E=!C.sortStable&&e.slice(0),e.sort(W),S){for(;t=e[i++];)t===e[i]&&(r=n.push(i))
+for(;r--;)e.splice(n[r],1)}return E=null,e},_=t.getText=function(e){var t,n="",r=0,i=e.nodeType
+if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent
+for(e=e.firstChild;e;e=e.nextSibling)n+=_(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=_(t)
+return n},A=t.selectors={cacheLength:50,createPseudo:r,match:he,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(ve,ye),e[3]=(e[3]||e[4]||e[5]||"").replace(ve,ye),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||t.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2]
+return he.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&ce.test(n)&&(t=w(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(ve,ye).toLowerCase()
+return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=U[e+" "]
+return t||(t=new RegExp("(^|"+ee+")"+e+"("+ee+"|$)"))&&U(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,n,r){return function(i){var o=t.attr(i,e)
+return null==o?"!="===n:!n||(o+="","="===n?o===r:"!="===n?o!==r:"^="===n?r&&0===o.indexOf(r):"*="===n?r&&o.indexOf(r)>-1:"$="===n?r&&o.slice(-r.length)===r:"~="===n?(" "+o.replace(ie," ")+" ").indexOf(r)>-1:"|="===n&&(o===r||o.slice(0,r.length+1)===r+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),s="last"!==e.slice(-4),a="of-type"===t
+return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var c,l,h,d,p,f,g=o!==s?"nextSibling":"previousSibling",m=t.parentNode,v=a&&t.nodeName.toLowerCase(),y=!u&&!a,b=!1
+if(m){if(o){for(;g;){for(d=t;d=d[g];)if(a?d.nodeName.toLowerCase()===v:1===d.nodeType)return!1
+f=g="only"===e&&!f&&"nextSibling"}return!0}if(f=[s?m.firstChild:m.lastChild],s&&y){for(d=m,h=d[z]||(d[z]={}),l=h[d.uniqueID]||(h[d.uniqueID]={}),c=l[e]||[],p=c[0]===B&&c[1],b=p&&c[2],d=p&&m.childNodes[p];d=++p&&d&&d[g]||(b=p=0)||f.pop();)if(1===d.nodeType&&++b&&d===t){l[e]=[B,p,b]
+break}}else if(y&&(d=t,h=d[z]||(d[z]={}),l=h[d.uniqueID]||(h[d.uniqueID]={}),c=l[e]||[],p=c[0]===B&&c[1],b=p),!1===b)for(;(d=++p&&d&&d[g]||(b=p=0)||f.pop())&&((a?d.nodeName.toLowerCase()!==v:1!==d.nodeType)||!++b||(y&&(h=d[z]||(d[z]={}),l=h[d.uniqueID]||(h[d.uniqueID]={}),l[e]=[B,b]),d!==t)););return(b-=i)===r||b%r==0&&b/r>=0}}},PSEUDO:function(e,n){var i,o=A.pseudos[e]||A.setFilters[e.toLowerCase()]||t.error("unsupported pseudo: "+e)
+return o[z]?o(n):o.length>1?(i=[e,e,"",n],A.setFilters.hasOwnProperty(e.toLowerCase())?r(function(e,t){for(var r,i=o(e,n),s=i.length;s--;)r=J(e,i[s]),e[r]=!(t[r]=i[s])}):function(e){return o(e,0,i)}):o}},pseudos:{not:r(function(e){var t=[],n=[],i=x(e.replace(oe,"$1"))
+return i[z]?r(function(e,t,n,r){for(var o,s=i(e,null,r,[]),a=e.length;a--;)(o=s[a])&&(e[a]=!(t[a]=o))}):function(e,r,o){return t[0]=e,i(t,null,o,n),t[0]=null,!n.pop()}}),has:r(function(e){return function(n){return t(e,n).length>0}}),contains:r(function(e){return e=e.replace(ve,ye),function(t){return(t.textContent||t.innerText||_(t)).indexOf(e)>-1}}),lang:r(function(e){return le.test(e||"")||t.error("unsupported lang: "+e),e=e.replace(ve,ye).toLowerCase(),function(t){var n
+do{if(n=R?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType)
+return!1}}),target:function(t){var n=e.location&&e.location.hash
+return n&&n.slice(1)===t.id},root:function(e){return e===O},focus:function(e){return e===P.activeElement&&(!P.hasFocus||P.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:a(!1),disabled:a(!0),checked:function(e){var t=e.nodeName.toLowerCase()
+return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1
+return!0},parent:function(e){return!A.pseudos.empty(e)},header:function(e){return pe.test(e.nodeName)},input:function(e){return de.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase()
+return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t
+return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:u(function(){return[0]}),last:u(function(e,t){return[t-1]}),eq:u(function(e,t,n){return[n<0?n+t:n]}),even:u(function(e,t){for(var n=0;n<t;n+=2)e.push(n)
+return e}),odd:u(function(e,t){for(var n=1;n<t;n+=2)e.push(n)
+return e}),lt:u(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r)
+return e}),gt:u(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r)
+return e})}},A.pseudos.nth=A.pseudos.eq
+for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})A.pseudos[b]=function(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}(b)
+for(b in{submit:!0,reset:!0})A.pseudos[b]=function(e){return function(t){var n=t.nodeName.toLowerCase()
+return("input"===n||"button"===n)&&t.type===e}}(b)
+return l.prototype=A.filters=A.pseudos,A.setFilters=new l,w=t.tokenize=function(e,n){var r,i,o,s,a,u,c,l=q[e+" "]
+if(l)return n?0:l.slice(0)
+for(a=e,u=[],c=A.preFilter;a;){r&&!(i=se.exec(a))||(i&&(a=a.slice(i[0].length)||a),u.push(o=[])),r=!1,(i=ae.exec(a))&&(r=i.shift(),o.push({value:r,type:i[0].replace(oe," ")}),a=a.slice(r.length))
+for(s in A.filter)!(i=he[s].exec(a))||c[s]&&!(i=c[s](i))||(r=i.shift(),o.push({value:r,type:s,matches:i}),a=a.slice(r.length))
+if(!r)break}return n?a.length:a?t.error(e):q(e,u).slice(0)},x=t.compile=function(e,t){var n,r=[],i=[],o=V[e+" "]
+if(!o){for(t||(t=w(e)),n=t.length;n--;)o=v(t[n]),o[z]?r.push(o):i.push(o)
+o=V(e,y(i,r)),o.selector=e}return o},k=t.select=function(e,t,n,r){var i,o,s,a,u,l="function"==typeof e&&e,d=!r&&w(e=l.selector||e)
+if(n=n||[],1===d.length){if(o=d[0]=d[0].slice(0),o.length>2&&"ID"===(s=o[0]).type&&9===t.nodeType&&R&&A.relative[o[1].type]){if(!(t=(A.find.ID(s.matches[0].replace(ve,ye),t)||[])[0]))return n
+l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}for(i=he.needsContext.test(e)?0:o.length;i--&&(s=o[i],!A.relative[a=s.type]);)if((u=A.find[a])&&(r=u(s.matches[0].replace(ve,ye),me.test(o[0].type)&&c(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&h(o)))return Z.apply(n,r),n
+break}}return(l||x(e,d))(r,t,!R,n,!t||me.test(e)&&c(t.parentNode)||t),n},C.sortStable=z.split("").sort(W).join("")===z,C.detectDuplicates=!!S,T(),C.sortDetached=i(function(e){return 1&e.compareDocumentPosition(P.createElement("fieldset"))}),i(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||o("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),C.attributes&&i(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||o("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),i(function(e){return null==e.getAttribute("disabled")})||o($,function(e,t,n){var r
+if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),t}(e)
+Ae.find=Ie,Ae.expr=Ie.selectors,Ae.expr[":"]=Ae.expr.pseudos,Ae.uniqueSort=Ae.unique=Ie.uniqueSort,Ae.text=Ie.getText,Ae.isXMLDoc=Ie.isXML,Ae.contains=Ie.contains,Ae.escapeSelector=Ie.escape
+var we=function(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&Ae(e).is(n))break
+r.push(e)}return r},xe=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e)
+return n},ke=Ae.expr.match.needsContext,je=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i
+Ae.filter=function(e,t,n){var r=t[0]
+return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?Ae.find.matchesSelector(r,e)?[r]:[]:Ae.find.matches(e,Ae.grep(t,function(e){return 1===e.nodeType}))},Ae.fn.extend({find:function(e){var t,n,r=this.length,i=this
+if("string"!=typeof e)return this.pushStack(Ae(e).filter(function(){for(t=0;t<r;t++)if(Ae.contains(i[t],this))return!0}))
+for(n=this.pushStack([]),t=0;t<r;t++)Ae.find(e,i[t],n)
+return r>1?Ae.uniqueSort(n):n},filter:function(e){return this.pushStack(s(this,e||[],!1))},not:function(e){return this.pushStack(s(this,e||[],!0))},is:function(e){return!!s(this,"string"==typeof e&&ke.test(e)?Ae(e):e||[],!1).length}})
+var Ee,Se=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(Ae.fn.init=function(e,t,n){var r,i
+if(!e)return this
+if(n=n||Ee,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:Se.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e)
+if(r[1]){if(t=t instanceof Ae?t[0]:t,Ae.merge(this,Ae.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:se,!0)),je.test(r[1])&&Ae.isPlainObject(t))for(r in t)ye(this[r])?this[r](t[r]):this.attr(r,t[r])
+return this}return i=se.getElementById(r[2]),i&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):ye(e)?void 0!==n.ready?n.ready(e):e(Ae):Ae.makeArray(e,this)}).prototype=Ae.fn,Ee=Ae(se)
+var Te=/^(?:parents|prev(?:Until|All))/,Pe={children:!0,contents:!0,next:!0,prev:!0}
+Ae.fn.extend({has:function(e){var t=Ae(e,this),n=t.length
+return this.filter(function(){for(var e=0;e<n;e++)if(Ae.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],s="string"!=typeof e&&Ae(e)
+if(!ke.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(s?s.index(n)>-1:1===n.nodeType&&Ae.find.matchesSelector(n,e))){o.push(n)
+break}return this.pushStack(o.length>1?Ae.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?he.call(Ae(e),this[0]):he.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(Ae.uniqueSort(Ae.merge(this.get(),Ae(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),Ae.each({parent:function(e){var t=e.parentNode
+return t&&11!==t.nodeType?t:null},parents:function(e){return we(e,"parentNode")},parentsUntil:function(e,t,n){return we(e,"parentNode",n)},next:function(e){return a(e,"nextSibling")},prev:function(e){return a(e,"previousSibling")},nextAll:function(e){return we(e,"nextSibling")},prevAll:function(e){return we(e,"previousSibling")},nextUntil:function(e,t,n){return we(e,"nextSibling",n)},prevUntil:function(e,t,n){return we(e,"previousSibling",n)},siblings:function(e){return xe((e.parentNode||{}).firstChild,e)},children:function(e){return xe(e.firstChild)},contents:function(e){return o(e,"iframe")?e.contentDocument:(o(e,"template")&&(e=e.content||e),Ae.merge([],e.childNodes))}},function(e,t){Ae.fn[e]=function(n,r){var i=Ae.map(this,t,n)
+return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=Ae.filter(r,i)),this.length>1&&(Pe[e]||Ae.uniqueSort(i),Te.test(e)&&i.reverse()),this.pushStack(i)}})
+var Oe=/[^\x20\t\r\n\f]+/g
+Ae.Callbacks=function(e){e="string"==typeof e?u(e):Ae.extend({},e)
+var t,n,i,o,s=[],a=[],c=-1,l=function(){for(o=o||e.once,i=t=!0;a.length;c=-1)for(n=a.shift();++c<s.length;)!1===s[c].apply(n[0],n[1])&&e.stopOnFalse&&(c=s.length,n=!1)
+e.memory||(n=!1),t=!1,o&&(s=n?[]:"")},h={add:function(){return s&&(n&&!t&&(c=s.length-1,a.push(n)),function t(n){Ae.each(n,function(n,i){ye(i)?e.unique&&h.has(i)||s.push(i):i&&i.length&&"string"!==r(i)&&t(i)})}(arguments),n&&!t&&l()),this},remove:function(){return Ae.each(arguments,function(e,t){for(var n;(n=Ae.inArray(t,s,n))>-1;)s.splice(n,1),n<=c&&c--}),this},has:function(e){return e?Ae.inArray(e,s)>-1:s.length>0},empty:function(){return s&&(s=[]),this},disable:function(){return o=a=[],s=n="",this},disabled:function(){return!s},lock:function(){return o=a=[],n||t||(s=n=""),this},locked:function(){return!!o},fireWith:function(e,n){return o||(n=n||[],n=[e,n.slice?n.slice():n],a.push(n),t||l()),this},fire:function(){return h.fireWith(this,arguments),this},fired:function(){return!!i}}
+return h},Ae.extend({Deferred:function(t){var n=[["notify","progress",Ae.Callbacks("memory"),Ae.Callbacks("memory"),2],["resolve","done",Ae.Callbacks("once memory"),Ae.Callbacks("once memory"),0,"resolved"],["reject","fail",Ae.Callbacks("once memory"),Ae.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},catch:function(e){return i.then(null,e)},pipe:function(){var e=arguments
+return Ae.Deferred(function(t){Ae.each(n,function(n,r){var i=ye(e[r[4]])&&e[r[4]]
+o[r[1]](function(){var e=i&&i.apply(this,arguments)
+e&&ye(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){function o(t,n,r,i){return function(){var a=this,u=arguments,h=function(){var e,h
+if(!(t<s)){if((e=r.apply(a,u))===n.promise())throw new TypeError("Thenable self-resolution")
+h=e&&("object"==typeof e||"function"==typeof e)&&e.then,ye(h)?i?h.call(e,o(s,n,c,i),o(s,n,l,i)):(s++,h.call(e,o(s,n,c,i),o(s,n,l,i),o(s,n,c,n.notifyWith))):(r!==c&&(a=void 0,u=[e]),(i||n.resolveWith)(a,u))}},d=i?h:function(){try{h()}catch(e){Ae.Deferred.exceptionHook&&Ae.Deferred.exceptionHook(e,d.stackTrace),t+1>=s&&(r!==l&&(a=void 0,u=[e]),n.rejectWith(a,u))}}
+t?d():(Ae.Deferred.getStackHook&&(d.stackTrace=Ae.Deferred.getStackHook()),e.setTimeout(d))}}var s=0
+return Ae.Deferred(function(e){n[0][3].add(o(0,e,ye(i)?i:c,e.notifyWith)),n[1][3].add(o(0,e,ye(t)?t:c)),n[2][3].add(o(0,e,ye(r)?r:l))}).promise()},promise:function(e){return null!=e?Ae.extend(e,i):i}},o={}
+return Ae.each(n,function(e,t){var s=t[2],a=t[5]
+i[t[1]]=s.add,a&&s.add(function(){r=a},n[3-e][2].disable,n[3-e][3].disable,n[0][2].lock,n[0][3].lock),s.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?void 0:this,arguments),this},o[t[0]+"With"]=s.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=ue.call(arguments),o=Ae.Deferred(),s=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?ue.call(arguments):n,--t||o.resolveWith(r,i)}}
+if(t<=1&&(h(e,o.done(s(n)).resolve,o.reject,!t),"pending"===o.state()||ye(i[n]&&i[n].then)))return o.then()
+for(;n--;)h(i[n],s(n),o.reject)
+return o.promise()}})
+var Re=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/
+Ae.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&Re.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},Ae.readyException=function(t){e.setTimeout(function(){throw t})}
+var Ne=Ae.Deferred()
+Ae.fn.ready=function(e){return Ne.then(e).catch(function(e){Ae.readyException(e)}),this},Ae.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--Ae.readyWait:Ae.isReady)||(Ae.isReady=!0,!0!==e&&--Ae.readyWait>0||Ne.resolveWith(se,[Ae]))}}),Ae.ready.then=Ne.then,"complete"===se.readyState||"loading"!==se.readyState&&!se.documentElement.doScroll?e.setTimeout(Ae.ready):(se.addEventListener("DOMContentLoaded",d),e.addEventListener("load",d))
+var Me=function(e,t,n,i,o,s,a){var u=0,c=e.length,l=null==n
+if("object"===r(n)){o=!0
+for(u in n)Me(e,t,u,n[u],!0,s,a)}else if(void 0!==i&&(o=!0,ye(i)||(a=!0),l&&(a?(t.call(e,i),t=null):(l=t,t=function(e,t,n){return l.call(Ae(e),n)})),t))for(;u<c;u++)t(e[u],n,a?i:i.call(e[u],u,t(e[u],n)))
+return o?e:l?t.call(e):c?t(e[0],n):s},Le=/^-ms-/,De=/-([a-z])/g,ze=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType}
+g.uid=1,g.prototype={cache:function(e){var t=e[this.expando]
+return t||(t={},ze(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e)
+if("string"==typeof t)i[f(t)]=n
+else for(r in t)i[f(r)]=t[r]
+return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][f(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando]
+if(void 0!==r){if(void 0!==t){Array.isArray(t)?t=t.map(f):(t=f(t),t=t in r?[t]:t.match(Oe)||[]),n=t.length
+for(;n--;)delete r[t[n]]}(void 0===t||Ae.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando]
+return void 0!==t&&!Ae.isEmptyObject(t)}}
+var Fe=new g,Be=new g,He=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Ue=/[A-Z]/g
+Ae.extend({hasData:function(e){return Be.hasData(e)||Fe.hasData(e)},data:function(e,t,n){return Be.access(e,t,n)},removeData:function(e,t){Be.remove(e,t)},_data:function(e,t,n){return Fe.access(e,t,n)},_removeData:function(e,t){Fe.remove(e,t)}}),Ae.fn.extend({data:function(e,t){var n,r,i,o=this[0],s=o&&o.attributes
+if(void 0===e){if(this.length&&(i=Be.get(o),1===o.nodeType&&!Fe.get(o,"hasDataAttrs"))){for(n=s.length;n--;)s[n]&&(r=s[n].name,0===r.indexOf("data-")&&(r=f(r.slice(5)),v(o,r,i[r])))
+Fe.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof e?this.each(function(){Be.set(this,e)}):Me(this,function(t){var n
+if(o&&void 0===t){if(void 0!==(n=Be.get(o,e)))return n
+if(void 0!==(n=v(o,e)))return n}else this.each(function(){Be.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){Be.remove(this,e)})}}),Ae.extend({queue:function(e,t,n){var r
+if(e)return t=(t||"fx")+"queue",r=Fe.get(e,t),n&&(!r||Array.isArray(n)?r=Fe.access(e,t,Ae.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx"
+var n=Ae.queue(e,t),r=n.length,i=n.shift(),o=Ae._queueHooks(e,t),s=function(){Ae.dequeue(e,t)}
+"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,s,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks"
+return Fe.get(e,n)||Fe.access(e,n,{empty:Ae.Callbacks("once memory").add(function(){Fe.remove(e,[t+"queue",n])})})}}),Ae.fn.extend({queue:function(e,t){var n=2
+return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length<n?Ae.queue(this[0],e):void 0===t?this:this.each(function(){var n=Ae.queue(this,e,t)
+Ae._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&Ae.dequeue(this,e)})},dequeue:function(e){return this.each(function(){Ae.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=Ae.Deferred(),o=this,s=this.length,a=function(){--r||i.resolveWith(o,[o])}
+for("string"!=typeof e&&(t=e,e=void 0),e=e||"fx";s--;)(n=Fe.get(o[s],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(a))
+return a(),i.promise(t)}})
+var qe=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,Ve=new RegExp("^(?:([+-])=|)("+qe+")([a-z%]*)$","i"),We=["Top","Right","Bottom","Left"],Ge=function(e,t){return e=t||e,"none"===e.style.display||""===e.style.display&&Ae.contains(e.ownerDocument,e)&&"none"===Ae.css(e,"display")},Ye=function(e,t,n,r){var i,o,s={}
+for(o in t)s[o]=e.style[o],e.style[o]=t[o]
+i=n.apply(e,r||[])
+for(o in t)e.style[o]=s[o]
+return i},Ke={}
+Ae.fn.extend({show:function(){return C(this,!0)},hide:function(){return C(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){Ge(this)?Ae(this).show():Ae(this).hide()})}})
+var Qe=/^(?:checkbox|radio)$/i,Ze=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,Xe=/^$|^module$|\/(?:java|ecma)script/i,Je={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]}
+Je.optgroup=Je.option,Je.tbody=Je.tfoot=Je.colgroup=Je.caption=Je.thead,Je.th=Je.td
+var $e=/<|&#?\w+;/;(function(){var e=se.createDocumentFragment(),t=e.appendChild(se.createElement("div")),n=se.createElement("input")
+n.setAttribute("type","radio"),n.setAttribute("checked","checked"),n.setAttribute("name","t"),t.appendChild(n),ve.checkClone=t.cloneNode(!0).cloneNode(!0).lastChild.checked,t.innerHTML="<textarea>x</textarea>",ve.noCloneChecked=!!t.cloneNode(!0).lastChild.defaultValue})()
+var et=se.documentElement,tt=/^key/,nt=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,rt=/^([^.]*)(?:\.(.+)|)/
+Ae.event={global:{},add:function(e,t,n,r,i){var o,s,a,u,c,l,h,d,p,f,g,m=Fe.get(e)
+if(m)for(n.handler&&(o=n,n=o.handler,i=o.selector),i&&Ae.find.matchesSelector(et,i),n.guid||(n.guid=Ae.guid++),(u=m.events)||(u=m.events={}),(s=m.handle)||(s=m.handle=function(t){return void 0!==Ae&&Ae.event.triggered!==t.type?Ae.event.dispatch.apply(e,arguments):void 0}),t=(t||"").match(Oe)||[""],c=t.length;c--;)a=rt.exec(t[c])||[],p=g=a[1],f=(a[2]||"").split(".").sort(),p&&(h=Ae.event.special[p]||{},p=(i?h.delegateType:h.bindType)||p,h=Ae.event.special[p]||{},l=Ae.extend({type:p,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&Ae.expr.match.needsContext.test(i),namespace:f.join(".")},o),(d=u[p])||(d=u[p]=[],d.delegateCount=0,h.setup&&!1!==h.setup.call(e,r,f,s)||e.addEventListener&&e.addEventListener(p,s)),h.add&&(h.add.call(e,l),l.handler.guid||(l.handler.guid=n.guid)),i?d.splice(d.delegateCount++,0,l):d.push(l),Ae.event.global[p]=!0)},remove:function(e,t,n,r,i){var o,s,a,u,c,l,h,d,p,f,g,m=Fe.hasData(e)&&Fe.get(e)
+if(m&&(u=m.events)){for(t=(t||"").match(Oe)||[""],c=t.length;c--;)if(a=rt.exec(t[c])||[],p=g=a[1],f=(a[2]||"").split(".").sort(),p){for(h=Ae.event.special[p]||{},p=(r?h.delegateType:h.bindType)||p,d=u[p]||[],a=a[2]&&new RegExp("(^|\\.)"+f.join("\\.(?:.*\\.|)")+"(\\.|$)"),s=o=d.length;o--;)l=d[o],!i&&g!==l.origType||n&&n.guid!==l.guid||a&&!a.test(l.namespace)||r&&r!==l.selector&&("**"!==r||!l.selector)||(d.splice(o,1),l.selector&&d.delegateCount--,h.remove&&h.remove.call(e,l))
+s&&!d.length&&(h.teardown&&!1!==h.teardown.call(e,f,m.handle)||Ae.removeEvent(e,p,m.handle),delete u[p])}else for(p in u)Ae.event.remove(e,p+t[c],n,r,!0)
+Ae.isEmptyObject(u)&&Fe.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,s,a=Ae.event.fix(e),u=new Array(arguments.length),c=(Fe.get(this,"events")||{})[a.type]||[],l=Ae.event.special[a.type]||{}
+for(u[0]=a,t=1;t<arguments.length;t++)u[t]=arguments[t]
+if(a.delegateTarget=this,!l.preDispatch||!1!==l.preDispatch.call(this,a)){for(s=Ae.event.handlers.call(this,a,c),t=0;(i=s[t++])&&!a.isPropagationStopped();)for(a.currentTarget=i.elem,n=0;(o=i.handlers[n++])&&!a.isImmediatePropagationStopped();)a.rnamespace&&!a.rnamespace.test(o.namespace)||(a.handleObj=o,a.data=o.data,void 0!==(r=((Ae.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(a.result=r)&&(a.preventDefault(),a.stopPropagation()))
+return l.postDispatch&&l.postDispatch.call(this,a),a.result}},handlers:function(e,t){var n,r,i,o,s,a=[],u=t.delegateCount,c=e.target
+if(u&&c.nodeType&&!("click"===e.type&&e.button>=1))for(;c!==this;c=c.parentNode||this)if(1===c.nodeType&&("click"!==e.type||!0!==c.disabled)){for(o=[],s={},n=0;n<u;n++)r=t[n],i=r.selector+" ",void 0===s[i]&&(s[i]=r.needsContext?Ae(i,this).index(c)>-1:Ae.find(i,this,null,[c]).length),s[i]&&o.push(r)
+o.length&&a.push({elem:c,handlers:o})}return c=this,u<t.length&&a.push({elem:c,handlers:t.slice(u)}),a},addProp:function(e,t){Object.defineProperty(Ae.Event.prototype,e,{enumerable:!0,configurable:!0,get:ye(t)?function(){if(this.originalEvent)return t(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[e]},set:function(t){Object.defineProperty(this,e,{enumerable:!0,configurable:!0,writable:!0,value:t})}})},fix:function(e){return e[Ae.expando]?e:new Ae.Event(e)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==k()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===k()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&o(this,"input"))return this.click(),!1},_default:function(e){return o(e.target,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},Ae.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},Ae.Event=function(e,t){if(!(this instanceof Ae.Event))return new Ae.Event(e,t)
+e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?w:x,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&Ae.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[Ae.expando]=!0},Ae.Event.prototype={constructor:Ae.Event,isDefaultPrevented:x,isPropagationStopped:x,isImmediatePropagationStopped:x,isSimulated:!1,preventDefault:function(){var e=this.originalEvent
+this.isDefaultPrevented=w,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent
+this.isPropagationStopped=w,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent
+this.isImmediatePropagationStopped=w,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},Ae.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,char:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button
+return null==e.which&&tt.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&nt.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},Ae.event.addProp),Ae.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,t){Ae.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj
+return i&&(i===r||Ae.contains(r,i))||(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),Ae.fn.extend({on:function(e,t,n,r){return j(this,e,t,n,r)},one:function(e,t,n,r){return j(this,e,t,n,r,1)},off:function(e,t,n){var r,i
+if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,Ae(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this
+if("object"==typeof e){for(i in e)this.off(i,t,e[i])
+return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=x),this.each(function(){Ae.event.remove(this,e,n,t)})}})
+var it=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,ot=/<script|<style|<link/i,st=/checked\s*(?:[^=]|=\s*.checked.)/i,at=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g
+Ae.extend({htmlPrefilter:function(e){return e.replace(it,"<$1></$2>")},clone:function(e,t,n){var r,i,o,s,a=e.cloneNode(!0),u=Ae.contains(e.ownerDocument,e)
+if(!(ve.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||Ae.isXMLDoc(e)))for(s=A(a),o=A(e),r=0,i=o.length;r<i;r++)O(o[r],s[r])
+if(t)if(n)for(o=o||A(e),s=s||A(a),r=0,i=o.length;r<i;r++)P(o[r],s[r])
+else P(e,a)
+return s=A(a,"script"),s.length>0&&_(s,!u&&A(e,"script")),a},cleanData:function(e){for(var t,n,r,i=Ae.event.special,o=0;void 0!==(n=e[o]);o++)if(ze(n)){if(t=n[Fe.expando]){if(t.events)for(r in t.events)i[r]?Ae.event.remove(n,r):Ae.removeEvent(n,r,t.handle)
+n[Fe.expando]=void 0}n[Be.expando]&&(n[Be.expando]=void 0)}}}),Ae.fn.extend({detach:function(e){return N(this,e,!0)},remove:function(e){return N(this,e)},text:function(e){return Me(this,function(e){return void 0===e?Ae.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return R(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){E(this,e).appendChild(e)}})},prepend:function(){return R(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=E(this,e)
+t.insertBefore(e,t.firstChild)}})},before:function(){return R(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return R(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(Ae.cleanData(A(e,!1)),e.textContent="")
+return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return Ae.clone(this,e,t)})},html:function(e){return Me(this,function(e){var t=this[0]||{},n=0,r=this.length
+if(void 0===e&&1===t.nodeType)return t.innerHTML
+if("string"==typeof e&&!ot.test(e)&&!Je[(Ze.exec(e)||["",""])[1].toLowerCase()]){e=Ae.htmlPrefilter(e)
+try{for(;n<r;n++)t=this[n]||{},1===t.nodeType&&(Ae.cleanData(A(t,!1)),t.innerHTML=e)
+t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=[]
+return R(this,arguments,function(t){var n=this.parentNode
+Ae.inArray(this,e)<0&&(Ae.cleanData(A(this)),n&&n.replaceChild(t,this))},e)}}),Ae.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){Ae.fn[e]=function(e){for(var n,r=[],i=Ae(e),o=i.length-1,s=0;s<=o;s++)n=s===o?this:this.clone(!0),Ae(i[s])[t](n),le.apply(r,n.get())
+return this.pushStack(r)}})
+var ut=new RegExp("^("+qe+")(?!px)[a-z%]+$","i"),ct=function(t){var n=t.ownerDocument.defaultView
+return n&&n.opener||(n=e),n.getComputedStyle(t)},lt=new RegExp(We.join("|"),"i");(function(){function t(){if(c){u.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",c.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",et.appendChild(u).appendChild(c)
+var t=e.getComputedStyle(c)
+r="1%"!==t.top,a=12===n(t.marginLeft),c.style.right="60%",s=36===n(t.right),i=36===n(t.width),c.style.position="absolute",o=36===c.offsetWidth||"absolute",et.removeChild(u),c=null}}function n(e){return Math.round(parseFloat(e))}var r,i,o,s,a,u=se.createElement("div"),c=se.createElement("div")
+c.style&&(c.style.backgroundClip="content-box",c.cloneNode(!0).style.backgroundClip="",ve.clearCloneStyle="content-box"===c.style.backgroundClip,Ae.extend(ve,{boxSizingReliable:function(){return t(),i},pixelBoxStyles:function(){return t(),s},pixelPosition:function(){return t(),r},reliableMarginLeft:function(){return t(),a},scrollboxSize:function(){return t(),o}}))})()
+var ht=/^(none|table(?!-c[ea]).+)/,dt=/^--/,pt={position:"absolute",visibility:"hidden",display:"block"},ft={letterSpacing:"0",fontWeight:"400"},gt=["Webkit","Moz","ms"],mt=se.createElement("div").style
+Ae.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=M(e,"opacity")
+return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,s,a=f(t),u=dt.test(t),c=e.style
+if(u||(t=z(a)),s=Ae.cssHooks[t]||Ae.cssHooks[a],void 0===n)return s&&"get"in s&&void 0!==(i=s.get(e,!1,r))?i:c[t]
+o=typeof n,"string"===o&&(i=Ve.exec(n))&&i[1]&&(n=y(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(Ae.cssNumber[a]?"":"px")),ve.clearCloneStyle||""!==n||0!==t.indexOf("background")||(c[t]="inherit"),s&&"set"in s&&void 0===(n=s.set(e,n,r))||(u?c.setProperty(t,n):c[t]=n))}},css:function(e,t,n,r){var i,o,s,a=f(t)
+return dt.test(t)||(t=z(a)),s=Ae.cssHooks[t]||Ae.cssHooks[a],s&&"get"in s&&(i=s.get(e,!0,n)),void 0===i&&(i=M(e,t,r)),"normal"===i&&t in ft&&(i=ft[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),Ae.each(["height","width"],function(e,t){Ae.cssHooks[t]={get:function(e,n,r){if(n)return!ht.test(Ae.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?H(e,t,r):Ye(e,pt,function(){return H(e,t,r)})},set:function(e,n,r){var i,o=ct(e),s="border-box"===Ae.css(e,"boxSizing",!1,o),a=r&&B(e,t,r,s,o)
+return s&&ve.scrollboxSize()===o.position&&(a-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-B(e,t,"border",!1,o)-.5)),a&&(i=Ve.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=Ae.css(e,t)),F(e,n,a)}}}),Ae.cssHooks.marginLeft=L(ve.reliableMarginLeft,function(e,t){if(t)return(parseFloat(M(e,"marginLeft"))||e.getBoundingClientRect().left-Ye(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),Ae.each({margin:"",padding:"",border:"Width"},function(e,t){Ae.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+We[r]+t]=o[r]||o[r-2]||o[0]
+return i}},"margin"!==e&&(Ae.cssHooks[e+t].set=F)}),Ae.fn.extend({css:function(e,t){return Me(this,function(e,t,n){var r,i,o={},s=0
+if(Array.isArray(t)){for(r=ct(e),i=t.length;s<i;s++)o[t[s]]=Ae.css(e,t[s],!1,r)
+return o}return void 0!==n?Ae.style(e,t,n):Ae.css(e,t)},e,t,arguments.length>1)}}),Ae.Tween=U,U.prototype={constructor:U,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||Ae.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(Ae.cssNumber[n]?"":"px")},cur:function(){var e=U.propHooks[this.prop]
+return e&&e.get?e.get(this):U.propHooks._default.get(this)},run:function(e){var t,n=U.propHooks[this.prop]
+return this.options.duration?this.pos=t=Ae.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):U.propHooks._default.set(this),this}},U.prototype.init.prototype=U.prototype,U.propHooks={_default:{get:function(e){var t
+return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=Ae.css(e.elem,e.prop,""),t&&"auto"!==t?t:0)},set:function(e){Ae.fx.step[e.prop]?Ae.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[Ae.cssProps[e.prop]]&&!Ae.cssHooks[e.prop]?e.elem[e.prop]=e.now:Ae.style(e.elem,e.prop,e.now+e.unit)}}},U.propHooks.scrollTop=U.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},Ae.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},Ae.fx=U.prototype.init,Ae.fx.step={}
+var vt,yt,bt=/^(?:toggle|show|hide)$/,Ct=/queueHooks$/
+Ae.Animation=Ae.extend(Q,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t)
+return y(n.elem,e,Ve.exec(t),n),n}]},tweener:function(e,t){ye(e)?(t=e,e=["*"]):e=e.match(Oe)
+for(var n,r=0,i=e.length;r<i;r++)n=e[r],Q.tweeners[n]=Q.tweeners[n]||[],Q.tweeners[n].unshift(t)},prefilters:[Y],prefilter:function(e,t){t?Q.prefilters.unshift(e):Q.prefilters.push(e)}}),Ae.speed=function(e,t,n){var r=e&&"object"==typeof e?Ae.extend({},e):{complete:n||!n&&t||ye(e)&&e,duration:e,easing:n&&t||t&&!ye(t)&&t}
+return Ae.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in Ae.fx.speeds?r.duration=Ae.fx.speeds[r.duration]:r.duration=Ae.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){ye(r.old)&&r.old.call(this),r.queue&&Ae.dequeue(this,r.queue)},r},Ae.fn.extend({fadeTo:function(e,t,n,r){return this.filter(Ge).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=Ae.isEmptyObject(e),o=Ae.speed(t,n,r),s=function(){var t=Q(this,Ae.extend({},e),o);(i||Fe.get(this,"finish"))&&t.stop(!0)}
+return s.finish=s,i||!1===o.queue?this.each(s):this.queue(o.queue,s)},stop:function(e,t,n){var r=function(e){var t=e.stop
+delete e.stop,t(n)}
+return"string"!=typeof e&&(n=t,t=e,e=void 0),t&&!1!==e&&this.queue(e||"fx",[]),this.each(function(){var t=!0,i=null!=e&&e+"queueHooks",o=Ae.timers,s=Fe.get(this)
+if(i)s[i]&&s[i].stop&&r(s[i])
+else for(i in s)s[i]&&s[i].stop&&Ct.test(i)&&r(s[i])
+for(i=o.length;i--;)o[i].elem!==this||null!=e&&o[i].queue!==e||(o[i].anim.stop(n),t=!1,o.splice(i,1))
+!t&&n||Ae.dequeue(this,e)})},finish:function(e){return!1!==e&&(e=e||"fx"),this.each(function(){var t,n=Fe.get(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=Ae.timers,s=r?r.length:0
+for(n.finish=!0,Ae.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1))
+for(t=0;t<s;t++)r[t]&&r[t].finish&&r[t].finish.call(this)
+delete n.finish})}}),Ae.each(["toggle","show","hide"],function(e,t){var n=Ae.fn[t]
+Ae.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(W(t,!0),e,r,i)}}),Ae.each({slideDown:W("show"),slideUp:W("hide"),slideToggle:W("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){Ae.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),Ae.timers=[],Ae.fx.tick=function(){var e,t=0,n=Ae.timers
+for(vt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1)
+n.length||Ae.fx.stop(),vt=void 0},Ae.fx.timer=function(e){Ae.timers.push(e),Ae.fx.start()},Ae.fx.interval=13,Ae.fx.start=function(){yt||(yt=!0,q())},Ae.fx.stop=function(){yt=null},Ae.fx.speeds={slow:600,fast:200,_default:400},Ae.fn.delay=function(t,n){return t=Ae.fx?Ae.fx.speeds[t]||t:t,n=n||"fx",this.queue(n,function(n,r){var i=e.setTimeout(n,t)
+r.stop=function(){e.clearTimeout(i)}})},function(){var e=se.createElement("input"),t=se.createElement("select"),n=t.appendChild(se.createElement("option"))
+e.type="checkbox",ve.checkOn=""!==e.value,ve.optSelected=n.selected,e=se.createElement("input"),e.value="t",e.type="radio",ve.radioValue="t"===e.value}()
+var At,_t=Ae.expr.attrHandle
+Ae.fn.extend({attr:function(e,t){return Me(this,Ae.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){Ae.removeAttr(this,e)})}}),Ae.extend({attr:function(e,t,n){var r,i,o=e.nodeType
+if(3!==o&&8!==o&&2!==o)return void 0===e.getAttribute?Ae.prop(e,t,n):(1===o&&Ae.isXMLDoc(e)||(i=Ae.attrHooks[t.toLowerCase()]||(Ae.expr.match.bool.test(t)?At:void 0)),void 0!==n?null===n?void Ae.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:(r=Ae.find.attr(e,t),null==r?void 0:r))},attrHooks:{type:{set:function(e,t){if(!ve.radioValue&&"radio"===t&&o(e,"input")){var n=e.value
+return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(Oe)
+if(i&&1===e.nodeType)for(;n=i[r++];)e.removeAttribute(n)}}),At={set:function(e,t,n){return!1===t?Ae.removeAttr(e,n):e.setAttribute(n,n),n}},Ae.each(Ae.expr.match.bool.source.match(/\w+/g),function(e,t){var n=_t[t]||Ae.find.attr
+_t[t]=function(e,t,r){var i,o,s=t.toLowerCase()
+return r||(o=_t[s],_t[s]=i,i=null!=n(e,t,r)?s:null,_t[s]=o),i}})
+var It=/^(?:input|select|textarea|button)$/i,wt=/^(?:a|area)$/i
+Ae.fn.extend({prop:function(e,t){return Me(this,Ae.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[Ae.propFix[e]||e]})}}),Ae.extend({prop:function(e,t,n){var r,i,o=e.nodeType
+if(3!==o&&8!==o&&2!==o)return 1===o&&Ae.isXMLDoc(e)||(t=Ae.propFix[t]||t,i=Ae.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=Ae.find.attr(e,"tabindex")
+return t?parseInt(t,10):It.test(e.nodeName)||wt.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),ve.optSelected||(Ae.propHooks.selected={get:function(e){var t=e.parentNode
+return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode
+t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),Ae.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){Ae.propFix[this.toLowerCase()]=this}),Ae.fn.extend({addClass:function(e){var t,n,r,i,o,s,a,u=0
+if(ye(e))return this.each(function(t){Ae(this).addClass(e.call(this,t,X(this)))})
+if(t=J(e),t.length)for(;n=this[u++];)if(i=X(n),r=1===n.nodeType&&" "+Z(i)+" "){for(s=0;o=t[s++];)r.indexOf(" "+o+" ")<0&&(r+=o+" ")
+a=Z(r),i!==a&&n.setAttribute("class",a)}return this},removeClass:function(e){var t,n,r,i,o,s,a,u=0
+if(ye(e))return this.each(function(t){Ae(this).removeClass(e.call(this,t,X(this)))})
+if(!arguments.length)return this.attr("class","")
+if(t=J(e),t.length)for(;n=this[u++];)if(i=X(n),r=1===n.nodeType&&" "+Z(i)+" "){for(s=0;o=t[s++];)for(;r.indexOf(" "+o+" ")>-1;)r=r.replace(" "+o+" "," ")
+a=Z(r),i!==a&&n.setAttribute("class",a)}return this},toggleClass:function(e,t){var n=typeof e,r="string"===n||Array.isArray(e)
+return"boolean"==typeof t&&r?t?this.addClass(e):this.removeClass(e):ye(e)?this.each(function(n){Ae(this).toggleClass(e.call(this,n,X(this),t),t)}):this.each(function(){var t,i,o,s
+if(r)for(i=0,o=Ae(this),s=J(e);t=s[i++];)o.hasClass(t)?o.removeClass(t):o.addClass(t)
+else void 0!==e&&"boolean"!==n||(t=X(this),t&&Fe.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":Fe.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0
+for(t=" "+e+" ";n=this[r++];)if(1===n.nodeType&&(" "+Z(X(n))+" ").indexOf(t)>-1)return!0
+return!1}})
+var xt=/\r/g
+Ae.fn.extend({val:function(e){var t,n,r,i=this[0]
+{if(arguments.length)return r=ye(e),this.each(function(n){var i
+1===this.nodeType&&(i=r?e.call(this,n,Ae(this).val()):e,null==i?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=Ae.map(i,function(e){return null==e?"":e+""})),(t=Ae.valHooks[this.type]||Ae.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))})
+if(i)return(t=Ae.valHooks[i.type]||Ae.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:(n=i.value,"string"==typeof n?n.replace(xt,""):null==n?"":n)}}}),Ae.extend({valHooks:{option:{get:function(e){var t=Ae.find.attr(e,"value")
+return null!=t?t:Z(Ae.text(e))}},select:{get:function(e){var t,n,r,i=e.options,s=e.selectedIndex,a="select-one"===e.type,u=a?null:[],c=a?s+1:i.length
+for(r=s<0?c:a?s:0;r<c;r++)if(n=i[r],(n.selected||r===s)&&!n.disabled&&(!n.parentNode.disabled||!o(n.parentNode,"optgroup"))){if(t=Ae(n).val(),a)return t
+u.push(t)}return u},set:function(e,t){for(var n,r,i=e.options,o=Ae.makeArray(t),s=i.length;s--;)r=i[s],(r.selected=Ae.inArray(Ae.valHooks.option.get(r),o)>-1)&&(n=!0)
+return n||(e.selectedIndex=-1),o}}}}),Ae.each(["radio","checkbox"],function(){Ae.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=Ae.inArray(Ae(e).val(),t)>-1}},ve.checkOn||(Ae.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),ve.focusin="onfocusin"in e
+var kt=/^(?:focusinfocus|focusoutblur)$/,jt=function(e){e.stopPropagation()}
+Ae.extend(Ae.event,{trigger:function(t,n,r,i){var o,s,a,u,c,l,h,d,p=[r||se],f=fe.call(t,"type")?t.type:t,g=fe.call(t,"namespace")?t.namespace.split("."):[]
+if(s=d=a=r=r||se,3!==r.nodeType&&8!==r.nodeType&&!kt.test(f+Ae.event.triggered)&&(f.indexOf(".")>-1&&(g=f.split("."),f=g.shift(),g.sort()),c=f.indexOf(":")<0&&"on"+f,t=t[Ae.expando]?t:new Ae.Event(f,"object"==typeof t&&t),t.isTrigger=i?2:3,t.namespace=g.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+g.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=r),n=null==n?[t]:Ae.makeArray(n,[t]),h=Ae.event.special[f]||{},i||!h.trigger||!1!==h.trigger.apply(r,n))){if(!i&&!h.noBubble&&!be(r)){for(u=h.delegateType||f,kt.test(u+f)||(s=s.parentNode);s;s=s.parentNode)p.push(s),a=s
+a===(r.ownerDocument||se)&&p.push(a.defaultView||a.parentWindow||e)}for(o=0;(s=p[o++])&&!t.isPropagationStopped();)d=s,t.type=o>1?u:h.bindType||f,l=(Fe.get(s,"events")||{})[t.type]&&Fe.get(s,"handle"),l&&l.apply(s,n),(l=c&&s[c])&&l.apply&&ze(s)&&(t.result=l.apply(s,n),!1===t.result&&t.preventDefault())
+return t.type=f,i||t.isDefaultPrevented()||h._default&&!1!==h._default.apply(p.pop(),n)||!ze(r)||c&&ye(r[f])&&!be(r)&&(a=r[c],a&&(r[c]=null),Ae.event.triggered=f,t.isPropagationStopped()&&d.addEventListener(f,jt),r[f](),t.isPropagationStopped()&&d.removeEventListener(f,jt),Ae.event.triggered=void 0,a&&(r[c]=a)),t.result}},simulate:function(e,t,n){var r=Ae.extend(new Ae.Event,n,{type:e,isSimulated:!0})
+Ae.event.trigger(r,null,t)}}),Ae.fn.extend({trigger:function(e,t){return this.each(function(){Ae.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0]
+if(n)return Ae.event.trigger(e,t,n,!0)}}),ve.focusin||Ae.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){Ae.event.simulate(t,e.target,Ae.event.fix(e))}
+Ae.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=Fe.access(r,t)
+i||r.addEventListener(e,n,!0),Fe.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=Fe.access(r,t)-1
+i?Fe.access(r,t,i):(r.removeEventListener(e,n,!0),Fe.remove(r,t))}}})
+var Et=e.location,St=Date.now(),Tt=/\?/
+Ae.parseXML=function(t){var n
+if(!t||"string"!=typeof t)return null
+try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){n=void 0}return n&&!n.getElementsByTagName("parsererror").length||Ae.error("Invalid XML: "+t),n}
+var Pt=/\[\]$/,Ot=/\r?\n/g,Rt=/^(?:submit|button|image|reset|file)$/i,Nt=/^(?:input|select|textarea|keygen)/i
+Ae.param=function(e,t){var n,r=[],i=function(e,t){var n=ye(t)?t():t
+r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)}
+if(Array.isArray(e)||e.jquery&&!Ae.isPlainObject(e))Ae.each(e,function(){i(this.name,this.value)})
+else for(n in e)$(n,e[n],t,i)
+return r.join("&")},Ae.fn.extend({serialize:function(){return Ae.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=Ae.prop(this,"elements")
+return e?Ae.makeArray(e):this}).filter(function(){var e=this.type
+return this.name&&!Ae(this).is(":disabled")&&Nt.test(this.nodeName)&&!Rt.test(e)&&(this.checked||!Qe.test(e))}).map(function(e,t){var n=Ae(this).val()
+return null==n?null:Array.isArray(n)?Ae.map(n,function(e){return{name:t.name,value:e.replace(Ot,"\r\n")}}):{name:t.name,value:n.replace(Ot,"\r\n")}}).get()}})
+var Mt=/%20/g,Lt=/#.*$/,Dt=/([?&])_=[^&]*/,zt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Ft=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Bt=/^(?:GET|HEAD)$/,Ht=/^\/\//,Ut={},qt={},Vt="*/".concat("*"),Wt=se.createElement("a")
+Wt.href=Et.href,Ae.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:Ft.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Vt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":Ae.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?ne(ne(e,Ae.ajaxSettings),t):ne(Ae.ajaxSettings,e)},ajaxPrefilter:ee(Ut),ajaxTransport:ee(qt),ajax:function(t,n){function r(t,n,r,a){var c,d,p,C,A,_=n
+l||(l=!0,u&&e.clearTimeout(u),i=void 0,s=a||"",I.readyState=t>0?4:0,c=t>=200&&t<300||304===t,r&&(C=re(f,I,r)),C=ie(f,C,I,c),c?(f.ifModified&&(A=I.getResponseHeader("Last-Modified"),A&&(Ae.lastModified[o]=A),(A=I.getResponseHeader("etag"))&&(Ae.etag[o]=A)),204===t||"HEAD"===f.type?_="nocontent":304===t?_="notmodified":(_=C.state,d=C.data,p=C.error,c=!p)):(p=_,!t&&_||(_="error",t<0&&(t=0))),I.status=t,I.statusText=(n||_)+"",c?v.resolveWith(g,[d,_,I]):v.rejectWith(g,[I,_,p]),I.statusCode(b),b=void 0,h&&m.trigger(c?"ajaxSuccess":"ajaxError",[I,f,c?d:p]),y.fireWith(g,[I,_]),h&&(m.trigger("ajaxComplete",[I,f]),--Ae.active||Ae.event.trigger("ajaxStop")))}"object"==typeof t&&(n=t,t=void 0),n=n||{}
+var i,o,s,a,u,c,l,h,d,p,f=Ae.ajaxSetup({},n),g=f.context||f,m=f.context&&(g.nodeType||g.jquery)?Ae(g):Ae.event,v=Ae.Deferred(),y=Ae.Callbacks("once memory"),b=f.statusCode||{},C={},A={},_="canceled",I={readyState:0,getResponseHeader:function(e){var t
+if(l){if(!a)for(a={};t=zt.exec(s);)a[t[1].toLowerCase()]=t[2]
+t=a[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return l?s:null},setRequestHeader:function(e,t){return null==l&&(e=A[e.toLowerCase()]=A[e.toLowerCase()]||e,C[e]=t),this},overrideMimeType:function(e){return null==l&&(f.mimeType=e),this},statusCode:function(e){var t
+if(e)if(l)I.always(e[I.status])
+else for(t in e)b[t]=[b[t],e[t]]
+return this},abort:function(e){var t=e||_
+return i&&i.abort(t),r(0,t),this}}
+if(v.promise(I),f.url=((t||f.url||Et.href)+"").replace(Ht,Et.protocol+"//"),f.type=n.method||n.type||f.method||f.type,f.dataTypes=(f.dataType||"*").toLowerCase().match(Oe)||[""],null==f.crossDomain){c=se.createElement("a")
+try{c.href=f.url,c.href=c.href,f.crossDomain=Wt.protocol+"//"+Wt.host!=c.protocol+"//"+c.host}catch(e){f.crossDomain=!0}}if(f.data&&f.processData&&"string"!=typeof f.data&&(f.data=Ae.param(f.data,f.traditional)),te(Ut,f,n,I),l)return I
+h=Ae.event&&f.global,h&&0==Ae.active++&&Ae.event.trigger("ajaxStart"),f.type=f.type.toUpperCase(),f.hasContent=!Bt.test(f.type),o=f.url.replace(Lt,""),f.hasContent?f.data&&f.processData&&0===(f.contentType||"").indexOf("application/x-www-form-urlencoded")&&(f.data=f.data.replace(Mt,"+")):(p=f.url.slice(o.length),f.data&&(f.processData||"string"==typeof f.data)&&(o+=(Tt.test(o)?"&":"?")+f.data,delete f.data),!1===f.cache&&(o=o.replace(Dt,"$1"),p=(Tt.test(o)?"&":"?")+"_="+St+++p),f.url=o+p),f.ifModified&&(Ae.lastModified[o]&&I.setRequestHeader("If-Modified-Since",Ae.lastModified[o]),Ae.etag[o]&&I.setRequestHeader("If-None-Match",Ae.etag[o])),(f.data&&f.hasContent&&!1!==f.contentType||n.contentType)&&I.setRequestHeader("Content-Type",f.contentType),I.setRequestHeader("Accept",f.dataTypes[0]&&f.accepts[f.dataTypes[0]]?f.accepts[f.dataTypes[0]]+("*"!==f.dataTypes[0]?", "+Vt+"; q=0.01":""):f.accepts["*"])
+for(d in f.headers)I.setRequestHeader(d,f.headers[d])
+if(f.beforeSend&&(!1===f.beforeSend.call(g,I,f)||l))return I.abort()
+if(_="abort",y.add(f.complete),I.done(f.success),I.fail(f.error),i=te(qt,f,n,I)){if(I.readyState=1,h&&m.trigger("ajaxSend",[I,f]),l)return I
+f.async&&f.timeout>0&&(u=e.setTimeout(function(){I.abort("timeout")},f.timeout))
+try{l=!1,i.send(C,r)}catch(e){if(l)throw e
+r(-1,e)}}else r(-1,"No Transport")
+return I},getJSON:function(e,t,n){return Ae.get(e,t,n,"json")},getScript:function(e,t){return Ae.get(e,void 0,t,"script")}}),Ae.each(["get","post"],function(e,t){Ae[t]=function(e,n,r,i){return ye(n)&&(i=i||r,r=n,n=void 0),Ae.ajax(Ae.extend({url:e,type:t,dataType:i,data:n,success:r},Ae.isPlainObject(e)&&e))}}),Ae._evalUrl=function(e){return Ae.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,throws:!0})},Ae.fn.extend({wrapAll:function(e){var t
+return this[0]&&(ye(e)&&(e=e.call(this[0])),t=Ae(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild
+return e}).append(this)),this},wrapInner:function(e){return ye(e)?this.each(function(t){Ae(this).wrapInner(e.call(this,t))}):this.each(function(){var t=Ae(this),n=t.contents()
+n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=ye(e)
+return this.each(function(n){Ae(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){Ae(this).replaceWith(this.childNodes)}),this}}),Ae.expr.pseudos.hidden=function(e){return!Ae.expr.pseudos.visible(e)},Ae.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},Ae.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}}
+var Gt={0:200,1223:204},Yt=Ae.ajaxSettings.xhr()
+ve.cors=!!Yt&&"withCredentials"in Yt,ve.ajax=Yt=!!Yt,Ae.ajaxTransport(function(t){var n,r
+if(ve.cors||Yt&&!t.crossDomain)return{send:function(i,o){var s,a=t.xhr()
+if(a.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(s in t.xhrFields)a[s]=t.xhrFields[s]
+t.mimeType&&a.overrideMimeType&&a.overrideMimeType(t.mimeType),t.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest")
+for(s in i)a.setRequestHeader(s,i[s])
+n=function(e){return function(){n&&(n=r=a.onload=a.onerror=a.onabort=a.ontimeout=a.onreadystatechange=null,"abort"===e?a.abort():"error"===e?"number"!=typeof a.status?o(0,"error"):o(a.status,a.statusText):o(Gt[a.status]||a.status,a.statusText,"text"!==(a.responseType||"text")||"string"!=typeof a.responseText?{binary:a.response}:{text:a.responseText},a.getAllResponseHeaders()))}},a.onload=n(),r=a.onerror=a.ontimeout=n("error"),void 0!==a.onabort?a.onabort=r:a.onreadystatechange=function(){4===a.readyState&&e.setTimeout(function(){n&&r()})},n=n("abort")
+try{a.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),Ae.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),Ae.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return Ae.globalEval(e),e}}}),Ae.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),Ae.ajaxTransport("script",function(e){if(e.crossDomain){var t,n
+return{send:function(r,i){t=Ae("<script>").prop({charset:e.scriptCharset,src:e.url}).on("load error",n=function(e){t.remove(),n=null,e&&i("error"===e.type?404:200,e.type)}),se.head.appendChild(t[0])},abort:function(){n&&n()}}}})
+var Kt=[],Qt=/(=)\?(?=&|$)|\?\?/
+Ae.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Kt.pop()||Ae.expando+"_"+St++
+return this[e]=!0,e}}),Ae.ajaxPrefilter("json jsonp",function(t,n,r){var i,o,s,a=!1!==t.jsonp&&(Qt.test(t.url)?"url":"string"==typeof t.data&&0===(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&Qt.test(t.data)&&"data")
+if(a||"jsonp"===t.dataTypes[0])return i=t.jsonpCallback=ye(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,a?t[a]=t[a].replace(Qt,"$1"+i):!1!==t.jsonp&&(t.url+=(Tt.test(t.url)?"&":"?")+t.jsonp+"="+i),t.converters["script json"]=function(){return s||Ae.error(i+" was not called"),s[0]},t.dataTypes[0]="json",o=e[i],e[i]=function(){s=arguments},r.always(function(){void 0===o?Ae(e).removeProp(i):e[i]=o,t[i]&&(t.jsonpCallback=n.jsonpCallback,Kt.push(i)),s&&ye(o)&&o(s[0]),s=o=void 0}),"script"}),ve.createHTMLDocument=function(){var e=se.implementation.createHTMLDocument("").body
+return e.innerHTML="<form></form><form></form>",2===e.childNodes.length}(),Ae.parseHTML=function(e,t,n){if("string"!=typeof e)return[]
+"boolean"==typeof t&&(n=t,t=!1)
+var r,i,o
+return t||(ve.createHTMLDocument?(t=se.implementation.createHTMLDocument(""),r=t.createElement("base"),r.href=se.location.href,t.head.appendChild(r)):t=se),i=je.exec(e),o=!n&&[],i?[t.createElement(i[1])]:(i=I([e],t,o),o&&o.length&&Ae(o).remove(),Ae.merge([],i.childNodes))},Ae.fn.load=function(e,t,n){var r,i,o,s=this,a=e.indexOf(" ")
+return a>-1&&(r=Z(e.slice(a)),e=e.slice(0,a)),ye(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),s.length>0&&Ae.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,s.html(r?Ae("<div>").append(Ae.parseHTML(e)).find(r):e)}).always(n&&function(e,t){s.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},Ae.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){Ae.fn[t]=function(e){return this.on(t,e)}}),Ae.expr.pseudos.animated=function(e){return Ae.grep(Ae.timers,function(t){return e===t.elem}).length},Ae.offset={setOffset:function(e,t,n){var r,i,o,s,a,u,c,l=Ae.css(e,"position"),h=Ae(e),d={}
+"static"===l&&(e.style.position="relative"),a=h.offset(),o=Ae.css(e,"top"),u=Ae.css(e,"left"),c=("absolute"===l||"fixed"===l)&&(o+u).indexOf("auto")>-1,c?(r=h.position(),s=r.top,i=r.left):(s=parseFloat(o)||0,i=parseFloat(u)||0),ye(t)&&(t=t.call(e,n,Ae.extend({},a))),null!=t.top&&(d.top=t.top-a.top+s),null!=t.left&&(d.left=t.left-a.left+i),"using"in t?t.using.call(e,d):h.css(d)}},Ae.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){Ae.offset.setOffset(this,e,t)})
+var t,n,r=this[0]
+if(r)return r.getClientRects().length?(t=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:t.top+n.pageYOffset,left:t.left+n.pageXOffset}):{top:0,left:0}},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0}
+if("fixed"===Ae.css(r,"position"))t=r.getBoundingClientRect()
+else{for(t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;e&&(e===n.body||e===n.documentElement)&&"static"===Ae.css(e,"position");)e=e.parentNode
+e&&e!==r&&1===e.nodeType&&(i=Ae(e).offset(),i.top+=Ae.css(e,"borderTopWidth",!0),i.left+=Ae.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-Ae.css(r,"marginTop",!0),left:t.left-i.left-Ae.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent;e&&"static"===Ae.css(e,"position");)e=e.offsetParent
+return e||et})}}),Ae.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n="pageYOffset"===t
+Ae.fn[e]=function(r){return Me(this,function(e,r,i){var o
+if(be(e)?o=e:9===e.nodeType&&(o=e.defaultView),void 0===i)return o?o[t]:e[r]
+o?o.scrollTo(n?o.pageXOffset:i,n?i:o.pageYOffset):e[r]=i},e,r,arguments.length)}}),Ae.each(["top","left"],function(e,t){Ae.cssHooks[t]=L(ve.pixelPosition,function(e,n){if(n)return n=M(e,t),ut.test(n)?Ae(e).position()[t]+"px":n})}),Ae.each({Height:"height",Width:"width"},function(e,t){Ae.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){Ae.fn[r]=function(i,o){var s=arguments.length&&(n||"boolean"!=typeof i),a=n||(!0===i||!0===o?"margin":"border")
+return Me(this,function(t,n,i){var o
+return be(t)?0===r.indexOf("outer")?t["inner"+e]:t.document.documentElement["client"+e]:9===t.nodeType?(o=t.documentElement,Math.max(t.body["scroll"+e],o["scroll"+e],t.body["offset"+e],o["offset"+e],o["client"+e])):void 0===i?Ae.css(t,n,a):Ae.style(t,n,i,a)},t,s?i:void 0,s)}})}),Ae.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,t){Ae.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),Ae.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),Ae.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),Ae.proxy=function(e,t){var n,r,i
+if("string"==typeof t&&(n=e[t],t=e,e=n),ye(e))return r=ue.call(arguments,2),i=function(){return e.apply(t||this,r.concat(ue.call(arguments)))},i.guid=e.guid=e.guid||Ae.guid++,i},Ae.holdReady=function(e){e?Ae.readyWait++:Ae.ready(!0)},Ae.isArray=Array.isArray,Ae.parseJSON=JSON.parse,Ae.nodeName=o,Ae.isFunction=ye,Ae.isWindow=be,Ae.camelCase=f,Ae.type=r,Ae.now=Date.now,Ae.isNumeric=function(e){var t=Ae.type(e)
+return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return Ae})
+var Zt=e.jQuery,Xt=e.$
+return Ae.noConflict=function(t){return e.$===Ae&&(e.$=Xt),t&&e.jQuery===Ae&&(e.jQuery=Zt),Ae},t||(e.jQuery=e.$=Ae),Ae}),function(){var e,t,n
+mainContext=this,function(){function r(e,t){throw t?new Error("Could not find module "+e+" required by: "+t):new Error("Could not find module "+e)}function i(e,n){var a=e,u=o[a]
+u||(a+="/index",u=o[a])
+var c=s[a]
+if(void 0!==c)return c
+c=s[a]={},u||r(e,n)
+for(var l=u.deps,h=u.callback,d=new Array(l.length),p=0;p<l.length;p++)"exports"===l[p]?d[p]=c:"require"===l[p]?d[p]=t:d[p]=i(l[p],a)
+return h.apply(this,d),c}if("undefined"==typeof window&&"undefined"!=typeof process&&"[object process]"==={}.toString.call(process)||(n=this.Ember=this.Ember||{}),void 0===n&&(n={}),void 0===n.__loader){var o={},s={}
+e=function(e,t,n){var r={}
+n?(r.deps=t,r.callback=n):(r.deps=[],r.callback=t),o[e]=r},t=function(e){return i(e,null)},t.default=t,t.has=function(e){return!!o[e]||!!o[e+"/index"]},t._eak_seen=o,n.__loader={define:e,require:t,registry:o}}else e=n.__loader.define,t=n.__loader.require}(),e("@glimmer/encoder",["exports"],function(e){"use strict"
+e.InstructionEncoder=void 0
+var t=function(){function e(e){this.buffer=e,this.typePos=0,this.size=0}return e.prototype.encode=function(e,t){var n,r
+if(e>255)throw new Error("Opcode type over 8-bits. Got "+e+".")
+for(this.buffer.push(e|t|arguments.length-2<<8),this.typePos=this.buffer.length-1,n=2;n<arguments.length;n++){if("number"==typeof(r=arguments[n])&&r>65535)throw new Error("Operand over 16-bits. Got "+r+".")
+this.buffer.push(r)}this.size=this.buffer.length},e.prototype.patch=function(e,t){if(-1!==this.buffer[e+1])throw new Error("Trying to patch operand in populated slot instead of a reserved slot.")
+this.buffer[e+1]=t},e.prototype.patchWith=function(e,t,n){if(-1!==this.buffer[e+1])throw new Error("Trying to patch operand in populated slot instead of a reserved slot.")
+this.buffer[e+1]=t,this.buffer[e+2]=n},e}()
+e.InstructionEncoder=t}),e("@glimmer/low-level",["exports"],function(e){"use strict"
+function t(e){switch(7&e){case 0:return e>>3
+case 4:return-(e>>3)
+default:throw new Error("unreachable")}}function n(e){return e<0?Math.abs(e)<<3|4:e<<3|0}e.Stack=e.Storage=void 0
+var r=function(){function e(){this.array=[],this.next=0}return e.prototype.add=function(e){var t,n=this.next,r=this.array
+return n===r.length?this.next++:(t=r[n],this.next=t),this.array[n]=e,n},e.prototype.deref=function(e){return this.array[e]},e.prototype.drop=function(e){this.array[e]=this.next,this.next=e},e}(),i=function(){function e(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]
+this.vec=e}return e.prototype.clone=function(){return new e(this.vec.slice())},e.prototype.sliceFrom=function(t){return new e(this.vec.slice(t))},e.prototype.slice=function(t,n){return new e(this.vec.slice(t,n))},e.prototype.copy=function(e,t){this.vec[t]=this.vec[e]},e.prototype.writeRaw=function(e,t){this.vec[e]=t},e.prototype.writeSmi=function(e,t){this.vec[e]=n(t)},e.prototype.getRaw=function(e){return this.vec[e]},e.prototype.getSmi=function(e){return t(this.vec[e])},e.prototype.reset=function(){this.vec.length=0},e.prototype.len=function(){return this.vec.length},e}()
+e.Storage=r,e.Stack=i}),e("@glimmer/node",["exports","ember-babel","@glimmer/runtime"],function(e,t,n){"use strict"
+function r(e){var t=e.element,n=e.nextSibling
+return null===n?t.lastChild:n.previousSibling}e.serializeBuilder=e.NodeDOMTreeConstruction=void 0
+var i=function(e){function r(n){return(0,t.possibleConstructorReturn)(this,e.call(this,n))}return(0,t.inherits)(r,e),r.prototype.setupUselessElement=function(){},r.prototype.insertHTMLBefore=function(e,t,r){var i=t?t.previousSibling:e.lastChild,o=this.document.createRawHTMLSection(r)
+e.insertBefore(o,t)
+var s=i?i.nextSibling:e.firstChild,a=t?t.previousSibling:e.lastChild
+return new n.ConcreteBounds(e,s,a)},r.prototype.createElement=function(e){return this.document.createElement(e)},r.prototype.setAttribute=function(e,t,n){e.setAttribute(t,n)},r}(n.DOMTreeConstruction),o=function(e){function i(){var n=(0,t.possibleConstructorReturn)(this,e.apply(this,arguments))
+return n.serializeBlockDepth=0,n}return(0,t.inherits)(i,e),i.prototype.__openBlock=function(){var t=this.serializeBlockDepth++
+this.__appendComment("%+b:"+t+"%"),e.prototype.__openBlock.call(this)},i.prototype.__closeBlock=function(){e.prototype.__closeBlock.call(this),this.__appendComment("%-b:"+--this.serializeBlockDepth+"%")},i.prototype.__appendHTML=function(t){var r,i=this.__appendComment("%glmr%")
+"TABLE"===this.element.tagName&&(r=t.indexOf("<"))>-1&&"tr"===t.slice(r+1,r+3)&&(t="<tbody>"+t+"</tbody>"),""===t?this.__appendComment("% %"):e.prototype.__appendHTML.call(this,t)
+var o=this.__appendComment("%glmr%")
+return new n.ConcreteBounds(this.element,i,o)},i.prototype.__appendText=function(t){var n=r(this)
+return""===t?this.__appendComment("% %"):(n&&3===n.nodeType&&this.__appendComment("%|%"),e.prototype.__appendText.call(this,t))},i.prototype.closeElement=function(){!0===this.element.needsExtraClose&&(this.element.needsExtraClose=!1,e.prototype.closeElement.call(this)),e.prototype.closeElement.call(this)},i.prototype.openElement=function(t){return"tr"===t&&"TBODY"!==this.element.tagName&&(this.openElement("tbody"),this.constructing.needsExtraClose=!0,this.flushElement()),e.prototype.openElement.call(this,t)},i.prototype.pushRemoteElement=function(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=this.dom,o=i.createElement("script")
+o.setAttribute("glmr",n),i.insertBefore(t,o,r),e.prototype.pushRemoteElement.call(this,t,n,r)},i}(n.NewElementBuilder)
+e.NodeDOMTreeConstruction=i,e.serializeBuilder=function(e,t){return o.forInitialRender(e,t)}}),e("@glimmer/opcode-compiler",["exports","ember-utils","ember-babel","@glimmer/util","@glimmer/vm","@glimmer/wire-format","@glimmer/encoder","@glimmer/program"],function(e,t,n,r,i,o,s,a){"use strict"
+function u(){if(b)return b
+var e=b=new y
+e.add(m.Text,function(e,t){t.text(e[1])}),e.add(m.Comment,function(e,t){t.comment(e[1])}),e.add(m.CloseElement,function(e,t){t.closeElement()}),e.add(m.FlushElement,function(e,t){t.flushElement()}),e.add(m.Modifier,function(e,t){var n=t.referrer,r=e[1],i=e[2],o=e[3],s=t.compiler.resolveModifier(r,n)
+if(null===s)throw new Error("Compile Error "+r+" is not a modifier: Helpers may not be used in the element form.")
+t.modifier(s,i,o)}),e.add(m.StaticAttr,function(e,t){var n=e[1],r=e[2],i=e[3]
+t.staticAttr(n,i,r)}),e.add(m.DynamicAttr,function(e,t){c(e,!1,t)}),e.add(m.TrustingAttr,function(e,t){c(e,!0,t)}),e.add(m.OpenElement,function(e,t){t.openPrimitiveElement(e[1])}),e.add(m.OpenSplattedElement,function(e,t){t.setComponentAttrs(!0),t.putComponentOperations(),t.openPrimitiveElement(e[1])}),e.add(m.Component,function(e,t){var n,i,o,s=e[1],a=e[2],u=e[3],c=e[4],l=t.referrer,h=t.compiler.resolveLayoutForTag(s,l),d=h.handle,p=h.capabilities,f=h.compilable
+if(null===d||null===p)throw new Error("Compile Error: Cannot find component "+s)
+n=[[m.ClientSideStatement,g.SetComponentAttrs,!0]].concat(a,[[m.ClientSideStatement,g.SetComponentAttrs,!1]]),i=t.inlineBlock({statements:n,parameters:r.EMPTY_ARRAY}),o=t.template(c),f?(t.pushComponentDefinition(d),t.invokeStaticComponent(p,f,i,null,u,!1,o&&o)):(t.pushComponentDefinition(d),t.invokeComponent(p,i,null,u,!1,o&&o))}),e.add(m.Partial,function(e,t){var n=e[1],r=e[2],i=t.referrer
+t.replayableIf({args:function(){return t.expr(n),t.dup(),2},ifTrue:function(){t.invokePartial(i,t.evalSymbols(),r),t.popScope(),t.popFrame()}})}),e.add(m.Yield,function(e,t){var n=e[1],r=e[2]
+t.yield(n,r)}),e.add(m.AttrSplat,function(e,t){var n=e[1]
+t.yield(n,[]),t.didCreateElement(i.Register.s0),t.setComponentAttrs(!1)}),e.add(m.Debugger,function(e,t){var n=e[1]
+t.debugger(t.evalSymbols(),n)}),e.add(m.ClientSideStatement,function(e,n){t.compile(e,n)}),e.add(m.Append,function(e,t){var n=e[1],r=e[2]
+!0!==(t.compileInline(e)||n)&&t.guardedAppend(n,r)}),e.add(m.Block,function(e,t){var n=e[1],r=e[2],i=e[3],o=e[4],s=e[5],a=t.template(o),u=t.template(s)
+t.compileBlock(n,r,i,a&&a,u&&u)})
+var t=new y(1)
+return t.add(g.OpenComponentElement,function(e,t){t.putComponentOperations(),t.openPrimitiveElement(e[2])}),t.add(g.DidCreateElement,function(e,t){t.didCreateElement(i.Register.s0)}),t.add(g.SetComponentAttrs,function(e,t){t.setComponentAttrs(e[2])}),t.add(g.Debugger,function(){}),t.add(g.DidRenderLayout,function(e,t){t.didRenderLayout(i.Register.s0)}),e}function c(e,t,n){var r=e[1],i=e[2],o=e[3]
+n.expr(i),o?n.dynamicAttr(r,o,t):n.dynamicAttr(r,null,t)}function l(){if(C)return C
+var e=C=new y
+return e.add(m.Unknown,function(e,t){var n=t.compiler,r=t.referrer,i=t.containingLayout.asPartial,o=e[1],s=n.resolveHelper(o,r)
+null!==s?t.helper(s,null,null):i?t.resolveMaybeLocal(o):(t.getVariable(0),t.getProperty(o))}),e.add(m.Concat,function(e,t){var n,r=e[1]
+for(n=0;n<r.length;n++)t.expr(r[n])
+t.concat(r.length)}),e.add(m.Helper,function(e,t){var n,r,i=t.compiler,o=t.referrer,s=e[1],a=e[2],u=e[3]
+if("component"===s)return n=a[0],r=a.slice(1),void t.curryComponent(n,r,u,!0)
+var c=i.resolveHelper(s,o)
+if(null===c)throw new Error("Compile Error: "+s+" is not a helper")
+t.helper(c,a,u)}),e.add(m.Get,function(e,t){var n,r=e[1],i=e[2]
+for(t.getVariable(r),n=0;n<i.length;n++)t.getProperty(i[n])}),e.add(m.MaybeLocal,function(e,t){var n,r,i=e[1]
+for(t.containingLayout.asPartial?(n=i[0],i=i.slice(1),t.resolveMaybeLocal(n)):t.getVariable(0),r=0;r<i.length;r++)t.getProperty(i[r])}),e.add(m.Undefined,function(e,t){return t.pushPrimitiveReference(void 0)}),e.add(m.HasBlock,function(e,t){t.hasBlock(e[1])}),e.add(m.HasBlockParams,function(e,t){t.hasBlockParams(e[1])}),e}function h(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new A,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new _
+return e.add("if",function(e,t,n,r,i){if(!e||1!==e.length)throw new Error("SYNTAX ERROR: #if requires a single argument")
+i.replayableIf({args:function(){return i.expr(e[0]),i.toBoolean(),1},ifTrue:function(){i.invokeStaticBlock(n)},ifFalse:function(){r&&i.invokeStaticBlock(r)}})}),e.add("unless",function(e,t,n,r,i){if(!e||1!==e.length)throw new Error("SYNTAX ERROR: #unless requires a single argument")
+i.replayableIf({args:function(){return i.expr(e[0]),i.toBoolean(),1},ifTrue:function(){r&&i.invokeStaticBlock(r)},ifFalse:function(){i.invokeStaticBlock(n)}})}),e.add("with",function(e,t,n,r,i){if(!e||1!==e.length)throw new Error("SYNTAX ERROR: #with requires a single argument")
+i.replayableIf({args:function(){return i.expr(e[0]),i.dup(),i.toBoolean(),2},ifTrue:function(){i.invokeStaticBlock(n,1)},ifFalse:function(){r&&i.invokeStaticBlock(r)}})}),e.add("each",function(e,t,n,r,o){o.replayable({args:function(){return t&&"key"===t[0][0]?o.expr(t[1][0]):o.pushPrimitiveReference(null),o.expr(e[0]),2},body:function(){o.putIterator(),o.jumpUnless("ELSE"),o.pushFrame(),o.dup(i.Register.fp,1),o.returnTo("ITER"),o.enterList("BODY"),o.label("ITER"),o.iterate("BREAK"),o.label("BODY"),o.invokeStaticBlock(n,2),o.pop(2),o.jump("FINALLY"),o.label("BREAK"),o.exitList(),o.popFrame(),o.jump("FINALLY"),o.label("ELSE"),r&&o.invokeStaticBlock(r)}})}),e.add("in-element",function(e,t,n,r,i){if(!e||1!==e.length)throw new Error("SYNTAX ERROR: #in-element requires a single argument")
+i.replayableIf({args:function(){var n,r,o=t[0],s=t[1]
+for(n=0;n<o.length;n++){if("nextSibling"!==(r=o[n])&&"guid"!==r)throw new Error("SYNTAX ERROR: #in-element does not take a `"+o[0]+"` option")
+i.expr(s[n])}return i.expr(e[0]),i.dup(),4},ifTrue:function(){i.pushRemoteElement(),i.invokeStaticBlock(n),i.popRemoteElement()}})}),e.add("-with-dynamic-vars",function(e,t,n,r,i){var o,s
+t?(o=t[0],s=t[1],i.compileParams(s),i.pushDynamicScope(),i.bindDynamicScope(o),i.invokeStaticBlock(n),i.popDynamicScope()):i.invokeStaticBlock(n)}),e.add("component",function(e,t,n,r,i){var o=e[0]
+if("string"!=typeof o||!i.staticComponentHelper(e[0],t,n)){var s=e[0],a=e.slice(1)
+i.dynamicComponent(s,a,t,!0,n,r)}}),t.add("component",function(e,t,n,r){var i=t&&t[0]
+if("string"==typeof i&&r.staticComponentHelper(i,n,null))return!0
+var o=t[0],s=t.slice(1)
+return r.dynamicComponent(o,s,n,!0,null,null),!0}),{blocks:e,inlines:t}}function d(e,t){var n,r=u()
+for(n=0;n<e.length;n++)r.compile(e[n],t)
+return t.commit()}function p(e,t){return new w(t,{block:{statements:e.block.statements,parameters:r.EMPTY_ARRAY},containingLayout:e})}function f(e){var t=e.id,n=e.meta,i=e.block,o=void 0,s=t||"client-"+L++
+return{id:s,meta:n,create:function(e,t){var a=t?(0,r.assign)({},t,n):n
+return o||(o=JSON.parse(i)),new D(e,{id:s,block:o,referrer:a})}}}e.AbstractCompiler=e.compile=e.LazyCompiler=e.PLACEHOLDER_HANDLE=e.WrappedBuilder=e.logOpcode=e.debugSlice=e.debug=e.templateFactory=e.PartialDefinition=e.StdOpcodeBuilder=e.OpcodeBuilder=e.EagerOpcodeBuilder=e.LazyOpcodeBuilder=e.CompilableProgram=e.CompilableBlock=e.Macros=e.ATTRS_BLOCK=void 0
+var g;(function(e){e[e.OpenComponentElement=0]="OpenComponentElement",e[e.DidCreateElement=1]="DidCreateElement",e[e.SetComponentAttrs=2]="SetComponentAttrs",e[e.DidRenderLayout=3]="DidRenderLayout",e[e.Debugger=4]="Debugger"})(g||(g={}))
+var m=o.Ops,v="&attrs",y=function(){function e(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0
+this.offset=e,this.names=(0,r.dict)(),this.funcs=[]}return e.prototype.add=function(e,t){this.funcs.push(t),this.names[e]=this.funcs.length-1},e.prototype.compile=function(e,t){var n=e[this.offset],r=this.names[n];(0,this.funcs[r])(e,t)},e}(),b=void 0,C=void 0,A=function(){function e(){this.names=(0,r.dict)(),this.funcs=[]}return e.prototype.add=function(e,t){this.funcs.push(t),this.names[e]=this.funcs.length-1},e.prototype.addMissing=function(e){this.missing=e},e.prototype.compile=function(e,t,n,r,i,o){var s=this.names[e]
+void 0===s?(0,this.missing)(e,t,n,r,i,o):(0,this.funcs[s])(t,n,r,i,o)},e}(),_=function(){function e(){this.names=(0,r.dict)(),this.funcs=[]}return e.prototype.add=function(e,t){this.funcs.push(t),this.names[e]=this.funcs.length-1},e.prototype.addMissing=function(e){this.missing=e},e.prototype.compile=function(e,t){var n,r,i,o,s=e[1]
+if(!Array.isArray(s))return["expr",s]
+var a=void 0,u=void 0,c=void 0
+if(s[0]===m.Helper)a=s[1],u=s[2],c=s[3]
+else{if(s[0]!==m.Unknown)return["expr",s]
+a=s[1],u=c=null}var l=this.names[a]
+return void 0===l&&this.missing?(n=this.missing,r=n(a,u,c,t),!1===r?["expr",s]:r):void 0!==l?(i=this.funcs[l],o=i(a,u,c,t),!1===o?["expr",s]:o):["expr",s]},e}(),I=function(){function e(e,t){this.compiler=e,this.layout=t,this.compiled=null}return e.prototype.compile=function(){if(null!==this.compiled)return this.compiled
+this.compiled=-1
+var e=this.layout.block.statements
+return this.compiled=this.compiler.add(e,this.layout)},(0,n.createClass)(e,[{key:"symbolTable",get:function(){return this.layout.block}}]),e}(),w=function(){function e(e,t){this.compiler=e,this.parsed=t,this.compiled=null}return e.prototype.compile=function(){if(null!==this.compiled)return this.compiled
+this.compiled=-1
+var e=this.parsed,t=e.block.statements,n=e.containingLayout
+return this.compiled=this.compiler.add(t,n)},(0,n.createClass)(e,[{key:"symbolTable",get:function(){return this.parsed.block}}]),e}(),x=function(){function e(e,t,n){this.main=e,this.trustingGuardedAppend=t,this.cautiousGuardedAppend=n}return e.compile=function(t){return new e(this.std(t,function(e){return e.main()}),this.std(t,function(e){return e.stdAppend(!0)}),this.std(t,function(e){return e.stdAppend(!1)}))},e.std=function(e,t){return T.build(e,t)},e.prototype.getAppend=function(e){return e?this.trustingGuardedAppend:this.cautiousGuardedAppend},e}(),k=function(){function e(e,t,n){this.macros=e,this.program=t,this.resolver=n,this.initialize()}return e.prototype.initialize=function(){this.stdLib=x.compile(this)},e.prototype.compileInline=function(e,t){return this.macros.inlines.compile(e,t)},e.prototype.compileBlock=function(e,t,n,r,i,o){this.macros.blocks.compile(e,t,n,r,i,o)},e.prototype.add=function(e,t){return d(e,this.builderFor(t))},e.prototype.commit=function(e,t){var n,r,i=this.program.heap,o=i.malloc()
+for(n=0;n<t.length;n++)r=t[n],"function"==typeof r?i.pushPlaceholder(r):i.push(r)
+return i.finishMalloc(o,e),o},e.prototype.resolveLayoutForTag=function(e,t){var n=this.resolver,r=n.lookupComponentDefinition(e,t)
+return null===r?{handle:null,capabilities:null,compilable:null}:this.resolveLayoutForHandle(r)},e.prototype.resolveLayoutForHandle=function(e){var t=this.resolver,n=t.getCapabilities(e),r=null
+return n.dynamicLayout||(r=t.getLayout(e)),{handle:e,capabilities:n,compilable:r}},e.prototype.resolveModifier=function(e,t){return this.resolver.lookupModifier(e,t)},e.prototype.resolveHelper=function(e,t){return this.resolver.lookupHelper(e,t)},(0,n.createClass)(e,[{key:"constants",get:function(){return this.program.constants}}]),e}(),j=function(){function e(e,t){this.compiler=e,this.layout=t,this.compiled=null
+var n=t.block
+this.symbolTable={hasEval:n.hasEval,symbols:n.symbols.concat([v])}}return e.prototype.compile=function(){if(null!==this.compiled)return this.compiled
+var e=this.compiler,t=this.layout,n=e.builderFor(t)
+n.startLabels(),n.fetch(i.Register.s1),n.getComponentTagName(i.Register.s0),n.primitiveReference(),n.dup(),n.load(i.Register.s1),n.jumpUnless("BODY"),n.fetch(i.Register.s1),n.putComponentOperations(),n.openDynamicElement(),n.didCreateElement(i.Register.s0),n.flushElement(),n.label("BODY"),n.invokeStaticBlock(p(t,e)),n.fetch(i.Register.s1),n.jumpUnless("END"),n.closeElement(),n.label("END"),n.load(i.Register.s1),n.stopLabels()
+var r=n.commit()
+return this.compiled=r},e}(),E=function(){function e(e){this.builder=e}return e.prototype.static=function(e,t){var n,r,i,o=t[0],s=t[1],a=t[2],u=t[3],c=this.builder
+null!==e&&(n=c.compiler.resolveLayoutForHandle(e),r=n.capabilities,i=n.compilable,i?(c.pushComponentDefinition(e),c.invokeStaticComponent(r,i,null,o,s,!1,a,u)):(c.pushComponentDefinition(e),c.invokeComponent(r,null,o,s,!1,a,u)))},e}(),S=function(){function e(){this.labels=(0,r.dict)(),this.targets=[]}return e.prototype.label=function(e,t){this.labels[e]=t},e.prototype.target=function(e,t){this.targets.push({at:e,target:t})},e.prototype.patch=function(e){var t,n,r,i,o,s=this.targets,a=this.labels
+for(t=0;t<s.length;t++)n=s[t],r=n.at,i=n.target,o=a[i]-r,e.patch(r,o)},e}(),T=function(){function e(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0
+this.size=t,this.encoder=new s.InstructionEncoder([]),this.labelsStack=new r.Stack,this.compiler=e}return e.build=function(t,n){var r=new e(t)
+return n(r),r.commit()},e.prototype.push=function(e){switch(arguments.length){case 1:return this.encoder.encode(e,0)
+case 2:return this.encoder.encode(e,0,arguments[1])
+case 3:return this.encoder.encode(e,0,arguments[1],arguments[2])
+default:return this.encoder.encode(e,0,arguments[1],arguments[2],arguments[3])}},e.prototype.pushMachine=function(e){switch(arguments.length){case 1:return this.encoder.encode(e,1024)
+case 2:return this.encoder.encode(e,1024,arguments[1])
+case 3:return this.encoder.encode(e,1024,arguments[1],arguments[2])
+default:return this.encoder.encode(e,1024,arguments[1],arguments[2],arguments[3])}},e.prototype.commit=function(){return this.pushMachine(24),this.compiler.commit(this.size,this.encoder.buffer)},e.prototype.reserve=function(e){this.encoder.encode(e,0,-1)},e.prototype.reserveWithOperand=function(e,t){this.encoder.encode(e,0,-1,t)},e.prototype.reserveMachine=function(e){this.encoder.encode(e,1024,-1)},e.prototype.main=function(){this.push(68,i.Register.s0),this.invokePreparedComponent(!1,!1,!0)},e.prototype.appendHTML=function(){this.push(28)},e.prototype.appendSafeHTML=function(){this.push(29)},e.prototype.appendDocumentFragment=function(){this.push(30)},e.prototype.appendNode=function(){this.push(31)},e.prototype.appendText=function(){this.push(32)},e.prototype.beginComponentTransaction=function(){this.push(91)},e.prototype.commitComponentTransaction=function(){this.push(92)},e.prototype.pushDynamicScope=function(){this.push(44)},e.prototype.popDynamicScope=function(){this.push(45)},e.prototype.pushRemoteElement=function(){this.push(41)},e.prototype.popRemoteElement=function(){this.push(42)},e.prototype.pushRootScope=function(e,t){this.push(20,e,t?1:0)},e.prototype.pushVirtualRootScope=function(e){this.push(21,e)},e.prototype.pushChildScope=function(){this.push(22)},e.prototype.popScope=function(){this.push(23)},e.prototype.prepareArgs=function(e){this.push(79,e)},e.prototype.createComponent=function(e,t){this.push(81,0|t,e)},e.prototype.registerComponentDestructor=function(e){this.push(82,e)},e.prototype.putComponentOperations=function(){this.push(83)},e.prototype.getComponentSelf=function(e){this.push(84,e)},e.prototype.getComponentTagName=function(e){this.push(85,e)},e.prototype.getComponentLayout=function(e){this.push(86,e)},e.prototype.setupForEval=function(e){this.push(87,e)},e.prototype.invokeComponentLayout=function(e){this.push(90,e)},e.prototype.didCreateElement=function(e){this.push(93,e)},e.prototype.didRenderLayout=function(e){this.push(94,e)},e.prototype.pushFrame=function(){this.pushMachine(57)},e.prototype.popFrame=function(){this.pushMachine(58)},e.prototype.pushSmallFrame=function(){this.pushMachine(59)},e.prototype.popSmallFrame=function(){this.pushMachine(60)},e.prototype.invokeVirtual=function(){this.pushMachine(49)},e.prototype.invokeYield=function(){this.push(51)},e.prototype.toBoolean=function(){this.push(63)},e.prototype.invokePreparedComponent=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null
+this.beginComponentTransaction(),this.pushDynamicScope(),this.createComponent(i.Register.s0,e),r&&r(),this.registerComponentDestructor(i.Register.s0),this.getComponentSelf(i.Register.s0),this.pushVirtualRootScope(i.Register.s0),this.setVariable(0),this.setupForEval(i.Register.s0),n&&this.setNamedVariables(i.Register.s0),t&&this.setBlocks(i.Register.s0),this.pop(),this.invokeComponentLayout(i.Register.s0),this.didRenderLayout(i.Register.s0),this.popFrame(),this.popScope(),this.popDynamicScope(),this.commitComponentTransaction()},e.prototype.compileInline=function(e){return this.compiler.compileInline(e,this)},e.prototype.compileBlock=function(e,t,n,r,i){this.compiler.compileBlock(e,t,n,r,i,this)},e.prototype.label=function(e){this.labels.label(e,this.nextPos)},e.prototype.startLabels=function(){this.labelsStack.push(new S)},e.prototype.stopLabels=function(){this.labelsStack.pop().patch(this.encoder)},e.prototype.pushCurriedComponent=function(){this.push(74)},e.prototype.pushDynamicComponentInstance=function(){this.push(73)},e.prototype.openDynamicElement=function(){this.push(34)},e.prototype.flushElement=function(){this.push(38)},e.prototype.closeElement=function(){this.push(39)},e.prototype.putIterator=function(){this.push(66)},e.prototype.enterList=function(e){this.reserve(64),this.labels.target(this.pos,e)},e.prototype.exitList=function(){this.push(65)},e.prototype.iterate=function(e){this.reserve(67),this.labels.target(this.pos,e)},e.prototype.setNamedVariables=function(e){this.push(2,e)},e.prototype.setBlocks=function(e){this.push(3,e)},e.prototype.setVariable=function(e){this.push(4,e)},e.prototype.setBlock=function(e){this.push(5,e)},e.prototype.getVariable=function(e){this.push(6,e)},e.prototype.getBlock=function(e){this.push(8,e)},e.prototype.hasBlock=function(e){this.push(9,e)},e.prototype.concat=function(e){this.push(11,e)},e.prototype.load=function(e){this.push(18,e)},e.prototype.fetch=function(e){this.push(19,e)},e.prototype.dup=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:i.Register.sp,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0
+return this.push(16,e,t)},e.prototype.pop=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1
+return this.push(17,e)},e.prototype.returnTo=function(e){this.reserveMachine(25),this.labels.target(this.pos,e)},e.prototype.primitiveReference=function(){this.push(14)},e.prototype.reifyU32=function(){this.push(15)},e.prototype.enter=function(e){this.push(61,e)},e.prototype.exit=function(){this.push(62)},e.prototype.return=function(){this.pushMachine(24)},e.prototype.jump=function(e){this.reserveMachine(52),this.labels.target(this.pos,e)},e.prototype.jumpIf=function(e){this.reserve(53),this.labels.target(this.pos,e)},e.prototype.jumpUnless=function(e){this.reserve(54),this.labels.target(this.pos,e)},e.prototype.jumpEq=function(e,t){this.reserveWithOperand(55,e),this.labels.target(this.pos,t)},e.prototype.assertSame=function(){this.push(56)},e.prototype.pushEmptyArgs=function(){this.push(77)},e.prototype.switch=function(e,t){function n(e,t){s.push({match:e,callback:t,label:"CLAUSE"+a++})}var r,i,o=this,s=[],a=0
+for(t(n),this.enter(2),this.assertSame(),this.reifyU32(),this.startLabels(),s.slice(0,-1).forEach(function(e){return o.jumpEq(e.match,e.label)}),r=s.length-1;r>=0;r--)i=s[r],this.label(i.label),this.pop(2),i.callback(),0!==r&&this.jump("END")
+this.label("END"),this.stopLabels(),this.exit()},e.prototype.stdAppend=function(e){var t=this
+this.switch(this.contentType(),function(n){n(1,function(){e?(t.assertSame(),t.appendHTML()):t.appendText()}),n(0,function(){t.pushCurriedComponent(),t.pushDynamicComponentInstance(),t.invokeBareComponent()}),n(3,function(){t.assertSame(),t.appendSafeHTML()}),n(4,function(){t.assertSame(),t.appendDocumentFragment()}),n(5,function(){t.assertSame(),t.appendNode()})})},e.prototype.populateLayout=function(e){this.push(89,e)},e.prototype.invokeBareComponent=function(){var e=this
+this.fetch(i.Register.s0),this.dup(i.Register.sp,1),this.load(i.Register.s0),this.pushFrame(),this.pushEmptyArgs(),this.prepareArgs(i.Register.s0),this.invokePreparedComponent(!1,!1,!0,function(){e.getComponentLayout(i.Register.s0),e.populateLayout(i.Register.s0)}),this.load(i.Register.s0)},e.prototype.isComponent=function(){this.push(69)},e.prototype.contentType=function(){this.push(70)},e.prototype.pushBlockScope=function(){this.push(47)},(0,n.createClass)(e,[{key:"pos",get:function(){return this.encoder.typePos}},{key:"nextPos",get:function(){return this.encoder.size}},{key:"labels",get:function(){return this.labelsStack.current}}]),e}(),P=function(e){function t(t,r){var i=(0,n.possibleConstructorReturn)(this,e.call(this,t,r?r.block.symbols.length:0))
+return i.containingLayout=r,i.component=new E(i),i.expressionCompiler=l(),i.isComponentAttrs=!1,i.constants=t.constants,i.stdLib=t.stdLib,i}return(0,n.inherits)(t,e),t.prototype.setComponentAttrs=function(e){this.isComponentAttrs=e},t.prototype.expr=function(e){Array.isArray(e)?this.expressionCompiler.compile(e,this):this.pushPrimitiveReference(e)},t.prototype.pushArgs=function(e,t){var n=this.constants.stringArray(e)
+this.push(76,n,t)},t.prototype.pushYieldableBlock=function(e){this.pushSymbolTable(e&&e.symbolTable),this.pushBlockScope(),this.pushBlock(e)},t.prototype.curryComponent=function(e,t,n,r){var o=this.containingLayout.referrer
+this.pushFrame(),this.compileArgs(t,n,null,r),this.push(80),this.expr(e),this.push(71,this.constants.serializable(o)),this.popFrame(),this.fetch(i.Register.v0)},t.prototype.pushSymbolTable=function(e){var t
+e?(t=this.constants.serializable(e),this.push(48,t)):this.primitive(null)},t.prototype.invokeComponent=function(e,t,n,r,o,s){var a=this,u=arguments.length>6&&void 0!==arguments[6]?arguments[6]:null,c=arguments[7]
+this.fetch(i.Register.s0),this.dup(i.Register.sp,1),this.load(i.Register.s0),this.pushFrame()
+var l=!0===e||e.prepareArgs||!(!r||0===r[0].length)
+this.compileArgs(n,r,{main:s,else:u,attrs:t},o),this.prepareArgs(i.Register.s0),this.invokePreparedComponent(null!==s,!!(s||u||t),l,function(){c?(a.pushSymbolTable(c.symbolTable),a.pushLayout(c),a.resolveLayout()):a.getComponentLayout(i.Register.s0),a.populateLayout(i.Register.s0)}),this.load(i.Register.s0)},t.prototype.invokeStaticComponent=function(e,t,n,o,s,a,u){var c,l,h,d,p,f,g,m,y,b,C,A=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null,_=t.symbolTable
+if(_.hasEval||e.prepareArgs)return void this.invokeComponent(e,n,o,s,a,u,A,t)
+this.fetch(i.Register.s0),this.dup(i.Register.sp,1),this.load(i.Register.s0)
+var I=_.symbols
+e.createArgs&&(this.pushFrame(),this.compileArgs(null,s,null,a)),this.beginComponentTransaction(),e.dynamicScope&&this.pushDynamicScope(),e.createInstance&&this.createComponent(i.Register.s0,null!==u),e.createArgs&&this.popFrame(),this.pushFrame(),this.registerComponentDestructor(i.Register.s0)
+var w=[]
+for(this.getComponentSelf(i.Register.s0),w.push({symbol:0,isBlock:!1}),c=0;c<I.length;c++)switch(l=I[c],l.charAt(0)){case"&":if(h=null,"&default"===l)h=u
+else if("&inverse"===l)h=A
+else{if(l!==v)throw(0,r.unreachable)()
+h=n}h?(this.pushYieldableBlock(h),w.push({symbol:c+1,isBlock:!0})):(this.pushYieldableBlock(null),w.push({symbol:c+1,isBlock:!0}))
+break
+case"@":if(!s)break
+d=s[0],p=s[1],f=l,a&&(f=l.slice(1)),g=d.indexOf(f),-1!==g&&(this.expr(p[g]),w.push({symbol:c+1,isBlock:!1}))}for(this.pushRootScope(I.length+1,!!(u||A||n)),m=w.length-1;m>=0;m--)y=w[m],b=y.symbol,C=y.isBlock,C?this.setBlock(b):this.setVariable(b)
+this.invokeStatic(t),e.createInstance&&this.didRenderLayout(i.Register.s0),this.popFrame(),this.popScope(),e.dynamicScope&&this.popDynamicScope(),this.commitComponentTransaction(),this.load(i.Register.s0)},t.prototype.dynamicComponent=function(e,t,n,r,i){var o=this,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null
+this.replayable({args:function(){return o.expr(e),o.dup(),2},body:function(){o.jumpUnless("ELSE"),o.resolveDynamicComponent(o.containingLayout.referrer),o.pushDynamicComponentInstance(),o.invokeComponent(!0,null,t,n,r,i,s),o.label("ELSE")}})},t.prototype.yield=function(e,t){this.compileArgs(t,null,null,!1),this.getBlock(e),this.resolveBlock(),this.invokeYield(),this.popScope(),this.popFrame()},t.prototype.guardedAppend=function(e,t){this.pushFrame(),this.expr(e),this.pushMachine(50,this.stdLib.getAppend(t)),this.popFrame()},t.prototype.invokeStaticBlock=function(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=e.symbolTable.parameters,o=r.length,s=Math.min(n,o)
+if(this.pushFrame(),s)for(this.pushChildScope(),t=0;t<s;t++)this.dup(i.Register.fp,n-t),this.setVariable(r[t])
+this.pushBlock(e),this.resolveBlock(),this.invokeVirtual(),s&&this.popScope(),this.popFrame()},t.prototype.string=function(e){return this.constants.string(e)},t.prototype.names=function(e){var t,n,r=[]
+for(t=0;t<e.length;t++)n=e[t],r[t]=this.constants.string(n)
+return this.constants.array(r)},t.prototype.symbols=function(e){return this.constants.array(e)},t.prototype.primitive=function(e){var t=0,n=void 0
+switch(typeof e){case"number":e%1==0?e>-1?n=e:(n=this.constants.number(e),t=4):(n=this.constants.number(e),t=1)
+break
+case"string":n=this.string(e),t=2
+break
+case"boolean":n=0|e,t=3
+break
+case"object":n=2,t=3
+break
+case"undefined":n=3,t=3
+break
+default:throw new Error("Invalid primitive passed to pushPrimitive")}var r=this.sizeImmediate(n<<3|t,n)
+this.push(13,r)},t.prototype.sizeImmediate=function(e,t){return e>=65535||e<0?this.constants.number(t)<<3|5:e},t.prototype.pushPrimitiveReference=function(e){this.primitive(e),this.primitiveReference()},t.prototype.pushComponentDefinition=function(e){this.push(72,this.constants.handle(e))},t.prototype.resolveDynamicComponent=function(e){this.push(75,this.constants.serializable(e))},t.prototype.staticComponentHelper=function(e,t,n){var r,i=this.compiler.resolveLayoutForTag(e,this.referrer),o=i.handle,s=i.capabilities,a=i.compilable
+if(null!==o&&null!==s&&a){if(t)for(r=0;r<t.length;r+=2)t[r][0]="@"+t[r][0]
+return this.pushComponentDefinition(o),this.invokeStaticComponent(s,a,null,null,t,!1,n&&n),!0}return!1},t.prototype.invokePartial=function(e,t,n){var r=this.constants.serializable(e),i=this.constants.stringArray(t),o=this.constants.array(n)
+this.push(95,r,i,o)},t.prototype.resolveMaybeLocal=function(e){this.push(96,this.string(e))},t.prototype.debugger=function(e,t){this.push(97,this.constants.stringArray(e),this.constants.array(t))},t.prototype.text=function(e){this.push(26,this.constants.string(e))},t.prototype.openPrimitiveElement=function(e){this.push(33,this.constants.string(e))},t.prototype.modifier=function(e,t,n){this.pushFrame(),this.compileArgs(t,n,null,!0),this.push(40,this.constants.handle(e)),this.popFrame()},t.prototype.comment=function(e){var t=this.constants.string(e)
+this.push(27,t)},t.prototype.dynamicAttr=function(e,t,n){var r=this.constants.string(e),i=t?this.constants.string(t):0
+this.isComponentAttrs?this.push(37,r,!0===n?1:0,i):this.push(36,r,!0===n?1:0,i)},t.prototype.staticAttr=function(e,t,n){var r,i=this.constants.string(e),o=t?this.constants.string(t):0
+this.isComponentAttrs?(this.pushPrimitiveReference(n),this.push(37,i,1,o)):(r=this.constants.string(n),this.push(35,i,r,o))},t.prototype.hasBlockParams=function(e){this.getBlock(e),this.resolveBlock(),this.push(10)},t.prototype.getProperty=function(e){this.push(7,this.string(e))},t.prototype.helper=function(e,t,n){this.pushFrame(),this.compileArgs(t,n,null,!0),this.push(1,this.constants.handle(e)),this.popFrame(),this.fetch(i.Register.v0)},t.prototype.bindDynamicScope=function(e){this.push(43,this.names(e))},t.prototype.replayable=function(e){var t=e.args,n=e.body
+this.startLabels(),this.pushFrame(),this.returnTo("ENDINITIAL")
+var r=t()
+this.enter(r),n(),this.label("FINALLY"),this.exit(),this.return(),this.label("ENDINITIAL"),this.popFrame(),this.stopLabels()},t.prototype.replayableIf=function(e){var t=this,n=e.args,r=e.ifTrue,i=e.ifFalse
+this.replayable({args:n,body:function(){t.jumpUnless("ELSE"),r(),t.jump("FINALLY"),t.label("ELSE"),i&&i()}})},t.prototype.inlineBlock=function(e){return new w(this.compiler,{block:e,containingLayout:this.containingLayout})},t.prototype.evalSymbols=function(){var e=this.containingLayout.block
+return e.hasEval?e.symbols:null},t.prototype.compileParams=function(e){var t
+if(!e)return 0
+for(t=0;t<e.length;t++)this.expr(e[t])
+return e.length},t.prototype.compileArgs=function(e,t,n,i){n&&(this.pushYieldableBlock(n.main),this.pushYieldableBlock(n.else),this.pushYieldableBlock(n.attrs))
+var o,s,a=this.compileParams(e),u=a<<4
+i&&(u|=8),n&&(u|=7)
+var c=r.EMPTY_ARRAY
+if(t)for(c=t[0],o=t[1],s=0;s<o.length;s++)this.expr(o[s])
+this.pushArgs(c,u)},t.prototype.template=function(e){return e?this.inlineBlock(e):null},(0,n.createClass)(t,[{key:"referrer",get:function(){return this.containingLayout&&this.containingLayout.referrer}}]),t}(T),O=function(e){function t(){return(0,n.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,n.inherits)(t,e),t.prototype.pushBlock=function(e){e?this.pushOther(e):this.primitive(null)},t.prototype.resolveBlock=function(){this.push(46)},t.prototype.pushLayout=function(e){e?this.pushOther(e):this.primitive(null)},t.prototype.resolveLayout=function(){this.push(46)},t.prototype.invokeStatic=function(e){this.pushOther(e),this.push(46),this.pushMachine(49)},t.prototype.pushOther=function(e){this.push(12,this.other(e))},t.prototype.other=function(e){return this.constants.other(e)},t}(P),R=function(e){function t(){return(0,n.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,n.inherits)(t,e),t.prototype.pushBlock=function(e){var t=e?e.compile():null
+this.primitive(t)},t.prototype.resolveBlock=function(){},t.prototype.pushLayout=function(e){e?this.primitive(e.compile()):this.primitive(null)},t.prototype.resolveLayout=function(){},t.prototype.invokeStatic=function(e){var t=e.compile();-1===t?this.pushMachine(50,function(){return e.compile()}):this.pushMachine(50,t)},t}(P),N=function(e){function t(t,r,i){var o=new a.LazyConstants(r),s=new a.Program(o)
+return(0,n.possibleConstructorReturn)(this,e.call(this,i,s,t))}return(0,n.inherits)(t,e),t.prototype.builderFor=function(e){return new O(this,e)},t}(k),M=function(){function e(e,t){this.name=e,this.template=t}return e.prototype.getPartial=function(){var e=this.template.asPartial(),t=e.compile()
+return{symbolTable:e.symbolTable,handle:t}},e}(),L=0,D=function(){function e(e,t){this.compiler=e,this.parsedLayout=t,this.layout=null,this.partial=null,this.wrappedLayout=null
+var n=t.block
+this.symbols=n.symbols,this.hasEval=n.hasEval,this.referrer=t.referrer,this.id=t.id||"client-"+L++}return e.prototype.asLayout=function(){return this.layout?this.layout:this.layout=new I(this.compiler,(0,t.assign)({},this.parsedLayout,{asPartial:!1}))},e.prototype.asPartial=function(){return this.partial?this.partial:this.layout=new I(this.compiler,(0,t.assign)({},this.parsedLayout,{asPartial:!0}))},e.prototype.asWrappedLayout=function(){return this.wrappedLayout?this.wrappedLayout:this.wrappedLayout=new j(this.compiler,(0,t.assign)({},this.parsedLayout,{asPartial:!1}))},e}()
+e.ATTRS_BLOCK=v,e.Macros=function(){var e=h(),t=e.blocks,n=e.inlines
+this.blocks=t,this.inlines=n},e.CompilableBlock=w,e.CompilableProgram=I,e.LazyOpcodeBuilder=O,e.EagerOpcodeBuilder=R,e.OpcodeBuilder=P,e.StdOpcodeBuilder=T,e.PartialDefinition=M,e.templateFactory=f,e.debug=function(e,t,n){for(i=arguments.length,o=Array(i>3?i-3:0),s=3;s<i;s++)o[s-3]=arguments[s]
+var i,o,s
+throw(0,r.unreachable)("Missing Opcode Metadata for "+n)},e.debugSlice=function(){},e.logOpcode=function(e,t){var n,r=e
+return t&&(n=Object.keys(t).map(function(e){return" "+e+"="+void t[e]}).join(""),r+=n),"("+r+")"},e.WrappedBuilder=j,e.PLACEHOLDER_HANDLE=-1,e.LazyCompiler=N,e.compile=d,e.AbstractCompiler=k}),e("@glimmer/program",["exports","ember-babel","@glimmer/util"],function(e,t){"use strict"
+function n(e,t,n){return e|t<<16|n<<30}function r(e,t){return e|t<<30}function i(e,t,n){if(void 0!==e.slice)return e.slice(t,n)
+for(var r=new Uint16Array(n);t<n;t++)r[t]=e[t]
+return r}e.Opcode=e.Program=e.RuntimeProgram=e.WriteOnlyProgram=e.Heap=e.LazyConstants=e.Constants=e.RuntimeConstants=e.WriteOnlyConstants=e.WELL_KNOWN_EMPTY_ARRAY_POSITION=void 0
+var o={},s=Object.freeze([]),a=function(){function e(){this.strings=[],this.arrays=[s],this.tables=[],this.handles=[],this.resolved=[],this.numbers=[]}return e.prototype.string=function(e){var t=this.strings.indexOf(e)
+return t>-1?t:this.strings.push(e)-1},e.prototype.stringArray=function(e){var t,n=new Array(e.length)
+for(t=0;t<e.length;t++)n[t]=this.string(e[t])
+return this.array(n)},e.prototype.array=function(e){if(0===e.length)return 0
+var t=this.arrays.indexOf(e)
+return t>-1?t:this.arrays.push(e)-1},e.prototype.handle=function(e){var t=this.handles.indexOf(e)
+return t>-1?t:(this.resolved.push(o),this.handles.push(e)-1)},e.prototype.serializable=function(e){var t=JSON.stringify(e),n=this.strings.indexOf(t)
+return n>-1?n:this.strings.push(t)-1},e.prototype.number=function(e){var t=this.numbers.indexOf(e)
+return t>-1?t:this.numbers.push(e)-1},e.prototype.toPool=function(){return{strings:this.strings,arrays:this.arrays,handles:this.handles,numbers:this.numbers}},e}(),u=function(){function e(e,t){this.resolver=e,this.strings=t.strings,this.arrays=t.arrays,this.handles=t.handles,this.resolved=this.handles.map(function(){return o}),this.numbers=t.numbers}return e.prototype.getString=function(e){return this.strings[e]},e.prototype.getNumber=function(e){return this.numbers[e]},e.prototype.getStringArray=function(e){var t,n,r=this.getArray(e),i=new Array(r.length)
+for(t=0;t<r.length;t++)n=r[t],i[t]=this.getString(n)
+return i},e.prototype.getArray=function(e){return this.arrays[e]},e.prototype.resolveHandle=function(e){var t,n=this.resolved[e]
+return n===o&&(t=this.handles[e],n=this.resolved[e]=this.resolver.resolve(t)),n},e.prototype.getSerializable=function(e){return JSON.parse(this.strings[e])},e}(),c=function(e){function n(n,r){var i=(0,t.possibleConstructorReturn)(this,e.call(this))
+return i.resolver=n,r&&(i.strings=r.strings,i.arrays=r.arrays,i.handles=r.handles,i.resolved=i.handles.map(function(){return o}),i.numbers=r.numbers),i}return(0,t.inherits)(n,e),n.prototype.getNumber=function(e){return this.numbers[e]},n.prototype.getString=function(e){return this.strings[e]},n.prototype.getStringArray=function(e){var t,n,r=this.getArray(e),i=new Array(r.length)
+for(t=0;t<r.length;t++)n=r[t],i[t]=this.getString(n)
+return i},n.prototype.getArray=function(e){return this.arrays[e]},n.prototype.resolveHandle=function(e){var t,n=this.resolved[e]
+return n===o&&(t=this.handles[e],n=this.resolved[e]=this.resolver.resolve(t)),n},n.prototype.getSerializable=function(e){return JSON.parse(this.strings[e])},n}(a),l=function(e){function n(){var n=(0,t.possibleConstructorReturn)(this,e.apply(this,arguments))
+return n.others=[],n.serializables=[],n}return(0,t.inherits)(n,e),n.prototype.serializable=function(e){var t=this.serializables.indexOf(e)
+return t>-1?t:this.serializables.push(e)-1},n.prototype.getSerializable=function(e){return this.serializables[e]},n.prototype.getOther=function(e){return this.others[e-1]},n.prototype.other=function(e){return this.others.push(e)},n}(c),h=function(){function e(e){this.heap=e,this.offset=0}return(0,t.createClass)(e,[{key:"size",get:function(){return 1+((768&this.heap.getbyaddr(this.offset))>>8)}},{key:"isMachine",get:function(){return 1024&this.heap.getbyaddr(this.offset)}},{key:"type",get:function(){return 255&this.heap.getbyaddr(this.offset)}},{key:"op1",get:function(){return this.heap.getbyaddr(this.offset+1)}},{key:"op2",get:function(){return this.heap.getbyaddr(this.offset+2)}},{key:"op3",get:function(){return this.heap.getbyaddr(this.offset+3)}}]),e}(),d=1048576,p=function(){function e(e){var t,n,r
+this.placeholders=[],this.offset=0,this.handle=0,this.capacity=d,e?(t=e.buffer,n=e.table,r=e.handle,this.heap=new Uint16Array(t),this.table=n,this.offset=this.heap.length,this.handle=r,this.capacity=0):(this.heap=new Uint16Array(d),this.table=[])}return e.prototype.push=function(e){this.sizeCheck(),this.heap[this.offset++]=e},e.prototype.sizeCheck=function(){var e
+0===this.capacity&&(e=i(this.heap,0,this.offset),this.heap=new Uint16Array(e.length+d),this.heap.set(e,0),this.capacity=d),this.capacity--},e.prototype.getbyaddr=function(e){return this.heap[e]},e.prototype.setbyaddr=function(e,t){this.heap[e]=t},e.prototype.malloc=function(){this.table.push(this.offset,0)
+var e=this.handle
+return this.handle+=2,e},e.prototype.finishMalloc=function(e,t){var r=this.table[e],i=this.offset,o=n(i-r,t,0)
+this.table[e+1]=o},e.prototype.size=function(){return this.offset},e.prototype.getaddr=function(e){return this.table[e]},e.prototype.gethandle=function(e){this.table.push(e,n(0,0,3))
+var t=this.handle
+return this.handle+=2,t},e.prototype.sizeof=function(){return-1},e.prototype.scopesizeof=function(e){return(1073676288&this.table[e+1])>>16},e.prototype.free=function(e){var t=this.table[e+1]
+this.table[e+1]=r(t,1)},e.prototype.compact=function(){var e,t,n,i,o,s,a=0,u=this.table,c=this.table.length,l=this.heap
+for(e=0;e<c;e+=2)if(t=u[e],n=u[e+1],i=65535&n,2!==(o=-1&n))if(1===o)u[e+1]=r(n,2),a+=i
+else if(0===o){for(s=t;s<=e+i;s++)l[s-a]=l[s]
+u[e]=t-a}else 3===o&&(u[e]=t-a)
+this.offset=this.offset-a},e.prototype.pushPlaceholder=function(e){this.sizeCheck()
+var t=this.offset++
+this.heap[t]=65535,this.placeholders.push([t,e])},e.prototype.patchPlaceholders=function(){var e,t,n,r,i=this.placeholders
+for(e=0;e<i.length;e++)t=i[e],n=t[0],r=t[1],this.setbyaddr(n,r())},e.prototype.capture=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.offset
+this.patchPlaceholders()
+var t=i(this.heap,0,e).buffer
+return{handle:this.handle,table:this.table,buffer:t}},e}(),f=function(){function e(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new a,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new p
+this.constants=e,this.heap=t,this._opcode=new h(this.heap)}return e.prototype.opcode=function(e){return this._opcode.offset=e,this._opcode},e}(),g=function(){function e(e,t){this.constants=e,this.heap=t,this._opcode=new h(this.heap)}return e.hydrate=function(t,n,r){var i=new p(t)
+return new e(new u(r,n),i)},e.prototype.opcode=function(e){return this._opcode.offset=e,this._opcode},e}(),m=function(e){function n(){return(0,t.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,t.inherits)(n,e),n}(f)
+e.WELL_KNOWN_EMPTY_ARRAY_POSITION=0,e.WriteOnlyConstants=a,e.RuntimeConstants=u,e.Constants=c,e.LazyConstants=l,e.Heap=p,e.WriteOnlyProgram=f,e.RuntimeProgram=g,e.Program=m,e.Opcode=h}),e("@glimmer/reference",["exports","ember-babel","@glimmer/util"],function(e,t,n){"use strict"
+function r(e){var t=u.length
+u.push(function(e){return e.value()}),c.push(function(e,t){return e.validate(t)}),e.id=t}function i(){f++}function o(e){switch(e.length){case 0:return h
+case 1:return e[0]
+case 2:return v.create(e[0],e[1])
+default:return y.create(e)}}e.isModified=e.ReferenceCache=e.map=e.CachedReference=e.UpdatableTag=e.CachedTag=e.combine=e.combineSlice=e.combineTagged=e.DirtyableTag=e.bump=e.isConstTag=e.isConst=e.CURRENT_TAG=e.VOLATILE_TAG=e.CONSTANT_TAG=e.TagWrapper=e.RevisionTag=e.VOLATILE=e.INITIAL=e.CONSTANT=e.IteratorSynchronizer=e.ReferenceIterator=e.IterationArtifacts=e.ListItem=e.ConstReference=void 0
+var s=1,a=function(){function e(){}return e.prototype.validate=function(e){return this.value()===e},e}()
+a.id=0
+var u=[],c=[],l=function(){function e(e,t){this.type=e,this.inner=t}return e.prototype.value=function(){return(0,u[this.type])(this.inner)},e.prototype.validate=function(e){return(0,c[this.type])(this.inner,e)},e}()
+u.push(function(){return 0}),c.push(function(e,t){return 0===t})
+var h=new l(0,null)
+u.push(function(){return NaN}),c.push(function(e,t){return NaN===t})
+var d=new l(1,null)
+u.push(function(){return f}),c.push(function(e,t){return t===f})
+var p=new l(2,null),f=s,g=function(e){function n(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:f,r=(0,t.possibleConstructorReturn)(this,e.call(this))
+return r.revision=n,r}return(0,t.inherits)(n,e),n.create=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:f
+return new l(this.id,new n(e))},n.prototype.value=function(){return this.revision},n.prototype.dirty=function(){this.revision=++f},n}(a)
+r(g)
+var m=function(e){function n(){var n=(0,t.possibleConstructorReturn)(this,e.apply(this,arguments))
+return n.lastChecked=null,n.lastValue=null,n}return(0,t.inherits)(n,e),n.prototype.value=function(){var e=this.lastChecked
+this.lastValue
+return e!==f&&(this.lastChecked=f,this.lastValue=this.compute()),this.lastValue},n.prototype.invalidate=function(){this.lastChecked=null},n}(a),v=function(e){function n(n,r){var i=(0,t.possibleConstructorReturn)(this,e.call(this))
+return i.first=n,i.second=r,i}return(0,t.inherits)(n,e),n.create=function(e,t){return new l(this.id,new n(e,t))},n.prototype.compute=function(){return Math.max(this.first.value(),this.second.value())},n}(m)
+r(v)
+var y=function(e){function n(n){var r=(0,t.possibleConstructorReturn)(this,e.call(this))
+return r.tags=n,r}return(0,t.inherits)(n,e),n.create=function(e){return new l(this.id,new n(e))},n.prototype.compute=function(){var e,t,n=this.tags,r=-1
+for(e=0;e<n.length;e++)t=n[e].value(),r=Math.max(t,r)
+return r},n}(m)
+r(y)
+var b=function(e){function n(n){var r=(0,t.possibleConstructorReturn)(this,e.call(this))
+return r.tag=n,r.lastUpdated=s,r}return(0,t.inherits)(n,e),n.create=function(e){return new l(this.id,new n(e))},n.prototype.compute=function(){return Math.max(this.lastUpdated,this.tag.value())},n.prototype.update=function(e){e!==this.tag&&(this.tag=e,this.lastUpdated=f,this.invalidate())},n}(m)
+r(b)
+var C,A=function(){function e(){this.lastRevision=null,this.lastValue=null}return e.prototype.value=function(){var e=this.tag,t=this.lastRevision,n=this.lastValue
+return null!==t&&e.validate(t)||(n=this.lastValue=this.compute(),this.lastRevision=e.value()),n},e.prototype.invalidate=function(){this.lastRevision=null},e}(),_=function(e){function n(n,r){var i=(0,t.possibleConstructorReturn)(this,e.call(this))
+return i.tag=n.tag,i.reference=n,i.mapper=r,i}return(0,t.inherits)(n,e),n.prototype.compute=function(){var e=this.reference
+return(0,this.mapper)(e.value())},n}(A),I=function(){function e(e){this.lastValue=null,this.lastRevision=null,this.initialized=!1,this.tag=e.tag,this.reference=e}return e.prototype.peek=function(){return this.initialized?this.lastValue:this.initialize()},e.prototype.revalidate=function(){if(!this.initialized)return this.initialize()
+var e=this.reference,t=this.lastRevision,n=e.tag
+if(n.validate(t))return w
+this.lastRevision=n.value()
+var r=this.lastValue,i=e.value()
+return i===r?w:(this.lastValue=i,i)},e.prototype.initialize=function(){var e=this.reference,t=this.lastValue=e.value()
+return this.lastRevision=e.tag.value(),this.initialized=!0,t},e}(),w="adb3b78e-3d22-4e4b-877a-6317c2c5c145",x=function(){function e(e){this.inner=e,this.tag=h}return e.prototype.value=function(){return this.inner},e}(),k=function(e){function n(n,r){var i=(0,t.possibleConstructorReturn)(this,e.call(this,n.valueReferenceFor(r)))
+return i.retained=!1,i.seen=!1,i.key=r.key,i.iterable=n,i.memo=n.memoReferenceFor(r),i}return(0,t.inherits)(n,e),n.prototype.update=function(e){this.retained=!0,this.iterable.updateValueReference(this.value,e),this.iterable.updateMemoReference(this.memo,e)},n.prototype.shouldRemove=function(){return!this.retained},n.prototype.reset=function(){this.retained=!1,this.seen=!1},n}(n.ListNode),j=function(){function e(e){this.iterator=null,this.map=(0,n.dict)(),this.list=new n.LinkedList,this.tag=e.tag,this.iterable=e}return e.prototype.isEmpty=function(){return(this.iterator=this.iterable.iterate()).isEmpty()},e.prototype.iterate=function(){var e=void 0
+return e=null===this.iterator?this.iterable.iterate():this.iterator,this.iterator=null,e},e.prototype.has=function(e){return!!this.map[e]},e.prototype.get=function(e){return this.map[e]},e.prototype.wasSeen=function(e){var t=this.map[e]
+return void 0!==t&&t.seen},e.prototype.append=function(e){var t=this.map,n=this.list,r=this.iterable,i=t[e.key]=new k(r,e)
+return n.append(i),i},e.prototype.insertBefore=function(e,t){var n=this.map,r=this.list,i=this.iterable,o=n[e.key]=new k(i,e)
+return o.retained=!0,r.insertBefore(o,t),o},e.prototype.move=function(e,t){var n=this.list
+e.retained=!0,n.remove(e),n.insertBefore(e,t)},e.prototype.remove=function(e){this.list.remove(e),delete this.map[e.key]},e.prototype.nextNode=function(e){return this.list.nextNode(e)},e.prototype.head=function(){return this.list.head()},e}(),E=function(){function e(e){this.iterator=null
+var t=new j(e)
+this.artifacts=t}return e.prototype.next=function(){var e=this.artifacts,t=this.iterator=this.iterator||e.iterate(),n=t.next()
+return null===n?null:e.append(n)},e}();(function(e){e[e.Append=0]="Append",e[e.Prune=1]="Prune",e[e.Done=2]="Done"})(C||(C={}))
+var S=function(){function e(e){var t=e.target,n=e.artifacts
+this.target=t,this.artifacts=n,this.iterator=n.iterate(),this.current=n.head()}return e.prototype.sync=function(){for(var e=C.Append;;)switch(e){case C.Append:e=this.nextAppend()
+break
+case C.Prune:e=this.nextPrune()
+break
+case C.Done:return void this.nextDone()}},e.prototype.advanceToKey=function(e){for(var t=this.current,n=this.artifacts,r=t;null!==r&&r.key!==e;)r.seen=!0,r=n.nextNode(r)
+null!==r&&(this.current=n.nextNode(r))},e.prototype.nextAppend=function(){var e=this.iterator,t=this.current,n=this.artifacts,r=e.next()
+if(null===r)return this.startPrune()
+var i=r.key
+return null!==t&&t.key===i?this.nextRetain(r):n.has(i)?this.nextMove(r):this.nextInsert(r),C.Append},e.prototype.nextRetain=function(e){var t=this.artifacts,n=this.current
+n=n,n.update(e),this.current=t.nextNode(n),this.target.retain(e.key,n.value,n.memo)},e.prototype.nextMove=function(e){var t=this.current,n=this.artifacts,r=this.target,i=e.key,o=n.get(e.key)
+o.update(e),n.wasSeen(e.key)?(n.move(o,t),r.move(o.key,o.value,o.memo,t?t.key:null)):this.advanceToKey(i)},e.prototype.nextInsert=function(e){var t=this.artifacts,n=this.target,r=this.current,i=t.insertBefore(e,r)
+n.insert(i.key,i.value,i.memo,r?r.key:null)},e.prototype.startPrune=function(){return this.current=this.artifacts.head(),C.Prune},e.prototype.nextPrune=function(){var e=this.artifacts,t=this.target,n=this.current
+if(null===n)return C.Done
+var r=n
+return this.current=e.nextNode(r),r.shouldRemove()?(e.remove(r),t.delete(r.key)):r.reset(),C.Prune},e.prototype.nextDone=function(){this.target.done()},e}()
+e.ConstReference=x,e.ListItem=k,e.IterationArtifacts=j,e.ReferenceIterator=E,e.IteratorSynchronizer=S,e.CONSTANT=0,e.INITIAL=s,e.VOLATILE=NaN,e.RevisionTag=a,e.TagWrapper=l,e.CONSTANT_TAG=h,e.VOLATILE_TAG=d,e.CURRENT_TAG=p,e.isConst=function(e){return e.tag===h},e.isConstTag=function(e){return e===h},e.bump=i,e.DirtyableTag=g,e.combineTagged=function(e){var t,n,r,i=[]
+for(t=0,n=e.length;t<n;t++){if((r=e[t].tag)===d)return d
+r!==h&&i.push(r)}return o(i)},e.combineSlice=function(e){for(var t,n=[],r=e.head();null!==r;){if((t=r.tag)===d)return d
+t!==h&&n.push(t),r=e.nextNode(r)}return o(n)},e.combine=function(e){var t,n,r,i=[]
+for(t=0,n=e.length;t<n;t++){if((r=e[t])===d)return d
+r!==h&&i.push(r)}return o(i)},e.CachedTag=m,e.UpdatableTag=b,e.CachedReference=A,e.map=function(e,t){return new _(e,t)},e.ReferenceCache=I,e.isModified=function(e){return e!==w}}),e("@glimmer/runtime",["exports","ember-babel","@glimmer/util","@glimmer/reference","@glimmer/vm","@glimmer/low-level"],function(e,t,n,r,i,o){"use strict"
+function s(e){return"function"!=typeof e.toString?"":String(e)}function a(e){return!(!e||!e[Ae])}function u(e){return e&&e[Ae]}function c(e){return h(e)?"":String(e)}function l(e){return g(e)||h(e)||"boolean"==typeof e||"number"==typeof e}function h(e){return null===e||void 0===e||"function"!=typeof e.toString}function d(e){return"object"==typeof e&&null!==e&&"function"==typeof e.toHTML}function p(e){return"object"==typeof e&&null!==e&&"number"==typeof e.nodeType}function f(e){return p(e)&&11===e.nodeType}function g(e){return"string"==typeof e}function m(e,t,n){return e.lookupComponentDefinition(t,n)}function v(e){return 0|(e.dynamicLayout?1:0)|(e.dynamicTag?2:0)|(e.prepareArgs?4:0)|(e.createArgs?8:0)|(e.attributeHook?16:0)|(e.elementHook?32:0)|(e.dynamicScope?64:0)|(e.createCaller?128:0)|(e.updateHook?256:0)|(e.createInstance?512:0)}function y(e,t){return!!(e&t)}function b(e,t,n){var r=e.definition=t.unwrap(n),i=r.manager,o=r.state
+return e.manager=i,e.capabilities=v(i.getCapabilities(o)),r}function C(e){return!1===y(e,1)}function A(e){return!0===y(e,1)}function _(e,t,n,r,i){var o=n.table.symbols.indexOf(e),s=r.get(t);-1!==o&&i.scope().bindBlock(o+1,s),n.lookup&&(n.lookup[e]=s)}function I(e,t){console.info("Use `context`, and `get(<path>)` to debug this template."),t("this")}function w(e,t,n){return new He(e,t,n)}function x(e,t){return new Ue(e,t)}function k(e,t){for(var n,r=e.parentElement(),i=e.firstNode(),o=e.lastNode(),s=i;s;){if(n=s.nextSibling,r.insertBefore(s,t),s===o)return n
+s=n}return null}function j(e){for(var t,n=e.parentElement(),r=e.firstNode(),i=e.lastNode(),o=r;o;){if(t=o.nextSibling,n.removeChild(o),o===i)return t
+o=t}return null}function E(e,n,r){if(!e)return n
+if(!T(e,r))return n
+var i=e.createElement("div")
+return function(e){function n(){return(0,t.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,t.inherits)(n,e),n.prototype.insertHTMLBefore=function(t,n,o){return null===o||""===o?e.prototype.insertHTMLBefore.call(this,t,n,o):t.namespaceURI!==r?e.prototype.insertHTMLBefore.call(this,t,n,o):S(t,i,o,n)},n}(n)}function S(e,t,n,r){t.innerHTML="<svg>"+n+"</svg>"
+var i=R(t.firstChild,e,r),o=i[0],s=i[1]
+return new He(e,o,s)}function T(e,t){var n=e.createElementNS(t,"svg")
+try{n.insertAdjacentHTML("beforeend","<circle></circle>")}catch(e){}finally{return 1!==n.childNodes.length||"http://www.w3.org/2000/svg"!==n.firstChild.namespaceURI}}function P(e,n){return e&&O(e)?function(e){function n(n){var r=(0,t.possibleConstructorReturn)(this,e.call(this,n))
+return r.uselessComment=n.createComment(""),r}return(0,t.inherits)(n,e),n.prototype.insertHTMLBefore=function(t,n,r){if(null===r)return e.prototype.insertHTMLBefore.call(this,t,n,r)
+var i=!1,o=n?n.previousSibling:t.lastChild
+o&&o instanceof Text&&(i=!0,t.insertBefore(this.uselessComment,n))
+var s=e.prototype.insertHTMLBefore.call(this,t,n,r)
+return i&&t.removeChild(this.uselessComment),s},n}(n):n}function O(e){var t=e.createElement("div")
+return t.innerHTML="first",t.insertAdjacentHTML("beforeend","second"),2!==t.childNodes.length}function R(e,t,n){for(var r=e.firstChild,i=null,o=r;o;)i=o,o=o.nextSibling,t.insertBefore(i,n)
+return[r,i]}function N(e,t,n,r){var i=t,o=n,s=o?o.previousSibling:i.lastChild,a=void 0
+if(null===r||""===r)return new He(i,null,null)
+null===o?(i.insertAdjacentHTML("beforeend",r),a=i.lastChild):o instanceof HTMLElement?(o.insertAdjacentHTML("beforebegin",r),a=o.previousSibling):(i.insertBefore(e,o),e.insertAdjacentHTML("beforebegin",r),a=e.previousSibling,i.removeChild(e))
+var u=s?s.nextSibling:i.firstChild
+return new He(i,u,a)}function M(e,t){return-1!==e.indexOf(t)}function L(e,t){return(null===e||M(tt,e))&&M(rt,t)}function D(e,t){return null!==e&&(M(nt,e)&&M(it,t))}function z(e,t){return L(e,t)||D(e,t)}function F(e,t,n,r){var i,o=null
+if(null===r||void 0===r)return r
+if(d(r))return r.toHTML()
+o=t?t.tagName.toUpperCase():null
+var s=c(r)
+return L(o,n)&&(i=e.protocolForURL(s),M(et,i))?"unsafe:"+s:D(o,n)?"unsafe:"+s:s}function B(e,t){var n,r=void 0,i=void 0
+return t in e?(i=t,r="prop"):(n=t.toLowerCase(),n in e?(r="prop",i=n):(r="attr",i=t)),"prop"!==r||"style"!==i.toLowerCase()&&!H(e.tagName,i)||(r="attr"),{normalized:i,type:r}}function H(e,t){var n=ot[e.toUpperCase()]
+return n&&n[t.toLowerCase()]||!1}function U(e,t,n){var r=e.tagName,i=e.namespaceURI,o={element:e,name:t,namespace:n}
+if(i===qe)return q(r,t,o)
+var s=B(e,t),a=s.type,u=s.normalized
+return"attr"===a?q(r,u,o):V(r,u,o)}function q(e,t,n){return z(e,t)?new lt(n):new at(n)}function V(e,t,n){return z(e,t)?new ct(t,n):G(e,t)?new ht(t,n):W(e,t)?new dt(t,n):new ut(t,n)}function W(e,t){return"OPTION"===e&&"selected"===t}function G(e,t){return("INPUT"===e||"TEXTAREA"===e)&&"value"===t}function Y(e){return!1===e||void 0===e||null===e||void 0===e.toString?null:!0===e?"":"function"==typeof e?null:String(e)}function K(e){if(null===e||void 0===e)return!0
+switch(typeof e){case"boolean":case"undefined":return!0
+case"number":return e%1==0&&!(Math.abs(e)>xt)
+default:return!1}}function Q(e){return e<0?Math.abs(e)<<3|4:e<<3|0}function Z(e){switch(typeof e){case"number":return Q(e)
+case"boolean":return e?11:3
+case"object":return 19
+case"undefined":return 27
+default:throw(0,n.unreachable)()}}function X(e){switch(7&e){case 0:return e>>3
+case 4:return-(e>>3)
+default:throw(0,n.unreachable)()}}function J(e){switch(e){case 3:return!1
+case 11:return!0
+case 19:return null
+case 27:return
+default:return X(e)}}function $(e){return 3===e.nodeType}function ee(e){return 8===e.nodeType}function te(e){var t=e.nodeValue.match(/^%\+b:(\d+)%$/)
+return t&&t[1]?Number(t[1]):null}function ne(e){var t=e.nodeValue.match(/^%\-b:(\d+)%$/)
+return t&&t[1]?Number(t[1]):null}function re(e){return 1===e.nodeType}function ie(e){return 8===e.nodeType&&"%glmr%"===e.nodeValue}function oe(e){return 8===e.nodeType&&"%|%"===e.nodeValue}function se(e){return 8===e.nodeType&&"% %"===e.nodeValue}function ae(e,t){return e.namespaceURI===qe?e.tagName===t:e.tagName===t.toUpperCase()}function ue(e,t){var n,r
+for(n=0;n<e.length;n++)if(r=e[n],r.name===t)return r}e.hasCapability=e.capabilityFlagsFrom=e.Cursor=e.ConcreteBounds=e.RehydrateBuilder=e.rehydrationBuilder=e.clientBuilder=e.NewElementBuilder=e.normalizeProperty=e.insertHTMLBefore=e.isWhitespace=e.DOMTreeConstruction=e.IDOMChanges=e.SVG_NAMESPACE=e.DOMChanges=e.curry=e.isCurriedComponentDefinition=e.CurriedComponentDefinition=e.MINIMAL_CAPABILITIES=e.DEFAULT_CAPABILITIES=e.DefaultEnvironment=e.Environment=e.Scope=e.EMPTY_ARGS=e.DynamicAttribute=e.SimpleDynamicAttribute=e.RenderResult=e.UpdatingVM=e.LowLevelVM=e.getDynamicVar=e.resetDebuggerCallback=e.setDebuggerCallback=e.ConditionalReference=e.PrimitiveReference=e.UNDEFINED_REFERENCE=e.NULL_REFERENCE=e.renderMain=void 0
+var ce=function(){function e(){this.evaluateOpcode=(0,n.fillNulls)(98).slice()}return e.prototype.add=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"syscall"
+this.evaluateOpcode[e]={syscall:"syscall"===n,evaluate:t}},e.prototype.debugBefore=function(){return{sp:void 0,state:void 0}},e.prototype.debugAfter=function(e,t,n,r){r.sp,r.state},e.prototype.evaluate=function(e,t,n){var r=this.evaluateOpcode[n]
+r.syscall?r.evaluate(e,t):r.evaluate(e.inner,t)},e}(),le=new ce,he=function(e){function n(){var n=(0,t.possibleConstructorReturn)(this,e.apply(this,arguments))
+return n.next=null,n.prev=null,n}return(0,t.inherits)(n,e),n}(function(){(0,n.initializeGuid)(this)}),de=function(e){function n(n){return(0,t.possibleConstructorReturn)(this,e.call(this,n))}return(0,t.inherits)(n,e),n.create=function(e){return void 0===e?ge:null===e?me:!0===e?ve:!1===e?ye:"number"==typeof e?new fe(e):new pe(e)},n.prototype.get=function(){return ge},n}(r.ConstReference),pe=function(e){function n(){var n=(0,t.possibleConstructorReturn)(this,e.apply(this,arguments))
+return n.lengthReference=null,n}return(0,t.inherits)(n,e),n.prototype.get=function(t){var n
+return"length"===t?(n=this.lengthReference,null===n&&(n=this.lengthReference=new fe(this.inner.length)),n):e.prototype.get.call(this,t)},n}(de),fe=function(e){function n(n){return(0,t.possibleConstructorReturn)(this,e.call(this,n))}return(0,t.inherits)(n,e),n}(de),ge=new fe(void 0),me=new fe(null),ve=new fe(!0),ye=new fe(!1),be=function(){function e(e){this.inner=e,this.tag=e.tag}return e.prototype.value=function(){return this.toBool(this.inner.value())},e.prototype.toBool=function(e){return!!e},e}(),Ce=function(e){function n(n){var i=(0,t.possibleConstructorReturn)(this,e.call(this))
+return i.parts=n,i.tag=(0,r.combineTagged)(n),i}return(0,t.inherits)(n,e),n.prototype.compute=function(){var e,t,n=new Array
+for(e=0;e<this.parts.length;e++)null!==(t=this.parts[e].value())&&void 0!==t&&(n[e]=s(t))
+return n.length>0?n.join(""):null},n}(r.CachedReference)
+le.add(1,function(e,t){var n=t.op1,r=e.stack,o=e.constants.resolveHandle(n),s=r.pop(),a=o(e,s)
+e.loadValue(i.Register.v0,a)}),le.add(6,function(e,t){var n=t.op1,r=e.referenceForSymbol(n)
+e.stack.push(r)}),le.add(4,function(e,t){var n=t.op1,r=e.stack.pop()
+e.scope().bindSymbol(n,r)}),le.add(5,function(e,t){var n=t.op1,r=e.stack.pop(),i=e.stack.pop(),o=e.stack.pop(),s=o?[r,i,o]:null
+e.scope().bindBlock(n,s)}),le.add(96,function(e,t){var n=t.op1,r=e.constants.getString(n),i=e.scope().getPartialMap(),o=i[r]
+void 0===o&&(o=e.getSelf().get(r)),e.stack.push(o)}),le.add(20,function(e,t){var n=t.op1,r=t.op2
+e.pushRootScope(n,!!r)}),le.add(7,function(e,t){var n=t.op1,r=e.constants.getString(n),i=e.stack.pop()
+e.stack.push(i.get(r))}),le.add(8,function(e,t){var n=t.op1,r=e.stack,i=e.scope().getBlock(n)
+i?(r.push(i[2]),r.push(i[1]),r.push(i[0])):(r.push(null),r.push(null),r.push(null))}),le.add(9,function(e,t){var n=t.op1,r=!!e.scope().getBlock(n)
+e.stack.push(r?ve:ye)}),le.add(10,function(e){e.stack.pop(),e.stack.pop()
+var t=e.stack.pop(),n=t&&t.parameters.length
+e.stack.push(n?ve:ye)}),le.add(11,function(e,t){var n,r,i=t.op1,o=new Array(i)
+for(n=i;n>0;n--)r=n-1,o[r]=e.stack.pop()
+e.stack.push(new Ce(o))})
+var Ae="CURRIED COMPONENT DEFINITION [id=6f00feb9-a0ef-4547-99ea-ac328f80acea]",_e=function(){function e(e,t){this.inner=e,this.args=t,this[Ae]=!0}return e.prototype.unwrap=function(e){e.realloc(this.offset)
+for(var t,n,r,i=this;;){if(t=i,n=t.args,r=t.inner,n&&(e.positional.prepend(n.positional),e.named.merge(n.named)),!a(r))return r
+i=r}},(0,t.createClass)(e,[{key:"offset",get:function(){var e=this.inner,t=this.args,n=t?t.positional.length:0
+return a(e)?n+e.offset:n}}]),e}(),Ie=function(e){function n(n,r,i){var o=(0,t.possibleConstructorReturn)(this,e.call(this))
+return o.node=n,o.reference=r,o.lastValue=i,o.type="dynamic-text",o.tag=r.tag,o.lastRevision=o.tag.value(),o}return(0,t.inherits)(n,e),n.prototype.evaluate=function(){var e=this.reference,t=this.tag
+t.validate(this.lastRevision)||(this.lastRevision=t.value(),this.update(e.value()))},n.prototype.update=function(e){var t,n=this.lastValue
+if(e!==n){var r=void 0
+r=h(e)?"":g(e)?e:String(e),r!==n&&(t=this.node,t.nodeValue=this.lastValue=r)}},n}(he),we=function(e){function n(){return(0,t.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,t.inherits)(n,e),n.create=function(e){return new n(e)},n.prototype.toBool=function(e){return a(e)},n}(be),xe=function(){function e(e){this.inner=e,this.tag=e.tag}return e.prototype.value=function(){var e=this.inner.value()
+return l(e)?1:u(e)?0:d(e)?3:f(e)?4:p(e)?5:1},e}()
+le.add(28,function(e){var t=e.stack.pop(),n=t.value(),r=h(n)?"":String(n)
+e.elements().appendDynamicHTML(r)}),le.add(29,function(e){var t=e.stack.pop(),n=t.value().toHTML(),r=h(n)?"":n
+e.elements().appendDynamicHTML(r)}),le.add(32,function(e){var t=e.stack.pop(),n=t.value(),i=h(n)?"":String(n),o=e.elements().appendDynamicText(i);(0,r.isConst)(t)||e.updateWith(new Ie(o,t,i))}),le.add(30,function(e){var t=e.stack.pop(),n=t.value()
+e.elements().appendDynamicFragment(n)}),le.add(31,function(e){var t=e.stack.pop(),n=t.value()
+e.elements().appendDynamicNode(n)}),le.add(22,function(e){return e.pushChildScope()}),le.add(23,function(e){return e.popScope()}),le.add(44,function(e){return e.pushDynamicScope()}),le.add(45,function(e){return e.popDynamicScope()}),le.add(12,function(e,t){var n=t.op1
+e.stack.push(e.constants.getOther(n))}),le.add(13,function(e,t){var n=t.op1,r=e.stack,i=n>>3
+switch(7&n){case 0:r.push(i)
+break
+case 1:r.push(e.constants.getNumber(i))
+break
+case 2:r.push(e.constants.getString(i))
+break
+case 3:r.pushEncodedImmediate(n)
+break
+case 4:case 5:r.push(e.constants.getNumber(i))}}),le.add(14,function(e){var t=e.stack
+t.push(de.create(t.pop()))}),le.add(15,function(e){var t=e.stack
+t.push(t.peek().value())}),le.add(16,function(e,t){var n=t.op1,r=t.op2,i=e.fetchValue(n)-r
+e.stack.dup(i)}),le.add(17,function(e,t){var n=t.op1
+e.stack.pop(n)}),le.add(18,function(e,t){var n=t.op1
+e.load(n)}),le.add(19,function(e,t){var n=t.op1
+e.fetch(n)}),le.add(43,function(e,t){var n=t.op1,r=e.constants.getArray(n)
+e.bindDynamicScope(r)}),le.add(61,function(e,t){var n=t.op1
+e.enter(n)}),le.add(62,function(e){e.exit()}),le.add(48,function(e,t){var n=t.op1
+e.stack.push(e.constants.getSerializable(n))}),le.add(47,function(e){e.stack.push(e.scope())}),le.add(46,function(e){var t=e.stack,n=t.pop()
+n?t.pushSmi(n.compile()):t.pushNull()}),le.add(51,function(e){var t,n,r,i=e.stack,o=i.pop(),s=i.pop(),a=i.pop(),u=i.pop()
+if(null===a)return e.pushFrame(),void e.pushScope(s)
+var c=s
+if(t=a.parameters,(n=t.length)>0)for(c=c.child(),r=0;r<n;r++)c.bindSymbol(t[r],u.at(r))
+e.pushFrame(),e.pushScope(c),e.call(o)}),le.add(53,function(e,t){var n,i=t.op1,o=e.stack.pop();(0,r.isConst)(o)?o.value()&&e.goto(i):(n=new r.ReferenceCache(o),n.peek()&&e.goto(i),e.updateWith(new ke(n)))}),le.add(54,function(e,t){var n,i=t.op1,o=e.stack.pop();(0,r.isConst)(o)?o.value()||e.goto(i):(n=new r.ReferenceCache(o),n.peek()||e.goto(i),e.updateWith(new ke(n)))}),le.add(55,function(e,t){var n=t.op1,r=t.op2
+e.stack.peek()===r&&e.goto(n)}),le.add(56,function(e){var t=e.stack.peek();(0,r.isConst)(t)||e.updateWith(ke.initialize(new r.ReferenceCache(t)))}),le.add(63,function(e){var t=e.env,n=e.stack
+n.push(t.toConditionalReference(n.pop()))})
+var ke=function(e){function n(n){var r=(0,t.possibleConstructorReturn)(this,e.call(this))
+return r.type="assert",r.tag=n.tag,r.cache=n,r}return(0,t.inherits)(n,e),n.initialize=function(e){var t=new n(e)
+return e.peek(),t},n.prototype.evaluate=function(e){var t=this.cache;(0,r.isModified)(t.revalidate())&&e.throw()},n}(he),je=function(e){function n(n,r){var i=(0,t.possibleConstructorReturn)(this,e.call(this))
+return i.target=r,i.type="jump-if-not-modified",i.tag=n,i.lastRevision=n.value(),i}return(0,t.inherits)(n,e),n.prototype.evaluate=function(e){var t=this.tag,n=this.target,r=this.lastRevision
+!e.alwaysRevalidate&&t.validate(r)&&e.goto(n)},n.prototype.didModify=function(){this.lastRevision=this.tag.value()},n}(he),Ee=function(e){function n(n){var i=(0,t.possibleConstructorReturn)(this,e.call(this))
+return i.target=n,i.type="did-modify",i.tag=r.CONSTANT_TAG,i}return(0,t.inherits)(n,e),n.prototype.evaluate=function(){this.target.didModify()},n}(he),Se=function(){function e(e){this.tag=r.CONSTANT_TAG,this.type="label",this.label=null,this.prev=null,this.next=null,(0,n.initializeGuid)(this),this.label=e}return e.prototype.evaluate=function(){},e.prototype.inspect=function(){return this.label+" ["+this._guid+"]"},e}()
+le.add(26,function(e,t){var n=t.op1
+e.elements().appendText(e.constants.getString(n))}),le.add(27,function(e,t){var n=t.op1
+e.elements().appendComment(e.constants.getString(n))}),le.add(33,function(e,t){var n=t.op1
+e.elements().openElement(e.constants.getString(n))}),le.add(34,function(e){var t=e.stack.pop().value()
+e.elements().openElement(t)}),le.add(41,function(e){var t,n,i=e.stack.pop(),o=e.stack.pop(),s=e.stack.pop(),a=void 0,u=void 0,c=s.value();(0,r.isConst)(i)?a=i.value():(t=new r.ReferenceCache(i),a=t.peek(),e.updateWith(new ke(t))),(0,r.isConst)(o)?u=o.value():(n=new r.ReferenceCache(o),u=n.peek(),e.updateWith(new ke(n))),e.elements().pushRemoteElement(a,c,u)}),le.add(42,function(e){e.elements().popRemoteElement()}),le.add(38,function(e){var t=e.fetchValue(i.Register.t0)
+t&&(t.flush(e),e.loadValue(i.Register.t0,null)),e.elements().flushElement()}),le.add(39,function(e){e.elements().closeElement()}),le.add(40,function(e,t){var n=t.op1,i=e.constants.resolveHandle(n),o=e.stack,s=o.pop(),a=e.elements(),u=a.constructing,c=a.updateOperations,l=e.dynamicScope(),h=i.create(u,s,l,c)
+e.env.scheduleInstallModifier(h,i)
+var d=i.getDestructor(h)
+d&&e.newDestroyable(d)
+var p=i.getTag(h);(0,r.isConstTag)(p)||e.updateWith(new Te(p,i,h))})
+var Te=function(e){function n(n,r,i){var o=(0,t.possibleConstructorReturn)(this,e.call(this))
+return o.tag=n,o.manager=r,o.modifier=i,o.type="update-modifier",o.lastUpdated=n.value(),o}return(0,t.inherits)(n,e),n.prototype.evaluate=function(e){var t=this.manager,n=this.modifier,r=this.tag,i=this.lastUpdated
+r.validate(i)||(e.env.scheduleUpdateModifier(n,t),this.lastUpdated=r.value())},n}(he)
+le.add(35,function(e,t){var n=t.op1,r=t.op2,i=t.op3,o=e.constants.getString(n),s=e.constants.getString(r),a=i?e.constants.getString(i):null
+e.elements().setStaticAttribute(o,s,a)}),le.add(36,function(e,t){var n=t.op1,i=t.op2,o=t.op3,s=e.constants.getString(n),a=e.stack.pop(),u=a.value(),c=o?e.constants.getString(o):null,l=e.elements().setDynamicAttribute(s,u,!!i,c);(0,r.isConst)(a)||e.updateWith(new Pe(a,l))})
+var Pe=function(e){function n(n,r){var i=(0,t.possibleConstructorReturn)(this,e.call(this))
+return i.reference=n,i.attribute=r,i.type="patch-element",i.tag=n.tag,i.lastRevision=i.tag.value(),i}return(0,t.inherits)(n,e),n.prototype.evaluate=function(e){var t=this.attribute,n=this.reference,r=this.tag
+r.validate(this.lastRevision)||(this.lastRevision=r.value(),t.update(n.value(),e.env))},n}(he),Oe=function(){function e(e,t,n,r){this.inner=e,this.resolver=t,this.meta=n,this.args=r,this.tag=e.tag,this.lastValue=null,this.lastDefinition=null}return e.prototype.value=function(){var e,t,n=this.inner,r=this.lastValue,i=n.value()
+if(i===r)return this.lastDefinition
+var o=null
+return a(i)?o=i:"string"==typeof i&&i&&(e=this.resolver,t=this.meta,o=m(e,i,t)),o=this.curry(o),this.lastValue=i,this.lastDefinition=o,o},e.prototype.get=function(){return ge},e.prototype.curry=function(e){var t=this.args
+return!t&&a(e)?e:e?new _e(e,t):null},e}(),Re=function(){function e(e){this.list=e,this.tag=(0,r.combineTagged)(e),this.list=e}return e.prototype.value=function(){var e,t,n=[],r=this.list
+for(t=0;t<r.length;t++)(e=c(r[t].value()))&&n.push(e)
+return 0===n.length?null:n.join(" ")},e}()
+le.add(69,function(e){var t=e.stack,n=t.pop()
+t.push(we.create(n))}),le.add(70,function(e){var t=e.stack,n=t.peek()
+t.push(new xe(n))}),le.add(71,function(e,t){var n=t.op1,r=e.stack,o=r.pop(),s=r.pop(),a=e.constants.getSerializable(n),u=e.constants.resolver
+e.loadValue(i.Register.v0,new Oe(o,u,a,s))}),le.add(72,function(e,t){var n=t.op1,r=e.constants.resolveHandle(n),i=r.manager,o=v(i.getCapabilities(r.state))
+e.stack.push({definition:r,manager:i,capabilities:o,state:null,handle:null,table:null,lookup:null})}),le.add(75,function(e,t){var r,o,s=t.op1,u=e.stack,c=u.pop().value(),l=e.constants.getSerializable(s)
+e.loadValue(i.Register.t1,null)
+var h=void 0
+if("string"==typeof c)r=e.constants.resolver,o=m(r,c,l),h=o
+else{if(!a(c))throw(0,n.unreachable)()
+h=c}u.push(h)}),le.add(73,function(e){var t=e.stack,n=t.pop(),r=void 0,i=void 0
+a(n)?i=r=null:(i=n.manager,r=v(i.getCapabilities(n.state))),t.push({definition:n,capabilities:r,manager:i,state:null,handle:null,table:null})}),le.add(74,function(e,t){t.op1
+var r=e.stack,i=r.pop().value(),o=void 0
+if(!a(i))throw(0,n.unreachable)()
+o=i,r.push(o)}),le.add(76,function(e,t){var n=t.op1,r=t.op2,i=e.stack,o=e.constants.getStringArray(n),s=[]
+4&r&&s.push("main"),2&r&&s.push("else"),1&r&&s.push("attrs"),e.args.setup(i,o,s,r>>4,!!(8&r)),i.push(e.args)}),le.add(77,function(e){var t=e.stack
+t.push(e.args.empty(t))}),le.add(80,function(e){var t=e.stack,n=t.pop(),r=n.capture()
+t.push(r)}),le.add(79,function(e,t){var n,r,i,o,s,u,c,l=t.op1,h=e.stack,d=e.fetchValue(l),p=h.pop(),f=d.definition
+a(f)&&(f=b(d,f,p))
+var g=f,m=g.manager,v=g.state
+if(!0!==y(d.capabilities,4))return void h.push(p)
+var C=p.blocks.values,A=p.blocks.names,_=m.prepareArgs(v,p)
+if(_){for(p.clear(),n=0;n<C.length;n++)h.push(C[n])
+for(r=_.positional,i=_.named,o=r.length,s=0;s<o;s++)h.push(r[s])
+for(u=Object.keys(i),c=0;c<u.length;c++)h.push(i[u[c]])
+p.setup(h,u,A,o,!0)}h.push(p)}),le.add(81,function(e,t){var n=t.op1,i=t.op2,o=e.fetchValue(i),s=o.definition,a=o.manager,u=o.capabilities=v(a.getCapabilities(s.state)),c=null
+y(u,64)&&(c=e.dynamicScope())
+var l=null
+y(u,8)&&(l=e.stack.peek())
+var h=null
+y(u,128)&&(h=e.getSelf())
+var d=a.create(e.env,s.state,l,c,h,!!(1&n))
+o.state=d
+var p=a.getTag(d)
+y(u,256)&&!(0,r.isConstTag)(p)&&e.updateWith(new Me(p,d,a,c))}),le.add(82,function(e,t){var n=t.op1,r=e.fetchValue(n),i=r.manager,o=r.state,s=i.getDestructor(o)
+s&&e.newDestroyable(s)}),le.add(91,function(e){e.beginCacheGroup(),e.elements().pushSimpleBlock()}),le.add(83,function(e){e.loadValue(i.Register.t0,new Ne)}),le.add(37,function(e,t){var n=t.op1,r=t.op2,o=t.op3,s=e.constants.getString(n),a=e.stack.pop(),u=o?e.constants.getString(o):null
+e.fetchValue(i.Register.t0).setAttribute(s,a,!!r,u)})
+var Ne=function(){function e(){this.attributes=(0,n.dict)(),this.classes=[]}return e.prototype.setAttribute=function(e,t,n,r){"class"===e&&this.classes.push(t),this.attributes[e]={value:t,namespace:r,trusting:n}},e.prototype.flush=function(e){var t,n,i,o,s,a,u
+for(var c in this.attributes){t=this.attributes[c]
+var n=t.value,i=t.namespace,o=t.trusting
+"class"===c&&(n=new Re(this.classes)),"type"!==c&&(s=e.elements().setDynamicAttribute(c,n.value(),o,i),(0,r.isConst)(n)||e.updateWith(new Pe(n,s)))}"type"in this.attributes&&(a=this.attributes.type,n=a.value,i=a.namespace,o=a.trusting,u=e.elements().setDynamicAttribute("type",n.value(),o,i),(0,r.isConst)(n)||e.updateWith(new Pe(n,u)))},e}()
+le.add(93,function(e,t){var n=t.op1,r=e.fetchValue(n),o=r.definition,s=r.state,a=o.manager,u=e.fetchValue(i.Register.t0)
+a.didCreateElement(s,e.elements().expectConstructing("DidCreateElementOpcode#evaluate"),u)}),le.add(84,function(e,t){var n=t.op1,r=e.fetchValue(n),i=r.definition,o=r.state,s=i.manager
+e.stack.push(s.getSelf(o))}),le.add(85,function(e,t){var n=t.op1,r=e.fetchValue(n),i=r.definition,o=r.state,s=i.manager
+e.stack.push(s.getTagName(o))}),le.add(86,function(e,t){var r=t.op1,i=e.fetchValue(r),o=i.manager,s=i.definition,a=e.constants.resolver,u=e.stack,c=i.state,l=i.capabilities,h=s.state,d=void 0
+if(C(l))d=o.getLayout(h,a)
+else{if(!A(l))throw(0,n.unreachable)()
+d=o.getDynamicLayout(c,a)}u.push(d.symbolTable),u.push(d.handle)}),le.add(68,function(e,t){var n=t.op1,r=e.stack.pop(),i=e.stack.pop(),o=r.manager,s=v(o.getCapabilities(r.state)),a={definition:r,manager:o,capabilities:s,state:null,handle:i.handle,table:i.symbolTable,lookup:null}
+e.loadValue(n,a)}),le.add(89,function(e,t){var n=t.op1,r=e.stack,i=r.pop(),o=r.pop(),s=e.fetchValue(n)
+s.handle=i,s.table=o}),le.add(21,function(e,t){var n=t.op1,r=e.fetchValue(n).table.symbols
+e.pushRootScope(r.length+1,!0)}),le.add(87,function(e,t){var r,i=t.op1,o=e.fetchValue(i)
+o.table.hasEval&&(r=o.lookup=(0,n.dict)(),e.scope().bindEvalScope(r))}),le.add(2,function(e,t){var n,r,i,o,s=t.op1,a=e.fetchValue(s),u=e.scope(),c=e.stack.peek(),l=c.named.atNames
+for(n=l.length-1;n>=0;n--)r=l[n],i=a.table.symbols.indexOf(l[n]),o=c.named.get(r,!1),-1!==i&&u.bindSymbol(i+1,o),a.lookup&&(a.lookup[r]=o)}),le.add(3,function(e,t){var n=t.op1,r=e.fetchValue(n),i=e.stack.peek(),o=i.blocks
+_("&attrs","attrs",r,o,e),_("&inverse","else",r,o,e),_("&default","main",r,o,e)}),le.add(90,function(e,t){var n=t.op1,r=e.fetchValue(n)
+e.call(r.handle)}),le.add(94,function(e,t){var n=t.op1,r=e.fetchValue(n),i=r.manager,o=r.state,s=e.elements().popBlock()
+i.didRenderLayout(o,s),e.env.didCreate(o,i),e.updateWith(new Le(i,o,s))}),le.add(92,function(e){e.commitCacheGroup()})
+var Me=function(e){function n(n,r,i,o){var s=(0,t.possibleConstructorReturn)(this,e.call(this))
+return s.tag=n,s.component=r,s.manager=i,s.dynamicScope=o,s.type="update-component",s}return(0,t.inherits)(n,e),n.prototype.evaluate=function(){var e=this.component,t=this.manager,n=this.dynamicScope
+t.update(e,n)},n}(he),Le=function(e){function n(n,i,o){var s=(0,t.possibleConstructorReturn)(this,e.call(this))
+return s.manager=n,s.component=i,s.bounds=o,s.type="did-update-layout",s.tag=r.CONSTANT_TAG,s}return(0,t.inherits)(n,e),n.prototype.evaluate=function(e){var t=this.manager,n=this.component,r=this.bounds
+t.didUpdateLayout(n,r),e.env.didUpdate(n,t)},n}(he),De=I,ze=function(){function e(e,t,r){var i,o,s,a
+for(this.scope=e,this.locals=(0,n.dict)(),i=0;i<r.length;i++)o=r[i],s=t[o-1],a=e.getSymbol(o),this.locals[s]=a}return e.prototype.get=function(e){var t=this.scope,n=this.locals,r=e.split("."),i=e.split("."),o=i[0],s=i.slice(1),a=t.getEvalScope(),u=void 0
+return"this"===o?u=t.getSelf():n[o]?u=n[o]:0===o.indexOf("@")&&a[o]?u=a[o]:(u=this.scope.getSelf(),s=r),s.reduce(function(e,t){return e.get(t)},u)},e}()
+le.add(97,function(e,t){var n=t.op1,r=t.op2,i=e.constants.getStringArray(n),o=e.constants.getArray(r),s=new ze(e.scope(),i,o)
+De(e.getSelf().value(),function(e){return s.get(e).value()})}),le.add(95,function(e,t){var n,r,i,o,s,a,u,c,l,h,d,p,f,g=t.op1,m=t.op2,v=t.op3,y=e.constants,b=e.constants.resolver,C=e.stack,A=C.pop().value(),_=y.getSerializable(g),I=y.getStringArray(m),w=y.getArray(v),x=b.lookupPartial(A,_),k=b.resolve(x),j=k.getPartial(),E=j.symbolTable,S=j.handle
+for(n=E.symbols,r=e.scope(),i=e.pushRootScope(n.length,!1),o=r.getEvalScope(),i.bindCallerScope(r.getCallerScope()),i.bindEvalScope(o),i.bindSelf(r.getSelf()),s=Object.create(r.getPartialMap()),a=0;a<w.length;a++)u=w[a],c=I[u-1],l=r.getSymbol(u),s[c]=l
+if(o)for(h=0;h<n.length;h++)d=n[h],p=h+1,void 0!==(f=o[d])&&i.bind(p,f)
+i.bindPartialMap(s),e.pushFrame(),e.call(S)})
+var Fe=function(){function e(e){this.tag=e.tag,this.artifacts=e}return e.prototype.value=function(){return!this.artifacts.isEmpty()},e}()
+le.add(66,function(e){var t=e.stack,n=t.pop(),i=t.pop(),o=e.env.iterableFor(n,i.value()),s=new r.ReferenceIterator(o)
+t.push(s),t.push(new Fe(s.artifacts))}),le.add(64,function(e,t){var n=t.op1
+e.enterList(n)}),le.add(65,function(e){e.exitList()}),le.add(67,function(e,t){var n,r=t.op1,i=e.stack,o=i.peek().next()
+o?(n=e.iterate(o.memo,o.value),e.enterItem(o.key,n)):e.goto(r)})
+var Be=function(e,t){this.element=e,this.nextSibling=t},He=function(){function e(e,t,n){this.parentNode=e,this.first=t,this.last=n}return e.prototype.parentElement=function(){return this.parentNode},e.prototype.firstNode=function(){return this.first},e.prototype.lastNode=function(){return this.last},e}(),Ue=function(){function e(e,t){this.parentNode=e,this.node=t}return e.prototype.parentElement=function(){return this.parentNode},e.prototype.firstNode=function(){return this.node},e.prototype.lastNode=function(){return this.node},e}(),qe="http://www.w3.org/2000/svg",Ve={foreignObject:1,desc:1,title:1},We=Object.create(null);["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","main","meta","nobr","ol","p","pre","ruby","s","small","span","strong","strike","sub","sup","table","tt","u","ul","var"].forEach(function(e){return We[e]=1})
+var Ge,Ye=/[\t-\r \xA0\u1680\u180E\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]/,Ke="undefined"==typeof document?null:document,Qe=function(){function e(e){this.document=e,this.setupUselessElement()}return e.prototype.setupUselessElement=function(){this.uselessElement=this.document.createElement("div")},e.prototype.createElement=function(e,t){var n=void 0,r=void 0
+if(t?(n=t.namespaceURI===qe||"svg"===e,r=Ve[t.tagName]):(n="svg"===e,r=!1),n&&!r){if(We[e])throw new Error("Cannot create a "+e+" inside an SVG context")
+return this.document.createElementNS(qe,e)}return this.document.createElement(e)},e.prototype.insertBefore=function(e,t,n){e.insertBefore(t,n)},e.prototype.insertHTMLBefore=function(e,t,n){return N(this.uselessElement,e,t,n)},e.prototype.createTextNode=function(e){return this.document.createTextNode(e)},e.prototype.createComment=function(e){return this.document.createComment(e)},e}();(function(e){var n=function(e){function n(){return(0,t.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,t.inherits)(n,e),n.prototype.createElementNS=function(e,t){return this.document.createElementNS(e,t)},n.prototype.setAttribute=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null
+r?e.setAttributeNS(r,t,n):e.setAttribute(t,n)},n}(Qe)
+e.TreeConstruction=n
+var r=n
+r=P(Ke,r),r=E(Ke,r,qe),e.DOMTreeConstruction=r})(Ge||(Ge={}))
+var Ze=function(e){function n(n){var r=(0,t.possibleConstructorReturn)(this,e.call(this,n))
+return r.document=n,r.namespace=null,r}return(0,t.inherits)(n,e),n.prototype.setAttribute=function(e,t,n){e.setAttribute(t,n)},n.prototype.removeAttribute=function(e,t){e.removeAttribute(t)},n.prototype.insertAfter=function(e,t,n){this.insertBefore(e,t,n.nextSibling)},n}(Qe),Xe=Ze
+Xe=P(Ke,Xe),Xe=E(Ke,Xe,qe)
+var Je=Xe,$e=Ge.DOMTreeConstruction,et=["javascript:","vbscript:"],tt=["A","BODY","LINK","IMG","IFRAME","BASE","FORM"],nt=["EMBED"],rt=["href","src","background","action"],it=["src"],ot={INPUT:{form:!0,autocorrect:!0,list:!0},SELECT:{form:!0},OPTION:{form:!0},TEXTAREA:{form:!0},LABEL:{form:!0},FIELDSET:{form:!0},LEGEND:{form:!0},OBJECT:{form:!0},BUTTON:{form:!0}},st=function(e){this.attribute=e},at=function(e){function n(){return(0,t.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,t.inherits)(n,e),n.prototype.set=function(e,t){var n,r,i,o=Y(t)
+null!==o&&(n=this.attribute,r=n.name,i=n.namespace,e.__setAttribute(r,o,i))},n.prototype.update=function(e){var t=Y(e),n=this.attribute,r=n.element,i=n.name
+null===t?r.removeAttribute(i):r.setAttribute(i,t)},n}(st),ut=function(e){function n(n,r){var i=(0,t.possibleConstructorReturn)(this,e.call(this,r))
+return i.normalizedName=n,i}return(0,t.inherits)(n,e),n.prototype.set=function(e,t){null!==t&&void 0!==t&&(this.value=t,e.__setProperty(this.normalizedName,t))},n.prototype.update=function(e){var t=this.attribute.element
+this.value!==e&&(t[this.normalizedName]=this.value=e,null!==e&&void 0!==e||this.removeAttribute())},n.prototype.removeAttribute=function(){var e=this.attribute,t=e.element,n=e.namespace
+n?t.removeAttributeNS(n,this.normalizedName):t.removeAttribute(this.normalizedName)},n}(st),ct=function(e){function n(){return(0,t.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,t.inherits)(n,e),n.prototype.set=function(t,n,r){var i=this.attribute,o=i.element,s=i.name,a=F(r,o,s,n)
+e.prototype.set.call(this,t,a,r)},n.prototype.update=function(t,n){var r=this.attribute,i=r.element,o=r.name,s=F(n,i,o,t)
+e.prototype.update.call(this,s,n)},n}(ut),lt=function(e){function n(){return(0,t.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,t.inherits)(n,e),n.prototype.set=function(t,n,r){var i=this.attribute,o=i.element,s=i.name,a=F(r,o,s,n)
+e.prototype.set.call(this,t,a,r)},n.prototype.update=function(t,n){var r=this.attribute,i=r.element,o=r.name,s=F(n,i,o,t)
+e.prototype.update.call(this,s,n)},n}(at),ht=function(e){function n(){return(0,t.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,t.inherits)(n,e),n.prototype.set=function(e,t){e.__setProperty("value",c(t))},n.prototype.update=function(e){var t=this.attribute.element,n=t.value,r=c(e)
+n!==r&&(t.value=r)},n}(ut),dt=function(e){function n(){return(0,t.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,t.inherits)(n,e),n.prototype.set=function(e,t){null!==t&&void 0!==t&&!1!==t&&e.__setProperty("selected",!0)},n.prototype.update=function(e){var t=this.attribute.element
+t.selected=!!e},n}(ut),pt=function(){function e(e,t,n,r){this.slots=e,this.callerScope=t,this.evalScope=n,this.partialMap=r}return e.root=function(t){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=new Array(r+1)
+for(n=0;n<=r;n++)i[n]=ge
+return new e(i,null,null,null).init({self:t})},e.sized=function(){var t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,r=new Array(n+1)
+for(t=0;t<=n;t++)r[t]=ge
+return new e(r,null,null,null)},e.prototype.init=function(e){var t=e.self
+return this.slots[0]=t,this},e.prototype.getSelf=function(){return this.get(0)},e.prototype.getSymbol=function(e){return this.get(e)},e.prototype.getBlock=function(e){var t=this.get(e)
+return t===ge?null:t},e.prototype.getEvalScope=function(){return this.evalScope},e.prototype.getPartialMap=function(){return this.partialMap},e.prototype.bind=function(e,t){this.set(e,t)},e.prototype.bindSelf=function(e){this.set(0,e)},e.prototype.bindSymbol=function(e,t){this.set(e,t)},e.prototype.bindBlock=function(e,t){this.set(e,t)},e.prototype.bindEvalScope=function(e){this.evalScope=e},e.prototype.bindPartialMap=function(e){this.partialMap=e},e.prototype.bindCallerScope=function(e){this.callerScope=e},e.prototype.getCallerScope=function(){return this.callerScope},e.prototype.child=function(){return new e(this.slots.slice(),this.callerScope,this.evalScope,this.partialMap)},e.prototype.get=function(e){if(e>=this.slots.length)throw new RangeError("BUG: cannot get $"+e+" from scope; length="+this.slots.length)
+return this.slots[e]},e.prototype.set=function(e,t){if(e>=this.slots.length)throw new RangeError("BUG: cannot get $"+e+" from scope; length="+this.slots.length)
+this.slots[e]=t},e}(),ft=function(){function e(){this.scheduledInstallManagers=[],this.scheduledInstallModifiers=[],this.scheduledUpdateModifierManagers=[],this.scheduledUpdateModifiers=[],this.createdComponents=[],this.createdManagers=[],this.updatedComponents=[],this.updatedManagers=[],this.destructors=[]}return e.prototype.didCreate=function(e,t){this.createdComponents.push(e),this.createdManagers.push(t)},e.prototype.didUpdate=function(e,t){this.updatedComponents.push(e),this.updatedManagers.push(t)},e.prototype.scheduleInstallModifier=function(e,t){this.scheduledInstallManagers.push(t),this.scheduledInstallModifiers.push(e)},e.prototype.scheduleUpdateModifier=function(e,t){this.scheduledUpdateModifierManagers.push(t),this.scheduledUpdateModifiers.push(e)},e.prototype.didDestroy=function(e){this.destructors.push(e)},e.prototype.commit=function(){var e,t,n,r,i,o,s,a,u,c,l,h,d,p=this.createdComponents,f=this.createdManagers
+for(e=0;e<p.length;e++)t=p[e],n=f[e],n.didCreate(t)
+var g=this.updatedComponents,m=this.updatedManagers
+for(r=0;r<g.length;r++)i=g[r],o=m[r],o.didUpdate(i)
+var v=this.destructors
+for(s=0;s<v.length;s++)v[s].destroy()
+var y=this.scheduledInstallManagers,b=this.scheduledInstallModifiers
+for(a=0;a<y.length;a++)u=y[a],c=b[a],u.install(c)
+var C=this.scheduledUpdateModifierManagers,A=this.scheduledUpdateModifiers
+for(l=0;l<C.length;l++)h=C[l],d=A[l],h.update(d)},e}(),gt=function(){function e(e){var t=e.appendOperations,n=e.updateOperations
+this._transaction=null,this.appendOperations=t,this.updateOperations=n}return e.prototype.toConditionalReference=function(e){return new be(e)},e.prototype.getAppendOperations=function(){return this.appendOperations},e.prototype.getDOM=function(){return this.updateOperations},e.prototype.begin=function(){this._transaction=new ft},e.prototype.didCreate=function(e,t){this.transaction.didCreate(e,t)},e.prototype.didUpdate=function(e,t){this.transaction.didUpdate(e,t)},e.prototype.scheduleInstallModifier=function(e,t){this.transaction.scheduleInstallModifier(e,t)},e.prototype.scheduleUpdateModifier=function(e,t){this.transaction.scheduleUpdateModifier(e,t)},e.prototype.didDestroy=function(e){this.transaction.didDestroy(e)},e.prototype.commit=function(){var e=this.transaction
+this._transaction=null,e.commit()},e.prototype.attributeFor=function(e,t){return U(e,t,arguments.length>3&&void 0!==arguments[3]?arguments[3]:null)},(0,t.createClass)(e,[{key:"transaction",get:function(){return this._transaction}}]),e}(),mt=function(e){function n(n){var r,i,o
+return n||(r=window.document,i=new $e(r),o=new Ze(r),n={appendOperations:i,updateOperations:o}),(0,t.possibleConstructorReturn)(this,e.call(this,n))}return(0,t.inherits)(n,e),n}(gt),vt=function(){function e(e,t,n,r){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:-1,o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:-1
+this.stack=e,this.heap=t,this.program=n,this.externs=r,this.pc=i,this.ra=o,this.currentOpSize=0}return e.prototype.pushFrame=function(){this.stack.pushSmi(this.ra),this.stack.pushSmi(this.stack.fp),this.stack.fp=this.stack.sp-1},e.prototype.popFrame=function(){this.stack.sp=this.stack.fp-1,this.ra=this.stack.getSmi(0),this.stack.fp=this.stack.getSmi(1)},e.prototype.pushSmallFrame=function(){this.stack.pushSmi(this.ra)},e.prototype.popSmallFrame=function(){this.ra=this.stack.popSmi()},e.prototype.goto=function(e){var t=this.pc+e-this.currentOpSize
+this.pc=t},e.prototype.call=function(e){this.ra=this.pc,this.pc=this.heap.getaddr(e)},e.prototype.returnTo=function(e){var t=this.pc+e-this.currentOpSize
+this.ra=t},e.prototype.return=function(){this.pc=this.ra},e.prototype.nextStatement=function(){var e=this.pc,t=this.program
+if(-1===e)return null
+var n=this.program.opcode(e),r=n.size,i=this.currentOpSize=r
+return this.pc+=i,t.opcode(e)},e.prototype.evaluateOuter=function(e,t){this.evaluateInner(e,t)},e.prototype.evaluateInner=function(e,t){e.isMachine?this.evaluateMachine(e):this.evaluateSyscall(e,t)},e.prototype.evaluateMachine=function(e){switch(e.type){case 57:return this.pushFrame()
+case 58:return this.popFrame()
+case 59:return this.pushSmallFrame()
+case 60:return this.popSmallFrame()
+case 50:return this.call(e.op1)
+case 49:return this.call(this.stack.popSmi())
+case 52:return this.goto(e.op1)
+case 24:return this.return()
+case 25:return this.returnTo(e.op1)}},e.prototype.evaluateSyscall=function(e,t){le.evaluate(t,e,e.type)},e}(),yt=function(){function e(e){this.node=e}return e.prototype.firstNode=function(){return this.node},e}(),bt=function(){function e(e){this.node=e}return e.prototype.lastNode=function(){return this.node},e}(),Ct=function(){function e(e,t,r){this.constructing=null,this.operations=null,this.cursorStack=new n.Stack,this.blockStack=new n.Stack,this.pushElement(t,r),this.env=e,this.dom=e.getAppendOperations(),this.updateOperations=e.getDOM()}return e.forInitialRender=function(e,t){var n=new this(e,t.element,t.nextSibling)
+return n.pushSimpleBlock(),n},e.resume=function(e,t,n){var r=t.parentElement(),i=new this(e,r,n)
+return i.pushSimpleBlock(),i.pushBlockTracker(t),i},e.prototype.expectConstructing=function(){return this.constructing},e.prototype.block=function(){return this.blockStack.current},e.prototype.popElement=function(){this.cursorStack.pop(),this.cursorStack.current},e.prototype.pushSimpleBlock=function(){return this.pushBlockTracker(new At(this.element))},e.prototype.pushUpdatableBlock=function(){return this.pushBlockTracker(new It(this.element))},e.prototype.pushBlockList=function(e){return this.pushBlockTracker(new wt(this.element,e))},e.prototype.pushBlockTracker=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=this.blockStack.current
+return null!==n&&(n.newDestroyable(e),t||n.didAppendBounds(e)),this.__openBlock(),this.blockStack.push(e),e},e.prototype.popBlock=function(){return this.block().finalize(this),this.__closeBlock(),this.blockStack.pop()},e.prototype.__openBlock=function(){},e.prototype.__closeBlock=function(){},e.prototype.openElement=function(e){var t=this.__openElement(e)
+return this.constructing=t,t},e.prototype.__openElement=function(e){return this.dom.createElement(e,this.element)},e.prototype.flushElement=function(){var e=this.element,t=this.constructing
+this.__flushElement(e,t),this.constructing=null,this.operations=null,this.pushElement(t,null),this.didOpenElement(t)},e.prototype.__flushElement=function(e,t){this.dom.insertBefore(e,t,this.nextSibling)},e.prototype.closeElement=function(){this.willCloseElement(),this.popElement()},e.prototype.pushRemoteElement=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null
+this.__pushRemoteElement(e,t,n)},e.prototype.__pushRemoteElement=function(e,t,n){this.pushElement(e,n)
+var r=new _t(e)
+this.pushBlockTracker(r,!0)},e.prototype.popRemoteElement=function(){this.popBlock(),this.popElement()},e.prototype.pushElement=function(e,t){this.cursorStack.push(new Be(e,t))},e.prototype.didAddDestroyable=function(e){this.block().newDestroyable(e)},e.prototype.didAppendBounds=function(e){return this.block().didAppendBounds(e),e},e.prototype.didAppendNode=function(e){return this.block().didAppendNode(e),e},e.prototype.didOpenElement=function(e){return this.block().openElement(e),e},e.prototype.willCloseElement=function(){this.block().closeElement()},e.prototype.appendText=function(e){return this.didAppendNode(this.__appendText(e))},e.prototype.__appendText=function(e){var t=this.dom,n=this.element,r=this.nextSibling,i=t.createTextNode(e)
+return t.insertBefore(n,i,r),i},e.prototype.__appendNode=function(e){return this.dom.insertBefore(this.element,e,this.nextSibling),e},e.prototype.__appendFragment=function(e){var t,n=e.firstChild
+return n?(t=w(this.element,n,e.lastChild),this.dom.insertBefore(this.element,e,this.nextSibling),t):x(this.element,this.__appendComment(""))},e.prototype.__appendHTML=function(e){return this.dom.insertHTMLBefore(this.element,this.nextSibling,e)},e.prototype.appendDynamicHTML=function(e){var t=this.trustedContent(e)
+this.didAppendBounds(t)},e.prototype.appendDynamicText=function(e){var t=this.untrustedContent(e)
+return this.didAppendNode(t),t},e.prototype.appendDynamicFragment=function(e){var t=this.__appendFragment(e)
+this.didAppendBounds(t)},e.prototype.appendDynamicNode=function(e){var t=this.__appendNode(e),n=x(this.element,t)
+this.didAppendBounds(n)},e.prototype.trustedContent=function(e){return this.__appendHTML(e)},e.prototype.untrustedContent=function(e){return this.__appendText(e)},e.prototype.appendComment=function(e){return this.didAppendNode(this.__appendComment(e))},e.prototype.__appendComment=function(e){var t=this.dom,n=this.element,r=this.nextSibling,i=t.createComment(e)
+return t.insertBefore(n,i,r),i},e.prototype.__setAttribute=function(e,t,n){this.dom.setAttribute(this.constructing,e,t,n)},e.prototype.__setProperty=function(e,t){this.constructing[e]=t},e.prototype.setStaticAttribute=function(e,t,n){this.__setAttribute(e,t,n)},e.prototype.setDynamicAttribute=function(e,t,n,r){var i=this.constructing,o=this.env.attributeFor(i,e,n,r)
+return o.set(this,t,this.env),o},(0,t.createClass)(e,[{key:"element",get:function(){return this.cursorStack.current.element}},{key:"nextSibling",get:function(){return this.cursorStack.current.nextSibling}}]),e}(),At=function(){function e(e){this.parent=e,this.first=null,this.last=null,this.destroyables=null,this.nesting=0}return e.prototype.destroy=function(){var e,t=this.destroyables
+if(t&&t.length)for(e=0;e<t.length;e++)t[e].destroy()},e.prototype.parentElement=function(){return this.parent},e.prototype.firstNode=function(){return this.first&&this.first.firstNode()},e.prototype.lastNode=function(){return this.last&&this.last.lastNode()},e.prototype.openElement=function(e){this.didAppendNode(e),this.nesting++},e.prototype.closeElement=function(){this.nesting--},e.prototype.didAppendNode=function(e){0===this.nesting&&(this.first||(this.first=new yt(e)),this.last=new bt(e))},e.prototype.didAppendBounds=function(e){0===this.nesting&&(this.first||(this.first=e),this.last=e)},e.prototype.newDestroyable=function(e){this.destroyables=this.destroyables||[],this.destroyables.push(e)},e.prototype.finalize=function(e){this.first||e.appendComment("")},e}(),_t=function(e){function n(){return(0,t.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,t.inherits)(n,e),n.prototype.destroy=function(){e.prototype.destroy.call(this),j(this)},n}(At),It=function(e){function n(){return(0,t.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,t.inherits)(n,e),n.prototype.reset=function(e){var t,n=this.destroyables
+if(n&&n.length)for(t=0;t<n.length;t++)e.didDestroy(n[t])
+var r=j(this)
+return this.first=null,this.last=null,this.destroyables=null,this.nesting=0,r},n}(At),wt=function(){function e(e,t){this.parent=e,this.boundList=t,this.parent=e,this.boundList=t}return e.prototype.destroy=function(){this.boundList.forEachNode(function(e){return e.destroy()})},e.prototype.parentElement=function(){return this.parent},e.prototype.firstNode=function(){var e=this.boundList.head()
+return e&&e.firstNode()},e.prototype.lastNode=function(){var e=this.boundList.tail()
+return e&&e.lastNode()},e.prototype.openElement=function(){},e.prototype.closeElement=function(){},e.prototype.didAppendNode=function(){},e.prototype.didAppendBounds=function(){},e.prototype.newDestroyable=function(){},e.prototype.finalize=function(){},e}(),xt=2147483648,kt=function(){function e(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new o.Stack,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[]
+this.inner=e,this.js=t}return e.prototype.slice=function(t,n){var r=void 0
+return r="number"==typeof t&&"number"==typeof n?this.inner.slice(t,n):"number"==typeof t&&void 0===n?this.inner.sliceFrom(t):this.inner.clone(),new e(r,this.js.slice(t,n))},e.prototype.sliceInner=function(e,t){var n,r=[]
+for(n=e;n<t;n++)r.push(this.get(n))
+return r},e.prototype.copy=function(e,t){this.inner.copy(e,t)},e.prototype.write=function(e,t){var n
+K(t)?this.inner.writeRaw(e,Z(t)):(n=this.js.length,this.js.push(t),this.inner.writeRaw(e,n|xt))},e.prototype.writeSmi=function(e,t){this.inner.writeSmi(e,t)},e.prototype.writeImmediate=function(e,t){this.inner.writeRaw(e,t)},e.prototype.get=function(e){var t=this.inner.getRaw(e)
+return t&xt?this.js[2147483647&t]:J(t)},e.prototype.getSmi=function(e){return this.inner.getSmi(e)},e.prototype.reset=function(){this.inner.reset(),this.js.length=0},(0,t.createClass)(e,[{key:"length",get:function(){return this.inner.len()}}]),e}(),jt=function(){function e(e,t,n){this.stack=e,this.fp=t,this.sp=n}return e.empty=function(){return new this(new kt,0,-1)},e.restore=function(e){var t,n=new kt
+for(t=0;t<e.length;t++)n.write(t,e[t])
+return new this(n,0,e.length-1)},e.prototype.push=function(e){this.stack.write(++this.sp,e)},e.prototype.pushSmi=function(e){this.stack.writeSmi(++this.sp,e)},e.prototype.pushImmediate=function(e){this.stack.writeImmediate(++this.sp,Z(e))},e.prototype.pushEncodedImmediate=function(e){this.stack.writeImmediate(++this.sp,e)},e.prototype.pushNull=function(){this.stack.writeImmediate(++this.sp,19)},e.prototype.dup=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.sp
+this.stack.copy(e,++this.sp)},e.prototype.copy=function(e,t){this.stack.copy(e,t)},e.prototype.pop=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=this.stack.get(this.sp)
+return this.sp-=e,t},e.prototype.popSmi=function(){return this.stack.getSmi(this.sp--)},e.prototype.peek=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0
+return this.stack.get(this.sp-e)},e.prototype.peekSmi=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0
+return this.stack.getSmi(this.sp-e)},e.prototype.get=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.fp
+return this.stack.get(t+e)},e.prototype.getSmi=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.fp
+return this.stack.getSmi(t+e)},e.prototype.set=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.fp
+this.stack.write(n+t,e)},e.prototype.slice=function(e,t){return this.stack.slice(e,t)},e.prototype.sliceArray=function(e,t){return this.stack.sliceInner(e,t)},e.prototype.capture=function(e){var t=this.sp+1
+return this.stack.sliceInner(t-e,t)},e.prototype.reset=function(){this.stack.reset()},e.prototype.toArray=function(){return this.stack.sliceInner(this.fp,this.sp+1)},e}(),Et=function(){function e(e,t,r){var i=r.alwaysRevalidate,o=void 0!==i&&i
+this.frameStack=new n.Stack,this.env=e,this.constants=t.constants,this.dom=e.getDOM(),this.alwaysRevalidate=o}return e.prototype.execute=function(e,t){var n,r=this.frameStack
+for(this.try(e,t);;){if(r.isEmpty())break
+n=this.frame.nextStatement(),null!==n?n.evaluate(this):this.frameStack.pop()}},e.prototype.goto=function(e){this.frame.goto(e)},e.prototype.try=function(e,t){this.frameStack.push(new Rt(e,t))},e.prototype.throw=function(){this.frame.handleException(),this.frameStack.pop()},(0,t.createClass)(e,[{key:"frame",get:function(){return this.frameStack.current}}]),e}(),St=function(e){function n(n,r,i,o,s){var a=(0,t.possibleConstructorReturn)(this,e.call(this))
+return a.start=n,a.state=r,a.runtime=i,a.type="block",a.next=null,a.prev=null,a.children=s,a.bounds=o,a}return(0,t.inherits)(n,e),n.prototype.parentElement=function(){return this.bounds.parentElement()},n.prototype.firstNode=function(){return this.bounds.firstNode()},n.prototype.lastNode=function(){return this.bounds.lastNode()},n.prototype.evaluate=function(e){e.try(this.children,null)},n.prototype.destroy=function(){this.bounds.destroy()},n.prototype.didDestroy=function(){this.runtime.env.didDestroy(this.bounds)},n}(he),Tt=function(e){function i(n,i,o,s,a){var u=(0,t.possibleConstructorReturn)(this,e.call(this,n,i,o,s,a))
+return u.type="try",u.tag=u._tag=r.UpdatableTag.create(r.CONSTANT_TAG),u}return(0,t.inherits)(i,e),i.prototype.didInitializeChildren=function(){this._tag.inner.update((0,r.combineSlice)(this.children))},i.prototype.evaluate=function(e){e.try(this.children,this)},i.prototype.handleException=function(){var e=this,t=this.state,r=this.bounds,i=this.children,o=this.start,s=this.prev,a=this.next,u=this.runtime
+i.clear()
+var c=Ct.resume(u.env,r,r.reset(u.env)),l=Wt.resume(t,u,c),h=new n.LinkedList
+l.execute(o,function(n){n.stack=jt.restore(t.stack),n.updatingOpcodeStack.push(h),n.updateWith(e),n.updatingOpcodeStack.push(i)}),this.prev=s,this.next=a},i}(St),Pt=function(){function e(e,t){this.opcode=e,this.marker=t,this.didInsert=!1,this.didDelete=!1,this.map=e.map,this.updating=e.children}return e.prototype.insert=function(e,t,r,i){var o=this.map,s=this.opcode,a=this.updating,u=null,c=null
+i?(c=o[i],u=c.bounds.firstNode()):u=this.marker
+var l=s.vmForInsertion(u),h=null,d=s.start
+l.execute(d,function(i){o[e]=h=i.iterate(r,t),i.updatingOpcodeStack.push(new n.LinkedList),i.updateWith(h),i.updatingOpcodeStack.push(h.children)}),a.insertBefore(h,c),this.didInsert=!0},e.prototype.retain=function(){},e.prototype.move=function(e,t,n,r){var i=this.map,o=this.updating,s=i[e],a=i[r]||null
+r?k(s,a.firstNode()):k(s,this.marker),o.remove(s),o.insertBefore(s,a)},e.prototype.delete=function(e){var t=this.map,n=t[e]
+n.didDestroy(),j(n),this.updating.remove(n),delete t[e],this.didDelete=!0},e.prototype.done=function(){this.opcode.didInitializeChildren(this.didInsert||this.didDelete)},e}(),Ot=function(e){function i(i,o,s,a,u,c){var l=(0,t.possibleConstructorReturn)(this,e.call(this,i,o,s,a,u))
+l.type="list-block",l.map=(0,n.dict)(),l.lastIterated=r.INITIAL,l.artifacts=c
+var h=l._tag=r.UpdatableTag.create(r.CONSTANT_TAG)
+return l.tag=(0,r.combine)([c.tag,h]),l}return(0,t.inherits)(i,e),i.prototype.didInitializeChildren=function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0]
+this.lastIterated=this.artifacts.tag.value(),e&&this._tag.inner.update((0,r.combineSlice)(this.children))},i.prototype.evaluate=function(t){var n,i,o,s,a,u=this.artifacts,c=this.lastIterated
+u.tag.validate(c)||(n=this.bounds,i=t.dom,o=i.createComment(""),i.insertAfter(n.parentElement(),o,n.lastNode()),s=new Pt(this,o),a=new r.IteratorSynchronizer({target:s,artifacts:u}),a.sync(),this.parentElement().removeChild(o)),e.prototype.evaluate.call(this,t)},i.prototype.vmForInsertion=function(e){var t=this.bounds,n=this.state,r=this.runtime,i=Ct.forInitialRender(r.env,{element:t.parentElement(),nextSibling:e})
+return Wt.resume(n,r,i)},i}(St),Rt=function(){function e(e,t){this.ops=e,this.exceptionHandler=t,this.current=e.head()}return e.prototype.goto=function(e){this.current=e},e.prototype.nextStatement=function(){var e=this.current,t=this.ops
+return e&&(this.current=t.nextNode(e)),e},e.prototype.handleException=function(){this.exceptionHandler&&this.exceptionHandler.handleException()},e}(),Nt=function(){function e(e,t,n,r){this.env=e,this.program=t,this.updating=n,this.bounds=r}return e.prototype.rerender=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{alwaysRevalidate:!1},t=e.alwaysRevalidate,n=void 0!==t&&t,r=this.env,i=this.program,o=this.updating
+new Et(r,i,{alwaysRevalidate:n}).execute(o,this)},e.prototype.parentElement=function(){return this.bounds.parentElement()},e.prototype.firstNode=function(){return this.bounds.firstNode()},e.prototype.lastNode=function(){return this.bounds.lastNode()},e.prototype.handleException=function(){throw"this should never happen"},e.prototype.destroy=function(){this.bounds.destroy(),j(this.bounds)},e}(),Mt=function(){function e(){this.stack=null,this.positional=new Lt,this.named=new zt,this.blocks=new Bt}return e.prototype.empty=function(e){var t=e.sp+1
+return this.named.empty(e,t),this.positional.empty(e,t),this.blocks.empty(e,t),this},e.prototype.setup=function(e,t,n,r,i){this.stack=e
+var o=this.named,s=t.length,a=e.sp-s+1
+o.setup(e,a,s,t,i)
+var u=this.positional,c=a-r
+u.setup(e,c,r)
+var l=this.blocks,h=n.length
+l.setup(e,c-3*h,h,n)},e.prototype.at=function(e){return this.positional.at(e)},e.prototype.realloc=function(e){var t,n,r,i,o,s=this.stack
+if(e>0&&null!==s){for(t=this.positional,n=this.named,r=t.base+e,i=t.length+n.length,o=i-1;o>=0;o--)s.copy(o+t.base,o+r)
+t.base+=e,n.base+=e,s.sp+=e}},e.prototype.capture=function(){var e=0===this.positional.length?qt:this.positional.capture(),t=0===this.named.length?Ut:this.named.capture()
+return{tag:this.tag,length:this.length,positional:e,named:t}},e.prototype.clear=function(){var e=this.stack,t=this.length
+t>0&&null!==e&&e.pop(t)},(0,t.createClass)(e,[{key:"tag",get:function(){return(0,r.combineTagged)([this.positional,this.named])}},{key:"base",get:function(){return this.blocks.base}},{key:"length",get:function(){return this.positional.length+this.named.length+3*this.blocks.length}}]),e}(),Lt=function(){function e(){this.base=0,this.length=0,this.stack=null,this._tag=null,this._references=null}return e.prototype.empty=function(e,t){this.stack=e,this.base=t,this.length=0,this._tag=r.CONSTANT_TAG,this._references=n.EMPTY_ARRAY},e.prototype.setup=function(e,t,i){this.stack=e,this.base=t,this.length=i,0===i?(this._tag=r.CONSTANT_TAG,this._references=n.EMPTY_ARRAY):(this._tag=null,this._references=null)},e.prototype.at=function(e){var t=this.base,n=this.length,r=this.stack
+return e<0||e>=n?ge:r.get(e,t)},e.prototype.capture=function(){return new Dt(this.tag,this.references)},e.prototype.prepend=function(e){var t,n,r,i,o=e.length
+if(o>0){for(t=this.base,n=this.length,r=this.stack,this.base=t-=o,this.length=n+o,i=0;i<o;i++)r.set(e.at(i),i,t)
+this._tag=null,this._references=null}},(0,t.createClass)(e,[{key:"tag",get:function(){var e=this._tag
+return e||(e=this._tag=(0,r.combineTagged)(this.references)),e}},{key:"references",get:function(){var e,t,n,r=this._references
+return r||(e=this.stack,t=this.base,n=this.length,r=this._references=e.sliceArray(t,t+n)),r}}]),e}(),Dt=function(){function e(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t.length
+this.tag=e,this.references=t,this.length=n}return e.empty=function(){return new e(r.CONSTANT_TAG,n.EMPTY_ARRAY,0)},e.prototype.at=function(e){return this.references[e]},e.prototype.value=function(){return this.references.map(this.valueOf)},e.prototype.get=function(e){var t,n=this.references,r=this.length
+return"length"===e?de.create(r):(t=parseInt(e,10),t<0||t>=r?ge:n[t])},e.prototype.valueOf=function(e){return e.value()},e}(),zt=function(){function e(){this.base=0,this.length=0,this._references=null,this._names=n.EMPTY_ARRAY,this._atNames=n.EMPTY_ARRAY}return e.prototype.empty=function(e,t){this.stack=e,this.base=t,this.length=0,this._references=n.EMPTY_ARRAY,this._names=n.EMPTY_ARRAY,this._atNames=n.EMPTY_ARRAY},e.prototype.setup=function(e,t,r,i,o){this.stack=e,this.base=t,this.length=r,0===r?(this._references=n.EMPTY_ARRAY,this._names=n.EMPTY_ARRAY,this._atNames=n.EMPTY_ARRAY):(this._references=null,o?(this._names=i,this._atNames=null):(this._names=null,this._atNames=i))},e.prototype.has=function(e){return-1!==this.names.indexOf(e)},e.prototype.get=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=this.base,r=this.stack,i=t?this.names:this.atNames,o=i.indexOf(e)
+return-1===o?ge:r.get(o,n)},e.prototype.capture=function(){return new Ft(this.tag,this.names,this.references)},e.prototype.merge=function(e){var t,n,r,i,o,s,a=e.length
+if(a>0){for(t=this.names,n=this.length,r=this.stack,i=e.names,Object.isFrozen(t)&&0===t.length&&(t=[]),o=0;o<a;o++)s=i[o],-1===t.indexOf(s)&&(n=t.push(s),r.push(e.references[o]))
+this.length=n,this._references=null,this._names=t,this._atNames=null}},e.prototype.toSyntheticName=function(e){return e.slice(1)},e.prototype.toAtName=function(e){return"@"+e},(0,t.createClass)(e,[{key:"tag",get:function(){return(0,r.combineTagged)(this.references)}},{key:"names",get:function(){var e=this._names
+return e||(e=this._names=this._atNames.map(this.toSyntheticName)),e}},{key:"atNames",get:function(){var e=this._atNames
+return e||(e=this._atNames=this._names.map(this.toAtName)),e}},{key:"references",get:function(){var e,t,n,r=this._references
+return r||(e=this.base,t=this.length,n=this.stack,r=this._references=n.sliceArray(e,e+t)),r}}]),e}(),Ft=function(){function e(e,t,n){this.tag=e,this.names=t,this.references=n,this.length=t.length,this._map=null}return e.prototype.has=function(e){return-1!==this.names.indexOf(e)},e.prototype.get=function(e){var t=this.names,n=this.references,r=t.indexOf(e)
+return-1===r?ge:n[r]},e.prototype.value=function(){var e,t,r=this.names,i=this.references,o=(0,n.dict)()
+for(e=0;e<r.length;e++)t=r[e],o[t]=i[e].value()
+return o},(0,t.createClass)(e,[{key:"map",get:function(){var e,t,r,i,o=this._map
+if(!o)for(e=this.names,t=this.references,o=this._map=(0,n.dict)(),r=0;r<e.length;r++)i=e[r],o[i]=t[r]
+return o}}]),e}(),Bt=function(){function e(){this.internalValues=null,this.internalTag=null,this.names=n.EMPTY_ARRAY,this.length=0,this.base=0}return e.prototype.empty=function(e,t){this.stack=e,this.names=n.EMPTY_ARRAY,this.base=t,this.length=0,this.internalTag=r.CONSTANT_TAG,this.internalValues=n.EMPTY_ARRAY},e.prototype.setup=function(e,t,i,o){this.stack=e,this.names=o,this.base=t,this.length=i,0===i?(this.internalTag=r.CONSTANT_TAG,this.internalValues=n.EMPTY_ARRAY):(this.internalTag=null,this.internalValues=null)},e.prototype.has=function(e){return-1!==this.names.indexOf(e)},e.prototype.get=function(e){var t=this.base,n=this.stack,r=this.names,i=r.indexOf(e)
+if(-1===r.indexOf(e))return null
+var o=n.get(3*i,t),s=n.get(3*i+1,t),a=n.get(3*i+2,t)
+return null===a?null:[a,s,o]},e.prototype.capture=function(){return new Ht(this.names,this.values)},(0,t.createClass)(e,[{key:"values",get:function(){var e,t,n,r=this.internalValues
+return r||(e=this.base,t=this.length,n=this.stack,r=this.internalValues=n.sliceArray(e,e+3*t)),r}}]),e}(),Ht=function(){function e(e,t){this.names=e,this.values=t,this.length=e.length}return e.prototype.has=function(e){return-1!==this.names.indexOf(e)},e.prototype.get=function(e){var t=this.names.indexOf(e)
+return-1===t?null:[this.values[3*t+2],this.values[3*t+1],this.values[3*t]]},e}(),Ut=new Ft(r.CONSTANT_TAG,n.EMPTY_ARRAY,n.EMPTY_ARRAY),qt=new Dt(r.CONSTANT_TAG,n.EMPTY_ARRAY),Vt={tag:r.CONSTANT_TAG,length:0,positional:qt,named:Ut},Wt=function(){function e(e,t,r,i){var o=this
+this.runtime=e,this.elementStack=i,this.dynamicScopeStack=new n.Stack,this.scopeStack=new n.Stack,this.updatingOpcodeStack=new n.Stack,this.cacheGroups=new n.Stack,this.listBlockStack=new n.Stack,this.s0=null,this.s1=null,this.t0=null,this.t1=null,this.v0=null,this.heap=this.program.heap,this.constants=this.program.constants,this.elementStack=i,this.scopeStack.push(t),this.dynamicScopeStack.push(r),this.args=new Mt,this.inner=new vt(jt.empty(),this.heap,e.program,{debugBefore:function(e){return le.debugBefore(o,e,e.type)},debugAfter:function(e,t){le.debugAfter(o,e,e.type,t)}})}return e.prototype.fetch=function(e){this.stack.push(this[i.Register[e]])},e.prototype.load=function(e){this[i.Register[e]]=this.stack.pop()},e.prototype.fetchValue=function(e){return this[i.Register[e]]},e.prototype.loadValue=function(e,t){this[i.Register[e]]=t},e.prototype.pushFrame=function(){this.inner.pushFrame()},e.prototype.popFrame=function(){this.inner.popFrame()},e.prototype.goto=function(e){this.inner.goto(e)},e.prototype.call=function(e){this.inner.call(e)},e.prototype.returnTo=function(e){this.inner.returnTo(e)},e.prototype.return=function(){this.inner.return()},e.initial=function(t,r,i,o,s,a){var u=t.heap.scopesizeof(a),c=pt.root(i,u),l=new e({program:t,env:r},c,o,s)
+return l.pc=l.heap.getaddr(a),l.updatingOpcodeStack.push(new n.LinkedList),l},e.empty=function(t,r,i){var o={get:function(){return ge},set:function(){return ge},child:function(){return o}},s=new e({program:t,env:r},pt.root(ge,0),o,i)
+return s.updatingOpcodeStack.push(new n.LinkedList),s},e.resume=function(t,n,r){return new e(n,t.scope,t.dynamicScope,r)},e.prototype.capture=function(e){return{dynamicScope:this.dynamicScope(),scope:this.scope(),stack:this.stack.capture(e)}},e.prototype.beginCacheGroup=function(){this.cacheGroups.push(this.updating().tail())},e.prototype.commitCacheGroup=function(){var e=new Se("END"),t=this.updating(),i=this.cacheGroups.pop(),o=i?t.nextNode(i):t.head(),s=t.tail(),a=(0,r.combineSlice)(new n.ListSlice(o,s)),u=new je(a,e)
+t.insertBefore(u,o),t.append(new Ee(u)),t.append(e)},e.prototype.enter=function(e){var t=new n.LinkedList,r=this.capture(e),i=this.elements().pushUpdatableBlock(),o=new Tt(this.heap.gethandle(this.pc),r,this.runtime,i,t)
+this.didEnter(o)},e.prototype.iterate=function(e,t){var r=this.stack
+r.push(t),r.push(e)
+var i=this.capture(2),o=this.elements().pushUpdatableBlock()
+return new Tt(this.heap.gethandle(this.pc),i,this.runtime,o,new n.LinkedList)},e.prototype.enterItem=function(e,t){this.listBlock().map[e]=t,this.didEnter(t)},e.prototype.enterList=function(e){var t=new n.LinkedList,r=this.capture(0),i=this.elements().pushBlockList(t),o=this.stack.peek().artifacts,s=this.pc+e-this.currentOpSize,a=this.heap.gethandle(s),u=new Ot(a,r,this.runtime,i,t,o)
+this.listBlockStack.push(u),this.didEnter(u)},e.prototype.didEnter=function(e){this.updateWith(e),this.updatingOpcodeStack.push(e.children)},e.prototype.exit=function(){this.elements().popBlock(),this.updatingOpcodeStack.pop(),this.updating().tail().didInitializeChildren()},e.prototype.exitList=function(){this.exit(),this.listBlockStack.pop()},e.prototype.updateWith=function(e){this.updating().append(e)},e.prototype.listBlock=function(){return this.listBlockStack.current},e.prototype.updating=function(){return this.updatingOpcodeStack.current},e.prototype.elements=function(){return this.elementStack},e.prototype.scope=function(){return this.scopeStack.current},e.prototype.dynamicScope=function(){return this.dynamicScopeStack.current},e.prototype.pushChildScope=function(){this.scopeStack.push(this.scope().child())},e.prototype.pushDynamicScope=function(){var e=this.dynamicScope().child()
+return this.dynamicScopeStack.push(e),e},e.prototype.pushRootScope=function(e,t){var n=pt.sized(e)
+return t&&n.bindCallerScope(this.scope()),this.scopeStack.push(n),n},e.prototype.pushScope=function(e){this.scopeStack.push(e)},e.prototype.popScope=function(){this.scopeStack.pop()},e.prototype.popDynamicScope=function(){this.dynamicScopeStack.pop()},e.prototype.newDestroyable=function(e){this.elements().didAddDestroyable(e)},e.prototype.getSelf=function(){return this.scope().getSelf()},e.prototype.referenceForSymbol=function(e){return this.scope().getSymbol(e)},e.prototype.execute=function(e,t){this.pc=this.heap.getaddr(e),t&&t(this)
+for(var n=void 0;;)if(n=this.next(),n.done)break
+return n.value},e.prototype.next=function(){var e=this.env,t=this.program,n=this.updatingOpcodeStack,r=this.elementStack,i=this.inner.nextStatement(),o=void 0
+return null!==i?(this.inner.evaluateOuter(i,this),o={done:!1,value:null}):(this.stack.reset(),o={done:!0,value:new Nt(e,t,n.pop(),r.popBlock())}),o},e.prototype.bindDynamicScope=function(e){var t,n,r=this.dynamicScope()
+for(t=e.length-1;t>=0;t--)n=this.constants.getString(e[t]),r.set(n,this.stack.pop())},(0,t.createClass)(e,[{key:"stack",get:function(){return this.inner.stack},set:function(e){this.inner.stack=e}},{key:"currentOpSize",set:function(e){this.inner.currentOpSize=e},get:function(){return this.inner.currentOpSize}},{key:"pc",get:function(){return this.inner.pc},set:function(e){this.inner.pc=e}},{key:"ra",get:function(){return this.inner.ra},set:function(e){this.inner.ra=e}},{key:"fp",get:function(){return this.stack.fp},set:function(e){this.stack.fp=e}},{key:"sp",get:function(){return this.stack.sp},set:function(e){this.stack.sp=e}},{key:"program",get:function(){return this.runtime.program}},{key:"env",get:function(){return this.runtime.env}}]),e}(),Gt=function(){function e(e){this.vm=e}return e.prototype.next=function(){return this.vm.next()},e}(),Yt=function(){function e(e,t){this.scope=e,this.nameRef=t
+var n=this.varTag=r.UpdatableTag.create(r.CONSTANT_TAG)
+this.tag=(0,r.combine)([t.tag,n])}return e.prototype.value=function(){return this.getVar().value()},e.prototype.get=function(e){return this.getVar().get(e)},e.prototype.getVar=function(){var e=String(this.nameRef.value()),t=this.scope.get(e)
+return this.varTag.inner.update(t.tag),t},e}(),Kt=function(e){function n(n,r,i){var o=(0,t.possibleConstructorReturn)(this,e.call(this,n,r))
+return o.startingBlockDepth=i,o.candidate=null,o.injectedOmittedNode=!1,o.openBlockDepth=i-1,o}return(0,t.inherits)(n,e),n}(Be),Qt=function(e){function r(r,i,o){var s=(0,t.possibleConstructorReturn)(this,e.call(this,r,i,o))
+if(s.unmatchedAttributes=null,s.blockDepth=0,o)throw new Error("Rehydration with nextSibling not supported")
+for(var a=s.currentCursor.element.firstChild;!(null===a||ee(a)&&(0,n.isSerializationFirstNode)(a));)a=a.nextSibling
+return s.candidate=a,s}return(0,t.inherits)(r,e),r.prototype.pushElement=function(e,t){var n=this.blockDepth,r=void 0===n?0:n,i=new Kt(e,t,r),o=this.currentCursor
+o&&o.candidate&&(i.candidate=e.firstChild,o.candidate=e.nextSibling),this.cursorStack.push(i)},r.prototype.clearMismatch=function(e){var t,n=e,r=this.currentCursor
+if(null!==r){if((t=r.openBlockDepth)>=r.startingBlockDepth)for(;n&&(!ee(n)||ne(n)!==t);)n=this.remove(n)
+else for(;null!==n;)n=this.remove(n)
+r.nextSibling=n,r.candidate=null}},r.prototype.__openBlock=function(){var e=this.currentCursor
+if(null!==e){var t=this.blockDepth
+this.blockDepth++
+var n=e.candidate
+null!==n&&(ee(n)&&te(n)===t?(e.candidate=this.remove(n),e.openBlockDepth=t):this.clearMismatch(n))}},r.prototype.__closeBlock=function(){var e=this.currentCursor
+if(null!==e){var t=e.openBlockDepth
+this.blockDepth--
+var n=e.candidate
+null!==n&&(ee(n)&&ne(n)===t?(e.candidate=this.remove(n),e.openBlockDepth--):this.clearMismatch(n)),e.openBlockDepth===this.blockDepth&&(e.candidate=this.remove(e.nextSibling),e.openBlockDepth--)}},r.prototype.__appendNode=function(t){var n=this.candidate
+return n||e.prototype.__appendNode.call(this,t)},r.prototype.__appendHTML=function(t){var n,r,i,o,s=this.markerBounds()
+return s?(n=s.firstNode(),r=s.lastNode(),i=w(this.element,n.nextSibling,r.previousSibling),o=this.remove(n),this.remove(r),null!==o&&se(o)&&(this.candidate=this.remove(o),null!==this.candidate&&this.clearMismatch(this.candidate)),i):e.prototype.__appendHTML.call(this,t)},r.prototype.remove=function(e){var t=e.parentNode,n=e.nextSibling
+return t.removeChild(e),n},r.prototype.markerBounds=function(){var e,t,n=this.candidate
+if(n&&ie(n)){for(e=n,t=e.nextSibling;t&&!ie(t);)t=t.nextSibling
+return w(this.element,e,t)}return null},r.prototype.__appendText=function(t){var n,r,i=this.candidate
+return i?$(i)?(i.nodeValue!==t&&(i.nodeValue=t),this.candidate=i.nextSibling,i):i&&(oe(i)||se(i))?(this.candidate=i.nextSibling,this.remove(i),this.__appendText(t)):se(i)?(n=this.remove(i),this.candidate=n,r=this.dom.createTextNode(t),this.dom.insertBefore(this.element,r,n),r):(this.clearMismatch(i),e.prototype.__appendText.call(this,t)):e.prototype.__appendText.call(this,t)},r.prototype.__appendComment=function(t){var n=this.candidate
+return n&&ee(n)?(n.nodeValue!==t&&(n.nodeValue=t),this.candidate=n.nextSibling,n):(n&&this.clearMismatch(n),e.prototype.__appendComment.call(this,t))},r.prototype.__openElement=function(t){var n=this.candidate
+if(n&&re(n)&&ae(n,t))return this.unmatchedAttributes=[].slice.call(n.attributes),n
+if(n){if(re(n)&&"TBODY"===n.tagName)return this.pushElement(n,null),this.currentCursor.injectedOmittedNode=!0,this.__openElement(t)
+this.clearMismatch(n)}return e.prototype.__openElement.call(this,t)},r.prototype.__setAttribute=function(t,n,r){var i,o=this.unmatchedAttributes
+return o&&(i=ue(o,t))?(i.value!==n&&(i.value=n),void o.splice(o.indexOf(i),1)):e.prototype.__setAttribute.call(this,t,n,r)},r.prototype.__setProperty=function(t,n){var r,i=this.unmatchedAttributes
+return i&&(r=ue(i,t))?(r.value!==n&&(r.value=n),void i.splice(i.indexOf(r),1)):e.prototype.__setProperty.call(this,t,n)},r.prototype.__flushElement=function(t,n){var r,i=this.unmatchedAttributes
+if(i){for(r=0;r<i.length;r++)this.constructing.removeAttribute(i[r].name)
+this.unmatchedAttributes=null}else e.prototype.__flushElement.call(this,t,n)},r.prototype.willCloseElement=function(){var t=this.candidate,n=this.currentCursor
+null!==t&&this.clearMismatch(t),n&&n.injectedOmittedNode&&this.popElement(),e.prototype.willCloseElement.call(this)},r.prototype.getMarker=function(e,t){var n=e.querySelector('script[glmr="'+t+'"]')
+if(n)return n
+throw new Error("Cannot find serialized cursor for `in-element`")},r.prototype.__pushRemoteElement=function(e,t){var n,r,i,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,s=this.getMarker(e,t)
+s.parentNode===e&&(n=this.currentCursor,r=n.candidate,this.pushElement(e,o),n.candidate=r,this.candidate=this.remove(s),i=new _t(e),this.pushBlockTracker(i,!0))},r.prototype.didAppendBounds=function(t){var n
+return e.prototype.didAppendBounds.call(this,t),this.candidate&&(n=t.lastNode(),this.candidate=n&&n.nextSibling),t},(0,t.createClass)(r,[{key:"currentCursor",get:function(){return this.cursorStack.current}},{key:"candidate",get:function(){return this.currentCursor?this.currentCursor.candidate:null},set:function(e){this.currentCursor.candidate=e}}]),r}(Ct)
+e.renderMain=function(e,t,n,r,i,o){var s=Wt.initial(e,t,n,r,i,o)
+return new Gt(s)},e.NULL_REFERENCE=me,e.UNDEFINED_REFERENCE=ge,e.PrimitiveReference=de,e.ConditionalReference=be,e.setDebuggerCallback=function(e){De=e},e.resetDebuggerCallback=function(){De=I},e.getDynamicVar=function(e,t){var n=e.dynamicScope(),r=t.positional.at(0)
+return new Yt(n,r)},e.LowLevelVM=Wt,e.UpdatingVM=Et,e.RenderResult=Nt,e.SimpleDynamicAttribute=at,e.DynamicAttribute=st,e.EMPTY_ARGS=Vt,e.Scope=pt,e.Environment=gt,e.DefaultEnvironment=mt,e.DEFAULT_CAPABILITIES={dynamicLayout:!0,dynamicTag:!0,prepareArgs:!0,createArgs:!0,attributeHook:!1,elementHook:!1,dynamicScope:!0,createCaller:!1,updateHook:!0,createInstance:!0},e.MINIMAL_CAPABILITIES={dynamicLayout:!1,dynamicTag:!1,prepareArgs:!1,createArgs:!1,attributeHook:!1,elementHook:!1,dynamicScope:!1,createCaller:!1,updateHook:!1,createInstance:!1},e.CurriedComponentDefinition=_e,e.isCurriedComponentDefinition=a,e.curry=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null
+return new _e(e,t)},e.DOMChanges=Je,e.SVG_NAMESPACE=qe,e.IDOMChanges=Ze,e.DOMTreeConstruction=$e,e.isWhitespace=function(e){return Ye.test(e)},e.insertHTMLBefore=N,e.normalizeProperty=B,e.NewElementBuilder=Ct
+e.clientBuilder=function(e,t){return Ct.forInitialRender(e,t)},e.rehydrationBuilder=function(e,t){return Qt.forInitialRender(e,t)},e.RehydrateBuilder=Qt,e.ConcreteBounds=He,e.Cursor=Be,e.capabilityFlagsFrom=v,e.hasCapability=y}),e("@glimmer/util",["exports","ember-babel"],function(e,t){"use strict"
+function n(e){return e._guid=++s}function r(e){return e._guid||n(e)}function i(){return Object.create(null)}e.unreachable=e.expect=e.unwrap=e.EMPTY_ARRAY=e.ListSlice=e.ListNode=e.LinkedList=e.EMPTY_SLICE=e.dict=e.DictSet=e.Stack=e.SERIALIZATION_FIRST_NODE_STRING=e.isSerializationFirstNode=e.initializeGuid=e.ensureGuid=e.fillNulls=e.assign=e.assert=void 0
+var o=Object.keys,s=0,a=function(){function e(){this.dict=i()}return e.prototype.add=function(e){return"string"==typeof e?this.dict[e]=e:this.dict[r(e)]=e,this},e.prototype.delete=function(e){"string"==typeof e?delete this.dict[e]:e._guid&&delete this.dict[e._guid]},e}(),u=function(){function e(){this.stack=[],this.current=null}return e.prototype.push=function(e){this.current=e,this.stack.push(e)},e.prototype.pop=function(){var e=this.stack.pop(),t=this.stack.length
+return this.current=0===t?null:this.stack[t-1],void 0===e?null:e},e.prototype.isEmpty=function(){return 0===this.stack.length},(0,t.createClass)(e,[{key:"size",get:function(){return this.stack.length}}]),e}(),c=function(){function e(){this.clear()}return e.prototype.head=function(){return this._head},e.prototype.tail=function(){return this._tail},e.prototype.clear=function(){this._head=this._tail=null},e.prototype.toArray=function(){var e=[]
+return this.forEachNode(function(t){return e.push(t)}),e},e.prototype.nextNode=function(e){return e.next},e.prototype.forEachNode=function(e){for(var t=this._head;null!==t;)e(t),t=t.next},e.prototype.insertBefore=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null
+return null===t?this.append(e):(t.prev?t.prev.next=e:this._head=e,e.prev=t.prev,e.next=t,t.prev=e,e)},e.prototype.append=function(e){var t=this._tail
+return t?(t.next=e,e.prev=t,e.next=null):this._head=e,this._tail=e},e.prototype.remove=function(e){return e.prev?e.prev.next=e.next:this._head=e.next,e.next?e.next.prev=e.prev:this._tail=e.prev,e},e}(),l=function(){function e(e,t){this._head=e,this._tail=t}return e.prototype.forEachNode=function(e){for(var t=this._head;null!==t;)e(t),t=this.nextNode(t)},e.prototype.head=function(){return this._head},e.prototype.tail=function(){return this._tail},e.prototype.toArray=function(){var e=[]
+return this.forEachNode(function(t){return e.push(t)}),e},e.prototype.nextNode=function(e){return e===this._tail?null:e.next},e}(),h=new l(null,null),d=Object.freeze([])
+e.assert=function(e,t){if(!e)throw new Error(t||"assertion failure")},e.assign=function(e){var t,n,r,i,s
+for(t=1;t<arguments.length;t++)if(null!==(n=arguments[t])&&"object"==typeof n)for(r=o(n),i=0;i<r.length;i++)s=r[i],e[s]=n[s]
+return e},e.fillNulls=function(e){var t,n=new Array(e)
+for(t=0;t<e;t++)n[t]=null
+return n},e.ensureGuid=r,e.initializeGuid=n,e.isSerializationFirstNode=function(e){return"%+b:0%"===e.nodeValue},e.SERIALIZATION_FIRST_NODE_STRING="%+b:0%",e.Stack=u,e.DictSet=a,e.dict=i,e.EMPTY_SLICE=h,e.LinkedList=c,e.ListNode=function(e){this.next=null,this.prev=null,this.value=e},e.ListSlice=l,e.EMPTY_ARRAY=d,e.unwrap=function(e){if(null===e||void 0===e)throw new Error("Expected value to be present")
+return e},e.expect=function(e,t){if(null===e||void 0===e)throw new Error(t)
+return e},e.unreachable=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"unreachable"
+return new Error(e)}}),e("@glimmer/vm",["exports"],function(e){"use strict"
+var t;(function(e){e[e.pc=0]="pc",e[e.ra=1]="ra",e[e.fp=2]="fp",e[e.sp=3]="sp",e[e.s0=4]="s0",e[e.s1=5]="s1",e[e.t0=6]="t0",e[e.t1=7]="t1",e[e.v0=8]="v0"})(t||(e.Register=t={})),e.Register=t}),e("@glimmer/wire-format",["exports"],function(e){"use strict"
+function t(e){return function(t){return Array.isArray(t)&&t[0]===e}}function n(e){return e[0]===i.StaticAttr||e[0]===i.DynamicAttr||e[0]===i.TrustingAttr}function r(e){return e[0]===i.StaticArg||e[0]===i.DynamicArg}var i;(function(e){e[e.Text=0]="Text",e[e.Append=1]="Append",e[e.Comment=2]="Comment",e[e.Modifier=3]="Modifier",e[e.Block=4]="Block",e[e.Component=5]="Component",e[e.OpenElement=6]="OpenElement",e[e.OpenSplattedElement=7]="OpenSplattedElement",e[e.FlushElement=8]="FlushElement",e[e.CloseElement=9]="CloseElement",e[e.StaticAttr=10]="StaticAttr",e[e.DynamicAttr=11]="DynamicAttr",e[e.AttrSplat=12]="AttrSplat",e[e.Yield=13]="Yield",e[e.Partial=14]="Partial",e[e.DynamicArg=15]="DynamicArg",e[e.StaticArg=16]="StaticArg",e[e.TrustingAttr=17]="TrustingAttr",e[e.Debugger=18]="Debugger",e[e.ClientSideStatement=19]="ClientSideStatement",e[e.Unknown=20]="Unknown",e[e.Get=21]="Get",e[e.MaybeLocal=22]="MaybeLocal",e[e.HasBlock=23]="HasBlock",e[e.HasBlockParams=24]="HasBlockParams",e[e.Undefined=25]="Undefined",e[e.Helper=26]="Helper",e[e.Concat=27]="Concat",e[e.ClientSideExpression=28]="ClientSideExpression"})(i||(e.Ops=i={}))
+var o=t(i.Modifier),s=t(i.FlushElement),a=t(i.Get),u=t(i.MaybeLocal)
+e.is=t,e.isModifier=o,e.isFlushElement=s,e.isAttribute=n,e.isArgument=r,e.isGet=a,e.isMaybeLocal=u,e.Ops=i}),e("backburner",["exports","ember-babel"],function(e,t){"use strict"
+function n(e){var t,n,r,i,o=void 0
+return"function"==typeof MutationObserver?(t=0,n=new MutationObserver(e),r=document.createTextNode(""),n.observe(r,{characterData:!0}),o=function(){return t=++t%2,r.data=""+t,t}):"function"==typeof Promise?(i=Promise.resolve(),o=function(){return i.then(e)}):o=function(){return h(e,0)},{setTimeout:function(e,t){return h(e,t)},clearTimeout:function(e){return clearTimeout(e)},now:function(){return Date.now()},next:o,clearNext:d}}function r(e){var t=typeof e
+return"number"===t&&e===e||"string"===t&&p.test(e)}function i(e){return e.onError||e.onErrorTarget&&e.onErrorTarget[e.onErrorMethod]}function o(e,t,n){var r,i,o=-1
+for(r=0,i=n.length;r<i;r+=4)if(n[r]===e&&n[r+1]===t){o=r
+break}return o}function s(e,t){var n,r=-1
+for(n=3;n<t.length;n+=4)if(t[n]===e){r=n-3
+break}return r}function a(e,t){for(var n=0,r=t.length-6,i=void 0,o=void 0;n<r;)o=(r-n)/6,i=n+o-o%6,e>=t[i]?n=i+6:r=i
+return e>=t[n]?n+6:n}function u(){var e,t,n,r,i,o,s=arguments.length,a=void 0,u=void 0,c=void 0
+if(0===s);else if(1===s)c=null,u=arguments[0]
+else if(e=2,t=arguments[0],n=arguments[1],r=typeof n,"function"===r?(c=t,u=n):null!==t&&"string"===r&&n in t?(c=t,u=c[n]):"function"==typeof t&&(e=1,c=null,u=t),s>e)for(i=s-e,a=new Array(i),o=0;o<i;o++)a[o]=arguments[o+e]
+return[c,u,a]}function c(){var e,t=u.apply(void 0,arguments),n=t[0],i=t[1],o=t[2],s=0,a=void 0!==o?o.length:0
+return a>0&&(e=o[a-1],r(e)&&(s=parseInt(o.pop(),10))),[n,i,o,s]}function l(){var e,t=void 0,n=void 0,i=void 0,o=void 0,s=void 0
+return 2===arguments.length?(n=arguments[0],s=arguments[1],t=null):(e=u.apply(void 0,arguments),t=e[0],n=e[1],o=e[2],void 0===o?s=0:(s=o.pop(),r(s)||(i=!0===s,s=o.pop()))),s=parseInt(s,10),[t,n,o,s,i]}e.buildPlatform=void 0
+var h=setTimeout,d=function(){},p=/\d+/,f=function(){function e(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}
+this._queueBeingFlushed=[],this.targetQueues=new Map,this.index=0,this._queue=[],this.name=e,this.options=t,this.globalOptions=n}return e.prototype.stackFor=function(e){var t
+if(e<this._queue.length)return t=this._queue[3*e+4],t?t.stack:null},e.prototype.flush=function(e){var t,n,r=this.options,o=r.before,s=r.after,a=void 0,u=void 0,c=void 0,l=void 0
+this.targetQueues.clear(),0===this._queueBeingFlushed.length&&(this._queueBeingFlushed=this._queue,this._queue=[]),void 0!==o&&o()
+var h=void 0,d=this._queueBeingFlushed
+if(d.length>0)for(t=i(this.globalOptions),h=t?this.invokeWithOnError:this.invoke,n=this.index;n<d.length;n+=4)if(this.index+=4,u=d[n+1],null!==u&&(a=d[n],c=d[n+2],l=d[n+3],h(a,u,c,t,l)),this.index!==this._queueBeingFlushed.length&&this.globalOptions.mustYield&&this.globalOptions.mustYield())return 1
+void 0!==s&&s(),this._queueBeingFlushed.length=0,this.index=0,!1!==e&&this._queue.length>0&&this.flush(!0)},e.prototype.hasWork=function(){return this._queueBeingFlushed.length>0||this._queue.length>0},e.prototype.cancel=function(e){var t=e.target,n=e.method,r=this._queue,i=this.targetQueues.get(t)
+void 0!==i&&i.delete(n)
+var s=o(t,n,r)
+return s>-1?(r.splice(s,4),!0):(r=this._queueBeingFlushed,(s=o(t,n,r))>-1&&(r[s+1]=null,!0))},e.prototype.push=function(e,t,n,r){return this._queue.push(e,t,n,r),{queue:this,target:e,method:t}},e.prototype.pushUnique=function(e,t,n,r){var i,o,s=this.targetQueues.get(e)
+void 0===s&&(s=new Map,this.targetQueues.set(e,s))
+var a=s.get(t)
+return void 0===a?(i=this._queue.push(e,t,n,r)-4,s.set(t,i)):(o=this._queue,o[a+2]=n,o[a+3]=r),{queue:this,target:e,method:t}},e.prototype.invoke=function(e,t,n){void 0===n?t.call(e):t.apply(e,n)},e.prototype.invokeWithOnError=function(e,t,n,r,i){try{void 0===n?t.call(e):t.apply(e,n)}catch(e){r(e,i)}},e}(),g=function(){function e(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments[1]
+this.queues={},this.queueNameIndex=0,this.queueNames=e,e.reduce(function(e,n){return e[n]=new f(n,t[n],t),e},this.queues)}return e.prototype.schedule=function(e,t,n,r,i,o){var s=this.queues,a=s[e]
+if(void 0===a)throw new Error("You attempted to schedule an action in a queue ("+e+") that doesn't exist")
+if(void 0===n||null===n)throw new Error("You attempted to schedule an action in a queue ("+e+") for a method that doesn't exist")
+return this.queueNameIndex=0,i?a.pushUnique(t,n,r,o):a.push(t,n,r,o)},e.prototype.flush=function(){for(var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=void 0,n=void 0,r=this.queueNames.length;this.queueNameIndex<r;)if(n=this.queueNames[this.queueNameIndex],t=this.queues[n],!1===t.hasWork()){if(this.queueNameIndex++,e&&this.queueNameIndex<r)return 1}else if(1===t.flush(!1))return 1},e}(),m=function(e){for(var t=e(),n=t.next();!1===n.done;)n.value(),n=t.next()},v=function(){},y=0,b=0,C=0,A=0,_=0,I=0,w=0,x=0,k=0,j=0,E=0,S=0,T=0,P=0,O=0,R=0,N=0,M=0,L=0,D=0,z=0,F=function(){function e(e,t){var r=this
+this.DEBUG=!1,this.currentInstance=null,this.instanceStack=[],this._debouncees=[],this._throttlers=[],this._eventCallbacks={end:[],begin:[]},this._timerTimeoutId=null,this._timers=[],this._autorun=null,this.queueNames=e,this.options=t||{},"string"==typeof this.options.defaultQueue?this._defaultQueue=this.options.defaultQueue:this._defaultQueue=this.queueNames[0],this._onBegin=this.options.onBegin||v,this._onEnd=this.options.onEnd||v,this._boundRunExpiredTimers=this._runExpiredTimers.bind(this),this._boundAutorunEnd=function(){L++,null!==r._autorun&&(r._autorun=null,r._end(!0))}
+var i=this.options._buildPlatform||n
+this._platform=i(this._boundAutorunEnd)}return e.prototype.begin=function(){b++
+var e=this.options,t=this.currentInstance,n=void 0
+return null!==this._autorun?(n=t,this._cancelAutorun()):(null!==t&&(z++,this.instanceStack.push(t)),D++,n=this.currentInstance=new g(this.queueNames,e),A++,this._trigger("begin",n,t)),this._onBegin(n,t),n},e.prototype.end=function(){C++,this._end(!1)},e.prototype.on=function(e,t){if("function"!=typeof t)throw new TypeError("Callback must be a function")
+var n=this._eventCallbacks[e]
+if(void 0===n)throw new TypeError("Cannot on() event "+e+" because it does not exist")
+n.push(t)},e.prototype.off=function(e,t){var n,r=this._eventCallbacks[e]
+if(!e||void 0===r)throw new TypeError("Cannot off() event "+e+" because it does not exist")
+var i=!1
+if(t)for(n=0;n<r.length;n++)r[n]===t&&(i=!0,r.splice(n,1),n--)
+if(!i)throw new TypeError("Cannot off() callback that does not exist")},e.prototype.run=function(){_++
+var e=u.apply(void 0,arguments),t=e[0],n=e[1],r=e[2]
+return this._run(t,n,r)},e.prototype.join=function(){I++
+var e=u.apply(void 0,arguments),t=e[0],n=e[1],r=e[2]
+return this._join(t,n,r)},e.prototype.defer=function(e,t,n){var r,i,o
+for(w++,r=arguments.length,i=Array(r>3?r-3:0),o=3;o<r;o++)i[o-3]=arguments[o]
+return this.schedule.apply(this,[e,t,n].concat(i))},e.prototype.schedule=function(e){for(x++,t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r]
+var t,n,r,i=u.apply(void 0,n),o=i[0],s=i[1],a=i[2],c=this.DEBUG?new Error:void 0
+return this._ensureInstance().schedule(e,o,s,a,!1,c)},e.prototype.scheduleIterable=function(e,t){k++
+var n=this.DEBUG?new Error:void 0
+return this._ensureInstance().schedule(e,null,m,[t],!1,n)},e.prototype.deferOnce=function(e,t,n){var r,i,o
+for(j++,r=arguments.length,i=Array(r>3?r-3:0),o=3;o<r;o++)i[o-3]=arguments[o]
+return this.scheduleOnce.apply(this,[e,t,n].concat(i))},e.prototype.scheduleOnce=function(e){for(E++,t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r]
+var t,n,r,i=u.apply(void 0,n),o=i[0],s=i[1],a=i[2],c=this.DEBUG?new Error:void 0
+return this._ensureInstance().schedule(e,o,s,a,!0,c)},e.prototype.setTimeout=function(){return S++,this.later.apply(this,arguments)},e.prototype.later=function(){T++
+var e=c.apply(void 0,arguments),t=e[0],n=e[1],r=e[2],i=e[3]
+return this._later(t,n,r,i)},e.prototype.throttle=function(){var e=this
+P++
+var t=l.apply(void 0,arguments),n=t[0],r=t[1],i=t[2],a=t[3],u=t[4],c=void 0===u||u,h=o(n,r,this._throttlers)
+if(h>-1)return this._throttlers[h+2]=i,this._throttlers[h+3]
+var d=this._platform.setTimeout(function(){var t=s(d,e._throttlers),n=e._throttlers.splice(t,4),r=n[0],i=n[1],o=n[2]
+!1===c&&e._run(r,i,o)},a)
+return c&&this._join(n,r,i),this._throttlers.push(n,r,i,d),d},e.prototype.debounce=function(){var e,t=this
+O++
+var n=l.apply(void 0,arguments),r=n[0],i=n[1],a=n[2],u=n[3],c=n[4],h=void 0!==c&&c,d=o(r,i,this._debouncees)
+d>-1&&(e=this._debouncees[d+3],this._platform.clearTimeout(e),this._debouncees.splice(d,4))
+var p=this._platform.setTimeout(function(){var e=s(p,t._debouncees),n=t._debouncees.splice(e,4),r=n[0],i=n[1],o=n[2]
+!1===h&&t._run(r,i,o)},u)
+return h&&-1===d&&this._join(r,i,a),this._debouncees.push(r,i,a,p),p},e.prototype.cancelTimers=function(){var e,t
+for(R++,e=3;e<this._throttlers.length;e+=4)this._platform.clearTimeout(this._throttlers[e])
+for(this._throttlers=[],t=3;t<this._debouncees.length;t+=4)this._platform.clearTimeout(this._debouncees[t])
+this._debouncees=[],this._clearTimerTimeout(),this._timers=[],this._cancelAutorun()},e.prototype.hasTimers=function(){return this._timers.length>0||this._debouncees.length>0||this._throttlers.length>0||null!==this._autorun},e.prototype.cancel=function(e){if(N++,void 0===e||null===e)return!1
+var t=typeof e
+return"number"===t?this._cancelItem(e,this._throttlers)||this._cancelItem(e,this._debouncees):"string"===t?this._cancelLaterTimer(e):!("object"!==t||!e.queue||!e.method)&&e.queue.cancel(e)},e.prototype.ensureInstance=function(){this._ensureInstance()},e.prototype._end=function(e){var t=this.currentInstance,n=null
+if(null===t)throw new Error("end called without begin")
+var r=!1,i=void 0
+try{i=t.flush(e)}finally{r||(r=!0,1===i?this._scheduleAutorun():(this.currentInstance=null,this.instanceStack.length>0&&(n=this.instanceStack.pop(),this.currentInstance=n),this._trigger("end",t,n),this._onEnd(t,n)))}},e.prototype._join=function(e,t,n){return null===this.currentInstance?this._run(e,t,n):void 0===e&&void 0===n?t():t.apply(e,n)},e.prototype._run=function(e,t,n){var r=i(this.options)
+if(this.begin(),r)try{return t.apply(e,n)}catch(e){r(e)}finally{this.end()}else try{return t.apply(e,n)}finally{this.end()}},e.prototype._cancelAutorun=function(){null!==this._autorun&&(this._platform.clearNext(this._autorun),this._autorun=null)},e.prototype._later=function(e,t,n,r){var i,o=this.DEBUG?new Error:void 0,s=this._platform.now()+r,u=y+++""
+return 0===this._timers.length?(this._timers.push(s,u,e,t,n,o),this._installTimerTimeout()):(i=a(s,this._timers),this._timers.splice(i,0,s,u,e,t,n,o),0===i&&this._reinstallTimerTimeout()),u},e.prototype._cancelLaterTimer=function(e){var t
+for(t=1;t<this._timers.length;t+=6)if(this._timers[t]===e)return t-=1,this._timers.splice(t,6),0===t&&this._reinstallTimerTimeout(),!0
+return!1},e.prototype._cancelItem=function(e,t){var n=s(e,t)
+return n>-1&&(this._platform.clearTimeout(e),t.splice(n,4),!0)},e.prototype._trigger=function(e,t,n){var r,i=this._eventCallbacks[e]
+if(void 0!==i)for(r=0;r<i.length;r++)i[r](t,n)},e.prototype._runExpiredTimers=function(){this._timerTimeoutId=null,this._timers.length>0&&(this.begin(),this._scheduleExpiredTimers(),this.end())},e.prototype._scheduleExpiredTimers=function(){for(var e,t,n,r,i=this._timers,o=0,s=i.length,a=this._defaultQueue,u=this._platform.now();o<s&&!(i[o]>u);o+=6)e=i[o+2],t=i[o+3],n=i[o+4],r=i[o+5],this.currentInstance.schedule(a,e,t,n,!1,r)
+i.splice(0,o),this._installTimerTimeout()},e.prototype._reinstallTimerTimeout=function(){this._clearTimerTimeout(),this._installTimerTimeout()},e.prototype._clearTimerTimeout=function(){null!==this._timerTimeoutId&&(this._platform.clearTimeout(this._timerTimeoutId),this._timerTimeoutId=null)},e.prototype._installTimerTimeout=function(){if(0!==this._timers.length){var e=this._timers[0],t=this._platform.now(),n=Math.max(0,e-t)
+this._timerTimeoutId=this._platform.setTimeout(this._boundRunExpiredTimers,n)}},e.prototype._ensureInstance=function(){var e=this.currentInstance
+return null===e&&(e=this.begin(),this._scheduleAutorun()),e},e.prototype._scheduleAutorun=function(){M++
+var e=this._platform.next
+this._autorun=e()},(0,t.createClass)(e,[{key:"counters",get:function(){return{begin:b,end:C,events:{begin:A,end:0},autoruns:{created:M,completed:L},run:_,join:I,defer:w,schedule:x,scheduleIterable:k,deferOnce:j,scheduleOnce:E,setTimeout:S,later:T,throttle:P,debounce:O,cancelTimers:R,cancel:N,loops:{total:D,nested:z}}}},{key:"defaultQueue",get:function(){return this._defaultQueue}}]),e}()
+F.Queue=f,e.buildPlatform=n,e.default=F}),e("container",["exports","ember-debug","ember-utils","ember-environment"],function(e,t,n,r){"use strict"
+function i(e,t){return!1!==e.registry.getOption(t,"singleton")}function o(e,t){return!1!==e.registry.getOption(t,"instantiate")}function s(e,t){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=t
+if(!r.source&&!r.namespace||(i=e.registry.expandLocalLookup(t,r)))return!1!==r.singleton&&void 0!==(n=e.cache[i])?n:d(e,i,t,r)}function a(e,t,n){var r=e.factoryManagerCache[t]
+if(void 0!==r)return r
+var i=e.registry.resolve(t)
+if(void 0!==i){var o=new x(e,i,n,t)
+return e.factoryManagerCache[t]=o,o}}function u(e,t,n){var r=n.instantiate
+return!1!==n.singleton&&!r&&i(e,t)&&!o(e,t)}function c(e,t,n){var r=n.instantiate
+return!1!==n.singleton&&!1!==r&&i(e,t)&&o(e,t)}function l(e,t,n){var r=n.instantiate,s=n.singleton
+return!(!1!==r||!1!==s&&i(e,t)||o(e,t))}function h(e,t,n){var r=n.instantiate,s=n.singleton
+return!1!==r&&(!1!==s||i(e,t))&&o(e,t)}function d(e,t,n,r){var i=a(e,t,n)
+if(void 0!==i){if(c(e,n,r))return e.cache[t]=i.create()
+if(h(e,n,r))return i.create()
+if(u(e,n,r)||l(e,n,r))return i.class
+throw new Error("Could not create factory")}}function p(e,t,n){var r,o,a,u,c,l=n.injections
+for(void 0===l&&(l=n.injections={}),r=0;r<t.length;r++)o=t[r],a=o.property,u=o.specifier,c=o.source,l[a]=c?s(e,u,{source:c}):s(e,u),n.isDynamic||(n.isDynamic=!i(e,u))}function f(e,t,n){var r={injections:void 0,isDyanmic:!1}
+return void 0!==t&&p(e,t,r),void 0!==n&&p(e,n,r),r}function g(e,t){var n=e.registry,r=t.split(":"),i=r[0]
+return f(e,n.getTypeInjections(i),n.getInjections(t))}function m(e){var t,n,r,i=e.cache,o=Object.keys(i)
+for(t=0;t<o.length;t++)n=o[t],r=i[n],r.destroy&&r.destroy()}function v(e){m(e),e.cache=(0,n.dictionary)(null),e.factoryManagerCache=(0,n.dictionary)(null)}function y(e,t){var n=e.cache[t]
+delete e.factoryManagerCache[t],n&&(delete e.cache[t],n.destroy&&n.destroy())}function b(e){e.resolver={resolve:e.resolver}}function C(e,t,n,r){var i=e._localLookupCache,o=i[t]
+o||(o=i[t]=Object.create(null))
+var s=r||n,a=o[s]
+if(void 0!==a)return a
+var u=e.resolver.expandLocalLookup(t,n,r)
+return o[s]=u}function A(e,t,n){var r=t
+if(void 0===n||!n.source&&!n.namespace||(r=e.expandLocalLookup(t,n))){var i=e._resolveCache[r]
+if(void 0!==i)return i
+if(!e._failSet.has(r)){var o=void 0
+return e.resolver&&(o=e.resolver.resolve(r)),void 0===o&&(o=e.registrations[r]),void 0===o?e._failSet.add(r):e._resolveCache[r]=o,o}}}function _(e,t,n,r){return void 0!==e.resolve(t,{source:n,namespace:r})}e.FACTORY_FOR=e.Container=e.privatize=e.Registry=void 0
+var I=function(){function e(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}
+this.registry=e,this.owner=t.owner||null,this.cache=(0,n.dictionary)(t.cache||null),this.factoryManagerCache=(0,n.dictionary)(t.factoryManagerCache||null),this.isDestroyed=!1}return e.prototype.lookup=function(e,t){return s(this,this.registry.normalize(e),t)},e.prototype.destroy=function(){v(this),this.isDestroyed=!0},e.prototype.reset=function(e){this.isDestroyed||(void 0===e?v(this):y(this,this.registry.normalize(e)))},e.prototype.ownerInjection=function(){var e
+return e={},e[n.OWNER]=this.owner,e},e.prototype.factoryFor=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.registry.normalize(e)
+if(!t.source&&!t.namespace||(n=this.registry.expandLocalLookup(e,t)))return a(this,n,e)},e}(),w=new WeakMap,x=function(){function e(e,t,n,r){this.container=e,this.owner=e.owner,this.class=t,this.fullName=n,this.normalizedName=r,this.madeToString=void 0,this.injections=void 0,w.set(this,this)}return e.prototype.toString=function(){return void 0===this.madeToString&&(this.madeToString=this.container.registry.makeToString(this.class,this.fullName)),this.madeToString},e.prototype.create=function(e){var t,r,i,o=this.injections
+void 0===o&&(t=g(this.container,this.normalizedName),r=t.injections,i=t.isDynamic,o=r,i||(this.injections=r))
+var s=o
+if(void 0!==e&&(s=(0,n.assign)({},o,e)),!this.class.create)throw new Error("Failed to create an instance of '"+this.normalizedName+"'. Most likely an improperly defined class or an invalid module export.")
+"function"==typeof this.class._initFactory?this.class._initFactory(this):(void 0!==e&&void 0!==s||(s=(0,n.assign)({},s)),(0,n.setOwner)(s,this.owner))
+var a=this.class.create(s)
+return w.set(a,this),a},e}(),k=/^[^:]+:[^:]+$/,j=function(){function e(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}
+this.fallback=e.fallback||null,this.resolver=e.resolver||null,r.ENV._ENABLE_RESOLVER_FUNCTION_SUPPORT,"function"==typeof this.resolver&&!0===r.ENV._ENABLE_RESOLVER_FUNCTION_SUPPORT&&b(this),this.registrations=(0,n.dictionary)(e.registrations||null),this._typeInjections=(0,n.dictionary)(null),this._injections=(0,n.dictionary)(null),this._localLookupCache=Object.create(null),this._normalizeCache=(0,n.dictionary)(null),this._resolveCache=(0,n.dictionary)(null),this._failSet=new Set,this._options=(0,n.dictionary)(null),this._typeOptions=(0,n.dictionary)(null)}return e.prototype.container=function(e){return new I(this,e)},e.prototype.register=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.normalize(e)
+this._failSet.delete(r),this.registrations[r]=t,this._options[r]=n},e.prototype.unregister=function(e){var t=this.normalize(e)
+this._localLookupCache=Object.create(null),delete this.registrations[t],delete this._resolveCache[t],delete this._options[t],this._failSet.delete(t)},e.prototype.resolve=function(e,t){var n,r=A(this,this.normalize(e),t)
+return void 0===r&&null!==this.fallback&&(r=(n=this.fallback).resolve.apply(n,arguments)),r},e.prototype.describe=function(e){return null!==this.resolver&&this.resolver.lookupDescription?this.resolver.lookupDescription(e):null!==this.fallback?this.fallback.describe(e):e},e.prototype.normalizeFullName=function(e){return null!==this.resolver&&this.resolver.normalize?this.resolver.normalize(e):null!==this.fallback?this.fallback.normalizeFullName(e):e},e.prototype.normalize=function(e){return this._normalizeCache[e]||(this._normalizeCache[e]=this.normalizeFullName(e))},e.prototype.makeToString=function(e,t){return null!==this.resolver&&this.resolver.makeToString?this.resolver.makeToString(e,t):null!==this.fallback?this.fallback.makeToString(e,t):e.toString()},e.prototype.has=function(e,t){if(!this.isValidFullName(e))return!1
+var n=t&&t.source&&this.normalize(t.source),r=t&&t.namespace||void 0
+return _(this,this.normalize(e),n,r)},e.prototype.optionsForType=function(e,t){this._typeOptions[e]=t},e.prototype.getOptionsForType=function(e){var t=this._typeOptions[e]
+return void 0===t&&null!==this.fallback&&(t=this.fallback.getOptionsForType(e)),t},e.prototype.options=function(e,t){var n=this.normalize(e)
+this._options[n]=t},e.prototype.getOptions=function(e){var t=this.normalize(e),n=this._options[t]
+return void 0===n&&null!==this.fallback&&(n=this.fallback.getOptions(e)),n},e.prototype.getOption=function(e,t){var n=this._options[e]
+if(void 0!==n&&void 0!==n[t])return n[t]
+var r=e.split(":")[0]
+return n=this._typeOptions[r],n&&void 0!==n[t]?n[t]:null!==this.fallback?this.fallback.getOption(e,t):void 0},e.prototype.typeInjection=function(e,t,n){n.split(":")[0];(this._typeInjections[e]||(this._typeInjections[e]=[])).push({property:t,specifier:n})},e.prototype.injection=function(e,t,n){var r=this.normalize(n)
+if(-1===e.indexOf(":"))return this.typeInjection(e,t,r)
+var i=this.normalize(e);(this._injections[i]||(this._injections[i]=[])).push({property:t,specifier:r})},e.prototype.knownForType=function(e){var t,r,i=(0,n.dictionary)(null),o=Object.keys(this.registrations)
+for(t=0;t<o.length;t++)r=o[t],r.split(":")[0]===e&&(i[r]=!0)
+var s=void 0,a=void 0
+return null!==this.fallback&&(s=this.fallback.knownForType(e)),null!==this.resolver&&this.resolver.knownForType&&(a=this.resolver.knownForType(e)),(0,n.assign)({},s,i,a)},e.prototype.isValidFullName=function(e){return k.test(e)},e.prototype.getInjections=function(e){var t,n=this._injections[e]
+return null!==this.fallback&&void 0!==(t=this.fallback.getInjections(e))&&(n=void 0===n?t:n.concat(t)),n},e.prototype.getTypeInjections=function(e){var t,n=this._typeInjections[e]
+return null!==this.fallback&&void 0!==(t=this.fallback.getTypeInjections(e))&&(n=void 0===n?t:n.concat(t)),n},e.prototype.expandLocalLookup=function(e,t){var n,r
+return null!==this.resolver&&this.resolver.expandLocalLookup?(n=this.normalize(e),r=this.normalize(t.source),C(this,n,r,t.namespace)):null!==this.fallback?this.fallback.expandLocalLookup(e,t):null},e}(),E=(0,n.dictionary)(null),S=(""+Math.random()+Date.now()).replace(".","")
+e.Registry=j,e.privatize=function(e){var t=e[0],r=E[t]
+if(r)return r
+var i=t.split(":"),o=i[0],s=i[1]
+return E[t]=(0,n.intern)(o+":"+s+"-"+S)},e.Container=I,e.FACTORY_FOR=w}),e("dag-map",["exports"],function(e){"use strict"
+var t=function(){function e(){this._vertices=new n}return e.prototype.add=function(e,t,n,r){if(!e)throw new Error("argument `key` is required")
+var i,o=this._vertices,s=o.add(e)
+if(s.val=t,n)if("string"==typeof n)o.addEdge(s,o.add(n))
+else for(var i=0;i<n.length;i++)o.addEdge(s,o.add(n[i]))
+if(r)if("string"==typeof r)o.addEdge(o.add(r),s)
+else for(i=0;i<r.length;i++)o.addEdge(o.add(r[i]),s)},e.prototype.addEdges=function(e,t,n,r){this.add(e,t,n,r)},e.prototype.each=function(e){this._vertices.walk(e)},e.prototype.topsort=function(e){this.each(e)},e}()
+e.default=t
+var n=function(){function e(){this.length=0,this.stack=new r,this.path=new r,this.result=new r}return e.prototype.add=function(e){if(!e)throw new Error("missing key")
+var t,n,r=0|this.length
+for(t=0;t<r;t++)if(n=this[t],n.key===e)return n
+return this.length=r+1,this[r]={idx:r,key:e,val:void 0,out:!1,flag:!1,length:0}},e.prototype.addEdge=function(e,t){this.check(e,t.key)
+var n,r=0|t.length
+for(n=0;n<r;n++)if(t[n]===e.idx)return
+t.length=r+1,t[r]=e.idx,e.out=!0},e.prototype.walk=function(e){var t,n
+for(this.reset(),t=0;t<this.length;t++)n=this[t],n.out||this.visit(n,"")
+this.each(this.result,e)},e.prototype.check=function(e,t){var n,r
+if(e.key===t)throw new Error("cycle detected: "+t+" <- "+t)
+if(0!==e.length){for(n=0;n<e.length;n++)if(this[e[n]].key===t)throw new Error("cycle detected: "+t+" <- "+e.key+" <- "+t)
+if(this.reset(),this.visit(e,t),this.path.length>0)throw r="cycle detected: "+t,this.each(this.path,function(e){r+=" <- "+e}),new Error(r)}},e.prototype.reset=function(){var e,t
+for(this.stack.length=0,this.path.length=0,this.result.length=0,e=0,t=this.length;e<t;e++)this[e].flag=!1},e.prototype.visit=function(e,t){var n,r,i=this,o=i.stack,s=i.path,a=i.result
+for(o.push(e.idx);o.length;)if((n=0|o.pop())>=0){if(r=this[n],r.flag)continue
+if(r.flag=!0,s.push(n),t===r.key)break
+o.push(~n),this.pushIncoming(r)}else s.pop(),a.push(~n)},e.prototype.pushIncoming=function(e){var t,n,r=this.stack
+for(t=e.length-1;t>=0;t--)n=e[t],this[n].flag||r.push(n)},e.prototype.each=function(e,t){var n,r,i
+for(n=0,r=e.length;n<r;n++)i=this[e[n]],t(i.key,i.val)},e}(),r=function(){function e(){this.length=0}return e.prototype.push=function(e){this[this.length++]=0|e},e.prototype.pop=function(){return 0|this[--this.length]},e}()}),e("ember-application/index",["exports","ember-application/lib/system/application","ember-application/lib/system/application-instance","ember-application/lib/system/resolver","ember-application/lib/system/engine","ember-application/lib/system/engine-instance","ember-application/lib/system/engine-parent"],function(e,t,n,r,i,o,s){"use strict"
+Object.defineProperty(e,"Application",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"ApplicationInstance",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"Resolver",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(e,"Engine",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(e,"EngineInstance",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(e,"getEngineParent",{enumerable:!0,get:function(){return s.getEngineParent}}),Object.defineProperty(e,"setEngineParent",{enumerable:!0,get:function(){return s.setEngineParent}})}),e("ember-application/lib/system/application-instance",["exports","ember-utils","ember-metal","ember-environment","ember-views","ember-application/lib/system/engine-instance","ember-glimmer"],function(e,t,n,r,i,o,s){"use strict"
+var a=o.default.extend({application:null,customEvents:null,rootElement:null,init:function(){this._super.apply(this,arguments),this.application._watchInstance(this),this.register("-application-instance:main",this,{instantiate:!1})},_bootSync:function(e){var t
+return this._booted?this:(e=new u(e),this.setupRegistry(e),e.rootElement?this.rootElement=e.rootElement:this.rootElement=this.application.rootElement,e.location&&(t=(0,n.get)(this,"router"),(0,n.set)(t,"location",e.location)),this.application.runInstanceInitializers(this),e.isInteractive&&this.setupEventDispatcher(),this._booted=!0,this)},setupRegistry:function(e){this.constructor.setupRegistry(this.__registry__,e)},router:(0,n.computed)(function(){return this.lookup("router:main")}).readOnly(),didCreateRootView:function(e){e.appendTo(this.rootElement)},startRouting:function(){(0,n.get)(this,"router").startRouting(),this._didSetupRouter=!0},setupRouter:function(){if(!this._didSetupRouter){this._didSetupRouter=!0;(0,n.get)(this,"router").setupRouter()}},handleURL:function(e){var t=(0,n.get)(this,"router")
+return this.setupRouter(),t.handleURL(e)},setupEventDispatcher:function(){var e=this.lookup("event_dispatcher:main"),r=(0,n.get)(this.application,"customEvents"),i=(0,n.get)(this,"customEvents"),o=(0,t.assign)({},r,i)
+return e.setup(o,this.rootElement),e},getURL:function(){return(0,n.get)(this,"router.url")},visit:function(e){var t=this
+this.setupRouter()
+var r=this.__container__.lookup("-environment:main"),i=(0,n.get)(this,"router"),o=function(){return r.options.shouldRender?(0,s.renderSettled)().then(function(){return t}):t},a=function(e){if(e.error)throw e.error
+if("TransitionAborted"===e.name&&i._routerMicrolib.activeTransition)return i._routerMicrolib.activeTransition.then(o,a)
+throw"TransitionAborted"===e.name?new Error(e.message):e},u=(0,n.get)(i,"location")
+return u.setURL(e),i.handleURL(u.getURL()).then(o,a)},willDestroy:function(){this._super.apply(this,arguments),this.application._unwatchInstance(this)}})
+a.reopenClass({setupRegistry:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}
+t.toEnvironment||(t=new u(t)),e.register("-environment:main",t.toEnvironment(),{instantiate:!1}),e.register("service:-document",t.document,{instantiate:!1}),this._super(e,t)}})
+var u=function(){function e(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}
+this.jQuery=i.jQuery,this.isInteractive=r.environment.hasDOM,this._renderMode=e._renderMode,void 0!==e.isBrowser?this.isBrowser=!!e.isBrowser:this.isBrowser=r.environment.hasDOM,this.isBrowser||(this.jQuery=null,this.isInteractive=!1,this.location="none"),void 0!==e.shouldRender?this.shouldRender=!!e.shouldRender:this.shouldRender=!0,this.shouldRender||(this.jQuery=null,this.isInteractive=!1),e.document?this.document=e.document:this.document="undefined"!=typeof document?document:null,e.rootElement&&(this.rootElement=e.rootElement),void 0!==e.location&&(this.location=e.location),void 0!==e.jQuery&&(this.jQuery=e.jQuery),void 0!==e.isInteractive&&(this.isInteractive=!!e.isInteractive)}return e.prototype.toEnvironment=function(){var e=(0,t.assign)({},r.environment)
+return e.hasDOM=this.isBrowser,e.isInteractive=this.isInteractive,e._renderMode=this._renderMode,e.options=this,e},e}()
+e.default=a}),e("ember-application/lib/system/application",["exports","ember-babel","ember-utils","ember-environment","ember-debug","ember-metal","ember-runtime","ember-views","ember-routing","ember-application/lib/system/application-instance","container","ember-application/lib/system/engine","ember-glimmer"],function(e,t,n,r,i,o,s,a,u,c,l,h,d){"use strict"
+function p(e){e.register("router:main",u.Router.extend()),e.register("-view-registry:main",{create:function(){return(0,n.dictionary)(null)}}),e.register("route:basic",u.Route),e.register("event_dispatcher:main",a.EventDispatcher),e.injection("router:main","namespace","application:main"),e.register("location:auto",u.AutoLocation),e.register("location:hash",u.HashLocation),e.register("location:history",u.HistoryLocation),e.register("location:none",u.NoneLocation),e.register((0,l.privatize)(g),{create:function(){return new u.BucketCache}}),e.register("service:router",u.RouterService),e.injection("service:router","_router","router:main")}function f(){m||(m=!0,r.environment.hasDOM&&!a.jQueryDisabled&&o.libraries.registerCoreLibrary("jQuery",(0,a.jQuery)().jquery))}var g=(0,t.taggedTemplateLiteralLoose)(["-bucket-cache:main"],["-bucket-cache:main"]),m=!1,v=h.default.extend({rootElement:"body",eventDispatcher:null,customEvents:null,autoboot:!0,_globalsMode:!0,_applicationInstances:null,init:function(){this._super.apply(this,arguments),this.$||(this.$=a.jQuery),f(),this._readinessDeferrals=1,this._booted=!1,this._applicationInstances=[],this.autoboot=this._globalsMode=!!this.autoboot,this._globalsMode&&this._prepareForGlobalsMode(),this.autoboot&&this.waitForDOMReady()},buildInstance:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}
+return e.base=this,e.application=this,c.default.create(e)},_watchInstance:function(e){this._applicationInstances.push(e)},_unwatchInstance:function(e){var t=this._applicationInstances.indexOf(e)
+t>-1&&this._applicationInstances.splice(t,1)},_prepareForGlobalsMode:function(){this.Router=(this.Router||u.Router).extend(),this._buildDeprecatedInstance()},_buildDeprecatedInstance:function(){var e=this.buildInstance()
+this.__deprecatedInstance__=e,this.__container__=e.__container__},waitForDOMReady:function(){!this.$||this.$.isReady?(0,o.schedule)("actions",this,"domReady"):this.$().ready((0,o.bind)(this,"domReady"))},domReady:function(){this.isDestroyed||this._bootSync()},deferReadiness:function(){this._readinessDeferrals++},advanceReadiness:function(){0===--this._readinessDeferrals&&(0,o.once)(this,this.didBecomeReady)},boot:function(){if(this._bootPromise)return this._bootPromise
+try{this._bootSync()}catch(e){}return this._bootPromise},_bootSync:function(){if(!this._booted){var e=this._bootResolver=s.RSVP.defer()
+this._bootPromise=e.promise
+try{this.runInitializers(),(0,s.runLoadHooks)("application",this),this.advanceReadiness()}catch(t){throw e.reject(t),t}}},reset:function(){var e=this.__deprecatedInstance__
+this._readinessDeferrals=1,this._bootPromise=null,this._bootResolver=null,this._booted=!1,(0,o.join)(this,function(){(0,o.run)(e,"destroy"),this._buildDeprecatedInstance(),(0,o.schedule)("actions",this,"_bootSync")})},didBecomeReady:function(){var e
+try{(0,i.isTesting)()||((0,o.processAllNamespaces)(),(0,o.setNamespaceSearchDisabled)(!0)),this.autoboot&&(e=void 0,e=this._globalsMode?this.__deprecatedInstance__:this.buildInstance(),e._bootSync(),this.ready(),e.startRouting()),this._bootResolver.resolve(this),this._booted=!0}catch(e){throw this._bootResolver.reject(e),e}},ready:function(){return this},willDestroy:function(){this._super.apply(this,arguments),(0,o.setNamespaceSearchDisabled)(!1),this._booted=!1,this._bootPromise=null,this._bootResolver=null,s._loaded.application===this&&(s._loaded.application=void 0),this._applicationInstances.length&&(this._applicationInstances.forEach(function(e){return e.destroy()}),this._applicationInstances.length=0)},visit:function(e,t){var n=this
+return this.boot().then(function(){var r=n.buildInstance()
+return r.boot(t).then(function(){return r.visit(e)}).catch(function(e){throw(0,o.run)(r,"destroy"),e})})}})
+v.reopenClass({buildRegistry:function(){var e=this._super.apply(this,arguments)
+return p(e),(0,d.setupApplicationRegistry)(e),e}}),e.default=v}),e("ember-application/lib/system/engine-instance",["exports","ember-babel","ember-utils","ember-runtime","ember-debug","container","ember-application/lib/system/engine-parent"],function(e,t,n,r,i,o,s){"use strict"
+var a=(0,t.taggedTemplateLiteralLoose)(["-bucket-cache:main"],["-bucket-cache:main"]),u=(0,t.taggedTemplateLiteralLoose)(["template-compiler:main"],["template-compiler:main"]),c=r.Object.extend(r.RegistryProxyMixin,r.ContainerProxyMixin,{base:null,init:function(){this._super.apply(this,arguments),(0,n.guidFor)(this)
+var e=this.base
+e||(e=this.application,this.base=e)
+var t=this.__registry__=new o.Registry({fallback:e.__registry__})
+this.__container__=t.container({owner:this}),this._booted=!1},boot:function(e){var t=this
+return this._bootPromise?this._bootPromise:(this._bootPromise=new r.RSVP.Promise(function(n){return n(t._bootSync(e))}),this._bootPromise)},_bootSync:function(e){return this._booted?this:(this.cloneParentDependencies(),this.setupRegistry(e),this.base.runInstanceInitializers(this),this._booted=!0,this)},setupRegistry:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.__container__.lookup("-environment:main")
+this.constructor.setupRegistry(this.__registry__,e)},unregister:function(e){this.__container__.reset(e),this._super.apply(this,arguments)},buildChildEngineInstance:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.lookup("engine:"+e)
+if(!n)throw new i.Error("You attempted to mount the engine '"+e+"', but it is not registered with its parent.")
+var r=n.buildInstance(t)
+return(0,s.setEngineParent)(r,this),r},cloneParentDependencies:function(){var e=this,t=(0,s.getEngineParent)(this);["route:basic","service:-routing","service:-glimmer-environment"].forEach(function(n){return e.register(n,t.resolveRegistration(n))})
+var n=t.lookup("-environment:main")
+this.register("-environment:main",n,{instantiate:!1})
+var r=["router:main",(0,o.privatize)(a),"-view-registry:main","renderer:-"+(n.isInteractive?"dom":"inert"),"service:-document",(0,o.privatize)(u)]
+n.isInteractive&&r.push("event_dispatcher:main"),r.forEach(function(n){return e.register(n,t.lookup(n),{instantiate:!1})}),this.inject("view","_environment","-environment:main"),this.inject("route","_environment","-environment:main")}})
+c.reopenClass({setupRegistry:function(e,t){t&&(e.injection("view","_environment","-environment:main"),e.injection("route","_environment","-environment:main"),t.isInteractive?(e.injection("view","renderer","renderer:-dom"),e.injection("component","renderer","renderer:-dom")):(e.injection("view","renderer","renderer:-inert"),e.injection("component","renderer","renderer:-inert")))}}),e.default=c}),e("ember-application/lib/system/engine-parent",["exports","ember-utils"],function(e,t){"use strict"
+e.ENGINE_PARENT=void 0,e.getEngineParent=function(e){return e[n]},e.setEngineParent=function(e,t){e[n]=t}
+var n=e.ENGINE_PARENT=(0,t.symbol)("ENGINE_PARENT")}),e("ember-application/lib/system/engine",["exports","ember-babel","ember-utils","ember-runtime","container","dag-map","ember-debug","ember-metal","ember-application/lib/system/resolver","ember-application/lib/system/engine-instance","ember-routing","ember-extension-support","ember-views","ember-glimmer"],function(e,t,n,r,i,o,s,a,u,c,l,h,d,p){"use strict"
+function f(e){var t=[]
+for(var n in e)t.push(n)
+return t}function g(e){return(e.get("Resolver")||u.default).create({namespace:e})}function m(e,t){return function(t){var n
+void 0!==this.superclass[e]&&this.superclass[e]===this[e]&&(n={},n[e]=Object.create(this[e]),this.reopenClass(n)),this[e][t.name]=t}}function v(e){e.optionsForType("component",{singleton:!1}),e.optionsForType("view",{singleton:!1}),e.register("controller:basic",r.Controller,{instantiate:!1}),e.injection("view","_viewRegistry","-view-registry:main"),e.injection("renderer","_viewRegistry","-view-registry:main"),e.injection("event_dispatcher:main","_viewRegistry","-view-registry:main"),e.injection("route","_topLevelViewTemplate","template:-outlet"),e.injection("view:-outlet","namespace","application:main"),e.injection("controller","target","router:main"),e.injection("controller","namespace","application:main"),e.injection("router","_bucketCache",(0,i.privatize)(y)),e.injection("route","_bucketCache",(0,i.privatize)(y)),e.injection("route","_router","router:main"),e.register("service:-routing",l.RoutingService),e.injection("service:-routing","router","router:main"),e.register("resolver-for-debugging:main",e.resolver,{instantiate:!1}),e.injection("container-debug-adapter:main","resolver","resolver-for-debugging:main"),e.injection("data-adapter:main","containerDebugAdapter","container-debug-adapter:main"),e.register("container-debug-adapter:main",h.ContainerDebugAdapter),e.register("component-lookup:main",d.ComponentLookup)}var y=(0,t.taggedTemplateLiteralLoose)(["-bucket-cache:main"],["-bucket-cache:main"]),b=r.Namespace.extend(r.RegistryProxyMixin,{init:function(){this._super.apply(this,arguments),this.buildRegistry()},_initializersRan:!1,ensureInitializers:function(){this._initializersRan||(this.runInitializers(),this._initializersRan=!0)},buildInstance:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}
+return this.ensureInitializers(),e.base=this,c.default.create(e)},buildRegistry:function(){return this.__registry__=this.constructor.buildRegistry(this)},initializer:function(e){this.constructor.initializer(e)},instanceInitializer:function(e){this.constructor.instanceInitializer(e)},runInitializers:function(){var e=this
+this._runInitializer("initializers",function(t,n){n.initialize(e)})},runInstanceInitializers:function(e){this._runInitializer("instanceInitializers",function(t,n){n.initialize(e)})},_runInitializer:function(e,t){var n,r=(0,a.get)(this.constructor,e),i=f(r),s=new o.default,u=void 0
+for(n=0;n<i.length;n++)u=r[i[n]],s.add(u.name,u,u.before,u.after)
+s.topsort(t)}})
+b.reopenClass({initializers:Object.create(null),instanceInitializers:Object.create(null),initializer:m("initializers","initializer"),instanceInitializer:m("instanceInitializers","instance initializer"),buildRegistry:function(e){var t=new i.Registry({resolver:g(e)})
+return t.set=a.set,t.register("application:main",e,{instantiate:!1}),v(t),(0,p.setupEngineRegistry)(t),t},resolver:null,Resolver:null}),e.default=b}),e("ember-application/lib/system/resolver",["exports","ember-utils","ember-metal","ember-debug","ember-runtime","ember-application/lib/utils/validate-type","ember-glimmer"],function(e,t,n,r,i,o,s){"use strict"
+e.Resolver=void 0,e.Resolver=i.Object.extend({namespace:null,normalize:null,resolve:null,parseName:null,lookupDescription:null,makeToString:null,resolveOther:null,_logLookup:null})
+var a=i.Object.extend({namespace:null,init:function(){this._parseNameCache=(0,t.dictionary)(null)},normalize:function(e){var t,n=e.split(":"),r=n[0],i=n[1]
+return"template"!==r?(t=i.replace(/(\.|_|-)./g,function(e){return e.charAt(1).toUpperCase()}),r+":"+t):e},resolve:function(e){var t=this.parseName(e),n=t.resolveMethodName,r=void 0
+return this[n]&&(r=this[n](t)),r=r||this.resolveOther(t),r&&(0,o.default)(r,t),r},parseName:function(e){return this._parseNameCache[e]||(this._parseNameCache[e]=this._parseName(e))},_parseName:function(e){var t,r,o=e.split(":"),s=o[0],a=o[1],u=a,c=(0,n.get)(this,"namespace"),l=c,h=u.lastIndexOf("/"),d=-1!==h?u.slice(0,h):null
+"template"!==s&&-1!==h&&(t=u.split("/"),u=t[t.length-1],r=i.String.capitalize(t.slice(0,-1).join(".")),l=(0,n.findNamespace)(r))
+var p="main"===a?"Main":i.String.classify(s)
+if(!u||!s)throw new TypeError("Invalid fullName: `"+e+"`, must be of the form `type:name` ")
+return{fullName:e,type:s,fullNameWithoutType:a,dirname:d,name:u,root:l,resolveMethodName:"resolve"+p}},lookupDescription:function(e){var t=this.parseName(e),n=void 0
+return"template"===t.type?"template at "+t.fullNameWithoutType.replace(/\./g,"/"):(n=t.root+"."+i.String.classify(t.name).replace(/\./g,""),"model"!==t.type&&(n+=i.String.classify(t.type)),n)},makeToString:function(e){return e.toString()},useRouterNaming:function(e){"basic"===e.name?e.name="":e.name=e.name.replace(/\./g,"_")},resolveTemplate:function(e){var t=e.fullNameWithoutType.replace(/\./g,"/")
+return(0,s.getTemplate)(t)||(0,s.getTemplate)(i.String.decamelize(t))},resolveView:function(e){return this.useRouterNaming(e),this.resolveOther(e)},resolveController:function(e){return this.useRouterNaming(e),this.resolveOther(e)},resolveRoute:function(e){return this.useRouterNaming(e),this.resolveOther(e)},resolveModel:function(e){var t=i.String.classify(e.name)
+return(0,n.get)(e.root,t)},resolveHelper:function(e){return this.resolveOther(e)},resolveOther:function(e){var t=i.String.classify(e.name)+i.String.classify(e.type)
+return(0,n.get)(e.root,t)},resolveMain:function(e){var t=i.String.classify(e.type)
+return(0,n.get)(e.root,t)},knownForType:function(e){var r,o,s,a=(0,n.get)(this,"namespace"),u=i.String.classify(e),c=new RegExp(u+"$"),l=(0,t.dictionary)(null),h=Object.keys(a)
+for(r=0;r<h.length;r++)o=h[r],c.test(o)&&(s=this.translateToContainerFullname(e,o),l[s]=!0)
+return l},translateToContainerFullname:function(e,t){var n=i.String.classify(e),r=t.slice(0,-1*n.length)
+return e+":"+i.String.dasherize(r)}})
+e.default=a}),e("ember-application/lib/utils/validate-type",["exports","ember-debug"],function(e,t){"use strict"
+e.default=function(e,t){var r=n[t.type]
+if(r){r[1],r[2]}}
+var n={route:["assert","isRouteFactory","Ember.Route"],component:["deprecate","isComponentFactory","Ember.Component"],view:["deprecate","isViewFactory","Ember.View"],service:["deprecate","isServiceFactory","Ember.Service"]}}),e("ember-babel",["exports"],function(e){"use strict"
+function t(e,t){e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):o(e,t))}function n(e,t){return e.raw=t,e}function r(e,t){for(var n=0;n<t.length;n++){var r=t[n]
+r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function i(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e}function o(e,t){for(var n=Object.getOwnPropertyNames(t),r=0;r<n.length;r++){var i=n[r],o=Object.getOwnPropertyDescriptor(t,i)
+o&&o.configurable&&void 0===e[i]&&Object.defineProperty(e,i,o)}return e}e.inherits=t,e.taggedTemplateLiteralLoose=n,e.createClass=i,e.defaults=o
+e.possibleConstructorReturn=function(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?e:t},e.slice=Array.prototype.slice}),e("ember-console",["exports","ember-debug"],function(e,t){"use strict"
+e.default={log:function(){var e
+return(e=console).log.apply(e,arguments)},warn:function(){var e
+return(e=console).warn.apply(e,arguments)},error:function(){var e
+return(e=console).error.apply(e,arguments)},info:function(){var e
+return(e=console).info.apply(e,arguments)},debug:function(){var e,t
+return console.debug?(t=console).debug.apply(t,arguments):(e=console).info.apply(e,arguments)},assert:function(){var e
+return(e=console).assert.apply(e,arguments)}}}),e("ember-debug/index",["exports","ember-debug/lib/warn","ember-debug/lib/deprecate","ember-debug/lib/features","ember-debug/lib/error","ember-debug/lib/testing","ember-environment","ember/features"],function(e,t,n,r,i,o,s,a){"use strict"
+e._warnIfUsingStrippedFeatureFlags=e.getDebugFunction=e.setDebugFunction=e.deprecateFunc=e.runInDebug=e.debugFreeze=e.debugSeal=e.deprecate=e.debug=e.warn=e.info=e.assert=e.setTesting=e.isTesting=e.Error=e.isFeatureEnabled=e.registerDeprecationHandler=e.registerWarnHandler=void 0,Object.defineProperty(e,"registerWarnHandler",{enumerable:!0,get:function(){return t.registerHandler}}),Object.defineProperty(e,"registerDeprecationHandler",{enumerable:!0,get:function(){return n.registerHandler}}),Object.defineProperty(e,"isFeatureEnabled",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(e,"Error",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(e,"isTesting",{enumerable:!0,get:function(){return o.isTesting}}),Object.defineProperty(e,"setTesting",{enumerable:!0,get:function(){return o.setTesting}})
+var u=(a.DEFAULT_FEATURES,a.FEATURES,function(){})
+e.assert=u,e.info=u,e.warn=u,e.debug=u,e.deprecate=u,e.debugSeal=u,e.debugFreeze=u,e.runInDebug=u,e.deprecateFunc=function(){return arguments[arguments.length-1]},e.setDebugFunction=u,e.getDebugFunction=u,e._warnIfUsingStrippedFeatureFlags=void 0}),e("ember-debug/lib/deprecate",["exports","ember-debug/lib/error","ember-environment","ember-debug/index","ember-debug/lib/handlers"],function(e){"use strict"
+e.missingOptionsUntilDeprecation=e.missingOptionsIdDeprecation=e.missingOptionsDeprecation=e.registerHandler=void 0,e.default=void 0,e.registerHandler=function(){},e.missingOptionsDeprecation=void 0,e.missingOptionsIdDeprecation=void 0,e.missingOptionsUntilDeprecation=void 0}),e("ember-debug/lib/error",["exports","ember-babel"],function(e,t){"use strict"
+var n=function(e){function n(r){var i,o=(0,t.possibleConstructorReturn)(this,e.call(this))
+if(!(o instanceof n))return i=new n(r),(0,t.possibleConstructorReturn)(o,i)
+var s=Error.call(o,r)
+return o.stack=s.stack,o.description=s.description,o.fileName=s.fileName,o.lineNumber=s.lineNumber,o.message=s.message,o.name=s.name,o.number=s.number,o.code=s.code,o}return(0,t.inherits)(n,e),n}(function(e){function t(){e.apply(this,arguments)}return t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t}(Error))
+e.default=n}),e("ember-debug/lib/features",["exports","ember-environment","ember/features"],function(e,t,n){"use strict"
+e.default=function(e){var n=r[e]
+return!0===n||!1===n||void 0===n?n:!!t.ENV.ENABLE_OPTIONAL_FEATURES}
+var r=n.FEATURES}),e("ember-debug/lib/handlers",["exports"],function(e){"use strict"
+e.HANDLERS={},e.registerHandler=function(){},e.invoke=function(){}})
+e("ember-debug/lib/testing",["exports"],function(e){"use strict"
+function t(){return n}e.isTesting=t,e.setTesting=function(e){n=!!e}
+var n=!1}),e("ember-debug/lib/warn",["exports","ember-environment","ember-debug/lib/deprecate","ember-debug/index","ember-debug/lib/handlers"],function(e){"use strict"
+e.missingOptionsDeprecation=e.missingOptionsIdDeprecation=e.registerHandler=void 0,e.default=function(){},e.registerHandler=function(){},e.missingOptionsIdDeprecation=void 0,e.missingOptionsDeprecation=void 0}),e("ember-environment",["exports"],function(e){"use strict"
+function t(e){return e&&e.Object===Object?e:void 0}function n(e){return!1!==e}function r(e){return!0===e}var i=t(function(e){return e&&void 0===e.nodeType?e:void 0}("object"==typeof global&&global))||t("object"==typeof self&&self)||t("object"==typeof window&&window)||mainContext||new Function("return this")(),o="object"==typeof i.EmberENV&&i.EmberENV||"object"==typeof i.ENV&&i.ENV||{}
+o.ENABLE_ALL_FEATURES&&(o.ENABLE_OPTIONAL_FEATURES=!0),o.EXTEND_PROTOTYPES=function(e){return!1===e?{String:!1,Array:!1,Function:!1}:e&&!0!==e?{String:n(e.String),Array:n(e.Array),Function:n(e.Function)}:{String:!0,Array:!0,Function:!0}}(o.EXTEND_PROTOTYPES),o.LOG_STACKTRACE_ON_DEPRECATION=n(o.LOG_STACKTRACE_ON_DEPRECATION),o.LOG_VERSION=n(o.LOG_VERSION),o.RAISE_ON_DEPRECATION=r(o.RAISE_ON_DEPRECATION),o._APPLICATION_TEMPLATE_WRAPPER=n(o._APPLICATION_TEMPLATE_WRAPPER),o._TEMPLATE_ONLY_GLIMMER_COMPONENTS=r(o._TEMPLATE_ONLY_GLIMMER_COMPONENTS)
+var s="undefined"!=typeof window&&window===i&&window.document&&window.document.createElement&&!o.disableBrowserEnvironment,a=i.Ember||{},u={imports:a.imports||i,exports:a.exports||i,lookup:a.lookup||i},c=s?{hasDOM:!0,isChrome:!!window.chrome&&!window.opera,isFirefox:"undefined"!=typeof InstallTrigger,location:window.location,history:window.history,userAgent:window.navigator.userAgent,window:window}:{hasDOM:!1,isChrome:!1,isFirefox:!1,location:null,history:null,userAgent:"Lynx (textmode)",window:null}
+e.ENV=o,e.getENV=function(){return o},e.context=u,e.getLookup=function(){return u.lookup},e.setLookup=function(e){u.lookup=e},e.environment=c}),e("ember-extension-support/index",["exports","ember-extension-support/lib/data_adapter","ember-extension-support/lib/container_debug_adapter"],function(e,t,n){"use strict"
+Object.defineProperty(e,"DataAdapter",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"ContainerDebugAdapter",{enumerable:!0,get:function(){return n.default}})}),e("ember-extension-support/lib/container_debug_adapter",["exports","ember-runtime"],function(e,t){"use strict"
+e.default=t.Object.extend({resolver:null,canCatalogEntriesByType:function(e){return"model"!==e&&"template"!==e},catalogEntriesByType:function(e){var n=(0,t.A)(t.Namespace.NAMESPACES),r=(0,t.A)(),i=new RegExp(t.String.classify(e)+"$")
+return n.forEach(function(e){var n
+for(var o in e)e.hasOwnProperty(o)&&i.test(o)&&(n=e[o],"class"===(0,t.typeOf)(n)&&r.push(t.String.dasherize(o.replace(i,""))))}),r}})}),e("ember-extension-support/lib/data_adapter",["exports","ember-utils","ember-metal","ember-runtime"],function(e,t,n,r){"use strict"
+e.default=r.Object.extend({init:function(){this._super.apply(this,arguments),this.releaseMethods=(0,r.A)()},containerDebugAdapter:void 0,attributeLimit:3,acceptsModelName:!0,releaseMethods:(0,r.A)(),getFilters:function(){return(0,r.A)()},watchModelTypes:function(e,t){var n=this,i=this.getModelTypes(),o=(0,r.A)(),s=void 0
+s=i.map(function(e){var r=e.klass,i=n.wrapModelType(r,e.name)
+return o.push(n.observeModelType(e.name,t)),i}),e(s)
+var a=function(){o.forEach(function(e){return e()}),n.releaseMethods.removeObject(a)}
+return this.releaseMethods.pushObject(a),a},_nameToClass:function(e){var n,r
+return"string"==typeof e&&(n=(0,t.getOwner)(this),r=n.factoryFor("model:"+e),e=r&&r.class),e},watchRecords:function(e,t,i,o){function s(e){i([e])}var a=this,u=(0,r.A)(),c=this._nameToClass(e),l=this.getRecords(c,e),h=void 0,d=l.map(function(e){return u.push(a.observeRecord(e,s)),a.wrapRecord(e)}),p={didChange:function(e,r,i,c){var l,h,d
+for(l=r;l<r+c;l++)h=(0,n.objectAt)(e,l),d=a.wrapRecord(h),u.push(a.observeRecord(h,s)),t([d])
+i&&o(r,i)},willChange:function(){return this}}
+return(0,n.addArrayObserver)(l,this,p),h=function(){u.forEach(function(e){return e()}),(0,n.removeArrayObserver)(l,a,p),a.releaseMethods.removeObject(h)},t(d),this.releaseMethods.pushObject(h),h},willDestroy:function(){this._super.apply(this,arguments),this.releaseMethods.forEach(function(e){return e()})},detect:function(){return!1},columnsForType:function(){return(0,r.A)()},observeModelType:function(e,t){function r(){t([this.wrapModelType(o,e)])}var i=this,o=this._nameToClass(e),s=this.getRecords(o,e),a={didChange:function(e,t,i,o){(i>0||o>0)&&(0,n.scheduleOnce)("actions",this,r)},willChange:function(){return this}}
+return(0,n.addArrayObserver)(s,this,a),function(){return(0,n.removeArrayObserver)(s,i,a)}},wrapModelType:function(e,t){var r=this.getRecords(e,t)
+return{name:t,count:(0,n.get)(r,"length"),columns:this.columnsForType(e),object:e}},getModelTypes:function(){var e=this,t=this.get("containerDebugAdapter"),n=void 0
+return n=t.canCatalogEntriesByType("model")?t.catalogEntriesByType("model"):this._getObjectsOnNamespaces(),n=(0,r.A)(n).map(function(t){return{klass:e._nameToClass(t),name:t}}),n=(0,r.A)(n).filter(function(t){return e.detect(t.klass)}),(0,r.A)(n)},_getObjectsOnNamespaces:function(){var e=this,t=(0,r.A)(r.Namespace.NAMESPACES),n=(0,r.A)()
+return t.forEach(function(t){var i
+for(var o in t)t.hasOwnProperty(o)&&e.detect(t[o])&&(i=r.String.dasherize(o),n.push(i))}),n},getRecords:function(){return(0,r.A)()},wrapRecord:function(e){var t={object:e}
+return t.columnValues=this.getRecordColumnValues(e),t.searchKeywords=this.getRecordKeywords(e),t.filterValues=this.getRecordFilterValues(e),t.color=this.getRecordColor(e),t},getRecordColumnValues:function(){return{}},getRecordKeywords:function(){return(0,r.A)()},getRecordFilterValues:function(){return{}},getRecordColor:function(){return null},observeRecord:function(){return function(){}}})}),e("ember-glimmer",["exports","@glimmer/runtime","@glimmer/util","@glimmer/node","ember-babel","@glimmer/opcode-compiler","ember-utils","@glimmer/reference","ember-runtime","ember-metal","ember-debug","ember-views","ember-environment","node-module","@glimmer/wire-format","container","rsvp","ember-routing"],function(e,t,n,r,i,o,s,a,u,c,l,h,d,p,f,g,m,v){"use strict"
+function y(e){return new Qe((0,o.templateFactory)(e))}function b(e){return"object"==typeof e&&null!==e&&e.class&&e.class.isHelperFactory}function C(e){return void 0===e.destroy}function A(e){return new $e(e)}function _(e){return!!e&&(!0===e||(!(0,u.isArray)(e)||0!==(0,c.get)(e,"length")))}function I(e,t){var n,r=e
+for(n=0;n<t.length;n++)r=r.get(t[n])
+return r}function w(e){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1]
+return null!==e&&"object"==typeof e?n?new ot(e):new ft(e):"function"==typeof e?new ft(e):t.PrimitiveReference.create(e)}function x(e){if(e in xt)return xt[e]
+if(!d.environment.hasDOM)return xt[e]=e,e
+var t=document.createElement("input")
+try{t.type=e}catch(e){}return xt[e]=t.type===e}function k(e){return null!==e&&"object"==typeof e&&e[Tt]}function j(e,t){return k(e)?new Bt(e,t||"@key"):new Ht(e,t||"@identity")}function E(e){return"function"==typeof e.forEach}function S(e){return"function"==typeof e[Symbol.iterator]}function T(e){return null!==e&&("object"==typeof e||"function"==typeof e)}function P(e,t,n){return String(n)}function O(e,t){return t}function R(e,t){return N(t)}function N(e){switch(typeof e){case"string":return e
+case"number":return String(e)
+default:return(0,s.guidFor)(e)}}function M(e){return function(t){return String((0,c.get)(t,e))}}function L(e){var t=new Set
+return function(n,r,i){var o=e(n,r,i),s=t[o]
+return void 0===s?(t[o]=0,o):(t[o]=++s,o+"be277757-bbbe-4620-9fcb-213ef433cca2"+s)}}function D(e){return qt[e]}function z(e){return null===e||void 0===e?e="":"string"!=typeof e&&(e=""+e),new Ut(e)}function F(e){return null!==e&&"object"==typeof e&&"function"==typeof e.toHTML}function B(e){var t=void 0
+if(d.environment.hasDOM&&(t=H.call(e,"foobar:baz")),"foobar:"===t)e.protocolForURL=H
+else if("object"==typeof URL)Gt=URL,e.protocolForURL=U
+else{if(!p.IS_NODE)throw new Error("Could not find valid URL parsing mechanism for URL Sanitization")
+Gt=(0,p.require)("url"),e.protocolForURL=U}}function H(e){return Yt||(Yt=document.createElement("a")),Yt.href=e,Yt.protocol}function U(e){var t=null
+return"string"==typeof e&&(t=Gt.parse(e).protocol),null===t?":":t}function q(e){return{object:e.name+":"+e.outlet}}function V(e){var t,n,r
+return d.ENV._APPLICATION_TEMPLATE_WRAPPER?(t=(0,s.assign)({},Zt,{dynamicTag:!0,elementHook:!0}),n=function(e){function n(){return(0,i.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,i.inherits)(n,e),n.prototype.getTagName=function(){return"div"},n.prototype.getLayout=function(e){var t=e.template,n=t.asWrappedLayout()
+return{handle:n.compile(),symbolTable:n.symbolTable}},n.prototype.getCapabilities=function(){return t},n.prototype.didCreateElement=function(e,t){t.setAttribute("class","ember-view"),t.setAttribute("id",(0,s.guidFor)(e))},n}(Xt),r=new n,new $t(e.state,r)):new $t(e.state)}function W(){}function G(e,t){return e[yt].get(t)}function Y(e,t){return"attrs"===t[0]&&(t.shift(),1===t.length)?G(e,t[0]):I(e[yt],t)}function K(e){if(null!==e){var t,n,r,i,o=e[0],s=e[1],a=null===o?-1:o.indexOf("class")
+if(-1!==a){if(t=s[a],!Array.isArray(t))return
+n=t[0],n!==f.Ops.Get&&n!==f.Ops.MaybeLocal||(r=t[t.length-1],i=r[r.length-1],s[a]=[f.Ops.Helper,"-class",[t,i],null])}}}function Q(e){var t,n,r,i,o=e.names,s=e.value(),a=Object.create(null),u=Object.create(null)
+for(a[vt]=u,t=0;t<o.length;t++)n=o[t],r=e.get(n),i=s[n],"function"==typeof i&&i[nt]?s[n]=i:r[et]&&(s[n]=new ln(r,i)),u[n]=r,a[n]=i
+return a.attrs=s,a}function Z(e,t){e.named.has("id")&&(t.elementId=t.id)}function X(e){return"function"==typeof e.create}function J(e,n,r,i){for(var o,s,a,u=[],c=n.length-1;-1!==c;)o=n[c],s=tn.parse(o),a=s[1],-1===u.indexOf(a)&&(u.push(a),tn.install(e,r,s,i)),c--;-1===u.indexOf("id")&&i.setAttribute("id",t.PrimitiveReference.create(r.elementId),!0,null),-1===u.indexOf("style")&&on.install(e,r,i)}function $(e){return e.instrumentDetails({initialRender:!0})}function ee(e){return e.instrumentDetails({initialRender:!1})}function te(e){An.push(e)}function ne(e){var t=An.indexOf(e)
+An.splice(t,1)}function re(){}function ie(){return null===_n&&(_n=m.default.defer(),(0,c.getCurrentRunLoop)()||c.backburner.schedule("actions",null,re)),_n.promise}function oe(){var e
+null!==_n&&(e=_n.resolve,_n=null,c.backburner.join(null,e))}function se(){var e
+for(e=0;e<An.length;e++)if(!An[e]._isValid()){if(In>10)throw In=0,An[e].destroy(),new Error("infinite rendering invalidation detected")
+return In++,c.backburner.join(null,re)}In=0,oe()}function ae(){return jn}function ue(e){if(jn.hasOwnProperty(e))return jn[e]}function ce(e){return jn.hasOwnProperty(e)}function le(e,t){return jn[e]=t}function he(e){var t=e.positional,n=t.at(0),r=t.length,i=n.value()
+return!0===i?r>1?u.String.dasherize(t.at(1).value()):null:!1===i?r>2?u.String.dasherize(t.at(2).value()):null:i}function de(e){var t=e.positional,n=t.at(0)
+return new Ut(n.value())}function pe(e){return"checkbox"===e.positional.at(0).value()?"-checkbox":"-text-field"}function fe(e){var t=e.positional,n=t.at(0).value().split("."),r=n[n.length-1],i=t.at(1).value()
+return!0===i?u.String.dasherize(r):i||0===i?String(i):""}function ge(e,t){var n=t.named,r=t.positional,i=r.capture(),o=i.references,s=o[0],u=o[1],c=o.slice(2),l=u._propertyKey,h=n.has("target")?n.get("target"):s,d=ve(n.has("value")&&n.get("value"),c),p=void 0
+return p="function"==typeof u[tt]?be(u,u,u[tt],d,l):(0,a.isConst)(h)&&(0,a.isConst)(u)?be(s.value(),h.value(),u.value(),d,l):ye(s.value(),h,u,d,l),p[nt]=!0,new ft(p)}function me(e){return e}function ve(e,t){var n=void 0
+t.length>0&&(n=function(e){return t.map(function(e){return e.value()}).concat(e)})
+var r=void 0
+return e&&(r=function(t){var n=e.value()
+return n&&t.length>0&&(t[0]=(0,c.get)(t[0],n)),t}),n&&r?function(e){return r(n(e))}:n||r||me}function ye(e,t,n,r,i){return function(){return be(e,t.value(),n.value(),r,i).apply(void 0,arguments)}}function be(e,t,n,r,i){var o,s=void 0,a=void 0
+return"function"==typeof n[tt]?(s=n,a=n[tt]):(o=typeof n,"string"===o?(s=t,a=t.actions&&t.actions[n]):"function"===o&&(s=e,a=n)),function(){for(e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n]
+var e,t,n,i={target:s,args:t,label:"@glimmer/closure-action"}
+return(0,c.flaggedInstrument)("interaction.ember-action",i,function(){return c.join.apply(void 0,[s,a].concat(r(t)))})}}function Ce(e){return e.positional.value().map(Mn).join("")}function Ae(e,n){return void 0===n||null===n||""===n?t.NULL_REFERENCE:"string"==typeof n&&n.indexOf(".")>-1?I(e,n.split(".")):e.get(n)}function _e(e){var t,n=e.positional;(t=console).log.apply(t,n.value())}function Ie(e){return e&&e[zn]}function we(e){return e[Fn]||e}function xe(e){var t=(e.positional,e.named)
+return new v.QueryParams((0,s.assign)({},t.value()))}function ke(e,t){var n
+if(null===t||void 0===t){if(Hn.test(e.type))return(0,h.isSimpleClick)(e)
+t=""}if(t.indexOf("any")>=0)return!0
+for(n=0;n<Bn.length;n++)if(e[Bn[n]+"Key"]&&-1===t.indexOf(Bn[n]))return!1
+return!0}function je(e){return null===e?null:[e[0].map(function(e){return"@"+e}),e[1]]}function Ee(e,t,n,r){var i=r.compiler.resolver.lookupComponentDefinition("-text-area",r.referrer)
+return K(n),r.component.static(i,[t||[],je(n),null,null]),!0}function Se(e,t,n,r){var i=r.compiler.resolver.lookupComponentDefinition(e,r.referrer)
+return r.component.static(i,[t,je(n),null,null]),!0}function Te(e,t,n,r){var i,o,s,a,u
+if(null===t&&(t=[]),null!==n&&(i=n[0],o=n[1],(s=i.indexOf("type"))>-1)){if(a=o[s],Array.isArray(a))return u=t[0],r.dynamicComponent(u,t.slice(1),n,!0,null,null),!0
+if("checkbox"===a)return K(n),Se("-checkbox",t,n,r)}return Se("-text-field",t,n,r)}function Pe(e,t,n,r,i){return null!==n&&(null!==e?(i.compileParams(e),i.invokeStaticBlock(n,e.length)):i.invokeStatic(n)),!0}function Oe(e,t,n,r){var i=[f.Ops.Helper,"-mount",t||[],n]
+return r.dynamicComponent(i,[],null,!1,null,null),!0}function Re(e,t,n,r){var i=[f.Ops.Helper,"-outlet",t||[],n]
+return r.dynamicComponent(i,[],null,!1,null,null),!0}function Ne(e){var t=e.value()
+if(void 0===t)return null
+var n=t.render
+if(void 0===n)return null
+var r=n.template
+return void 0===r?null:{ref:e,name:n.name,outlet:n.outlet,template:r,controller:n.controller}}function Me(e,t){return null===e?null===t:null!==t&&(e.template===t.template&&e.controller===t.controller)}function Le(e,t,n,r){var i
+return!0===d.ENV._ENABLE_RENDER_SUPPORT&&(i=[f.Ops.Helper,"-render",t||[],n],r.dynamicComponent(i,null,null,!1,null,null),!0)}function De(e,t,n,r){if(-1===e.indexOf("-"))return!1
+var i=r.compiler.resolver.lookupComponentDefinition(e,r.referrer)
+return null!==i&&(r.component.static(i,[null===t?[]:t,je(n),null,null]),!0)}function ze(e,t,n,r,i,o){if(-1===e.indexOf("-"))return!1
+var s=o.compiler.resolver.lookupComponentDefinition(e,o.referrer)
+return null!==s&&(K(n),o.component.static(s,[t,je(n),r,i]),!0)}function Fe(e){var t,n=e.inlines,r=e.blocks
+for(n.add("outlet",Re),n.add("render",Le),n.add("mount",Oe),n.add("input",Te),n.add("textarea",Ee),n.addMissing(De),r.add("let",Pe),r.addMissing(ze),t=0;t<cr.length;t++)(0,cr[t])(r,n)
+return{blocks:r,inlines:n}}function Be(e){var t=e.renderer
+if(!t)throw new Error("missing renderer for component "+e)
+return t}function He(e,t){var n
+return"reopenClass"in e?e.reopenClass((n={},n[dr]=t,n)):(e[dr]=t,e)}function Ue(e){return{object:"component:"+e}}function qe(e,t){return{source:void 0!==e?"template:"+e:void 0,namespace:t}}e.componentManager=e.COMPONENT_MANAGER=e.CustomComponentManager=e.OutletView=e.DebugStack=e.iterableFor=e.INVOKE=e.UpdatableReference=e.AbstractComponentManager=e._experimentalMacros=e._registerMacros=e.setupApplicationRegistry=e.setupEngineRegistry=e.setTemplates=e.getTemplates=e.hasTemplate=e.setTemplate=e.getTemplate=e.renderSettled=e._resetRenderers=e.InteractiveRenderer=e.InertRenderer=e.Renderer=e.isHTMLSafe=e.htmlSafe=e.escapeExpression=e.SafeString=e.Environment=e.helper=e.Helper=e.ROOT_REF=e.Component=e.LinkComponent=e.TextArea=e.TextField=e.Checkbox=e.template=e.RootTemplate=e.NodeDOMTreeConstruction=e.isSerializationFirstNode=e.DOMTreeConstruction=e.DOMChanges=void 0,Object.defineProperty(e,"DOMChanges",{enumerable:!0,get:function(){return t.DOMChanges}}),Object.defineProperty(e,"DOMTreeConstruction",{enumerable:!0,get:function(){return t.DOMTreeConstruction}}),Object.defineProperty(e,"isSerializationFirstNode",{enumerable:!0,get:function(){return n.isSerializationFirstNode}}),Object.defineProperty(e,"NodeDOMTreeConstruction",{enumerable:!0,get:function(){return r.NodeDOMTreeConstruction}})
+var Ve,We=(0,i.taggedTemplateLiteralLoose)(["template:components/-default"],["template:components/-default"]),Ge=(0,i.taggedTemplateLiteralLoose)(["component:-default"],["component:-default"]),Ye=(0,i.taggedTemplateLiteralLoose)(["template:-root"],["template:-root"]),Ke=(0,i.taggedTemplateLiteralLoose)(["template-compiler:main"],["template-compiler:main"]),Qe=function(){function e(e){this.factory=e,this.id=e.id,this.meta=e.meta}return e.prototype.create=function(e){var t=(0,s.getOwner)(e)
+return this.factory.create(e.compiler,{owner:t})},e}(),Ze=y({id:"UYMQEP0l",block:'{"symbols":[],"statements":[[1,[26,"component",[[21,0,[]]],null],false]],"hasEval":false}',meta:{moduleName:"packages/ember-glimmer/lib/templates/root.hbs"}}),Xe=(0,s.symbol)("RECOMPUTE_TAG"),Je=u.FrameworkObject.extend({init:function(){this._super.apply(this,arguments),this[Xe]=a.DirtyableTag.create()},recompute:function(){this[Xe].inner.dirty()}})
+Je.isHelperFactory=!0
+var $e=function(){function e(e){this.compute=e,this.isHelperFactory=!0}return e.prototype.create=function(){return{compute:this.compute}},e}(),et=(0,s.symbol)("UPDATE"),tt=(0,s.symbol)("INVOKE"),nt=(0,s.symbol)("ACTION"),rt=function(){function e(){}return e.prototype.get=function(e){return st.create(this,e)},e}(),it=function(e){function t(){var t=(0,i.possibleConstructorReturn)(this,e.call(this))
+return t._lastRevision=null,t._lastValue=null,t}return(0,i.inherits)(t,e),t.prototype.value=function(){var e=this.tag,t=this._lastRevision,n=this._lastValue
+return null!==t&&e.validate(t)||(n=this._lastValue=this.compute(),this._lastRevision=e.value()),n},t}(rt),ot=function(e){function t(t){var n=(0,i.possibleConstructorReturn)(this,e.call(this,t))
+return n.children=Object.create(null),n}return(0,i.inherits)(t,e),t.prototype.get=function(e){var t=this.children[e]
+return void 0===t&&(t=this.children[e]=new at(this.inner,e)),t},t}(a.ConstReference),st=function(e){function t(){return(0,i.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,i.inherits)(t,e),t.create=function(e,t){return(0,a.isConst)(e)?new at(e.value(),t):new ut(e,t)},t.prototype.get=function(e){return new ut(this,e)},t}(it),at=function(e){function t(t,n){var r=(0,i.possibleConstructorReturn)(this,e.call(this))
+return r._parentValue=t,r._propertyKey=n,r.tag=(0,c.tagForProperty)(t,n),r}return(0,i.inherits)(t,e),t.prototype.compute=function(){var e=this._parentValue,t=this._propertyKey
+return(0,c.get)(e,t)},t.prototype[et]=function(e){(0,c.set)(this._parentValue,this._propertyKey,e)},t}(st),ut=function(e){function t(t,n){var r=(0,i.possibleConstructorReturn)(this,e.call(this)),o=t.tag,s=a.UpdatableTag.create(a.CONSTANT_TAG)
+return r._parentReference=t,r._parentObjectTag=s,r._propertyKey=n,r.tag=(0,a.combine)([o,s]),r}return(0,i.inherits)(t,e),t.prototype.compute=function(){var e=this._parentReference,t=this._parentObjectTag,n=this._propertyKey,r=e.value()
+t.inner.update((0,c.tagForProperty)(r,n))
+var i=typeof r
+return"string"===i&&"length"===n?r.length:"object"===i&&null!==r||"function"===i?(0,c.get)(r,n):void 0},t.prototype[et]=function(e){var t=this._parentReference.value();(0,c.set)(t,this._propertyKey,e)},t}(st),ct=function(e){function t(t){var n=(0,i.possibleConstructorReturn)(this,e.call(this))
+return n.tag=a.DirtyableTag.create(),n._value=t,n}return(0,i.inherits)(t,e),t.prototype.value=function(){return this._value},t.prototype.update=function(e){e!==this._value&&(this.tag.inner.dirty(),this._value=e)},t}(rt),lt=function(e){function n(t){var n=(0,i.possibleConstructorReturn)(this,e.call(this,t))
+return n.objectTag=a.UpdatableTag.create(a.CONSTANT_TAG),n.tag=(0,a.combine)([t.tag,n.objectTag]),n}return(0,i.inherits)(n,e),n.create=function(e){var r
+return(0,a.isConst)(e)?(r=e.value(),(0,s.isProxy)(r)?new at(r,"isTruthy"):t.PrimitiveReference.create(_(r))):new n(e)},n.prototype.toBool=function(e){return(0,s.isProxy)(e)?(this.objectTag.inner.update((0,c.tagForProperty)(e,"isTruthy")),(0,c.get)(e,"isTruthy")):(this.objectTag.inner.update((0,c.tagFor)(e)),_(e))},n}(t.ConditionalReference),ht=function(e){function t(t,n){var r=(0,i.possibleConstructorReturn)(this,e.call(this))
+return r.tag=n.tag,r.helper=t,r.args=n,r}return(0,i.inherits)(t,e),t.create=function(e,n){var r,i,o,s,u
+return(0,a.isConst)(n)?(r=n.positional,i=n.named,o=r.value(),s=i.value(),u=e(o,s),w(u)):new t(e,n)},t.prototype.compute=function(){var e=this.helper,t=this.args,n=t.positional,r=t.named
+return e(n.value(),r.value())},t}(it),dt=function(e){function t(t,n){var r=(0,i.possibleConstructorReturn)(this,e.call(this))
+return r.tag=(0,a.combine)([t[Xe],n.tag]),r.instance=t,r.args=n,r}return(0,i.inherits)(t,e),t.create=function(e,n){return new t(e,n)},t.prototype.compute=function(){var e=this.instance,t=this.args,n=t.positional,r=t.named,i=n.value(),o=r.value()
+return e.compute(i,o)},t}(it),pt=function(e){function t(t,n){var r=(0,i.possibleConstructorReturn)(this,e.call(this))
+return r.tag=n.tag,r.helper=t,r.args=n,r}return(0,i.inherits)(t,e),t.prototype.compute=function(){return(0,this.helper)(this.args)},t}(it),ft=function(e){function t(){return(0,i.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,i.inherits)(t,e),t.create=function(e){return w(e,!1)},t.prototype.get=function(e){return w((0,c.get)(this.inner,e),!1)},t}(a.ConstReference),gt=function(e){function t(t){var n=(0,i.possibleConstructorReturn)(this,e.call(this))
+return n.inner=t,n}return(0,i.inherits)(t,e),t.prototype.compute=function(){return this.inner.value()},t.prototype.get=function(e){return this.inner.get(e)},(0,i.createClass)(t,[{key:"tag",get:function(){return this.inner.tag}},{key:tt,get:function(){return this.inner[tt]}}]),t}(it),mt=(0,s.symbol)("DIRTY_TAG"),vt=(0,s.symbol)("ARGS"),yt=(0,s.symbol)("ROOT_REF"),bt=(0,s.symbol)("IS_DISPATCHING_ATTRS"),Ct=(0,s.symbol)("HAS_BLOCK"),At=(0,s.symbol)("BOUNDS"),_t=h.CoreView.extend(h.ChildViewsSupport,h.ViewStateSupport,h.ClassNamesSupport,u.TargetActionSupport,h.ActionSupport,h.ViewMixin,(Ve={isComponent:!0,init:function(){this._super.apply(this,arguments),this[bt]=!1,this[mt]=a.DirtyableTag.create(),this[yt]=new ot(this),this[At]=null},rerender:function(){this[mt].inner.dirty(),this._super()}},Ve[c.PROPERTY_DID_CHANGE]=function(e){if(!this[bt]){var t=this[vt],n=t&&t[e]
+n&&n[et]&&n[et]((0,c.get)(this,e))}},Ve.getAttr=function(e){return this.get(e)},Ve.readDOMAttr=function(e){var n=(0,h.getViewElement)(this),r=n.namespaceURI===t.SVG_NAMESPACE,i=(0,t.normalizeProperty)(n,e),o=i.type,s=i.normalized
+return r?n.getAttribute(s):"attr"===o?n.getAttribute(s):n[s]},Ve))
+_t.toString=function(){return"@ember/component"},_t.reopenClass({isComponentFactory:!0,positionalParams:[]})
+var It=y({id:"5jp2oO+o",block:'{"symbols":[],"statements":[],"hasEval":false}',meta:{moduleName:"packages/ember-glimmer/lib/templates/empty.hbs"}}),wt=_t.extend({layout:It,classNames:["ember-checkbox"],tagName:"input",attributeBindings:["type","checked","indeterminate","disabled","tabindex","name","autofocus","required","form"],type:"checkbox",disabled:!1,indeterminate:!1,didInsertElement:function(){this._super.apply(this,arguments),(0,c.get)(this,"element").indeterminate=!!(0,c.get)(this,"indeterminate")},change:function(){(0,c.set)(this,"checked",this.element.checked)}})
+wt.toString=function(){return"@ember/component/checkbox"}
+var xt=Object.create(null),kt=_t.extend(h.TextSupport,{layout:It,classNames:["ember-text-field"],tagName:"input",attributeBindings:["accept","autocomplete","autosave","dir","formaction","formenctype","formmethod","formnovalidate","formtarget","height","inputmode","lang","list","type","max","min","multiple","name","pattern","size","step","value","width"],value:"",type:(0,c.computed)({get:function(){return"text"},set:function(e,t){var n="text"
+return x(t)&&(n=t),n}}),size:null,pattern:null,min:null,max:null})
+kt.toString=function(){return"@ember/component/text-field"}
+var jt=_t.extend(h.TextSupport,{classNames:["ember-text-area"],layout:It,tagName:"textarea",attributeBindings:["rows","cols","name","selectionEnd","selectionStart","autocomplete","wrap","lang","dir","value"],rows:null,cols:null})
+jt.toString=function(){return"@ember/component/text-area"}
+var Et=y({id:"4GmgUGfN",block:'{"symbols":["&default"],"statements":[[4,"if",[[22,["linkTitle"]]],null,{"statements":[[1,[20,"linkTitle"],false]],"parameters":[]},{"statements":[[13,1]],"parameters":[]}]],"hasEval":false}',meta:{moduleName:"packages/ember-glimmer/lib/templates/link-to.hbs"}}),St=_t.extend({layout:Et,tagName:"a","current-when":null,title:null,rel:null,tabindex:null,target:null,activeClass:"active",loadingClass:"loading",disabledClass:"disabled",replace:!1,attributeBindings:["href","title","rel","tabindex","target"],classNameBindings:["active","loading","disabled","transitioningIn","transitioningOut"],eventName:"click",init:function(){this._super.apply(this,arguments)
+var e=(0,c.get)(this,"eventName")
+this.on(e,this,this._invoke)},_routing:u.inject.service("-routing"),disabled:(0,c.computed)({get:function(){return!1},set:function(e,t){return this._isDisabled=t,!!t&&(0,c.get)(this,"disabledClass")}}),_isActive:function(e){if((0,c.get)(this,"loading"))return!1
+var t,n=(0,c.get)(this,"current-when")
+if("boolean"==typeof n)return n
+var r=!!n
+n=n||(0,c.get)(this,"qualifiedRouteName"),n=n.split(" ")
+var i=(0,c.get)(this,"_routing"),o=(0,c.get)(this,"models"),s=(0,c.get)(this,"resolvedQueryParams")
+for(t=0;t<n.length;t++)if(i.isActiveForRoute(o,s,n[t],e,r))return!0
+return!1},active:(0,c.computed)("activeClass","_active",function(){return!!this.get("_active")&&(0,c.get)(this,"activeClass")}),_active:(0,c.computed)("_routing.currentState","attrs.params",function(){var e=(0,c.get)(this,"_routing.currentState")
+return!!e&&this._isActive(e)}),willBeActive:(0,c.computed)("_routing.targetState",function(){var e=(0,c.get)(this,"_routing"),t=(0,c.get)(e,"targetState")
+if((0,c.get)(e,"currentState")!==t)return this._isActive(t)}),transitioningIn:(0,c.computed)("active","willBeActive",function(){return!0===(0,c.get)(this,"willBeActive")&&!(0,c.get)(this,"_active")&&"ember-transitioning-in"}),transitioningOut:(0,c.computed)("active","willBeActive",function(){return!(!1!==(0,c.get)(this,"willBeActive")||!(0,c.get)(this,"_active"))&&"ember-transitioning-out"}),_invoke:function(e){if(!(0,h.isSimpleClick)(e))return!0
+var t=(0,c.get)(this,"preventDefault"),n=(0,c.get)(this,"target")
+if(!1!==t&&(n&&"_self"!==n||e.preventDefault()),!1===(0,c.get)(this,"bubbles")&&e.stopPropagation(),this._isDisabled)return!1
+if((0,c.get)(this,"loading"))return!1
+if(n&&"_self"!==n)return!1
+var r=(0,c.get)(this,"qualifiedRouteName"),i=(0,c.get)(this,"models"),o=(0,c.get)(this,"queryParams.values"),s=(0,c.get)(this,"replace"),a={queryParams:o,routeName:r}
+return(0,c.flaggedInstrument)("interaction.link-to",a,this._generateTransition(a,r,i,o,s)),!1},_generateTransition:function(e,t,n,r,i){var o=(0,c.get)(this,"_routing")
+return function(){e.transition=o.transitionTo(t,n,r,i)}},queryParams:null,qualifiedRouteName:(0,c.computed)("targetRouteName","_routing.currentState",function(){var e=(0,c.get)(this,"params"),t=e.length,n=e[t-1]
+return n&&n.isQueryParams&&t--,(this[Ct]?0===t:1===t)?(0,c.get)(this,"_routing.currentRouteName"):(0,c.get)(this,"targetRouteName")}),resolvedQueryParams:(0,c.computed)("queryParams",function(){var e={},t=(0,c.get)(this,"queryParams")
+if(!t)return e
+var n=t.values
+for(var r in n)n.hasOwnProperty(r)&&(e[r]=n[r])
+return e}),href:(0,c.computed)("models","qualifiedRouteName",function(){if("a"===(0,c.get)(this,"tagName")){var e=(0,c.get)(this,"qualifiedRouteName"),t=(0,c.get)(this,"models")
+if((0,c.get)(this,"loading"))return(0,c.get)(this,"loadingHref")
+var n=(0,c.get)(this,"_routing"),r=(0,c.get)(this,"queryParams.values")
+return n.generateURL(e,t,r)}}),loading:(0,c.computed)("_modelsAreLoaded","qualifiedRouteName",function(){var e=(0,c.get)(this,"qualifiedRouteName")
+if(!(0,c.get)(this,"_modelsAreLoaded")||null===e||void 0===e)return(0,c.get)(this,"loadingClass")}),_modelsAreLoaded:(0,c.computed)("models",function(){var e,t,n=(0,c.get)(this,"models")
+for(e=0;e<n.length;e++)if(null===(t=n[e])||void 0===t)return!1
+return!0}),_getModels:function(e){var t,n,r=e.length-1,i=new Array(r)
+for(t=0;t<r;t++)n=e[t+1],i[t]=n
+return i},loadingHref:"#",didReceiveAttrs:function(){var e=void 0,t=(0,c.get)(this,"params")
+t&&(t=t.slice())
+var n=(0,c.get)(this,"disabledWhen")
+void 0!==n&&this.set("disabled",n),this[Ct]||this.set("linkTitle",t.shift()),this.set("targetRouteName",t[0])
+var r=t[t.length-1]
+e=r&&r.isQueryParams?t.pop():{values:{}},this.set("queryParams",e),t.length>1?this.set("models",this._getModels(t)):this.set("models",[])}})
+St.toString=function(){return"@ember/routing/link-component"},St.reopenClass({positionalParams:"params"})
+var Tt=(0,s.symbol)("EACH_IN"),Pt=function(){function e(e){this.inner=e,this.tag=e.tag,this[Tt]=!0}return e.prototype.value=function(){return this.inner.value()},e.prototype.get=function(e){return this.inner.get(e)},e}(),Ot=function(){function e(e,t){this.length=e,this.keyFor=t,this.position=0}return e.prototype.isEmpty=function(){return!1},e.prototype.memoFor=function(e){return e},e.prototype.next=function(){var e=this.length,t=this.keyFor,n=this.position
+if(n>=e)return null
+var r=this.valueFor(n),i=this.memoFor(n),o=t(r,i,n)
+return this.position++,{key:o,value:r,memo:i}},e}(),Rt=function(e){function t(t,n,r){var o=(0,i.possibleConstructorReturn)(this,e.call(this,n,r))
+return o.array=t,o}return(0,i.inherits)(t,e),t.from=function(e,t){var n=e.length
+return 0===n?Ft:new this(e,n,t)},t.fromForEachable=function(e,t){var n=[]
+return e.forEach(function(e){return n.push(e)}),this.from(n,t)},t.prototype.valueFor=function(e){return this.array[e]},t}(Ot),Nt=function(e){function t(t,n,r){var o=(0,i.possibleConstructorReturn)(this,e.call(this,n,r))
+return o.array=t,o}return(0,i.inherits)(t,e),t.from=function(e,t){var n=(0,c.get)(e,"length")
+return 0===n?Ft:new this(e,n,t)},t.prototype.valueFor=function(e){return(0,c.objectAt)(this.array,e)},t}(Ot),Mt=function(e){function t(t,n,r,o){var s=(0,i.possibleConstructorReturn)(this,e.call(this,r,o))
+return s.keys=t,s.values=n,s}return(0,i.inherits)(t,e),t.fromIndexable=function(e,t){var n,r=Object.keys(e),i=[],o=r.length
+for(n=0;n<o;n++)i.push((0,c.get)(e,r[n]))
+return 0===o?Ft:new this(r,i,o,t)},t.fromForEachable=function(e,t){var n=arguments,r=[],i=[],o=0,s=!1
+return e.forEach(function(e,t){s=s||n.length>=2,s?(r.push(t),i.push(e)):i.push(e),o++}),0===o?Ft:s?new this(r,i,o,t):new Rt(i,o,t)},t.prototype.valueFor=function(e){return this.values[e]},t.prototype.memoFor=function(e){return this.keys[e]},t}(Ot),Lt=function(){function e(e,t,n){this.iterable=e,this.result=t,this.keyFor=n,this.position=0}return e.from=function(e,t){var n=e[Symbol.iterator](),r=n.next(),i=r.value
+return r.done?Ft:Array.isArray(i)&&2===i.length?new this(n,r,t):new Dt(n,r,t)},e.prototype.isEmpty=function(){return!1},e.prototype.next=function(){var e=this.iterable,t=this.result,n=this.position,r=this.keyFor
+if(t.done)return null
+var i=this.valueFor(t,n),o=this.memoFor(t,n),s=r(i,o,n)
+return this.position++,this.result=e.next(),{key:s,value:i,memo:o}},e}(),Dt=function(e){function t(){return(0,i.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,i.inherits)(t,e),t.prototype.valueFor=function(e){return e.value},t.prototype.memoFor=function(e,t){return t},t}(Lt),zt=function(e){function t(){return(0,i.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,i.inherits)(t,e),t.prototype.valueFor=function(e){return e.value[1]},t.prototype.memoFor=function(e){return e.value[0]},t}(Lt),Ft={isEmpty:function(){return!0},next:function(){return null}},Bt=function(){function e(e,t){this.ref=e,this.keyPath=t,this.valueTag=a.UpdatableTag.create(a.CONSTANT_TAG),this.tag=(0,a.combine)([e.tag,this.valueTag])}return e.prototype.iterate=function(){var e=this.ref,t=this.valueTag,n=e.value(),r=(0,c.tagFor)(n)
+return(0,s.isProxy)(n)&&(n=(0,u._contentFor)(n)),t.inner.update(r),T(n)?Array.isArray(n)||(0,u.isEmberArray)(n)?Mt.fromIndexable(n,this.keyFor(!0)):s.HAS_NATIVE_SYMBOL&&S(n)?zt.from(n,this.keyFor()):E(n)?Mt.fromForEachable(n,this.keyFor()):Mt.fromIndexable(n,this.keyFor(!0)):Ft},e.prototype.valueReferenceFor=function(e){return new ct(e.value)},e.prototype.updateValueReference=function(e,t){e.update(t.value)},e.prototype.memoReferenceFor=function(e){return new ct(e.memo)},e.prototype.updateMemoReference=function(e,t){e.update(t.memo)},e.prototype.keyFor=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.keyPath
+switch(t){case"@key":return e?O:L(R)
+case"@index":return P
+case"@identity":return L(N)
+default:return L(M(t))}},e}(),Ht=function(){function e(e,t){this.ref=e,this.keyPath=t,this.valueTag=a.UpdatableTag.create(a.CONSTANT_TAG),this.tag=(0,a.combine)([e.tag,this.valueTag])}return e.prototype.iterate=function(){var e=this.ref,t=this.valueTag,n=e.value()
+if(t.inner.update((0,c.tagForProperty)(n,"[]")),null===n||"object"!=typeof n)return Ft
+var r=this.keyFor()
+return Array.isArray(n)?Rt.from(n,r):(0,u.isEmberArray)(n)?Nt.from(n,r):s.HAS_NATIVE_SYMBOL&&S(n)?Dt.from(n,r):E(n)?Rt.fromForEachable(n,r):Ft},e.prototype.valueReferenceFor=function(e){return new ct(e.value)},e.prototype.updateValueReference=function(e,t){e.update(t.value)},e.prototype.memoReferenceFor=function(e){return new ct(e.memo)},e.prototype.updateMemoReference=function(e,t){e.update(t.memo)},e.prototype.keyFor=function(){var e=this.keyPath
+switch(e){case"@index":return P
+case"@identity":return L(N)
+default:return L(M(e))}},e}(),Ut=function(){function e(e){this.string=e}return e.prototype.toString=function(){return""+this.string},e.prototype.toHTML=function(){return this.toString()},e}(),qt={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;","=":"&#x3D;"},Vt=/[&<>"'`=]/,Wt=/[&<>"'`=]/g,Gt=void 0,Yt=void 0,Kt=function(e){function t(t){var n=(0,i.possibleConstructorReturn)(this,e.call(this,t))
+return n.inTransaction=!1,n.owner=t[s.OWNER],n.isInteractive=n.owner.lookup("-environment:main").isInteractive,n.destroyedComponents=[],B(n),n}return(0,i.inherits)(t,e),t.create=function(e){return new this(e)},t.prototype.protocolForURL=function(e){return e},t.prototype.lookupComponent=function(e,t){return(0,h.lookupComponent)(t.owner,e,t)},t.prototype.toConditionalReference=function(e){return lt.create(e)},t.prototype.iterableFor=function(e,t){return j(e,t)},t.prototype.scheduleInstallModifier=function(t,n){this.isInteractive&&e.prototype.scheduleInstallModifier.call(this,t,n)},t.prototype.scheduleUpdateModifier=function(t,n){this.isInteractive&&e.prototype.scheduleUpdateModifier.call(this,t,n)},t.prototype.didDestroy=function(e){e.destroy()},t.prototype.begin=function(){this.inTransaction=!0,e.prototype.begin.call(this)},t.prototype.commit=function(){var t,n=this.destroyedComponents
+for(this.destroyedComponents=[],t=0;t<n.length;t++)n[t].destroy()
+try{e.prototype.commit.call(this)}finally{this.inTransaction=!1}},t}(t.Environment),Qt=function(){function e(){this.debugStack=void 0}return e.prototype.prepareArgs=function(){return null},e.prototype.didCreateElement=function(){},e.prototype.didRenderLayout=function(){},e.prototype.didCreate=function(){},e.prototype.update=function(){},e.prototype.didUpdateLayout=function(){},e.prototype.didUpdate=function(){},e}(),Zt={dynamicLayout:!1,dynamicTag:!1,prepareArgs:!1,createArgs:!1,attributeHook:!1,elementHook:!1,createCaller:!0,dynamicScope:!0,updateHook:!0,createInstance:!0},Xt=function(e){function n(){return(0,i.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,i.inherits)(n,e),n.prototype.create=function(e,n,r,i){i.outletState=n.ref,void 0===i.rootOutletState&&(i.rootOutletState=i.outletState)
+var o=n.controller
+return{self:void 0===o?t.UNDEFINED_REFERENCE:new ot(o),finalize:(0,c._instrumentStart)("render.outlet",q,n)}},n.prototype.layoutFor=function(){throw new Error("Method not implemented.")},n.prototype.getLayout=function(e){var t=e.template,n=t.asLayout()
+return{handle:n.compile(),symbolTable:n.symbolTable}},n.prototype.getCapabilities=function(){return Zt},n.prototype.getSelf=function(e){return e.self},n.prototype.getTag=function(){return a.CONSTANT_TAG},n.prototype.didRenderLayout=function(e){e.finalize()},n.prototype.getDestructor=function(){return null},n}(Qt),Jt=new Xt,$t=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Jt
+this.state=e,this.manager=t},en=function(){function e(e,t,n,r){this.environment=e,this.component=t,this.args=n,this.finalizer=r,this.classRef=null,this.classRef=null,this.argsRevision=null===n?0:n.tag.value()}return e.prototype.destroy=function(){var e=this.component,t=this.environment
+t.isInteractive&&(e.trigger("willDestroyElement"),e.trigger("willClearRender")),t.destroyedComponents.push(e)},e.prototype.finalize=function(){(0,this.finalizer)(),this.finalizer=W},e}(),tn={parse:function(e){var t,n,r=e.indexOf(":")
+return-1===r?[e,e,!0]:(t=e.substring(0,r),n=e.substring(r+1),[t,n,!1])},install:function(e,n,r,i){var o,s=r[0],a=r[1]
+r[2]
+if("id"===a)return o=(0,c.get)(n,s),void 0!==o&&null!==o||(o=n.elementId),o=t.PrimitiveReference.create(o),void i.setAttribute("id",o,!0,null)
+var u=s.indexOf(".")>-1,l=u?Y(n,s.split(".")):G(n,s)
+"style"===a&&(l=new rn(l,G(n,"isVisible"))),i.setAttribute(a,l,!1,null)}},nn=z("display: none;"),rn=function(e){function t(t,n){var r=(0,i.possibleConstructorReturn)(this,e.call(this))
+return r.inner=t,r.isVisible=n,r.tag=(0,a.combine)([t.tag,n.tag]),r}return(0,i.inherits)(t,e),t.prototype.compute=function(){var e,t=this.inner.value()
+return!1!==this.isVisible.value()?t:t?(e=t+" display: none;",F(t)?z(e):e):nn},t}(a.CachedReference),on={install:function(e,t,n){n.setAttribute("style",(0,a.map)(G(t,"isVisible"),this.mapStyleValue),!1,null)},mapStyleValue:function(e){return!1===e?nn:null}},sn={install:function(e,n,r,i){var o,s,a,u,c=r.split(":"),l=c[0],h=c[1],d=c[2]
+""===l?i.setAttribute("class",t.PrimitiveReference.create(h),!0,null):(o=l.indexOf(".")>-1,s=o?l.split("."):[],a=o?Y(n,s):G(n,l),u=void 0,u=void 0===h?new an(a,o?s[s.length-1]:l):new un(a,h,d),i.setAttribute("class",u,!1,null))}},an=function(e){function t(t,n){var r=(0,i.possibleConstructorReturn)(this,e.call(this))
+return r.inner=t,r.path=n,r.tag=t.tag,r.inner=t,r.path=n,r.dasherizedPath=null,r}return(0,i.inherits)(t,e),t.prototype.compute=function(){var e,t=this.inner.value()
+return!0===t?(e=this.path,this.dasherizedPath||(this.dasherizedPath=u.String.dasherize(e))):t||0===t?String(t):null},t}(a.CachedReference),un=function(e){function t(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,o=(0,i.possibleConstructorReturn)(this,e.call(this))
+return o.inner=t,o.truthy=n,o.falsy=r,o.tag=t.tag,o}return(0,i.inherits)(t,e),t.prototype.compute=function(){var e=this.inner,t=this.truthy,n=this.falsy
+return e.value()?t:n},t}(a.CachedReference),cn=(0,s.symbol)("REF"),ln=function(){function e(e,t){this[h.MUTABLE_CELL]=!0,this[cn]=e,this.value=t}return e.prototype.update=function(e){this[cn][et](e)},e}(),hn=(0,g.privatize)(We),dn=function(e){function r(){return(0,i.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,i.inherits)(r,e),r.prototype.getLayout=function(e){return{handle:e.handle,symbolTable:e.symbolTable}},r.prototype.templateFor=function(e,t){var n,r=(0,c.get)(e,"layout")
+if(void 0!==r)return X(r)?t.createTemplate(r,(0,s.getOwner)(e)):r
+var i=(0,s.getOwner)(e),o=(0,c.get)(e,"layoutName")
+return o&&(n=i.lookup("template:"+o))?n:i.lookup(hn)},r.prototype.getDynamicLayout=function(e,t){var n=e.component,r=this.templateFor(n,t),i=r.asWrappedLayout()
+return{handle:i.compile(),symbolTable:i.symbolTable}},r.prototype.getTagName=function(e){var t=e.component
+return""===t.tagName?null:t&&t.tagName||"div"},r.prototype.getCapabilities=function(e){return e.capabilities},r.prototype.prepareArgs=function(e,t){var r,i,o,a,u=e.ComponentClass.class.positionalParams
+if(void 0===u||null===u||0===t.positional.length)return null
+var c=void 0
+if("string"==typeof u)r={},r[u]=t.positional.capture(),c=r,(0,s.assign)(c,t.named.capture().map)
+else{if(!(Array.isArray(u)&&u.length>0))return null
+for(i=Math.min(u.length,t.positional.length),c={},(0,s.assign)(c,t.named.capture().map),o=0;o<i;o++)a=u[o],c[a]=t.positional.at(o)}return{positional:n.EMPTY_ARRAY,named:c}},r.prototype.create=function(e,t,n,r,i,o){var s=r.view,a=t.ComponentClass,u=n.named.capture(),l=Q(u)
+Z(n,l),l.parentView=s,l[Ct]=o,l._targetObject=i.value(),t.template&&(l.layout=t.template)
+var p=a.create(l),f=(0,c._instrumentStart)("render.component",$,p)
+r.view=p,null!==s&&void 0!==s&&(0,h.addChildView)(s,p),!0===d.ENV._ENABLE_DID_INIT_ATTRS_SUPPORT&&p.trigger("didInitAttrs"),p.trigger("didReceiveAttrs"),""===p.tagName&&(e.isInteractive&&p.trigger("willRender"),p._transitionTo("hasElement"),e.isInteractive&&p.trigger("willInsertElement"))
+var g=new en(e,p,u,f)
+return n.named.has("class")&&(g.classRef=n.named.get("class")),e.isInteractive&&""!==p.tagName&&p.trigger("willRender"),g},r.prototype.getSelf=function(e){return e.component[yt]},r.prototype.didCreateElement=function(e,n,r){var i,o=e.component,a=e.classRef,u=e.environment;(0,h.setViewElement)(o,n)
+var c=o.attributeBindings,l=o.classNames,d=o.classNameBindings
+r.setAttribute("id",t.PrimitiveReference.create((0,s.guidFor)(o)),!1,null),c&&c.length?J(n,c,o,r):(o.elementId&&r.setAttribute("id",t.PrimitiveReference.create(o.elementId),!1,null),on.install(n,o,r)),a&&(i=new an(a,a._propertyKey),r.setAttribute("class",i,!1,null)),l&&l.length&&l.forEach(function(e){r.setAttribute("class",t.PrimitiveReference.create(e),!1,null)}),d&&d.length&&d.forEach(function(e){sn.install(n,o,e,r)}),r.setAttribute("class",t.PrimitiveReference.create("ember-view"),!1,null),"ariaRole"in o&&r.setAttribute("role",G(o,"ariaRole"),!1,null),o._transitionTo("hasElement"),u.isInteractive&&o.trigger("willInsertElement")},r.prototype.didRenderLayout=function(e,t){e.component[At]=t,e.finalize()},r.prototype.getTag=function(e){var t=e.args,n=e.component
+return t?(0,a.combine)([t.tag,n[mt]]):n[mt]},r.prototype.didCreate=function(e){var t=e.component
+e.environment.isInteractive&&(t._transitionTo("inDOM"),t.trigger("didInsertElement"),t.trigger("didRender"))},r.prototype.update=function(e){var t,n=e.component,r=e.args,i=e.argsRevision,o=e.environment
+e.finalizer=(0,c._instrumentStart)("render.component",ee,n),r&&!r.tag.validate(i)&&(t=Q(r),e.argsRevision=r.tag.value(),n[bt]=!0,n.setProperties(t),n[bt]=!1,n.trigger("didUpdateAttrs"),n.trigger("didReceiveAttrs")),o.isInteractive&&(n.trigger("willUpdate"),n.trigger("willRender"))},r.prototype.didUpdateLayout=function(e){e.finalize()},r.prototype.didUpdate=function(e){var t=e.component
+e.environment.isInteractive&&(t.trigger("didUpdate"),t.trigger("didRender"))},r.prototype.getDestructor=function(e){return e},r}(Qt),pn={dynamicLayout:!0,dynamicTag:!0,prepareArgs:!0,createArgs:!0,attributeHook:!0,elementHook:!0,createCaller:!0,dynamicScope:!0,updateHook:!0,createInstance:!0},fn=new dn,gn=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:fn,n=arguments[2],r=arguments[3],i=arguments[4],o=arguments[5]
+this.name=e,this.manager=t,this.ComponentClass=n,this.handle=r
+var s=i&&i.asLayout(),a=s?s.symbolTable:void 0
+this.symbolTable=a,this.template=i,this.args=o,this.state={name:e,ComponentClass:n,handle:r,template:i,capabilities:pn,symbolTable:a}},mn=function(e){function t(t){var n=(0,i.possibleConstructorReturn)(this,e.call(this))
+return n.component=t,n}return(0,i.inherits)(t,e),t.prototype.getLayout=function(e,t){var n=this.templateFor(this.component,t),r=n.asWrappedLayout()
+return{handle:r.compile(),symbolTable:r.symbolTable}},t.prototype.create=function(e,t,n,r){var i=this.component,o=(0,c._instrumentStart)("render.component",$,i)
+return r.view=i,""===i.tagName&&(e.isInteractive&&i.trigger("willRender"),i._transitionTo("hasElement"),e.isInteractive&&i.trigger("willInsertElement")),new en(e,i,null,o)},t}(dn),vn={dynamicLayout:!1,dynamicTag:!0,prepareArgs:!1,createArgs:!1,attributeHook:!0,elementHook:!0,createCaller:!0,dynamicScope:!0,updateHook:!0,createInstance:!1},yn=function(){function e(e){this.component=e
+var t=new mn(e)
+this.manager=t
+var n=g.FACTORY_FOR.get(e)
+this.state={name:n.fullName.slice(10),capabilities:vn,ComponentClass:n,handle:null}}return e.prototype.getTag=function(e){return e.component[mt]},e}(),bn=function(){function e(e,t,n){this.view=e,this.outletState=t,this.rootOutletState=n}return e.prototype.child=function(){return new e(this.view,this.outletState,this.rootOutletState)},e.prototype.get=function(e){return this.outletState},e.prototype.set=function(e,t){return this.outletState=t,t},e}(),Cn=function(){function e(e,n,r,i,o,s,a){var u=this
+this.id=(0,h.getViewId)(e),this.env=n,this.root=e,this.result=void 0,this.shouldReflush=!1,this.destroyed=!1
+var c=this.options={alwaysRevalidate:!1}
+this.render=function(){var e=r.asLayout(),l=e.compile(),h=(0,t.renderMain)(e.compiler.program,n,i,s,a(n,{element:o,nextSibling:null}),l),d=void 0
+do{d=h.next()}while(!d.done)
+var p=u.result=d.value
+u.render=function(){return p.rerender(c)}}}return e.prototype.isFor=function(e){return this.root===e},e.prototype.destroy=function(){var e,t=this.result,n=this.env
+if(this.destroyed=!0,this.env=void 0,this.root=null,this.result=void 0,this.render=void 0,t){e=!n.inTransaction,e&&n.begin()
+try{t.destroy()}finally{e&&n.commit()}}},e}(),An=[];(0,c.setHasViews)(function(){return An.length>0})
+var _n=null,In=0
+c.backburner.on("begin",function(){var e
+for(e=0;e<An.length;e++)An[e]._scheduleRevalidate()}),c.backburner.on("end",se)
+var wn=function(){function e(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:h.fallbackViewRegistry,i=arguments.length>3&&void 0!==arguments[3]&&arguments[3],o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:t.clientBuilder
+this._env=e,this._rootTemplate=n,this._viewRegistry=r,this._destinedForDOM=i,this._destroyed=!1,this._roots=[],this._lastRevision=-1,this._isRenderingRoots=!1,this._removedRoots=[],this._builder=o}return e.prototype.appendOutletView=function(e,n){var r=V(e)
+this._appendDefinition(e,(0,t.curry)(r),n)},e.prototype.appendTo=function(e,n){var r=new yn(e)
+this._appendDefinition(e,(0,t.curry)(r),n)},e.prototype._appendDefinition=function(e,n,r){var i=new ft(n),o=new bn(null,t.UNDEFINED_REFERENCE),s=new Cn(e,this._env,this._rootTemplate,i,r,o,this._builder)
+this._renderRoot(s)},e.prototype.rerender=function(){this._scheduleRevalidate()},e.prototype.register=function(e){var t=(0,h.getViewId)(e)
+this._viewRegistry[t]=e},e.prototype.unregister=function(e){delete this._viewRegistry[(0,h.getViewId)(e)]},e.prototype.remove=function(e){e._transitionTo("destroying"),this.cleanupRootFor(e),(0,h.setViewElement)(e,null),this._destinedForDOM&&e.trigger("didDestroyElement"),e.isDestroying||e.destroy()},e.prototype.cleanupRootFor=function(e){if(!this._destroyed)for(var t,n=this._roots,r=this._roots.length;r--;)t=n[r],t.isFor(e)&&(t.destroy(),n.splice(r,1))},e.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this._clearAllRoots())},e.prototype.getBounds=function(e){var t=e[At]
+return{parentElement:t.parentElement(),firstNode:t.firstNode(),lastNode:t.lastNode()}},e.prototype.createElement=function(e){return this._env.getAppendOperations().createElement(e)},e.prototype._renderRoot=function(e){var t=this._roots
+t.push(e),1===t.length&&te(this),this._renderRootsTransaction()},e.prototype._renderRoots=function(){var e,t,n,r,i,o=this._roots,s=this._env,u=this._removedRoots,l=void 0,h=void 0
+do{s.begin()
+try{for(h=o.length,l=!1,e=0;e<o.length;e++)t=o[e],t.destroyed?u.push(t):(n=t.shouldReflush,e>=h&&!n||(t.options.alwaysRevalidate=n,n=t.shouldReflush=(0,c.runInTransaction)(t,"render"),l=l||n))
+this._lastRevision=a.CURRENT_TAG.value()}finally{s.commit()}}while(l||o.length>h)
+for(;u.length;)r=u.pop(),i=o.indexOf(r),o.splice(i,1)
+0===this._roots.length&&ne(this)},e.prototype._renderRootsTransaction=function(){if(!this._isRenderingRoots){this._isRenderingRoots=!0
+var e=!1
+try{this._renderRoots(),e=!0}finally{e||(this._lastRevision=a.CURRENT_TAG.value(),!0===this._env.inTransaction&&this._env.commit()),this._isRenderingRoots=!1}}},e.prototype._clearAllRoots=function(){var e,t,n=this._roots
+for(e=0;e<n.length;e++)t=n[e],t.destroy()
+this._removedRoots.length=0,this._roots=[],n.length&&ne(this)},e.prototype._scheduleRevalidate=function(){c.backburner.scheduleOnce("render",this,this._revalidate)},e.prototype._isValid=function(){return this._destroyed||0===this._roots.length||a.CURRENT_TAG.validate(this._lastRevision)},e.prototype._revalidate=function(){this._isValid()||this._renderRootsTransaction()},e}(),xn=function(e){function t(){return(0,i.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,i.inherits)(t,e),t.create=function(e){return new this(e.env,e.rootTemplate,e._viewRegistry,!1,e.builder)},t.prototype.getElement=function(){throw new Error("Accessing `this.element` is not allowed in non-interactive environments (such as FastBoot).")},t}(wn),kn=function(e){function t(){return(0,i.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,i.inherits)(t,e),t.create=function(e){return new this(e.env,e.rootTemplate,e._viewRegistry,!0,e.builder)},t.prototype.getElement=function(e){return(0,h.getViewElement)(e)},t}(wn),jn={},En=A(function(e){return u.String.loc.apply(null,e)}),Sn=function(){function e(e){this.resolver=e}return e.prototype.getCapabilities=function(e){var t=this.resolver.resolve(e),n=t.manager,r=t.state
+return n.getCapabilities(r)},e.prototype.getLayout=function(e){var t=this.resolver.resolve(e),n=t.manager,r=t.state
+if(n.getCapabilities(r).dynamicLayout)return null
+var i=n.getLayout(r,this.resolver)
+return{compile:function(){return i.handle},symbolTable:i.symbolTable}},e.prototype.lookupHelper=function(e,t){return this.resolver.lookupHelper(e,t)},e.prototype.lookupModifier=function(e,t){return this.resolver.lookupModifier(e,t)},e.prototype.lookupComponentDefinition=function(e,t){return this.resolver.lookupComponentHandle(e,t)},e.prototype.lookupPartial=function(e,t){return this.resolver.lookupPartial(e,t)},e}(),Tn={dynamicLayout:!1,dynamicTag:!1,prepareArgs:!1,createArgs:!1,attributeHook:!1,elementHook:!1,createCaller:!0,dynamicScope:!0,updateHook:!0,createInstance:!0},Pn=function(e){function n(){return(0,i.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,i.inherits)(n,e),n.prototype.getLayout=function(e){var t=e.asLayout()
+return{handle:t.compile(),symbolTable:t.symbolTable}},n.prototype.getCapabilities=function(){return Tn},n.prototype.create=function(){return null},n.prototype.getSelf=function(){return t.NULL_REFERENCE},n.prototype.getTag=function(){return a.CONSTANT_TAG},n.prototype.getDestructor=function(){return null},n}(Qt),On=new Pn,Rn=function(e){this.state=e,this.manager=On},Nn=function(e){return null===e||void 0===e||"function"!=typeof e.toString},Mn=function(e){return Nn(e)?"":String(e)},Ln=function(e){function n(n,r){var o=(0,i.possibleConstructorReturn)(this,e.call(this))
+o.sourceReference=n,o.pathReference=r,o.lastPath=null,o.innerReference=t.NULL_REFERENCE
+var s=o.innerTag=a.UpdatableTag.create(a.CONSTANT_TAG)
+return o.tag=(0,a.combine)([n.tag,r.tag,s]),o}return(0,i.inherits)(n,e),n.create=function(e,t){var r
+return(0,a.isConst)(t)?(r=t.value(),Ae(e,r)):new n(e,t)},n.prototype.compute=function(){var e=this.lastPath,t=this.innerReference,n=this.innerTag,r=this.pathReference.value()
+return r!==e&&(t=Ae(this.sourceReference,r),n.inner.update(t.tag),this.innerReference=t,this.lastPath=r),t.value()},n.prototype[et]=function(e){(0,c.set)(this.sourceReference.value(),this.pathReference.value(),e)},n}(it),Dn=function(e){function t(t,n,r){var o=(0,i.possibleConstructorReturn)(this,e.call(this))
+return o.branchTag=a.UpdatableTag.create(a.CONSTANT_TAG),o.tag=(0,a.combine)([t.tag,o.branchTag]),o.cond=t,o.truthy=n,o.falsy=r,o}return(0,i.inherits)(t,e),t.create=function(e,n,r){var i=lt.create(e)
+return(0,a.isConst)(i)?i.value()?n:r:new t(i,n,r)},t.prototype.compute=function(){var e=this.cond.value()?this.truthy:this.falsy
+return this.branchTag.inner.update(e.tag),e.value()},t}(it),zn=(0,s.symbol)("MUT"),Fn=(0,s.symbol)("SOURCE"),Bn=["alt","shift","meta","ctrl"],Hn=/^click|mouse|touch/,Un={registeredActions:h.ActionManager.registeredActions,registerAction:function(e){var t=e.actionId
+return h.ActionManager.registeredActions[t]=e,t},unregisterAction:function(e){var t=e.actionId
+delete h.ActionManager.registeredActions[t]}},qn=function(){function e(e,t,n,r,i,o,s,a,u){this.element=e,this.actionId=t,this.actionName=n,this.actionArgs=r,this.namedArgs=i,this.positional=o,this.implicitTarget=s,this.dom=a,this.eventName=this.getEventName(),this.tag=u}return e.prototype.getEventName=function(){return this.namedArgs.get("on").value()||"click"},e.prototype.getActionArgs=function(){var e,t=new Array(this.actionArgs.length)
+for(e=0;e<this.actionArgs.length;e++)t[e]=this.actionArgs[e].value()
+return t},e.prototype.getTarget=function(){var e=this.implicitTarget,t=this.namedArgs
+return t.has("target")?t.get("target").value():e.value()},e.prototype.handler=function(e){var t=this,n=this.actionName,r=this.namedArgs,i=r.get("bubbles"),o=r.get("preventDefault"),s=r.get("allowedKeys"),a=this.getTarget(),u=!1!==i.value()
+return!ke(e,s.value())||(!1!==o.value()&&e.preventDefault(),u||e.stopPropagation(),(0,c.join)(function(){var e=t.getActionArgs(),r={args:e,target:a,name:null}
+return"function"==typeof n[tt]?void(0,c.flaggedInstrument)("interaction.ember-action",r,function(){n[tt].apply(n,e)}):"function"==typeof n?void(0,c.flaggedInstrument)("interaction.ember-action",r,function(){n.apply(a,e)}):(r.name=n,void(a.send?(0,c.flaggedInstrument)("interaction.ember-action",r,function(){a.send.apply(a,[n].concat(e))}):(0,c.flaggedInstrument)("interaction.ember-action",r,function(){a[n].apply(a,e)})))}),u)},e.prototype.destroy=function(){Un.unregisterAction(this)},e}(),Vn=function(){function e(){}return e.prototype.create=function(e,t,n,r){var i,o=t.capture(),a=o.named,u=o.positional,c=o.tag,l=void 0,h=void 0,d=void 0
+u.length>1&&(l=u.at(0),d=u.at(1),d[tt]?h=d:(d._propertyKey,h=d.value()))
+var p=[]
+for(i=2;i<u.length;i++)p.push(u.at(i))
+var f=(0,s.uuid)()
+return new qn(e,f,h,p,a,u,l,r,c)},e.prototype.install=function(e){var t=e.dom,n=e.element,r=e.actionId
+Un.registerAction(e),t.setAttribute(n,"data-ember-action",""),t.setAttribute(n,"data-ember-action-"+r,r)},e.prototype.update=function(e){var t=e.positional,n=t.at(1)
+n[tt]||(e.actionName=n.value()),e.eventName=e.getEventName()},e.prototype.getTag=function(e){return e.tag},e.prototype.getDestructor=function(e){return e},e}(),Wn={dynamicLayout:!0,dynamicTag:!1,prepareArgs:!1,createArgs:!1,attributeHook:!1,elementHook:!1,createCaller:!0,dynamicScope:!0,updateHook:!0,createInstance:!0},Gn=function(e){function t(){return(0,i.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,i.inherits)(t,e),t.prototype.getDynamicLayout=function(e){var t=e.engine.lookup("template:application"),n=t.asLayout()
+return{handle:n.compile(),symbolTable:n.symbolTable}},t.prototype.getCapabilities=function(){return Wn},t.prototype.create=function(e,t){var n,r,i=e.owner.buildChildEngineInstance(t.name)
+i.boot()
+var o=i.factoryFor("controller:application"),s=o||(0,v.generateControllerFactory)(i,"application"),u=void 0,c=void 0,l=void 0,h=void 0,d=t.modelRef
+return void 0===d?(u=s.create(),c=new ot(u),h=a.CONSTANT_TAG,l={engine:i,controller:u,self:c,tag:h}):(n=d.value(),r=d.tag.value(),u=s.create({model:n}),c=new ot(u),h=d.tag,l={engine:i,controller:u,self:c,tag:h,modelRef:d,modelRev:r}),l},t.prototype.getSelf=function(e){return e.self},t.prototype.getTag=function(e){return e.tag},t.prototype.getDestructor=function(e){return e.engine},t.prototype.didRenderLayout=function(){},t.prototype.update=function(e){var t,n=e.controller,r=e.modelRef,i=e.modelRev
+r.tag.validate(i)||(t=r.value(),e.modelRev=r.tag.value(),n.set("model",t))},t}(Qt),Yn=new Gn,Kn=function(e,t){this.manager=Yn,this.state={name:e,modelRef:t}},Qn=function(){function e(e,t,n){this.tag=e.tag,this.nameRef=e,this.modelRef=n,this.env=t,this._lastName=null,this._lastDef=null}return e.prototype.value=function(){var e=this.env,n=this.nameRef,r=this.modelRef,i=n.value()
+return"string"==typeof i?this._lastName===i?this._lastDef:e.owner.hasRegistration("engine:"+i)?(this._lastName=i,this._lastDef=(0,t.curry)(new Kn(i,r)),this._lastDef):null:(this._lastDef=null,this._lastName=null,null)},e.prototype.get=function(){return t.UNDEFINED_REFERENCE},e}(),Zn=function(){function e(e){this.outletState=e,this.tag=a.DirtyableTag.create()}return e.prototype.get=function(e){return new Jn(this,e)},e.prototype.value=function(){return this.outletState},e.prototype.update=function(e){this.outletState.outlets.main=e,this.tag.inner.dirty()},e}(),Xn=function(){function e(e,t){this.parentStateRef=e,this.outletNameRef=t,this.tag=(0,a.combine)([e.tag,t.tag])}return e.prototype.value=function(){var e=this.parentStateRef.value(),t=void 0===e?void 0:e.outlets
+return void 0===t?void 0:t[this.outletNameRef.value()]},e.prototype.get=function(e){return new Jn(this,e)},e}(),Jn=function(){function e(e,t){this.parent=e,this.key=t,this.tag=e.tag}return e.prototype.get=function(t){return new e(this,t)},e.prototype.value=function(){var e=this.parent.value()
+return e&&e[this.key]},e}(),$n=function(){function e(e,t){this.root=e,this.name=t,this.tag=e.tag}return e.prototype.value=function(){var e=this.root.value(),t=e&&e.outlets.main,n=t&&t.outlets
+if(t=n&&n.__ember_orphans__,void 0!==(n=t&&t.outlets)){var r=n[this.name]
+if(void 0!==r&&void 0!==r.render){var i=Object.create(null)
+return i[r.render.outlet]=r,r.wasUsed=!0,{outlets:i,render:void 0}}}},e.prototype.get=function(e){return new Jn(this,e)},e}(),er=function(){function e(e){this.outletRef=e,this.definition=null,this.lastState=null,this.tag=e.tag}return e.prototype.value=function(){var e=Ne(this.outletRef)
+if(Me(e,this.lastState))return this.definition
+this.lastState=e
+var n=null
+return null!==e&&(n=(0,t.curry)(new $t(e))),this.definition=n},e.prototype.get=function(){return t.UNDEFINED_REFERENCE},e}(),tr=function(e){function t(){return(0,i.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,i.inherits)(t,e),t.prototype.create=function(e,t,n,r){var i=t.name
+return r.rootOutletState&&(r.outletState=new $n(r.rootOutletState,i)),this.createRenderState(n,e.owner,i)},t.prototype.getLayout=function(e){var t=e.template,n=t.asLayout()
+return{handle:n.compile(),symbolTable:n.symbolTable}},t.prototype.getSelf=function(e){var t=e.controller
+return new ot(t)},t}(Qt),nr={dynamicLayout:!1,dynamicTag:!1,prepareArgs:!1,createArgs:!1,attributeHook:!1,elementHook:!1,createCaller:!0,dynamicScope:!0,updateHook:!0,createInstance:!0},rr=function(e){function t(){return(0,i.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,i.inherits)(t,e),t.prototype.createRenderState=function(e,t,n){return{controller:t.lookup("controller:"+n)||(0,v.generateController)(t,n)}},t.prototype.getCapabilities=function(){return nr},t.prototype.getTag=function(){return a.CONSTANT_TAG},t.prototype.getDestructor=function(){return null},t}(tr),ir=new rr,or={dynamicLayout:!1,dynamicTag:!1,prepareArgs:!1,createArgs:!0,attributeHook:!1,elementHook:!1,dynamicScope:!0,createCaller:!1,updateHook:!0,createInstance:!0},sr=function(e){function t(){return(0,i.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,i.inherits)(t,e),t.prototype.createRenderState=function(e,t,n){var r=e.positional.at(1)
+return{controller:(t.factoryFor("controller:"+n)||(0,v.generateControllerFactory)(t,"controller:"+n)).create({model:r.value()}),model:r}},t.prototype.update=function(e){var t=e.controller,n=e.model
+t.set("model",n.value())},t.prototype.getCapabilities=function(){return or},t.prototype.getTag=function(e){return e.model.tag},t.prototype.getDestructor=function(e){return e.controller},t}(tr),ar=new sr,ur=function(e,t,n){this.manager=n,this.state={name:e,template:t}},cr=[],lr=function(e){function t(t){var n=(0,i.possibleConstructorReturn)(this,e.call(this))
+return n.delegate=t,n}return(0,i.inherits)(t,e),t.prototype.create=function(e,t,n,r){var i=this.delegate,o=n.named.capture(),s=i.create({args:o.value(),ComponentClass:t.ComponentClass}),a=r.view
+return null!==a&&void 0!==a&&(0,h.addChildView)(a,s),r.view=s,new hr(i,s,o)},t.prototype.update=function(e){var t=e.component,n=e.args
+this.delegate.update(t,n.value())},t.prototype.didUpdate=function(e){var t=e.component
+"function"==typeof this.delegate.didUpdate&&this.delegate.didUpdate(t)},t.prototype.getContext=function(e){this.delegate.getContext(e)},t.prototype.getLayout=function(e){return{handle:e.template.asLayout().compile(),symbolTable:e.symbolTable}},t.prototype.getSelf=function(e){var t=e.component,n=this.delegate.getContext(t)
+return new ot(n)},t.prototype.getDestructor=function(e){return e},t.prototype.getCapabilities=function(){return{dynamicLayout:!1,dynamicTag:!1,prepareArgs:!1,createArgs:!0,attributeHook:!1,elementHook:!1,createCaller:!1,dynamicScope:!0,updateHook:!0,createInstance:!0}},t.prototype.getTag=function(e){return e.args.tag},t.prototype.didRenderLayout=function(e){var t=e.component
+Be(t).register(t),"function"==typeof this.delegate.didCreate&&this.delegate.didCreate(t)},t}(Qt),hr=function(){function e(e,t,n){this.delegate=e,this.component=t,this.args=n}return e.prototype.destroy=function(){var e=this.delegate,t=this.component
+Be(t).unregister(t),e.destroy&&e.destroy(t)},e}(),dr=(0,s.symbol)("COMPONENT_MANAGER"),pr={if:function(e,t){var n=t.positional
+return Dn.create(n.at(0),n.at(1),n.at(2))},action:ge,concat:function(e,t){return new pt(Ce,t.capture())},get:function(e,t){return Ln.create(t.positional.at(0),t.positional.at(1))},hash:function(e,t){return t.named.capture()},log:function(e,t){return new pt(_e,t.capture())},mut:function(e,t){var n=t.positional.at(0)
+if(Ie(n))return n
+var r=Object.create(n)
+return r[Fn]=n,r[tt]=n[et],r[zn]=!0,r},"query-params":function(e,t){return new pt(xe,t.capture())},readonly:function(e,t){var n=we(t.positional.at(0))
+return new gt(n)},unbound:function(e,t){return ft.create(t.positional.at(0).value())},unless:function(e,t){var n=t.positional
+return Dn.create(n.at(0),n.at(2),n.at(1))},"-class":function(e,t){return new pt(he,t.capture())},"-each-in":function(e,t){return new Pt(t.positional.at(0))},"-input-type":function(e,t){return new pt(pe,t.capture())},"-normalize-class":function(e,t){return new pt(fe,t.capture())},"-html-safe":function(e,t){return new pt(de,t.capture())},"-get-dynamic-var":t.getDynamicVar,"-mount":function(e,t){var n=e.env,r=t.positional.at(0),i=t.named.has("model")?t.named.get("model"):void 0
+return new Qn(r,n,i)},"-outlet":function(e,t){var n=e.dynamicScope(),r=void 0
+return r=0===t.positional.length?new a.ConstReference("main"):t.positional.at(0),new er(new Xn(n.outletState,r))},"-render":function(e,n){var r,i,o,s,a=e.env,u=n.positional.at(0),c=u.value(),l=a.owner.lookup("template:"+c),h=void 0
+return n.named.has("controller")?(r=n.named.get("controller"),h=r.value()):h=c,1===n.positional.length?(i=new ur(h,l,ir),ft.create((0,t.curry)(i))):(o=new ur(h,l,ar),s=n.capture(),ft.create((0,t.curry)(o,s)))}},fr={action:new Vn},gr=function(){function e(){this.handles=[void 0],this.objToHandle=new WeakMap,this.builtInHelpers=pr,this.builtInModifiers=fr,this.templateCache=new Map,this.componentDefinitionCache=new Map,this.templateCacheHits=0,this.templateCacheMisses=0,this.componentDefinitionCount=0,this.helperDefinitionCount=0
+var e=new o.Macros
+Fe(e),this.compiler=new o.LazyCompiler(new Sn(this),this,e)}return e.prototype.lookupComponentDefinition=function(e,t){var n=this.lookupComponentHandle(e,t)
+return null===n?null:this.resolve(n)},e.prototype.lookupComponentHandle=function(e,t){var n=this.handles.length,r=this.handle(this._lookupComponentDefinition(e,t))
+return n===r&&this.componentDefinitionCount++,r},e.prototype.resolve=function(e){return this.handles[e]},e.prototype.lookupHelper=function(e,t){var n,r=this.handles.length,i=this._lookupHelper(e,t)
+return null!==i?(n=this.handle(i),r===n&&this.helperDefinitionCount++,n):null},e.prototype.lookupModifier=function(e){return this.handle(this._lookupModifier(e))},e.prototype.lookupPartial=function(e,t){var n=this._lookupPartial(e,t)
+return this.handle(n)},e.prototype.createTemplate=function(e,t){var n,r,i=this.templateCache.get(t)
+void 0===i&&(i=new Map,this.templateCache.set(t,i))
+var o=i.get(e)
+return void 0===o?(n=this.compiler,r={compiler:n},(0,s.setOwner)(r,t),o=e.create(r),i.set(e,o),this.templateCacheMisses++):this.templateCacheHits++,o},e.prototype.handle=function(e){if(void 0===e||null===e)return null
+var t=this.objToHandle.get(e)
+return void 0===t&&(t=this.handles.push(e)-1,this.objToHandle.set(e,t)),t},e.prototype._lookupHelper=function(e,t){var n=this.builtInHelpers[e]
+if(void 0!==n)return n
+var r=t.owner,i=t.moduleName,o=e,s=qe(i,void 0),a=r.factoryFor("helper:"+o,s)||r.factoryFor("helper:"+o)
+return b(a)?function(e,t){var n=a.create()
+return C(n)?new ht(n.compute,t.capture()):(e.newDestroyable(n),dt.create(n,t.capture()))}:null},e.prototype._lookupPartial=function(e,t){var n=(0,h.lookupPartial)(e,t.owner),r=new o.PartialDefinition(e,(0,h.lookupPartial)(e,t.owner))
+if(n)return r
+throw new Error(e+" is not a partial")},e.prototype._lookupModifier=function(e){var t=this.builtInModifiers[e]
+return void 0!==t?t:null},e.prototype._parseNameForNamespace=function(e){var t=e,n=void 0,r=e.indexOf("::")
+return-1!==r&&(t=e.slice(r+2),n=e.slice(0,r)),{name:t,namespace:n}},e.prototype._lookupComponentDefinition=function(e,t){var n,r=e,i=(0,h.lookupComponent)(t.owner,r,qe(t.moduleName,void 0)),o=i.layout,s=i.component,a=void 0===s?o:s
+if(void 0===a)return null
+var u=this.componentDefinitionCache.get(a)
+if(void 0!==u)return u
+if(o&&!s&&d.ENV._TEMPLATE_ONLY_GLIMMER_COMPONENTS)return n=new Rn(o),this.componentDefinitionCache.set(a,n),n
+var l=(0,c._instrumentStart)("render.getComponentDefinition",Ue,r),p=o||s?new gn(r,void 0,s||t.owner.factoryFor((0,g.privatize)(Ge)),null,o):null
+return l(),this.componentDefinitionCache.set(a,p),p},e}(),mr={create:function(){return(new gr).compiler}},vr=y({id:"o98Iahwz",block:'{"symbols":["&default"],"statements":[[13,1]],"hasEval":false}',meta:{moduleName:"packages/ember-glimmer/lib/templates/component.hbs"}}),yr=y({id:"cNysaqQS",block:'{"symbols":[],"statements":[[1,[20,"outlet"],false]],"hasEval":false}',meta:{moduleName:"packages/ember-glimmer/lib/templates/outlet.hbs"}}),br="-top-level",Cr="main",Ar=function(){function e(e,t,n,r){this._environment=e,this.renderer=t,this.owner=n,this.template=r
+var i=this.ref=new Zn({outlets:{main:void 0},render:{owner:n,into:void 0,outlet:Cr,name:br,controller:void 0,template:r}})
+this.state={ref:i,name:br,outlet:Cr,template:r,controller:void 0}}return e.extend=function(t){return function(e){function n(){return(0,i.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,i.inherits)(n,e),n.create=function(n){return n?e.create.call(this,(0,s.assign)({},t,n)):e.create.call(this,t)},n}(e)},e.reopenClass=function(e){(0,s.assign)(this,e)},e.create=function(t){var n=t._environment,r=t.renderer,i=t.template
+return new e(n,r,t[s.OWNER],i)},e.prototype.appendTo=function(e){var t=this._environment||d.environment,n=void 0
+n=t.hasDOM&&"string"==typeof e?document.querySelector(e):e,(0,c.schedule)("render",this.renderer,"appendOutletView",this,n)},e.prototype.rerender=function(){},e.prototype.setOutletState=function(e){this.ref.update(e)},e.prototype.destroy=function(){},e}()
+e.RootTemplate=Ze,e.template=y,e.Checkbox=wt,e.TextField=kt,e.TextArea=jt,e.LinkComponent=St,e.Component=_t,e.ROOT_REF=yt,e.Helper=Je,e.helper=A,e.Environment=Kt,e.SafeString=Ut,e.escapeExpression=function(e){if("string"!=typeof e){if(e&&e.toHTML)return e.toHTML()
+if(null===e||void 0===e)return""
+if(!e)return e+""
+e=""+e}return Vt.test(e)?e.replace(Wt,D):e},e.htmlSafe=z,e.isHTMLSafe=F,e.Renderer=wn,e.InertRenderer=xn,e.InteractiveRenderer=kn,e._resetRenderers=function(){An.length=0},e.renderSettled=ie,e.getTemplate=ue,e.setTemplate=le,e.hasTemplate=ce,e.getTemplates=ae,e.setTemplates=function(e){jn=e},e.setupEngineRegistry=function(e){e.register("view:-outlet",Ar),e.register("template:-outlet",yr),e.injection("view:-outlet","template","template:-outlet"),e.injection("service:-dom-changes","document","service:-document"),e.injection("service:-dom-tree-construction","document","service:-document"),e.register((0,g.privatize)(We),vr),e.register("service:-glimmer-environment",Kt),e.register((0,g.privatize)(Ke),mr),e.injection("template","compiler",(0,g.privatize)(Ke)),e.optionsForType("helper",{instantiate:!1}),e.register("helper:loc",En),e.register("component:-text-field",kt),e.register("component:-text-area",jt),e.register("component:-checkbox",wt),e.register("component:link-to",St),d.ENV._TEMPLATE_ONLY_GLIMMER_COMPONENTS||e.register((0,g.privatize)(Ge),_t)},e.setupApplicationRegistry=function(e){e.injection("service:-glimmer-environment","appendOperations","service:-dom-tree-construction"),e.injection("renderer","env","service:-glimmer-environment"),e.register("service:-dom-builder",{create:function(e){switch(e.bootOptions._renderMode){case"serialize":return r.serializeBuilder.bind(null)
+case"rehydrate":return t.rehydrationBuilder.bind(null)
+default:return t.clientBuilder.bind(null)}}}),e.injection("service:-dom-builder","bootOptions","-environment:main"),e.injection("renderer","builder","service:-dom-builder"),e.register((0,g.privatize)(Ye),Ze),e.injection("renderer","rootTemplate",(0,g.privatize)(Ye)),e.register("renderer:-dom",kn),e.register("renderer:-inert",xn),d.environment.hasDOM&&e.injection("service:-glimmer-environment","updateOperations","service:-dom-changes"),e.register("service:-dom-changes",{create:function(e){var n=e.document
+return new t.DOMChanges(n)}}),e.register("service:-dom-tree-construction",{create:function(e){var n=e.document
+return new(d.environment.hasDOM?t.DOMTreeConstruction:r.NodeDOMTreeConstruction)(n)}})},e._registerMacros=function(e){cr.push(e)},e._experimentalMacros=cr,e.AbstractComponentManager=Qt
+e.UpdatableReference=ct,e.INVOKE=tt,e.iterableFor=j,e.DebugStack=void 0,e.OutletView=Ar,e.CustomComponentManager=lr,e.COMPONENT_MANAGER=dr,e.componentManager=He}),e("ember-metal",["exports","ember-environment","ember-debug","ember-babel","container","backburner","@glimmer/reference","ember-utils","ember/version"],function(e,t,n,r,i,o,s,a,u){"use strict"
+function c(e,t,n){var r,i=t[n+1],o=t[n+2]
+for(r=0;r<e.length;r+=3)if(e[r]===i&&e[r+1]===o)return
+e.push(i,o,t[n+3])}function l(e,n,r,i,o){t.ENV._ENABLE_DID_INIT_ATTRS_SUPPORT,i||"function"!=typeof r||(i=r,r=null),ce(e).addToListeners(n,r,i,o)}function h(e,t,n,r){r||"function"!=typeof n||(r=n,n=null),ce(e).removeFromListeners(t,n,r)}function d(e,t,n,r,i){var o,s,a,u,c
+if(void 0===r&&(o=void 0===i?ue(e):i,r="object"==typeof o&&null!==o&&o.matchingListeners(t)),void 0===r||0===r.length)return!1
+for(s=r.length-3;s>=0;s-=3)a=r[s],u=r[s+1],c=r[s+2],u&&(c&&h(e,t,a,u),a||(a=e),"string"==typeof u&&(u=a[u]),u.apply(a,n))
+return!0}function p(){return vt}function f(){return bt}function g(){return At}function m(){return It.run.apply(It,arguments)}function v(){return It.join.apply(It,arguments)}function y(){return s.DirtyableTag.create()}function b(e,t,n){if("object"!=typeof e||null===e)return s.CONSTANT_TAG
+var r=void 0===n?ce(e):n
+if(a.isProxy(e))return C(e,r)
+var i=r.writableTags(),o=i[t]
+return o||(i[t]=y())}function C(e,t){var n
+return"object"==typeof e&&null!==e?(n=void 0===t?ce(e):t,n.writableTag(y)):s.CONSTANT_TAG}function A(e,t,n){var r=n.readableTag()
+void 0!==r&&(a.isProxy(e)?r.inner.first.inner.dirty():r.inner.dirty())
+var i=n.readableTags(),o=void 0!==i?i[t]:void 0
+void 0!==o&&kt(o),void 0===r&&void 0===o||_()}function _(){xt()&&It.ensureInstance()}function I(e,t,n){var r=void 0===n?ce(e):n,i=r.peekWatching(t)||0
+r.writeWatching(t,i+1),0===i&&r.writableChains(re).add(t)}function w(e,t,n){var r=void 0===n?ue(e):n
+if(void 0!==r){var i=r.peekWatching(t)
+i>0&&(r.writeWatching(t,i-1),1===i&&r.writableChains(re).remove(t))}}function x(e,t,n){de(t)?I(e,t,n):U(e,t,n)}function k(e,t){var n=ue(e)
+return void 0!==n&&n.peekWatching(t)||0}function j(e,t,n){de(t)?w(e,t,n):q(e,t,n)}function E(e){return e+":change"}function S(e,t,n,r){l(e,E(t),n,r),x(e,t)}function T(e,t,n,r){j(e,t),h(e,E(t),n,r)}function P(e,t,n){var r=void 0===n?ue(e):n,i=void 0!==r
+if(!i||r.isInitialized(e)){var o=le(e,t,r)
+if(void 0!==o&&"function"==typeof o.didChange&&o.didChange(e,t),i&&r.peekWatching(t)>0&&(O(e,t,r),N(e,t,r),F(e,t,r)),Et in e&&e[Et](t),i){if(r.isSourceDestroying())return
+A(e,t,r)}}}function O(e,t,n){if(!n.isSourceDestroying()&&n.hasDeps(t)){var r=Ot
+r&&(Ot=!1),R(P,e,t,Pt,n),r&&(Pt.clear(),Ot=!0)}}function R(e,t,n,r,i){var o=r.get(t)
+if(void 0===o&&(o=new Set,r.set(t,o)),!o.has(n)){var s=void 0
+i.forEachInDeps(n,function(n,r){r&&(void 0!==(s=le(t,n,i))&&s._suspended===t||e(t,n,i))})}}function N(e,t,n){var r=n.readableChainWatchers()
+void 0!==r&&r.notify(t,!0,P)}function M(e,t,n){var r=n.readableChainWatchers()
+void 0!==r&&r.revalidate(t)}function L(){Tt++}function D(){--Tt<=0&&St.flush()}function z(e){L()
+try{e()}finally{D()}}function F(e,t,n){if(!n.isSourceDestroying()){var r=E(t)
+Tt>0?St.add(e,t,r):d(e,r,[e,t])}}function B(e,t){return function(){return t.get(this,e)}}function H(e,t,n,r,i){void 0===i&&(i=ce(e))
+var o=i.peekWatching(t),s=void 0!==o&&o>0,a=le(e,t,i),u=void 0!==a
+u&&(a.teardown(e,t,i),i.removeDescriptors(t))
+var c=!0
+e===Array.prototype&&(c=!1)
+var l=void 0
+return n instanceof Rt?(l=n,Object.defineProperty(e,t,{configurable:!0,enumerable:c,get:B(t,l)}),i.writeDescriptors(t,l),"function"==typeof n.setup&&n.setup(e,t)):void 0===n||null===n?(l=r,u?Object.defineProperty(e,t,{configurable:!0,enumerable:c,writable:!0,value:l}):!1===c?Object.defineProperty(e,t,{configurable:!0,enumerable:c,writable:!0,value:l}):e[t]=r):(l=n,Object.defineProperty(e,t,n)),s&&M(e,t,i),"function"==typeof e.didDefineProperty&&e.didDefineProperty(e,t,l),this}function U(e,t,n){var r,i=void 0===n?ce(e):n,o=i.peekWatching(t)||0
+i.writeWatching(t,o+1),0===o&&(r=le(e,t,i),void 0!==r&&r.willWatch&&r.willWatch(e,t,i),"function"==typeof e.willWatchProperty&&e.willWatchProperty(t))}function q(e,t,n){var r,i,o=void 0===n?ue(e):n
+if(void 0!==o&&!o.isSourceDestroyed()){var s=o.peekWatching(t)
+1===s?(o.writeWatching(t,0),r=le(e,t,o),i=void 0!==r,i&&r.didUnwatch&&r.didUnwatch(e,t,o),"function"==typeof e.didUnwatchProperty&&e.didUnwatchProperty(t)):s>1&&o.writeWatching(t,s-1)}}function V(e,t){return Array.isArray(e)?e[t]:e.objectAt(t)}function W(e,t,n,r){var i,o
+if(Y(e,t,n,r.length),r.length<=Mt)e.splice.apply(e,[t,n].concat(r))
+else for(e.splice(t,n),i=0;i<r.length;i+=Mt)o=r.slice(i,i+Mt),e.splice.apply(e,[t+i,0].concat(o))
+K(e,t,n,r.length)}function G(e,t,n,r,i){var o=n&&n.willChange||"arrayWillChange",s=n&&n.didChange||"arrayDidChange",a=me(e,"hasArrayObservers")
+return r(e,"@array:before",t,o),r(e,"@array:change",t,s),a===i&&P(e,"hasArrayObservers"),e}function Y(e,t,n,r){return void 0===t?(t=0,n=r=-1):(void 0===n&&(n=-1),void 0===r&&(r=-1)),Z(e,t,n,r),d(e,"@array:before",[e,t,n,r]),e}function K(e,t,n,r){void 0===t?(t=0,n=r=-1):(void 0===n&&(n=-1),void 0===r&&(r=-1))
+var i,o,s,a,u,c=ue(e);(r<0||n<0||r-n!=0)&&P(e,"length",c),P(e,"[]",c),X(e,t,n,r),d(e,"@array:change",[e,t,n,r])
+var l=Se(e)
+return void 0!==l&&(i=me(e,"length"),o=-1===r?0:r,s=-1===n?0:n,a=i-(o-s),u=t<0?a+t:t,l.has("firstObject")&&0===u&&P(e,"firstObject",c),l.has("lastObject")&&a-1<u+s&&P(e,"lastObject",c)),e}function Q(e){var t=Lt.get(e)
+return void 0===t&&(t=new Dt(e),Lt.set(e,t)),t}function Z(e,t,n,r){var i=Lt.get(e)
+void 0!==i&&i.arrayWillChange(e,t,n,r)}function X(e,t,n,r){var i=Lt.get(e)
+void 0!==i&&i.arrayDidChange(e,t,n,r)}function J(e,t,n,r,i){for(var o;--i>=r;)(o=V(e,i))&&S(o,t,n,"contentKeyDidChange")}function $(e,t,n,r,i){for(var o;--i>=r;)(o=V(e,i))&&T(o,t,n,"contentKeyDidChange")}function ee(e){return"object"==typeof e&&null!==e}function te(e,t,n){var r=le(e,t,n)
+return!(void 0!==r&&!1===r._volatile)}function ne(){return new zt}function re(e){return new Ft(null,null,e)}function ie(e,t,n){var r=ce(e)
+r.writableChainWatchers(ne).add(t,n),U(e,t,r)}function oe(e,t,n,r){if(ee(e)){var i=void 0===r?ue(e):r
+void 0!==i&&void 0!==i.readableChainWatchers()&&(i=ce(e),i.readableChainWatchers().remove(t,n),q(e,t,i))}}function se(e,t){if(ee(e)){var n=ue(e)
+if(void 0===n||n.proto!==e)return"@each"===t?Q(e):te(e,t,n)?me(e,t):Ee(e,t)}}function ae(e,t){Wt.set(e,t)}function ue(e){for(var t=e,n=void 0;void 0!==t&&null!==t;){if(void 0!==(n=Wt.get(t)))return n
+t=Vt(t)}}function ce(e){var t=ue(e),n=void 0
+if(void 0!==t){if(t.source===e)return t
+n=t}var r=new Ut(e,n)
+return ae(e,r),r}function le(e,t,n){var r=void 0===n?ue(e):n
+if(void 0!==r)return r.peekDescriptors(t)}function he(e){return void 0!==e&&null!==e&&"object"==typeof e&&!0===e.isDescriptor}function de(e){return"string"==typeof e&&-1!==Yt.get(e)}function pe(e,t,n){return"value"in n?ge(t,n):fe(t,n)}function fe(e,t){function n(){var t=Qt,n=Qt=new Kt,r=i.call(this)
+Qt=t
+var o=n.combine()
+return Qt&&Qt.add(o),(void 0)(b(this,e),o),r}function r(){kt(b(this,e)),o.apply(this,arguments)}var i=t.get,o=t.set
+return{enumerable:!0,configurable:!1,get:i&&n,set:o&&r}}function ge(e,t){var n=Symbol(e)
+return{enumerable:!0,configurable:!0,get:function(){return Qt&&Qt.add(b(this,e)),n in this||(this[n]=t.value),this[n]},set:function(t){C(this).inner.dirty(),kt(b(this,e)),this[n]=t,Zt()}}}function me(e,t){var n=typeof e,r="object"===n,i=void 0,o=void 0
+if(r||"function"===n){if(void 0!==(i=le(e,t)))return i.get(e,t)
+if(o=e[t],he(o))return Object.defineProperty(e,t,{configurable:!0,enumerable:!1===o.enumerable,get:function(){return o.get(this,t)}}),ce(e).writeDescriptors(t,o),"function"==typeof o.setup&&o.setup(e,t),o.get(e,t)}else o=e[t]
+if(void 0===o){if(de(t))return ve(e,t)
+if(r&&!(t in e)&&"function"==typeof e.unknownProperty)return e.unknownProperty(t)}return o}function ve(e,t){var n,r=e,i=t.split(".")
+for(n=0;n<i.length;n++){if(!ye(r))return
+if((r=me(r,i[n]))&&r.isDestroyed)return}return r}function ye(e){return void 0!==e&&null!==e&&Xt[typeof e]}function be(e,t,n,r){if(!e.isDestroyed){if(de(t))return Ce(e,t,n,r)
+var i,o=le(e,t)
+if(void 0!==o)return o.set(e,t,n),n
+var s=void 0
+return s=e[t],he(s)?(Object.defineProperty(e,t,{configurable:!0,enumerable:!1===s.enumerable,get:function(){return s.get(this,t)}}),ce(e).writeDescriptors(t,s),"function"==typeof s.setup&&s.setup(e,t),s.set(e,t,n),n):(void 0!==s||"object"!=typeof e||t in e||"function"!=typeof e.setUnknownProperty?(i=ue(e),e[t]=n,s!==n&&P(e,t,i)):e.setUnknownProperty(t,n),n)}}function Ce(e,t,r,i){var o=t.split("."),s=o.pop(),a=o.join("."),u=ve(e,a)
+if(u)return be(u,s,r)
+if(!i)throw new n.Error('Property set failed: object in path "'+a+'" could not be found or was destroyed.')}function Ae(e,t){var n=e.indexOf("{")
+n<0?t(e.replace($t,".[]")):_e("",e,n,t)}function _e(e,t,n,r){var i=t.indexOf("}"),o=0,s=void 0,a=void 0,u=t.substring(n+1,i).split(","),c=t.substring(i+1)
+for(e+=t.substring(0,n),a=u.length;o<a;)s=c.indexOf("{"),s<0?r((e+u[o++]+c).replace($t,".[]")):_e(e+u[o++],c,s,r)}function Ie(e,t,n,r){var i,o,s=e._dependentKeys
+if(null!==s&&void 0!==s)for(i=0;i<s.length;i++)o=s[i],r.writeDeps(o,n,(r.peekDeps(o,n)||0)+1),x(t,o,r)}function we(e,t,n,r){var i,o,s=e._dependentKeys
+if(null!==s&&void 0!==s)for(i=0;i<s.length;i++)o=s[i],r.writeDeps(o,n,(r.peekDeps(o,n)||0)-1),j(t,o,r)}function xe(){}function ke(){for(e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n]
+var e,t,n,r=t.pop(),i=new en(r)
+return t.length>0&&i.property.apply(i,t),i}function je(e){var t=nn.get(e)
+return void 0===t&&(t=new Map,nn.set(e,t)),t}function Ee(e,t){var n=nn.get(e)
+if(void 0!==n)return n.get(t)}function Se(e){return nn.get(e)}function Te(e,t){throw new n.Error("Cannot set read-only property '"+t+"' on object: "+a.inspect(e))}function Pe(e,t,n){return H(e,t,null),be(e,t,n)}function Oe(e){var t,n=[],r=void 0
+for(t=0;t<sn.length;t++)r=sn[t],r.regex.test(e)&&n.push(r.object)
+return an[e]=n,n}function Re(e,t,n,r){var i=void 0
+try{i=e.call(r)}catch(e){n.exception=e,i=n}finally{t()}return i}function Ne(){}function Me(e,n,r){if(0===sn.length)return Ne
+var i=an[e]
+if(i||(i=Oe(e)),0===i.length)return Ne
+var o=n(r),s=t.ENV.STRUCTURED_PROFILE,a=void 0
+s&&(a=e+": "+o.object,console.time(a))
+var u=new Array(i.length),c=void 0,l=void 0,h=un()
+for(c=0;c<i.length;c++)l=i[c],u[c]=l.before(e,h,o)
+return function(){var t=void 0,n=void 0,r=un()
+for(t=0;t<i.length;t++)n=i[t],"function"==typeof n.after&&n.after(e,r,o,u[t])
+s&&console.timeEnd(a)}}function Le(e){return null===e||void 0===e}function De(e){var t,n,r=Le(e)
+if(r)return r
+if("number"==typeof e.size)return!e.size
+var i=typeof e
+return"object"===i&&"number"==typeof(t=me(e,"size"))?!t:"number"==typeof e.length&&"function"!==i?!e.length:"object"===i&&"number"==typeof(n=me(e,"length"))&&!n}function ze(e){return De(e)||"string"==typeof e&&!1===/\S/.test(e)}function Fe(e){var t=Object.create(null)
+for(var n in e)t[n]=e[n]
+return t}function Be(e,t){var n=e._keys.copy(),r=Fe(e._values)
+return t._keys=n,t._values=r,t.size=e.size,t}function He(e){var n=a.getName(e)
+delete bn[n],yn.splice(yn.indexOf(e),1),n in t.context.lookup&&e===t.context.lookup[n]&&(t.context.lookup[n]=void 0)}function Ue(){if(mn.unprocessedNamespaces){var e,n,r,i=t.context.lookup,o=Object.keys(i)
+for(e=0;e<o.length;e++)n=o[e],Ze(n.charCodeAt(0))&&(r=Xe(i,n))&&a.setName(r,n)}}function qe(e){return gn||We(),bn[e]}function Ve(e){Qe([e.toString()],e,new Set)}function We(){var e,t,n=mn.unprocessedNamespaces
+if(n&&(Ue(),mn.unprocessedNamespaces=!1),n||vn){for(e=yn,t=0;t<e.length;t++)Ve(e[t])
+vn=!1}}function Ge(){var e=a.getName(this)
+return void 0!==e?e:(e=Je(this),a.setName(this,e),e)}function Ye(){return gn}function Ke(){vn=!0}function Qe(e,t,n){var r,i=e.length,o=e.join(".")
+bn[o]=t,a.setName(t,o)
+for(var s in t)if(fn.call(t,s))if(r=t[s],e[i]=s,r&&r.toString===Ge&&void 0===a.getName(r))a.setName(r,e.join("."))
+else if(r&&r.isNamespace){if(n.has(r))continue
+n.add(r),Qe(e,r,n)}e.length=i}function Ze(e){return e>=65&&e<=90}function Xe(e,t){var n
+try{return(null!==(n=e[t])&&"object"==typeof n||"function"==typeof n)&&n.isNamespace&&n}catch(e){}}function Je(e){var t,n=void 0
+if(!gn){if(We(),void 0!==(n=a.getName(e)))return n
+t=e
+do{if((t=Object.getPrototypeOf(t))===Function.prototype||t===Object.prototype)break
+if(void 0!==(n=a.getName(e))){n="(subclass of "+n+")"
+break}}while(void 0===n)}return n||"(unknown)"}function $e(e){return"function"==typeof e&&!1!==e.isMethod&&e!==Boolean&&e!==Object&&e!==Number&&e!==Array&&e!==Date&&e!==String}function et(e,t){return t instanceof _n?e.hasMixin(t)?An:(e.addMixin(t),t.properties):t}function tt(e,t,n,r){var i=n[e]||r[e]
+return t[e]&&(i=i?Cn.call(i,t[e]):t[e]),i}function nt(e,t,n,r,i,o){var s=void 0
+return void 0===r[t]&&(s=i[t]),s||(s=le(o,t,e)),void 0!==s&&s instanceof en?(n=Object.create(n),n._getter=a.wrap(n._getter,s._getter),s._setter&&(n._setter?n._setter=a.wrap(n._setter,s._setter):n._setter=s._setter),n):n}function rt(e,t,n,r,i){if(void 0!==i[t])return n
+var o=r[t]
+return void 0===o&&void 0===le(e,t)&&(o=e[t]),"function"==typeof o?a.wrap(n,o):n}function it(e,t,n,r){var i=r[t]||e[t]
+return a.makeArray(i).concat(a.makeArray(n))}function ot(e,t,n,r){var i,o=r[t]||e[t]
+if(!o)return n
+var s=a.assign({},o),u=!1
+for(var c in n)n.hasOwnProperty(c)&&(i=n[c],$e(i)?(u=!0,s[c]=rt(e,c,i,o,{})):s[c]=i)
+return u&&(s._super=a.ROOT),s}function st(e,t,n,r,i,o,s,a){n instanceof Rt?(n._getter&&(n=nt(r,t,n,o,i,e)),i[t]=n,o[t]=void 0):(s&&s.indexOf(t)>=0||"concatenatedProperties"===t||"mergedProperties"===t?n=it(e,t,n,o):a&&a.indexOf(t)>-1?n=ot(e,t,n,o):$e(n)&&(n=rt(e,t,n,o,i)),i[t]=void 0,o[t]=n)}function at(e,t,n,r,i,o){function s(e){delete n[e],delete r[e]}var a,u=void 0,c=void 0,l=void 0,h=void 0,d=void 0
+for(a=0;a<e.length;a++)if(u=e[a],(c=et(t,u))!==An)if(c){i.willMergeMixin&&i.willMergeMixin(c),h=tt("concatenatedProperties",c,r,i),d=tt("mergedProperties",c,r,i)
+for(l in c)c.hasOwnProperty(l)&&(o.push(l),st(i,l,c[l],t,n,r,h,d))
+c.hasOwnProperty("toString")&&(i.toString=c.toString)}else u.mixins&&(at(u.mixins,t,n,r,i,o),u._without&&u._without.forEach(s))}function ut(e,t,n,r){var i=t.methodName,o=void 0,s=void 0
+return n[i]||r[i]?(o=r[i],t=n[i]):void 0!==(s=le(e,i))?(t=s,o=void 0):(t=void 0,o=e[i]),{desc:t,value:o}}function ct(e,t,n,r){var i
+if(n)for(i=0;i<n.length;i++)r(e,n[i],null,t)}function lt(e,t,n,r){"function"==typeof n&&(ct(e,t,n.__ember_observes__,T),ct(e,t,n.__ember_listens__,h)),"function"==typeof r&&(ct(e,t,r.__ember_observes__,S),ct(e,t,r.__ember_listens__,l))}function ht(e,n,r){var i,o,s={},u={},c=ce(e),l=[],h=void 0,d=void 0,p=void 0
+for(e._super=a.ROOT,at(n,c,s,u,e,l),i=0;i<l.length;i++)if("constructor"!==(h=l[i])&&u.hasOwnProperty(h)){for(p=s[h],d=u[h];p&&p instanceof In;)o=ut(e,p,s,u),p=o.desc,d=o.value
+void 0===p&&void 0===d||(void 0!==le(e,h)?lt(e,h,null,d):lt(e,h,e[h],d),t.ENV._ENABLE_BINDING_SUPPORT&&"function"==typeof _n.detectBinding&&_n.detectBinding(h)&&c.writeBindings(h,d),H(e,h,p,d,c))}return t.ENV._ENABLE_BINDING_SUPPORT&&!r&&"function"==typeof _n.finishProtype&&_n.finishPartial(e,c),e}function dt(e){var t,n,r=e&&e.length,i=void 0
+if(r>0)for(i=new Array(r),t=0;t<r;t++)n=e[t],i[t]=n instanceof _n?n:new _n(void 0,n)
+return i}function pt(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:new Set
+if(n.has(e))return!1
+if(n.add(e),e===t)return!0
+var r=e.mixins
+return!!r&&r.some(function(e){return pt(e,t,n)})}function ft(e){var t,n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Set,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:new Set
+if(!i.has(e)){if(i.add(e),e.properties)for(t=Object.keys(e.properties),n=0;n<t.length;n++)r.add(t[n])
+else e.mixins&&e.mixins.forEach(function(e){return ft(e,r,i)})
+return r}}function gt(e){var t=le(this,e),n=a.getOwner(this)||this.container,r=t.type+":"+(t.name||e)
+return n.lookup(r,{source:t.source,namespace:t.namespace})}o=o&&o.hasOwnProperty("default")?o.default:o,u=u&&u.hasOwnProperty("default")?u.default:u
+var mt={addToListeners:function(e,t,n,r){void 0===this._listeners&&(this._listeners=[]),this._listeners.push(e,t,n,r)},_finalizeListeners:function(){if(!this._listenersFinalized){void 0===this._listeners&&(this._listeners=[])
+for(var e,t=this.parent;void 0!==t&&(e=t._listeners,void 0!==e&&(this._listeners=this._listeners.concat(e)),!t._listenersFinalized);)t=t.parent
+this._listenersFinalized=!0}},removeFromListeners:function(e,t,n){for(var r,i,o=this;void 0!==o;){if(void 0!==(r=o._listeners))for(i=r.length-4;i>=0;i-=4)if(r[i]===e&&(!n||r[i+1]===t&&r[i+2]===n)){if(o!==this)return this._finalizeListeners(),this.removeFromListeners(e,t,n)
+r.splice(i,4)}if(o._listenersFinalized)break
+o=o.parent}},matchingListeners:function(e){for(var t,n,r=this,i=void 0;void 0!==r;){if(void 0!==(t=r._listeners))for(n=0;n<t.length;n+=4)t[n]===e&&(i=i||[],c(i,t,n))
+if(r._listenersFinalized)break
+r=r.parent}return i}},vt=void 0,yt={get onerror(){return vt}},bt=void 0,Ct=r.taggedTemplateLiteralLoose(["rsvpAfter"],["rsvpAfter"]),At=null,_t=["sync","actions","routerTransitions","render","afterRender","destroy",i.privatize(Ct)],It=new o(_t,{sync:{before:L,after:D},defaultQueue:"actions",onBegin:function(e){At=e},onEnd:function(e,t){At=t},onErrorTarget:yt,onErrorMethod:"onerror"}),wt=m.bind(null),xt=function(){return!1},kt=void 0
+kt=function(e){e.inner.dirty()}
+var jt=function(){function e(){this.added=new Map,this.queue=[]}return e.prototype.add=function(e,t,n){var r=this.added.get(e)
+void 0===r&&(r=new Set,this.added.set(e,r)),r.has(t)||(this.queue.push(e,t,n),r.add(t))},e.prototype.flush=function(){var e,t,n,r,i=this.queue
+for(this.added.clear(),this.queue=[],e=0;e<i.length;e+=3)t=i[e],n=i[e+1],r=i[e+2],t.isDestroying||t.isDestroyed||d(t,r,[t,n])},e}()
+e.runInTransaction=void 0,e.runInTransaction=function(e,t){return e[t](),!1}
+var Et=a.symbol("PROPERTY_DID_CHANGE"),St=new jt,Tt=0,Pt=new Map,Ot=!0,Rt=function(){this.isDescriptor=!0,this.enumerable=!0},Nt=Object.freeze([]),Mt=6e4,Lt=new WeakMap,Dt=function(){function e(e){this._content=e,this._keys=void 0,ce(this)}return e.prototype.arrayWillChange=function(e,t,n){var r=this._keys,i=n>0?t+n:-1
+if(i>0)for(var o in r)$(e,o,this,t,i)},e.prototype.arrayDidChange=function(e,t,n,r){var i=this._keys,o=r>0?t+r:-1,s=ue(this)
+for(var a in i)o>0&&J(e,a,this,t,o),P(this,a,s)},e.prototype.willWatchProperty=function(e){this.beginObservingContentKey(e)},e.prototype.didUnwatchProperty=function(e){this.stopObservingContentKey(e)},e.prototype.beginObservingContentKey=function(e){var t,n,r=this._keys
+void 0===r&&(r=this._keys=Object.create(null)),r[e]?r[e]++:(r[e]=1,t=this._content,n=me(t,"length"),J(t,e,this,0,n))},e.prototype.stopObservingContentKey=function(e){var t,n,r=this._keys
+void 0!==r&&r[e]>0&&--r[e]<=0&&(t=this._content,n=me(t,"length"),$(t,e,this,0,n))},e.prototype.contentKeyDidChange=function(e,t){P(this,t)},e}(),zt=function(){function e(){this.chains=Object.create(null)}return e.prototype.add=function(e,t){var n=this.chains[e]
+void 0===n?this.chains[e]=[t]:n.push(t)},e.prototype.remove=function(e,t){var n,r=this.chains[e]
+if(void 0!==r)for(n=0;n<r.length;n++)if(r[n]===t){r.splice(n,1)
+break}},e.prototype.has=function(e,t){var n,r=this.chains[e]
+if(void 0!==r)for(n=0;n<r.length;n++)if(r[n]===t)return!0
+return!1},e.prototype.revalidateAll=function(){for(var e in this.chains)this.notify(e,!0,void 0)},e.prototype.revalidate=function(e){this.notify(e,!0,void 0)},e.prototype.notify=function(e,t,n){var r,i,o,s,a=this.chains[e]
+if(void 0!==a&&0!==a.length){var u=void 0
+for(n&&(u=[]),r=0;r<a.length;r++)a[r].notify(t,u)
+if(void 0!==n)for(i=0;i<u.length;i+=2)o=u[i],s=u[i+1],n(o,s)}},e}(),Ft=function(){function e(e,t,n){this._parent=e,this._key=t,this._chains=void 0,this._object=void 0,this.count=0,this._value=n,this._paths=void 0
+var r,i=this._isWatching=void 0===n
+if(i){if(r=e.value(),!ee(r))return
+this._object=r,ie(this._object,this._key,this)}}return e.prototype.value=function(){var e
+return void 0===this._value&&this._isWatching&&(e=this._parent.value(),this._value=se(e,this._key)),this._value},e.prototype.destroy=function(){this._isWatching&&(oe(this._object,this._key,this),this._isWatching=!1)},e.prototype.copy=function(e){var t,n=re(e),r=this._paths
+if(void 0!==r){t=void 0
+for(t in r)r[t]>0&&n.add(t)}return n},e.prototype.add=function(e){var t=this._paths||(this._paths={})
+t[e]=(t[e]||0)+1
+var n=e.split(".")
+this.chain(n.shift(),n)},e.prototype.remove=function(e){var t=this._paths
+if(void 0!==t){t[e]>0&&t[e]--
+var n=e.split(".")
+this.unchain(n.shift(),n)}},e.prototype.chain=function(t,n){var r=this._chains,i=void 0
+void 0===r?r=this._chains=Object.create(null):i=r[t],void 0===i&&(i=r[t]=new e(this,t,void 0)),i.count++,n.length>0&&i.chain(n.shift(),n)},e.prototype.unchain=function(e,t){var n=this._chains,r=n[e]
+t.length>0&&r.unchain(t.shift(),t),--r.count<=0&&(n[r._key]=void 0,r.destroy())},e.prototype.notify=function(e,t){e&&this._isWatching&&(n=this._parent.value(),n!==this._object&&(oe(this._object,this._key,this),ee(n)?(this._object=n,ie(n,this._key,this)):this._object=void 0),this._value=void 0)
+var n,r,i=this._chains
+if(void 0!==i){r=void 0
+for(var o in i)void 0!==(r=i[o])&&r.notify(e,t)}t&&this._parent&&this._parent.populateAffected(this._key,1,t)},e.prototype.populateAffected=function(e,t,n){this._key&&(e=this._key+"."+e),this._parent?this._parent.populateAffected(e,t+1,n):t>1&&n.push(this.value(),e)},e}(),Bt=a.symbol("undefined"),Ht=[],Ut=function(){function e(e,n){this._descriptors=void 0,this._watching=void 0,this._mixins=void 0,t.ENV._ENABLE_BINDING_SUPPORT&&(this._bindings=void 0),this._deps=void 0,this._chainWatchers=void 0,this._chains=void 0,this._tag=void 0,this._tags=void 0,this._flags=0,this.source=e,this.proto=void 0,this.parent=n,this._listeners=void 0,this._listenersFinalized=!1}return e.prototype.isInitialized=function(e){return this.proto!==e},e.prototype.destroy=function(){if(!this.isMetaDestroyed()){var e,t=void 0,n=void 0,r=void 0,i=this.readableChains()
+if(void 0!==i)for(Ht.push(i);Ht.length>0;){if(i=Ht.pop(),void 0!==(t=i._chains))for(n in t)void 0!==t[n]&&Ht.push(t[n])
+i._isWatching&&void 0!==(r=i._object)&&(e=ue(r))&&!e.isSourceDestroying()&&oe(r,i._key,i,e)}this.setMetaDestroyed()}},e.prototype.isSourceDestroying=function(){return this._hasFlag(2)},e.prototype.setSourceDestroying=function(){this._flags|=2},e.prototype.isSourceDestroyed=function(){return this._hasFlag(4)},e.prototype.setSourceDestroyed=function(){this._flags|=4},e.prototype.isMetaDestroyed=function(){return this._hasFlag(8)},e.prototype.setMetaDestroyed=function(){this._flags|=8},e.prototype._hasFlag=function(e){return(this._flags&e)===e},e.prototype._getOrCreateOwnMap=function(e){return this[e]||(this[e]=Object.create(null))},e.prototype._getOrCreateOwnSet=function(e){return this[e]||(this[e]=new Set)},e.prototype._getInherited=function(e){for(var t,n=this;void 0!==n;){if(void 0!==(t=n[e]))return t
+n=n.parent}},e.prototype._findInherited=function(e,t){for(var n,r,i=this;void 0!==i;){if(void 0!==(n=i[e])&&void 0!==(r=n[t]))return r
+i=i.parent}},e.prototype._hasInInheritedSet=function(e,t){for(var n,r=this;void 0!==r;){if(void 0!==(n=r[e])&&n.has(t))return!0
+r=r.parent}return!1},e.prototype.writeDeps=function(e,t,n){var r=this._getOrCreateOwnMap("_deps"),i=r[e]
+void 0===i&&(i=r[e]=Object.create(null)),i[t]=n},e.prototype.peekDeps=function(e,t){for(var n,r,i,o=this;void 0!==o;){if(void 0!==(n=o._deps)&&void 0!==(r=n[e])&&void 0!==(i=r[t]))return i
+o=o.parent}},e.prototype.hasDeps=function(e){for(var t,n=this;void 0!==n;){if(void 0!==(t=n._deps)&&void 0!==t[e])return!0
+n=n.parent}return!1},e.prototype.forEachInDeps=function(e,t){return this._forEachIn("_deps",e,t)},e.prototype._forEachIn=function(e,t,n){for(var r,i,o,s=this,a=void 0,u=void 0;void 0!==s;){if(void 0!==(r=s[e])&&void 0!==(i=r[t]))for(var c in i)a=void 0===a?new Set:a,a.has(c)||(a.add(c),u=u||[],u.push(c,i[c]))
+s=s.parent}if(void 0!==u)for(o=0;o<u.length;o+=2)n(u[o],u[o+1])},e.prototype.writableTags=function(){return this._getOrCreateOwnMap("_tags")},e.prototype.readableTags=function(){return this._tags},e.prototype.writableTag=function(e){var t=this._tag
+return void 0===t&&(t=this._tag=e(this.source)),t},e.prototype.readableTag=function(){return this._tag},e.prototype.writableChainWatchers=function(e){var t=this._chainWatchers
+return void 0===t&&(t=this._chainWatchers=e(this.source)),t},e.prototype.readableChainWatchers=function(){return this._chainWatchers},e.prototype.writableChains=function(e){var t=this._chains
+return void 0===t&&(t=void 0===this.parent?e(this.source):this.parent.writableChains(e).copy(this.source),this._chains=t),t},e.prototype.readableChains=function(){return this._getInherited("_chains")},e.prototype.writeWatching=function(e,t){this._getOrCreateOwnMap("_watching")[e]=t},e.prototype.peekWatching=function(e){return this._findInherited("_watching",e)},e.prototype.addMixin=function(e){this._getOrCreateOwnSet("_mixins").add(e)},e.prototype.hasMixin=function(e){return this._hasInInheritedSet("_mixins",e)},e.prototype.forEachMixins=function(e){for(var t,n=this,r=void 0;void 0!==n;)t=n._mixins,void 0!==t&&(r=void 0===r?new Set:r,t.forEach(function(t){r.has(t)||(r.add(t),e(t))})),n=n.parent},e.prototype.writeBindings=function(e,t){this._getOrCreateOwnMap("_bindings")[e]=t},e.prototype.peekBindings=function(e){return this._findInherited("_bindings",e)},e.prototype.forEachBindings=function(e){for(var t,n=this,r=void 0;void 0!==n;){if(void 0!==(t=n._bindings))for(var i in t)r=r||Object.create(null),void 0===r[i]&&(r[i]=!0,e(i,t[i]))
+n=n.parent}},e.prototype.clearBindings=function(){this._bindings=void 0},e.prototype.writeDescriptors=function(e,t){this._getOrCreateOwnMap("_descriptors")[e]=t},e.prototype.peekDescriptors=function(e){var t=this._findInherited("_descriptors",e)
+return t===Bt?void 0:t},e.prototype.removeDescriptors=function(e){this.writeDescriptors(e,Bt)},e.prototype.forEachDescriptors=function(e){for(var t,n,r=this,i=void 0;void 0!==r;){if(void 0!==(t=r._descriptors))for(var o in t)i=void 0===i?new Set:i,i.has(o)||(i.add(o),(n=t[o])!==Bt&&e(o,n))
+r=r.parent}},e}()
+for(var qt in mt)Ut.prototype[qt]=mt[qt]
+var Vt=Object.getPrototypeOf,Wt=new WeakMap,Gt=function(){function e(e,t,n,r){this.size=0,this.misses=0,this.hits=0,this.limit=e,this.func=t,this.key=n,this.store=r||new Map}return e.prototype.get=function(e){var t=void 0===this.key?e:this.key(e),n=this.store.get(t)
+return void 0===n?(this.misses++,n=this._set(t,this.func(e))):n===Bt?(this.hits++,n=void 0):this.hits++,n},e.prototype.set=function(e,t){var n=void 0===this.key?e:this.key(e)
+return this._set(n,t)},e.prototype._set=function(e,t){return this.limit>this.size&&(this.size++,void 0===t?this.store.set(e,Bt):this.store.set(e,t)),t},e.prototype.purge=function(){this.store.clear(),this.size=0,this.hits=0,this.misses=0},e}(),Yt=new Gt(1e3,function(e){return e.indexOf(".")}),Kt=function(){function e(){this.tags=new Set,this.last=null}return e.prototype.add=function(e){this.tags.add(e),this.last=e},e.prototype.combine=function(){var e
+return 0===this.tags.size?s.CONSTANT_TAG:1===this.tags.size?this.last:(e=[],this.tags.forEach(function(t){return e.push(t)}),s.combine(e))},r.createClass(e,[{key:"size",get:function(){return this.tags.size}}]),e}(),Qt=null,Zt=function(){};(function(e){function t(t,n,i){var o=r.possibleConstructorReturn(this,e.call(this,i))
+return o.target=t,o.key=n,o}r.inherits(t,e),t.for=function(e,n){return new t(e,n,"The property '"+n+"' on "+e+" was changed after being rendered. If you want to change a property used in a template after the component has rendered, mark the property as a tracked property with the @tracked decorator.")}})(Error)
+var Xt={object:!0,function:!0,string:!0},Jt=a.symbol("PROXY_CONTENT"),$t=/\.@each$/,en=function(e){function t(t,n){var i=r.possibleConstructorReturn(this,e.call(this)),o="function"==typeof t
+return o?i._getter=t:(i._getter=t.get||xe,i._setter=t.set),i._suspended=void 0,i._meta=void 0,i._volatile=!1,i._dependentKeys=n&&n.dependentKeys,i._readOnly=n&&o&&!0===n.readOnly,i}return r.inherits(t,e),t.prototype.volatile=function(){return this._volatile=!0,this},t.prototype.readOnly=function(){return this._readOnly=!0,this},t.prototype.property=function(){function e(e){n.push(e)}var t,n=[]
+for(t=0;t<arguments.length;t++)Ae(arguments[t],e)
+return this._dependentKeys=n,this},t.prototype.meta=function(e){return 0===arguments.length?this._meta||{}:(this._meta=e,this)},t.prototype.didChange=function(e,t){if(!this._volatile&&this._suspended!==e){var n=ue(e)
+if(void 0!==n&&n.source===e){var r=Se(e)
+void 0!==r&&r.delete(t)&&we(this,e,t,n)}}},t.prototype.get=function(e,t){if(this._volatile)return this._getter.call(e,t)
+var n=je(e)
+if(n.has(t))return n.get(t)
+var r=this._getter.call(e,t)
+n.set(t,r)
+var i=ce(e),o=i.readableChainWatchers()
+return void 0!==o&&o.revalidate(t),Ie(this,e,t,i),r},t.prototype.set=function(e,t,n){return this._readOnly&&this._throwReadOnlyError(e,t),this._setter?this._volatile?this.volatileSet(e,t,n):this.setWithSuspend(e,t,n):this.clobberSet(e,t,n)},t.prototype._throwReadOnlyError=function(e,t){throw new n.Error('Cannot set read-only property "'+t+'" on object: '+a.inspect(e))},t.prototype.clobberSet=function(e,t,n){return H(e,t,null,Ee(e,t)),be(e,t,n),n},t.prototype.volatileSet=function(e,t,n){return this._setter.call(e,t,n)},t.prototype.setWithSuspend=function(e,t,n){var r=this._suspended
+this._suspended=e
+try{return this._set(e,t,n)}finally{this._suspended=r}},t.prototype._set=function(e,t,n){var r=je(e),i=r.has(t),o=r.get(t),s=this._setter.call(e,t,n,o)
+if(i&&o===s)return s
+var a=ce(e)
+return i||Ie(this,e,t,a),r.set(t,s),P(e,t,a),s},t.prototype.teardown=function(e,t,n){if(!this._volatile){var r=Se(e)
+void 0!==r&&r.delete(t)&&we(this,e,t,n)}},t}(Rt),tn=ke.bind(null),nn=new WeakMap,rn={},on=function(e){function t(t){var n=r.possibleConstructorReturn(this,e.call(this))
+return n.altKey=t,n._dependentKeys=[t],n}return r.inherits(t,e),t.prototype.setup=function(e,t){var n=ce(e)
+n.peekWatching(t)&&Ie(this,e,t,n)},t.prototype.teardown=function(e,t,n){n.peekWatching(t)&&we(this,e,t,n)},t.prototype.willWatch=function(e,t,n){Ie(this,e,t,n)},t.prototype.didUnwatch=function(e,t,n){we(this,e,t,n)},t.prototype.get=function(e,t){var n,r=me(e,this.altKey),i=je(e)
+return i.get(t)!==rn&&(n=ce(e),i.set(t,rn),Ie(this,e,t,n)),r},t.prototype.set=function(e,t,n){return be(e,this.altKey,n)},t.prototype.readOnly=function(){return this.set=Te,this},t.prototype.oneWay=function(){return this.set=Pe,this},t}(Rt)
+on.prototype._meta=void 0,on.prototype.meta=en.prototype.meta
+var sn=[],an={},un=function(){var e="undefined"!=typeof window?window.performance||{}:{},t=e.now||e.mozNow||e.webkitNow||e.msNow||e.oNow
+return t?t.bind(e):function(){return+new Date}}()
+e.flaggedInstrument=void 0,e.flaggedInstrument=function(e,t,n){return n()}
+var cn=function(){function e(){this._registry=[],this._coreLibIndex=0}return e.prototype._getLibraryByName=function(e){var t,n=this._registry,r=n.length
+for(t=0;t<r;t++)if(n[t].name===e)return n[t]},e.prototype.register=function(e,t,n){var r=this._registry.length
+this._getLibraryByName(e)||(n&&(r=this._coreLibIndex++),this._registry.splice(r,0,{name:e,version:t}))},e.prototype.registerCoreLibrary=function(e,t){this.register(e,t,!0)},e.prototype.deRegister=function(e){var t=this._getLibraryByName(e),n=void 0
+t&&(n=this._registry.indexOf(t),this._registry.splice(n,1))},e}(),ln=new cn
+ln.registerCoreLibrary("Ember",u)
+var hn=function(){function e(){this.clear()}return e.create=function(){return new this},e.prototype.clear=function(){this.presenceSet=Object.create(null),this.list=[],this.size=0},e.prototype.add=function(e,t){var n=t||a.guidFor(e),r=this.presenceSet,i=this.list
+return!0!==r[n]&&(r[n]=!0,this.size=i.push(e)),this},e.prototype.delete=function(e,t){var n,r=t||a.guidFor(e),i=this.presenceSet,o=this.list
+return!0===i[r]&&(delete i[r],n=o.indexOf(e),n>-1&&o.splice(n,1),this.size=o.length,!0)},e.prototype.isEmpty=function(){return 0===this.size},e.prototype.has=function(e){if(0===this.size)return!1
+var t=a.guidFor(e)
+return!0===this.presenceSet[t]},e.prototype.forEach=function(e){if(0!==this.size){var t,n,r=this.list
+if(2===arguments.length)for(t=0;t<r.length;t++)e.call(arguments[1],r[t])
+else for(n=0;n<r.length;n++)e(r[n])}},e.prototype.toArray=function(){return this.list.slice()},e.prototype.copy=function(){var e=this.constructor,t=new e
+return t.presenceSet=Fe(this.presenceSet),t.list=this.toArray(),t.size=this.size,t},e}(),dn=function(){function e(){this._keys=new hn,this._values=Object.create(null),this.size=0}return e.create=function(){return new this},e.prototype.get=function(e){if(0!==this.size){return this._values[a.guidFor(e)]}},e.prototype.set=function(e,t){var n=this._keys,r=this._values,i=a.guidFor(e),o=-0===e?0:e
+return n.add(o,i),r[i]=t,this.size=n.size,this},e.prototype.delete=function(e){if(0===this.size)return!1
+var t=this._keys,n=this._values,r=a.guidFor(e)
+return!!t.delete(e,r)&&(delete n[r],this.size=t.size,!0)},e.prototype.has=function(e){return this._keys.has(e)},e.prototype.forEach=function(e){if(0!==this.size){var t=this,n=void 0,r=void 0
+2===arguments.length?(r=arguments[1],n=function(n){return e.call(r,t.get(n),n,t)}):n=function(n){return e(t.get(n),n,t)},this._keys.forEach(n)}},e.prototype.clear=function(){this._keys.clear(),this._values=Object.create(null),this.size=0},e.prototype.copy=function(){return Be(this,new e)},e}(),pn=function(e){function t(t){var n=r.possibleConstructorReturn(this,e.call(this))
+return n.defaultValue=t.defaultValue,n}return r.inherits(t,e),t.create=function(e){return e?new t(e):new dn},t.prototype.get=function(t){var n,r=this.has(t)
+return r?e.prototype.get.call(this,t):(n=this.defaultValue(t),this.set(t,n),n)},t.prototype.copy=function(){return Be(this,new(0,this.constructor)({defaultValue:this.defaultValue}))},t}(dn),fn=Object.prototype.hasOwnProperty,gn=!1,mn={_set:0,_unprocessedNamespaces:!1,get unprocessedNamespaces(){return this._unprocessedNamespaces},set unprocessedNamespaces(e){this._set++,this._unprocessedNamespaces=e}},vn=!1,yn=[],bn=Object.create(null),Cn=Array.prototype.concat,An={},_n=function(){function e(e,t){this.properties=t,this.mixins=dt(e),this.ownerConstructor=void 0,this._without=void 0}return e._apply=function(){return ht.apply(void 0,arguments)},e.applyPartial=function(e){var t,n,r
+for(t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r]
+return ht(e,n,!0)},e.create=function(){Ke()
+var e,t,n,r=this
+for(e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n]
+return new r(t,void 0)},e.mixins=function(e){var t=ue(e),n=[]
+return void 0===t?n:(t.forEachMixins(function(e){e.properties||n.push(e)}),n)},e.prototype.reopen=function(){var t,n,r,i
+for(t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r]
+if(0!==n.length)return this.properties?(i=new e(void 0,this.properties),this.properties=void 0,this.mixins=[i]):this.mixins||(this.mixins=[]),this.mixins=this.mixins.concat(dt(n)),this},e.prototype.apply=function(e){return ht(e,[this],!1)},e.prototype.applyPartial=function(e){return ht(e,[this],!0)},e.prototype.detect=function(t){if("object"!=typeof t||null===t)return!1
+if(t instanceof e)return pt(t,this)
+var n=ue(t)
+return void 0!==n&&n.hasMixin(this)},e.prototype.without=function(){var t,n,r,i=new e([this])
+for(t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r]
+return i._without=n,i},e.prototype.keys=function(){return ft(this)},e.prototype.toString=function(){return"(unknown mixin)"},e}()
+t.ENV._ENABLE_BINDING_SUPPORT&&(_n.finishPartial=null,_n.detectBinding=null),_n.prototype.toString=Ge
+var In=function(e){function t(t){var n=r.possibleConstructorReturn(this,e.call(this))
+return n.methodName=t,n}return r.inherits(t,e),t}(Rt),wn=function(e){function t(t,n,i){var o,s=r.possibleConstructorReturn(this,e.call(this,gt))
+return s.type=t,s.source=i?i.source:void 0,n?(o=n.indexOf("::"),-1===o?(s.name=n,s.namespace=void 0):(s.name=n.slice(o+2),s.namespace=n.slice(0,o))):s.name=void 0,s}return r.inherits(t,e),t}(en),xn=function(e){function t(t){var n=r.possibleConstructorReturn(this,e.call(this))
+return n.desc=t,n.enumerable=t.enumerable,n}return r.inherits(t,e),t.prototype.setup=function(e,t){Object.defineProperty(e,t,this.desc)},t.prototype.get=function(e,t){return e[t]},t.prototype.set=function(e,t,n){return e[t]=n},t.prototype.teardown=function(){},t}(Rt)
+e.computed=ke,e.getCacheFor=je,e.getCachedValueFor=Ee,e.peekCacheFor=Se,e.ComputedProperty=en,e._globalsComputed=tn,e.alias=function(e){return new on(e)},e.merge=function(e,t){if(null===t||"object"!=typeof t)return e
+var n,r=Object.keys(t),i=void 0
+for(n=0;n<r.length;n++)i=r[n],e[i]=t[i]
+return e},e.deprecateProperty=function(e,t,n){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,set:function(e){be(this,n,e)},get:function(){return me(this,n)}})},e.instrument=function(e,t,n,r){if(arguments.length<=3&&"function"==typeof t&&(r=n,n=t,t=void 0),0===sn.length)return n.call(r)
+var i=t||{},o=Me(e,function(){return i})
+return o?Re(n,o,i,r):n.call(r)},e._instrumentStart=Me,e.instrumentationReset=function(){sn.length=0,an={}},e.instrumentationSubscribe=function(e,t){var n,r=e.split("."),i=void 0,o=[]
+for(n=0;n<r.length;n++)i=r[n],"*"===i?o.push("[^\\.]*"):o.push(i)
+o=o.join("\\."),o+="(\\..*)?"
+var s={pattern:e,regex:new RegExp("^"+o+"$"),object:t}
+return sn.push(s),an={},s},e.instrumentationUnsubscribe=function(e){var t,n=void 0
+for(t=0;t<sn.length;t++)sn[t]===e&&(n=t)
+sn.splice(n,1),an={}},e.getOnerror=p,e.setOnerror=function(e){vt=e},e.setDispatchOverride=function(e){bt=e},e.getDispatchOverride=f,e.descriptorFor=le,e.meta=ce,e.peekMeta=ue,e.deleteMeta=function(e){var t=ue(e)
+void 0!==t&&t.destroy()},e.Cache=Gt,e.PROXY_CONTENT=Jt,e._getPath=ve,e.get=me,e.getWithDefault=function(e,t,n){var r=me(e,t)
+return void 0===r?n:r},e.set=be,e.trySet=function(e,t,n){return be(e,t,n,!0)},e.objectAt=V
+e.replace=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:Nt
+Array.isArray(e)?W(e,t,n,r):e.replace(t,n,r)},e.replaceInNativeArray=W,e.addArrayObserver=function(e,t,n){return G(e,t,n,l,!1)},e.removeArrayObserver=function(e,t,n){return G(e,t,n,h,!0)},e.arrayContentWillChange=Y,e.arrayContentDidChange=K,e.eachProxyFor=Q,e.eachProxyArrayWillChange=Z,e.eachProxyArrayDidChange=X,e.addListener=l,e.hasListeners=function(e,t){var n=ue(e)
+if(void 0===n)return!1
+var r=n.matchingListeners(t)
+return void 0!==r&&r.length>0},e.on=function(){for(e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n]
+var e,t,n,r=t.pop()
+return r.__ember_listens__=t,r},e.removeListener=h,e.sendEvent=d,e.isNone=Le,e.isEmpty=De,e.isBlank=ze,e.isPresent=function(e){return!ze(e)},e.getCurrentRunLoop=g,e.backburner=It,e.run=m,e.join=v,e.bind=function(){var e,t,n
+for(e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n]
+return function(){var e,n,r
+for(e=arguments.length,n=Array(e),r=0;r<e;r++)n[r]=arguments[r]
+return v.apply(void 0,t.concat(n))}},e.begin=function(){It.begin()},e.end=function(){It.end()},e.schedule=function(){return It.schedule.apply(It,arguments)},e.hasScheduledTimers=function(){return It.hasTimers()},e.cancelTimers=function(){It.cancelTimers()},e.later=function(){return It.later.apply(It,arguments)},e.once=function(){var e,t,n
+for(e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n]
+return t.unshift("actions"),It.scheduleOnce.apply(It,t)}
+e.scheduleOnce=function(){return It.scheduleOnce.apply(It,arguments)},e.next=function(){var e,t,n
+for(e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n]
+return t.push(1),It.later.apply(It,t)},e.cancel=function(e){return It.cancel(e)},e.debounce=function(){return It.debounce.apply(It,arguments)},e.throttle=function(){return It.throttle.apply(It,arguments)},e._globalsRun=wt,e.beginPropertyChanges=L,e.changeProperties=z,e.endPropertyChanges=D,e.notifyPropertyChange=P,e.overrideChains=M,e.propertyDidChange=function(e,t,n){P(e,t,n)},e.propertyWillChange=function(){},e.PROPERTY_DID_CHANGE=Et,e.defineProperty=H,e.Descriptor=Rt,e.watchKey=U,e.unwatchKey=q,e.ChainNode=Ft,e.finishChains=function(e){var t=e.readableChainWatchers()
+void 0!==t&&t.revalidateAll(),void 0!==e.readableChains()&&e.writableChains(re)},e.removeChainWatcher=oe,e.watchPath=I,e.unwatchPath=w,e.isWatching=function(e,t){return k(e,t)>0},e.unwatch=j,e.watch=x,e.watcherCount=k,e.libraries=ln,e.Libraries=cn,e.Map=dn
+e.MapWithDefault=pn,e.OrderedSet=hn,e.getProperties=function(e){var t={},n=arguments,r=1
+for(2===arguments.length&&Array.isArray(arguments[1])&&(r=0,n=arguments[1]);r<n.length;r++)t[n[r]]=me(e,n[r])
+return t},e.setProperties=function(e,t){return null===t||"object"!=typeof t?t:(z(function(){var n,r=Object.keys(t),i=void 0
+for(n=0;n<r.length;n++)i=r[n],be(e,i,t[i])}),t)},e.expandProperties=Ae,e.addObserver=S,e.removeObserver=T,e.Mixin=_n,e.aliasMethod=function(e){return new In(e)},e.mixin=function(e){var t,n,r
+for(t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r]
+return ht(e,n,!1),e},e.observer=function(){for(e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n]
+var e,t,n,r,i=t.pop(),o=t,s=[],a=function(e){return s.push(e)}
+for(r=0;r<o.length;++r)Ae(o[r],a)
+return i.__ember_observes__=s,i},e.InjectedProperty=wn,e.setHasViews=function(e){xt=e},e.tagForProperty=b,e.tagFor=C,e.markObjectAsDirty=A,e.didRender=void 0,e.assertNotRendered=void 0,e.descriptor=function(e){return new xn(e)},e.tracked=pe,e.NAMESPACES=yn,e.NAMESPACES_BY_ID=bn,e.addNamespace=function(e){mn.unprocessedNamespaces=!0,yn.push(e)},e.classToString=Ge,e.findNamespace=qe,e.findNamespaces=Ue,e.processNamespace=Ve,e.processAllNamespaces=We,e.removeNamespace=He,e.isNamespaceSearchDisabled=Ye
+e.setNamespaceSearchDisabled=function(e){gn=!!e},Object.defineProperty(e,"__esModule",{value:!0})}),e("ember-routing/index",["exports","ember-routing/lib/location/api","ember-routing/lib/location/none_location","ember-routing/lib/location/hash_location","ember-routing/lib/location/history_location","ember-routing/lib/location/auto_location","ember-routing/lib/system/generate_controller","ember-routing/lib/system/controller_for","ember-routing/lib/system/dsl","ember-routing/lib/system/router","ember-routing/lib/system/route","ember-routing/lib/system/query_params","ember-routing/lib/services/routing","ember-routing/lib/services/router","ember-routing/lib/system/cache","ember-routing/lib/ext/controller"],function(e,t,n,r,i,o,s,a,u,c,l,h,d,p,f){"use strict"
+e.BucketCache=e.RouterService=e.RoutingService=e.QueryParams=e.Route=e.Router=e.RouterDSL=e.controllerFor=e.generateControllerFactory=e.generateController=e.AutoLocation=e.HistoryLocation=e.HashLocation=e.NoneLocation=e.Location=void 0,Object.defineProperty(e,"Location",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"NoneLocation",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"HashLocation",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(e,"HistoryLocation",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(e,"AutoLocation",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(e,"generateController",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(e,"generateControllerFactory",{enumerable:!0,get:function(){return s.generateControllerFactory}}),Object.defineProperty(e,"controllerFor",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(e,"RouterDSL",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(e,"Router",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(e,"Route",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(e,"QueryParams",{enumerable:!0,get:function(){return h.default}}),Object.defineProperty(e,"RoutingService",{enumerable:!0,get:function(){return d.default}}),Object.defineProperty(e,"RouterService",{enumerable:!0,get:function(){return p.default}}),Object.defineProperty(e,"BucketCache",{enumerable:!0,get:function(){return f.default}})}),e("ember-routing/lib/ext/controller",["exports","ember-metal","ember-runtime","ember-routing/lib/utils"],function(e,t,n,r){"use strict"
+n.ControllerMixin.reopen({concatenatedProperties:["queryParams"],queryParams:null,_qpDelegate:null,_qpChanged:function(e,n){var r=n.substr(0,n.length-3);(0,e._qpDelegate)(r,(0,t.get)(e,r))},transitionToRoute:function(){var e,n,i,o=(0,t.get)(this,"target"),s=o.transitionToRoute||o.transitionTo
+for(e=arguments.length,n=Array(e),i=0;i<e;i++)n[i]=arguments[i]
+return s.apply(o,(0,r.prefixRouteNameArg)(this,n))},replaceRoute:function(){var e,n,i,o=(0,t.get)(this,"target"),s=o.replaceRoute||o.replaceWith
+for(e=arguments.length,n=Array(e),i=0;i<e;i++)n[i]=arguments[i]
+return s.apply(o,(0,r.prefixRouteNameArg)(this,n))}}),e.default=n.ControllerMixin}),e("ember-routing/lib/location/api",["exports","ember-debug","ember-environment","ember-routing/lib/location/util"],function(e,t,n,r){"use strict"
+e.default={create:function(e){var t=e&&e.implementation,n=this.implementations[t]
+return n.create.apply(n,arguments)},implementations:{},_location:n.environment.location,_getHash:function(){return(0,r.getHash)(this.location)}}}),e("ember-routing/lib/location/auto_location",["exports","ember-utils","ember-metal","ember-debug","ember-runtime","ember-environment","ember-routing/lib/location/util"],function(e,t,n,r,i,o,s){"use strict"
+function a(e){return function(){var r,i,o,s=(0,n.get)(this,"concreteImplementation")
+for(r=arguments.length,i=Array(r),o=0;o<r;o++)i[o]=arguments[o]
+return(0,t.tryInvoke)(s,e,i)}}function u(e){var t,n,r=e.location,i=e.userAgent,o=e.history,a=e.documentMode,u=e.global,h=e.rootURL,d="none",p=!1,f=(0,s.getFullPath)(r)
+return(0,s.supportsHistory)(i,o)?(t=c(h,r),f===t?d="history":"/#"===f.substr(0,2)?(o.replaceState({path:t},null,t),d="history"):(p=!0,(0,s.replacePath)(r,t))):(0,s.supportsHashChange)(a,u)&&(n=l(h,r),f===n||"/"===f&&"/#/"===n?d="hash":(p=!0,(0,s.replacePath)(r,n))),!p&&d}function c(e,t){var n=(0,s.getPath)(t),r=(0,s.getHash)(t),i=(0,s.getQuery)(t),o=(n.indexOf(e),void 0),a=void 0
+return"#/"===r.substr(0,2)?(a=r.substr(1).split("#"),o=a.shift(),"/"===n.charAt(n.length-1)&&(o=o.substr(1)),n+=o+i,a.length&&(n+="#"+a.join("#"))):n+=i+r,n}function l(e,t){var n=e,r=c(e,t),i=r.substr(e.length)
+return""!==i&&("/"!==i[0]&&(i="/"+i),n+="#"+i),n}e.getHistoryPath=c,e.getHashPath=l,e.default=i.Object.extend({location:o.environment.location,history:o.environment.history,global:o.environment.window,userAgent:o.environment.userAgent,cancelRouterSetup:!1,rootURL:"/",detect:function(){var e=this.rootURL,r=u({location:this.location,history:this.history,userAgent:this.userAgent,rootURL:e,documentMode:this.documentMode,global:this.global})
+!1===r&&((0,n.set)(this,"cancelRouterSetup",!0),r="none")
+var i=(0,t.getOwner)(this).lookup("location:"+r);(0,n.set)(i,"rootURL",e),(0,n.set)(this,"concreteImplementation",i)},initState:a("initState"),getURL:a("getURL"),setURL:a("setURL"),replaceURL:a("replaceURL"),onUpdateURL:a("onUpdateURL"),formatURL:a("formatURL"),willDestroy:function(){var e=(0,n.get)(this,"concreteImplementation")
+e&&e.destroy()}})}),e("ember-routing/lib/location/hash_location",["exports","ember-metal","ember-runtime","ember-routing/lib/location/api"],function(e,t,n,r){"use strict"
+e.default=n.Object.extend({implementation:"hash",init:function(){(0,t.set)(this,"location",(0,t.get)(this,"_location")||window.location),this._hashchangeHandler=void 0},getHash:r.default._getHash,getURL:function(){var e=this.getHash().substr(1),t=e
+return"/"!==t[0]&&(t="/",e&&(t+="#"+e)),t},setURL:function(e){(0,t.get)(this,"location").hash=e,(0,t.set)(this,"lastSetURL",e)},replaceURL:function(e){(0,t.get)(this,"location").replace("#"+e),(0,t.set)(this,"lastSetURL",e)},onUpdateURL:function(e){this._removeEventListener(),this._hashchangeHandler=(0,t.bind)(this,function(){var n=this.getURL();(0,t.get)(this,"lastSetURL")!==n&&((0,t.set)(this,"lastSetURL",null),e(n))}),window.addEventListener("hashchange",this._hashchangeHandler)},formatURL:function(e){return"#"+e},willDestroy:function(){this._removeEventListener()},_removeEventListener:function(){this._hashchangeHandler&&window.removeEventListener("hashchange",this._hashchangeHandler)}})}),e("ember-routing/lib/location/history_location",["exports","ember-metal","ember-runtime","ember-routing/lib/location/api"],function(e,t,n,r){"use strict"
+function i(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t,n
+return t=16*Math.random()|0,n="x"===e?t:3&t|8,n.toString(16)})}var o=!1
+e.default=n.Object.extend({implementation:"history",init:function(){this._super.apply(this,arguments)
+var e=document.querySelector("base"),n=""
+e&&(n=e.getAttribute("href")),(0,t.set)(this,"baseURL",n),(0,t.set)(this,"location",(0,t.get)(this,"location")||window.location),this._popstateHandler=void 0},initState:function(){var e=(0,t.get)(this,"history")||window.history;(0,t.set)(this,"history",e),e&&"state"in e&&(this.supportsHistory=!0)
+var n=this.getState(),r=this.formatURL(this.getURL())
+n&&n.path===r?this._previousURL=this.getURL():this.replaceState(r)},rootURL:"/",getURL:function(){var e=(0,t.get)(this,"location"),n=e.pathname,r=(0,t.get)(this,"rootURL"),i=(0,t.get)(this,"baseURL")
+r=r.replace(/\/$/,""),i=i.replace(/\/$/,"")
+var o=n.replace(new RegExp("^"+i+"(?=/|$)"),"").replace(new RegExp("^"+r+"(?=/|$)"),"").replace(/\/\/$/g,"/")
+return o+=(e.search||"")+this.getHash()},setURL:function(e){var t=this.getState()
+e=this.formatURL(e),t&&t.path===e||this.pushState(e)},replaceURL:function(e){var t=this.getState()
+e=this.formatURL(e),t&&t.path===e||this.replaceState(e)},getState:function(){return this.supportsHistory?(0,t.get)(this,"history").state:this._historyState},pushState:function(e){var n={path:e,uuid:i()};(0,t.get)(this,"history").pushState(n,null,e),this._historyState=n,this._previousURL=this.getURL()},replaceState:function(e){var n={path:e,uuid:i()};(0,t.get)(this,"history").replaceState(n,null,e),this._historyState=n,this._previousURL=this.getURL()},onUpdateURL:function(e){var t=this
+this._removeEventListener(),this._popstateHandler=function(){(o||(o=!0,t.getURL()!==t._previousURL))&&e(t.getURL())},window.addEventListener("popstate",this._popstateHandler)},formatURL:function(e){var n=(0,t.get)(this,"rootURL"),r=(0,t.get)(this,"baseURL")
+return""!==e?(n=n.replace(/\/$/,""),r=r.replace(/\/$/,"")):"/"===r[0]&&"/"===n[0]&&(r=r.replace(/\/$/,"")),r+n+e},willDestroy:function(){this._removeEventListener()},getHash:r.default._getHash,_removeEventListener:function(){this._popstateHandler&&window.removeEventListener("popstate",this._popstateHandler)}})}),e("ember-routing/lib/location/none_location",["exports","ember-metal","ember-debug","ember-runtime"],function(e,t,n,r){"use strict"
+e.default=r.Object.extend({implementation:"none",path:"",detect:function(){this.rootURL},rootURL:"/",getURL:function(){var e=(0,t.get)(this,"path"),n=(0,t.get)(this,"rootURL")
+return n=n.replace(/\/$/,""),e.replace(new RegExp("^"+n+"(?=/|$)"),"")},setURL:function(e){(0,t.set)(this,"path",e)},onUpdateURL:function(e){this.updateCallback=e},handleURL:function(e){(0,t.set)(this,"path",e),this.updateCallback(e)},formatURL:function(e){var n=(0,t.get)(this,"rootURL")
+return""!==e&&(n=n.replace(/\/$/,"")),n+e}})}),e("ember-routing/lib/location/util",["exports"],function(e){"use strict"
+function t(e){var t=e.pathname
+return"/"!==t[0]&&(t="/"+t),t}function n(e){return e.search}function r(e){var t=e.href,n=t.indexOf("#")
+return-1===n?"":t.substr(n)}function i(e){var t=e.origin
+return t||(t=e.protocol+"//"+e.hostname,e.port&&(t+=":"+e.port)),t}function o(e,t){return"onhashchange"in t&&(void 0===e||e>7)}function s(e,t){return(-1===e.indexOf("Android 2.")&&-1===e.indexOf("Android 4.0")||-1===e.indexOf("Mobile Safari")||-1!==e.indexOf("Chrome")||-1!==e.indexOf("Windows Phone"))&&!!(t&&"pushState"in t)}e.getPath=t,e.getQuery=n,e.getHash=r,e.getFullPath=function(e){return t(e)+n(e)+r(e)},e.getOrigin=i,e.supportsHashChange=o,e.supportsHistory=s,e.replacePath=function(e,t){e.replace(i(e)+t)}}),e("ember-routing/lib/services/router",["exports","ember-runtime","ember-routing/lib/utils"],function(e,t,n){"use strict"
+var r=t.Service.extend({currentRouteName:(0,t.readOnly)("_router.currentRouteName"),currentURL:(0,t.readOnly)("_router.currentURL"),location:(0,t.readOnly)("_router.location"),rootURL:(0,t.readOnly)("_router.rootURL"),_router:null,transitionTo:function(){for(e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r]
+if((0,n.resemblesURL)(t[0]))return this._router._doURLTransition("transitionTo",t[0])
+var e,t,r,i=(0,n.extractRouteArgs)(t),o=i.routeName,s=i.models,a=i.queryParams,u=this._router._doTransition(o,s,a,!0)
+return u._keepDefaultQueryParamValues=!0,u},replaceWith:function(){return this.transitionTo.apply(this,arguments).method("replace")},urlFor:function(){var e
+return(e=this._router).generate.apply(e,arguments)},isActive:function(){for(e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r]
+var e,t,r,i=(0,n.extractRouteArgs)(t),o=i.routeName,s=i.models,a=i.queryParams,u=this._router._routerMicrolib
+return!!u.isActiveIntent(o,s,null)&&(!(Object.keys(a).length>0)||(this._router._prepareQueryParams(o,s,a,!0),(0,n.shallowEqual)(a,u.state.queryParams)))}})
+e.default=r}),e("ember-routing/lib/services/routing",["exports","ember-utils","ember-runtime","ember-metal"],function(e,t,n,r){"use strict"
+function i(e,t){var n,r=0
+for(n=0;n<t.length&&(r+=t[n].names.length,t[n].handler!==e);n++);return r}e.default=n.Service.extend({router:null,targetState:(0,n.readOnly)("router.targetState"),currentState:(0,n.readOnly)("router.currentState"),currentRouteName:(0,n.readOnly)("router.currentRouteName"),currentPath:(0,n.readOnly)("router.currentPath"),hasRoute:function(e){return(0,r.get)(this,"router").hasRoute(e)},transitionTo:function(e,t,n,i){var o=(0,r.get)(this,"router"),s=o._doTransition(e,t,n)
+return i&&s.method("replace"),s},normalizeQueryParams:function(e,t,n){(0,r.get)(this,"router")._prepareQueryParams(e,t,n)},generateURL:function(e,n,i){var o=(0,r.get)(this,"router")
+if(o._routerMicrolib){var s={}
+return i&&((0,t.assign)(s,i),this.normalizeQueryParams(e,n,s)),o.generate.apply(o,[e].concat(n,[{queryParams:s}]))}},isActiveForRoute:function(e,t,n,o,s){var a=(0,r.get)(this,"router"),u=a._routerMicrolib.recognizer.handlersFor(n),c=u[u.length-1].handler,l=i(n,u)
+return e.length>l&&(n=c),o.isActiveIntent(n,e,t,!s)}})}),e("ember-routing/lib/system/cache",["exports"],function(e){"use strict"
+var t=function(){function e(){this.cache=new Map}return e.prototype.has=function(e){return this.cache.has(e)},e.prototype.stash=function(e,t,n){var r=this.cache.get(e)
+void 0===r&&(r=new Map,this.cache.set(e,r)),r.set(t,n)},e.prototype.lookup=function(e,t,n){if(!this.has(e))return n
+var r=this.cache.get(e)
+return r.has(t)?r.get(t):n},e}()
+e.default=t}),e("ember-routing/lib/system/controller_for",["exports"],function(e){"use strict"
+e.default=function(e,t,n){return e.lookup("controller:"+t,n)}}),e("ember-routing/lib/system/dsl",["exports","ember-utils","ember-debug"],function(e,t,n){"use strict"
+function r(e){return"application"!==e.parent}function i(e,t,n){return r(e)&&!0!==n?e.parent+"."+t:t}function o(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments[3],o=i(e,t,n.resetNamespace)
+"string"!=typeof n.path&&(n.path="/"+t),e.push(n.path,o,r,n.serialize)}var s=0,a=function(){function e(e,t){this.parent=e,this.enableLoadingSubstates=t&&t.enableLoadingSubstates,this.matches=[],this.explicitIndex=void 0,this.options=t}return e.prototype.route=function(t){var n,r,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments[2],u="/_unused_dummy_error_path_route_"+t+"/:error"
+2===arguments.length&&"function"==typeof s&&(a=s,s={}),this.enableLoadingSubstates&&(o(this,t+"_loading",{resetNamespace:s.resetNamespace}),o(this,t+"_error",{resetNamespace:s.resetNamespace,path:u})),a?(n=i(this,t,s.resetNamespace),r=new e(n,this.options),o(r,"loading"),o(r,"error",{path:u}),a.call(r),o(this,t,s,r.generate())):o(this,t,s)},e.prototype.push=function(e,n,r,i){var o,s,a=n.split(".")
+if(this.options.engineInfo)o=n.slice(this.options.engineInfo.fullName.length+1),s=(0,t.assign)({localFullName:o},this.options.engineInfo),i&&(s.serializeMethod=i),this.options.addRouteForEngine(n,s)
+else if(i)throw new Error("Defining a route serializer on route '"+n+"' outside an Engine is not allowed.")
+""!==e&&"/"!==e&&"index"!==a[a.length-1]||(this.explicitIndex=!0),this.matches.push(e,n,r)},e.prototype.generate=function(){var e=this.matches
+return this.explicitIndex||this.route("index",{path:"/"}),function(t){var n
+for(n=0;n<e.length;n+=3)t(e[n]).to(e[n+1],e[n+2])}},e.prototype.mount=function(n){var r,a,u,c,l,h,d,p=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},f=this.options.resolveRouteMap(n),g=n
+p.as&&(g=p.as)
+var m=i(this,g,p.resetNamespace),v={name:n,instanceId:s++,mountPoint:m,fullName:m},y=p.path
+"string"!=typeof y&&(y="/"+g)
+var b=void 0,C="/_unused_dummy_error_path_route_"+g+"/:error"
+f&&(r=!1,a=this.options.engineInfo,a&&(r=!0,this.options.engineInfo=v),u=(0,t.assign)({engineInfo:v},this.options),c=new e(m,u),o(c,"loading"),o(c,"error",{path:C}),f.class.call(c),b=c.generate(),r&&(this.options.engineInfo=a))
+var A=(0,t.assign)({localFullName:"application"},v)
+this.enableLoadingSubstates&&(l=g+"_loading",h="application_loading",d=(0,t.assign)({localFullName:h},v),o(this,l,{resetNamespace:p.resetNamespace}),this.options.addRouteForEngine(l,d),l=g+"_error",h="application_error",d=(0,t.assign)({localFullName:h},v),o(this,l,{resetNamespace:p.resetNamespace,path:C}),this.options.addRouteForEngine(l,d)),this.options.addRouteForEngine(m,A),this.push(y,m,b)},e}()
+e.default=a,a.map=function(e){var t=new a
+return e.call(t),t}}),e("ember-routing/lib/system/generate_controller",["exports","ember-metal","ember-debug"],function(e){"use strict"
+function t(e,t){var n=e.factoryFor("controller:basic").class
+return n=n.extend({toString:function(){return"(generated "+t+" controller)"}}),e.register("controller:"+t,n),n}e.generateControllerFactory=t,e.default=function(e,n){return t(e,n),e.lookup("controller:"+n)}}),e("ember-routing/lib/system/query_params",["exports"],function(e){"use strict"
+e.default=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null
+this.values=e,this.isQueryParams=!0}}),e("ember-routing/lib/system/route",["exports","ember-utils","ember-metal","ember-debug","ember-runtime","ember-routing/lib/system/generate_controller","ember-routing/lib/utils"],function(e,t,n,r,i,o,s){"use strict"
+function a(){return this}function u(e,t){if(!(t.length<1)&&e){var r,i={}
+return 1===t.length?(r=t[0],r in e?i[r]=(0,n.get)(e,r):/_id$/.test(r)&&(i[r]=(0,n.get)(e,"id"))):i=(0,n.getProperties)(e,t),i}}function c(e){var t=l(e,e._router._routerMicrolib.state.handlerInfos,-1)
+return t&&t.handler}function l(e,t){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0
+if(t){for(n=0;n<t.length;n++)if(t[n].handler===e)return t[n+r]}}function h(e,n,r,i){var o,s=(0,t.getOwner)(e),a=void 0,u=void 0,l=void 0,h=void 0,d=void 0,p=void 0
+i&&(l=i.into&&i.into.replace(/\//g,"."),h=i.outlet,d=i.controller,p=i.model),h=h||"main",n?(a=e.routeName,u=e.templateName||a):(a=r.replace(/\//g,"."),u=a),d||(d=n?e.controllerName||s.lookup("controller:"+a):s.lookup("controller:"+a)||e.controllerName||e.routeName),"string"==typeof d&&(o=d,d=s.lookup("controller:"+o)),p&&d.set("model",p)
+var f=s.lookup("template:"+u),g=void 0
+return l&&(g=c(e))&&l===g.routeName&&(l=void 0),{owner:s,into:l,outlet:h,name:a,controller:d,template:f||e._topLevelViewTemplate}}function d(e,n){return n.fullQueryParams?n.fullQueryParams:(n.fullQueryParams={},(0,t.assign)(n.fullQueryParams,n.queryParams),e._deserializeQueryParams(n.handlerInfos,n.fullQueryParams),n.fullQueryParams)}function p(e,t){t.queryParamsFor=t.queryParamsFor||{}
+var r,i,o,s=e.fullRouteName
+if(t.queryParamsFor[s])return t.queryParamsFor[s]
+var a=d(e._router,t),u=t.queryParamsFor[s]={},c=(0,n.get)(e,"_qp"),l=c.qps
+for(r=0;r<l.length;++r)i=l[r],o=i.prop in a,u[i.prop]=o?a[i.prop]:f(i.defaultValue)
+return u}function f(e){return Array.isArray(e)?(0,i.A)(e.slice()):e}function g(e,n){var r,i,o={},s={defaultValue:!0,type:!0,scope:!0,as:!0}
+for(var a in e)e.hasOwnProperty(a)&&(r={},(0,t.assign)(r,e[a],n[a]),o[a]=r,s[a]=!0)
+for(var u in n)n.hasOwnProperty(u)&&!s[u]&&(i={},(0,t.assign)(i,n[u],e[u]),o[u]=i)
+return o}function m(e,t){t.forEach(function(t){e.addObserver(t+".[]",e,e._qpChanged)})}function v(e,t){var n
+return e.routable?(n=e.mountPoint,"application"===t?n:n+"."+t):t}e.defaultSerialize=u,e.hasDefaultSerialize=function(e){return e.serialize===u}
+var y=i.Object.extend(i.ActionHandler,i.Evented,{queryParams:{},router:(0,n.computed)("_router",function(){return this._router}),_setRouteName:function(e){this.routeName=e,this.fullRouteName=v((0,t.getOwner)(this),e)},_qp:(0,n.computed)(function(){var e,r,a,u,c,l,h,d,p,f,m,v=this,y=void 0,b=this.controllerName||this.routeName,C=(0,t.getOwner)(this),A=C.lookup("controller:"+b),_=(0,n.get)(this,"queryParams"),I=Object.keys(_).length>0
+A?(e=(0,n.get)(A,"queryParams")||{},r=(0,s.normalizeControllerQueryParams)(e),y=g(r,_)):I&&(A=(0,o.default)(C,b),y=_)
+var w=[],x={},k=[]
+for(var j in y)y.hasOwnProperty(j)&&"unknownProperty"!==j&&"_super"!==j&&(a=y[j],u=a.scope||"model",c=void 0,"controller"===u&&(c=[]),l=a.as||this.serializeQueryParamKey(j),h=(0,n.get)(A,j),Array.isArray(h)&&(h=(0,i.A)(h.slice())),d=a.type||(0,i.typeOf)(h),p=this.serializeQueryParam(h,l,d),f=b+":"+j,m={undecoratedDefaultValue:(0,n.get)(A,j),defaultValue:h,serializedDefaultValue:p,serializedValue:p,type:d,urlKey:l,prop:j,scopedPropertyName:f,controllerName:b,route:this,parts:c,values:null,scope:u},x[j]=x[l]=x[f]=m,w.push(m),k.push(j))
+return{qps:w,map:x,propertyNames:k,states:{inactive:function(e,t){var n=x[e]
+v._qpChanged(e,t,n)},active:function(e,t){var n=x[e]
+return v._qpChanged(e,t,n),v._activeQPChanged(n,t)},allowOverrides:function(e,t){var n=x[e]
+return v._qpChanged(e,t,n),v._updatingQPChanged(n)}}}}),_names:null,_stashNames:function(e,t){if(!this._names){var r,i,o,s=this._names=e._names
+s.length||(e=t,s=e&&e._names||[])
+var a=(0,n.get)(this,"_qp.qps"),u=new Array(s.length)
+for(r=0;r<s.length;++r)u[r]=e.name+"."+s[r]
+for(i=0;i<a.length;++i)o=a[i],"model"===o.scope&&(o.parts=u)}},_activeQPChanged:function(e,t){this._router._activeQPChanged(e.scopedPropertyName,t)},_updatingQPChanged:function(e){this._router._updatingQPChanged(e.urlKey)},mergedProperties:["queryParams"],paramsFor:function(e){var n=(0,t.getOwner)(this).lookup("route:"+e)
+if(!n)return{}
+var r=this._router._routerMicrolib.activeTransition,i=r?r.state:this._router._routerMicrolib.state,o=n.fullRouteName,s=(0,t.assign)({},i.params[o]),a=p(n,i)
+return Object.keys(a).reduce(function(e,t){return e[t]=a[t],e},s)},serializeQueryParamKey:function(e){return e},serializeQueryParam:function(e,t,n){return this._router._serializeQueryParam(e,n)},deserializeQueryParam:function(e,t,n){return this._router._deserializeQueryParam(e,n)},_optionsForQueryParam:function(e){return(0,n.get)(this,"queryParams."+e.urlKey)||(0,n.get)(this,"queryParams."+e.prop)||{}},resetController:a,exit:function(){this.deactivate(),this.trigger("deactivate"),this.teardownViews()},_reset:function(e,t){var r=this.controller
+r._qpDelegate=(0,n.get)(this,"_qp.states.inactive"),this.resetController(r,e,t)},enter:function(){this.connections=[],this.activate(),this.trigger("activate")},templateName:null,controllerName:null,actions:{queryParamsDidChange:function(e,t,r){var i,o,s=(0,n.get)(this,"_qp").map,a=Object.keys(e).concat(Object.keys(r))
+for(i=0;i<a.length;++i)if((o=s[a[i]])&&(0,n.get)(this._optionsForQueryParam(o),"refreshModel")&&this._router.currentState){this.refresh()
+break}return!0},finalizeQueryParamChange:function(e,t,r){if("application"!==this.fullRouteName)return!0
+if(r){var i,o,a,u,c,l,h,d,p,g,m=r.state.handlerInfos,v=this._router,y=v._queryParamsFor(m),b=v._qpUpdates,C=void 0
+for((0,s.stashParamNames)(v,m),i=0;i<y.qps.length;++i)o=y.qps[i],a=o.route,u=a.controller,c=o.urlKey in e&&o.urlKey,l=void 0,h=void 0,b&&o.urlKey in b?(l=(0,n.get)(u,o.prop),h=a.serializeQueryParam(l,o.urlKey,o.type)):c?void 0!==(h=e[c])&&(l=a.deserializeQueryParam(h,o.urlKey,o.type)):(h=o.serializedDefaultValue,l=f(o.defaultValue)),u._qpDelegate=(0,n.get)(a,"_qp.states.inactive"),d=h!==o.serializedValue,d&&(r.queryParamsOnly&&!1!==C&&(p=a._optionsForQueryParam(o),g=(0,n.get)(p,"replace"),g?C=!0:!1===g&&(C=!1)),(0,n.set)(u,o.prop,l)),o.serializedValue=h,o.serializedDefaultValue===h&&!r._keepDefaultQueryParamValues||t.push({value:h,visible:!0,key:c||o.urlKey})
+C&&r.method("replace"),y.qps.forEach(function(e){var t=(0,n.get)(e.route,"_qp")
+e.route.controller._qpDelegate=(0,n.get)(t,"states.active")}),v._qpUpdates=null}}},deactivate:a,activate:a,transitionTo:function(){var e
+return(e=this._router).transitionTo.apply(e,(0,s.prefixRouteNameArg)(this,arguments))},intermediateTransitionTo:function(){var e;(e=this._router).intermediateTransitionTo.apply(e,(0,s.prefixRouteNameArg)(this,arguments))},refresh:function(){return this._router._routerMicrolib.refresh(this)},replaceWith:function(){var e
+return(e=this._router).replaceWith.apply(e,(0,s.prefixRouteNameArg)(this,arguments))},send:function(){var e,t,n,i,o,s
+for(e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n]
+if(this._router&&this._router._routerMicrolib||!(0,r.isTesting)())(i=this._router).send.apply(i,t)
+else if(o=t.shift(),s=this.actions[o])return s.apply(this,t)},setup:function(e,t){var r,i,o,a,u,c=void 0,l=this.controllerName||this.routeName,h=this.controllerFor(l,!0)
+c=h||this.generateController(l),this.controller||(r=(0,n.get)(this,"_qp.propertyNames"),m(c,r),this.controller=c)
+var d=(0,n.get)(this,"_qp"),f=d.states
+c._qpDelegate=f.allowOverrides,t&&((0,s.stashParamNames)(this._router,t.state.handlerInfos),i=this._bucketCache,o=t.params,a=d.propertyNames,a.forEach(function(e){var t=d.map[e]
+t.values=o
+var r=(0,s.calculateCacheKey)(t.route.fullRouteName,t.parts,t.values),a=i.lookup(r,e,t.undecoratedDefaultValue);(0,n.set)(c,e,a)}),u=p(this,t.state),(0,n.setProperties)(c,u)),this.setupController(c,e,t),this._environment.options.shouldRender&&this.renderTemplate(c,e)},_qpChanged:function(e,t,n){if(n){var r=this._bucketCache,i=(0,s.calculateCacheKey)(n.route.fullRouteName,n.parts,n.values)
+r.stash(i,e,t)}},beforeModel:a,afterModel:a,redirect:a,contextDidChange:function(){this.currentModel=this.context},model:function(e,t){var r,o=void 0,s=void 0,a=void 0,u=(0,n.get)(this,"_qp.map")
+for(var c in e)"queryParams"===c||u&&c in u||(r=c.match(/^(.*)_id$/),null!==r&&(o=r[1],a=e[c]),s=!0)
+if(!o){if(s)return(0,i.copy)(e)
+if(t.resolveIndex<1)return
+return t.state.handlerInfos[t.resolveIndex-1].context}return this.findModel(o,a)},deserialize:function(e,t){return this.model(this.paramsFor(this.routeName),t)},findModel:function(){var e
+return(e=(0,n.get)(this,"store")).find.apply(e,arguments)},store:(0,n.computed)(function(){var e=(0,t.getOwner)(this)
+this.routeName,(0,n.get)(this,"_router.namespace")
+return{find:function(t,n){var r=e.factoryFor("model:"+t)
+if(r)return r=r.class,r.find(n)}}}),serialize:u,setupController:function(e,t){e&&void 0!==t&&(0,n.set)(e,"model",t)},controllerFor:function(e,n){var r=(0,t.getOwner)(this),i=r.lookup("route:"+e)
+return i&&i.controllerName&&(e=i.controllerName),r.lookup("controller:"+e)},generateController:function(e){var n=(0,t.getOwner)(this)
+return(0,o.default)(n,e)},modelFor:function(e){var n,r=void 0,i=(0,t.getOwner)(this),o=this._router?this._router._routerMicrolib.activeTransition:null
+r=i.routable&&null!==o?v(i,e):e
+var s=i.lookup("route:"+r)
+return null!==o&&(n=s&&s.routeName||r,o.resolvedModels.hasOwnProperty(n))?o.resolvedModels[n]:s&&s.currentModel},renderTemplate:function(){this.render()},render:function(e,t){var r=void 0,i=0===arguments.length
+i||("object"!=typeof e||t?r=e:(r=this.templateName||this.routeName,t=e))
+var o=h(this,i,r,t)
+this.connections.push(o),(0,n.once)(this._router,"_setOutlets")},disconnectOutlet:function(e){var t,n=void 0,r=void 0
+e&&("string"==typeof e?n=e:(n=e.outlet,r=e.parentView?e.parentView.replace(/\//g,"."):void 0)),n=n||"main",this._disconnectOutlet(n,r)
+var i=this._router._routerMicrolib.currentHandlerInfos
+for(t=0;t<i.length;t++)i[t].handler._disconnectOutlet(n,r)},_disconnectOutlet:function(e,t){var r,i,o=c(this)
+for(o&&t===o.routeName&&(t=void 0),r=0;r<this.connections.length;r++)i=this.connections[r],i.outlet===e&&i.into===t&&(this.connections[r]={owner:i.owner,into:i.into,outlet:i.outlet,name:i.name,controller:void 0,template:void 0},(0,n.once)(this._router,"_setOutlets"))},willDestroy:function(){this.teardownViews()},teardownViews:function(){this.connections&&this.connections.length>0&&(this.connections=[],(0,n.once)(this._router,"_setOutlets"))}})
+y.reopenClass({isRouteFactory:!0}),e.default=y}),e("ember-routing/lib/system/router",["exports","ember-utils","ember-metal","ember-debug","ember-runtime","ember-routing/lib/system/route","ember-routing/lib/system/dsl","ember-routing/lib/location/api","ember-routing/lib/utils","ember-routing/lib/system/router_state","router"],function(e,t,n,r,i,o,s,a,u,c,l){"use strict"
+function h(){return this}function d(e,t){var n,r,i
+for(n=e.length-1;n>=0;--n)if(r=e[n],void 0!==(i=r.handler)&&!0!==t(i,r))return}function p(e,t){var n,r=[],i=void 0
+i=e&&"object"==typeof e&&"object"==typeof e.errorThrown?e.errorThrown:e,t&&r.push(t),i&&(i.message&&r.push(i.message),i.stack&&r.push(i.stack),"string"==typeof i&&r.push(i)),(n=console).error.apply(n,r)}function f(e,n){var r=(0,t.getOwner)(e),i=e.routeName,o=e.fullRouteName,s=e._router,a=o+"_"+n
+return m(r,s,i+"_"+n,a)?a:""}function g(e,n){var r=(0,t.getOwner)(e),i=e.routeName,o=e.fullRouteName,s=e._router,a="application"===i?n:i+"."+n,u="application"===o?n:o+"."+n
+return m(r,s,a,u)?u:""}function m(e,t,n,r){var i=t.hasRoute(r),o=e.hasRegistration("template:"+n)||e.hasRegistration("route:"+n)
+return i&&o}function v(e,t,n){var i,o=n.shift()
+if(!e){if(t)return
+throw new r.Error("Can't trigger action '"+o+"' because your app hasn't finished transitioning into its first route. To trigger an action on destination routes during a transition, you can call `.send()` on the `Transition` object passed to the `model/beforeModel/afterModel` hooks.")}var s=!1,a=void 0,u=void 0,c=void 0
+for(i=e.length-1;i>=0;i--)if(a=e[i],u=a.handler,c=u&&u.actions&&u.actions[o]){if(!0!==c.apply(u,n))return void("error"===o&&u._router._markErrorAsHandled(n[0]))
+s=!0}var l=E[o]
+if(l)return void l.apply(this,[e].concat(n))
+if(!s&&!t)throw new r.Error("Nothing handled the action '"+o+"'. If you did handle the action, this error can be caused by returning true from an action handler in a controller, causing the action to bubble.")}function y(e,t,n){var r,i,o=e._routerMicrolib.applyIntent(t,n),s=o.handlerInfos,a=o.params
+for(r=0;r<s.length;++r)i=s[r],i.isResolved?a[i.name]=i.params:a[i.name]=i.serialize(i.context)
+return o}function b(e){var r=e._routerMicrolib.currentHandlerInfos
+if(0!==r.length){var i=j._routePath(r),o=r[r.length-1].name,s=e.get("location").getURL();(0,n.set)(e,"currentPath",i),(0,n.set)(e,"currentRouteName",o),(0,n.set)(e,"currentURL",s)
+var a=(0,t.getOwner)(e).lookup("controller:application")
+a&&("currentPath"in a||(0,n.defineProperty)(a,"currentPath"),(0,n.set)(a,"currentPath",i),"currentRouteName"in a||(0,n.defineProperty)(a,"currentRouteName"),(0,n.set)(a,"currentRouteName",o))}}function C(e,t){var n=new c.default(t,t._routerMicrolib,e.state)
+t.currentState||t.set("currentState",n),t.set("targetState",n),e.promise=e.catch(function(e){if(!t._isErrorHandled(e))throw e
+t._clearHandledError(e)})}function A(e,t,n,r){var i,o,s=e._queryParamsFor(t)
+for(var a in n)n.hasOwnProperty(a)&&(i=n[a],o=s.map[a],r(a,i,o))}function _(e,t){if(e)for(var n,r,i=[e];i.length>0;){if(n=i.shift(),n.render.name===t)return n
+r=n.outlets
+for(var o in r)i.push(r[o])}}function I(e,t,r){var i=void 0,o={render:r,outlets:Object.create(null),wasUsed:!1}
+return i=r.into?_(e,r.into):t,i?(0,n.set)(i.outlets,r.outlet,o):r.into?w(e,r.into,o):e=o,{liveRoutes:e,ownState:o}}function w(e,t,r){e.outlets.__ember_orphans__||(e.outlets.__ember_orphans__={render:{name:"__ember_orphans__"},outlets:Object.create(null)}),e.outlets.__ember_orphans__.outlets[t]=r,(0,n.schedule)("afterRender",function(){})}function x(e,t,n){var r=_(e,n.routeName)
+return r||(t.outlets.main={render:{name:n.routeName,outlet:"main"},outlets:{}},t)}e.triggerEvent=v
+var k=Array.prototype.slice,j=i.Object.extend(i.Evented,{location:"hash",rootURL:"/",_initRouterJs:function(){var e=this._routerMicrolib=new l.default
+e.triggerEvent=v.bind(this),e._triggerWillChangeContext=h,e._triggerWillLeave=h
+var t=this.constructor.dslCallbacks||[h],n=this._buildDSL()
+n.route("application",{path:"/",resetNamespace:!0,overrideNameAssertion:!0},function(){var e
+for(e=0;e<t.length;e++)t[e].call(this)}),e.map(n.generate())},_buildDSL:function(){var e=this._hasModuleBasedResolver(),n={enableLoadingSubstates:e},r=(0,t.getOwner)(this),i=this
+return n.resolveRouteMap=function(e){return r.factoryFor("route-map:"+e)},n.addRouteForEngine=function(e,t){i._engineInfoByRoute[e]||(i._engineInfoByRoute[e]=t)},new s.default(null,n)},init:function(){this._super.apply(this,arguments),this.currentURL=null,this.currentRouteName=null,this.currentPath=null,this._qpCache=Object.create(null),this._resetQueuedQueryParameterChanges(),this._handledErrors=new Set,this._engineInstances=Object.create(null),this._engineInfoByRoute=Object.create(null)},_resetQueuedQueryParameterChanges:function(){this._queuedQPChanges={}},url:(0,n.computed)(function(){return(0,n.get)(this,"location").getURL()}),_hasModuleBasedResolver:function(){var e=(0,t.getOwner)(this)
+return!!e&&!!(0,n.get)(e,"application.__registry__.resolver.moduleBasedResolver")},startRouting:function(){var e,t=(0,n.get)(this,"initialURL")
+if(this.setupRouter()&&(void 0===t&&(t=(0,n.get)(this,"location").getURL()),(e=this.handleURL(t))&&e.error))throw e.error},setupRouter:function(){var e=this
+this._initRouterJs(),this._setupLocation()
+var t=(0,n.get)(this,"location")
+return!(0,n.get)(t,"cancelRouterSetup")&&(this._setupRouter(t),t.onUpdateURL(function(t){e.handleURL(t)}),!0)},didTransition:function(){b(this),this._cancelSlowTransitionTimer(),this.notifyPropertyChange("url"),this.set("currentState",this.targetState),(0,n.once)(this,this.trigger,"didTransition")},_setOutlets:function(){if(!this.isDestroying&&!this.isDestroyed){var e,n,r,i,o,s,a,u,c=this._routerMicrolib.currentHandlerInfos,l=void 0,h=void 0,d=null
+if(c){for(e=0;e<c.length;e++){for(l=c[e].handler,n=l.connections,r=void 0,i=0;i<n.length;i++)o=I(d,h,n[i]),d=o.liveRoutes,o.ownState.render.name!==l.routeName&&"main"!==o.ownState.render.outlet||(r=o.ownState)
+0===n.length&&(r=x(d,h,l)),h=r}d&&(this._toplevelView?this._toplevelView.setOutletState(d):(s=(0,t.getOwner)(this),a=s.factoryFor("view:-outlet"),this._toplevelView=a.create(),this._toplevelView.setOutletState(d),u=s.lookup("-application-instance:main"),u.didCreateRootView(this._toplevelView)))}}},willTransition:function(e,t,r){(0,n.once)(this,this.trigger,"willTransition",r)},handleURL:function(e){var t=e.split(/#(.+)?/)[0]
+return this._doURLTransition("handleURL",t)},_doURLTransition:function(e,t){var n=this._routerMicrolib[e](t||"/")
+return C(n,this),n},transitionTo:function(){for(e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n]
+if((0,u.resemblesURL)(t[0]))return this._doURLTransition("transitionTo",t[0])
+var e,t,n,r=(0,u.extractRouteArgs)(t),i=r.routeName,o=r.models,s=r.queryParams
+return this._doTransition(i,o,s)},intermediateTransitionTo:function(){var e;(e=this._routerMicrolib).intermediateTransitionTo.apply(e,arguments),b(this)},replaceWith:function(){return this.transitionTo.apply(this,arguments).method("replace")},generate:function(){var e,t=(e=this._routerMicrolib).generate.apply(e,arguments)
+return this.location.formatURL(t)},isActive:function(){var e
+return(e=this._routerMicrolib).isActive.apply(e,arguments)},isActiveIntent:function(e,t,n){return this.currentState.isActiveIntent(e,t,n)},send:function(){var e;(e=this._routerMicrolib).trigger.apply(e,arguments)},hasRoute:function(e){return this._routerMicrolib.hasRoute(e)},reset:function(){this._routerMicrolib&&this._routerMicrolib.reset()},willDestroy:function(){this._toplevelView&&(this._toplevelView.destroy(),this._toplevelView=null),this._super.apply(this,arguments),this.reset()
+var e=this._engineInstances
+for(var t in e)for(var r in e[t])(0,n.run)(e[t][r],"destroy")},_activeQPChanged:function(e,t){this._queuedQPChanges[e]=t,(0,n.once)(this,this._fireQueryParamTransition)},_updatingQPChanged:function(e){this._qpUpdates||(this._qpUpdates={}),this._qpUpdates[e]=!0},_fireQueryParamTransition:function(){this.transitionTo({queryParams:this._queuedQPChanges}),this._resetQueuedQueryParameterChanges()},_setupLocation:function(){var e,r,i=(0,n.get)(this,"location"),o=(0,n.get)(this,"rootURL"),s=(0,t.getOwner)(this)
+"string"==typeof i&&s&&(e=s.lookup("location:"+i),void 0!==e?i=(0,n.set)(this,"location",e):(r={implementation:i},i=(0,n.set)(this,"location",a.default.create(r)))),null!==i&&"object"==typeof i&&(o&&(0,n.set)(i,"rootURL",o),"function"==typeof i.detect&&i.detect(),"function"==typeof i.initState&&i.initState())},_getHandlerFunction:function(){var e=this,n=Object.create(null),r=(0,t.getOwner)(this)
+return function(t){var i,s,a=t,u=r,c=e._engineInfoByRoute[a]
+c&&(i=e._getEngineInstance(c),u=i,a=c.localFullName)
+var l="route:"+a,h=u.lookup(l)
+if(n[t])return h
+if(n[t]=!0,h||(s=u.factoryFor("route:basic").class,u.register(l,s.extend()),h=u.lookup(l)),h._setRouteName(a),c&&!(0,o.hasDefaultSerialize)(h))throw new Error("Defining a custom serialize method on an Engine route is not supported.")
+return h}},_getSerializerFunction:function(){var e=this
+return function(t){var n=e._engineInfoByRoute[t]
+if(n)return n.serializeMethod||o.defaultSerialize}},_setupRouter:function(e){var t,r=this,i=void 0,o=this._routerMicrolib
+o.getHandler=this._getHandlerFunction(),o.getSerializer=this._getSerializerFunction()
+var s=function(){e.setURL(i),(0,n.set)(r,"currentURL",i)}
+o.updateURL=function(e){i=e,(0,n.once)(s)},e.replaceURL&&(t=function(){e.replaceURL(i),(0,n.set)(r,"currentURL",i)},o.replaceURL=function(e){i=e,(0,n.once)(t)}),o.didTransition=function(e){r.didTransition(e)},o.willTransition=function(e,t,n){r.willTransition(e,t,n)}},_serializeQueryParams:function(e,t){var n=this
+A(this,e,t,function(e,r,o){o?(delete t[e],t[o.urlKey]=o.route.serializeQueryParam(r,o.urlKey,o.type)):void 0===r||(t[e]=n._serializeQueryParam(r,(0,i.typeOf)(r)))})},_serializeQueryParam:function(e,t){return null===e||void 0===e?e:"array"===t?JSON.stringify(e):""+e},_deserializeQueryParams:function(e,t){A(this,e,t,function(e,n,r){r&&(delete t[e],t[r.prop]=r.route.deserializeQueryParam(n,r.urlKey,r.type))})},_deserializeQueryParam:function(e,t){return null===e||void 0===e?e:"boolean"===t?"true"===e:"number"===t?Number(e).valueOf():"array"===t?(0,i.A)(JSON.parse(e)):e},_pruneDefaultQueryParamValues:function(e,t){var n,r=this._queryParamsFor(e)
+for(var i in t)(n=r.map[i])&&n.serializedDefaultValue===t[i]&&delete t[i]},_doTransition:function(e,n,r,i){var o,s=e||(0,u.getActiveTargetName)(this._routerMicrolib),a={}
+this._processActiveTransitionQueryParams(s,n,a,r),(0,t.assign)(a,r),this._prepareQueryParams(s,n,a,i)
+var c=(o=this._routerMicrolib).transitionTo.apply(o,[s].concat(n,[{queryParams:a}]))
+return C(c,this),c},_processActiveTransitionQueryParams:function(e,n,r,i){if(this._routerMicrolib.activeTransition){var o={},s=this._qpUpdates||{},a=this._routerMicrolib.activeTransition.queryParams
+for(var u in a)s[u]||(o[u]=a[u])
+this._fullyScopeQueryParams(e,n,i),this._fullyScopeQueryParams(e,n,o),(0,t.assign)(r,o)}},_prepareQueryParams:function(e,t,n,r){var i=y(this,e,t)
+this._hydrateUnsuppliedQueryParams(i,n,r),this._serializeQueryParams(i.handlerInfos,n),r||this._pruneDefaultQueryParamValues(i.handlerInfos,n)},_getQPMeta:function(e){var t=e.handler
+return t&&(0,n.get)(t,"_qp")},_queryParamsFor:function(e){var n,r,i,o,s,a,u=e.length,c=e[u-1].name,l=this._qpCache[c]
+if(l)return l
+var h=!0,d={},p={},f=[]
+for(n=0;n<u;++n)if(r=this._getQPMeta(e[n])){for(i=0;i<r.qps.length;i++)o=r.qps[i],s=o.urlKey,a=d[s],a&&a.controllerName!==o.controllerName&&d[s],d[s]=o,f.push(o);(0,t.assign)(p,r.map)}else h=!1
+var g={qps:f,map:p}
+return h&&(this._qpCache[c]=g),g},_fullyScopeQueryParams:function(e,t,n){var r,i,o,s,a,u,c,l=y(this,e,t),h=l.handlerInfos
+for(r=0,i=h.length;r<i;++r)if(o=this._getQPMeta(h[r]))for(s=0,a=o.qps.length;s<a;++s)u=o.qps[s],(c=u.prop in n&&u.prop||u.scopedPropertyName in n&&u.scopedPropertyName||u.urlKey in n&&u.urlKey)&&c!==u.scopedPropertyName&&(n[u.scopedPropertyName]=n[c],delete n[c])},_hydrateUnsuppliedQueryParams:function(e,t,n){var r,i,o,s,a,c,l,h=e.handlerInfos,d=this._bucketCache
+for(r=0;r<h.length;++r)if(i=this._getQPMeta(h[r]))for(o=0,s=i.qps.length;o<s;++o)a=i.qps[o],c=a.prop in t&&a.prop||a.scopedPropertyName in t&&a.scopedPropertyName||a.urlKey in t&&a.urlKey,c?c!==a.scopedPropertyName&&(t[a.scopedPropertyName]=t[c],delete t[c]):(l=(0,u.calculateCacheKey)(a.route.fullRouteName,a.parts,e.params),t[a.scopedPropertyName]=d.lookup(l,a.prop,a.defaultValue))},_scheduleLoadingEvent:function(e,t){this._cancelSlowTransitionTimer(),this._slowTransitionTimer=(0,n.scheduleOnce)("routerTransitions",this,"_handleSlowTransition",e,t)},currentState:null,targetState:null,_handleSlowTransition:function(e,t){if(this._routerMicrolib.activeTransition){var n=new c.default(this,this._routerMicrolib,this._routerMicrolib.activeTransition.state)
+this.set("targetState",n),e.trigger(!0,"loading",e,t)}},_cancelSlowTransitionTimer:function(){this._slowTransitionTimer&&(0,n.cancel)(this._slowTransitionTimer),this._slowTransitionTimer=null},_markErrorAsHandled:function(e){this._handledErrors.add(e)},_isErrorHandled:function(e){return this._handledErrors.has(e)},_clearHandledError:function(e){this._handledErrors.delete(e)},_getEngineInstance:function(e){var n,r=e.name,i=e.instanceId,o=e.mountPoint,s=this._engineInstances
+s[r]||(s[r]=Object.create(null))
+var a=s[r][i]
+return a||(n=(0,t.getOwner)(this),a=n.buildChildEngineInstance(r,{routable:!0,mountPoint:o}),a.boot(),s[r][i]=a),a}}),E={willResolveModel:function(e,t,n){this._scheduleLoadingEvent(t,n)},error:function(e,t,n){var r=this,i=e[e.length-1]
+d(e,function(e,n){if(n!==i&&(o=g(e,"error")))return r._markErrorAsHandled(t),r.intermediateTransitionTo(o,t),!1
+var o,s=f(e,"error")
+return!s||(r._markErrorAsHandled(t),r.intermediateTransitionTo(s,t),!1)}),p(t,"Error while processing route: "+n.targetName)},loading:function(e,t){var n=this,r=e[e.length-1]
+d(e,function(e,i){if(i!==r&&(o=g(e,"loading")))return n.intermediateTransitionTo(o),!1
+var o,s=f(e,"loading")
+return s?(n.intermediateTransitionTo(s),!1):t.pivotHandler!==e})}}
+j.reopenClass({map:function(e){return this.dslCallbacks||(this.dslCallbacks=[],this.reopenClass({dslCallbacks:this.dslCallbacks})),this.dslCallbacks.push(e),this},_routePath:function(e){var t,n=[],r=void 0,i=void 0,o=void 0
+for(t=1;t<e.length;t++){for(r=e[t].name,i=r.split("."),o=k.call(n);o.length&&!function(e,t){var n
+for(n=0;n<e.length;++n)if(e[n]!==t[n])return!1
+return!0}(o,i);)o.shift()
+n.push.apply(n,i.slice(o.length))}return n.join(".")}}),e.default=j}),e("ember-routing/lib/system/router_state",["exports","ember-utils","ember-routing/lib/utils"],function(e,t,n){"use strict"
+var r=function(){function e(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null
+this.emberRouter=e,this.routerJs=t,this.routerJsState=n}return e.prototype.isActiveIntent=function(e,r,i,o){var s,a=this.routerJsState
+return!!this.routerJs.isActiveIntent(e,r,null,a)&&(!(o&&Object.keys(i).length>0)||(s=(0,t.assign)({},i),this.emberRouter._prepareQueryParams(e,r,s),(0,n.shallowEqual)(s,a.queryParams)))},e}()
+e.default=r}),e("ember-routing/lib/utils",["exports","ember-utils","ember-metal","ember-debug"],function(e,t,n,r){"use strict"
+function i(e,t){var n,r,i=e.split("."),o=""
+for(n=0;n<i.length&&(r=i.slice(0,n+1).join("."),0===t.indexOf(r));n++)o=r
+return o}function o(e){var t,r,o,s,a,c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],l=arguments[2],h=""
+for(t=0;t<c.length;++t)r=c[t],o=i(e,r),s=void 0,l&&(o&&o in l?(a=0===r.indexOf(o)?r.substr(o.length+1):r,s=(0,n.get)(l[o],a)):s=(0,n.get)(l,r)),h+="::"+r+":"+s
+return e+h.replace(u,"-")}function s(e,n){var r,i=e,o=void 0
+"string"==typeof i&&(o={},o[i]={as:null},i=o)
+for(var s in i){if(!i.hasOwnProperty(s))return
+r=i[s],"string"==typeof r&&(r={as:r}),o=n[s]||{as:null,scope:"model"},(0,t.assign)(o,r),n[s]=o}}function a(e){return"string"==typeof e&&(""===e||"/"===e[0])}e.extractRouteArgs=function(e){e=e.slice()
+var t=e[e.length-1],n=void 0
+return n=t&&t.hasOwnProperty("queryParams")?e.pop().queryParams:{},{routeName:e.shift(),models:e,queryParams:n}},e.getActiveTargetName=function(e){var t=e.activeTransition?e.activeTransition.state.handlerInfos:e.state.handlerInfos
+return t[t.length-1].name},e.stashParamNames=function(e,t){if(!t._namesStashed){var n,r,i,o,s=t[t.length-1].name,a=e._routerMicrolib.recognizer.handlersFor(s),u=null
+for(n=0;n<t.length;++n)r=t[n],i=a[n].names,i.length&&(u=r),r._names=i,o=r.handler,o._stashNames(r,u)
+t._namesStashed=!0}},e.calculateCacheKey=o,e.normalizeControllerQueryParams=function(e){var t,n={}
+for(t=0;t<e.length;++t)s(e[t],n)
+return n},e.resemblesURL=a,e.prefixRouteNameArg=function(e,n){var i=n[0],o=(0,t.getOwner)(e),s=o.mountPoint
+if(o.routable&&"string"==typeof i){if(a(i))throw new r.Error("Programmatic transitions by URL cannot be used within an Engine. Please use the route name instead.")
+i=s+"."+i,n[0]=i}return n},e.shallowEqual=function(e,t){var n=void 0,r=0,i=0
+for(n in e)if(e.hasOwnProperty(n)){if(e[n]!==t[n])return!1
+r++}for(n in t)t.hasOwnProperty(n)&&i++
+return r===i}
+var u=/\./g}),e("ember-runtime/index",["exports","ember-runtime/lib/system/object","ember-runtime/lib/system/string","ember-runtime/lib/mixins/registry_proxy","ember-runtime/lib/mixins/container_proxy","ember-runtime/lib/copy","ember-runtime/lib/inject","ember-runtime/lib/compare","ember-runtime/lib/is-equal","ember-runtime/lib/mixins/array","ember-runtime/lib/mixins/comparable","ember-runtime/lib/system/namespace","ember-runtime/lib/system/array_proxy","ember-runtime/lib/system/object_proxy","ember-runtime/lib/system/core_object","ember-runtime/lib/mixins/action_handler","ember-runtime/lib/mixins/copyable","ember-runtime/lib/mixins/enumerable","ember-runtime/lib/mixins/-proxy","ember-runtime/lib/system/lazy_load","ember-runtime/lib/mixins/observable","ember-runtime/lib/mixins/mutable_enumerable","ember-runtime/lib/mixins/target_action_support","ember-runtime/lib/mixins/evented","ember-runtime/lib/mixins/promise_proxy","ember-runtime/lib/computed/computed_macros","ember-runtime/lib/computed/reduce_computed_macros","ember-runtime/lib/controllers/controller","ember-runtime/lib/mixins/controller","ember-runtime/lib/system/service","ember-runtime/lib/ext/rsvp","ember-runtime/lib/utils","ember-runtime/lib/string_registry","ember-runtime/lib/ext/string","ember-runtime/lib/ext/function"],function(e,t,n,r,i,o,s,a,u,c,l,h,d,p,f,g,m,v,y,b,C,A,_,I,w,x,k,j,E,S,T,P,O){"use strict"
+e.setStrings=e.getStrings=e.typeOf=e.isArray=e.onerrorDefault=e.RSVP=e.Service=e.ControllerMixin=e.Controller=e.collect=e.intersect=e.union=e.uniqBy=e.uniq=e.filterBy=e.filter=e.mapBy=e.setDiff=e.sort=e.map=e.max=e.min=e.sum=e.or=e.and=e.deprecatingAlias=e.readOnly=e.oneWay=e.lte=e.lt=e.gte=e.gt=e.equal=e.match=e.bool=e.not=e.none=e.notEmpty=e.empty=e.PromiseProxyMixin=e.Evented=e.TargetActionSupport=e.MutableEnumerable=e.Observable=e._loaded=e.runLoadHooks=e.onLoad=e._contentFor=e._ProxyMixin=e.Enumerable=e.Copyable=e.ActionHandler=e.CoreObject=e.ObjectProxy=e.ArrayProxy=e.Namespace=e.Comparable=e.removeAt=e.MutableArray=e.A=e.NativeArray=e.isEmberArray=e.Array=e.isEqual=e.compare=e.inject=e.copy=e.ContainerProxyMixin=e.RegistryProxyMixin=e.String=e.FrameworkObject=e.Object=void 0,Object.defineProperty(e,"Object",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"FrameworkObject",{enumerable:!0,get:function(){return t.FrameworkObject}}),Object.defineProperty(e,"String",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"RegistryProxyMixin",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(e,"ContainerProxyMixin",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(e,"copy",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(e,"inject",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(e,"compare",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(e,"isEqual",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(e,"Array",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(e,"isEmberArray",{enumerable:!0,get:function(){return c.isEmberArray}}),Object.defineProperty(e,"NativeArray",{enumerable:!0,get:function(){return c.NativeArray}}),Object.defineProperty(e,"A",{enumerable:!0,get:function(){return c.A}}),Object.defineProperty(e,"MutableArray",{enumerable:!0,get:function(){return c.MutableArray}}),Object.defineProperty(e,"removeAt",{enumerable:!0,get:function(){return c.removeAt}}),Object.defineProperty(e,"Comparable",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(e,"Namespace",{enumerable:!0,get:function(){return h.default}}),Object.defineProperty(e,"ArrayProxy",{enumerable:!0,get:function(){return d.default}}),Object.defineProperty(e,"ObjectProxy",{enumerable:!0,get:function(){return p.default}}),Object.defineProperty(e,"CoreObject",{enumerable:!0,get:function(){return f.default}}),Object.defineProperty(e,"ActionHandler",{enumerable:!0,get:function(){return g.default}}),Object.defineProperty(e,"Copyable",{enumerable:!0,get:function(){return m.default}}),Object.defineProperty(e,"Enumerable",{enumerable:!0,get:function(){return v.default}}),Object.defineProperty(e,"_ProxyMixin",{enumerable:!0,get:function(){return y.default}}),Object.defineProperty(e,"_contentFor",{enumerable:!0,get:function(){return y.contentFor}}),Object.defineProperty(e,"onLoad",{enumerable:!0,get:function(){return b.onLoad}}),Object.defineProperty(e,"runLoadHooks",{enumerable:!0,get:function(){return b.runLoadHooks}}),Object.defineProperty(e,"_loaded",{enumerable:!0,get:function(){return b._loaded}}),Object.defineProperty(e,"Observable",{enumerable:!0,get:function(){return C.default}})
+Object.defineProperty(e,"MutableEnumerable",{enumerable:!0,get:function(){return A.default}}),Object.defineProperty(e,"TargetActionSupport",{enumerable:!0,get:function(){return _.default}}),Object.defineProperty(e,"Evented",{enumerable:!0,get:function(){return I.default}}),Object.defineProperty(e,"PromiseProxyMixin",{enumerable:!0,get:function(){return w.default}}),Object.defineProperty(e,"empty",{enumerable:!0,get:function(){return x.empty}}),Object.defineProperty(e,"notEmpty",{enumerable:!0,get:function(){return x.notEmpty}}),Object.defineProperty(e,"none",{enumerable:!0,get:function(){return x.none}}),Object.defineProperty(e,"not",{enumerable:!0,get:function(){return x.not}}),Object.defineProperty(e,"bool",{enumerable:!0,get:function(){return x.bool}}),Object.defineProperty(e,"match",{enumerable:!0,get:function(){return x.match}}),Object.defineProperty(e,"equal",{enumerable:!0,get:function(){return x.equal}}),Object.defineProperty(e,"gt",{enumerable:!0,get:function(){return x.gt}}),Object.defineProperty(e,"gte",{enumerable:!0,get:function(){return x.gte}}),Object.defineProperty(e,"lt",{enumerable:!0,get:function(){return x.lt}}),Object.defineProperty(e,"lte",{enumerable:!0,get:function(){return x.lte}}),Object.defineProperty(e,"oneWay",{enumerable:!0,get:function(){return x.oneWay}}),Object.defineProperty(e,"readOnly",{enumerable:!0,get:function(){return x.readOnly}}),Object.defineProperty(e,"deprecatingAlias",{enumerable:!0,get:function(){return x.deprecatingAlias}}),Object.defineProperty(e,"and",{enumerable:!0,get:function(){return x.and}}),Object.defineProperty(e,"or",{enumerable:!0,get:function(){return x.or}}),Object.defineProperty(e,"sum",{enumerable:!0,get:function(){return k.sum}}),Object.defineProperty(e,"min",{enumerable:!0,get:function(){return k.min}}),Object.defineProperty(e,"max",{enumerable:!0,get:function(){return k.max}}),Object.defineProperty(e,"map",{enumerable:!0,get:function(){return k.map}}),Object.defineProperty(e,"sort",{enumerable:!0,get:function(){return k.sort}}),Object.defineProperty(e,"setDiff",{enumerable:!0,get:function(){return k.setDiff}}),Object.defineProperty(e,"mapBy",{enumerable:!0,get:function(){return k.mapBy}}),Object.defineProperty(e,"filter",{enumerable:!0,get:function(){return k.filter}}),Object.defineProperty(e,"filterBy",{enumerable:!0,get:function(){return k.filterBy}}),Object.defineProperty(e,"uniq",{enumerable:!0,get:function(){return k.uniq}})
+Object.defineProperty(e,"uniqBy",{enumerable:!0,get:function(){return k.uniqBy}}),Object.defineProperty(e,"union",{enumerable:!0,get:function(){return k.union}}),Object.defineProperty(e,"intersect",{enumerable:!0,get:function(){return k.intersect}}),Object.defineProperty(e,"collect",{enumerable:!0,get:function(){return k.collect}}),Object.defineProperty(e,"Controller",{enumerable:!0,get:function(){return j.default}}),Object.defineProperty(e,"ControllerMixin",{enumerable:!0,get:function(){return E.default}}),Object.defineProperty(e,"Service",{enumerable:!0,get:function(){return S.default}}),Object.defineProperty(e,"RSVP",{enumerable:!0,get:function(){return T.default}}),Object.defineProperty(e,"onerrorDefault",{enumerable:!0,get:function(){return T.onerrorDefault}}),Object.defineProperty(e,"isArray",{enumerable:!0,get:function(){return P.isArray}}),Object.defineProperty(e,"typeOf",{enumerable:!0,get:function(){return P.typeOf}}),Object.defineProperty(e,"getStrings",{enumerable:!0,get:function(){return O.getStrings}}),Object.defineProperty(e,"setStrings",{enumerable:!0,get:function(){return O.setStrings}})}),e("ember-runtime/lib/compare",["exports","ember-runtime/lib/utils","ember-runtime/lib/mixins/comparable"],function(e,t,n){"use strict"
+function r(e,t){var n=e-t
+return(n>0)-(n<0)}function i(e,s){if(e===s)return 0
+var a,u,c,l,h,d=(0,t.typeOf)(e),p=(0,t.typeOf)(s)
+if("instance"===d&&n.default.detect(e)&&e.constructor.compare)return e.constructor.compare(e,s)
+if("instance"===p&&n.default.detect(s)&&s.constructor.compare)return-1*s.constructor.compare(s,e)
+var f=r(o[d],o[p])
+if(0!==f)return f
+switch(d){case"boolean":case"number":return r(e,s)
+case"string":return r(e.localeCompare(s),0)
+case"array":for(a=e.length,u=s.length,c=Math.min(a,u),l=0;l<c;l++)if(0!==(h=i(e[l],s[l])))return h
+return r(a,u)
+case"instance":return n.default.detect(e)?e.compare(e,s):0
+case"date":return r(e.getTime(),s.getTime())
+default:return 0}}e.default=i
+var o={undefined:0,null:1,boolean:2,number:3,string:4,array:5,object:6,instance:7,function:8,class:9,date:10}}),e("ember-runtime/lib/computed/computed_macros",["exports","ember-metal","ember-debug"],function(e,t,n){"use strict"
+function r(e,n){function r(e){s.push(e)}var i,o,s=[]
+for(i=0;i<n.length;i++)o=n[i],(0,t.expandProperties)(o,r)
+return s}function i(e,n){return function(){for(i=arguments.length,o=Array(i),s=0;s<i;s++)o[s]=arguments[s]
+var i,o,s,a=r(e,o)
+return new t.ComputedProperty(function(){var e,r,i=a.length-1
+for(e=0;e<i;e++)if(r=(0,t.get)(this,a[e]),!n(r))return r
+return(0,t.get)(this,a[i])},{dependentKeys:a})}}e.or=e.and=void 0,e.empty=function(e){return(0,t.computed)(e+".length",function(){return(0,t.isEmpty)((0,t.get)(this,e))})},e.notEmpty=function(e){return(0,t.computed)(e+".length",function(){return!(0,t.isEmpty)((0,t.get)(this,e))})},e.none=function(e){return(0,t.computed)(e,function(){return(0,t.isNone)((0,t.get)(this,e))})},e.not=function(e){return(0,t.computed)(e,function(){return!(0,t.get)(this,e)})},e.bool=function(e){return(0,t.computed)(e,function(){return!!(0,t.get)(this,e)})},e.match=function(e,n){return(0,t.computed)(e,function(){var r=(0,t.get)(this,e)
+return n.test(r)})},e.equal=function(e,n){return(0,t.computed)(e,function(){return(0,t.get)(this,e)===n})},e.gt=function(e,n){return(0,t.computed)(e,function(){return(0,t.get)(this,e)>n})},e.gte=function(e,n){return(0,t.computed)(e,function(){return(0,t.get)(this,e)>=n})},e.lt=function(e,n){return(0,t.computed)(e,function(){return(0,t.get)(this,e)<n})},e.lte=function(e,n){return(0,t.computed)(e,function(){return(0,t.get)(this,e)<=n})},e.oneWay=function(e){return(0,t.alias)(e).oneWay()},e.readOnly=function(e){return(0,t.alias)(e).readOnly()},e.deprecatingAlias=function(e,n){return(0,t.computed)(e,{get:function(n){return(0,t.get)(this,e)},set:function(n,r){return(0,t.set)(this,e,r),r}})},e.and=i("and",function(e){return e}),e.or=i("or",function(e){return!e})})
+e("ember-runtime/lib/computed/reduce_computed_macros",["exports","ember-debug","ember-metal","ember-runtime/lib/compare","ember-runtime/lib/utils","ember-runtime/lib/mixins/array"],function(e,t,n,r,i,o){"use strict"
+function s(e,t,r,i){return new n.ComputedProperty(function(){var i=(0,n.get)(this,e)
+return null===i||"object"!=typeof i?r:i.reduce(t,r,this)},{dependentKeys:[e+".[]"],readOnly:!0})}function a(e,t){var r=void 0;/@each/.test(e)?r=e.replace(/\.@each.*$/,""):(r=e,e+=".[]")
+var s=new n.ComputedProperty(function(){var e=(0,n.get)(this,r)
+return(0,i.isArray)(e)?(0,o.A)(t.call(this,e)):(0,o.A)()},{readOnly:!0})
+return s.property(e),s}function u(e,t,r){var i=e.map(function(e){return e+".[]"})
+return new n.ComputedProperty(function(){return(0,o.A)(t.call(this,e))},{dependentKeys:i,readOnly:!0})}function c(e,t){return a(e,function(e){return e.map(t,this)})}function l(e,t){return a(e,function(e){return e.filter(t,this)})}function h(){var e,t,r
+for(e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r]
+return u(t,function(e){var t=this,r=(0,o.A)(),s=new Set
+return e.forEach(function(e){var o=(0,n.get)(t,e);(0,i.isArray)(o)&&o.forEach(function(e){s.has(e)||(s.add(e),r.push(e))})}),r},"uniq")}function d(e,t){return a(e,function(e){var n=this
+return e.slice().sort(function(e,r){return t.call(n,e,r)})})}function p(e,t){var r=new n.ComputedProperty(function(s){function a(){this.notifyPropertyChange(s)}var u,c=this,l=(0,n.get)(this,t),h=r._activeObserverMap||(r._activeObserverMap=new WeakMap),d=h.get(this)
+void 0!==d&&d.forEach(function(e){return n.removeObserver.apply(void 0,e)})
+var p="@this"===e,m=f(l)
+0===m.length?(u=p?"[]":e+".[]",(0,n.addObserver)(this,u,a),d=[[this,u,a]]):d=m.map(function(t){var r=t[0],i=p?"@each."+r:e+".@each."+r
+return(0,n.addObserver)(c,i,a),[c,i,a]}),h.set(this,d)
+var v=p?this:(0,n.get)(this,e)
+return(0,i.isArray)(v)?0===m.length?(0,o.A)(v.slice()):g(v,m):(0,o.A)()},{dependentKeys:[t+".[]"],readOnly:!0})
+return r._activeObserverMap=void 0,r}function f(e){return e.map(function(e){var t=e.split(":"),n=t[0],r=t[1]
+return r=r||"asc",[n,r]})}function g(e,t){return(0,o.A)(e.slice().sort(function(e,i){var o,s,a,u,c
+for(o=0;o<t.length;o++)if(s=t[o],a=s[0],u=s[1],0!==(c=(0,r.default)((0,n.get)(e,a),(0,n.get)(i,a))))return"desc"===u?-1*c:c
+return 0}))}e.union=void 0,e.sum=function(e){return s(e,function(e,t){return e+t},0,"sum")},e.max=function(e){return s(e,function(e,t){return Math.max(e,t)},-1/0,"max")},e.min=function(e){return s(e,function(e,t){return Math.min(e,t)},1/0,"min")},e.map=c,e.mapBy=function(e,t){return c(e+".@each."+t,function(e){return(0,n.get)(e,t)})},e.filter=l,e.filterBy=function(e,t,r){var i=void 0
+return i=2===arguments.length?function(e){return(0,n.get)(e,t)}:function(e){return(0,n.get)(e,t)===r},l(e+".@each."+t,i)},e.uniq=h,e.uniqBy=function(e,t){return new n.ComputedProperty(function(){var r,s=(0,o.A)(),a=(0,n.get)(this,e)
+return(0,i.isArray)(a)&&(r=new Set,a.forEach(function(e){var i=(0,n.get)(e,t)
+r.has(i)||(r.add(i),s.push(e))})),s},{dependentKeys:[e+".[]"],readOnly:!0})},e.intersect=function(){var e,t,r
+for(e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r]
+return u(t,function(e){var t=this,r=e.map(function(e){var r=(0,n.get)(t,e)
+return(0,i.isArray)(r)?r:[]}),s=r.pop().filter(function(e){var t,n,i,o
+for(t=0;t<r.length;t++){for(n=!1,i=r[t],o=0;o<i.length;o++)if(i[o]===e){n=!0
+break}if(!1===n)return!1}return!0},"intersect")
+return(0,o.A)(s)})},e.setDiff=function(e,t){return new n.ComputedProperty(function(){var n=this.get(e),r=this.get(t)
+return(0,i.isArray)(n)?(0,i.isArray)(r)?n.filter(function(e){return-1===r.indexOf(e)}):(0,o.A)(n):(0,o.A)()},{dependentKeys:[e+".[]",t+".[]"],readOnly:!0})},e.collect=function(){var e,t,r
+for(e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r]
+return u(t,function(){var e=(0,n.getProperties)(this,t),r=(0,o.A)()
+for(var i in e)e.hasOwnProperty(i)&&(void 0===e[i]?r.push(null):r.push(e[i]))
+return r},"collect")},e.sort=function(e,t){return"function"==typeof t?d(e,t):p(e,t)},e.union=h}),e("ember-runtime/lib/controllers/controller",["exports","ember-debug","ember-runtime/lib/system/object","ember-runtime/lib/mixins/controller","ember-runtime/lib/inject"],function(e,t,n,r,i){"use strict"
+var o=n.default.extend(r.default);(0,i.createInjectionHelper)("controller",function(e){}),e.default=o}),e("ember-runtime/lib/copy",["exports","ember-debug","ember-runtime/lib/system/object","ember-runtime/lib/mixins/copyable"],function(e,t,n,r){"use strict"
+function i(e,t,n,o){if("object"!=typeof e||null===e)return e
+var s,a=void 0,u=void 0
+if(t&&(u=n.indexOf(e))>=0)return o[u]
+if(Array.isArray(e)){if(a=e.slice(),t)for(u=a.length;--u>=0;)a[u]=i(a[u],t,n,o)}else if(r.default.detect(e))a=e.copy(t,n,o)
+else if(e instanceof Date)a=new Date(e.getTime())
+else{a={},s=void 0
+for(s in e)Object.prototype.hasOwnProperty.call(e,s)&&"__"!==s.substring(0,2)&&(a[s]=t?i(e[s],t,n,o):e[s])}return t&&(n.push(e),o.push(a)),a}e.default=function(e,t){return"object"!=typeof e||null===e?e:r.default.detect(e)?e.copy(t):i(e,t,t?[]:null,t?[]:null)}}),e("ember-runtime/lib/ext/function",["ember-environment","ember-metal","ember-debug"],function(e,t,n){"use strict"
+var r=Function.prototype
+e.ENV.EXTEND_PROTOTYPES.Function&&(Object.defineProperty(r,"property",{configurable:!0,enumerable:!1,writable:!0,value:function(){return t.computed.apply(void 0,Array.prototype.slice.call(arguments).concat([this]))}}),Object.defineProperty(r,"observes",{configurable:!0,enumerable:!1,writable:!0,value:function(){return t.observer.apply(void 0,Array.prototype.slice.call(arguments).concat([this]))}}),Object.defineProperty(r,"_observesImmediately",{configurable:!0,enumerable:!1,writable:!0,value:function(){return this.observes.apply(this,arguments)}}),Object.defineProperty(r,"on",{configurable:!0,enumerable:!1,writable:!0,value:function(){return t.on.apply(void 0,Array.prototype.slice.call(arguments).concat([this]))}}))}),e("ember-runtime/lib/ext/rsvp",["exports","ember-babel","rsvp","ember-metal","ember-debug","container"],function(e,t,n,r,i,o){"use strict"
+function s(e){var t,n=a(e)
+if(n){if(!(t=(0,r.getDispatchOverride)()))throw n
+t(n)}}function a(e){if(e){if(e.errorThrown)return u(e)
+if("UnrecognizedURLError"!==e.name&&"TransitionAborted"!==e.name)return e}}function u(e){var t=e.errorThrown
+return"string"==typeof t&&(t=new Error(t)),Object.defineProperty(t,"__reason_with_error_thrown__",{value:e,enumerable:!1}),t}e.onerrorDefault=s
+var c=(0,t.taggedTemplateLiteralLoose)(["rsvpAfter"],["rsvpAfter"])
+n.configure("async",function(e,t){r.backburner.schedule("actions",null,e,t)}),n.configure("after",function(e){r.backburner.schedule((0,o.privatize)(c),null,e)}),n.on("error",s),e.default=n}),e("ember-runtime/lib/ext/string",["ember-environment","ember-runtime/lib/system/string"],function(e,t){"use strict"
+var n=String.prototype
+e.ENV.EXTEND_PROTOTYPES.String&&(Object.defineProperty(n,"w",{configurable:!0,enumerable:!1,writeable:!0,value:function(){return(0,t.w)(this)}}),Object.defineProperty(n,"loc",{configurable:!0,enumerable:!1,writeable:!0,value:function(){var e,n,r
+for(e=arguments.length,n=Array(e),r=0;r<e;r++)n[r]=arguments[r]
+return(0,t.loc)(this,n)}}),Object.defineProperty(n,"camelize",{configurable:!0,enumerable:!1,writeable:!0,value:function(){return(0,t.camelize)(this)}}),Object.defineProperty(n,"decamelize",{configurable:!0,enumerable:!1,writeable:!0,value:function(){return(0,t.decamelize)(this)}}),Object.defineProperty(n,"dasherize",{configurable:!0,enumerable:!1,writeable:!0,value:function(){return(0,t.dasherize)(this)}}),Object.defineProperty(n,"underscore",{configurable:!0,enumerable:!1,writeable:!0,value:function(){return(0,t.underscore)(this)}}),Object.defineProperty(n,"classify",{configurable:!0,enumerable:!1,writeable:!0,value:function(){return(0,t.classify)(this)}}),Object.defineProperty(n,"capitalize",{configurable:!0,enumerable:!1,writeable:!0,value:function(){return(0,t.capitalize)(this)}}))}),e("ember-runtime/lib/inject",["exports","ember-metal","ember-debug"],function(e,t,n){"use strict"
+function r(){}e.default=r,e.createInjectionHelper=function(e,n){i[e]=n,r[e]=function(n){return new t.InjectedProperty(e,n)}},e.validatePropertyInjections=function(e){var n,r,o,s=e.proto(),a=[]
+for(var u in s)(n=(0,t.descriptorFor)(s,u))instanceof t.InjectedProperty&&-1===a.indexOf(n.type)&&a.push(n.type)
+if(a.length)for(r=0;r<a.length;r++)"function"==typeof(o=i[a[r]])&&o(e)
+return!0}
+var i={}}),e("ember-runtime/lib/is-equal",["exports"],function(e){"use strict"
+e.default=function(e,t){return e&&"function"==typeof e.isEqual?e.isEqual(t):e instanceof Date&&t instanceof Date?e.getTime()===t.getTime():e===t}}),e("ember-runtime/lib/mixins/-proxy",["exports","@glimmer/reference","ember-metal","ember-utils","ember-debug","ember-runtime/lib/computed/computed_macros"],function(e,t,n,r,i,o){"use strict"
+function s(e,t){var r=t.slice(8)
+r in this||(0,n.notifyPropertyChange)(this,r)}function a(e,t){var r=(0,n.get)(e,"content"),i=(void 0===t?(0,n.meta)(e):t).readableTag()
+return void 0!==i&&i.inner.second.inner.update((0,n.tagFor)(r)),r}e.contentFor=a,e.default=n.Mixin.create({content:null,init:function(){this._super.apply(this,arguments),(0,r.setProxy)(this),(0,n.meta)(this).writableTag(function(){return(0,t.combine)([t.DirtyableTag.create(),t.UpdatableTag.create(t.CONSTANT_TAG)])})},isTruthy:(0,o.bool)("content"),willWatchProperty:function(e){(0,n.addObserver)(this,"content."+e,null,s)},didUnwatchProperty:function(e){(0,n.removeObserver)(this,"content."+e,null,s)},unknownProperty:function(e){var t=a(this)
+if(t)return(0,n.get)(t,e)},setUnknownProperty:function(e,t){var r=(0,n.meta)(this)
+if(r.proto===this)return(0,n.defineProperty)(this,e,null,t),t
+var i=a(this,r)
+return(0,n.set)(i,e,t)}})}),e("ember-runtime/lib/mixins/action_handler",["exports","ember-metal","ember-debug"],function(e,t,n){"use strict"
+var r=t.Mixin.create({mergedProperties:["actions"],send:function(e){for(n=arguments.length,r=Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i]
+if(!this.actions||!this.actions[e]||!0===this.actions[e].apply(this,r)){var n,r,i,o=(0,t.get)(this,"target")
+o&&o.send.apply(o,arguments)}}})
+e.default=r}),e("ember-runtime/lib/mixins/array",["exports","ember-utils","ember-metal","ember-debug","ember-runtime/lib/mixins/enumerable","ember-runtime/lib/compare","ember-environment","ember-runtime/lib/mixins/observable","ember-runtime/lib/mixins/copyable","ember-runtime/lib/copy","ember-runtime/lib/mixins/mutable_enumerable"],function(e,t,n,r,i,o,s,a,u,c,l){"use strict"
+function h(e,t){return 2===arguments.length?function(r){return t===(0,n.get)(r,e)}:function(t){return!!(0,n.get)(t,e)}}function d(e,t,i){if("number"==typeof t){if(t<0||t>=(0,n.get)(e,"length"))throw new r.Error(y)
+void 0===i&&(i=1),e.replace(t,i,b)}return e}e.MutableArray=e.NativeArray=e.A=void 0,e.isEmberArray=function(e){return e&&e[m]},e.removeAt=d
+var p,f,g=Object.freeze([]),m=(0,t.symbol)("EMBER_ARRAY"),v=n.Mixin.create(i.default,(p={},p[m]=!0,p.length=null,p.objectAt=function(e){if(!(e<0||e>=(0,n.get)(this,"length")))return(0,n.get)(this,e)},p.objectsAt=function(e){var t=this
+return e.map(function(e){return(0,n.objectAt)(t,e)})},p["[]"]=(0,n.computed)({get:function(){return this},set:function(e,t){return this.replace(0,(0,n.get)(this,"length"),t),this}}),p.firstObject=(0,n.computed)(function(){return(0,n.objectAt)(this,0)}).readOnly(),p.lastObject=(0,n.computed)(function(){return(0,n.objectAt)(this,(0,n.get)(this,"length")-1)}).readOnly(),p.slice=function(e,t){var r=I(),i=(0,n.get)(this,"length")
+for((0,n.isNone)(e)?e=0:e<0&&(e=i+e),(0,n.isNone)(t)||t>i?t=i:t<0&&(t=i+t);e<t;)r[r.length]=(0,n.objectAt)(this,e++)
+return r},p.indexOf=function(e,t){var r,i=(0,n.get)(this,"length")
+for(void 0===t&&(t=0),t<0&&(t+=i),r=t;r<i;r++)if((0,n.objectAt)(this,r)===e)return r
+return-1},p.lastIndexOf=function(e,t){var r,i=(0,n.get)(this,"length")
+for((void 0===t||t>=i)&&(t=i-1),t<0&&(t+=i),r=t;r>=0;r--)if((0,n.objectAt)(this,r)===e)return r
+return-1},p.addArrayObserver=function(e,t){return(0,n.addArrayObserver)(this,e,t)},p.removeArrayObserver=function(e,t){return(0,n.removeArrayObserver)(this,e,t)},p.hasArrayObservers=(0,n.computed)(function(){return(0,n.hasListeners)(this,"@array:change")||(0,n.hasListeners)(this,"@array:before")}),p.arrayContentWillChange=function(e,t,r){return(0,n.arrayContentWillChange)(this,e,t,r)},p.arrayContentDidChange=function(e,t,r){return(0,n.arrayContentDidChange)(this,e,t,r)},p.forEach=function(e){var t,r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,o=(0,n.get)(this,"length")
+for(t=0;t<o;t++)r=this.objectAt(t),e.call(i,r,t,this)
+return this},p.getEach=(0,n.aliasMethod)("mapBy"),p.setEach=function(e,t){return this.forEach(function(r){return(0,n.set)(r,e,t)})},p.map=function(e,t){var n=I()
+return this.forEach(function(r,i,o){return n[i]=e.call(t,r,i,o)}),n},p.mapBy=function(e){return this.map(function(t){return(0,n.get)(t,e)})},p.filter=function(e,t){var n=I()
+return this.forEach(function(r,i,o){e.call(t,r,i,o)&&n.push(r)}),n},p.reject=function(e,t){return this.filter(function(){return!e.apply(t,arguments)})},p.filterBy=function(){return this.filter(h.apply(this,arguments))},p.rejectBy=function(e,t){var r=2===arguments.length?function(r){return(0,n.get)(r,e)===t}:function(t){return!!(0,n.get)(t,e)}
+return this.reject(r)},p.find=function(e){var t,r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,o=(0,n.get)(this,"length")
+for(t=0;t<o;t++)if(r=this.objectAt(t),e.call(i,r,t,this))return r},p.findBy=function(){return this.find(h.apply(this,arguments))},p.every=function(e,t){return!this.find(function(n,r,i){return!e.call(t,n,r,i)})},p.isEvery=function(){return this.every(h.apply(this,arguments))},p.any=function(e){var t,r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,o=(0,n.get)(this,"length")
+for(t=0;t<o;t++)if(r=this.objectAt(t),e.call(i,r,t,this))return!0
+return!1},p.isAny=function(){return this.any(h.apply(this,arguments))},p.reduce=function(e,t,n){var r=t
+return this.forEach(function(t,i){r=e(r,t,i,this,n)},this),r},p.invoke=function(e){for(t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r]
+var t,n,r,i=I()
+return this.forEach(function(t,r){var o=t&&t[e]
+"function"==typeof o&&(i[r]=n.length?o.apply(t,n):t[e]())},this),i},p.toArray=function(){var e=I()
+return this.forEach(function(t,n){return e[n]=t}),e},p.compact=function(){return this.filter(function(e){return null!=e})},p.includes=function(e,t){var r,i,o=(0,n.get)(this,"length")
+for(void 0===t&&(t=0),t<0&&(t+=o),r=t;r<o;r++)if(i=(0,n.objectAt)(this,r),e===i||e!==e&&i!==i)return!0
+return!1},p.sortBy=function(){var e=arguments
+return this.toArray().sort(function(t,r){var i,s,a,u,c
+for(i=0;i<e.length;i++)if(s=e[i],a=(0,n.get)(t,s),u=(0,n.get)(r,s),c=(0,o.default)(a,u))return c
+return 0})},p.uniq=function(){var e=I(),t=new Set
+return this.forEach(function(n){t.has(n)||(t.add(n),e.push(n))}),e},p.uniqBy=function(e){var t=I(),r=new Set
+return this.forEach(function(i){var o=(0,n.get)(i,e)
+r.has(o)||(r.add(o),t.push(i))}),t},p.without=function(e){if(!this.includes(e))return this
+var t=I()
+return this.forEach(function(n){n===e||n!==n&&e!==e||(t[t.length]=n)}),t},p["@each"]=(0,n.computed)(function(){return(0,n.eachProxyFor)(this)}).readOnly(),p)),y="Index out of range",b=[],C=n.Mixin.create(v,l.default,{replace:null,clear:function(){var e=(0,n.get)(this,"length")
+return 0===e?this:(this.replace(0,e,b),this)},insertAt:function(e,t){if(e>(0,n.get)(this,"length"))throw new r.Error(y)
+return this.replace(e,0,[t]),this},removeAt:function(e,t){return d(this,e,t)},pushObject:function(e){return this.insertAt((0,n.get)(this,"length"),e),e},pushObjects:function(e){if(!Array.isArray(e))throw new TypeError("Must pass Enumerable to MutableArray#pushObjects")
+return this.replace((0,n.get)(this,"length"),0,e),this},popObject:function(){var e=(0,n.get)(this,"length")
+if(0===e)return null
+var t=(0,n.objectAt)(this,e-1)
+return this.removeAt(e-1,1),t},shiftObject:function(){if(0===(0,n.get)(this,"length"))return null
+var e=(0,n.objectAt)(this,0)
+return this.removeAt(0),e},unshiftObject:function(e){return this.insertAt(0,e),e},unshiftObjects:function(e){return this.replace(0,0,e),this},reverseObjects:function(){var e=(0,n.get)(this,"length")
+if(0===e)return this
+var t=this.toArray().reverse()
+return this.replace(0,e,t),this},setObjects:function(e){if(0===e.length)return this.clear()
+var t=(0,n.get)(this,"length")
+return this.replace(0,t,e),this},removeObject:function(e){for(var t=(0,n.get)(this,"length")||0;--t>=0;)(0,n.objectAt)(this,t)===e&&this.removeAt(t)
+return this},removeObjects:function(e){var t
+for((0,n.beginPropertyChanges)(this),t=e.length-1;t>=0;t--)this.removeObject(e[t])
+return(0,n.endPropertyChanges)(this),this},addObject:function(e){return this.includes(e)||this.pushObject(e),this},addObjects:function(e){var t=this
+return(0,n.beginPropertyChanges)(this),e.forEach(function(e){return t.addObject(e)}),(0,n.endPropertyChanges)(this),this}}),A=n.Mixin.create(C,a.default,u.default,{get:function(e){return"number"==typeof e?this[e]:this._super(e)},objectAt:function(e){return this[e]},replace:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:g
+return(0,n.replaceInNativeArray)(this,e,t,r),this},unknownProperty:function(e,t){var n=void 0
+return void 0!==t&&void 0===n&&(n=this[e]=t),n},indexOf:Array.prototype.indexOf,lastIndexOf:Array.prototype.lastIndexOf,copy:function(e){return e?this.map(function(e){return(0,c.default)(e,!0)}):this.slice()}}),_=["length"]
+A.keys().forEach(function(e){Array.prototype[e]&&_.push(e)}),e.NativeArray=A=(f=A).without.apply(f,_)
+var I=void 0
+s.ENV.EXTEND_PROTOTYPES.Array?(A.apply(Array.prototype),e.A=I=function(e){return e||[]}):e.A=I=function(e){return e||(e=[]),v.detect(e)?e:A.apply(e)},e.A=I,e.NativeArray=A,e.MutableArray=C,e.default=v}),e("ember-runtime/lib/mixins/comparable",["exports","ember-metal"],function(e,t){"use strict"
+e.default=t.Mixin.create({compare:null})}),e("ember-runtime/lib/mixins/container_proxy",["exports","ember-metal"],function(e,t){"use strict"
+e.default=t.Mixin.create({__container__:null,ownerInjection:function(){return this.__container__.ownerInjection()},lookup:function(e,t){return this.__container__.lookup(e,t)},willDestroy:function(){this._super.apply(this,arguments),this.__container__&&(0,t.run)(this.__container__,"destroy")},factoryFor:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}
+return this.__container__.factoryFor(e,t)}})}),e("ember-runtime/lib/mixins/controller",["exports","ember-metal","ember-runtime/lib/mixins/action_handler"],function(e,t,n){"use strict"
+e.default=t.Mixin.create(n.default,{isController:!0,target:null,store:null,model:null})}),e("ember-runtime/lib/mixins/copyable",["exports","ember-metal"],function(e,t){"use strict"
+e.default=t.Mixin.create({copy:null})}),e("ember-runtime/lib/mixins/enumerable",["exports","ember-metal"],function(e,t){"use strict"
+e.default=t.Mixin.create()}),e("ember-runtime/lib/mixins/evented",["exports","ember-metal"],function(e,t){"use strict"
+e.default=t.Mixin.create({on:function(e,n,r){return(0,t.addListener)(this,e,n,r),this},one:function(e,n,r){return r||(r=n,n=null),(0,t.addListener)(this,e,n,r,!0),this},trigger:function(e){var n,r,i
+for(n=arguments.length,r=Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];(0,t.sendEvent)(this,e,r)},off:function(e,n,r){return(0,t.removeListener)(this,e,n,r),this},has:function(e){return(0,t.hasListeners)(this,e)}})}),e("ember-runtime/lib/mixins/mutable_enumerable",["exports","ember-runtime/lib/mixins/enumerable","ember-metal"],function(e,t,n){"use strict"
+e.default=n.Mixin.create(t.default)}),e("ember-runtime/lib/mixins/observable",["exports","ember-metal","ember-debug"],function(e,t,n){"use strict"
+e.default=t.Mixin.create({get:function(e){return(0,t.get)(this,e)},getProperties:function(){var e,n,r
+for(e=arguments.length,n=Array(e),r=0;r<e;r++)n[r]=arguments[r]
+return t.getProperties.apply(void 0,[this].concat(n))},set:function(e,n){return(0,t.set)(this,e,n)},setProperties:function(e){return(0,t.setProperties)(this,e)},beginPropertyChanges:function(){return(0,t.beginPropertyChanges)(),this},endPropertyChanges:function(){return(0,t.endPropertyChanges)(),this},propertyWillChange:function(e){return(0,t.propertyWillChange)(this,e),this},propertyDidChange:function(e){return(0,t.propertyDidChange)(this,e),this},notifyPropertyChange:function(e){return(0,t.notifyPropertyChange)(this,e),this},addObserver:function(e,n,r){return(0,t.addObserver)(this,e,n,r),this},removeObserver:function(e,n,r){return(0,t.removeObserver)(this,e,n,r),this},hasObserverFor:function(e){return(0,t.hasListeners)(this,e+":change")},getWithDefault:function(e,n){return(0,t.getWithDefault)(this,e,n)},incrementProperty:function(e,n){return(0,t.isNone)(n)&&(n=1),(0,t.set)(this,e,(parseFloat((0,t.get)(this,e))||0)+n)},decrementProperty:function(e,n){return(0,t.isNone)(n)&&(n=1),(0,t.set)(this,e,((0,t.get)(this,e)||0)-n)},toggleProperty:function(e){return(0,t.set)(this,e,!(0,t.get)(this,e))},cacheFor:function(e){return(0,t.getCachedValueFor)(this,e)}})}),e("ember-runtime/lib/mixins/promise_proxy",["exports","ember-metal","ember-debug","ember-runtime/lib/computed/computed_macros"],function(e,t,n,r){"use strict"
+function i(e,n){return(0,t.setProperties)(e,{isFulfilled:!1,isRejected:!1}),n.then(function(n){return e.isDestroyed||e.isDestroying||(0,t.setProperties)(e,{content:n,isFulfilled:!0}),n},function(n){throw e.isDestroyed||e.isDestroying||(0,t.setProperties)(e,{reason:n,isRejected:!0}),n},"Ember: PromiseProxy")}function o(e){return function(){var n=(0,t.get)(this,"promise")
+return n[e].apply(n,arguments)}}e.default=t.Mixin.create({reason:null,isPending:(0,r.not)("isSettled").readOnly(),isSettled:(0,r.or)("isRejected","isFulfilled").readOnly(),isRejected:!1,isFulfilled:!1,promise:(0,t.computed)({get:function(){throw new n.Error("PromiseProxy's promise must be set")},set:function(e,t){return i(this,t)}}),then:o("then"),catch:o("catch"),finally:o("finally")})}),e("ember-runtime/lib/mixins/registry_proxy",["exports","ember-debug","ember-metal"],function(e,t,n){"use strict"
+function r(e){return function(){var t
+return(t=this.__registry__)[e].apply(t,arguments)}}e.default=n.Mixin.create({__registry__:null,resolveRegistration:function(e,t){return this.__registry__.resolve(e,t)},register:r("register"),unregister:r("unregister"),hasRegistration:r("has"),registeredOption:r("getOption"),registerOptions:r("options"),registeredOptions:r("getOptions"),registerOptionsForType:r("optionsForType"),registeredOptionsForType:r("getOptionsForType"),inject:r("injection")})}),e("ember-runtime/lib/mixins/target_action_support",["exports","ember-environment","ember-metal","ember-debug"],function(e,t,n,r){"use strict"
+function i(e){var r,i=(0,n.get)(e,"target")
+return i?"string"==typeof i?(r=(0,n.get)(e,i),void 0===r&&(r=(0,n.get)(t.context.lookup,i)),r):i:i||(e._targetObject?e._targetObject:null)}e.default=n.Mixin.create({target:null,targetObject:(0,n.descriptor)({configurable:!0,enumerable:!1,get:function(){return this._targetObject},set:function(e){this._targetObject=e}}),action:null,actionContext:null,actionContextObject:(0,n.computed)("actionContext",function(){var e,r=(0,n.get)(this,"actionContext")
+return"string"==typeof r?(e=(0,n.get)(this,r),void 0===e&&(e=(0,n.get)(t.context.lookup,r)),e):r}),triggerAction:function(){var e,t,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=r.action,s=r.target,a=r.actionContext
+return o=o||(0,n.get)(this,"action"),s=s||i(this),void 0===a&&(a=(0,n.get)(this,"actionContextObject")||this),!(!s||!o||(void 0,!1===(s.send?(e=s).send.apply(e,[o].concat(a)):(t=s)[o].apply(t,[].concat(a)))))}})}),e("ember-runtime/lib/string_registry",["exports"],function(e){"use strict"
+function t(){return r}function n(e){return r[e]}e.setStrings=function(e){r=e},e.getStrings=t,e.get=n
+var r={}}),e("ember-runtime/lib/system/array_proxy",["exports","ember-metal","ember-runtime/lib/utils","ember-runtime/lib/system/object","ember-runtime/lib/mixins/array","ember-debug"],function(e,t,n,r,i,o){"use strict"
+var s,a={willChange:"_arrangedContentArrayWillChange",didChange:"_arrangedContentArrayDidChange"}
+e.default=r.default.extend(i.MutableArray,(s={init:function(){this._super.apply(this,arguments),this._objectsDirtyIndex=0,this._objects=null,this._lengthDirty=!0,this._length=0,this._arrangedContent=null,this._addArrangedContentArrayObsever()},willDestroy:function(){this._removeArrangedContentArrayObsever()},content:null,arrangedContent:(0,t.alias)("content"),objectAtContent:function(e){return(0,t.objectAt)((0,t.get)(this,"arrangedContent"),e)},replace:function(e,t,n){this.replaceContent(e,t,n)},replaceContent:function(e,n,r){(0,t.get)(this,"content").replace(e,n,r)},objectAt:function(e){var n,r,i
+if(null===this._objects&&(this._objects=[]),-1!==this._objectsDirtyIndex&&e>=this._objectsDirtyIndex){if(n=(0,t.get)(this,"arrangedContent"))for(r=this._objects.length=(0,t.get)(n,"length"),i=this._objectsDirtyIndex;i<r;i++)this._objects[i]=this.objectAtContent(i)
+else this._objects.length=0
+this._objectsDirtyIndex=-1}return this._objects[e]},length:(0,t.computed)(function(){var e
+return this._lengthDirty&&(e=(0,t.get)(this,"arrangedContent"),this._length=e?(0,t.get)(e,"length"):0,this._lengthDirty=!1),this._length}).volatile()},s[t.PROPERTY_DID_CHANGE]=function(e){var n,r,i
+"arrangedContent"===e&&(n=null===this._objects?0:this._objects.length,r=(0,t.get)(this,"arrangedContent"),i=r?(0,t.get)(r,"length"):0,this._removeArrangedContentArrayObsever(),this.arrayContentWillChange(0,n,i),this._objectsDirtyIndex=0,this._lengthDirty=!0,this.arrayContentDidChange(0,n,i),this._addArrangedContentArrayObsever())},s._addArrangedContentArrayObsever=function(){var e=(0,t.get)(this,"arrangedContent")
+e&&((0,t.addArrayObserver)(e,this,a),this._arrangedContent=e)},s._removeArrangedContentArrayObsever=function(){this._arrangedContent&&(0,t.removeArrayObserver)(this._arrangedContent,this,a)},s._arrangedContentArrayWillChange=function(){},s._arrangedContentArrayDidChange=function(e,n,r,i){this.arrayContentWillChange(n,r,i)
+var o,s=n
+s<0&&(o=(0,t.get)(this._arrangedContent,"length"),s+=o+r-i),-1===this._objectsDirtyIndex?this._objectsDirtyIndex=s:this._objectsDirtyIndex>s&&(this._objectsDirtyIndex=s),this._lengthDirty=!0,this.arrayContentDidChange(n,r,i)},s))}),e("ember-runtime/lib/system/core_object",["exports","ember-babel","container","ember-utils","ember-metal","ember-runtime/lib/mixins/action_handler","ember-runtime/lib/inject","ember-debug","ember-environment"],function(e,t,n,r,i,o,s,a,u){"use strict"
+function c(e){var o,s=!1,a=void 0
+return e?a=function(e){function n(n){return s||a.proto(),(0,t.possibleConstructorReturn)(this,e.call(this,n))}return(0,t.inherits)(n,e),n}(e):(o=void 0,a=function(){function e(e){var t,c,l,h,d,p,f,g,m,v,y,b
+s||a.proto()
+var C=this
+void 0!==o&&(n.FACTORY_FOR.set(this,o),o=void 0)
+var A=(0,i.meta)(C),_=A.proto
+if(A.proto=C,void 0!==e)for(c=C.concatenatedProperties,l=C.mergedProperties,h=void 0!==c&&c.length>0,d=void 0!==l&&l.length>0,p=Object.keys(e),f=0;f<p.length;f++)g=p[f],m=e[g],u.ENV._ENABLE_BINDING_SUPPORT&&i.Mixin.detectBinding(g)&&A.writeBindings(g,m),v=(0,i.descriptorFor)(C,g,A),y=void 0!==v,y||(b=C[g],h&&c.indexOf(g)>-1&&(m=b?(0,r.makeArray)(b).concat(m):(0,r.makeArray)(m)),d&&l.indexOf(g)>-1&&(m=(0,r.assign)({},b,m))),y?v.set(C,g,m):"function"!=typeof C.setUnknownProperty||g in C?C[g]=m:C.setUnknownProperty(g,m)
+u.ENV._ENABLE_BINDING_SUPPORT&&i.Mixin.finishPartial(C,A),(t=C).init.apply(t,arguments),A.proto=_,(0,i.finishChains)(A),(0,i.sendEvent)(C,"init",void 0,void 0,void 0,A)}return e._initFactory=function(e){o=e},e}()),a.willReopen=function(){s&&(a.PrototypeMixin=i.Mixin.create(a.PrototypeMixin)),s=!1},a.proto=function(){var e=a.superclass
+return e&&e.proto(),s||(s=!0,a.PrototypeMixin.applyPartial(a.prototype)),this.prototype},a}function l(){var e,t,n,i,o,s,a,u,c,l,h,d,p=this.concatenatedProperties,f=this.mergedProperties,g=void 0!==p&&p.length>0,m=void 0!==f&&f.length>0,v={}
+for(e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n]
+for(i=0;i<t.length;i++)for(o=t[i],s=Object.keys(o),a=0,u=s.length;a<u;a++)c=s[a],l=o[c],g&&p.indexOf(c)>-1&&(h=v[c],l=h?(0,r.makeArray)(h).concat(l):(0,r.makeArray)(l)),m&&f.indexOf(c)>-1&&(d=v[c],l=(0,r.assign)({},d,l)),v[c]=l
+return v}var h=i.Mixin._apply,d=i.Mixin.prototype.reopen,p=(0,i.descriptor)({configurable:!0,enumerable:!1,get:function(){return(0,i.peekMeta)(this).isSourceDestroyed()},set:function(e){}}),f=(0,i.descriptor)({configurable:!0,enumerable:!1,get:function(){return(0,i.peekMeta)(this).isSourceDestroying()},set:function(e){}}),g=c()
+g.prototype.toString=i.classToString,g.toString=i.classToString,(0,r.setName)(g,"Ember.CoreObject"),g.PrototypeMixin=i.Mixin.create({reopen:function(){var e,t,n
+for(e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n]
+return h(this,t,!0),this},init:function(){},concatenatedProperties:null,mergedProperties:null,isDestroyed:p,isDestroying:f,destroy:function(){var e=(0,i.peekMeta)(this)
+if(!e.isSourceDestroying())return e.setSourceDestroying(),(0,i.schedule)("actions",this,this.willDestroy),(0,i.schedule)("destroy",this,this._scheduledDestroy,e),this},willDestroy:function(){},_scheduledDestroy:function(e){e.isSourceDestroyed()||((0,i.deleteMeta)(this),e.setSourceDestroyed())},toString:function(){var e="function"==typeof this.toStringExtension,t=e?":"+this.toStringExtension():""
+return"<"+((0,r.getName)(this)||n.FACTORY_FOR.get(this)||this.constructor.toString())+":"+(0,r.guidFor)(this)+t+">"}}),g.PrototypeMixin.ownerConstructor=g,g.__super__=null
+var m=i.Mixin.create({isClass:!0,isMethod:!1,extend:function(){var e=c(this)
+e.ClassMixin=i.Mixin.create(this.ClassMixin),e.PrototypeMixin=i.Mixin.create(this.PrototypeMixin),e.ClassMixin.ownerConstructor=e,e.PrototypeMixin.ownerConstructor=e,d.apply(e.PrototypeMixin,arguments),e.superclass=this,e.__super__=this.prototype
+var t=e.prototype
+return(0,i.meta)(t).proto=t,e.ClassMixin.apply(e),e},create:function(e,t){var n=this
+return new n(void 0===t?e:l.apply(this,arguments))},reopen:function(){return this.willReopen(),d.apply(this.PrototypeMixin,arguments),this},reopenClass:function(){return d.apply(this.ClassMixin,arguments),h(this,arguments,!1),this},detect:function(e){if("function"!=typeof e)return!1
+for(;e;){if(e===this)return!0
+e=e.superclass}return!1},detectInstance:function(e){return e instanceof this},metaForProperty:function(e){var t=this.proto(),n=(0,i.descriptorFor)(t,e)
+return n._meta||{}},eachComputedProperty:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this
+this.proto()
+var n={};(0,i.meta)(this.prototype).forEachDescriptors(function(r,i){var o
+i.enumerable&&(o=i._meta||n,e.call(t,r,o))})}})
+m.ownerConstructor=g,g.ClassMixin=m,m.apply(g),e.default=g}),e("ember-runtime/lib/system/lazy_load",["exports","ember-environment"],function(e,t){"use strict"
+e._loaded=void 0,e.onLoad=function(e,t){var i=r[e]
+n[e]=n[e]||[],n[e].push(t),i&&t(i)},e.runLoadHooks=function(e,i){r[e]=i
+var o,s=t.environment.window
+s&&"function"==typeof CustomEvent&&(o=new CustomEvent(e,{detail:i,name:e}),s.dispatchEvent(o)),n[e]&&n[e].forEach(function(e){return e(i)})}
+var n=t.ENV.EMBER_LOAD_HOOKS||{},r={}
+e._loaded=r}),e("ember-runtime/lib/system/namespace",["exports","ember-metal","ember-utils","ember-runtime/lib/system/object"],function(e,t,n,r){"use strict"
+var i=r.default.extend({isNamespace:!0,init:function(){(0,t.addNamespace)(this)},toString:function(){var e=(0,t.get)(this,"name")||(0,t.get)(this,"modulePrefix")
+return e||((0,t.findNamespaces)(),e=(0,n.getName)(this),void 0===e&&(e=(0,n.guidFor)(this),(0,n.setName)(this,e)),e)},nameClasses:function(){(0,t.processNamespace)(this)},destroy:function(){(0,t.removeNamespace)(this),this._super.apply(this,arguments)}})
+i.reopenClass({NAMESPACES:t.NAMESPACES,NAMESPACES_BY_ID:t.NAMESPACES_BY_ID,processAll:t.processAllNamespaces,byName:t.findNamespace}),e.default=i}),e("ember-runtime/lib/system/object",["exports","container","ember-utils","ember-metal","ember-runtime/lib/system/core_object","ember-runtime/lib/mixins/observable","ember-debug"],function(e,t,n,r,i,o){"use strict"
+e.FrameworkObject=void 0
+var s,a=(0,n.symbol)("OVERRIDE_OWNER"),u=i.default.extend(o.default,(s={_debugContainerKey:(0,r.descriptor)({enumerable:!1,get:function(){var e=t.FACTORY_FOR.get(this)
+return void 0!==e&&e.fullName}})},s[n.OWNER]=(0,r.descriptor)({enumerable:!1,get:function(){if(this[a])return this[a]
+var e=t.FACTORY_FOR.get(this)
+return void 0!==e&&e.owner},set:function(e){this[a]=e}}),s));(0,n.setName)(u,"Ember.Object"),e.FrameworkObject=u,e.default=u}),e("ember-runtime/lib/system/object_proxy",["exports","ember-runtime/lib/system/object","ember-runtime/lib/mixins/-proxy"],function(e,t,n){"use strict"
+e.default=t.default.extend(n.default)}),e("ember-runtime/lib/system/service",["exports","ember-runtime/lib/system/object","ember-runtime/lib/inject"],function(e,t,n){"use strict";(0,n.createInjectionHelper)("service")
+var r=t.default.extend()
+r.reopenClass({isServiceFactory:!0}),e.default=r})
+e("ember-runtime/lib/system/string",["exports","ember-metal","ember-utils","ember-runtime/lib/utils","ember-runtime/lib/string_registry"],function(e,t,n,r,i){"use strict"
+function o(e,t){var i,o=t
+if(!(0,r.isArray)(o)||arguments.length>2)for(o=new Array(arguments.length-1),i=1;i<arguments.length;i++)o[i-1]=arguments[i]
+var s=0
+return e.replace(/%@([0-9]+)?/g,function(e,t){return t=t?parseInt(t,10)-1:s++,e=o[t],null===e?"(null)":void 0===e?"":(0,n.inspect)(e)})}function s(e,t){return(!(0,r.isArray)(t)||arguments.length>2)&&(t=Array.prototype.slice.call(arguments,1)),e=(0,i.get)(e)||e,o(e,t)}function a(e){return e.split(/\s+/)}function u(e){return S.get(e)}function c(e){return g.get(e)}function l(e){return y.get(e)}function h(e){return _.get(e)}function d(e){return x.get(e)}function p(e){return j.get(e)}e.capitalize=e.underscore=e.classify=e.camelize=e.dasherize=e.decamelize=e.w=e.loc=void 0
+var f=/[ _]/g,g=new t.Cache(1e3,function(e){return u(e).replace(f,"-")}),m=/(\-|\_|\.|\s)+(.)?/g,v=/(^|\/)([A-Z])/g,y=new t.Cache(1e3,function(e){return e.replace(m,function(e,t,n){return n?n.toUpperCase():""}).replace(v,function(e){return e.toLowerCase()})}),b=/^(\-|_)+(.)?/,C=/(.)(\-|\_|\.|\s)+(.)?/g,A=/(^|\/|\.)([a-z])/g,_=new t.Cache(1e3,function(e){var t,n=function(e,t,n){return n?"_"+n.toUpperCase():""},r=function(e,t,n,r){return t+(r?r.toUpperCase():"")},i=e.split("/")
+for(t=0;t<i.length;t++)i[t]=i[t].replace(b,n).replace(C,r)
+return i.join("/").replace(A,function(e){return e.toUpperCase()})}),I=/([a-z\d])([A-Z]+)/g,w=/\-|\s+/g,x=new t.Cache(1e3,function(e){return e.replace(I,"$1_$2").replace(w,"_").toLowerCase()}),k=/(^|\/)([a-z\u00C0-\u024F])/g,j=new t.Cache(1e3,function(e){return e.replace(k,function(e){return e.toUpperCase()})}),E=/([a-z\d])([A-Z])/g,S=new t.Cache(1e3,function(e){return e.replace(E,"$1_$2").toLowerCase()})
+e.default={loc:s,w:a,decamelize:u,dasherize:c,camelize:l,classify:h,underscore:d,capitalize:p},e.loc=s,e.w=a,e.decamelize=u,e.dasherize=c,e.camelize=l,e.classify=h,e.underscore=d,e.capitalize=p}),e("ember-runtime/lib/utils",["exports","ember-metal","ember-utils","ember-runtime/lib/mixins/array","ember-runtime/lib/system/object"],function(e,t,n,r,i){"use strict"
+function o(e){if(null===e)return"null"
+if(void 0===e)return"undefined"
+var t=s[a.call(e)]||"object"
+return"function"===t?i.default.detect(e)&&(t="class"):"object"===t&&(e instanceof Error?t="error":e instanceof i.default?t="instance":e instanceof Date&&(t="date")),t}e.isArray=function(e){var t=e
+if(!t||t.setInterval)return!1
+if(Array.isArray(t))return!0
+if(r.default.detect(t))return!0
+var n=o(t)
+if("array"===n)return!0
+var i=t.length
+return"number"==typeof i&&i===i&&"object"===n},e.typeOf=o
+var s={"[object Boolean]":"boolean","[object Number]":"number","[object String]":"string","[object Function]":"function","[object Array]":"array","[object Date]":"date","[object RegExp]":"regexp","[object Object]":"object","[object FileList]":"filelist"},a=Object.prototype.toString}),e("ember-utils",["exports"],function(e){"use strict"
+function t(e){var t={}
+t[e]=1
+for(var n in t)if(n===e)return n
+return e}function n(e){return null!==e&&("object"==typeof e||"function"==typeof e)}function r(){return++d}function i(e){var n=g+Math.floor(Math.random()*new Date),r=t("__"+e+n+"__")
+return m.push(r),r}function o(e){var t,n,r,i,o
+for(t=1;t<arguments.length;t++)if(n=arguments[t])for(r=Object.keys(n),i=0;i<r.length;i++)o=r[i],e[o]=n[o]
+return e}function s(){}function a(e){return void 0===e.__hasSuper&&(e.__hasSuper=A(e)),e.__hasSuper}function u(e,t){function n(){var n=this._super
+this._super=t
+var r=e.apply(this,arguments)
+return this._super=n,r}return n.wrappedFunction=e,n.__ember_observes__=e.__ember_observes__,n.__ember_listens__=e.__ember_listens__,n}function c(e,t){return null!==e&&void 0!==e&&"function"==typeof e[t]}function l(e){return null===e||void 0===e}function h(e){var t,n,r
+if("string"==typeof e)return e
+if(Array.isArray(e)){for(t=e.length,n="",r=0;r<t;r++)r>0&&(n+=","),l(e[r])||(n+=h(e[r]))
+return n}return null!=e&&"function"==typeof e.toString?e.toString():x.call(e)}e.setProxy=e.isProxy=e.WeakSet=e.HAS_NATIVE_PROXY=e.HAS_NATIVE_SYMBOL=e.toString=e.setName=e.getName=e.makeArray=e.tryInvoke=e.canInvoke=e.lookupDescriptor=e.inspect=e.wrap=e.ROOT=e.checkHasSuper=e.intern=e.guidFor=e.generateGuid=e.GUID_KEY=e.uuid=e.dictionary=e.assignPolyfill=e.assign=e.OWNER=e.setOwner=e.getOwner=e.isInternalSymbol=e.symbol=e.NAME_KEY=void 0
+var d=0,p=new WeakMap,f=new Map,g=t("__ember"+ +new Date),m=[],v=i("OWNER"),y=Object.assign,b=/\.(_super|call\(this|apply\(this)/,C=Function.prototype.toString,A=function(){return C.call(function(){return this}).indexOf("return this")>-1?function(e){return b.test(C.call(e))}:function(){return!0}}()
+s.__hasSuper=!1
+var _=Object.prototype.toString,I=Array.isArray,w=new WeakMap,x=Object.prototype.toString,k=function(){return"function"==typeof Symbol&&"[object Symbol]"===Object.prototype.toString.call(Symbol())}(),j="function"==typeof Proxy,E="function"==typeof WeakSet?WeakSet:function(){function e(){this._map=new WeakMap}return e.prototype.add=function(e){return this._map.set(e,!0),this},e.prototype.delete=function(e){return this._map.delete(e)},e.prototype.has=function(e){return this._map.has(e)},e}(),S=new E,T=i("NAME_KEY")
+e.NAME_KEY=T,e.symbol=i,e.isInternalSymbol=function(e){return m.indexOf(e)>-1},e.getOwner=function(e){return e[v]},e.setOwner=function(e,t){e[v]=t},e.OWNER=v,e.assign=y||o,e.assignPolyfill=o,e.dictionary=function(e){var t=Object.create(e)
+return t._dict=null,delete t._dict,t},e.uuid=r,e.GUID_KEY=g,e.generateGuid=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"ember",i=t+r()
+return n(e)&&p.set(e,i),i},e.guidFor=function(e){var t,i=void 0
+return n(e)?void 0===(i=p.get(e))&&(i="ember"+r(),p.set(e,i)):void 0===(i=f.get(e))&&(t=typeof e,i="string"===t?"st"+r():"number"===t?"nu"+r():"symbol"===t?"sy"+r():"("+e+")",f.set(e,i)),i},e.intern=t,e.checkHasSuper=A,e.ROOT=s,e.wrap=function(e,t){return a(e)?!t.wrappedFunction&&a(t)?u(e,u(t,s)):u(e,t):e},e.inspect=function(e){if(null===e)return"null"
+if(void 0===e)return"undefined"
+if(Array.isArray(e))return"["+e+"]"
+var t=typeof e
+if("object"!==t&&"symbol"!==t)return""+e
+if("function"==typeof e.toString&&e.toString!==_)return e.toString()
+var n=void 0,r=[]
+for(var i in e)if(e.hasOwnProperty(i)){if("toString"===(n=e[i]))continue
+"function"==typeof n&&(n="function() { ... }"),n&&"function"!=typeof n.toString?r.push(i+": "+_.call(n)):r.push(i+": "+n)}return"{"+r.join(", ")+"}"},e.lookupDescriptor=function(e,t){for(var n,r=e;r;){if(n=Object.getOwnPropertyDescriptor(r,t))return n
+r=Object.getPrototypeOf(r)}return null},e.canInvoke=c,e.tryInvoke=function(e,t,n){var r
+if(c(e,t))return r=e[t],r.apply(e,n)},e.makeArray=function(e){return null===e||void 0===e?[]:I(e)?e:[e]},e.getName=function(e){return w.get(e)},e.setName=function(e,t){(null!==e&&"object"==typeof e||"function"==typeof e)&&w.set(e,t)},e.toString=h,e.HAS_NATIVE_SYMBOL=k,e.HAS_NATIVE_PROXY=j,e.WeakSet=E,e.isProxy=function(e){return S.has(e)},e.setProxy=function(e){return S.add(e)}}),e("ember-views/index",["exports","ember-views/lib/system/jquery","ember-views/lib/system/utils","ember-views/lib/system/event_dispatcher","ember-views/lib/component_lookup","ember-views/lib/mixins/text_support","ember-views/lib/views/core_view","ember-views/lib/mixins/class_names_support","ember-views/lib/mixins/child_views_support","ember-views/lib/mixins/view_state_support","ember-views/lib/mixins/view_support","ember-views/lib/mixins/action_support","ember-views/lib/compat/attrs","ember-views/lib/system/lookup_partial","ember-views/lib/utils/lookup-component","ember-views/lib/system/action_manager","ember-views/lib/compat/fallback-view-registry"],function(e,t,n,r,i,o,s,a,u,c,l,h,d,p,f,g,m){"use strict"
+Object.defineProperty(e,"jQuery",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"jQueryDisabled",{enumerable:!0,get:function(){return t.jQueryDisabled}}),Object.defineProperty(e,"addChildView",{enumerable:!0,get:function(){return n.addChildView}}),Object.defineProperty(e,"isSimpleClick",{enumerable:!0,get:function(){return n.isSimpleClick}}),Object.defineProperty(e,"getViewBounds",{enumerable:!0,get:function(){return n.getViewBounds}}),Object.defineProperty(e,"getViewClientRects",{enumerable:!0,get:function(){return n.getViewClientRects}}),Object.defineProperty(e,"getViewBoundingClientRect",{enumerable:!0,get:function(){return n.getViewBoundingClientRect}}),Object.defineProperty(e,"getRootViews",{enumerable:!0,get:function(){return n.getRootViews}}),Object.defineProperty(e,"getChildViews",{enumerable:!0,get:function(){return n.getChildViews}}),Object.defineProperty(e,"getViewId",{enumerable:!0,get:function(){return n.getViewId}}),Object.defineProperty(e,"getViewElement",{enumerable:!0,get:function(){return n.getViewElement}}),Object.defineProperty(e,"setViewElement",{enumerable:!0,get:function(){return n.setViewElement}}),Object.defineProperty(e,"constructStyleDeprecationMessage",{enumerable:!0,get:function(){return n.constructStyleDeprecationMessage}}),Object.defineProperty(e,"EventDispatcher",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(e,"ComponentLookup",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(e,"TextSupport",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(e,"CoreView",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(e,"ClassNamesSupport",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(e,"ChildViewsSupport",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(e,"ViewStateSupport",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(e,"ViewMixin",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(e,"ActionSupport",{enumerable:!0,get:function(){return h.default}}),Object.defineProperty(e,"MUTABLE_CELL",{enumerable:!0,get:function(){return d.MUTABLE_CELL}}),Object.defineProperty(e,"lookupPartial",{enumerable:!0,get:function(){return p.default}}),Object.defineProperty(e,"hasPartial",{enumerable:!0,get:function(){return p.hasPartial}}),Object.defineProperty(e,"lookupComponent",{enumerable:!0,get:function(){return f.default}}),Object.defineProperty(e,"ActionManager",{enumerable:!0,get:function(){return g.default}}),Object.defineProperty(e,"fallbackViewRegistry",{enumerable:!0,get:function(){return m.default}})}),e("ember-views/lib/compat/attrs",["exports","ember-utils"],function(e,t){"use strict"
+e.MUTABLE_CELL=void 0,e.MUTABLE_CELL=(0,t.symbol)("MUTABLE_CELL")}),e("ember-views/lib/compat/fallback-view-registry",["exports","ember-utils"],function(e,t){"use strict"
+e.default=(0,t.dictionary)(null)}),e("ember-views/lib/component_lookup",["exports","ember-debug","ember-runtime"],function(e,t,n){"use strict"
+e.default=n.Object.extend({componentFor:function(e,t,n){return t.factoryFor("component:"+e,n)},layoutFor:function(e,t,n){return t.lookup("template:components/"+e,n)}})}),e("ember-views/lib/mixins/action_support",["exports","ember-utils","ember-metal","ember-debug","ember-views/lib/compat/attrs"],function(e,t,n,r,i){"use strict"
+function o(e,t){return t&&t[i.MUTABLE_CELL]&&(t=t.value),t}e.default=n.Mixin.create({sendAction:function(e){for(t=arguments.length,r=Array(t>1?t-1:0),i=1;i<t;i++)r[i-1]=arguments[i]
+var t,r,i,s=void 0
+void 0===e&&(e="action"),s=(0,n.get)(this,"attrs."+e)||(0,n.get)(this,e),void 0!==(s=o(this,s))&&("function"==typeof s?s.apply(void 0,r):this.triggerAction({action:s,actionContext:r}))},send:function(e){for(t=arguments.length,r=Array(t>1?t-1:0),i=1;i<t;i++)r[i-1]=arguments[i]
+var t,r,i,o=this.actions&&this.actions[e]
+if(!o||!0===o.apply(this,r)){var s=(0,n.get)(this,"target")
+s&&s.send.apply(s,arguments)}}})}),e("ember-views/lib/mixins/child_views_support",["exports","ember-metal","ember-views/lib/system/utils"],function(e,t,n){"use strict"
+e.default=t.Mixin.create({childViews:(0,t.descriptor)({configurable:!1,enumerable:!1,get:function(){return(0,n.getChildViews)(this)}}),appendChild:function(e){(0,n.addChildView)(this,e)}})}),e("ember-views/lib/mixins/class_names_support",["exports","ember-metal","ember-debug"],function(e,t,n){"use strict"
+var r=Object.freeze([])
+e.default=t.Mixin.create({concatenatedProperties:["classNames","classNameBindings"],init:function(){this._super.apply(this,arguments)},classNames:r,classNameBindings:r})}),e("ember-views/lib/mixins/text_support",["exports","ember-metal","ember-runtime"],function(e,t,n){"use strict"
+function r(e,n,r){var i=(0,t.get)(n,"attrs."+e)||(0,t.get)(n,e),o=(0,t.get)(n,"value")
+n.sendAction(e,o),i&&!(0,t.get)(n,"bubbles")&&r.stopPropagation()}var i={13:"insertNewline",27:"cancel"}
+e.default=t.Mixin.create(n.TargetActionSupport,{value:"",attributeBindings:["autocapitalize","autocorrect","autofocus","disabled","form","maxlength","minlength","placeholder","readonly","required","selectionDirection","spellcheck","tabindex","title"],placeholder:null,disabled:!1,maxlength:null,init:function(){this._super.apply(this,arguments),this.on("paste",this,this._elementValueDidChange),this.on("cut",this,this._elementValueDidChange),this.on("input",this,this._elementValueDidChange)},bubbles:!1,interpretKeyEvents:function(e){var t=i[e.keyCode]
+if(this._elementValueDidChange(),t)return this[t](e)},_elementValueDidChange:function(){(0,t.set)(this,"value",this.element.value)},change:function(e){this._elementValueDidChange(e)},insertNewline:function(e){r("enter",this,e),r("insert-newline",this,e)},cancel:function(e){r("escape-press",this,e)},focusIn:function(e){r("focus-in",this,e)},focusOut:function(e){this._elementValueDidChange(e),r("focus-out",this,e)},keyPress:function(e){r("key-press",this,e)},keyUp:function(e){this.interpretKeyEvents(e),this.sendAction("key-up",(0,t.get)(this,"value"),e)},keyDown:function(e){this.sendAction("key-down",(0,t.get)(this,"value"),e)}})}),e("ember-views/lib/mixins/view_state_support",["exports","ember-metal"],function(e,t){"use strict"
+e.default=t.Mixin.create({_transitionTo:function(e){var t=this._currentState,n=this._currentState=this._states[e]
+this._state=e,t&&t.exit&&t.exit(this),n.enter&&n.enter(this)}})}),e("ember-views/lib/mixins/view_support",["exports","ember-utils","ember-metal","ember-debug","ember-environment","ember-views/lib/system/utils","ember-views/lib/system/jquery"],function(e,t,n,r,i,o,s){"use strict"
+function a(){return this}e.default=n.Mixin.create({concatenatedProperties:["attributeBindings"],nearestOfType:function(e){for(var t=this.parentView,r=e instanceof n.Mixin?function(t){return e.detect(t)}:function(t){return e.detect(t.constructor)};t;){if(r(t))return t
+t=t.parentView}},nearestWithProperty:function(e){for(var t=this.parentView;t;){if(e in t)return t
+t=t.parentView}},rerender:function(){return this._currentState.rerender(this)},element:(0,n.descriptor)({configurable:!1,enumerable:!1,get:function(){return this.renderer.getElement(this)}}),$:function(e){if(this.element)return e?(0,s.default)(e,this.element):(0,s.default)(this.element)},appendTo:function(e){var t=this._environment||i.environment,n=void 0
+return n=t.hasDOM&&"string"==typeof e?document.querySelector(e):e,this.renderer.appendTo(this,n),this},append:function(){return this.appendTo(document.body)},elementId:null,findElementInParentElement:function(e){var t="#"+this.elementId
+return(0,s.default)(t)[0]||(0,s.default)(t,e)[0]},willInsertElement:a,didInsertElement:a,willClearRender:a,destroy:function(){this._super.apply(this,arguments),this._currentState.destroy(this)},willDestroyElement:a,parentViewDidChange:a,tagName:null,init:function(){this._super.apply(this,arguments),this.elementId||""===this.tagName||(this.elementId=(0,t.guidFor)(this)),i.environment._ENABLE_DID_INIT_ATTRS_SUPPORT},handleEvent:function(e,t){return this._currentState.handleEvent(this,e,t)}})}),e("ember-views/lib/system/action_manager",["exports"],function(e){"use strict"
+function t(){}e.default=t,t.registeredActions={}}),e("ember-views/lib/system/event_dispatcher",["exports","ember-utils","ember-debug","ember-metal","ember-runtime","ember-views/lib/system/jquery","ember-views/lib/system/action_manager","ember-views/lib/compat/fallback-view-registry"],function(e,t,n,r,i,o,s,a){"use strict"
+var u=void 0!==o.default
+e.default=i.Object.extend({events:{touchstart:"touchStart",touchmove:"touchMove",touchend:"touchEnd",touchcancel:"touchCancel",keydown:"keyDown",keyup:"keyUp",keypress:"keyPress",mousedown:"mouseDown",mouseup:"mouseUp",contextmenu:"contextMenu",click:"click",dblclick:"doubleClick",mousemove:"mouseMove",focusin:"focusIn",focusout:"focusOut",mouseenter:"mouseEnter",mouseleave:"mouseLeave",submit:"submit",input:"input",change:"change",dragstart:"dragStart",drag:"drag",dragenter:"dragEnter",dragleave:"dragLeave",dragover:"dragOver",drop:"drop",dragend:"dragEnd"},rootElement:"body",init:function(){this._super(),this._eventHandlers=Object.create(null)},setup:function(e,n){var i=void 0,s=void 0,a=this._finalEvents=(0,t.assign)({},(0,r.get)(this,"events"),e);(0,r.isNone)(n)||(0,r.set)(this,"rootElement",n)
+var c=(0,r.get)(this,"rootElement")
+if(u){if(s=(0,o.default)(c),s.addClass("ember-application"),!s.is(".ember-application"))throw new TypeError("Unable to add 'ember-application' class to root element ("+(s.selector||s[0].tagName)+"). Make sure you set rootElement to the body or an element in the body.")}else s="string"!=typeof c?c:document.querySelector(c),s.classList.add("ember-application")
+var l=this._getViewRegistry()
+for(i in a)a.hasOwnProperty(i)&&this.setupHandler(s,i,a[i],l)},setupHandler:function(e,t,n,r){var i,o,a
+null!==n&&(u?(e.on(t+".ember",".ember-view",function(e){var t=r[this.id],i=!0
+return t&&(i=t.handleEvent(n,e)),i}),e.on(t+".ember","[data-ember-action]",function(e){var t,r,i,o,a=e.currentTarget.attributes,u=[]
+for(t=0;t<a.length;t++)r=a.item(t),i=r.name,-1!==i.lastIndexOf("data-ember-action-",0)&&(o=s.default.registeredActions[r.value])&&o.eventName===n&&-1===u.indexOf(o)&&(o.handler(e),u.push(o))})):(i=function(e,t){var i=r[e.id],o=!0
+return i&&(o=i.handleEvent(n,t)),o},o=function(e,t){var r,i,o,a,u,c,l,h=e.getAttribute("data-ember-action"),d=s.default.registeredActions[h]
+if(""===h)for(r=e.attributes,i=r.length,d=[],o=0;o<i;o++)a=r.item(o),u=a.name,0===u.indexOf("data-ember-action-")&&(d=d.concat(s.default.registeredActions[a.value]))
+if(d)for(c=0;c<d.length;c++)if((l=d[c])&&l.eventName===n)return l.handler(t)},a=this._eventHandlers[t]=function(e){var t=e.target
+do{if(r[t.id]){if(!1===i(t,e)){e.preventDefault(),e.stopPropagation()
+break}}else if(t.hasAttribute("data-ember-action")&&!1===o(t,e))break
+t=t.parentNode}while(t&&1===t.nodeType)},e.addEventListener(t,a)))},_getViewRegistry:function(){var e=(0,t.getOwner)(this)
+return e&&e.lookup("-view-registry:main")||a.default},destroy:function(){var e=(0,r.get)(this,"rootElement"),t=void 0
+if(t=e.nodeType?e:document.querySelector(e)){if(u)(0,o.default)(e).off(".ember","**")
+else for(var n in this._eventHandlers)t.removeEventListener(n,this._eventHandlers[n])
+return t.classList.remove("ember-application"),this._super.apply(this,arguments)}},toString:function(){return"(EventDispatcher)"}})}),e("ember-views/lib/system/jquery",["exports","ember-environment"],function(e,t){"use strict"
+e.jQueryDisabled=void 0
+var n=void 0
+e.jQueryDisabled=!1
+t.environment.hasDOM&&(n=t.context.imports.jQuery,n?n.event.addProp?n.event.addProp("dataTransfer"):["dragstart","drag","dragenter","dragleave","dragover","drop","dragend"].forEach(function(e){n.event.fixHooks[e]={props:["dataTransfer"]}}):e.jQueryDisabled=!0),e.default=n}),e("ember-views/lib/system/lookup_partial",["exports","ember-debug"],function(e,t){"use strict"
+function n(e){var t=e.split("/"),n=t[t.length-1]
+return t[t.length-1]="_"+n,t.join("/")}function r(e,n,r){if(r){if(!e)throw new t.Error("Container was not found when looking up a views template. This is most likely due to manually instantiating an Ember.View. See: http://git.io/EKPpnA")
+return e.lookup("template:"+n)||e.lookup("template:"+r)}}e.default=function(e,t){if(null!=e){var i=r(t,n(e),e)
+return i}},e.hasPartial=function(e,r){if(!r)throw new t.Error("Container was not found when looking up a views template. This is most likely due to manually instantiating an Ember.View. See: http://git.io/EKPpnA")
+return r.hasRegistration("template:"+n(e))||r.hasRegistration("template:"+e)}}),e("ember-views/lib/system/utils",["exports","ember-utils"],function(e,t){"use strict"
+function n(e){return""!==e.tagName&&e.elementId?e.elementId:(0,t.guidFor)(e)}function r(e){var t=new Set
+return u.set(e,t),t}function i(e,t){var n=[],r=u.get(e)
+return void 0!==r&&r.forEach(function(e){var r=t[e]
+!r||r.isDestroying||r.isDestroyed||n.push(r)}),n}function o(e){return e.renderer.getBounds(e)}function s(e){var t=o(e),n=document.createRange()
+return n.setStartBefore(t.firstNode),n.setEndAfter(t.lastNode),n}e.elMatches=void 0,e.isSimpleClick=function(e){var t=e.shiftKey||e.metaKey||e.altKey||e.ctrlKey,n=e.which>1
+return!t&&!n},e.constructStyleDeprecationMessage=function(e){return'Binding style attributes may introduce cross-site scripting vulnerabilities; please ensure that values being bound are properly escaped. For more information, including how to disable this warning, see https://emberjs.com/deprecations/v1.x/#toc_binding-style-attributes. Style affected: "'+e+'"'},e.getRootViews=function(e){var t=e.lookup("-view-registry:main"),n=[]
+return Object.keys(t).forEach(function(e){var r=t[e]
+null===r.parentView&&n.push(r)}),n},e.getViewId=n,e.getViewElement=function(e){return e[a]},e.initViewElement=function(e){e[a]=null},e.setViewElement=function(e,t){return e[a]=t},e.getChildViews=function(e){return i(e,(0,t.getOwner)(e).lookup("-view-registry:main"))},e.initChildViews=r,e.addChildView=function(e,t){var i=u.get(e)
+void 0===i&&(i=r(e)),i.add(n(t))},e.collectChildViews=i,e.getViewBounds=o,e.getViewRange=s,e.getViewClientRects=function(e){return s(e).getClientRects()},e.getViewBoundingClientRect=function(e){return s(e).getBoundingClientRect()},e.matches=function(e,t){return c.call(e,t)}
+var a=(0,t.symbol)("VIEW_ELEMENT"),u=new WeakMap,c=e.elMatches="undefined"!=typeof Element&&(Element.prototype.matches||Element.prototype.matchesSelector||Element.prototype.mozMatchesSelector||Element.prototype.msMatchesSelector||Element.prototype.oMatchesSelector||Element.prototype.webkitMatchesSelector)}),e("ember-views/lib/utils/lookup-component",["exports"],function(e){"use strict"
+function t(e,t,n,r){var i=e.componentFor(n,t,r)
+return{layout:e.layoutFor(n,t,r),component:i}}e.default=function(e,n,r){var i,o=e.lookup("component-lookup:main")
+return r&&(r.source||r.namespace)&&(i=t(o,e,n,r),i.component||i.layout)?i:t(o,e,n)}}),e("ember-views/lib/views/core_view",["exports","ember-runtime","ember-views/lib/system/utils","ember-views/lib/views/states"],function(e,t,n,r){"use strict"
+var i=t.FrameworkObject.extend(t.Evented,t.ActionHandler,{isView:!0,_states:(0,r.cloneStates)(r.states),init:function(){if(this._super.apply(this,arguments),this._state="preRender",this._currentState=this._states.preRender,(0,n.initViewElement)(this),!this.renderer)throw new Error("Cannot instantiate a component without a renderer. Please ensure that you are creating "+this+" with a proper container/registry.")},parentView:null,instrumentDetails:function(e){return e.object=this.toString(),e.containerKey=this._debugContainerKey,e.view=this,e},trigger:function(e){for(t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r]
+this._super.apply(this,arguments)
+var t,n,r,i=this[e]
+if("function"==typeof i)return i.apply(this,n)},has:function(e){return"function"==typeof this[e]||this._super(e)}})
+i.reopenClass({isViewFactory:!0}),e.default=i}),e("ember-views/lib/views/states",["exports","ember-utils","ember-views/lib/views/states/default","ember-views/lib/views/states/pre_render","ember-views/lib/views/states/has_element","ember-views/lib/views/states/in_dom","ember-views/lib/views/states/destroying"],function(e,t,n,r,i,o,s){"use strict"
+e.states=void 0,e.cloneStates=function(e){var n={}
+n._default={},n.preRender=Object.create(n._default),n.destroying=Object.create(n._default),n.hasElement=Object.create(n._default),n.inDOM=Object.create(n.hasElement)
+for(var r in e)e.hasOwnProperty(r)&&(0,t.assign)(n[r],e[r])
+return n},e.states={_default:n.default,preRender:r.default,inDOM:o.default,hasElement:i.default,destroying:s.default}}),e("ember-views/lib/views/states/default",["exports","ember-debug"],function(e,t){"use strict"
+e.default={appendChild:function(){throw new t.Error("You can't use appendChild outside of the rendering process")},handleEvent:function(){return!0},rerender:function(){},destroy:function(){}}}),e("ember-views/lib/views/states/destroying",["exports","ember-utils","ember-debug","ember-views/lib/views/states/default"],function(e,t,n,r){"use strict"
+var i=Object.create(r.default);(0,t.assign)(i,{appendChild:function(){throw new n.Error("You can't call appendChild on a view being destroyed")},rerender:function(){throw new n.Error("You can't call rerender on a view being destroyed")}}),e.default=i}),e("ember-views/lib/views/states/has_element",["exports","ember-utils","ember-views/lib/views/states/default","ember-metal"],function(e,t,n,r){"use strict"
+var i=Object.create(n.default);(0,t.assign)(i,{rerender:function(e){e.renderer.rerender(e)},destroy:function(e){e.renderer.remove(e)},handleEvent:function(e,t,n){return!e.has(t)||(0,r.flaggedInstrument)("interaction."+t,{event:n,view:e},function(){return(0,r.join)(e,e.trigger,t,n)})}}),e.default=i}),e("ember-views/lib/views/states/in_dom",["exports","ember-utils","ember-metal","ember-debug","ember-views/lib/views/states/has_element"],function(e,t,n,r,i){"use strict"
+var o=Object.create(i.default);(0,t.assign)(o,{enter:function(e){e.renderer.register(e)},exit:function(e){e.renderer.unregister(e)}}),e.default=o}),e("ember-views/lib/views/states/pre_render",["exports","ember-views/lib/views/states/default"],function(e,t){"use strict"
+e.default=Object.create(t.default)}),e("ember/features",["exports","ember-environment","ember-utils"],function(e,t,n){"use strict"
+e.FEATURES=e.DEFAULT_FEATURES=void 0
+var r=e.DEFAULT_FEATURES={"features-stripped-test":!1,"ember-libraries-isregistered":!1,"ember-improved-instrumentation":!1,"ember-glimmer-named-arguments":!0,"ember-routing-router-service":!0,"ember-engines-mount-params":!0,"ember-module-unification":!1,"glimmer-custom-component-manager":!1,"ember-template-block-let-helper":!0,"ember-metal-tracked-properties":!1,"ember-glimmer-detect-backtracking-rerender":!1}
+e.FEATURES=(0,n.assign)(r,t.ENV.FEATURES)}),e("ember/index",["exports","require","ember-environment","node-module","ember-utils","container","ember-metal","ember/features","ember-debug","backburner","ember-console","ember-runtime","ember-glimmer","ember/version","ember-views","ember-routing","ember-application","ember-extension-support"],function(e,t,n,r,i,o,s,a,u,c,l,h,d,p,f,g,m,v){"use strict"
+var y,b="object"==typeof n.context.imports.Ember&&n.context.imports.Ember||{}
+b.isNamespace=!0,b.toString=function(){return"Ember"},Object.defineProperty(b,"ENV",{get:n.getENV,enumerable:!1}),Object.defineProperty(b,"lookup",{get:n.getLookup,set:n.setLookup,enumerable:!1}),Object.defineProperty(b,"EXTEND_PROTOTYPES",{enumerable:!1,get:function(){return n.ENV.EXTEND_PROTOTYPES}}),b.getOwner=i.getOwner,b.setOwner=i.setOwner,b.generateGuid=i.generateGuid,b.GUID_KEY=i.GUID_KEY,b.guidFor=i.guidFor,b.inspect=i.inspect,b.makeArray=i.makeArray,b.canInvoke=i.canInvoke,b.tryInvoke=i.tryInvoke,b.wrap=i.wrap,b.uuid=i.uuid,b.assign=i.assign,b.NAME_KEY=i.NAME_KEY,b.Container=o.Container,b.Registry=o.Registry,b.assert=u.assert,b.warn=u.warn,b.debug=u.debug,b.deprecate=u.deprecate,b.deprecateFunc=u.deprecateFunc,b.runInDebug=u.runInDebug,b.Error=u.Error,b.Debug={registerDeprecationHandler:u.registerDeprecationHandler,registerWarnHandler:u.registerWarnHandler}
+var C=s._globalsComputed
+b.computed=C,C.alias=s.alias,b.ComputedProperty=s.ComputedProperty,b.cacheFor=s.getCachedValueFor,b.merge=s.merge,b.instrument=s.instrument,b.subscribe=s.instrumentationSubscribe,b.Instrumentation={instrument:s.instrument,subscribe:s.instrumentationSubscribe,unsubscribe:s.instrumentationUnsubscribe,reset:s.instrumentationReset},b.meta=s.meta,b.get=s.get,b.getWithDefault=s.getWithDefault,b._getPath=s._getPath,b.set=s.set,b.trySet=s.trySet,b.FEATURES=a.FEATURES,b.FEATURES.isEnabled=u.isFeatureEnabled,b._Cache=s.Cache,b.on=s.on,b.addListener=s.addListener,b.removeListener=s.removeListener,b.sendEvent=s.sendEvent,b.hasListeners=s.hasListeners,b.isNone=s.isNone,b.isEmpty=s.isEmpty,b.isBlank=s.isBlank,b.isPresent=s.isPresent,b.run=s._globalsRun,b.run.backburner=s.backburner,b.run.begin=s.begin,b.run.bind=s.bind
+b.run.cancel=s.cancel,b.run.debounce=s.debounce,b.run.end=s.end,b.run.hasScheduledTimers=s.hasScheduledTimers,b.run.join=s.join,b.run.later=s.later,b.run.next=s.next,b.run.once=s.once,b.run.schedule=s.schedule,b.run.scheduleOnce=s.scheduleOnce,b.run.throttle=s.throttle,b.run.cancelTimers=s.cancelTimers,Object.defineProperty(b.run,"currentRunLoop",{get:s.getCurrentRunLoop,enumerable:!1}),b.propertyWillChange=s.propertyWillChange,b.propertyDidChange=s.propertyDidChange,b.notifyPropertyChange=s.notifyPropertyChange,b.overrideChains=s.overrideChains,b.beginPropertyChanges=s.beginPropertyChanges,b.endPropertyChanges=s.endPropertyChanges,b.changeProperties=s.changeProperties,b.platform={defineProperty:!0,hasPropertyAccessors:!0},b.defineProperty=s.defineProperty,b.watchKey=s.watchKey,b.unwatchKey=s.unwatchKey,b.removeChainWatcher=s.removeChainWatcher,b._ChainNode=s.ChainNode,b.finishChains=s.finishChains,b.watchPath=s.watchPath,b.unwatchPath=s.unwatchPath,b.watch=s.watch
+b.isWatching=s.isWatching,b.unwatch=s.unwatch,b.destroy=s.deleteMeta,b.libraries=s.libraries,b.OrderedSet=s.OrderedSet,b.Map=s.Map,b.MapWithDefault=s.MapWithDefault,b.getProperties=s.getProperties,b.setProperties=s.setProperties,b.expandProperties=s.expandProperties,b.addObserver=s.addObserver,b.removeObserver=s.removeObserver,b.aliasMethod=s.aliasMethod,b.observer=s.observer,b.mixin=s.mixin,b.Mixin=s.Mixin,Object.defineProperty(b,"onerror",{get:s.getOnerror,set:s.setOnerror,enumerable:!1}),Object.defineProperty(b,"testing",{get:u.isTesting,set:u.setTesting,enumerable:!1}),b._Backburner=c.default,b.Logger=l.default,b.A=h.A,b.String=h.String,b.Object=h.Object,b._RegistryProxyMixin=h.RegistryProxyMixin,b._ContainerProxyMixin=h.ContainerProxyMixin,b.compare=h.compare,b.copy=h.copy,b.isEqual=h.isEqual,b.inject=h.inject,b.Array=h.Array
+b.Comparable=h.Comparable,b.Enumerable=h.Enumerable,b.ArrayProxy=h.ArrayProxy,b.ObjectProxy=h.ObjectProxy,b.ActionHandler=h.ActionHandler,b.CoreObject=h.CoreObject,b.NativeArray=h.NativeArray,b.Copyable=h.Copyable,b.MutableEnumerable=h.MutableEnumerable,b.MutableArray=h.MutableArray,b.TargetActionSupport=h.TargetActionSupport,b.Evented=h.Evented,b.PromiseProxyMixin=h.PromiseProxyMixin,b.Observable=h.Observable,b.typeOf=h.typeOf,b.isArray=h.isArray,b.Object=h.Object,b.onLoad=h.onLoad,b.runLoadHooks=h.runLoadHooks,b.Controller=h.Controller,b.ControllerMixin=h.ControllerMixin,b.Service=h.Service,b._ProxyMixin=h._ProxyMixin,b.RSVP=h.RSVP,b.Namespace=h.Namespace,C.empty=h.empty,C.notEmpty=h.notEmpty,C.none=h.none,C.not=h.not,C.bool=h.bool
+C.match=h.match,C.equal=h.equal,C.gt=h.gt,C.gte=h.gte,C.lt=h.lt,C.lte=h.lte,C.oneWay=h.oneWay,C.reads=h.oneWay,C.readOnly=h.readOnly,C.deprecatingAlias=h.deprecatingAlias,C.and=h.and,C.or=h.or,C.sum=h.sum,C.min=h.min,C.max=h.max,C.map=h.map,C.sort=h.sort,C.setDiff=h.setDiff,C.mapBy=h.mapBy,C.filter=h.filter,C.filterBy=h.filterBy,C.uniq=h.uniq,C.uniqBy=h.uniqBy,C.union=h.union,C.intersect=h.intersect,C.collect=h.collect,Object.defineProperty(b,"STRINGS",{configurable:!1,get:h.getStrings,set:h.setStrings}),Object.defineProperty(b,"BOOTED",{configurable:!1,enumerable:!1,get:s.isNamespaceSearchDisabled,set:s.setNamespaceSearchDisabled}),b.Component=d.Component,d.Helper.helper=d.helper
+b.Helper=d.Helper,b.Checkbox=d.Checkbox,b.TextField=d.TextField,b.TextArea=d.TextArea,b.LinkComponent=d.LinkComponent,b._setComponentManager=d.componentManager,b.Handlebars={template:d.template,Utils:{escapeExpression:d.escapeExpression}},b.HTMLBars={template:d.template},n.ENV.EXTEND_PROTOTYPES.String&&(String.prototype.htmlSafe=function(){return(0,d.htmlSafe)(this)}),h.String.htmlSafe=d.htmlSafe,h.String.isHTMLSafe=d.isHTMLSafe,Object.defineProperty(b,"TEMPLATES",{get:d.getTemplates,set:d.setTemplates,configurable:!1,enumerable:!1}),b.VERSION=p.default,b.$=f.jQuery,b.ViewUtils={isSimpleClick:f.isSimpleClick,getViewElement:f.getViewElement,getViewBounds:f.getViewBounds,getViewClientRects:f.getViewClientRects,getViewBoundingClientRect:f.getViewBoundingClientRect,getRootViews:f.getRootViews,getChildViews:f.getChildViews,isSerializationFirstNode:d.isSerializationFirstNode},b.TextSupport=f.TextSupport,b.ComponentLookup=f.ComponentLookup,b.EventDispatcher=f.EventDispatcher,b.Location=g.Location,b.AutoLocation=g.AutoLocation,b.HashLocation=g.HashLocation,b.HistoryLocation=g.HistoryLocation,b.NoneLocation=g.NoneLocation,b.controllerFor=g.controllerFor,b.generateControllerFactory=g.generateControllerFactory,b.generateController=g.generateController,b.RouterDSL=g.RouterDSL,b.Router=g.Router,b.Route=g.Route,b.Application=m.Application
+b.ApplicationInstance=m.ApplicationInstance,b.Engine=m.Engine,b.EngineInstance=m.EngineInstance,b.DefaultResolver=b.Resolver=m.Resolver,(0,h.runLoadHooks)("Ember.Application",m.Application),b.DataAdapter=v.DataAdapter,b.ContainerDebugAdapter=v.ContainerDebugAdapter,(0,t.has)("ember-template-compiler")&&(0,t.default)("ember-template-compiler"),(0,t.has)("ember-testing")&&(y=(0,t.default)("ember-testing"),b.Test=y.Test,b.Test.Adapter=y.Adapter,b.Test.QUnitAdapter=y.QUnitAdapter,b.setupForTesting=y.setupForTesting),(0,h.runLoadHooks)("Ember"),e.default=b,r.IS_NODE?r.module.exports=b:n.context.exports.Ember=n.context.exports.Em=b}),e("ember/version",["exports"],function(e){"use strict"
+e.default="3.2.0"}),e("node-module",["exports"],function(e){var t="object"==typeof module&&"function"==typeof module.require
+t?(e.require=module.require,e.module=module,e.IS_NODE=t):(e.require=null,e.module=null,e.IS_NODE=t)})
+e("route-recognizer",["exports"],function(e){"use strict"
+function t(){var e=m(null)
+return e.__=void 0,delete e.__,e}function n(e,t,r){return function(i,o){var s=e+i
+if(!o)return new v(s,t,r)
+o(n(s,t,r))}}function r(e,t,n){var r,i=0
+for(r=0;r<e.length;r++)i+=e[r].path.length
+t=t.substr(i)
+var o={path:t,handler:n}
+e.push(o)}function i(e,t,n,o){var s,a,u,c,l=t.routes,h=Object.keys(l)
+for(s=0;s<h.length;s++)a=h[s],u=e.slice(),r(u,a,l[a]),c=t.children[a],c?i(u,c,n,o):n.call(o,u)}function o(e){return e.split("/").map(s).join("/")}function s(e){return e.length<3||-1===e.indexOf("%")?e:decodeURIComponent(e).replace(b,encodeURIComponent)}function a(e){return encodeURIComponent(e).replace(C,decodeURIComponent)}function u(e,t){if("object"!=typeof e||null===e)throw new Error("You must pass an object as the second argument to `generate`.")
+if(!I.call(e,t))throw new Error("You must provide param `"+t+"` to `generate`.")
+var n=e[t],r="string"==typeof n?n:""+n
+if(0===r.length)throw new Error("You must provide a param `"+t+"`.")
+return r}function c(e,t,n){t.length>0&&47===t.charCodeAt(0)&&(t=t.substr(1))
+var r,i,o,a,u=t.split("/"),c=void 0,l=void 0
+for(r=0;r<u.length;r++)i=u[r],o=0,a=0,a=""===i?4:58===i.charCodeAt(0)?1:42===i.charCodeAt(0)?2:0,o=2<<a,12&o&&(i=i.slice(1),c=c||[],c.push(i),l=l||[],l.push(0!=(4&o))),14&o&&n[a]++,e.push({type:a,value:s(i)})
+return{names:c||E,shouldDecodes:l||E}}function l(e,t,n){return e.char===t&&e.negate===n}function h(e,t){return e.negate?e.char!==t&&-1!==e.char:e.char===t||-1===e.char}function d(e){return e.sort(function(e,t){var n=e.types||[0,0,0],r=n[0],i=n[1],o=n[2],s=t.types||[0,0,0],a=s[0],u=s[1],c=s[2]
+if(o!==c)return o-c
+if(o){if(r!==a)return a-r
+if(i!==u)return u-i}return i!==u?i-u:r!==a?a-r:0})}function p(e,t){var n,r,i,o=[]
+for(n=0,r=e.length;n<r;n++)i=e[n],o=o.concat(i.match(t))
+return o}function f(e,t,n){var r,i,o,s,a,u,c,l,h,d=e.handlers,p=e.regex()
+if(!p||!d)throw new Error("state not initialized")
+var f=t.match(p),g=1,m=new T(n)
+for(m.length=d.length,r=0;r<d.length;r++){if(i=d[r],o=i.names,s=i.shouldDecodes,a=j,u=!1,o!==E&&s!==E)for(c=0;c<o.length;c++)u=!0,l=o[c],h=f&&f[g++],a===j&&(a={}),P.ENCODE_AND_DECODE_PATH_SEGMENTS&&s[c]?a[l]=h&&decodeURIComponent(h):a[l]=h
+m[r]={handler:i.handler,params:a,isDynamic:u}}return m}function g(e){e=e.replace(/\+/gm,"%20")
+var t
+try{t=decodeURIComponent(e)}catch(e){t=""}return t}var m=Object.create,v=function(e,t,n){this.path=e,this.matcher=t,this.delegate=n}
+v.prototype.to=function(e,t){var n=this.delegate
+if(n&&n.willAddRoute&&(e=n.willAddRoute(this.matcher.target,e)),this.matcher.add(this.path,e),t){if(0===t.length)throw new Error("You must have an argument in the function passed to `to`")
+this.matcher.addChild(this.path,e,t,this.delegate)}}
+var y=function(e){this.routes=t(),this.children=t(),this.target=e}
+y.prototype.add=function(e,t){this.routes[e]=t},y.prototype.addChild=function(e,t,r,i){var o=new y(t)
+this.children[e]=o
+var s=n(e,o,i)
+i&&i.contextEntered&&i.contextEntered(t,s),r(s)}
+var b=/%|\//g,C=/%(?:2(?:4|6|B|C)|3(?:B|D|A)|40)/g,A=/(\/|\.|\*|\+|\?|\||\(|\)|\[|\]|\{|\}|\\)/g,_=Array.isArray,I=Object.prototype.hasOwnProperty,w=[]
+w[0]=function(e,t){var n,r,i=t,o=e.value
+for(n=0;n<o.length;n++)r=o.charCodeAt(n),i=i.put(r,!1,!1)
+return i},w[1]=function(e,t){return t.put(47,!0,!0)},w[2]=function(e,t){return t.put(-1,!1,!0)},w[4]=function(e,t){return t}
+var x=[]
+x[0]=function(e){return e.value.replace(A,"\\$1")},x[1]=function(){return"([^/]+)"},x[2]=function(){return"(.+)"},x[4]=function(){return""}
+var k=[]
+k[0]=function(e){return e.value},k[1]=function(e,t){var n=u(t,e.value)
+return P.ENCODE_AND_DECODE_PATH_SEGMENTS?a(n):n},k[2]=function(e,t){return u(t,e.value)},k[4]=function(){return""}
+var j=Object.freeze({}),E=Object.freeze([]),S=function(e,t,n,r,i){this.states=e,this.id=t,this.char=n,this.negate=r,this.nextStates=i?t:null,this.pattern="",this._regex=void 0,this.handlers=void 0,this.types=void 0}
+S.prototype.regex=function(){return this._regex||(this._regex=new RegExp(this.pattern)),this._regex},S.prototype.get=function(e,t){var n,r,i,o=this,s=this.nextStates
+if(null!==s)if(_(s)){for(n=0;n<s.length;n++)if(r=o.states[s[n]],l(r,e,t))return r}else if(i=this.states[s],l(i,e,t))return i},S.prototype.put=function(e,t,n){var r
+if(r=this.get(e,t))return r
+var i=this.states
+return r=new S(i,i.length,e,t,n),i[i.length]=r,null==this.nextStates?this.nextStates=r.id:_(this.nextStates)?this.nextStates.push(r.id):this.nextStates=[this.nextStates,r.id],r},S.prototype.match=function(e){var t,n,r,i=this,o=this.nextStates
+if(!o)return[]
+var s=[]
+if(_(o))for(t=0;t<o.length;t++)n=i.states[o[t]],h(n,e)&&s.push(n)
+else r=this.states[o],h(r,e)&&s.push(r)
+return s}
+var T=function(e){this.length=0,this.queryParams=e||{}}
+T.prototype.splice=Array.prototype.splice,T.prototype.slice=Array.prototype.slice,T.prototype.push=Array.prototype.push
+var P=function(){this.names=t()
+var e=[],n=new S(e,0,-1,!0,!1)
+e[0]=n,this.states=e,this.rootState=n}
+P.prototype.add=function(e,t){var n,r,i,o,s,a,u=this.rootState,l="^",h=[0,0,0],d=new Array(e.length),p=[],f=!0,g=0
+for(n=0;n<e.length;n++){for(r=e[n],i=c(p,r.path,h),o=i.names,s=i.shouldDecodes;g<p.length;g++)a=p[g],4!==a.type&&(f=!1,u=u.put(47,!1,!1),l+="/",u=w[a.type](a,u),l+=x[a.type](a))
+d[n]={handler:r.handler,names:o,shouldDecodes:s}}f&&(u=u.put(47,!1,!1),l+="/"),u.handlers=d,u.pattern=l+"$",u.types=h
+var m
+"object"==typeof t&&null!==t&&t.as&&(m=t.as),m&&(this.names[m]={segments:p,handlers:d})},P.prototype.handlersFor=function(e){var t,n,r=this.names[e]
+if(!r)throw new Error("There is no route named "+e)
+var i=new Array(r.handlers.length)
+for(t=0;t<r.handlers.length;t++)n=r.handlers[t],i[t]=n
+return i},P.prototype.hasRoute=function(e){return!!this.names[e]},P.prototype.generate=function(e,t){var n,r,i=this.names[e],o=""
+if(!i)throw new Error("There is no route named "+e)
+var s=i.segments
+for(n=0;n<s.length;n++)r=s[n],4!==r.type&&(o+="/",o+=k[r.type](r,t))
+return"/"!==o.charAt(0)&&(o="/"+o),t&&t.queryParams&&(o+=this.generateQueryString(t.queryParams)),o},P.prototype.generateQueryString=function(e){var t,n,r,i,o,s,a=[],u=Object.keys(e)
+for(u.sort(),t=0;t<u.length;t++)if(n=u[t],null!=(r=e[n]))if(i=encodeURIComponent(n),_(r))for(o=0;o<r.length;o++)s=n+"[]="+encodeURIComponent(r[o]),a.push(s)
+else i+="="+encodeURIComponent(r),a.push(i)
+return 0===a.length?"":"?"+a.join("&")},P.prototype.parseQueryString=function(e){var t,n,r,i,o,s,a=e.split("&"),u={}
+for(t=0;t<a.length;t++)n=a[t].split("="),r=g(n[0]),i=r.length,o=!1,s=void 0,1===n.length?s="true":(i>2&&"[]"===r.slice(i-2)&&(o=!0,r=r.slice(0,i-2),u[r]||(u[r]=[])),s=n[1]?g(n[1]):""),o?u[r].push(s):u[r]=s
+return u},P.prototype.recognize=function(e){var t,n,r,i,s=[this.rootState],a={},u=!1,c=e.indexOf("#");-1!==c&&(e=e.substr(0,c))
+var l=e.indexOf("?");-1!==l&&(n=e.substr(l+1,e.length),e=e.substr(0,l),a=this.parseQueryString(n)),"/"!==e.charAt(0)&&(e="/"+e)
+var h=e
+P.ENCODE_AND_DECODE_PATH_SEGMENTS?e=o(e):(e=decodeURI(e),h=decodeURI(h))
+var g=e.length
+for(g>1&&"/"===e.charAt(g-1)&&(e=e.substr(0,g-1),h=h.substr(0,h.length-1),u=!0),r=0;r<e.length&&(s=p(s,e.charCodeAt(r)),s.length);r++);var m=[]
+for(i=0;i<s.length;i++)s[i].handlers&&m.push(s[i])
+s=d(m)
+var v=m[0]
+return v&&v.handlers&&(u&&v.pattern&&"(.+)$"===v.pattern.slice(-5)&&(h+="/"),t=f(v,h,a)),t},P.VERSION="0.3.3",P.ENCODE_AND_DECODE_PATH_SEGMENTS=!0,P.Normalizer={normalizeSegment:s,normalizePath:o,encodePathSegment:a},P.prototype.map=function(e,t){var r=new y
+e(n("",r,this.delegate)),i([],r,function(e){t?t(this,e):this.add(e)},this)},e.default=P}),e("router",["exports","ember-babel","rsvp","route-recognizer"],function(e,t,n,r){"use strict"
+function i(e){return("object"==typeof e&&null!==e||"function"==typeof e)&&"function"==typeof e.then}function o(e,t){for(var n in t)L.call(t,n)&&(e[n]=t[n])}function s(e){var t=e&&e.length,n=void 0,r=void 0
+return t&&t>0&&e[t-1]&&e[t-1].hasOwnProperty("queryParams")?(r=e[t-1].queryParams,n=M.call(e,0,t-1),[n,r]):[e,null]}function a(e){var t,n,r
+for(var i in e)if("number"==typeof(t=e[i]))e[i]=""+t
+else if(Array.isArray(t))for(n=0,r=t.length;n<r;n++)t[n]=""+t[n]}function u(e,t,n){e.log&&(3===arguments.length?e.log("Transition #"+t+": "+n):(n=t,e.log(n)))}function c(e){return"string"==typeof e||e instanceof String||"number"==typeof e||e instanceof Number}function l(e,t){var n,r
+for(n=0,r=e.length;n<r&&!1!==t(e[n]);n++);}function h(e,t,n,r){function i(e,t,n){n.events[e].apply(n,t)}if(e.triggerEvent)return void e.triggerEvent(t,n,r)
+var o,s,a,u=r.shift()
+if(!t){if(n)return
+throw new Error("Could not trigger event '"+u+"'. There are no active handlers")}var c=!1
+for(o=t.length-1;o>=0;o--)if(s=t[o],a=s.handler){if(a.events&&a.events[u]){if(!0!==a.events[u].apply(a,r))return
+c=!0}}else s.handlerPromise.then(i.bind(null,u,r))
+if("error"===u&&"UnrecognizedURLError"===r[0].name)throw r[0]
+if(!c&&!n)throw new Error("Nothing handled the event '"+u+"'.")}function d(e,t){var n,r,i=void 0,s={all:{},changed:{},removed:{}}
+o(s.all,t)
+var u=!1
+a(e),a(t)
+for(i in e)L.call(e,i)&&(L.call(t,i)||(u=!0,s.removed[i]=e[i]))
+for(i in t)if(L.call(t,i))if(Array.isArray(e[i])&&Array.isArray(t[i]))if(e[i].length!==t[i].length)s.changed[i]=t[i],u=!0
+else for(n=0,r=e[i].length;n<r;n++)e[i][n]!==t[i][n]&&(s.changed[i]=t[i],u=!0)
+else e[i]!==t[i]&&(s.changed[i]=t[i],u=!0)
+return u?s:void 0}function p(e){return"Router: "+e}function f(e,t){if(e){var n="_"+t
+return e[n]&&n||e[t]&&t}}function g(e,t,n,r){var i=f(e,t)
+return i&&e[i].call(e,n,r)}function m(e,t,n){var r=f(e,t)
+if(r)return 0===n.length?e[r].call(e):1===n.length?e[r].call(e,n[0]):2===n.length?e[r].call(e,n[0],n[1]):e[r].apply(e,n)}function v(e){if(!(this instanceof v))return new v(e)
+var t=Error.call(this,e)
+Error.captureStackTrace?Error.captureStackTrace(this,v):this.stack=t.stack,this.description=t.description,this.fileName=t.fileName,this.lineNumber=t.lineNumber,this.message=t.message||"TransitionAborted",this.name="TransitionAborted",this.number=t.number,this.code=t.code}function y(e){return u(e.router,e.sequence,"detected abort."),new v}function b(e,t){if(!e^!t)return!1
+if(!e)return!0
+for(var n in e)if(e.hasOwnProperty(n)&&e[n]!==t[n])return!1
+return!0}function C(e,t){var n=C.klasses[e],r=new n(t||{})
+return r.factory=C,r}function A(e){if(!(this instanceof A))return new A(e)
+var t=Error.call(this,e)
+Error.captureStackTrace?Error.captureStackTrace(this,A):this.stack=t.stack,this.description=t.description,this.fileName=t.fileName,this.lineNumber=t.lineNumber,this.message=t.message||"UnrecognizedURL",this.name="UnrecognizedURLError",this.number=t.number,this.code=t.code}function _(e,t){var n,r=!!this.activeTransition,i=r?this.activeTransition.state:this.state,o=e.applyToState(i,this.recognizer,this.getHandler,t,this.getSerializer),s=d(i.queryParams,o.queryParams)
+return T(o.handlerInfos,i.handlerInfos)?s&&(n=this.queryParamsTransition(s,r,i,o))?(n.queryParamsOnly=!0,n):this.activeTransition||new z(this):t?void w(this,o):(n=new z(this,e,o,void 0,this.activeTransition),P(o.handlerInfos,i.handlerInfos)&&(n.queryParamsOnly=!0),this.activeTransition&&this.activeTransition.abort(),this.activeTransition=n,n.promise=n.promise.then(function(e){return E(n,e.state)},null,p("Settle transition promise when transition is finalized")),r||N(this,o,n),I(this,o,s),n)}function I(e,t,n){n&&(e._changedQueryParams=n.all,h(e,t.handlerInfos,!0,["queryParamsDidChange",n.changed,n.all,n.removed]),e._changedQueryParams=null)}function w(e,t,n){var r,i,o,s=k(e.state,t)
+for(r=0,i=s.exited.length;r<i;r++)o=s.exited[r].handler,delete o.context,g(o,"reset",!0,n),g(o,"exit",n)
+var a=e.oldState=e.state
+e.state=t
+var u=e.currentHandlerInfos=s.unchanged.slice()
+try{for(r=0,i=s.reset.length;r<i;r++)o=s.reset[r].handler,g(o,"reset",!1,n)
+for(r=0,i=s.updatedContext.length;r<i;r++)x(u,s.updatedContext[r],!1,n)
+for(r=0,i=s.entered.length;r<i;r++)x(u,s.entered[r],!0,n)}catch(t){throw e.state=a,e.currentHandlerInfos=a.handlerInfos,t}e.state.queryParams=R(e,u,t.queryParams,n)}function x(e,t,n,r){function i(i){if(n&&g(i,"enter",r),r&&r.isAborted)throw new v
+if(i.context=s,g(i,"contextDidChange"),g(i,"setup",s,r),r&&r.isAborted)throw new v
+e.push(t)}var o=t.handler,s=t.context
+return o?i(o):t.handlerPromise=t.handlerPromise.then(i),!0}function k(e,t){var n,r,i,o,s,a=e.handlerInfos,u=t.handlerInfos,c={updatedContext:[],exited:[],entered:[],unchanged:[],reset:void 0},l=!1
+for(o=0,s=u.length;o<s;o++)n=a[o],r=u[o],n&&n.handler===r.handler||(i=!0),i?(c.entered.push(r),n&&c.exited.unshift(n)):l||n.context!==r.context?(l=!0,c.updatedContext.push(r)):c.unchanged.push(n)
+for(o=u.length,s=a.length;o<s;o++)c.exited.unshift(a[o])
+return c.reset=c.updatedContext.slice(),c.reset.reverse(),c}function j(e,t){var n,r,i,s,a,u,c,l=e.urlMethod
+if(l){var h=e.router,d=t.handlerInfos,p=d[d.length-1].name,f={}
+for(n=d.length-1;n>=0;--n)r=d[n],o(f,r.params),r.handler.inaccessibleByURL&&(l=null)
+l&&(f.queryParams=e._visibleQueryParams||t.queryParams,i=h.recognizer.generate(p,f),s=e.isCausedByInitialTransition,a="replace"===l&&!e.isCausedByAbortingTransition,u=e.queryParamsOnly&&"replace"===l,c="replace"===l&&e.isCausedByAbortingReplaceTransition,s||a||u||c?h.replaceURL(i):h.updateURL(i))}}function E(e,t){var r,i,o
+try{return u(e.router,e.sequence,"Resolved all models on destination route; finalizing transition."),(r=e.router,i=t.handlerInfos,w(r,t,e),e.isAborted)?(r.state.handlerInfos=r.currentHandlerInfos,n.Promise.reject(y(e))):(j(e,t,e.intent.url),e.isActive=!1,r.activeTransition=null,h(r,r.currentHandlerInfos,!0,["didTransition"]),r.didTransition&&r.didTransition(r.currentHandlerInfos),u(r,e.sequence,"TRANSITION COMPLETE."),i[i.length-1].handler)}catch(t){throw t instanceof v||(o=e.state.handlerInfos,e.trigger(!0,"error",t,e,o[o.length-1].handler),e.abort()),t}}function S(e,t,n){var r,i=t[0]||"/",o=t[t.length-1],s={}
+o&&o.hasOwnProperty("queryParams")&&(s=Y.call(t).queryParams)
+var a
+return 0===t.length?(u(e,"Updating query params"),r=e.state.handlerInfos,a=new W({name:r[r.length-1].name,contexts:[],queryParams:s})):"/"===i.charAt(0)?(u(e,"Attempting URL transition to "+i),a=new G({url:i})):(u(e,"Attempting transition to "+i),a=new W({name:t[0],contexts:M.call(t,1),queryParams:s})),e.transitionByIntent(a,n)}function T(e,t){var n,r
+if(e.length!==t.length)return!1
+for(n=0,r=e.length;n<r;++n)if(e[n]!==t[n])return!1
+return!0}function P(e,t){var n,r
+if(e.length!==t.length)return!1
+for(n=0,r=e.length;n<r;++n){if(e[n].name!==t[n].name)return!1
+if(!O(e[n].params,t[n].params))return!1}return!0}function O(e,t){if(!e&&!t)return!0
+if(!e&&t||e&&!t)return!1
+var n,r,i,o=Object.keys(e),s=Object.keys(t)
+if(o.length!==s.length)return!1
+for(n=0,r=o.length;n<r;++n)if(i=o[n],e[i]!==t[i])return!1
+return!0}function R(e,t,n,r){for(var i in n)n.hasOwnProperty(i)&&null===n[i]&&delete n[i]
+var o,s,a,u=[]
+h(e,t,!0,["finalizeQueryParamChange",n,u,r]),r&&(r._visibleQueryParams={})
+var c={}
+for(o=0,s=u.length;o<s;++o)a=u[o],c[a.key]=a.value,r&&!1!==a.visible&&(r._visibleQueryParams[a.key]=a.value)
+return c}function N(e,t,n){var r,i,o,s,a=e.state.handlerInfos
+for(i=a.length,r=0;r<i&&(o=a[r],(s=t.handlerInfos[r])&&o.name===s.name);r++)s.isResolved
+h(e,a,!0,["willTransition",n]),e.willTransition&&e.willTransition(a,t.handlerInfos,n)}e.Transition=void 0
+var M=Array.prototype.slice,L=Object.prototype.hasOwnProperty,D=function(){function e(){this.handlerInfos=[],this.queryParams={},this.params={}}return e.prototype.promiseLabel=function(e){var t=""
+return l(this.handlerInfos,function(e){""!==t&&(t+="."),t+=e.name}),p("'"+t+"': "+e)},e.prototype.resolve=function(e){function t(){return n.Promise.resolve(e(),u.promiseLabel("Check if should continue")).catch(function(e){return c=!0,n.Promise.reject(e)},u.promiseLabel("Handle abort"))}function r(e){var t=u.handlerInfos,r=s.resolveIndex>=t.length?t.length-1:s.resolveIndex
+return n.Promise.reject({error:e,handlerWithError:u.handlerInfos[r].handler,wasAborted:c,state:u})}function i(e){var n,r=u.handlerInfos[s.resolveIndex].isResolved
+return u.handlerInfos[s.resolveIndex++]=e,r||(n=e.handler,g(n,"redirect",e.context,s)),t().then(o,null,u.promiseLabel("Resolve handler"))}function o(){return s.resolveIndex===u.handlerInfos.length?{error:null,state:u}:u.handlerInfos[s.resolveIndex].resolve(t,s).then(i,null,u.promiseLabel("Proceed"))}var s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=this.params
+l(this.handlerInfos,function(e){a[e.name]=e.params||{}}),s.resolveIndex=0
+var u=this,c=!1
+return n.Promise.resolve(null,this.promiseLabel("Start transition")).then(o,null,this.promiseLabel("Resolve handler")).catch(r,this.promiseLabel("Handle error"))},e}()
+v.prototype=Object.create(Error.prototype)
+var z=function(){function e(e,t,r,i,o){var s,a,u,c=this
+if(this.state=r||e.state,this.intent=t,this.router=e,this.data=this.intent&&this.intent.data||{},this.resolvedModels={},this.queryParams={},this.promise=void 0,this.error=void 0,this.params=void 0,this.handlerInfos=void 0,this.targetName=void 0,this.pivotHandler=void 0,this.sequence=void 0,this.isAborted=!1,this.isActive=!0,this.urlMethod="update",this.resolveIndex=0,this.queryParamsOnly=!1,this.isTransition=!0,i)return this.promise=n.Promise.reject(i),void(this.error=i)
+if(this.isCausedByAbortingTransition=!!o,this.isCausedByInitialTransition=o&&(o.isCausedByInitialTransition||0===o.sequence),this.isCausedByAbortingReplaceTransition=o&&"replace"==o.urlMethod&&(!o.isCausedByAbortingTransition||o.isCausedByAbortingReplaceTransition),r){for(this.params=r.params,this.queryParams=r.queryParams,this.handlerInfos=r.handlerInfos,s=r.handlerInfos.length,s&&(this.targetName=r.handlerInfos[s-1].name),a=0;a<s&&(u=r.handlerInfos[a],u.isResolved);++a)this.pivotHandler=u.handler
+this.sequence=e.currentSequence++,this.promise=r.resolve(function(){if(c.isAborted)return n.Promise.reject(void 0,p("Transition aborted - reject"))},this).catch(function(e){return e.wasAborted||c.isAborted?n.Promise.reject(y(c)):(c.trigger("error",e.error,c,e.handlerWithError),c.abort(),n.Promise.reject(e.error))},p("Handle Abort"))}else this.promise=n.Promise.resolve(this.state),this.params={}}return e.prototype.isExiting=function(e){var t,n,r,i=this.handlerInfos
+for(t=0,n=i.length;t<n;++t)if(r=i[t],r.name===e||r.handler===e)return!1
+return!0},e.prototype.then=function(e,t,n){return this.promise.then(e,t,n)},e.prototype.catch=function(e,t){return this.promise.catch(e,t)},e.prototype.finally=function(e,t){return this.promise.finally(e,t)},e.prototype.abort=function(){return this.isAborted?this:(u(this.router,this.sequence,this.targetName+": transition was aborted"),this.intent.preTransitionState=this.router.state,this.isAborted=!0,this.isActive=!1,this.router.activeTransition=null,this)},e.prototype.retry=function(){this.abort()
+var e=this.router.transitionByIntent(this.intent,!1)
+return null!==this.urlMethod&&e.method(this.urlMethod),e},e.prototype.method=function(e){return this.urlMethod=e,this},e.prototype.trigger=function(e){var t=M.call(arguments)
+"boolean"==typeof e?t.shift():e=!1,h(this.router,this.state.handlerInfos.slice(0,this.resolveIndex+1),e,t)},e.prototype.followRedirects=function(){var e=this.router
+return this.promise.catch(function(t){return e.activeTransition?e.activeTransition.followRedirects():n.Promise.reject(t)})},e.prototype.toString=function(){return"Transition (sequence "+this.sequence+")"},e.prototype.log=function(e){u(this.router,this.sequence,e)},e}()
+z.prototype.send=z.prototype.trigger
+var F=function(){this.data=this.data||{}},B=Object.freeze({}),H=function(){function e(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}
+this._handler=B,this._handlerPromise=null,this.factory=null,this.name=e.name
+for(var t in e)"handler"===t?this._processHandler(e.handler):this[t]=e[t]}return e.prototype.getHandler=function(){},e.prototype.fetchHandler=function(){var e=this.getHandler(this.name)
+return this._processHandler(e)},e.prototype._processHandler=function(e){var t=this
+return this.handlerPromise=n.Promise.resolve(e),i(e)?(this.handlerPromise=this.handlerPromise.then(function(e){return t.updateHandler(e)}),this.handler=void 0):e?this.updateHandler(e):void 0},e.prototype.log=function(e,t){e.log&&e.log(this.name+": "+t)},e.prototype.promiseLabel=function(e){return p("'"+this.name+"' "+e)},e.prototype.getUnresolved=function(){return this},e.prototype.serialize=function(){return this.params||{}},e.prototype.updateHandler=function(e){return e._handlerName=this.name,this.handler=e},e.prototype.resolve=function(e,t){var r=this.checkForAbort.bind(this,e),i=this.runBeforeModelHook.bind(this,t),o=this.getModel.bind(this,t),s=this.runAfterModelHook.bind(this,t),a=this.becomeResolved.bind(this,t)
+return n.Promise.resolve(this.handlerPromise,this.promiseLabel("Start handler")).then(r,null,this.promiseLabel("Check for abort")).then(i,null,this.promiseLabel("Before model")).then(r,null,this.promiseLabel("Check if aborted during 'beforeModel' hook")).then(o,null,this.promiseLabel("Model")).then(r,null,this.promiseLabel("Check if aborted in 'model' hook")).then(s,null,this.promiseLabel("After model")).then(r,null,this.promiseLabel("Check if aborted in 'afterModel' hook")).then(a,null,this.promiseLabel("Become resolved"))},e.prototype.runBeforeModelHook=function(e){return e.trigger&&e.trigger(!0,"willResolveModel",e,this.handler),this.runSharedModelHook(e,"beforeModel",[])},e.prototype.runAfterModelHook=function(e,t){var n=this.name
+return this.stashResolvedModel(e,t),this.runSharedModelHook(e,"afterModel",[t]).then(function(){return e.resolvedModels[n]},null,this.promiseLabel("Ignore fulfillment value and return model value"))},e.prototype.runSharedModelHook=function(e,t,r){this.log(e,"calling "+t+" hook"),this.queryParams&&r.push(this.queryParams),r.push(e)
+var i=m(this.handler,t,r)
+return i&&i.isTransition&&(i=null),n.Promise.resolve(i,this.promiseLabel("Resolve value returned from one of the model hooks"))},e.prototype.getModel=function(){},e.prototype.checkForAbort=function(e,t){return n.Promise.resolve(e(),this.promiseLabel("Check for abort")).then(function(){return t},null,this.promiseLabel("Ignore fulfillment value and continue"))},e.prototype.stashResolvedModel=function(e,t){e.resolvedModels=e.resolvedModels||{},e.resolvedModels[this.name]=t},e.prototype.becomeResolved=function(e,t){var n=this.serialize(t)
+e&&(this.stashResolvedModel(e,t),e.params=e.params||{},e.params[this.name]=n)
+var r={name:this.name,handler:this.handler,params:n},i=t===this.context
+return("context"in this||!i)&&(r.context=t),this.factory("resolved",r)},e.prototype.shouldSupercede=function(e){if(!e)return!0
+var t=e.context===this.context
+return e.name!==this.name||"context"in this&&!t||this.hasOwnProperty("params")&&!b(this.params,e.params)},(0,t.createClass)(e,[{key:"handler",get:function(){return this._handler!==B?this._handler:this.fetchHandler()},set:function(e){return this._handler=e}},{key:"handlerPromise",get:function(){return null!==this._handlerPromise?this._handlerPromise:(this.fetchHandler(),this._handlerPromise)},set:function(e){return this._handlerPromise=e,e}}]),e}(),U=function(e){function r(n){var r=(0,t.possibleConstructorReturn)(this,e.call(this,n))
+return r.isResolved=!0,r}return(0,t.inherits)(r,e),r.prototype.resolve=function(e,t){return t&&t.resolvedModels&&(t.resolvedModels[this.name]=this.context),n.Promise.resolve(this,this.promiseLabel("Resolve"))},r.prototype.getUnresolved=function(){return this.factory("param",{name:this.name,handler:this.handler,params:this.params})},r}(H),q=function(e){function r(n){var r=(0,t.possibleConstructorReturn)(this,e.call(this,n))
+return r.names=r.names||[],r}return(0,t.inherits)(r,e),r.prototype.getModel=function(e){return this.log(e,this.name+": resolving provided model"),n.Promise.resolve(this.context)},r.prototype.serialize=function(e){var t=e||this.context,n=this.names,r={}
+if(c(t))return r[n[0]]=t,r
+if(this.serializer)return this.serializer.call(null,t,n)
+if(this.handler&&this.handler.serialize)return this.handler.serialize(t,n)
+if(1===n.length){var i=n[0]
+return/_id$/.test(i)?r[i]=t.id:r[i]=t,r}},r}(H),V=function(e){function n(n){var r=(0,t.possibleConstructorReturn)(this,e.call(this,n))
+return r.params=r.params||{},r}return(0,t.inherits)(n,e),n.prototype.getModel=function(e){var t=this.params
+e&&e.queryParams&&(t={},o(t,this.params),t.queryParams=e.queryParams)
+var n=this.handler,r=f(n,"deserialize")||f(n,"model")
+return this.runSharedModelHook(e,r,[t])},n}(H)
+C.klasses={resolved:U,param:V,object:q}
+var W=function(e){function n(n){var r=(0,t.possibleConstructorReturn)(this,e.call(this,n))
+return r.name=n.name,r.pivotHandler=n.pivotHandler,r.contexts=n.contexts||[],r.queryParams=n.queryParams,r}return(0,t.inherits)(n,e),n.prototype.applyToState=function(e,t,n,r,i){var o=s([this.name].concat(this.contexts)),a=o[0],u=t.handlersFor(a[0]),c=u[u.length-1].handler
+return this.applyToHandlers(e,u,n,c,r,null,i)},n.prototype.applyToHandlers=function(e,t,n,r,i,s,a){var u,c,l,h,d,p,f,g,m,v=new D,y=this.contexts.slice(0),b=t.length
+if(this.pivotHandler)for(u=0,c=t.length;u<c;++u)if(t[u].handler===this.pivotHandler._handlerName){b=u
+break}for(u=t.length-1;u>=0;--u)l=t[u],h=l.handler,d=e.handlerInfos[u],p=null,l.names.length>0?u>=b?p=this.createParamHandlerInfo(h,n,l.names,y,d):(f=a(h),p=this.getHandlerInfoForDynamicSegment(h,n,l.names,y,d,r,u,f)):p=this.createParamHandlerInfo(h,n,l.names,y,d),s&&(p=p.becomeResolved(null,p.context),g=d&&d.context,l.names.length>0&&"context"in d&&p.context===g&&(p.params=d&&d.params),p.context=g),m=d,(u>=b||p.shouldSupercede(d))&&(b=Math.min(u,b),m=p),i&&!s&&(m=m.becomeResolved(null,m.context)),v.handlerInfos.unshift(m)
+if(y.length>0)throw new Error("More context objects were passed than there are dynamic segments for the route: "+r)
+return i||this.invalidateChildren(v.handlerInfos,b),o(v.queryParams,this.queryParams||{}),v},n.prototype.invalidateChildren=function(e,t){var n,r,i
+for(n=t,r=e.length;n<r;++n)i=e[n],e[n]=i.getUnresolved()},n.prototype.getHandlerInfoForDynamicSegment=function(e,t,n,r,i,o,s,a){var u,l
+if(r.length>0){if(u=r[r.length-1],c(u))return this.createParamHandlerInfo(e,t,n,r,i)
+r.pop()}else{if(i&&i.name===e)return i
+if(!this.preTransitionState)return i
+l=this.preTransitionState.handlerInfos[s],u=l&&l.context}return C("object",{name:e,getHandler:t,serializer:a,context:u,names:n})},n.prototype.createParamHandlerInfo=function(e,t,n,r,i){for(var o,s,a,u={},l=n.length;l--;)if(o=i&&e===i.name&&i.params||{},s=r[r.length-1],a=n[l],c(s))u[a]=""+r.pop()
+else{if(!o.hasOwnProperty(a))throw new Error("You didn't provide enough string/numeric parameters to satisfy all of the dynamic segments for route "+e)
+u[a]=o[a]}return C("param",{name:e,getHandler:t,params:u})},n}(F)
+A.prototype=Object.create(Error.prototype)
+var G=function(e){function n(n){var r=(0,t.possibleConstructorReturn)(this,e.call(this,n))
+return r.url=n.url,r}return(0,t.inherits)(n,e),n.prototype.applyToState=function(e,t,n){function r(e){if(e&&e.inaccessibleByURL)throw new A(g)
+return e}var i,s,a,u,c,l,h,d=new D,p=t.recognize(this.url)
+if(!p)throw new A(this.url)
+var f=!1,g=this.url
+for(l=0,h=p.length;l<h;++l)i=p[l],s=i.handler,a=C("param",{name:s,getHandler:n,params:i.params}),u=a.handler,u?r(u):a.handlerPromise=a.handlerPromise.then(r),c=e.handlerInfos[l],f||a.shouldSupercede(c)?(f=!0,d.handlerInfos[l]=a):d.handlerInfos[l]=c
+return o(d.queryParams,p.queryParams),d},n}(F),Y=Array.prototype.pop,K=function(){function e(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}
+this.getHandler=e.getHandler||this.getHandler,this.getSerializer=e.getSerializer||this.getSerializer,this.updateURL=e.updateURL||this.updateURL,this.replaceURL=e.replaceURL||this.replaceURL,this.didTransition=e.didTransition||this.didTransition,this.willTransition=e.willTransition||this.willTransition,this.delegate=e.delegate||this.delegate,this.triggerEvent=e.triggerEvent||this.triggerEvent,this.log=e.log||this.log,this.dslCallBacks=[],this.state=void 0,this.activeTransition=void 0,this._changedQueryParams=void 0,this.oldState=void 0,this.currentHandlerInfos=void 0,this.currentSequence=0,this.recognizer=new r.default,this.reset()}return e.prototype.map=function(e){this.recognizer.delegate=this.delegate,this.recognizer.map(e,function(e,t){var n,r,i
+for(n=t.length-1,r=!0;n>=0&&r;--n)i=t[n],e.add(t,{as:i.handler}),r="/"===i.path||""===i.path||".index"===i.handler.slice(-6)})},e.prototype.hasRoute=function(e){return this.recognizer.hasRoute(e)},e.prototype.getHandler=function(){},e.prototype.getSerializer=function(){},e.prototype.queryParamsTransition=function(e,t,n,r){var i,o=this
+return I(this,r,e),!t&&this.activeTransition?this.activeTransition:(i=new z(this),i.queryParamsOnly=!0,n.queryParams=R(this,r.handlerInfos,r.queryParams,i),i.promise=i.promise.then(function(e){return j(i,n,!0),o.didTransition&&o.didTransition(o.currentHandlerInfos),e},null,p("Transition complete")),i)},e.prototype.transitionByIntent=function(e){try{return _.apply(this,arguments)}catch(t){return new z(this,e,null,t)}},e.prototype.reset=function(){this.state&&l(this.state.handlerInfos.slice().reverse(),function(e){g(e.handler,"exit")}),this.oldState=void 0,this.state=new D,this.currentHandlerInfos=null},e.prototype.handleURL=function(){for(e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n]
+var e,t,n,r=t[0]
+return"/"!==r.charAt(0)&&(t[0]="/"+r),S(this,t).method(null)},e.prototype.updateURL=function(){throw new Error("updateURL is not implemented")},e.prototype.replaceURL=function(e){this.updateURL(e)},e.prototype.transitionTo=function(){return S(this,arguments)},e.prototype.intermediateTransitionTo=function(){return S(this,arguments,!0)},e.prototype.refresh=function(e){var t=this.activeTransition,n=t?t.state:this.state,r=n.handlerInfos
+u(this,"Starting a refresh transition")
+var i=new W({name:r[r.length-1].name,pivotHandler:e||r[0].handler,contexts:[],queryParams:this._changedQueryParams||n.queryParams||{}}),o=this.transitionByIntent(i,!1)
+return t&&"replace"===t.urlMethod&&o.method(t.urlMethod),o},e.prototype.replaceWith=function(){return S(this,arguments).method("replace")},e.prototype.generate=function(e){var t,n,r,i,a=s(M.call(arguments,1)),u=a[0],c=a[1],l=new W({name:e,contexts:u}),h=l.applyToState(this.state,this.recognizer,this.getHandler,null,this.getSerializer),d={}
+for(t=0,n=h.handlerInfos.length;t<n;++t)r=h.handlerInfos[t],i=r.serialize(),o(d,i)
+return d.queryParams=c,this.recognizer.generate(e,d)},e.prototype.applyIntent=function(e,t){var n=new W({name:e,contexts:t}),r=this.activeTransition&&this.activeTransition.state||this.state
+return n.applyToState(r,this.recognizer,this.getHandler,null,this.getSerializer)},e.prototype.isActiveIntent=function(e,t,n,r){var i=r||this.state,s=i.handlerInfos,a=void 0,u=void 0
+if(!s.length)return!1
+var c=s[s.length-1].name,l=this.recognizer.handlersFor(c),h=0
+for(u=l.length;h<u&&(a=s[h],a.name!==e);++h);if(h===l.length)return!1
+var p=new D
+p.handlerInfos=s.slice(0,h+1),l=l.slice(0,h+1)
+var f=new W({name:c,contexts:t}),g=f.applyToHandlers(p,l,this.getHandler,c,!0,!0,this.getSerializer),m=T(g.handlerInfos,p.handlerInfos)
+if(!n||!m)return m
+var v={}
+o(v,n)
+var y=i.queryParams
+for(var b in y)y.hasOwnProperty(b)&&v.hasOwnProperty(b)&&(v[b]=y[b])
+return m&&!d(v,n)},e.prototype.isActive=function(e){for(t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r]
+var t,n,r,i=s(n)
+return this.isActiveIntent(e,i[0],i[1])},e.prototype.trigger=function(){var e,t,n
+for(e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n]
+h(this,this.currentHandlerInfos,!1,t)},e}()
+e.default=K,e.Transition=z}),e("rsvp",["exports","ember-babel","node-module"],function(e,t,n){"use strict"
+function r(e){var t=e._promiseCallbacks
+return t||(t=e._promiseCallbacks={}),t}function i(e,t){if(2!==arguments.length)return te[e]
+te[e]=t}function o(){setTimeout(function(){var e,t,n
+for(e=0;e<ne.length;e++)t=ne[e],n=t.payload,n.guid=n.key+n.id,n.childGuid=n.key+n.childId,n.error&&(n.stack=n.error.stack),te.trigger(t.name,t.payload)
+ne.length=0},50)}function s(e,t,n){1===ne.push({name:e,payload:{key:t._guidKey,id:t._id,eventName:e,detail:t._result,childId:n&&n._id,label:t._label,timeStamp:Date.now(),error:te["instrument-with-stack"]?new Error(t._label):null}})&&o()}function a(e,t){var n=this
+if(e&&"object"==typeof e&&e.constructor===n)return e
+var r=new n(l,t)
+return v(r,e),r}function u(){return new TypeError("A promises callback cannot return that same promise.")}function c(e){var t=typeof e
+return null!==e&&("object"===t||"function"===t)}function l(){}function h(e){try{return e.then}catch(e){return se.error=e,se}}function d(){var e
+try{return e=ae,ae=null,e.apply(this,arguments)}catch(e){return se.error=e,se}}function p(e){return ae=e,d}function f(e,t,n){te.async(function(e){var r,i=!1,o=p(n).call(t,function(n){i||(i=!0,t===n?b(e,n):v(e,n))},function(t){i||(i=!0,C(e,t))},"Settle: "+(e._label||" unknown promise"))
+i||o!==se||(i=!0,r=se.error,se.error=null,C(e,r))},e)}function g(e,t){t._state===ie?b(e,t._result):t._state===oe?(t._onError=null,C(e,t._result)):A(t,void 0,function(n){t===n?b(e,n):v(e,n)},function(t){return C(e,t)})}function m(e,t,n){var r,i=t.constructor===e.constructor&&n===x&&e.constructor.resolve===a
+i?g(e,t):n===se?(r=se.error,se.error=null,C(e,r)):"function"==typeof n?f(e,t,n):b(e,t)}function v(e,t){e===t?b(e,t):c(t)?m(e,t,h(t)):b(e,t)}function y(e){e._onError&&e._onError(e._result),_(e)}function b(e,t){e._state===re&&(e._result=t,e._state=ie,0===e._subscribers.length?te.instrument&&s("fulfilled",e):te.async(_,e))}function C(e,t){e._state===re&&(e._state=oe,e._result=t,te.async(y,e))}function A(e,t,n,r){var i=e._subscribers,o=i.length
+e._onError=null,i[o]=t,i[o+ie]=n,i[o+oe]=r,0===o&&e._state&&te.async(_,e)}function _(e){var t,n=e._subscribers,r=e._state
+if(te.instrument&&s(r===ie?"fulfilled":"rejected",e),0!==n.length){var i=void 0,o=void 0,a=e._result
+for(t=0;t<n.length;t+=3)i=n[t],o=n[t+r],i?I(r,i,o,a):o(a)
+e._subscribers.length=0}}function I(e,t,n,r){var i,o="function"==typeof n,s=void 0
+s=o?p(n)(r):r,t._state!==re||(s===t?C(t,u()):s===se?(i=se.error,se.error=null,C(t,i)):o?v(t,s):e===ie?b(t,s):e===oe&&C(t,s))}function w(e,t){var n=!1
+try{t(function(t){n||(n=!0,v(e,t))},function(t){n||(n=!0,C(e,t))})}catch(t){C(e,t)}}function x(e,t,n){var r,i=this,o=i._state
+if(o===ie&&!e||o===oe&&!t)return te.instrument&&s("chained",i,i),i
+i._onError=null
+var a=new i.constructor(l,n),u=i._result
+return te.instrument&&s("chained",i,a),o===re?A(i,a,e,t):(r=o===ie?e:t,te.async(function(){return I(o,a,r,u)})),a}function k(e,t,n){this._remaining--,this._result[t]=e===ie?{state:"fulfilled",value:n}:{state:"rejected",reason:n}}function j(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function E(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function S(e,t){var n,r,i,o={},s=e.length,a=new Array(s)
+for(n=0;n<s;n++)a[n]=e[n]
+for(r=0;r<t.length;r++)i=t[r],o[i]=a[r+1]
+return o}function T(e){var t,n=e.length,r=new Array(n-1)
+for(t=1;t<n;t++)r[t-1]=e[t]
+return r}function P(e,t){return{then:function(n,r){return e.call(t,n,r)}}}function O(e,n){var r=function(){var t,r,i,o,s=arguments.length,a=new Array(s+1),u=!1
+for(t=0;t<s;++t){if(r=arguments[t],!u){if((u=M(r))===se)return i=se.error,se.error=null,o=new he(l),C(o,i),o
+u&&!0!==u&&(r=P(u,r))}a[t]=r}var c=new he(l)
+return a[s]=function(e,t){e?C(c,e):void 0===n?v(c,t):!0===n?v(c,T(arguments)):Array.isArray(n)?v(c,S(arguments,n)):v(c,t)},u?N(c,a,e,this):R(c,a,e,this)}
+return(0,t.defaults)(r,e),r}function R(e,t,n,r){var i,o=p(n).apply(r,t)
+return o===se&&(i=se.error,se.error=null,C(e,i)),e}function N(e,t,n,r){return he.all(t).then(function(t){return R(e,t,n,r)})}function M(e){return null!==e&&"object"==typeof e&&(e.constructor===he||h(e))}function L(e,t){return he.all(e,t)}function D(e,t){return Array.isArray(e)?new de(he,e,t).promise:he.reject(new TypeError("Promise.allSettled must be called with an array"),t)}function z(e,t){return he.race(e,t)}function F(e,t){return null===e||"object"!=typeof e?he.reject(new TypeError("Promise.hash must be called with an object"),t):new pe(he,e,t).promise}function B(e,t){return null===e||"object"!=typeof e?he.reject(new TypeError("RSVP.hashSettled must be called with an object"),t):new fe(he,e,!1,t).promise}function H(e){throw setTimeout(function(){throw e}),e}function U(e){var t={resolve:void 0,reject:void 0}
+return t.promise=new he(function(e,n){t.resolve=e,t.reject=n},e),t}function q(e,t,n){return Array.isArray(e)?"function"!=typeof t?he.reject(new TypeError("RSVP.map expects a function as a second argument"),n):new ge(he,e,t,n).promise:he.reject(new TypeError("RSVP.map must be called with an array"),n)}function V(e,t){return he.resolve(e,t)}function W(e,t){return he.reject(e,t)}function G(e,t,n){return"function"!=typeof t?he.reject(new TypeError("RSVP.filter expects function as a second argument"),n):he.resolve(e,n).then(function(e){if(!Array.isArray(e))throw new TypeError("RSVP.filter must be called with an array")
+return new ve(he,e,t,n).promise})}function Y(e,t){xe[ye]=e,xe[ye+1]=t,2===(ye+=2)&&ke()}function K(){return void 0!==be?function(){be(Z)}:Q()}function Q(){return function(){return setTimeout(Z,1)}}function Z(){var e,t,n
+for(e=0;e<ye;e+=2)t=xe[e],n=xe[e+1],t(n),xe[e]=void 0,xe[e+1]=void 0
+ye=0}function X(){te.on.apply(te,arguments)}function J(){te.off.apply(te,arguments)}e.filter=e.async=e.map=e.reject=e.resolve=e.off=e.on=e.configure=e.denodeify=e.defer=e.rethrow=e.hashSettled=e.hash=e.race=e.allSettled=e.all=e.EventTarget=e.Promise=e.cast=e.asap=void 0
+var $,ee={mixin:function(e){return e.on=this.on,e.off=this.off,e.trigger=this.trigger,e._promiseCallbacks=void 0,e},on:function(e,t){if("function"!=typeof t)throw new TypeError("Callback must be a function")
+var n=r(this),i=n[e]
+i||(i=n[e]=[]),-1===i.indexOf(t)&&i.push(t)},off:function(e,t){var n=r(this)
+if(!t)return void(n[e]=[])
+var i=n[e],o=i.indexOf(t);-1!==o&&i.splice(o,1)},trigger:function(e,t,n){var i,o=r(this),s=o[e]
+if(s)for(void 0,i=0;i<s.length;i++)(0,s[i])(t,n)}},te={instrument:!1}
+ee.mixin(te)
+var ne=[],re=void 0,ie=1,oe=2,se={error:null},ae=void 0,ue=function(){function e(e,t,n,r){this._instanceConstructor=e,this.promise=new e(l,r),this._abortOnReject=n,this._isUsingOwnPromise=e===he,this._isUsingOwnResolve=e.resolve===a,this._init.apply(this,arguments)}return e.prototype._init=function(e,t){var n=t.length||0
+this.length=n,this._remaining=n,this._result=new Array(n),this._enumerate(t)},e.prototype._enumerate=function(e){var t,n=this.length,r=this.promise
+for(t=0;r._state===re&&t<n;t++)this._eachEntry(e[t],t,!0)
+this._checkFullfillment()},e.prototype._checkFullfillment=function(){var e
+0===this._remaining&&(e=this._result,b(this.promise,e),this._result=null)},e.prototype._settleMaybeThenable=function(e,t,n){var r,i,o=this._instanceConstructor
+this._isUsingOwnResolve?(r=h(e),r===x&&e._state!==re?(e._onError=null,this._settledAt(e._state,t,e._result,n)):"function"!=typeof r?this._settledAt(ie,t,e,n):this._isUsingOwnPromise?(i=new o(l),m(i,e,r),this._willSettleAt(i,t,n)):this._willSettleAt(new o(function(t){return t(e)}),t,n)):this._willSettleAt(o.resolve(e),t,n)},e.prototype._eachEntry=function(e,t,n){null!==e&&"object"==typeof e?this._settleMaybeThenable(e,t,n):this._setResultAt(ie,t,e,n)},e.prototype._settledAt=function(e,t,n,r){var i=this.promise
+i._state===re&&(this._abortOnReject&&e===oe?C(i,n):(this._setResultAt(e,t,n,r),this._checkFullfillment()))},e.prototype._setResultAt=function(e,t,n){this._remaining--,this._result[t]=n},e.prototype._willSettleAt=function(e,t,n){var r=this
+A(e,void 0,function(e){return r._settledAt(ie,t,e,n)},function(e){return r._settledAt(oe,t,e,n)})},e}(),ce="rsvp_"+Date.now()+"-",le=0,he=function(){function e(t,n){this._id=le++,this._label=n,this._state=void 0,this._result=void 0,this._subscribers=[],te.instrument&&s("created",this),l!==t&&("function"!=typeof t&&j(),this instanceof e?w(this,t):E())}return e.prototype._onError=function(e){var t=this
+te.after(function(){t._onError&&te.trigger("error",e,t._label)})},e.prototype.catch=function(e,t){return this.then(void 0,e,t)},e.prototype.finally=function(e,t){var n=this,r=n.constructor
+return n.then(function(t){return r.resolve(e()).then(function(){return t})},function(t){return r.resolve(e()).then(function(){throw t})},t)},e}()
+he.cast=a,he.all=function(e,t){return Array.isArray(e)?new ue(this,e,!0,t).promise:this.reject(new TypeError("Promise.all must be called with an array"),t)},he.race=function(e,t){var n,r=this,i=new r(l,t)
+if(!Array.isArray(e))return C(i,new TypeError("Promise.race must be called with an array")),i
+for(n=0;i._state===re&&n<e.length;n++)A(r.resolve(e[n]),void 0,function(e){return v(i,e)},function(e){return C(i,e)})
+return i},he.resolve=a,he.reject=function(e,t){var n=this,r=new n(l,t)
+return C(r,e),r},he.prototype._guidKey=ce,he.prototype.then=x
+var de=function(e){function n(n,r,i){return(0,t.possibleConstructorReturn)(this,e.call(this,n,r,!1,i))}return(0,t.inherits)(n,e),n}(ue)
+de.prototype._setResultAt=k
+var pe=function(e){function n(n,r){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],o=arguments[3]
+return(0,t.possibleConstructorReturn)(this,e.call(this,n,r,i,o))}return(0,t.inherits)(n,e),n.prototype._init=function(e,t){this._result={},this._enumerate(t)},n.prototype._enumerate=function(e){var t,n=Object.keys(e),r=n.length,i=this.promise
+this._remaining=r
+var o=void 0,s=void 0
+for(t=0;i._state===re&&t<r;t++)o=n[t],s=e[o],this._eachEntry(s,o,!0)
+this._checkFullfillment()},n}(ue),fe=function(e){function n(n,r,i){return(0,t.possibleConstructorReturn)(this,e.call(this,n,r,!1,i))}return(0,t.inherits)(n,e),n}(pe)
+fe.prototype._setResultAt=k
+var ge=function(e){function n(n,r,i,o){return(0,t.possibleConstructorReturn)(this,e.call(this,n,r,!0,o,i))}return(0,t.inherits)(n,e),n.prototype._init=function(e,t,n,r,i){var o=t.length||0
+this.length=o,this._remaining=o,this._result=new Array(o),this._mapFn=i,this._enumerate(t)},n.prototype._setResultAt=function(e,t,n,r){var i
+r?(i=p(this._mapFn)(n,t),i===se?this._settledAt(oe,t,i.error,!1):this._eachEntry(i,t,!1)):(this._remaining--,this._result[t]=n)},n}(ue),me={},ve=function(e){function n(){return(0,t.possibleConstructorReturn)(this,e.apply(this,arguments))}return(0,t.inherits)(n,e),n.prototype._checkFullfillment=function(){var e
+0===this._remaining&&null!==this._result&&(e=this._result.filter(function(e){return e!==me}),b(this.promise,e),this._result=null)},n.prototype._setResultAt=function(e,t,n,r){var i
+r?(this._result[t]=n,i=p(this._mapFn)(n,t),i===se?this._settledAt(oe,t,i.error,!1):this._eachEntry(i,t,!1)):(this._remaining--,n||(this._result[t]=me))},n}(ge),ye=0,be=void 0,Ce="undefined"!=typeof window?window:void 0,Ae=Ce||{},_e=Ae.MutationObserver||Ae.WebKitMutationObserver,Ie="undefined"==typeof self&&"undefined"!=typeof process&&"[object process]"==={}.toString.call(process),we="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,xe=new Array(1e3),ke=void 0
+ke=Ie?function(){var e=process.nextTick,t=process.versions.node.match(/^(?:(\d+)\.)?(?:(\d+)\.)?(\*|\d+)$/)
+return Array.isArray(t)&&"0"===t[1]&&"10"===t[2]&&(e=setImmediate),function(){return e(Z)}}():_e?function(){var e=0,t=new _e(Z),n=document.createTextNode("")
+return t.observe(n,{characterData:!0}),function(){return n.data=e=++e%2}}():we?function(){var e=new MessageChannel
+return e.port1.onmessage=Z,function(){return e.port2.postMessage(0)}}():void 0===Ce&&"function"==typeof n.require?function(){var e
+try{return e=Function("return this")().require("vertx"),be=e.runOnLoop||e.runOnContext,K()}catch(e){return Q()}}():Q(),te.async=Y,te.after=function(e){return setTimeout(e,0)}
+var je=V,Ee=function(e,t){return te.async(e,t)}
+if("undefined"!=typeof window&&"object"==typeof window.__PROMISE_INSTRUMENTATION__){$=window.__PROMISE_INSTRUMENTATION__,i("instrument",!0)
+for(var Se in $)$.hasOwnProperty(Se)&&X(Se,$[Se])}e.default={asap:Y,cast:je,Promise:he,EventTarget:ee,all:L,allSettled:D,race:z,hash:F,hashSettled:B,rethrow:H,defer:U,denodeify:O,configure:i,on:X,off:J,resolve:V,reject:W,map:q,async:Ee,filter:G},e.asap=Y,e.cast=je,e.Promise=he,e.EventTarget=ee,e.all=L,e.allSettled=D,e.race=z,e.hash=F,e.hashSettled=B,e.rethrow=H,e.defer=U,e.denodeify=O,e.configure=i,e.on=X,e.off=J,e.resolve=V,e.reject=W,e.map=q,e.async=Ee,e.filter=G}),t("ember")}(),function(){define("ember-cli-shims/deprecations",[],function(){var e={"ember-application":{default:["@ember/application"]},"ember-array":{default:["@ember/array"]},"ember-array/mutable":{default:["@ember/array/mutable"]},"ember-array/utils":{A:["@ember/array","A"],isEmberArray:["@ember/array","isArray"],wrap:["@ember/array","makeArray"]},"ember-component":{default:["@ember/component"]},"ember-components/checkbox":{default:["@ember/component/checkbox"]},"ember-components/text-area":{default:["@ember/component/text-area"]},"ember-components/text-field":{default:["@ember/component/text-field"]},"ember-computed":{default:["@ember/object","computed"],alias:["@ember/object/computed","alias"],and:["@ember/object/computed","and"],bool:["@ember/object/computed","bool"],collect:["@ember/object/computed","collect"],deprecatingAlias:["@ember/object/computed","deprecatingAlias"],empty:["@ember/object/computed","empty"],equal:["@ember/object/computed","equal"],filter:["@ember/object/computed","filter"],filterBy:["@ember/object/computed","filterBy"],filterProperty:["@ember/object/computed","filterProperty"],gt:["@ember/object/computed","gt"],gte:["@ember/object/computed","gte"],intersect:["@ember/object/computed","intersect"],lt:["@ember/object/computed","lt"],lte:["@ember/object/computed","lte"],map:["@ember/object/computed","map"],mapBy:["@ember/object/computed","mapBy"],mapProperty:["@ember/object/computed","mapProperty"],match:["@ember/object/computed","match"],max:["@ember/object/computed","max"],min:["@ember/object/computed","min"],none:["@ember/object/computed","none"],not:["@ember/object/computed","not"],notEmpty:["@ember/object/computed","notEmpty"],oneWay:["@ember/object/computed","oneWay"],or:["@ember/object/computed","or"],readOnly:["@ember/object/computed","readOnly"],reads:["@ember/object/computed","reads"],setDiff:["@ember/object/computed","setDiff"],sort:["@ember/object/computed","sort"],sum:["@ember/object/computed","sum"],union:["@ember/object/computed","union"],uniq:["@ember/object/computed","uniq"]},"ember-controller":{default:["@ember/controller"]},"ember-controller/inject":{default:["@ember/controller","inject"]},"ember-controller/proxy":{default:["@ember/array/proxy"]},"ember-debug":{inspect:["@ember/debug","inspect"],log:["@ember/debug","debug"],run:["@ember/debug","runInDebug"],warn:["@ember/debug","warn"]},"ember-debug/container-debug-adapter":{default:["@ember/debug/container-debug-adapter"]},"ember-debug/data-adapter":{default:["@ember/debug/data-adapter"]},"ember-deprecations":{deprecate:["@ember/application/deprecations","deprecate"],deprecateFunc:["@ember/application/deprecations","deprecateFunc"]},"ember-enumerable":{default:["@ember/enumerable"]},"ember-evented":{default:["@ember/object/evented"]},"ember-evented/on":{default:["@ember/object/evented","on"]},"ember-globals-resolver":{default:["@ember/application/globals-resolver"]},"ember-helper":{default:["@ember/component/helper"],helper:["@ember/component/helper","helper"]},"ember-instrumentation":{instrument:["@ember/instrumentation","instrument"],reset:["@ember/instrumentation","reset"],subscribe:["@ember/instrumentation","subscribe"],unsubscribe:["@ember/instrumentation","unsubscribe"]},"ember-locations/hash":{default:["@ember/routing/hash-location"]},"ember-locations/history":{default:["@ember/routing/history-location"]},"ember-locations/none":{default:["@ember/routing/none-location"]},"ember-map":{default:["@ember/map"],withDefault:["@ember/map/with-default"]},"ember-metal/events":{addListener:["@ember/object/events","addListener"],removeListener:["@ember/object/events","removeListener"],send:["@ember/object/events","sendEvent"]},"ember-metal/get":{default:["@ember/object","get"],getProperties:["@ember/object","getProperties"]},"ember-metal/mixin":{default:["@ember/object/mixin"]},"ember-metal/observer":{default:["@ember/object","observer"],addObserver:["@ember/object/observers","addObserver"],removeObserver:["@ember/object/observers","removeObserver"]},"ember-metal/on-load":{default:["@ember/application","onLoad"],run:["@ember/application","runLoadHooks"]},"ember-metal/set":{default:["@ember/object","set"],setProperties:["@ember/object","setProperties"],trySet:["@ember/object","trySet"]},"ember-metal/utils":{aliasMethod:["@ember/object","aliasMethod"],assert:["@ember/debug","assert"],cacheFor:["@ember/object/internals","cacheFor"],copy:["@ember/object/internals","copy"],guidFor:["@ember/object/internals","guidFor"]},"ember-object":{default:["@ember/object"]},"ember-owner/get":{default:["@ember/application","getOwner"]},"ember-owner/set":{default:["@ember/application","setOwner"]},"ember-platform":{assign:["@ember/polyfills","assign"],create:["@ember/polyfills","create"],hasAccessors:["@ember/polyfills","hasPropertyAccessors"],keys:["@ember/polyfills","keys"]},"ember-route":{default:["@ember/routing/route"]},"ember-router":{default:["@ember/routing/router"]},"ember-runloop":{default:["@ember/runloop","run"],begin:["@ember/runloop","begin"],bind:["@ember/runloop","bind"],cancel:["@ember/runloop","cancel"],debounce:["@ember/runloop","debounce"],end:["@ember/runloop","end"],join:["@ember/runloop","join"],later:["@ember/runloop","later"],next:["@ember/runloop","next"],once:["@ember/runloop","once"],schedule:["@ember/runloop","schedule"],scheduleOnce:["@ember/runloop","scheduleOnce"],throttle:["@ember/runloop","throttle"]},"ember-service":{default:["@ember/service"]},"ember-service/inject":{default:["@ember/service","inject"]},"ember-string":{camelize:["@ember/string","camelize"],capitalize:["@ember/string","capitalize"],classify:["@ember/string","classify"],dasherize:["@ember/string","dasherize"],decamelize:["@ember/string","decamelize"],fmt:["@ember/string","fmt"],htmlSafe:["@ember/string","htmlSafe"],loc:["@ember/string","loc"],underscore:["@ember/string","underscore"],w:["@ember/string","w"]},"ember-test/adapter":{default:["@ember/test/adapter"]},"ember-utils":{isBlank:["@ember/utils","isBlank"],isEmpty:["@ember/utils","isEmpty"],isNone:["@ember/utils","isNone"],isPresent:["@ember/utils","isPresent"],tryInvoke:["@ember/utils","tryInvoke"],typeOf:["@ember/utils","typeOf"]}}
+return Object.defineProperty(e,"__esModule",{value:!0}),e})}(),function(){function e(e,t,n){define(e,["ember-cli-shims/deprecations"],function(r){"use strict"
+if(n){var i=r[e],o="Importing from the `"+e+"` module has been deprecated. "
+i?(o+="Please use the new module imports:\n\n",Object.keys(i).forEach(function(e){var t=i[e]
+if(t[1])o+="import { "+t[1]+" } from '"+t[0]+"'\n"
+else{var n=Ember.String.classify(t[0].split("/").pop())
+o+="import "+n+" from '"+t[0]+"'\n"}}),o+="\n"):o+="Please use globals instead.",Ember.deprecate(o,!1,{id:"ember-cli-shims.deprecated-shims",until:"3.0.0",url:"https://github.com/emberjs/rfcs/blob/master/text/0176-javascript-module-api.md"})}return Object.defineProperty(t,"__esModule",{value:!0}),t})}e("ember",{default:Ember}),function(){var t={"ember-application":{default:Ember.Application},"ember-array":{default:Ember.Array},"ember-array/mutable":{default:Ember.MutableArray},"ember-array/utils":{A:Ember.A,isEmberArray:Ember.isArray,wrap:Ember.makeArray},"ember-component":{default:Ember.Component},"ember-components/checkbox":{default:Ember.Checkbox},"ember-components/text-area":{default:Ember.TextArea},"ember-components/text-field":{default:Ember.TextField},"ember-controller":{default:Ember.Controller},"ember-controller/inject":{default:Ember.inject.controller},"ember-controller/proxy":{default:Ember.ArrayProxy},"ember-controllers/sortable":{default:Ember.SortableMixin},"ember-debug":{log:Ember.debug,inspect:Ember.inspect,run:Ember.runInDebug,warn:Ember.warn},"ember-debug/container-debug-adapter":{default:Ember.ContainerDebugAdapter},"ember-debug/data-adapter":{default:Ember.DataAdapter},"ember-deprecations":{deprecate:Ember.deprecate,deprecateFunc:Ember.deprecateFunc},"ember-enumerable":{default:Ember.Enumerable},"ember-evented":{default:Ember.Evented},"ember-evented/on":{default:Ember.on},"ember-globals-resolver":{default:Ember.DefaultResolver},"ember-helper":{default:Ember.Helper,helper:Ember.Helper&&Ember.Helper.helper},"ember-instrumentation":{instrument:Ember.Instrumentation.instrument,reset:Ember.Instrumentation.reset,subscribe:Ember.Instrumentation.subscribe,unsubscribe:Ember.Instrumentation.unsubscribe},"ember-locations/hash":{default:Ember.HashLocation},"ember-locations/history":{default:Ember.HistoryLocation},"ember-locations/none":{default:Ember.NoneLocation},"ember-map":{default:Ember.Map,withDefault:Ember.MapWithDefault},"ember-metal/destroy":{default:Ember.destroy},"ember-metal/events":{addListener:Ember.addListener,removeListener:Ember.removeListener,send:Ember.sendEvent},"ember-metal/get":{default:Ember.get,getProperties:Ember.getProperties},"ember-metal/mixin":{default:Ember.Mixin},"ember-metal/observer":{default:Ember.observer,addObserver:Ember.addObserver,removeObserver:Ember.removeObserver},"ember-metal/on-load":{default:Ember.onLoad,run:Ember.runLoadHooks},"ember-metal/set":{default:Ember.set,setProperties:Ember.setProperties,trySet:Ember.trySet},"ember-metal/utils":{aliasMethod:Ember.aliasMethod,assert:Ember.assert,cacheFor:Ember.cacheFor,copy:Ember.copy,guidFor:Ember.guidFor},"ember-object":{default:Ember.Object},"ember-owner/get":{default:Ember.getOwner},"ember-owner/set":{default:Ember.setOwner},"ember-platform":{assign:Ember.assign||Ember.merge,create:Ember.create,defineProperty:Ember.platform.defineProperty,hasAccessors:Ember.platform.hasPropertyAccessors,keys:Ember.keys},"ember-route":{default:Ember.Route},"ember-router":{default:Ember.Router},"ember-runloop":{default:Ember.run,begin:Ember.run.begin,bind:Ember.run.bind,cancel:Ember.run.cancel,debounce:Ember.run.debounce,end:Ember.run.end,join:Ember.run.join,later:Ember.run.later,next:Ember.run.next,once:Ember.run.once,schedule:Ember.run.schedule,scheduleOnce:Ember.run.scheduleOnce,throttle:Ember.run.throttle},"ember-service":{default:Ember.Service},"ember-service/inject":{default:Ember.inject.service},"ember-set/ordered":{default:Ember.OrderedSet},"ember-string":{camelize:Ember.String.camelize,capitalize:Ember.String.capitalize,classify:Ember.String.classify,dasherize:Ember.String.dasherize,decamelize:Ember.String.decamelize,fmt:Ember.String.fmt,htmlSafe:Ember.String.htmlSafe,loc:Ember.String.loc,underscore:Ember.String.underscore,w:Ember.String.w},"ember-utils":{isBlank:Ember.isBlank,isEmpty:Ember.isEmpty,isNone:Ember.isNone,isPresent:Ember.isPresent,tryInvoke:Ember.tryInvoke,typeOf:Ember.typeOf}}
+t["ember-computed"]={default:Ember.computed}
+for(var n=["empty","notEmpty","none","not","bool","match","equal","gt","gte","lt","lte","alias","oneWay","reads","readOnly","deprecatingAlias","and","or","collect","sum","min","max","map","sort","setDiff","mapBy","mapProperty","filter","filterBy","filterProperty","uniq","union","intersect"],r=0,i=n.length;r<i;r++){var o=n[r]
+t["ember-computed"][o]=Ember.computed[o]}for(var s in t)e(s,t[s],!0)}(),function(){if(Ember.Test){var t={"ember-test":{default:Ember.Test},"ember-test/adapter":{default:Ember.Test.Adapter},"ember-test/qunit-adapter":{default:Ember.Test.QUnitAdapter}}
+for(var n in t)e(n,t[n])}}(),e("jquery",{default:self.jQuery}),e("rsvp",{default:Ember.RSVP})}(),createDeprecatedModule("ember/resolver"),createDeprecatedModule("resolver"),function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)}(function(e){e.ui=e.ui||{},e.ui.version="1.12.1"
+var t=0,n=Array.prototype.slice
+e.cleanData=function(t){return function(n){var r,i,o
+for(o=0;null!=(i=n[o]);o++)try{(r=e._data(i,"events"))&&r.remove&&e(i).triggerHandler("remove")}catch(e){}t(n)}}(e.cleanData),e.widget=function(t,n,r){var i,o,s,a={},u=t.split(".")[0]
+t=t.split(".")[1]
+var c=u+"-"+t
+return r||(r=n,n=e.Widget),e.isArray(r)&&(r=e.extend.apply(null,[{}].concat(r))),e.expr[":"][c.toLowerCase()]=function(t){return!!e.data(t,c)},e[u]=e[u]||{},i=e[u][t],o=e[u][t]=function(e,t){return this._createWidget?void(arguments.length&&this._createWidget(e,t)):new o(e,t)},e.extend(o,i,{version:r.version,_proto:e.extend({},r),_childConstructors:[]}),s=new n,s.options=e.widget.extend({},s.options),e.each(r,function(t,r){return e.isFunction(r)?void(a[t]=function(){function e(){return n.prototype[t].apply(this,arguments)}function i(e){return n.prototype[t].apply(this,e)}return function(){var t,n=this._super,o=this._superApply
+return this._super=e,this._superApply=i,t=r.apply(this,arguments),this._super=n,this._superApply=o,t}}()):void(a[t]=r)}),o.prototype=e.widget.extend(s,{widgetEventPrefix:i?s.widgetEventPrefix||t:t},a,{constructor:o,namespace:u,widgetName:t,widgetFullName:c}),i?(e.each(i._childConstructors,function(t,n){var r=n.prototype
+e.widget(r.namespace+"."+r.widgetName,o,n._proto)}),delete i._childConstructors):n._childConstructors.push(o),e.widget.bridge(t,o),o},e.widget.extend=function(t){for(var r,i,o=n.call(arguments,1),s=0,a=o.length;a>s;s++)for(r in o[s])i=o[s][r],o[s].hasOwnProperty(r)&&void 0!==i&&(t[r]=e.isPlainObject(i)?e.isPlainObject(t[r])?e.widget.extend({},t[r],i):e.widget.extend({},i):i)
+return t},e.widget.bridge=function(t,r){var i=r.prototype.widgetFullName||t
+e.fn[t]=function(o){var s="string"==typeof o,a=n.call(arguments,1),u=this
+return s?this.length||"instance"!==o?this.each(function(){var n,r=e.data(this,i)
+return"instance"===o?(u=r,!1):r?e.isFunction(r[o])&&"_"!==o.charAt(0)?(n=r[o].apply(r,a),n!==r&&void 0!==n?(u=n&&n.jquery?u.pushStack(n.get()):n,!1):void 0):e.error("no such method '"+o+"' for "+t+" widget instance"):e.error("cannot call methods on "+t+" prior to initialization; attempted to call method '"+o+"'")}):u=void 0:(a.length&&(o=e.widget.extend.apply(null,[o].concat(a))),this.each(function(){var t=e.data(this,i)
+t?(t.option(o||{}),t._init&&t._init()):e.data(this,i,new r(o,this))})),u}},e.Widget=function(){},e.Widget._childConstructors=[],e.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{classes:{},disabled:!1,create:null},_createWidget:function(n,r){r=e(r||this.defaultElement||this)[0],this.element=e(r),this.uuid=t++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=e(),this.hoverable=e(),this.focusable=e(),this.classesElementLookup={},r!==this&&(e.data(r,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===r&&this.destroy()}}),this.document=e(r.style?r.ownerDocument:r.document||r),this.window=e(this.document[0].defaultView||this.document[0].parentWindow)),this.options=e.widget.extend({},this.options,this._getCreateOptions(),n),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:e.noop,_create:e.noop,_init:e.noop,destroy:function(){var t=this
+this._destroy(),e.each(this.classesElementLookup,function(e,n){t._removeClass(n,e)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:e.noop,widget:function(){return this.element},option:function(t,n){var r,i,o,s=t
+if(0===arguments.length)return e.widget.extend({},this.options)
+if("string"==typeof t)if(s={},r=t.split("."),t=r.shift(),r.length){for(i=s[t]=e.widget.extend({},this.options[t]),o=0;r.length-1>o;o++)i[r[o]]=i[r[o]]||{},i=i[r[o]]
+if(t=r.pop(),1===arguments.length)return void 0===i[t]?null:i[t]
+i[t]=n}else{if(1===arguments.length)return void 0===this.options[t]?null:this.options[t]
+s[t]=n}return this._setOptions(s),this},_setOptions:function(e){var t
+for(t in e)this._setOption(t,e[t])
+return this},_setOption:function(e,t){return"classes"===e&&this._setOptionClasses(t),this.options[e]=t,"disabled"===e&&this._setOptionDisabled(t),this},_setOptionClasses:function(t){var n,r,i
+for(n in t)i=this.classesElementLookup[n],t[n]!==this.options.classes[n]&&i&&i.length&&(r=e(i.get()),this._removeClass(i,n),r.addClass(this._classes({element:r,keys:n,classes:t,add:!0})))},_setOptionDisabled:function(e){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!e),e&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(t){function n(n,o){var s,a
+for(a=0;n.length>a;a++)s=i.classesElementLookup[n[a]]||e(),s=e(t.add?e.unique(s.get().concat(t.element.get())):s.not(t.element).get()),i.classesElementLookup[n[a]]=s,r.push(n[a]),o&&t.classes[n[a]]&&r.push(t.classes[n[a]])}var r=[],i=this
+return t=e.extend({element:this.element,classes:this.options.classes||{}},t),this._on(t.element,{remove:"_untrackClassesElement"}),t.keys&&n(t.keys.match(/\S+/g)||[],!0),t.extra&&n(t.extra.match(/\S+/g)||[]),r.join(" ")},_untrackClassesElement:function(t){var n=this
+e.each(n.classesElementLookup,function(r,i){-1!==e.inArray(t.target,i)&&(n.classesElementLookup[r]=e(i.not(t.target).get()))})},_removeClass:function(e,t,n){return this._toggleClass(e,t,n,!1)},_addClass:function(e,t,n){return this._toggleClass(e,t,n,!0)},_toggleClass:function(e,t,n,r){r="boolean"==typeof r?r:n
+var i="string"==typeof e||null===e,o={extra:i?t:n,keys:i?e:t,element:i?this.element:e,add:r}
+return o.element.toggleClass(this._classes(o),r),this},_on:function(t,n,r){var i,o=this
+"boolean"!=typeof t&&(r=n,n=t,t=!1),r?(n=i=e(n),this.bindings=this.bindings.add(n)):(r=n,n=this.element,i=this.widget()),e.each(r,function(r,s){function a(){return t||!0!==o.options.disabled&&!e(this).hasClass("ui-state-disabled")?("string"==typeof s?o[s]:s).apply(o,arguments):void 0}"string"!=typeof s&&(a.guid=s.guid=s.guid||a.guid||e.guid++)
+var u=r.match(/^([\w:-]*)\s*(.*)$/),c=u[1]+o.eventNamespace,l=u[2]
+l?i.on(c,l,a):n.on(c,a)})},_off:function(t,n){n=(n||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,t.off(n).off(n),this.bindings=e(this.bindings.not(t).get()),this.focusable=e(this.focusable.not(t).get()),this.hoverable=e(this.hoverable.not(t).get())},_delay:function(e,t){function n(){return("string"==typeof e?r[e]:e).apply(r,arguments)}var r=this
+return setTimeout(n,t||0)},_hoverable:function(t){this.hoverable=this.hoverable.add(t),this._on(t,{mouseenter:function(t){this._addClass(e(t.currentTarget),null,"ui-state-hover")},mouseleave:function(t){this._removeClass(e(t.currentTarget),null,"ui-state-hover")}})},_focusable:function(t){this.focusable=this.focusable.add(t),this._on(t,{focusin:function(t){this._addClass(e(t.currentTarget),null,"ui-state-focus")},focusout:function(t){this._removeClass(e(t.currentTarget),null,"ui-state-focus")}})},_trigger:function(t,n,r){var i,o,s=this.options[t]
+if(r=r||{},n=e.Event(n),n.type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),n.target=this.element[0],o=n.originalEvent)for(i in o)i in n||(n[i]=o[i])
+return this.element.trigger(n,r),!(e.isFunction(s)&&!1===s.apply(this.element[0],[n].concat(r))||n.isDefaultPrevented())}},e.each({show:"fadeIn",hide:"fadeOut"},function(t,n){e.Widget.prototype["_"+t]=function(r,i,o){"string"==typeof i&&(i={effect:i})
+var s,a=i?!0===i||"number"==typeof i?n:i.effect||n:t
+i=i||{},"number"==typeof i&&(i={duration:i}),s=!e.isEmptyObject(i),i.complete=o,i.delay&&r.delay(i.delay),s&&e.effects&&e.effects.effect[a]?r[t](i):a!==t&&r[a]?r[a](i.duration,i.easing,o):r.queue(function(n){e(this)[t](),o&&o.call(r[0]),n()})}}),e.widget,e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(n){return!!e.data(n,t)}}):function(t,n,r){return!!e.data(t,r[3])}}),e.fn.extend({disableSelection:function(){var e="onselectstart"in document.createElement("div")?"selectstart":"mousedown"
+return function(){return this.on(e+".ui-disableSelection",function(e){e.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),e.fn.scrollParent=function(t){var n=this.css("position"),r="absolute"===n,i=t?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var t=e(this)
+return(!r||"static"!==t.css("position"))&&i.test(t.css("overflow")+t.css("overflow-y")+t.css("overflow-x"))}).eq(0)
+return"fixed"!==n&&o.length?o:e(this[0].ownerDocument||document)},e.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase())
+var r=!1
+e(document).on("mouseup",function(){r=!1}),e.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var t=this
+this.element.on("mousedown."+this.widgetName,function(e){return t._mouseDown(e)}).on("click."+this.widgetName,function(n){return!0===e.data(n.target,t.widgetName+".preventClickEvent")?(e.removeData(n.target,t.widgetName+".preventClickEvent"),n.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(t){if(!r){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(t),this._mouseDownEvent=t
+var n=this,i=1===t.which,o=!("string"!=typeof this.options.cancel||!t.target.nodeName)&&e(t.target).closest(this.options.cancel).length
+return!(i&&!o&&this._mouseCapture(t))||(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){n.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=!1!==this._mouseStart(t),!this._mouseStarted)?(t.preventDefault(),!0):(!0===e.data(t.target,this.widgetName+".preventClickEvent")&&e.removeData(t.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(e){return n._mouseMove(e)},this._mouseUpDelegate=function(e){return n._mouseUp(e)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),t.preventDefault(),r=!0,!0))}},_mouseMove:function(t){if(this._mouseMoved){if(e.ui.ie&&(!document.documentMode||9>document.documentMode)&&!t.button)return this._mouseUp(t)
+if(!t.which)if(t.originalEvent.altKey||t.originalEvent.ctrlKey||t.originalEvent.metaKey||t.originalEvent.shiftKey)this.ignoreMissingWhich=!0
+else if(!this.ignoreMissingWhich)return this._mouseUp(t)}return(t.which||t.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(t),t.preventDefault()):(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=!1!==this._mouseStart(this._mouseDownEvent,t),this._mouseStarted?this._mouseDrag(t):this._mouseUp(t)),!this._mouseStarted)},_mouseUp:function(t){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,t.target===this._mouseDownEvent.target&&e.data(t.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(t)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,r=!1,t.preventDefault()},_mouseDistanceMet:function(e){return Math.max(Math.abs(this._mouseDownEvent.pageX-e.pageX),Math.abs(this._mouseDownEvent.pageY-e.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),e.ui.plugin={add:function(t,n,r){var i,o=e.ui[t].prototype
+for(i in r)o.plugins[i]=o.plugins[i]||[],o.plugins[i].push([n,r[i]])},call:function(e,t,n,r){var i,o=e.plugins[t]
+if(o&&(r||e.element[0].parentNode&&11!==e.element[0].parentNode.nodeType))for(i=0;o.length>i;i++)e.options[o[i][0]]&&o[i][1].apply(e.element,n)}},e.ui.safeActiveElement=function(e){var t
+try{t=e.activeElement}catch(n){t=e.body}return t||(t=e.body),t.nodeName||(t=e.body),t},e.ui.safeBlur=function(t){t&&"body"!==t.nodeName.toLowerCase()&&e(t).trigger("blur")},e.widget("ui.draggable",e.ui.mouse,{version:"1.12.1",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){"original"===this.options.helper&&this._setPositionRelative(),this.options.addClasses&&this._addClass("ui-draggable"),this._setHandleClassName(),this._mouseInit()},_setOption:function(e,t){this._super(e,t),"handle"===e&&(this._removeHandleClassName(),this._setHandleClassName())},_destroy:function(){return(this.helper||this.element).is(".ui-draggable-dragging")?void(this.destroyOnClear=!0):(this._removeHandleClassName(),void this._mouseDestroy())},_mouseCapture:function(t){var n=this.options
+return!(this.helper||n.disabled||e(t.target).closest(".ui-resizable-handle").length>0)&&(this.handle=this._getHandle(t),!!this.handle&&(this._blurActiveElement(t),this._blockFrames(!0===n.iframeFix?"iframe":n.iframeFix),!0))},_blockFrames:function(t){this.iframeBlocks=this.document.find(t).map(function(){var t=e(this)
+return e("<div>").css("position","absolute").appendTo(t.parent()).outerWidth(t.outerWidth()).outerHeight(t.outerHeight()).offset(t.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(t){var n=e.ui.safeActiveElement(this.document[0])
+e(t.target).closest(n).length||e.ui.safeBlur(n)},_mouseStart:function(t){var n=this.options
+return this.helper=this._createHelper(t),this._addClass(this.helper,"ui-draggable-dragging"),this._cacheHelperProportions(),e.ui.ddmanager&&(e.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=this.helper.parents().filter(function(){return"fixed"===e(this).css("position")}).length>0,this.positionAbs=this.element.offset(),this._refreshOffsets(t),this.originalPosition=this.position=this._generatePosition(t,!1),this.originalPageX=t.pageX,this.originalPageY=t.pageY,n.cursorAt&&this._adjustOffsetFromHelper(n.cursorAt),this._setContainment(),!1===this._trigger("start",t)?(this._clear(),!1):(this._cacheHelperProportions(),e.ui.ddmanager&&!n.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this._mouseDrag(t,!0),e.ui.ddmanager&&e.ui.ddmanager.dragStart(this,t),!0)},_refreshOffsets:function(e){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:!1,parent:this._getParentOffset(),relative:this._getRelativeOffset()},this.offset.click={left:e.pageX-this.offset.left,top:e.pageY-this.offset.top}},_mouseDrag:function(t,n){if(this.hasFixedAncestor&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(t,!0),this.positionAbs=this._convertPositionTo("absolute"),!n){var r=this._uiHash()
+if(!1===this._trigger("drag",t,r))return this._mouseUp(new e.Event("mouseup",t)),!1
+this.position=r.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),!1},_mouseStop:function(t){var n=this,r=!1
+return e.ui.ddmanager&&!this.options.dropBehaviour&&(r=e.ui.ddmanager.drop(this,t)),this.dropped&&(r=this.dropped,this.dropped=!1),"invalid"===this.options.revert&&!r||"valid"===this.options.revert&&r||!0===this.options.revert||e.isFunction(this.options.revert)&&this.options.revert.call(this.element,r)?e(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){!1!==n._trigger("stop",t)&&n._clear()}):!1!==this._trigger("stop",t)&&this._clear(),!1},_mouseUp:function(t){return this._unblockFrames(),e.ui.ddmanager&&e.ui.ddmanager.dragStop(this,t),this.handleElement.is(t.target)&&this.element.trigger("focus"),e.ui.mouse.prototype._mouseUp.call(this,t)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp(new e.Event("mouseup",{target:this.element[0]})):this._clear(),this},_getHandle:function(t){return!this.options.handle||!!e(t.target).closest(this.element.find(this.options.handle)).length},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element,this._addClass(this.handleElement,"ui-draggable-handle")},_removeHandleClassName:function(){this._removeClass(this.handleElement,"ui-draggable-handle")},_createHelper:function(t){var n=this.options,r=e.isFunction(n.helper),i=r?e(n.helper.apply(this.element[0],[t])):"clone"===n.helper?this.element.clone().removeAttr("id"):this.element
+return i.parents("body").length||i.appendTo("parent"===n.appendTo?this.element[0].parentNode:n.appendTo),r&&i[0]===this.element[0]&&this._setPositionRelative(),i[0]===this.element[0]||/(fixed|absolute)/.test(i.css("position"))||i.css("position","absolute"),i},_setPositionRelative:function(){/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative")},_adjustOffsetFromHelper:function(t){"string"==typeof t&&(t=t.split(" ")),e.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_isRootNode:function(e){return/(html|body)/i.test(e.tagName)||e===this.document[0]},_getParentOffset:function(){var t=this.offsetParent.offset(),n=this.document[0]
+return"absolute"===this.cssPosition&&this.scrollParent[0]!==n&&e.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(t={top:0,left:0}),{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"!==this.cssPosition)return{top:0,left:0}
+var e=this.element.position(),t=this._isRootNode(this.scrollParent[0])
+return{top:e.top-(parseInt(this.helper.css("top"),10)||0)+(t?0:this.scrollParent.scrollTop()),left:e.left-(parseInt(this.helper.css("left"),10)||0)+(t?0:this.scrollParent.scrollLeft())}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t,n,r,i=this.options,o=this.document[0]
+return this.relativeContainer=null,i.containment?"window"===i.containment?void(this.containment=[e(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,e(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,e(window).scrollLeft()+e(window).width()-this.helperProportions.width-this.margins.left,e(window).scrollTop()+(e(window).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]):"document"===i.containment?void(this.containment=[0,0,e(o).width()-this.helperProportions.width-this.margins.left,(e(o).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]):i.containment.constructor===Array?void(this.containment=i.containment):("parent"===i.containment&&(i.containment=this.helper[0].parentNode),n=e(i.containment),void((r=n[0])&&(t=/(scroll|auto)/.test(n.css("overflow")),this.containment=[(parseInt(n.css("borderLeftWidth"),10)||0)+(parseInt(n.css("paddingLeft"),10)||0),(parseInt(n.css("borderTopWidth"),10)||0)+(parseInt(n.css("paddingTop"),10)||0),(t?Math.max(r.scrollWidth,r.offsetWidth):r.offsetWidth)-(parseInt(n.css("borderRightWidth"),10)||0)-(parseInt(n.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(t?Math.max(r.scrollHeight,r.offsetHeight):r.offsetHeight)-(parseInt(n.css("borderBottomWidth"),10)||0)-(parseInt(n.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relativeContainer=n))):void(this.containment=null)},_convertPositionTo:function(e,t){t||(t=this.position)
+var n="absolute"===e?1:-1,r=this._isRootNode(this.scrollParent[0])
+return{top:t.top+this.offset.relative.top*n+this.offset.parent.top*n-("fixed"===this.cssPosition?-this.offset.scroll.top:r?0:this.offset.scroll.top)*n,left:t.left+this.offset.relative.left*n+this.offset.parent.left*n-("fixed"===this.cssPosition?-this.offset.scroll.left:r?0:this.offset.scroll.left)*n}},_generatePosition:function(e,t){var n,r,i,o,s=this.options,a=this._isRootNode(this.scrollParent[0]),u=e.pageX,c=e.pageY
+return a&&this.offset.scroll||(this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}),t&&(this.containment&&(this.relativeContainer?(r=this.relativeContainer.offset(),n=[this.containment[0]+r.left,this.containment[1]+r.top,this.containment[2]+r.left,this.containment[3]+r.top]):n=this.containment,e.pageX-this.offset.click.left<n[0]&&(u=n[0]+this.offset.click.left),e.pageY-this.offset.click.top<n[1]&&(c=n[1]+this.offset.click.top),e.pageX-this.offset.click.left>n[2]&&(u=n[2]+this.offset.click.left),e.pageY-this.offset.click.top>n[3]&&(c=n[3]+this.offset.click.top)),s.grid&&(i=s.grid[1]?this.originalPageY+Math.round((c-this.originalPageY)/s.grid[1])*s.grid[1]:this.originalPageY,c=n?i-this.offset.click.top>=n[1]||i-this.offset.click.top>n[3]?i:i-this.offset.click.top>=n[1]?i-s.grid[1]:i+s.grid[1]:i,o=s.grid[0]?this.originalPageX+Math.round((u-this.originalPageX)/s.grid[0])*s.grid[0]:this.originalPageX,u=n?o-this.offset.click.left>=n[0]||o-this.offset.click.left>n[2]?o:o-this.offset.click.left>=n[0]?o-s.grid[0]:o+s.grid[0]:o),"y"===s.axis&&(u=this.originalPageX),"x"===s.axis&&(c=this.originalPageY)),{top:c-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:a?0:this.offset.scroll.top),left:u-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:a?0:this.offset.scroll.left)}},_clear:function(){this._removeClass(this.helper,"ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_trigger:function(t,n,r){return r=r||this._uiHash(),e.ui.plugin.call(this,t,[n,r,this],!0),/^(drag|start|stop)/.test(t)&&(this.positionAbs=this._convertPositionTo("absolute"),r.offset=this.positionAbs),e.Widget.prototype._trigger.call(this,t,n,r)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),e.ui.plugin.add("draggable","connectToSortable",{start:function(t,n,r){var i=e.extend({},n,{item:r.element})
+r.sortables=[],e(r.options.connectToSortable).each(function(){var n=e(this).sortable("instance")
+n&&!n.options.disabled&&(r.sortables.push(n),n.refreshPositions(),n._trigger("activate",t,i))})},stop:function(t,n,r){var i=e.extend({},n,{item:r.element})
+r.cancelHelperRemoval=!1,e.each(r.sortables,function(){var e=this
+e.isOver?(e.isOver=0,r.cancelHelperRemoval=!0,e.cancelHelperRemoval=!1,e._storedCSS={position:e.placeholder.css("position"),top:e.placeholder.css("top"),left:e.placeholder.css("left")},e._mouseStop(t),e.options.helper=e.options._helper):(e.cancelHelperRemoval=!0,e._trigger("deactivate",t,i))})},drag:function(t,n,r){e.each(r.sortables,function(){var i=!1,o=this
+o.positionAbs=r.positionAbs,o.helperProportions=r.helperProportions,o.offset.click=r.offset.click,o._intersectsWith(o.containerCache)&&(i=!0,e.each(r.sortables,function(){return this.positionAbs=r.positionAbs,this.helperProportions=r.helperProportions,this.offset.click=r.offset.click,this!==o&&this._intersectsWith(this.containerCache)&&e.contains(o.element[0],this.element[0])&&(i=!1),i})),i?(o.isOver||(o.isOver=1,r._parent=n.helper.parent(),o.currentItem=n.helper.appendTo(o.element).data("ui-sortable-item",!0),o.options._helper=o.options.helper,o.options.helper=function(){return n.helper[0]},t.target=o.currentItem[0],o._mouseCapture(t,!0),o._mouseStart(t,!0,!0),o.offset.click.top=r.offset.click.top,o.offset.click.left=r.offset.click.left,o.offset.parent.left-=r.offset.parent.left-o.offset.parent.left,o.offset.parent.top-=r.offset.parent.top-o.offset.parent.top,r._trigger("toSortable",t),r.dropped=o.element,e.each(r.sortables,function(){this.refreshPositions()}),r.currentItem=r.element,o.fromOutside=r),o.currentItem&&(o._mouseDrag(t),n.position=o.position)):o.isOver&&(o.isOver=0,o.cancelHelperRemoval=!0,o.options._revert=o.options.revert,o.options.revert=!1,o._trigger("out",t,o._uiHash(o)),o._mouseStop(t,!0),o.options.revert=o.options._revert,o.options.helper=o.options._helper,o.placeholder&&o.placeholder.remove(),n.helper.appendTo(r._parent),r._refreshOffsets(t),n.position=r._generatePosition(t,!0),r._trigger("fromSortable",t),r.dropped=!1,e.each(r.sortables,function(){this.refreshPositions()}))})}}),e.ui.plugin.add("draggable","cursor",{start:function(t,n,r){var i=e("body"),o=r.options
+i.css("cursor")&&(o._cursor=i.css("cursor")),i.css("cursor",o.cursor)},stop:function(t,n,r){var i=r.options
+i._cursor&&e("body").css("cursor",i._cursor)}}),e.ui.plugin.add("draggable","opacity",{start:function(t,n,r){var i=e(n.helper),o=r.options
+i.css("opacity")&&(o._opacity=i.css("opacity")),i.css("opacity",o.opacity)},stop:function(t,n,r){var i=r.options
+i._opacity&&e(n.helper).css("opacity",i._opacity)}}),e.ui.plugin.add("draggable","scroll",{start:function(e,t,n){n.scrollParentNotHidden||(n.scrollParentNotHidden=n.helper.scrollParent(!1)),n.scrollParentNotHidden[0]!==n.document[0]&&"HTML"!==n.scrollParentNotHidden[0].tagName&&(n.overflowOffset=n.scrollParentNotHidden.offset())},drag:function(t,n,r){var i=r.options,o=!1,s=r.scrollParentNotHidden[0],a=r.document[0]
+s!==a&&"HTML"!==s.tagName?(i.axis&&"x"===i.axis||(r.overflowOffset.top+s.offsetHeight-t.pageY<i.scrollSensitivity?s.scrollTop=o=s.scrollTop+i.scrollSpeed:t.pageY-r.overflowOffset.top<i.scrollSensitivity&&(s.scrollTop=o=s.scrollTop-i.scrollSpeed)),i.axis&&"y"===i.axis||(r.overflowOffset.left+s.offsetWidth-t.pageX<i.scrollSensitivity?s.scrollLeft=o=s.scrollLeft+i.scrollSpeed:t.pageX-r.overflowOffset.left<i.scrollSensitivity&&(s.scrollLeft=o=s.scrollLeft-i.scrollSpeed))):(i.axis&&"x"===i.axis||(t.pageY-e(a).scrollTop()<i.scrollSensitivity?o=e(a).scrollTop(e(a).scrollTop()-i.scrollSpeed):e(window).height()-(t.pageY-e(a).scrollTop())<i.scrollSensitivity&&(o=e(a).scrollTop(e(a).scrollTop()+i.scrollSpeed))),i.axis&&"y"===i.axis||(t.pageX-e(a).scrollLeft()<i.scrollSensitivity?o=e(a).scrollLeft(e(a).scrollLeft()-i.scrollSpeed):e(window).width()-(t.pageX-e(a).scrollLeft())<i.scrollSensitivity&&(o=e(a).scrollLeft(e(a).scrollLeft()+i.scrollSpeed)))),!1!==o&&e.ui.ddmanager&&!i.dropBehaviour&&e.ui.ddmanager.prepareOffsets(r,t)}}),e.ui.plugin.add("draggable","snap",{start:function(t,n,r){var i=r.options
+r.snapElements=[],e(i.snap.constructor!==String?i.snap.items||":data(ui-draggable)":i.snap).each(function(){var t=e(this),n=t.offset()
+this!==r.element[0]&&r.snapElements.push({item:this,width:t.outerWidth(),height:t.outerHeight(),top:n.top,left:n.left})})},drag:function(t,n,r){var i,o,s,a,u,c,l,h,d,p,f=r.options,g=f.snapTolerance,m=n.offset.left,v=m+r.helperProportions.width,y=n.offset.top,b=y+r.helperProportions.height
+for(d=r.snapElements.length-1;d>=0;d--)u=r.snapElements[d].left-r.margins.left,c=u+r.snapElements[d].width,l=r.snapElements[d].top-r.margins.top,h=l+r.snapElements[d].height,u-g>v||m>c+g||l-g>b||y>h+g||!e.contains(r.snapElements[d].item.ownerDocument,r.snapElements[d].item)?(r.snapElements[d].snapping&&r.options.snap.release&&r.options.snap.release.call(r.element,t,e.extend(r._uiHash(),{snapItem:r.snapElements[d].item})),r.snapElements[d].snapping=!1):("inner"!==f.snapMode&&(i=g>=Math.abs(l-b),o=g>=Math.abs(h-y),s=g>=Math.abs(u-v),a=g>=Math.abs(c-m),i&&(n.position.top=r._convertPositionTo("relative",{top:l-r.helperProportions.height,left:0}).top),o&&(n.position.top=r._convertPositionTo("relative",{top:h,left:0}).top),s&&(n.position.left=r._convertPositionTo("relative",{top:0,left:u-r.helperProportions.width}).left),a&&(n.position.left=r._convertPositionTo("relative",{top:0,left:c}).left)),p=i||o||s||a,"outer"!==f.snapMode&&(i=g>=Math.abs(l-y),o=g>=Math.abs(h-b),s=g>=Math.abs(u-m),a=g>=Math.abs(c-v),i&&(n.position.top=r._convertPositionTo("relative",{top:l,left:0}).top),o&&(n.position.top=r._convertPositionTo("relative",{top:h-r.helperProportions.height,left:0}).top),s&&(n.position.left=r._convertPositionTo("relative",{top:0,left:u}).left),a&&(n.position.left=r._convertPositionTo("relative",{top:0,left:c-r.helperProportions.width}).left)),!r.snapElements[d].snapping&&(i||o||s||a||p)&&r.options.snap.snap&&r.options.snap.snap.call(r.element,t,e.extend(r._uiHash(),{snapItem:r.snapElements[d].item})),r.snapElements[d].snapping=i||o||s||a||p)}}),e.ui.plugin.add("draggable","stack",{start:function(t,n,r){var i,o=r.options,s=e.makeArray(e(o.stack)).sort(function(t,n){return(parseInt(e(t).css("zIndex"),10)||0)-(parseInt(e(n).css("zIndex"),10)||0)})
+s.length&&(i=parseInt(e(s[0]).css("zIndex"),10)||0,e(s).each(function(t){e(this).css("zIndex",i+t)}),this.css("zIndex",i+s.length))}}),e.ui.plugin.add("draggable","zIndex",{start:function(t,n,r){var i=e(n.helper),o=r.options
+i.css("zIndex")&&(o._zIndex=i.css("zIndex")),i.css("zIndex",o.zIndex)},stop:function(t,n,r){var i=r.options
+i._zIndex&&e(n.helper).css("zIndex",i._zIndex)}}),e.ui.draggable,e.widget("ui.resizable",e.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(e){return parseFloat(e)||0},_isNumber:function(e){return!isNaN(parseFloat(e))},_hasScroll:function(t,n){if("hidden"===e(t).css("overflow"))return!1
+var r=n&&"left"===n?"scrollLeft":"scrollTop",i=!1
+return t[r]>0||(t[r]=1,i=t[r]>0,t[r]=0,i)},_create:function(){var t,n=this.options,r=this
+this._addClass("ui-resizable"),e.extend(this,{_aspectRatio:!!n.aspectRatio,aspectRatio:n.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:n.helper||n.ghost||n.animate?n.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(e("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),n.autoHide&&e(this.element).on("mouseenter",function(){n.disabled||(r._removeClass("ui-resizable-autohide"),r._handles.show())}).on("mouseleave",function(){n.disabled||r.resizing||(r._addClass("ui-resizable-autohide"),r._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy()
+var t,n=function(t){e(t).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()}
+return this.elementIsWrapper&&(n(this.element),t=this.element,this.originalElement.css({position:t.css("position"),width:t.outerWidth(),height:t.outerHeight(),top:t.css("top"),left:t.css("left")}).insertAfter(t),t.remove()),this.originalElement.css("resize",this.originalResizeStyle),n(this.originalElement),this},_setOption:function(e,t){switch(this._super(e,t),e){case"handles":this._removeHandles(),this._setupHandles()}},_setupHandles:function(){var t,n,r,i,o,s=this.options,a=this
+if(this.handles=s.handles||(e(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=e(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),r=this.handles.split(","),this.handles={},n=0;r.length>n;n++)t=e.trim(r[n]),i="ui-resizable-"+t,o=e("<div>"),this._addClass(o,"ui-resizable-handle "+i),o.css({zIndex:s.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.append(o)
+this._renderAxis=function(t){var n,r,i,o
+t=t||this.element
+for(n in this.handles)this.handles[n].constructor===String?this.handles[n]=this.element.children(this.handles[n]).first().show():(this.handles[n].jquery||this.handles[n].nodeType)&&(this.handles[n]=e(this.handles[n]),this._on(this.handles[n],{mousedown:a._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(r=e(this.handles[n],this.element),o=/sw|ne|nw|se|n|s/.test(n)?r.outerHeight():r.outerWidth(),i=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join(""),t.css(i,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[n])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){a.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),a.axis=o&&o[1]?o[1]:"se")}),s.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(t){var n,r,i=!1
+for(n in this.handles)((r=e(this.handles[n])[0])===t.target||e.contains(r,t.target))&&(i=!0)
+return!this.options.disabled&&i},_mouseStart:function(t){var n,r,i,o=this.options,s=this.element
+return this.resizing=!0,this._renderProxy(),n=this._num(this.helper.css("left")),r=this._num(this.helper.css("top")),o.containment&&(n+=e(o.containment).scrollLeft()||0,r+=e(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:n,top:r},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:s.width(),height:s.height()},this.originalSize=this._helper?{width:s.outerWidth(),height:s.outerHeight()}:{width:s.width(),height:s.height()},this.sizeDiff={width:s.outerWidth()-s.width(),height:s.outerHeight()-s.height()},this.originalPosition={left:n,top:r},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,i=e(".ui-resizable-"+this.axis).css("cursor"),e("body").css("cursor","auto"===i?this.axis+"-resize":i),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var n,r,i=this.originalMousePosition,o=this.axis,s=t.pageX-i.left||0,a=t.pageY-i.top||0,u=this._change[o]
+return this._updatePrevProperties(),!!u&&(n=u.apply(this,[t,s,a]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(n=this._updateRatio(n,t)),n=this._respectSize(n,t),this._updateCache(n),this._propagate("resize",t),r=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),e.isEmptyObject(r)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges()),!1)},_mouseStop:function(t){this.resizing=!1
+var n,r,i,o,s,a,u,c=this.options,l=this
+return this._helper&&(n=this._proportionallyResizeElements,r=n.length&&/textarea/i.test(n[0].nodeName),i=r&&this._hasScroll(n[0],"left")?0:l.sizeDiff.height,o=r?0:l.sizeDiff.width,s={width:l.helper.width()-o,height:l.helper.height()-i},a=parseFloat(l.element.css("left"))+(l.position.left-l.originalPosition.left)||null,u=parseFloat(l.element.css("top"))+(l.position.top-l.originalPosition.top)||null,c.animate||this.element.css(e.extend(s,{top:u,left:a})),l.helper.height(l.size.height),l.helper.width(l.size.width),this._helper&&!c.animate&&this._proportionallyResize()),e("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var e={}
+return this.position.top!==this.prevPosition.top&&(e.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(e.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(e.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(e.height=this.size.height+"px"),this.helper.css(e),e},_updateVirtualBoundaries:function(e){var t,n,r,i,o,s=this.options
+o={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0},(this._aspectRatio||e)&&(t=o.minHeight*this.aspectRatio,r=o.minWidth/this.aspectRatio,n=o.maxHeight*this.aspectRatio,i=o.maxWidth/this.aspectRatio,t>o.minWidth&&(o.minWidth=t),r>o.minHeight&&(o.minHeight=r),o.maxWidth>n&&(o.maxWidth=n),o.maxHeight>i&&(o.maxHeight=i)),this._vBoundaries=o},_updateCache:function(e){this.offset=this.helper.offset(),this._isNumber(e.left)&&(this.position.left=e.left),this._isNumber(e.top)&&(this.position.top=e.top),this._isNumber(e.height)&&(this.size.height=e.height),this._isNumber(e.width)&&(this.size.width=e.width)},_updateRatio:function(e){var t=this.position,n=this.size,r=this.axis
+return this._isNumber(e.height)?e.width=e.height*this.aspectRatio:this._isNumber(e.width)&&(e.height=e.width/this.aspectRatio),"sw"===r&&(e.left=t.left+(n.width-e.width),e.top=null),"nw"===r&&(e.top=t.top+(n.height-e.height),e.left=t.left+(n.width-e.width)),e},_respectSize:function(e){var t=this._vBoundaries,n=this.axis,r=this._isNumber(e.width)&&t.maxWidth&&t.maxWidth<e.width,i=this._isNumber(e.height)&&t.maxHeight&&t.maxHeight<e.height,o=this._isNumber(e.width)&&t.minWidth&&t.minWidth>e.width,s=this._isNumber(e.height)&&t.minHeight&&t.minHeight>e.height,a=this.originalPosition.left+this.originalSize.width,u=this.originalPosition.top+this.originalSize.height,c=/sw|nw|w/.test(n),l=/nw|ne|n/.test(n)
+return o&&(e.width=t.minWidth),s&&(e.height=t.minHeight),r&&(e.width=t.maxWidth),i&&(e.height=t.maxHeight),o&&c&&(e.left=a-t.minWidth),r&&c&&(e.left=a-t.maxWidth),s&&l&&(e.top=u-t.minHeight),i&&l&&(e.top=u-t.maxHeight),e.width||e.height||e.left||!e.top?e.width||e.height||e.top||!e.left||(e.left=null):e.top=null,e},_getPaddingPlusBorderDimensions:function(e){for(var t=0,n=[],r=[e.css("borderTopWidth"),e.css("borderRightWidth"),e.css("borderBottomWidth"),e.css("borderLeftWidth")],i=[e.css("paddingTop"),e.css("paddingRight"),e.css("paddingBottom"),e.css("paddingLeft")];4>t;t++)n[t]=parseFloat(r[t])||0,n[t]+=parseFloat(i[t])||0
+return{height:n[0]+n[2],width:n[1]+n[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var e,t=0,n=this.helper||this.element;this._proportionallyResizeElements.length>t;t++)e=this._proportionallyResizeElements[t],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(e)),e.css({height:n.height()-this.outerDimensions.height||0,width:n.width()-this.outerDimensions.width||0})},_renderProxy:function(){var t=this.element,n=this.options
+this.elementOffset=t.offset(),this._helper?(this.helper=this.helper||e("<div style='overflow:hidden;'></div>"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++n.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(e,t){return{width:this.originalSize.width+t}},w:function(e,t){var n=this.originalSize
+return{left:this.originalPosition.left+t,width:n.width-t}},n:function(e,t,n){var r=this.originalSize
+return{top:this.originalPosition.top+n,height:r.height-n}},s:function(e,t,n){return{height:this.originalSize.height+n}},se:function(t,n,r){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,n,r]))},sw:function(t,n,r){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,n,r]))},ne:function(t,n,r){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,n,r]))},nw:function(t,n,r){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,n,r]))}},_propagate:function(t,n){e.ui.plugin.call(this,t,[n,this.ui()]),"resize"!==t&&this._trigger(t,n,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),e.ui.plugin.add("resizable","animate",{stop:function(t){var n=e(this).resizable("instance"),r=n.options,i=n._proportionallyResizeElements,o=i.length&&/textarea/i.test(i[0].nodeName),s=o&&n._hasScroll(i[0],"left")?0:n.sizeDiff.height,a=o?0:n.sizeDiff.width,u={width:n.size.width-a,height:n.size.height-s},c=parseFloat(n.element.css("left"))+(n.position.left-n.originalPosition.left)||null,l=parseFloat(n.element.css("top"))+(n.position.top-n.originalPosition.top)||null
+n.element.animate(e.extend(u,l&&c?{top:l,left:c}:{}),{duration:r.animateDuration,easing:r.animateEasing,step:function(){var r={width:parseFloat(n.element.css("width")),height:parseFloat(n.element.css("height")),top:parseFloat(n.element.css("top")),left:parseFloat(n.element.css("left"))}
+i&&i.length&&e(i[0]).css({width:r.width,height:r.height}),n._updateCache(r),n._propagate("resize",t)}})}}),e.ui.plugin.add("resizable","containment",{start:function(){var t,n,r,i,o,s,a,u=e(this).resizable("instance"),c=u.options,l=u.element,h=c.containment,d=h instanceof e?h.get(0):/parent/.test(h)?l.parent().get(0):h
+d&&(u.containerElement=e(d),/document/.test(h)||h===document?(u.containerOffset={left:0,top:0},u.containerPosition={left:0,top:0},u.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}):(t=e(d),n=[],e(["Top","Right","Left","Bottom"]).each(function(e,r){n[e]=u._num(t.css("padding"+r))}),u.containerOffset=t.offset(),u.containerPosition=t.position(),u.containerSize={height:t.innerHeight()-n[3],width:t.innerWidth()-n[1]},r=u.containerOffset,i=u.containerSize.height,o=u.containerSize.width,s=u._hasScroll(d,"left")?d.scrollWidth:o,a=u._hasScroll(d)?d.scrollHeight:i,u.parentData={element:d,left:r.left,top:r.top,width:s,height:a}))},resize:function(t){var n,r,i,o,s=e(this).resizable("instance"),a=s.options,u=s.containerOffset,c=s.position,l=s._aspectRatio||t.shiftKey,h={top:0,left:0},d=s.containerElement,p=!0
+d[0]!==document&&/static/.test(d.css("position"))&&(h=u),c.left<(s._helper?u.left:0)&&(s.size.width=s.size.width+(s._helper?s.position.left-u.left:s.position.left-h.left),l&&(s.size.height=s.size.width/s.aspectRatio,p=!1),s.position.left=a.helper?u.left:0),c.top<(s._helper?u.top:0)&&(s.size.height=s.size.height+(s._helper?s.position.top-u.top:s.position.top),l&&(s.size.width=s.size.height*s.aspectRatio,p=!1),s.position.top=s._helper?u.top:0),i=s.containerElement.get(0)===s.element.parent().get(0),o=/relative|absolute/.test(s.containerElement.css("position")),i&&o?(s.offset.left=s.parentData.left+s.position.left,s.offset.top=s.parentData.top+s.position.top):(s.offset.left=s.element.offset().left,s.offset.top=s.element.offset().top),n=Math.abs(s.sizeDiff.width+(s._helper?s.offset.left-h.left:s.offset.left-u.left)),r=Math.abs(s.sizeDiff.height+(s._helper?s.offset.top-h.top:s.offset.top-u.top)),n+s.size.width>=s.parentData.width&&(s.size.width=s.parentData.width-n,l&&(s.size.height=s.size.width/s.aspectRatio,p=!1)),r+s.size.height>=s.parentData.height&&(s.size.height=s.parentData.height-r,l&&(s.size.width=s.size.height*s.aspectRatio,p=!1)),p||(s.position.left=s.prevPosition.left,s.position.top=s.prevPosition.top,s.size.width=s.prevSize.width,s.size.height=s.prevSize.height)},stop:function(){var t=e(this).resizable("instance"),n=t.options,r=t.containerOffset,i=t.containerPosition,o=t.containerElement,s=e(t.helper),a=s.offset(),u=s.outerWidth()-t.sizeDiff.width,c=s.outerHeight()-t.sizeDiff.height
+t._helper&&!n.animate&&/relative/.test(o.css("position"))&&e(this).css({left:a.left-i.left-r.left,width:u,height:c}),t._helper&&!n.animate&&/static/.test(o.css("position"))&&e(this).css({left:a.left-i.left-r.left,width:u,height:c})}}),e.ui.plugin.add("resizable","alsoResize",{start:function(){var t=e(this).resizable("instance"),n=t.options
+e(n.alsoResize).each(function(){var t=e(this)
+t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,n){var r=e(this).resizable("instance"),i=r.options,o=r.originalSize,s=r.originalPosition,a={height:r.size.height-o.height||0,width:r.size.width-o.width||0,top:r.position.top-s.top||0,left:r.position.left-s.left||0}
+e(i.alsoResize).each(function(){var t=e(this),r=e(this).data("ui-resizable-alsoresize"),i={},o=t.parents(n.originalElement[0]).length?["width","height"]:["width","height","top","left"]
+e.each(o,function(e,t){var n=(r[t]||0)+(a[t]||0)
+n&&n>=0&&(i[t]=n||null)}),t.css(i)})},stop:function(){e(this).removeData("ui-resizable-alsoresize")}}),e.ui.plugin.add("resizable","ghost",{start:function(){var t=e(this).resizable("instance"),n=t.size
+t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:n.height,width:n.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==e.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=e(this).resizable("instance")
+t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=e(this).resizable("instance")
+t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),e.ui.plugin.add("resizable","grid",{resize:function(){var t,n=e(this).resizable("instance"),r=n.options,i=n.size,o=n.originalSize,s=n.originalPosition,a=n.axis,u="number"==typeof r.grid?[r.grid,r.grid]:r.grid,c=u[0]||1,l=u[1]||1,h=Math.round((i.width-o.width)/c)*c,d=Math.round((i.height-o.height)/l)*l,p=o.width+h,f=o.height+d,g=r.maxWidth&&p>r.maxWidth,m=r.maxHeight&&f>r.maxHeight,v=r.minWidth&&r.minWidth>p,y=r.minHeight&&r.minHeight>f
+r.grid=u,v&&(p+=c),y&&(f+=l),g&&(p-=c),m&&(f-=l),/^(se|s|e)$/.test(a)?(n.size.width=p,n.size.height=f):/^(ne)$/.test(a)?(n.size.width=p,n.size.height=f,n.position.top=s.top-d):/^(sw)$/.test(a)?(n.size.width=p,n.size.height=f,n.position.left=s.left-h):((0>=f-l||0>=p-c)&&(t=n._getPaddingPlusBorderDimensions(this)),f-l>0?(n.size.height=f,n.position.top=s.top-d):(f=l-t.height,n.size.height=f,n.position.top=s.top+o.height-f),p-c>0?(n.size.width=p,n.position.left=s.left-h):(p=c-t.width,n.size.width=p,n.position.left=s.left+o.width-p))}}),e.ui.resizable}),function(e){"use strict"
+"function"==typeof define&&define.amd?define(["jquery"],e):"undefined"!=typeof module&&module.exports?module.exports=e(require("jquery")):e(jQuery)}(function(e,t){"use strict"
+if(!e.jstree){var n=0,r=!1,i=!1,o=!1,s=[],a=e("script:last").attr("src"),u=window.document
+e.jstree={version:"3.3.5",defaults:{plugins:[]},plugins:{},path:a&&-1!==a.indexOf("/")?a.replace(/\/[^\/]+$/,""):"",idregex:/[\\:&!^|()\[\]<>@*'+~#";.,=\- \/${}%?`]/g,root:"#"},e.jstree.create=function(t,r){var i=new e.jstree.core(++n),o=r
+return r=e.extend(!0,{},e.jstree.defaults,r),o&&o.plugins&&(r.plugins=o.plugins),e.each(r.plugins,function(e,t){"core"!==e&&(i=i.plugin(t,r[t]))}),e(t).data("jstree",i),i.init(t,r),i},e.jstree.destroy=function(){e(".jstree:jstree").jstree("destroy"),e(u).off(".jstree")},e.jstree.core=function(e){this._id=e,this._cnt=0,this._wrk=null,this._data={core:{themes:{name:!1,dots:!1,icons:!1,ellipsis:!1},selected:[],last_error:{},working:!1,worker_queue:[],focused:null}}},e.jstree.reference=function(t){var n=null,r=null
+if(!t||!t.id||t.tagName&&t.nodeType||(t=t.id),!r||!r.length)try{r=e(t)}catch(e){}if(!r||!r.length)try{r=e("#"+t.replace(e.jstree.idregex,"\\$&"))}catch(e){}return r&&r.length&&(r=r.closest(".jstree")).length&&(r=r.data("jstree"))?n=r:e(".jstree").each(function(){var r=e(this).data("jstree")
+return r&&r._model.data[t]?(n=r,!1):void 0}),n},e.fn.jstree=function(n){var r="string"==typeof n,i=Array.prototype.slice.call(arguments,1),o=null
+return!(!0===n&&!this.length)&&(this.each(function(){var s=e.jstree.reference(this),a=r&&s?s[n]:null
+return o=r&&a?a.apply(s,i):null,s||r||n!==t&&!e.isPlainObject(n)||e.jstree.create(this,n),(s&&!r||!0===n)&&(o=s||!1),(null===o||o===t)&&void 0}),null!==o&&o!==t?o:this)},e.expr.pseudos.jstree=e.expr.createPseudo(function(n){return function(n){return e(n).hasClass("jstree")&&e(n).data("jstree")!==t}}),e.jstree.defaults.core={data:!1,strings:!1,check_callback:!1,error:e.noop,animation:200,multiple:!0,themes:{name:!1,url:!1,dir:!1,dots:!0,icons:!0,ellipsis:!1,stripes:!1,variant:!1,responsive:!1},expand_selected_onload:!0,worker:!0,force_text:!1,dblclick_toggle:!0,loaded_state:!1,restore_focus:!0,keyboard:{"ctrl-space":function(t){t.type="click",e(t.currentTarget).trigger(t)},enter:function(t){t.type="click",e(t.currentTarget).trigger(t)},left:function(t){if(t.preventDefault(),this.is_open(t.currentTarget))this.close_node(t.currentTarget)
+else{var n=this.get_parent(t.currentTarget)
+n&&n.id!==e.jstree.root&&this.get_node(n,!0).children(".jstree-anchor").focus()}},up:function(e){e.preventDefault()
+var t=this.get_prev_dom(e.currentTarget)
+t&&t.length&&t.children(".jstree-anchor").focus()},right:function(t){if(t.preventDefault(),this.is_closed(t.currentTarget))this.open_node(t.currentTarget,function(e){this.get_node(e,!0).children(".jstree-anchor").focus()})
+else if(this.is_open(t.currentTarget)){var n=this.get_node(t.currentTarget,!0).children(".jstree-children")[0]
+n&&e(this._firstChild(n)).children(".jstree-anchor").focus()}},down:function(e){e.preventDefault()
+var t=this.get_next_dom(e.currentTarget)
+t&&t.length&&t.children(".jstree-anchor").focus()},"*":function(e){this.open_all()},home:function(t){t.preventDefault()
+var n=this._firstChild(this.get_container_ul()[0])
+n&&e(n).children(".jstree-anchor").filter(":visible").focus()},end:function(e){e.preventDefault(),this.element.find(".jstree-anchor").filter(":visible").last().focus()},f2:function(e){e.preventDefault(),this.edit(e.currentTarget)}}},e.jstree.core.prototype={plugin:function(t,n){var r=e.jstree.plugins[t]
+return r?(this._data[t]={},r.prototype=this,new r(n,this)):this},init:function(t,n){this._model={data:{},changed:[],force_full_redraw:!1,redraw_timeout:!1,default_state:{loaded:!0,opened:!1,selected:!1,disabled:!1}},this._model.data[e.jstree.root]={id:e.jstree.root,parent:null,parents:[],children:[],children_d:[],state:{loaded:!1}},this.element=e(t).addClass("jstree jstree-"+this._id),this.settings=n,this._data.core.ready=!1,this._data.core.loaded=!1,this._data.core.rtl="rtl"===this.element.css("direction"),this.element[this._data.core.rtl?"addClass":"removeClass"]("jstree-rtl"),this.element.attr("role","tree"),this.settings.core.multiple&&this.element.attr("aria-multiselectable",!0),this.element.attr("tabindex")||this.element.attr("tabindex","0"),this.bind(),this.trigger("init"),this._data.core.original_container_html=this.element.find(" > ul > li").clone(!0),this._data.core.original_container_html.find("li").addBack().contents().filter(function(){return 3===this.nodeType&&(!this.nodeValue||/^\s+$/.test(this.nodeValue))}).remove(),this.element.html("<ul class='jstree-container-ul jstree-children' role='group'><li id='j"+this._id+"_loading' class='jstree-initial-node jstree-loading jstree-leaf jstree-last' role='tree-item'><i class='jstree-icon jstree-ocl'></i><a class='jstree-anchor' href='#'><i class='jstree-icon jstree-themeicon-hidden'></i>"+this.get_string("Loading ...")+"</a></li></ul>"),this.element.attr("aria-activedescendant","j"+this._id+"_loading"),this._data.core.li_height=this.get_container_ul().children("li").first().outerHeight()||24,this._data.core.node=this._create_prototype_node(),this.trigger("loading"),this.load_node(e.jstree.root)},destroy:function(e){if(this.trigger("destroy"),this._wrk)try{window.URL.revokeObjectURL(this._wrk),this._wrk=null}catch(e){}e||this.element.empty(),this.teardown()},_create_prototype_node:function(){var e,t,n=u.createElement("LI")
+return n.setAttribute("role","treeitem"),e=u.createElement("I"),e.className="jstree-icon jstree-ocl",e.setAttribute("role","presentation"),n.appendChild(e),e=u.createElement("A"),e.className="jstree-anchor",e.setAttribute("href","#"),e.setAttribute("tabindex","-1"),t=u.createElement("I"),t.className="jstree-icon jstree-themeicon",t.setAttribute("role","presentation"),e.appendChild(t),n.appendChild(e),e=t=null,n},_kbevent_to_func:function(e){var t={8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",96:"Numpad0",97:"Numpad1",98:"Numpad2",99:"Numpad3",100:"Numpad4",101:"Numpad5",102:"Numpad6",103:"Numpad7",104:"Numpad8",105:"Numpad9","-13":"NumpadEnter",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock",16:"Shift",17:"Ctrl",18:"Alt",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",111:"/",106:"*",173:"-"},n=[]
+e.ctrlKey&&n.push("ctrl"),e.altKey&&n.push("alt"),e.shiftKey&&n.push("shift"),n.push(t[e.which]||e.which),n=n.sort().join("-").toLowerCase()
+var r,i,o=this.settings.core.keyboard
+for(r in o)if(o.hasOwnProperty(r)&&(i=r,"-"!==i&&"+"!==i&&(i=i.replace("--","-MINUS").replace("+-","-MINUS").replace("++","-PLUS").replace("-+","-PLUS"),i=i.split(/-|\+/).sort().join("-").replace("MINUS","-").replace("PLUS","+").toLowerCase()),i===n))return o[r]
+return null},teardown:function(){this.unbind(),this.element.removeClass("jstree").removeData("jstree").find("[class^='jstree']").addBack().attr("class",function(){return this.className.replace(/jstree[^ ]*|$/gi,"")}),this.element=null},bind:function(){var t="",n=null,r=0
+this.element.on("dblclick.jstree",function(e){if(e.target.tagName&&"input"===e.target.tagName.toLowerCase())return!0
+if(u.selection&&u.selection.empty)u.selection.empty()
+else if(window.getSelection){var t=window.getSelection()
+try{t.removeAllRanges(),t.collapse()}catch(e){}}}).on("mousedown.jstree",e.proxy(function(e){e.target===this.element[0]&&(e.preventDefault(),r=+new Date)},this)).on("mousedown.jstree",".jstree-ocl",function(e){e.preventDefault()}).on("click.jstree",".jstree-ocl",e.proxy(function(e){this.toggle_node(e.target)},this)).on("dblclick.jstree",".jstree-anchor",e.proxy(function(e){return!(!e.target.tagName||"input"!==e.target.tagName.toLowerCase())||void(this.settings.core.dblclick_toggle&&this.toggle_node(e.target))},this)).on("click.jstree",".jstree-anchor",e.proxy(function(t){t.preventDefault(),t.currentTarget!==u.activeElement&&e(t.currentTarget).focus(),this.activate_node(t.currentTarget,t)},this)).on("keydown.jstree",".jstree-anchor",e.proxy(function(e){if(e.target.tagName&&"input"===e.target.tagName.toLowerCase())return!0
+this._data.core.rtl&&(37===e.which?e.which=39:39===e.which&&(e.which=37))
+var t=this._kbevent_to_func(e)
+if(t){var n=t.call(this,e)
+if(!1===n||!0===n)return n}},this)).on("load_node.jstree",e.proxy(function(t,n){n.status&&(n.node.id!==e.jstree.root||this._data.core.loaded||(this._data.core.loaded=!0,this._firstChild(this.get_container_ul()[0])&&this.element.attr("aria-activedescendant",this._firstChild(this.get_container_ul()[0]).id),this.trigger("loaded")),this._data.core.ready||setTimeout(e.proxy(function(){if(this.element&&!this.get_container_ul().find(".jstree-loading").length){if(this._data.core.ready=!0,this._data.core.selected.length){if(this.settings.core.expand_selected_onload){var t,n,r=[]
+for(t=0,n=this._data.core.selected.length;n>t;t++)r=r.concat(this._model.data[this._data.core.selected[t]].parents)
+for(r=e.vakata.array_unique(r),t=0,n=r.length;n>t;t++)this.open_node(r[t],!1,0)}this.trigger("changed",{action:"ready",selected:this._data.core.selected})}this.trigger("ready")}},this),0))},this)).on("keypress.jstree",e.proxy(function(r){if(r.target.tagName&&"input"===r.target.tagName.toLowerCase())return!0
+n&&clearTimeout(n),n=setTimeout(function(){t=""},500)
+var i=String.fromCharCode(r.which).toLowerCase(),o=this.element.find(".jstree-anchor").filter(":visible"),s=o.index(u.activeElement)||0,a=!1
+if(t+=i,t.length>1){if(o.slice(s).each(e.proxy(function(n,r){return 0===e(r).text().toLowerCase().indexOf(t)?(e(r).focus(),a=!0,!1):void 0},this)),a)return
+if(o.slice(0,s).each(e.proxy(function(n,r){return 0===e(r).text().toLowerCase().indexOf(t)?(e(r).focus(),a=!0,!1):void 0},this)),a)return}if(new RegExp("^"+i.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")+"+$").test(t)){if(o.slice(s+1).each(e.proxy(function(t,n){return e(n).text().toLowerCase().charAt(0)===i?(e(n).focus(),a=!0,!1):void 0},this)),a)return
+if(o.slice(0,s+1).each(e.proxy(function(t,n){return e(n).text().toLowerCase().charAt(0)===i?(e(n).focus(),a=!0,!1):void 0},this)),a)return}},this)).on("init.jstree",e.proxy(function(){var e=this.settings.core.themes
+this._data.core.themes.dots=e.dots,this._data.core.themes.stripes=e.stripes,this._data.core.themes.icons=e.icons,this._data.core.themes.ellipsis=e.ellipsis,this.set_theme(e.name||"default",e.url),this.set_theme_variant(e.variant)},this)).on("loading.jstree",e.proxy(function(){this[this._data.core.themes.dots?"show_dots":"hide_dots"](),this[this._data.core.themes.icons?"show_icons":"hide_icons"](),this[this._data.core.themes.stripes?"show_stripes":"hide_stripes"](),this[this._data.core.themes.ellipsis?"show_ellipsis":"hide_ellipsis"]()},this)).on("blur.jstree",".jstree-anchor",e.proxy(function(t){this._data.core.focused=null,e(t.currentTarget).filter(".jstree-hovered").mouseleave(),this.element.attr("tabindex","0")},this)).on("focus.jstree",".jstree-anchor",e.proxy(function(t){var n=this.get_node(t.currentTarget)
+n&&n.id&&(this._data.core.focused=n.id),this.element.find(".jstree-hovered").not(t.currentTarget).mouseleave(),e(t.currentTarget).mouseenter(),this.element.attr("tabindex","-1")},this)).on("focus.jstree",e.proxy(function(){if(+new Date-r>500&&!this._data.core.focused&&this.settings.core.restore_focus){r=0
+var e=this.get_node(this.element.attr("aria-activedescendant"),!0)
+e&&e.find("> .jstree-anchor").focus()}},this)).on("mouseenter.jstree",".jstree-anchor",e.proxy(function(e){this.hover_node(e.currentTarget)},this)).on("mouseleave.jstree",".jstree-anchor",e.proxy(function(e){this.dehover_node(e.currentTarget)},this))},unbind:function(){this.element.off(".jstree"),e(u).off(".jstree-"+this._id)},trigger:function(e,t){t||(t={}),t.instance=this,this.element.triggerHandler(e.replace(".jstree","")+".jstree",t)},get_container:function(){return this.element},get_container_ul:function(){return this.element.children(".jstree-children").first()},get_string:function(t){var n=this.settings.core.strings
+return e.isFunction(n)?n.call(this,t):n&&n[t]?n[t]:t},_firstChild:function(e){for(e=e?e.firstChild:null;null!==e&&1!==e.nodeType;)e=e.nextSibling
+return e},_nextSibling:function(e){for(e=e?e.nextSibling:null;null!==e&&1!==e.nodeType;)e=e.nextSibling
+return e},_previousSibling:function(e){for(e=e?e.previousSibling:null;null!==e&&1!==e.nodeType;)e=e.previousSibling
+return e},get_node:function(t,n){t&&t.id&&(t=t.id)
+var r
+try{if(this._model.data[t])t=this._model.data[t]
+else if("string"==typeof t&&this._model.data[t.replace(/^#/,"")])t=this._model.data[t.replace(/^#/,"")]
+else if("string"==typeof t&&(r=e("#"+t.replace(e.jstree.idregex,"\\$&"),this.element)).length&&this._model.data[r.closest(".jstree-node").attr("id")])t=this._model.data[r.closest(".jstree-node").attr("id")]
+else if((r=e(t,this.element)).length&&this._model.data[r.closest(".jstree-node").attr("id")])t=this._model.data[r.closest(".jstree-node").attr("id")]
+else{if(!(r=e(t,this.element)).length||!r.hasClass("jstree"))return!1
+t=this._model.data[e.jstree.root]}return n&&(t=t.id===e.jstree.root?this.element:e("#"+t.id.replace(e.jstree.idregex,"\\$&"),this.element)),t}catch(e){return!1}},get_path:function(t,n,r){if(!(t=t.parents?t:this.get_node(t))||t.id===e.jstree.root||!t.parents)return!1
+var i,o,s=[]
+for(s.push(r?t.id:t.text),i=0,o=t.parents.length;o>i;i++)s.push(r?t.parents[i]:this.get_text(t.parents[i]))
+return s=s.reverse().slice(1),n?s.join(n):s},get_next_dom:function(t,n){var r
+if(t=this.get_node(t,!0),t[0]===this.element[0]){for(r=this._firstChild(this.get_container_ul()[0]);r&&0===r.offsetHeight;)r=this._nextSibling(r)
+return!!r&&e(r)}if(!t||!t.length)return!1
+if(n){r=t[0]
+do{r=this._nextSibling(r)}while(r&&0===r.offsetHeight)
+return!!r&&e(r)}if(t.hasClass("jstree-open")){for(r=this._firstChild(t.children(".jstree-children")[0]);r&&0===r.offsetHeight;)r=this._nextSibling(r)
+if(null!==r)return e(r)}r=t[0]
+do{r=this._nextSibling(r)}while(r&&0===r.offsetHeight)
+return null!==r?e(r):t.parentsUntil(".jstree",".jstree-node").nextAll(".jstree-node:visible").first()},get_prev_dom:function(t,n){var r
+if(t=this.get_node(t,!0),t[0]===this.element[0]){for(r=this.get_container_ul()[0].lastChild;r&&0===r.offsetHeight;)r=this._previousSibling(r)
+return!!r&&e(r)}if(!t||!t.length)return!1
+if(n){r=t[0]
+do{r=this._previousSibling(r)}while(r&&0===r.offsetHeight)
+return!!r&&e(r)}r=t[0]
+do{r=this._previousSibling(r)}while(r&&0===r.offsetHeight)
+if(null!==r){for(t=e(r);t.hasClass("jstree-open");)t=t.children(".jstree-children").first().children(".jstree-node:visible:last")
+return t}return!(!(r=t[0].parentNode.parentNode)||!r.className||-1===r.className.indexOf("jstree-node"))&&e(r)},get_parent:function(t){return!(!(t=this.get_node(t))||t.id===e.jstree.root)&&t.parent},get_children_dom:function(e){return e=this.get_node(e,!0),e[0]===this.element[0]?this.get_container_ul().children(".jstree-node"):!(!e||!e.length)&&e.children(".jstree-children").children(".jstree-node")},is_parent:function(e){return(e=this.get_node(e))&&(!1===e.state.loaded||e.children.length>0)},is_loaded:function(e){return(e=this.get_node(e))&&e.state.loaded},is_loading:function(e){return(e=this.get_node(e))&&e.state&&e.state.loading},is_open:function(e){return(e=this.get_node(e))&&e.state.opened},is_closed:function(e){return(e=this.get_node(e))&&this.is_parent(e)&&!e.state.opened},is_leaf:function(e){return!this.is_parent(e)},load_node:function(t,n){var r,i,o,s,a
+if(e.isArray(t))return this._load_nodes(t.slice(),n),!0
+if(!(t=this.get_node(t)))return n&&n.call(this,t,!1),!1
+if(t.state.loaded){for(t.state.loaded=!1,o=0,s=t.parents.length;s>o;o++)this._model.data[t.parents[o]].children_d=e.vakata.array_filter(this._model.data[t.parents[o]].children_d,function(n){return-1===e.inArray(n,t.children_d)})
+for(r=0,i=t.children_d.length;i>r;r++)this._model.data[t.children_d[r]].state.selected&&(a=!0),delete this._model.data[t.children_d[r]]
+a&&(this._data.core.selected=e.vakata.array_filter(this._data.core.selected,function(n){return-1===e.inArray(n,t.children_d)})),t.children=[],t.children_d=[],a&&this.trigger("changed",{action:"load_node",node:t,selected:this._data.core.selected})}return t.state.failed=!1,t.state.loading=!0,this.get_node(t,!0).addClass("jstree-loading").attr("aria-busy",!0),this._load_node(t,e.proxy(function(e){t=this._model.data[t.id],t.state.loading=!1,t.state.loaded=e,t.state.failed=!t.state.loaded
+var r=this.get_node(t,!0),i=0,o=0,s=this._model.data,a=!1
+for(i=0,o=t.children.length;o>i;i++)if(s[t.children[i]]&&!s[t.children[i]].state.hidden){a=!0
+break}t.state.loaded&&r&&r.length&&(r.removeClass("jstree-closed jstree-open jstree-leaf"),a?"#"!==t.id&&r.addClass(t.state.opened?"jstree-open":"jstree-closed"):r.addClass("jstree-leaf")),r.removeClass("jstree-loading").attr("aria-busy",!1),this.trigger("load_node",{node:t,status:e}),n&&n.call(this,t,e)},this)),!0},_load_nodes:function(e,t,n,r){var i,o,s=!0,a=function(){this._load_nodes(e,t,!0)},u=this._model.data,c=[]
+for(i=0,o=e.length;o>i;i++)u[e[i]]&&(!u[e[i]].state.loaded&&!u[e[i]].state.failed||!n&&r)&&(this.is_loading(e[i])||this.load_node(e[i],a),s=!1)
+if(s){for(i=0,o=e.length;o>i;i++)u[e[i]]&&u[e[i]].state.loaded&&c.push(e[i])
+t&&!t.done&&(t.call(this,c),t.done=!0)}},load_all:function(t,n){if(t||(t=e.jstree.root),!(t=this.get_node(t)))return!1
+var r,i,o=[],s=this._model.data,a=s[t.id].children_d
+for(t.state&&!t.state.loaded&&o.push(t.id),r=0,i=a.length;i>r;r++)s[a[r]]&&s[a[r]].state&&!s[a[r]].state.loaded&&o.push(a[r])
+o.length?this._load_nodes(o,function(){this.load_all(t,n)}):(n&&n.call(this,t),this.trigger("load_all",{node:t}))},_load_node:function(t,n){var r,i=this.settings.core.data,o=function(){return 3!==this.nodeType&&8!==this.nodeType}
+return i?e.isFunction(i)?i.call(this,t,e.proxy(function(r){!1===r?n.call(this,!1):this["string"==typeof r?"_append_html_data":"_append_json_data"](t,"string"==typeof r?e(e.parseHTML(r)).filter(o):r,function(e){n.call(this,e)})},this)):"object"==typeof i?i.url?(i=e.extend(!0,{},i),e.isFunction(i.url)&&(i.url=i.url.call(this,t)),e.isFunction(i.data)&&(i.data=i.data.call(this,t)),e.ajax(i).done(e.proxy(function(r,i,s){var a=s.getResponseHeader("Content-Type")
+return a&&-1!==a.indexOf("json")||"object"==typeof r?this._append_json_data(t,r,function(e){n.call(this,e)}):a&&-1!==a.indexOf("html")||"string"==typeof r?this._append_html_data(t,e(e.parseHTML(r)).filter(o),function(e){n.call(this,e)}):(this._data.core.last_error={error:"ajax",plugin:"core",id:"core_04",reason:"Could not load node",data:JSON.stringify({id:t.id,xhr:s})},this.settings.core.error.call(this,this._data.core.last_error),n.call(this,!1))},this)).fail(e.proxy(function(e){this._data.core.last_error={error:"ajax",plugin:"core",id:"core_04",reason:"Could not load node",data:JSON.stringify({id:t.id,xhr:e})},n.call(this,!1),this.settings.core.error.call(this,this._data.core.last_error)},this))):(r=e.isArray(i)?e.extend(!0,[],i):e.isPlainObject(i)?e.extend(!0,{},i):i,t.id===e.jstree.root?this._append_json_data(t,r,function(e){n.call(this,e)}):(this._data.core.last_error={error:"nodata",plugin:"core",id:"core_05",reason:"Could not load node",data:JSON.stringify({id:t.id})},this.settings.core.error.call(this,this._data.core.last_error),n.call(this,!1))):"string"==typeof i?t.id===e.jstree.root?this._append_html_data(t,e(e.parseHTML(i)).filter(o),function(e){n.call(this,e)}):(this._data.core.last_error={error:"nodata",plugin:"core",id:"core_06",reason:"Could not load node",data:JSON.stringify({id:t.id})},this.settings.core.error.call(this,this._data.core.last_error),n.call(this,!1)):n.call(this,!1):t.id===e.jstree.root?this._append_html_data(t,this._data.core.original_container_html.clone(!0),function(e){n.call(this,e)}):n.call(this,!1)},_node_changed:function(t){(t=this.get_node(t))&&-1===e.inArray(t.id,this._model.changed)&&this._model.changed.push(t.id)},_append_html_data:function(t,n,r){t=this.get_node(t),t.children=[],t.children_d=[]
+var i,o,s,a=n.is("ul")?n.children():n,u=t.id,c=[],l=[],h=this._model.data,d=h[u],p=this._data.core.selected.length
+for(a.each(e.proxy(function(t,n){(i=this._parse_model_from_html(e(n),u,d.parents.concat()))&&(c.push(i),l.push(i),h[i].children_d.length&&(l=l.concat(h[i].children_d)))},this)),d.children=c,d.children_d=l,o=0,s=d.parents.length;s>o;o++)h[d.parents[o]].children_d=h[d.parents[o]].children_d.concat(l)
+this.trigger("model",{nodes:l,parent:u}),u!==e.jstree.root?(this._node_changed(u),this.redraw()):(this.get_container_ul().children(".jstree-initial-node").remove(),this.redraw(!0)),this._data.core.selected.length!==p&&this.trigger("changed",{action:"model",selected:this._data.core.selected}),r.call(this,!0)},_append_json_data:function(t,n,r,i){if(null!==this.element){t=this.get_node(t),t.children=[],t.children_d=[],n.d&&"string"==typeof(n=n.d)&&(n=JSON.parse(n)),e.isArray(n)||(n=[n])
+var o=null,s={df:this._model.default_state,dat:n,par:t.id,m:this._model.data,t_id:this._id,t_cnt:this._cnt,sel:this._data.core.selected},a=function(e,t){e.data&&(e=e.data)
+var n,r,i,o,s=e.dat,a=e.par,u=[],c=[],l=[],h=e.df,d=e.t_id,p=e.t_cnt,f=e.m,g=f[a],m=e.sel,v=function(e,n,r){r=r?r.concat():[],n&&r.unshift(n)
+var i,o,s,a,u=e.id.toString(),c={id:u,text:e.text||"",icon:e.icon===t||e.icon,parent:n,parents:r,children:e.children||[],children_d:e.children_d||[],data:e.data,state:{},li_attr:{id:!1},a_attr:{href:"#"},original:!1}
+for(i in h)h.hasOwnProperty(i)&&(c.state[i]=h[i])
+if(e&&e.data&&e.data.jstree&&e.data.jstree.icon&&(c.icon=e.data.jstree.icon),(c.icon===t||null===c.icon||""===c.icon)&&(c.icon=!0),e&&e.data&&(c.data=e.data,e.data.jstree))for(i in e.data.jstree)e.data.jstree.hasOwnProperty(i)&&(c.state[i]=e.data.jstree[i])
+if(e&&"object"==typeof e.state)for(i in e.state)e.state.hasOwnProperty(i)&&(c.state[i]=e.state[i])
+if(e&&"object"==typeof e.li_attr)for(i in e.li_attr)e.li_attr.hasOwnProperty(i)&&(c.li_attr[i]=e.li_attr[i])
+if(c.li_attr.id||(c.li_attr.id=u),e&&"object"==typeof e.a_attr)for(i in e.a_attr)e.a_attr.hasOwnProperty(i)&&(c.a_attr[i]=e.a_attr[i])
+for(e&&e.children&&!0===e.children&&(c.state.loaded=!1,c.children=[],c.children_d=[]),f[c.id]=c,i=0,o=c.children.length;o>i;i++)s=v(f[c.children[i]],c.id,r),a=f[s],c.children_d.push(s),a.children_d.length&&(c.children_d=c.children_d.concat(a.children_d))
+return delete e.data,delete e.children,f[c.id].original=e,c.state.selected&&l.push(c.id),c.id},y=function(e,n,r){r=r?r.concat():[],n&&r.unshift(n)
+var i,o,s,a,u,c=!1
+do{c="j"+d+"_"+ ++p}while(f[c])
+u={id:!1,text:"string"==typeof e?e:"",icon:"object"!=typeof e||e.icon===t||e.icon,parent:n,parents:r,children:[],children_d:[],data:null,state:{},li_attr:{id:!1},a_attr:{href:"#"},original:!1}
+for(i in h)h.hasOwnProperty(i)&&(u.state[i]=h[i])
+if(e&&e.id&&(u.id=e.id.toString()),e&&e.text&&(u.text=e.text),e&&e.data&&e.data.jstree&&e.data.jstree.icon&&(u.icon=e.data.jstree.icon),(u.icon===t||null===u.icon||""===u.icon)&&(u.icon=!0),e&&e.data&&(u.data=e.data,e.data.jstree))for(i in e.data.jstree)e.data.jstree.hasOwnProperty(i)&&(u.state[i]=e.data.jstree[i])
+if(e&&"object"==typeof e.state)for(i in e.state)e.state.hasOwnProperty(i)&&(u.state[i]=e.state[i])
+if(e&&"object"==typeof e.li_attr)for(i in e.li_attr)e.li_attr.hasOwnProperty(i)&&(u.li_attr[i]=e.li_attr[i])
+if(u.li_attr.id&&!u.id&&(u.id=u.li_attr.id.toString()),u.id||(u.id=c),u.li_attr.id||(u.li_attr.id=u.id),e&&"object"==typeof e.a_attr)for(i in e.a_attr)e.a_attr.hasOwnProperty(i)&&(u.a_attr[i]=e.a_attr[i])
+if(e&&e.children&&e.children.length){for(i=0,o=e.children.length;o>i;i++)s=y(e.children[i],u.id,r),a=f[s],u.children.push(s),a.children_d.length&&(u.children_d=u.children_d.concat(a.children_d))
+u.children_d=u.children_d.concat(u.children)}return e&&e.children&&!0===e.children&&(u.state.loaded=!1,u.children=[],u.children_d=[]),delete e.data,delete e.children,u.original=e,f[u.id]=u,u.state.selected&&l.push(u.id),u.id}
+if(s.length&&s[0].id!==t&&s[0].parent!==t){for(r=0,i=s.length;i>r;r++)s[r].children||(s[r].children=[]),s[r].state||(s[r].state={}),f[s[r].id.toString()]=s[r]
+for(r=0,i=s.length;i>r;r++)f[s[r].parent.toString()]?(f[s[r].parent.toString()].children.push(s[r].id.toString()),g.children_d.push(s[r].id.toString())):(this._data.core.last_error={error:"parse",plugin:"core",id:"core_07",reason:"Node with invalid parent",data:JSON.stringify({id:s[r].id.toString(),parent:s[r].parent.toString()})},this.settings.core.error.call(this,this._data.core.last_error))
+for(r=0,i=g.children.length;i>r;r++)n=v(f[g.children[r]],a,g.parents.concat()),c.push(n),f[n].children_d.length&&(c=c.concat(f[n].children_d))
+for(r=0,i=g.parents.length;i>r;r++)f[g.parents[r]].children_d=f[g.parents[r]].children_d.concat(c)
+o={cnt:p,mod:f,sel:m,par:a,dpc:c,add:l}}else{for(r=0,i=s.length;i>r;r++)(n=y(s[r],a,g.parents.concat()))&&(u.push(n),c.push(n),f[n].children_d.length&&(c=c.concat(f[n].children_d)))
+for(g.children=u,g.children_d=c,r=0,i=g.parents.length;i>r;r++)f[g.parents[r]].children_d=f[g.parents[r]].children_d.concat(c)
+o={cnt:p,mod:f,sel:m,par:a,dpc:c,add:l}}return"undefined"!=typeof window&&void 0!==window.document?o:void postMessage(o)},u=function(t,n){if(null!==this.element){this._cnt=t.cnt
+var i,o=this._model.data
+for(i in o)o.hasOwnProperty(i)&&o[i].state&&o[i].state.loading&&t.mod[i]&&(t.mod[i].state.loading=!0)
+if(this._model.data=t.mod,n){var s,a=t.add,u=t.sel,c=this._data.core.selected.slice()
+if(o=this._model.data,u.length!==c.length||e.vakata.array_unique(u.concat(c)).length!==u.length){for(i=0,s=u.length;s>i;i++)-1===e.inArray(u[i],a)&&-1===e.inArray(u[i],c)&&(o[u[i]].state.selected=!1)
+for(i=0,s=c.length;s>i;i++)-1===e.inArray(c[i],u)&&(o[c[i]].state.selected=!0)}}t.add.length&&(this._data.core.selected=this._data.core.selected.concat(t.add)),this.trigger("model",{nodes:t.dpc,parent:t.par}),t.par!==e.jstree.root?(this._node_changed(t.par),this.redraw()):this.redraw(!0),t.add.length&&this.trigger("changed",{action:"model",selected:this._data.core.selected}),r.call(this,!0)}}
+if(this.settings.core.worker&&window.Blob&&window.URL&&window.Worker)try{null===this._wrk&&(this._wrk=window.URL.createObjectURL(new window.Blob(["self.onmessage = "+a.toString()],{type:"text/javascript"}))),!this._data.core.working||i?(this._data.core.working=!0,o=new window.Worker(this._wrk),o.onmessage=e.proxy(function(e){u.call(this,e.data,!0)
+try{o.terminate(),o=null}catch(e){}this._data.core.worker_queue.length?this._append_json_data.apply(this,this._data.core.worker_queue.shift()):this._data.core.working=!1},this),s.par?o.postMessage(s):this._data.core.worker_queue.length?this._append_json_data.apply(this,this._data.core.worker_queue.shift()):this._data.core.working=!1):this._data.core.worker_queue.push([t,n,r,!0])}catch(e){u.call(this,a(s),!1),this._data.core.worker_queue.length?this._append_json_data.apply(this,this._data.core.worker_queue.shift()):this._data.core.working=!1}else u.call(this,a(s),!1)}},_parse_model_from_html:function(n,r,i){i=i?[].concat(i):[],r&&i.unshift(r)
+var o,s,a,u,c,l=this._model.data,h={id:!1,text:!1,icon:!0,parent:r,parents:i,children:[],children_d:[],data:null,state:{},li_attr:{id:!1},a_attr:{href:"#"},original:!1}
+for(a in this._model.default_state)this._model.default_state.hasOwnProperty(a)&&(h.state[a]=this._model.default_state[a])
+if(u=e.vakata.attributes(n,!0),e.each(u,function(t,n){return n=e.trim(n),!n.length||(h.li_attr[t]=n,void("id"===t&&(h.id=n.toString())))}),u=n.children("a").first(),u.length&&(u=e.vakata.attributes(u,!0),e.each(u,function(t,n){n=e.trim(n),n.length&&(h.a_attr[t]=n)})),u=n.children("a").first().length?n.children("a").first().clone():n.clone(),u.children("ins, i, ul").remove(),u=u.html(),u=e("<div />").html(u),h.text=this.settings.core.force_text?u.text():u.html(),u=n.data(),h.data=u?e.extend(!0,{},u):null,h.state.opened=n.hasClass("jstree-open"),h.state.selected=n.children("a").hasClass("jstree-clicked"),h.state.disabled=n.children("a").hasClass("jstree-disabled"),h.data&&h.data.jstree)for(a in h.data.jstree)h.data.jstree.hasOwnProperty(a)&&(h.state[a]=h.data.jstree[a])
+u=n.children("a").children(".jstree-themeicon"),u.length&&(h.icon=!u.hasClass("jstree-themeicon-hidden")&&u.attr("rel")),h.state.icon!==t&&(h.icon=h.state.icon),(h.icon===t||null===h.icon||""===h.icon)&&(h.icon=!0),u=n.children("ul").children("li")
+do{c="j"+this._id+"_"+ ++this._cnt}while(l[c])
+return h.id=h.li_attr.id?h.li_attr.id.toString():c,u.length?(u.each(e.proxy(function(t,n){o=this._parse_model_from_html(e(n),h.id,i),s=this._model.data[o],h.children.push(o),s.children_d.length&&(h.children_d=h.children_d.concat(s.children_d))},this)),h.children_d=h.children_d.concat(h.children)):n.hasClass("jstree-closed")&&(h.state.loaded=!1),h.li_attr.class&&(h.li_attr.class=h.li_attr.class.replace("jstree-closed","").replace("jstree-open","")),h.a_attr.class&&(h.a_attr.class=h.a_attr.class.replace("jstree-clicked","").replace("jstree-disabled","")),l[h.id]=h,h.state.selected&&this._data.core.selected.push(h.id),h.id},_parse_model_from_flat_json:function(e,n,r){r=r?r.concat():[],n&&r.unshift(n)
+var i,o,s,a,u=e.id.toString(),c=this._model.data,l=this._model.default_state,h={id:u,text:e.text||"",icon:e.icon===t||e.icon,parent:n,parents:r,children:e.children||[],children_d:e.children_d||[],data:e.data,state:{},li_attr:{id:!1},a_attr:{href:"#"},original:!1}
+for(i in l)l.hasOwnProperty(i)&&(h.state[i]=l[i])
+if(e&&e.data&&e.data.jstree&&e.data.jstree.icon&&(h.icon=e.data.jstree.icon),(h.icon===t||null===h.icon||""===h.icon)&&(h.icon=!0),e&&e.data&&(h.data=e.data,e.data.jstree))for(i in e.data.jstree)e.data.jstree.hasOwnProperty(i)&&(h.state[i]=e.data.jstree[i])
+if(e&&"object"==typeof e.state)for(i in e.state)e.state.hasOwnProperty(i)&&(h.state[i]=e.state[i])
+if(e&&"object"==typeof e.li_attr)for(i in e.li_attr)e.li_attr.hasOwnProperty(i)&&(h.li_attr[i]=e.li_attr[i])
+if(h.li_attr.id||(h.li_attr.id=u),e&&"object"==typeof e.a_attr)for(i in e.a_attr)e.a_attr.hasOwnProperty(i)&&(h.a_attr[i]=e.a_attr[i])
+for(e&&e.children&&!0===e.children&&(h.state.loaded=!1,h.children=[],h.children_d=[]),c[h.id]=h,i=0,o=h.children.length;o>i;i++)s=this._parse_model_from_flat_json(c[h.children[i]],h.id,r),a=c[s],h.children_d.push(s),a.children_d.length&&(h.children_d=h.children_d.concat(a.children_d))
+return delete e.data,delete e.children,c[h.id].original=e,h.state.selected&&this._data.core.selected.push(h.id),h.id},_parse_model_from_json:function(e,n,r){r=r?r.concat():[],n&&r.unshift(n)
+var i,o,s,a,u,c=!1,l=this._model.data,h=this._model.default_state
+do{c="j"+this._id+"_"+ ++this._cnt}while(l[c])
+u={id:!1,text:"string"==typeof e?e:"",icon:"object"!=typeof e||e.icon===t||e.icon,parent:n,parents:r,children:[],children_d:[],data:null,state:{},li_attr:{id:!1},a_attr:{href:"#"},original:!1}
+for(i in h)h.hasOwnProperty(i)&&(u.state[i]=h[i])
+if(e&&e.id&&(u.id=e.id.toString()),e&&e.text&&(u.text=e.text),e&&e.data&&e.data.jstree&&e.data.jstree.icon&&(u.icon=e.data.jstree.icon),(u.icon===t||null===u.icon||""===u.icon)&&(u.icon=!0),e&&e.data&&(u.data=e.data,e.data.jstree))for(i in e.data.jstree)e.data.jstree.hasOwnProperty(i)&&(u.state[i]=e.data.jstree[i])
+if(e&&"object"==typeof e.state)for(i in e.state)e.state.hasOwnProperty(i)&&(u.state[i]=e.state[i])
+if(e&&"object"==typeof e.li_attr)for(i in e.li_attr)e.li_attr.hasOwnProperty(i)&&(u.li_attr[i]=e.li_attr[i])
+if(u.li_attr.id&&!u.id&&(u.id=u.li_attr.id.toString()),u.id||(u.id=c),u.li_attr.id||(u.li_attr.id=u.id),e&&"object"==typeof e.a_attr)for(i in e.a_attr)e.a_attr.hasOwnProperty(i)&&(u.a_attr[i]=e.a_attr[i])
+if(e&&e.children&&e.children.length){for(i=0,o=e.children.length;o>i;i++)s=this._parse_model_from_json(e.children[i],u.id,r),a=l[s],u.children.push(s),a.children_d.length&&(u.children_d=u.children_d.concat(a.children_d))
+u.children_d=u.children_d.concat(u.children)}return e&&e.children&&!0===e.children&&(u.state.loaded=!1,u.children=[],u.children_d=[]),delete e.data,delete e.children,u.original=e,l[u.id]=u,u.state.selected&&this._data.core.selected.push(u.id),u.id},_redraw:function(){var t,n,r,i=this._model.force_full_redraw?this._model.data[e.jstree.root].children.concat([]):this._model.changed.concat([]),o=u.createElement("UL"),s=this._data.core.focused
+for(n=0,r=i.length;r>n;n++)(t=this.redraw_node(i[n],!0,this._model.force_full_redraw))&&this._model.force_full_redraw&&o.appendChild(t)
+this._model.force_full_redraw&&(o.className=this.get_container_ul()[0].className,o.setAttribute("role","group"),this.element.empty().append(o)),null!==s&&(t=this.get_node(s,!0),t&&t.length&&t.children(".jstree-anchor")[0]!==u.activeElement?t.children(".jstree-anchor").focus():this._data.core.focused=null),this._model.force_full_redraw=!1,this._model.changed=[],this.trigger("redraw",{nodes:i})},redraw:function(e){e&&(this._model.force_full_redraw=!0),this._redraw()},draw_children:function(t){var n=this.get_node(t),r=!1,i=!1,o=!1,s=u
+if(!n)return!1
+if(n.id===e.jstree.root)return this.redraw(!0)
+if(!(t=this.get_node(t,!0))||!t.length)return!1
+if(t.children(".jstree-children").remove(),t=t[0],n.children.length&&n.state.loaded){for(o=s.createElement("UL"),o.setAttribute("role","group"),o.className="jstree-children",r=0,i=n.children.length;i>r;r++)o.appendChild(this.redraw_node(n.children[r],!0,!0))
+t.appendChild(o)}},redraw_node:function(t,n,r,i){var o=this.get_node(t),s=!1,a=!1,c=!1,l=!1,h=!1,d=!1,p="",f=u,g=this._model.data,m=!1,v=null,y=0,b=0,C=!1,A=!1
+if(!o)return!1
+if(o.id===e.jstree.root)return this.redraw(!0)
+if(n=n||0===o.children.length,t=u.querySelector?this.element[0].querySelector("#"+(-1!=="0123456789".indexOf(o.id[0])?"\\3"+o.id[0]+" "+o.id.substr(1).replace(e.jstree.idregex,"\\$&"):o.id.replace(e.jstree.idregex,"\\$&"))):u.getElementById(o.id))t=e(t),r||(s=t.parent().parent()[0],s===this.element[0]&&(s=null),a=t.index()),n||!o.children.length||t.children(".jstree-children").length||(n=!0),n||(c=t.children(".jstree-children")[0]),m=t.children(".jstree-anchor")[0]===u.activeElement,t.remove()
+else if(n=!0,!r){if(!(null===(s=o.parent!==e.jstree.root?e("#"+o.parent.replace(e.jstree.idregex,"\\$&"),this.element)[0]:null)||s&&g[o.parent].state.opened))return!1
+a=e.inArray(o.id,null===s?g[e.jstree.root].children:g[o.parent].children)}t=this._data.core.node.cloneNode(!0),p="jstree-node "
+for(l in o.li_attr)if(o.li_attr.hasOwnProperty(l)){if("id"===l)continue
+"class"!==l?t.setAttribute(l,o.li_attr[l]):p+=o.li_attr[l]}for(o.a_attr.id||(o.a_attr.id=o.id+"_anchor"),t.setAttribute("aria-selected",!!o.state.selected),t.setAttribute("aria-level",o.parents.length),t.setAttribute("aria-labelledby",o.a_attr.id),o.state.disabled&&t.setAttribute("aria-disabled",!0),l=0,h=o.children.length;h>l;l++)if(!g[o.children[l]].state.hidden){C=!0
+break}if(null!==o.parent&&g[o.parent]&&!o.state.hidden&&(l=e.inArray(o.id,g[o.parent].children),A=o.id,-1!==l))for(l++,h=g[o.parent].children.length;h>l&&(g[g[o.parent].children[l]].state.hidden||(A=g[o.parent].children[l]),A===o.id);l++);o.state.hidden&&(p+=" jstree-hidden"),o.state.loading&&(p+=" jstree-loading"),o.state.loaded&&!C?p+=" jstree-leaf":(p+=o.state.opened&&o.state.loaded?" jstree-open":" jstree-closed",t.setAttribute("aria-expanded",o.state.opened&&o.state.loaded)),A===o.id&&(p+=" jstree-last"),t.id=o.id,t.className=p,p=(o.state.selected?" jstree-clicked":"")+(o.state.disabled?" jstree-disabled":"")
+for(h in o.a_attr)if(o.a_attr.hasOwnProperty(h)){if("href"===h&&"#"===o.a_attr[h])continue
+"class"!==h?t.childNodes[1].setAttribute(h,o.a_attr[h]):p+=" "+o.a_attr[h]}if(p.length&&(t.childNodes[1].className="jstree-anchor "+p),(o.icon&&!0!==o.icon||!1===o.icon)&&(!1===o.icon?t.childNodes[1].childNodes[0].className+=" jstree-themeicon-hidden":-1===o.icon.indexOf("/")&&-1===o.icon.indexOf(".")?t.childNodes[1].childNodes[0].className+=" "+o.icon+" jstree-themeicon-custom":(t.childNodes[1].childNodes[0].style.backgroundImage='url("'+o.icon+'")',t.childNodes[1].childNodes[0].style.backgroundPosition="center center",t.childNodes[1].childNodes[0].style.backgroundSize="auto",t.childNodes[1].childNodes[0].className+=" jstree-themeicon-custom")),this.settings.core.force_text?t.childNodes[1].appendChild(f.createTextNode(o.text)):t.childNodes[1].innerHTML+=o.text,n&&o.children.length&&(o.state.opened||i)&&o.state.loaded){for(d=f.createElement("UL"),d.setAttribute("role","group"),d.className="jstree-children",l=0,h=o.children.length;h>l;l++)d.appendChild(this.redraw_node(o.children[l],n,!0))
+t.appendChild(d)}if(c&&t.appendChild(c),!r){for(s||(s=this.element[0]),l=0,h=s.childNodes.length;h>l;l++)if(s.childNodes[l]&&s.childNodes[l].className&&-1!==s.childNodes[l].className.indexOf("jstree-children")){v=s.childNodes[l]
+break}v||(v=f.createElement("UL"),v.setAttribute("role","group"),v.className="jstree-children",s.appendChild(v)),s=v,a<s.childNodes.length?s.insertBefore(t,s.childNodes[a]):s.appendChild(t),m&&(y=this.element[0].scrollTop,b=this.element[0].scrollLeft,t.childNodes[1].focus(),this.element[0].scrollTop=y,this.element[0].scrollLeft=b)}return o.state.opened&&!o.state.loaded&&(o.state.opened=!1,setTimeout(e.proxy(function(){this.open_node(o.id,!1,0)},this),0)),t},open_node:function(n,r,i){var o,s,a,u
+if(e.isArray(n)){for(n=n.slice(),o=0,s=n.length;s>o;o++)this.open_node(n[o],r,i)
+return!0}return!(!(n=this.get_node(n))||n.id===e.jstree.root)&&(i=i===t?this.settings.core.animation:i,this.is_closed(n)?this.is_loaded(n)?(a=this.get_node(n,!0),u=this,a.length&&(i&&a.children(".jstree-children").length&&a.children(".jstree-children").stop(!0,!0),n.children.length&&!this._firstChild(a.children(".jstree-children")[0])&&this.draw_children(n),i?(this.trigger("before_open",{node:n}),a.children(".jstree-children").css("display","none").end().removeClass("jstree-closed").addClass("jstree-open").attr("aria-expanded",!0).children(".jstree-children").stop(!0,!0).slideDown(i,function(){this.style.display="",u.element&&u.trigger("after_open",{node:n})})):(this.trigger("before_open",{node:n}),a[0].className=a[0].className.replace("jstree-closed","jstree-open"),a[0].setAttribute("aria-expanded",!0))),n.state.opened=!0,r&&r.call(this,n,!0),a.length||this.trigger("before_open",{node:n}),this.trigger("open_node",{node:n}),i&&a.length||this.trigger("after_open",{node:n}),!0):this.is_loading(n)?setTimeout(e.proxy(function(){this.open_node(n,r,i)},this),500):void this.load_node(n,function(e,t){return t?this.open_node(e,r,i):!!r&&r.call(this,e,!1)}):(r&&r.call(this,n,!1),!1))},_open_to:function(t){if(!(t=this.get_node(t))||t.id===e.jstree.root)return!1
+var n,r,i=t.parents
+for(n=0,r=i.length;r>n;n+=1)n!==e.jstree.root&&this.open_node(i[n],!1,0)
+return e("#"+t.id.replace(e.jstree.idregex,"\\$&"),this.element)},close_node:function(n,r){var i,o,s,a
+if(e.isArray(n)){for(n=n.slice(),i=0,o=n.length;o>i;i++)this.close_node(n[i],r)
+return!0}return!(!(n=this.get_node(n))||n.id===e.jstree.root)&&(!this.is_closed(n)&&(r=r===t?this.settings.core.animation:r,s=this,a=this.get_node(n,!0),n.state.opened=!1,this.trigger("close_node",{node:n}),void(a.length?r?a.children(".jstree-children").attr("style","display:block !important").end().removeClass("jstree-open").addClass("jstree-closed").attr("aria-expanded",!1).children(".jstree-children").stop(!0,!0).slideUp(r,function(){this.style.display="",a.children(".jstree-children").remove(),s.element&&s.trigger("after_close",{node:n})}):(a[0].className=a[0].className.replace("jstree-open","jstree-closed"),a.attr("aria-expanded",!1).children(".jstree-children").remove(),this.trigger("after_close",{node:n})):this.trigger("after_close",{node:n}))))},toggle_node:function(t){var n,r
+if(e.isArray(t)){for(t=t.slice(),n=0,r=t.length;r>n;n++)this.toggle_node(t[n])
+return!0}return this.is_closed(t)?this.open_node(t):this.is_open(t)?this.close_node(t):void 0},open_all:function(t,n,r){if(t||(t=e.jstree.root),!(t=this.get_node(t)))return!1
+var i,o,s,a=t.id===e.jstree.root?this.get_container_ul():this.get_node(t,!0)
+if(!a.length){for(i=0,o=t.children_d.length;o>i;i++)this.is_closed(this._model.data[t.children_d[i]])&&(this._model.data[t.children_d[i]].state.opened=!0)
+return this.trigger("open_all",{node:t})}r=r||a,s=this,a=this.is_closed(t)?a.find(".jstree-closed").addBack():a.find(".jstree-closed"),a.each(function(){s.open_node(this,function(e,t){t&&this.is_parent(e)&&this.open_all(e,n,r)},n||0)}),0===r.find(".jstree-closed").length&&this.trigger("open_all",{node:this.get_node(r)})},close_all:function(t,n){if(t||(t=e.jstree.root),!(t=this.get_node(t)))return!1
+var r,i,o=t.id===e.jstree.root?this.get_container_ul():this.get_node(t,!0),s=this
+for(o.length&&(o=this.is_open(t)?o.find(".jstree-open").addBack():o.find(".jstree-open"),e(o.get().reverse()).each(function(){s.close_node(this,n||0)})),r=0,i=t.children_d.length;i>r;r++)this._model.data[t.children_d[r]].state.opened=!1
+this.trigger("close_all",{node:t})},is_disabled:function(e){return(e=this.get_node(e))&&e.state&&e.state.disabled},enable_node:function(t){var n,r
+if(e.isArray(t)){for(t=t.slice(),n=0,r=t.length;r>n;n++)this.enable_node(t[n])
+return!0}return!(!(t=this.get_node(t))||t.id===e.jstree.root)&&(t.state.disabled=!1,this.get_node(t,!0).children(".jstree-anchor").removeClass("jstree-disabled").attr("aria-disabled",!1),void this.trigger("enable_node",{node:t}))},disable_node:function(t){var n,r
+if(e.isArray(t)){for(t=t.slice(),n=0,r=t.length;r>n;n++)this.disable_node(t[n])
+return!0}return!(!(t=this.get_node(t))||t.id===e.jstree.root)&&(t.state.disabled=!0,this.get_node(t,!0).children(".jstree-anchor").addClass("jstree-disabled").attr("aria-disabled",!0),void this.trigger("disable_node",{node:t}))},is_hidden:function(e){return e=this.get_node(e),!0===e.state.hidden},hide_node:function(t,n){var r,i
+if(e.isArray(t)){for(t=t.slice(),r=0,i=t.length;i>r;r++)this.hide_node(t[r],!0)
+return n||this.redraw(),!0}return!(!(t=this.get_node(t))||t.id===e.jstree.root)&&void(t.state.hidden||(t.state.hidden=!0,this._node_changed(t.parent),n||this.redraw(),this.trigger("hide_node",{node:t})))},show_node:function(t,n){var r,i
+if(e.isArray(t)){for(t=t.slice(),r=0,i=t.length;i>r;r++)this.show_node(t[r],!0)
+return n||this.redraw(),!0}return!(!(t=this.get_node(t))||t.id===e.jstree.root)&&void(t.state.hidden&&(t.state.hidden=!1,this._node_changed(t.parent),n||this.redraw(),this.trigger("show_node",{node:t})))},hide_all:function(t){var n,r=this._model.data,i=[]
+for(n in r)r.hasOwnProperty(n)&&n!==e.jstree.root&&!r[n].state.hidden&&(r[n].state.hidden=!0,i.push(n))
+return this._model.force_full_redraw=!0,t||this.redraw(),this.trigger("hide_all",{nodes:i}),i},show_all:function(t){var n,r=this._model.data,i=[]
+for(n in r)r.hasOwnProperty(n)&&n!==e.jstree.root&&r[n].state.hidden&&(r[n].state.hidden=!1,i.push(n))
+return this._model.force_full_redraw=!0,t||this.redraw(),this.trigger("show_all",{nodes:i}),i},activate_node:function(e,n){if(this.is_disabled(e))return!1
+if(n&&"object"==typeof n||(n={}),this._data.core.last_clicked=this._data.core.last_clicked&&this._data.core.last_clicked.id!==t?this.get_node(this._data.core.last_clicked.id):null,this._data.core.last_clicked&&!this._data.core.last_clicked.state.selected&&(this._data.core.last_clicked=null),!this._data.core.last_clicked&&this._data.core.selected.length&&(this._data.core.last_clicked=this.get_node(this._data.core.selected[this._data.core.selected.length-1])),this.settings.core.multiple&&(n.metaKey||n.ctrlKey||n.shiftKey)&&(!n.shiftKey||this._data.core.last_clicked&&this.get_parent(e)&&this.get_parent(e)===this._data.core.last_clicked.parent))if(n.shiftKey){var r,i,o=this.get_node(e).id,s=this._data.core.last_clicked.id,a=this.get_node(this._data.core.last_clicked.parent).children,u=!1
+for(r=0,i=a.length;i>r;r+=1)a[r]===o&&(u=!u),a[r]===s&&(u=!u),this.is_disabled(a[r])||!u&&a[r]!==o&&a[r]!==s?this.deselect_node(a[r],!0,n):this.is_hidden(a[r])||this.select_node(a[r],!0,!1,n)
+this.trigger("changed",{action:"select_node",node:this.get_node(e),selected:this._data.core.selected,event:n})}else this.is_selected(e)?this.deselect_node(e,!1,n):this.select_node(e,!1,!1,n)
+else!this.settings.core.multiple&&(n.metaKey||n.ctrlKey||n.shiftKey)&&this.is_selected(e)?this.deselect_node(e,!1,n):(this.deselect_all(!0),this.select_node(e,!1,!1,n),this._data.core.last_clicked=this.get_node(e))
+this.trigger("activate_node",{node:this.get_node(e),event:n})},hover_node:function(e){if(!(e=this.get_node(e,!0))||!e.length||e.children(".jstree-hovered").length)return!1
+var t=this.element.find(".jstree-hovered"),n=this.element
+t&&t.length&&this.dehover_node(t),e.children(".jstree-anchor").addClass("jstree-hovered"),this.trigger("hover_node",{node:this.get_node(e)}),setTimeout(function(){n.attr("aria-activedescendant",e[0].id)},0)},dehover_node:function(e){return!!((e=this.get_node(e,!0))&&e.length&&e.children(".jstree-hovered").length)&&(e.children(".jstree-anchor").removeClass("jstree-hovered"),void this.trigger("dehover_node",{node:this.get_node(e)}))},select_node:function(t,n,r,i){var o,s,a
+if(e.isArray(t)){for(t=t.slice(),s=0,a=t.length;a>s;s++)this.select_node(t[s],n,r,i)
+return!0}return!(!(t=this.get_node(t))||t.id===e.jstree.root)&&(o=this.get_node(t,!0),void(t.state.selected||(t.state.selected=!0,this._data.core.selected.push(t.id),r||(o=this._open_to(t)),o&&o.length&&o.attr("aria-selected",!0).children(".jstree-anchor").addClass("jstree-clicked"),this.trigger("select_node",{node:t,selected:this._data.core.selected,event:i}),n||this.trigger("changed",{action:"select_node",node:t,selected:this._data.core.selected,event:i}))))},deselect_node:function(t,n,r){var i,o,s
+if(e.isArray(t)){for(t=t.slice(),i=0,o=t.length;o>i;i++)this.deselect_node(t[i],n,r)
+return!0}return!(!(t=this.get_node(t))||t.id===e.jstree.root)&&(s=this.get_node(t,!0),void(t.state.selected&&(t.state.selected=!1,this._data.core.selected=e.vakata.array_remove_item(this._data.core.selected,t.id),s.length&&s.attr("aria-selected",!1).children(".jstree-anchor").removeClass("jstree-clicked"),this.trigger("deselect_node",{node:t,selected:this._data.core.selected,event:r}),n||this.trigger("changed",{action:"deselect_node",node:t,selected:this._data.core.selected,event:r}))))},select_all:function(t){var n,r,i=this._data.core.selected.concat([])
+for(this._data.core.selected=this._model.data[e.jstree.root].children_d.concat(),n=0,r=this._data.core.selected.length;r>n;n++)this._model.data[this._data.core.selected[n]]&&(this._model.data[this._data.core.selected[n]].state.selected=!0)
+this.redraw(!0),this.trigger("select_all",{selected:this._data.core.selected}),t||this.trigger("changed",{action:"select_all",selected:this._data.core.selected,old_selection:i})},deselect_all:function(e){var t,n,r=this._data.core.selected.concat([])
+for(t=0,n=this._data.core.selected.length;n>t;t++)this._model.data[this._data.core.selected[t]]&&(this._model.data[this._data.core.selected[t]].state.selected=!1)
+this._data.core.selected=[],this.element.find(".jstree-clicked").removeClass("jstree-clicked").parent().attr("aria-selected",!1),this.trigger("deselect_all",{selected:this._data.core.selected,node:r}),e||this.trigger("changed",{action:"deselect_all",selected:this._data.core.selected,old_selection:r})},is_selected:function(t){return!(!(t=this.get_node(t))||t.id===e.jstree.root)&&t.state.selected},get_selected:function(t){return t?e.map(this._data.core.selected,e.proxy(function(e){return this.get_node(e)},this)):this._data.core.selected.slice()},get_top_selected:function(t){var n,r,i,o,s=this.get_selected(!0),a={}
+for(n=0,r=s.length;r>n;n++)a[s[n].id]=s[n]
+for(n=0,r=s.length;r>n;n++)for(i=0,o=s[n].children_d.length;o>i;i++)a[s[n].children_d[i]]&&delete a[s[n].children_d[i]]
+s=[]
+for(n in a)a.hasOwnProperty(n)&&s.push(n)
+return t?e.map(s,e.proxy(function(e){return this.get_node(e)},this)):s},get_bottom_selected:function(t){var n,r,i=this.get_selected(!0),o=[]
+for(n=0,r=i.length;r>n;n++)i[n].children.length||o.push(i[n].id)
+return t?e.map(o,e.proxy(function(e){return this.get_node(e)},this)):o},get_state:function(){var t,n={core:{open:[],loaded:[],scroll:{left:this.element.scrollLeft(),top:this.element.scrollTop()},selected:[]}}
+for(t in this._model.data)this._model.data.hasOwnProperty(t)&&t!==e.jstree.root&&(this._model.data[t].state.loaded&&this.settings.core.loaded_state&&n.core.loaded.push(t),this._model.data[t].state.opened&&n.core.open.push(t),this._model.data[t].state.selected&&n.core.selected.push(t))
+return n},set_state:function(n,r){if(n){if(n.core&&n.core.selected&&n.core.initial_selection===t&&(n.core.initial_selection=this._data.core.selected.concat([]).sort().join(",")),n.core){var i,o
+if(n.core.loaded)return this.settings.core.loaded_state&&e.isArray(n.core.loaded)&&n.core.loaded.length?this._load_nodes(n.core.loaded,function(e){delete n.core.loaded,this.set_state(n,r)}):(delete n.core.loaded,this.set_state(n,r)),!1
+if(n.core.open)return e.isArray(n.core.open)&&n.core.open.length?this._load_nodes(n.core.open,function(e){this.open_node(e,!1,0),delete n.core.open,this.set_state(n,r)}):(delete n.core.open,this.set_state(n,r)),!1
+if(n.core.scroll)return n.core.scroll&&n.core.scroll.left!==t&&this.element.scrollLeft(n.core.scroll.left),n.core.scroll&&n.core.scroll.top!==t&&this.element.scrollTop(n.core.scroll.top),delete n.core.scroll,this.set_state(n,r),!1
+if(n.core.selected)return i=this,(n.core.initial_selection===t||n.core.initial_selection===this._data.core.selected.concat([]).sort().join(","))&&(this.deselect_all(),e.each(n.core.selected,function(e,t){i.select_node(t,!1,!0)})),delete n.core.initial_selection,delete n.core.selected,this.set_state(n,r),!1
+for(o in n)n.hasOwnProperty(o)&&"core"!==o&&-1===e.inArray(o,this.settings.plugins)&&delete n[o]
+if(e.isEmptyObject(n.core))return delete n.core,this.set_state(n,r),!1}return!e.isEmptyObject(n)||(n=null,r&&r.call(this),this.trigger("set_state"),!1)}return!1},refresh:function(t,n){this._data.core.state=!0===n?{}:this.get_state(),n&&e.isFunction(n)&&(this._data.core.state=n.call(this,this._data.core.state)),this._cnt=0,this._model.data={},this._model.data[e.jstree.root]={id:e.jstree.root,parent:null,parents:[],children:[],children_d:[],state:{loaded:!1}},this._data.core.selected=[],this._data.core.last_clicked=null,this._data.core.focused=null
+var r=this.get_container_ul()[0].className
+t||(this.element.html("<ul class='"+r+"' role='group'><li class='jstree-initial-node jstree-loading jstree-leaf jstree-last' role='treeitem' id='j"+this._id+"_loading'><i class='jstree-icon jstree-ocl'></i><a class='jstree-anchor' href='#'><i class='jstree-icon jstree-themeicon-hidden'></i>"+this.get_string("Loading ...")+"</a></li></ul>"),this.element.attr("aria-activedescendant","j"+this._id+"_loading")),this.load_node(e.jstree.root,function(t,n){n&&(this.get_container_ul()[0].className=r,this._firstChild(this.get_container_ul()[0])&&this.element.attr("aria-activedescendant",this._firstChild(this.get_container_ul()[0]).id),this.set_state(e.extend(!0,{},this._data.core.state),function(){this.trigger("refresh")})),this._data.core.state=null})},refresh_node:function(t){if(!(t=this.get_node(t))||t.id===e.jstree.root)return!1
+var n=[],r=[],i=this._data.core.selected.concat([])
+r.push(t.id),!0===t.state.opened&&n.push(t.id),this.get_node(t,!0).find(".jstree-open").each(function(){r.push(this.id),n.push(this.id)}),this._load_nodes(r,e.proxy(function(e){this.open_node(n,!1,0),this.select_node(i),this.trigger("refresh_node",{node:t,nodes:e})},this),!1,!0)},set_id:function(t,n){if(!(t=this.get_node(t))||t.id===e.jstree.root)return!1
+var r,i,o=this._model.data,s=t.id
+for(n=n.toString(),o[t.parent].children[e.inArray(t.id,o[t.parent].children)]=n,r=0,i=t.parents.length;i>r;r++)o[t.parents[r]].children_d[e.inArray(t.id,o[t.parents[r]].children_d)]=n
+for(r=0,i=t.children.length;i>r;r++)o[t.children[r]].parent=n
+for(r=0,i=t.children_d.length;i>r;r++)o[t.children_d[r]].parents[e.inArray(t.id,o[t.children_d[r]].parents)]=n
+return r=e.inArray(t.id,this._data.core.selected),-1!==r&&(this._data.core.selected[r]=n),r=this.get_node(t.id,!0),r&&(r.attr("id",n),this.element.attr("aria-activedescendant")===t.id&&this.element.attr("aria-activedescendant",n)),delete o[t.id],t.id=n,t.li_attr.id=n,o[n]=t,this.trigger("set_id",{node:t,new:t.id,old:s}),!0},get_text:function(t){return!(!(t=this.get_node(t))||t.id===e.jstree.root)&&t.text},set_text:function(t,n){var r,i
+if(e.isArray(t)){for(t=t.slice(),r=0,i=t.length;i>r;r++)this.set_text(t[r],n)
+return!0}return!(!(t=this.get_node(t))||t.id===e.jstree.root)&&(t.text=n,this.get_node(t,!0).length&&this.redraw_node(t.id),this.trigger("set_text",{obj:t,text:n}),!0)},get_json:function(t,n,r){if(!(t=this.get_node(t||e.jstree.root)))return!1
+n&&n.flat&&!r&&(r=[])
+var i,o,s={id:t.id,text:t.text,icon:this.get_icon(t),li_attr:e.extend(!0,{},t.li_attr),a_attr:e.extend(!0,{},t.a_attr),state:{},data:(!n||!n.no_data)&&e.extend(!0,e.isArray(t.data)?[]:{},t.data)}
+if(n&&n.flat?s.parent=t.parent:s.children=[],n&&n.no_state)delete s.state
+else for(i in t.state)t.state.hasOwnProperty(i)&&(s.state[i]=t.state[i])
+if(n&&n.no_li_attr&&delete s.li_attr,n&&n.no_a_attr&&delete s.a_attr,n&&n.no_id&&(delete s.id,s.li_attr&&s.li_attr.id&&delete s.li_attr.id,s.a_attr&&s.a_attr.id&&delete s.a_attr.id),n&&n.flat&&t.id!==e.jstree.root&&r.push(s),!n||!n.no_children)for(i=0,o=t.children.length;o>i;i++)n&&n.flat?this.get_json(t.children[i],n,r):s.children.push(this.get_json(t.children[i],n))
+return n&&n.flat?r:t.id===e.jstree.root?s.children:s},create_node:function(n,r,i,o,s){if(null===n&&(n=e.jstree.root),!(n=this.get_node(n)))return!1
+if(i=i===t?"last":i,!i.toString().match(/^(before|after)$/)&&!s&&!this.is_loaded(n))return this.load_node(n,function(){this.create_node(n,r,i,o,!0)})
+r||(r={text:this.get_string("New node")}),r="string"==typeof r?{text:r}:e.extend(!0,{},r),r.text===t&&(r.text=this.get_string("New node"))
+var a,u,c,l
+switch(n.id===e.jstree.root&&("before"===i&&(i="first"),"after"===i&&(i="last")),i){case"before":a=this.get_node(n.parent),i=e.inArray(n.id,a.children),n=a
+break
+case"after":a=this.get_node(n.parent),i=e.inArray(n.id,a.children)+1,n=a
+break
+case"inside":case"first":i=0
+break
+case"last":i=n.children.length
+break
+default:i||(i=0)}if(i>n.children.length&&(i=n.children.length),r.id||(r.id=!0),!this.check("create_node",r,n,i))return this.settings.core.error.call(this,this._data.core.last_error),!1
+if(!0===r.id&&delete r.id,!(r=this._parse_model_from_json(r,n.id,n.parents.concat())))return!1
+for(a=this.get_node(r),u=[],u.push(r),u=u.concat(a.children_d),this.trigger("model",{nodes:u,parent:n.id}),n.children_d=n.children_d.concat(u),c=0,l=n.parents.length;l>c;c++)this._model.data[n.parents[c]].children_d=this._model.data[n.parents[c]].children_d.concat(u)
+for(r=a,a=[],c=0,l=n.children.length;l>c;c++)a[c>=i?c+1:c]=n.children[c]
+return a[i]=r.id,n.children=a,this.redraw_node(n,!0),this.trigger("create_node",{node:this.get_node(r),parent:n.id,position:i}),o&&o.call(this,this.get_node(r)),r.id},rename_node:function(t,n){var r,i,o
+if(e.isArray(t)){for(t=t.slice(),r=0,i=t.length;i>r;r++)this.rename_node(t[r],n)
+return!0}return!(!(t=this.get_node(t))||t.id===e.jstree.root)&&(o=t.text,this.check("rename_node",t,this.get_parent(t),n)?(this.set_text(t,n),this.trigger("rename_node",{node:t,text:n,old:o}),!0):(this.settings.core.error.call(this,this._data.core.last_error),!1))},delete_node:function(t){var n,r,i,o,s,a,u,c,l,h,d,p
+if(e.isArray(t)){for(t=t.slice(),n=0,r=t.length;r>n;n++)this.delete_node(t[n])
+return!0}if(!(t=this.get_node(t))||t.id===e.jstree.root)return!1
+if(i=this.get_node(t.parent),o=e.inArray(t.id,i.children),h=!1,!this.check("delete_node",t,i,o))return this.settings.core.error.call(this,this._data.core.last_error),!1
+for(-1!==o&&(i.children=e.vakata.array_remove(i.children,o)),s=t.children_d.concat([]),s.push(t.id),a=0,u=t.parents.length;u>a;a++)this._model.data[t.parents[a]].children_d=e.vakata.array_filter(this._model.data[t.parents[a]].children_d,function(t){return-1===e.inArray(t,s)})
+for(c=0,l=s.length;l>c;c++)if(this._model.data[s[c]].state.selected){h=!0
+break}for(h&&(this._data.core.selected=e.vakata.array_filter(this._data.core.selected,function(t){return-1===e.inArray(t,s)})),this.trigger("delete_node",{node:t,parent:i.id}),h&&this.trigger("changed",{action:"delete_node",node:t,selected:this._data.core.selected,parent:i.id}),c=0,l=s.length;l>c;c++)delete this._model.data[s[c]]
+return-1!==e.inArray(this._data.core.focused,s)&&(this._data.core.focused=null,d=this.element[0].scrollTop,p=this.element[0].scrollLeft,i.id===e.jstree.root?this._model.data[e.jstree.root].children[0]&&this.get_node(this._model.data[e.jstree.root].children[0],!0).children(".jstree-anchor").focus():this.get_node(i,!0).children(".jstree-anchor").focus(),this.element[0].scrollTop=d,this.element[0].scrollLeft=p),this.redraw_node(i,!0),!0},check:function(t,n,r,i,o){n=n&&n.id?n:this.get_node(n),r=r&&r.id?r:this.get_node(r)
+var s=t.match(/^move_node|copy_node|create_node$/i)?r:n,a=this.settings.core.check_callback
+return"move_node"!==t&&"copy_node"!==t||o&&o.is_multi||n.id!==r.id&&("move_node"!==t||e.inArray(n.id,r.children)!==i)&&-1===e.inArray(r.id,n.children_d)?(s&&s.data&&(s=s.data),s&&s.functions&&(!1===s.functions[t]||!0===s.functions[t])?(!1===s.functions[t]&&(this._data.core.last_error={error:"check",plugin:"core",id:"core_02",reason:"Node data prevents function: "+t,data:JSON.stringify({chk:t,pos:i,obj:!(!n||!n.id)&&n.id,par:!(!r||!r.id)&&r.id})}),s.functions[t]):!(!1===a||e.isFunction(a)&&!1===a.call(this,t,n,r,i,o)||a&&!1===a[t])||(this._data.core.last_error={error:"check",plugin:"core",id:"core_03",reason:"User config for core.check_callback prevents function: "+t,data:JSON.stringify({chk:t,pos:i,obj:!(!n||!n.id)&&n.id,par:!(!r||!r.id)&&r.id})},!1)):(this._data.core.last_error={error:"check",plugin:"core",id:"core_01",reason:"Moving parent inside child",data:JSON.stringify({chk:t,pos:i,obj:!(!n||!n.id)&&n.id,par:!(!r||!r.id)&&r.id})},!1)},last_error:function(){return this._data.core.last_error},move_node:function(n,r,i,o,s,a,u){var c,l,h,d,p,f,g,m,v,y,b,C,A,_
+if(r=this.get_node(r),i=i===t?0:i,!r)return!1
+if(!i.toString().match(/^(before|after)$/)&&!s&&!this.is_loaded(r))return this.load_node(r,function(){this.move_node(n,r,i,o,!0,!1,u)})
+if(e.isArray(n)){if(1!==n.length){for(c=0,l=n.length;l>c;c++)(v=this.move_node(n[c],r,i,o,s,!1,u))&&(r=v,i="after")
+return this.redraw(),!0}n=n[0]}if(!(n=n&&n.id?n:this.get_node(n))||n.id===e.jstree.root)return!1
+if(h=(n.parent||e.jstree.root).toString(),p=i.toString().match(/^(before|after)$/)&&r.id!==e.jstree.root?this.get_node(r.parent):r,f=u||(this._model.data[n.id]?this:e.jstree.reference(n.id)),g=!f||!f._id||this._id!==f._id,d=f&&f._id&&h&&f._model.data[h]&&f._model.data[h].children?e.inArray(n.id,f._model.data[h].children):-1,f&&f._id&&(n=f._model.data[n.id]),g)return!!(v=this.copy_node(n,r,i,o,s,!1,u))&&(f&&f.delete_node(n),v)
+switch(r.id===e.jstree.root&&("before"===i&&(i="first"),"after"===i&&(i="last")),i){case"before":i=e.inArray(r.id,p.children)
+break
+case"after":i=e.inArray(r.id,p.children)+1
+break
+case"inside":case"first":i=0
+break
+case"last":i=p.children.length
+break
+default:i||(i=0)}if(i>p.children.length&&(i=p.children.length),!this.check("move_node",n,p,i,{core:!0,origin:u,is_multi:f&&f._id&&f._id!==this._id,is_foreign:!f||!f._id}))return this.settings.core.error.call(this,this._data.core.last_error),!1
+if(n.parent===p.id){for(m=p.children.concat(),v=e.inArray(n.id,m),-1!==v&&(m=e.vakata.array_remove(m,v),i>v&&i--),v=[],y=0,b=m.length;b>y;y++)v[y>=i?y+1:y]=m[y]
+v[i]=n.id,p.children=v,this._node_changed(p.id),this.redraw(p.id===e.jstree.root)}else{for(v=n.children_d.concat(),v.push(n.id),y=0,b=n.parents.length;b>y;y++){for(m=[],_=f._model.data[n.parents[y]].children_d,C=0,A=_.length;A>C;C++)-1===e.inArray(_[C],v)&&m.push(_[C])
+f._model.data[n.parents[y]].children_d=m}for(f._model.data[h].children=e.vakata.array_remove_item(f._model.data[h].children,n.id),y=0,b=p.parents.length;b>y;y++)this._model.data[p.parents[y]].children_d=this._model.data[p.parents[y]].children_d.concat(v)
+for(m=[],y=0,b=p.children.length;b>y;y++)m[y>=i?y+1:y]=p.children[y]
+for(m[i]=n.id,p.children=m,p.children_d.push(n.id),p.children_d=p.children_d.concat(n.children_d),n.parent=p.id,v=p.parents.concat(),v.unshift(p.id),_=n.parents.length,n.parents=v,v=v.concat(),y=0,b=n.children_d.length;b>y;y++)this._model.data[n.children_d[y]].parents=this._model.data[n.children_d[y]].parents.slice(0,-1*_),Array.prototype.push.apply(this._model.data[n.children_d[y]].parents,v);(h===e.jstree.root||p.id===e.jstree.root)&&(this._model.force_full_redraw=!0),this._model.force_full_redraw||(this._node_changed(h),this._node_changed(p.id)),a||this.redraw()}return o&&o.call(this,n,p,i),this.trigger("move_node",{node:n,parent:p.id,position:i,old_parent:h,old_position:d,is_multi:f&&f._id&&f._id!==this._id,is_foreign:!f||!f._id,old_instance:f,new_instance:this}),n.id},copy_node:function(n,r,i,o,s,a,u){var c,l,h,d,p,f,g,m,v,y
+if(r=this.get_node(r),i=i===t?0:i,!r)return!1
+if(!i.toString().match(/^(before|after)$/)&&!s&&!this.is_loaded(r))return this.load_node(r,function(){this.copy_node(n,r,i,o,!0,!1,u)})
+if(e.isArray(n)){if(1!==n.length){for(c=0,l=n.length;l>c;c++)(d=this.copy_node(n[c],r,i,o,s,!0,u))&&(r=d,i="after")
+return this.redraw(),!0}n=n[0]}if(!(n=n&&n.id?n:this.get_node(n))||n.id===e.jstree.root)return!1
+switch(m=(n.parent||e.jstree.root).toString(),v=i.toString().match(/^(before|after)$/)&&r.id!==e.jstree.root?this.get_node(r.parent):r,y=u||(this._model.data[n.id]?this:e.jstree.reference(n.id)),!y||!y._id||this._id!==y._id,y&&y._id&&(n=y._model.data[n.id]),r.id===e.jstree.root&&("before"===i&&(i="first"),"after"===i&&(i="last")),i){case"before":i=e.inArray(r.id,v.children)
+break
+case"after":i=e.inArray(r.id,v.children)+1
+break
+case"inside":case"first":i=0
+break
+case"last":i=v.children.length
+break
+default:i||(i=0)}if(i>v.children.length&&(i=v.children.length),!this.check("copy_node",n,v,i,{core:!0,origin:u,is_multi:y&&y._id&&y._id!==this._id,is_foreign:!y||!y._id}))return this.settings.core.error.call(this,this._data.core.last_error),!1
+if(!(g=y?y.get_json(n,{no_id:!0,no_data:!0,no_state:!0}):n))return!1
+if(!0===g.id&&delete g.id,!(g=this._parse_model_from_json(g,v.id,v.parents.concat())))return!1
+for(d=this.get_node(g),n&&n.state&&!1===n.state.loaded&&(d.state.loaded=!1),h=[],h.push(g),h=h.concat(d.children_d),this.trigger("model",{nodes:h,parent:v.id}),p=0,f=v.parents.length;f>p;p++)this._model.data[v.parents[p]].children_d=this._model.data[v.parents[p]].children_d.concat(h)
+for(h=[],p=0,f=v.children.length;f>p;p++)h[p>=i?p+1:p]=v.children[p]
+return h[i]=d.id,v.children=h,v.children_d.push(d.id),v.children_d=v.children_d.concat(d.children_d),v.id===e.jstree.root&&(this._model.force_full_redraw=!0),this._model.force_full_redraw||this._node_changed(v.id),a||this.redraw(v.id===e.jstree.root),o&&o.call(this,d,v,i),this.trigger("copy_node",{node:d,original:n,parent:v.id,position:i,old_parent:m,old_position:y&&y._id&&m&&y._model.data[m]&&y._model.data[m].children?e.inArray(n.id,y._model.data[m].children):-1,is_multi:y&&y._id&&y._id!==this._id,is_foreign:!y||!y._id,old_instance:y,new_instance:this}),d.id},cut:function(t){if(t||(t=this._data.core.selected.concat()),e.isArray(t)||(t=[t]),!t.length)return!1
+var n,s,a,u=[]
+for(s=0,a=t.length;a>s;s++)(n=this.get_node(t[s]))&&n.id&&n.id!==e.jstree.root&&u.push(n)
+return!!u.length&&(r=u,o=this,i="move_node",void this.trigger("cut",{node:t}))},copy:function(t){if(t||(t=this._data.core.selected.concat()),e.isArray(t)||(t=[t]),!t.length)return!1
+var n,s,a,u=[]
+for(s=0,a=t.length;a>s;s++)(n=this.get_node(t[s]))&&n.id&&n.id!==e.jstree.root&&u.push(n)
+return!!u.length&&(r=u,o=this,i="copy_node",void this.trigger("copy",{node:t}))},get_buffer:function(){return{mode:i,node:r,inst:o}},can_paste:function(){return!1!==i&&!1!==r},paste:function(e,t){return!!((e=this.get_node(e))&&i&&i.match(/^(copy_node|move_node)$/)&&r)&&(this[i](r,e,t,!1,!1,!1,o)&&this.trigger("paste",{parent:e.id,node:r,mode:i}),r=!1,i=!1,void(o=!1))},clear_buffer:function(){r=!1,i=!1,o=!1,this.trigger("clear_buffer")},edit:function(t,n,r){var i,o,s,a,c,l,h,d,p,f=!1
+return!!(t=this.get_node(t))&&(this.check("edit",t,this.get_parent(t))?(p=t,n="string"==typeof n?n:t.text,this.set_text(t,""),t=this._open_to(t),p.text=n,i=this._data.core.rtl,o=this.element.width(),this._data.core.focused=p.id,s=t.children(".jstree-anchor").focus(),a=e("<span>"),c=n,l=e("<div />",{css:{position:"absolute",top:"-200px",left:i?"0px":"-1000px",visibility:"hidden"}}).appendTo("body"),h=e("<input />",{value:c,class:"jstree-rename-input",css:{padding:"0",border:"1px solid silver","box-sizing":"border-box",display:"inline-block",height:this._data.core.li_height+"px",lineHeight:this._data.core.li_height+"px",width:"150px"},blur:e.proxy(function(n){n.stopImmediatePropagation(),n.preventDefault()
+var i,o=a.children(".jstree-rename-input"),u=o.val(),d=this.settings.core.force_text
+""===u&&(u=c),l.remove(),a.replaceWith(s),a.remove(),c=d?c:e("<div></div>").append(e.parseHTML(c)).html(),this.set_text(t,c),i=!!this.rename_node(t,d?e("<div></div>").text(u).text():e("<div></div>").append(e.parseHTML(u)).html()),i||this.set_text(t,c),this._data.core.focused=p.id,setTimeout(e.proxy(function(){var e=this.get_node(p.id,!0)
+e.length&&(this._data.core.focused=p.id,e.children(".jstree-anchor").focus())},this),0),r&&r.call(this,p,i,f),h=null},this),keydown:function(e){var t=e.which
+27===t&&(f=!0,this.value=c),(27===t||13===t||37===t||38===t||39===t||40===t||32===t)&&e.stopImmediatePropagation(),(27===t||13===t)&&(e.preventDefault(),this.blur())},click:function(e){e.stopImmediatePropagation()},mousedown:function(e){e.stopImmediatePropagation()},keyup:function(e){h.width(Math.min(l.text("pW"+this.value).width(),o))},keypress:function(e){return 13!==e.which&&void 0}}),d={fontFamily:s.css("fontFamily")||"",fontSize:s.css("fontSize")||"",fontWeight:s.css("fontWeight")||"",fontStyle:s.css("fontStyle")||"",fontStretch:s.css("fontStretch")||"",fontVariant:s.css("fontVariant")||"",letterSpacing:s.css("letterSpacing")||"",wordSpacing:s.css("wordSpacing")||""},a.attr("class",s.attr("class")).append(s.contents().clone()).append(h),s.replaceWith(a),l.css(d),h.css(d).width(Math.min(l.text("pW"+h[0].value).width(),o))[0].select(),void e(u).one("mousedown.jstree touchstart.jstree dnd_start.vakata",function(t){h&&t.target!==h&&e(h).blur()})):(this.settings.core.error.call(this,this._data.core.last_error),!1))},set_theme:function(t,n){if(!t)return!1
+if(!0===n){var r=this.settings.core.themes.dir
+r||(r=e.jstree.path+"/themes"),n=r+"/"+t+"/style.css"}n&&-1===e.inArray(n,s)&&(e("head").append('<link rel="stylesheet" href="'+n+'" type="text/css" />'),s.push(n)),this._data.core.themes.name&&this.element.removeClass("jstree-"+this._data.core.themes.name),this._data.core.themes.name=t,this.element.addClass("jstree-"+t),this.element[this.settings.core.themes.responsive?"addClass":"removeClass"]("jstree-"+t+"-responsive"),this.trigger("set_theme",{theme:t})},get_theme:function(){return this._data.core.themes.name},set_theme_variant:function(e){this._data.core.themes.variant&&this.element.removeClass("jstree-"+this._data.core.themes.name+"-"+this._data.core.themes.variant),this._data.core.themes.variant=e,e&&this.element.addClass("jstree-"+this._data.core.themes.name+"-"+this._data.core.themes.variant)},get_theme_variant:function(){return this._data.core.themes.variant},show_stripes:function(){this._data.core.themes.stripes=!0,this.get_container_ul().addClass("jstree-striped"),this.trigger("show_stripes")},hide_stripes:function(){this._data.core.themes.stripes=!1,this.get_container_ul().removeClass("jstree-striped"),this.trigger("hide_stripes")},toggle_stripes:function(){this._data.core.themes.stripes?this.hide_stripes():this.show_stripes()},show_dots:function(){this._data.core.themes.dots=!0,this.get_container_ul().removeClass("jstree-no-dots"),this.trigger("show_dots")},hide_dots:function(){this._data.core.themes.dots=!1,this.get_container_ul().addClass("jstree-no-dots"),this.trigger("hide_dots")},toggle_dots:function(){this._data.core.themes.dots?this.hide_dots():this.show_dots()},show_icons:function(){this._data.core.themes.icons=!0,this.get_container_ul().removeClass("jstree-no-icons"),this.trigger("show_icons")},hide_icons:function(){this._data.core.themes.icons=!1,this.get_container_ul().addClass("jstree-no-icons"),this.trigger("hide_icons")},toggle_icons:function(){this._data.core.themes.icons?this.hide_icons():this.show_icons()},show_ellipsis:function(){this._data.core.themes.ellipsis=!0,this.get_container_ul().addClass("jstree-ellipsis"),this.trigger("show_ellipsis")},hide_ellipsis:function(){this._data.core.themes.ellipsis=!1,this.get_container_ul().removeClass("jstree-ellipsis"),this.trigger("hide_ellipsis")},toggle_ellipsis:function(){this._data.core.themes.ellipsis?this.hide_ellipsis():this.show_ellipsis()},set_icon:function(n,r){var i,o,s,a
+if(e.isArray(n)){for(n=n.slice(),i=0,o=n.length;o>i;i++)this.set_icon(n[i],r)
+return!0}return!(!(n=this.get_node(n))||n.id===e.jstree.root)&&(a=n.icon,n.icon=!0===r||null===r||r===t||""===r||r,s=this.get_node(n,!0).children(".jstree-anchor").children(".jstree-themeicon"),!1===r?(s.removeClass("jstree-themeicon-custom "+a).css("background","").removeAttr("rel"),this.hide_icon(n)):!0===r||null===r||r===t||""===r?(s.removeClass("jstree-themeicon-custom "+a).css("background","").removeAttr("rel"),!1===a&&this.show_icon(n)):-1===r.indexOf("/")&&-1===r.indexOf(".")?(s.removeClass(a).css("background",""),s.addClass(r+" jstree-themeicon-custom").attr("rel",r),!1===a&&this.show_icon(n)):(s.removeClass(a).css("background",""),s.addClass("jstree-themeicon-custom").css("background","url('"+r+"') center center no-repeat").attr("rel",r),!1===a&&this.show_icon(n)),!0)},get_icon:function(t){return!(!(t=this.get_node(t))||t.id===e.jstree.root)&&t.icon},hide_icon:function(t){var n,r
+if(e.isArray(t)){for(t=t.slice(),n=0,r=t.length;r>n;n++)this.hide_icon(t[n])
+return!0}return!(!(t=this.get_node(t))||t===e.jstree.root)&&(t.icon=!1,this.get_node(t,!0).children(".jstree-anchor").children(".jstree-themeicon").addClass("jstree-themeicon-hidden"),!0)},show_icon:function(t){var n,r,i
+if(e.isArray(t)){for(t=t.slice(),n=0,r=t.length;r>n;n++)this.show_icon(t[n])
+return!0}return!(!(t=this.get_node(t))||t===e.jstree.root)&&(i=this.get_node(t,!0),t.icon=!i.length||i.children(".jstree-anchor").children(".jstree-themeicon").attr("rel"),t.icon||(t.icon=!0),i.children(".jstree-anchor").children(".jstree-themeicon").removeClass("jstree-themeicon-hidden"),!0)}},e.vakata={},e.vakata.attributes=function(t,n){t=e(t)[0]
+var r=n?{}:[]
+return t&&t.attributes&&e.each(t.attributes,function(t,i){-1===e.inArray(i.name.toLowerCase(),["style","contenteditable","hasfocus","tabindex"])&&null!==i.value&&""!==e.trim(i.value)&&(n?r[i.name]=i.value:r.push(i.name))}),r},e.vakata.array_unique=function(e){var n,r,i=[],o={}
+for(n=0,r=e.length;r>n;n++)o[e[n]]===t&&(i.push(e[n]),o[e[n]]=!0)
+return i},e.vakata.array_remove=function(e,t){return e.splice(t,1),e},e.vakata.array_remove_item=function(t,n){var r=e.inArray(n,t)
+return-1!==r?e.vakata.array_remove(t,r):t},e.vakata.array_filter=function(e,t,n,r,i){if(e.filter)return e.filter(t,n)
+r=[]
+for(i in e)~~i+""==i+""&&i>=0&&t.call(n,e[i],+i,e)&&r.push(e[i])
+return r},e.jstree.plugins.changed=function(e,t){var n=[]
+this.trigger=function(e,r){var i,o
+if(r||(r={}),"changed"===e.replace(".jstree","")){r.changed={selected:[],deselected:[]}
+var s={}
+for(i=0,o=n.length;o>i;i++)s[n[i]]=1
+for(i=0,o=r.selected.length;o>i;i++)s[r.selected[i]]?s[r.selected[i]]=2:r.changed.selected.push(r.selected[i])
+for(i=0,o=n.length;o>i;i++)1===s[n[i]]&&r.changed.deselected.push(n[i])
+n=r.selected.slice()}t.trigger.call(this,e,r)},this.refresh=function(e,r){return n=[],t.refresh.apply(this,arguments)}}
+var c=u.createElement("I")
+c.className="jstree-icon jstree-checkbox",c.setAttribute("role","presentation"),e.jstree.defaults.checkbox={visible:!0,three_state:!0,whole_node:!0,keep_selected_style:!0,cascade:"",tie_selection:!0,cascade_to_disabled:!0,cascade_to_hidden:!0},e.jstree.plugins.checkbox=function(n,r){this.bind=function(){r.bind.call(this),this._data.checkbox.uto=!1,this._data.checkbox.selected=[],this.settings.checkbox.three_state&&(this.settings.checkbox.cascade="up+down+undetermined"),this.element.on("init.jstree",e.proxy(function(){this._data.checkbox.visible=this.settings.checkbox.visible,this.settings.checkbox.keep_selected_style||this.element.addClass("jstree-checkbox-no-clicked"),this.settings.checkbox.tie_selection&&this.element.addClass("jstree-checkbox-selection")},this)).on("loading.jstree",e.proxy(function(){this[this._data.checkbox.visible?"show_checkboxes":"hide_checkboxes"]()},this)),-1!==this.settings.checkbox.cascade.indexOf("undetermined")&&this.element.on("changed.jstree uncheck_node.jstree check_node.jstree uncheck_all.jstree check_all.jstree move_node.jstree copy_node.jstree redraw.jstree open_node.jstree",e.proxy(function(){this._data.checkbox.uto&&clearTimeout(this._data.checkbox.uto),this._data.checkbox.uto=setTimeout(e.proxy(this._undetermined,this),50)},this)),this.settings.checkbox.tie_selection||this.element.on("model.jstree",e.proxy(function(e,t){var n,r,i=this._model.data,o=(i[t.parent],t.nodes)
+for(n=0,r=o.length;r>n;n++)i[o[n]].state.checked=i[o[n]].state.checked||i[o[n]].original&&i[o[n]].original.state&&i[o[n]].original.state.checked,i[o[n]].state.checked&&this._data.checkbox.selected.push(o[n])},this)),(-1!==this.settings.checkbox.cascade.indexOf("up")||-1!==this.settings.checkbox.cascade.indexOf("down"))&&this.element.on("model.jstree",e.proxy(function(t,n){var r,i,o,s,a,u,c=this._model.data,l=c[n.parent],h=n.nodes,d=[],p=this.settings.checkbox.cascade,f=this.settings.checkbox.tie_selection
+if(-1!==p.indexOf("down"))if(l.state[f?"selected":"checked"]){for(i=0,o=h.length;o>i;i++)c[h[i]].state[f?"selected":"checked"]=!0
+this._data[f?"core":"checkbox"].selected=this._data[f?"core":"checkbox"].selected.concat(h)}else for(i=0,o=h.length;o>i;i++)if(c[h[i]].state[f?"selected":"checked"]){for(s=0,a=c[h[i]].children_d.length;a>s;s++)c[c[h[i]].children_d[s]].state[f?"selected":"checked"]=!0
+this._data[f?"core":"checkbox"].selected=this._data[f?"core":"checkbox"].selected.concat(c[h[i]].children_d)}if(-1!==p.indexOf("up")){for(i=0,o=l.children_d.length;o>i;i++)c[l.children_d[i]].children.length||d.push(c[l.children_d[i]].parent)
+for(d=e.vakata.array_unique(d),s=0,a=d.length;a>s;s++)for(l=c[d[s]];l&&l.id!==e.jstree.root;){for(r=0,i=0,o=l.children.length;o>i;i++)r+=c[l.children[i]].state[f?"selected":"checked"]
+if(r!==o)break
+l.state[f?"selected":"checked"]=!0,this._data[f?"core":"checkbox"].selected.push(l.id),u=this.get_node(l,!0),u&&u.length&&u.attr("aria-selected",!0).children(".jstree-anchor").addClass(f?"jstree-clicked":"jstree-checked"),l=this.get_node(l.parent)}}this._data[f?"core":"checkbox"].selected=e.vakata.array_unique(this._data[f?"core":"checkbox"].selected)},this)).on(this.settings.checkbox.tie_selection?"select_node.jstree":"check_node.jstree",e.proxy(function(t,n){var r,i,o,s,a=n.node,u=this._model.data,c=this.get_node(a.parent),l=this.settings.checkbox.cascade,h=this.settings.checkbox.tie_selection,d={},p=this._data[h?"core":"checkbox"].selected
+for(r=0,i=p.length;i>r;r++)d[p[r]]=!0
+if(-1!==l.indexOf("down")){var f=this._cascade_new_checked_state(a.id,!0),g=a.children_d.concat(a.id)
+for(r=0,i=g.length;i>r;r++)f.indexOf(g[r])>-1?d[g[r]]=!0:delete d[g[r]]}if(-1!==l.indexOf("up"))for(;c&&c.id!==e.jstree.root;){for(o=0,r=0,i=c.children.length;i>r;r++)o+=u[c.children[r]].state[h?"selected":"checked"]
+if(o!==i)break
+c.state[h?"selected":"checked"]=!0,d[c.id]=!0,s=this.get_node(c,!0),s&&s.length&&s.attr("aria-selected",!0).children(".jstree-anchor").addClass(h?"jstree-clicked":"jstree-checked"),c=this.get_node(c.parent)}p=[]
+for(r in d)d.hasOwnProperty(r)&&p.push(r)
+this._data[h?"core":"checkbox"].selected=p},this)).on(this.settings.checkbox.tie_selection?"deselect_all.jstree":"uncheck_all.jstree",e.proxy(function(t,n){var r,i,o,s=this.get_node(e.jstree.root),a=this._model.data
+for(r=0,i=s.children_d.length;i>r;r++)(o=a[s.children_d[r]])&&o.original&&o.original.state&&o.original.state.undetermined&&(o.original.state.undetermined=!1)},this)).on(this.settings.checkbox.tie_selection?"deselect_node.jstree":"uncheck_node.jstree",e.proxy(function(e,t){var n,r,i,o=t.node,s=(this.get_node(o,!0),this.settings.checkbox.cascade),a=this.settings.checkbox.tie_selection,u=this._data[a?"core":"checkbox"].selected,c=o.children_d.concat(o.id)
+if(-1!==s.indexOf("down")){var l=this._cascade_new_checked_state(o.id,!1)
+u=u.filter(function(e){return-1===c.indexOf(e)||l.indexOf(e)>-1})}if(-1!==s.indexOf("up")&&-1===u.indexOf(o.id)){for(n=0,r=o.parents.length;r>n;n++)i=this._model.data[o.parents[n]],i.state[a?"selected":"checked"]=!1,i&&i.original&&i.original.state&&i.original.state.undetermined&&(i.original.state.undetermined=!1),(i=this.get_node(o.parents[n],!0))&&i.length&&i.attr("aria-selected",!1).children(".jstree-anchor").removeClass(a?"jstree-clicked":"jstree-checked")
+u=u.filter(function(e){return-1===o.parents.indexOf(e)})}this._data[a?"core":"checkbox"].selected=u},this)),-1!==this.settings.checkbox.cascade.indexOf("up")&&this.element.on("delete_node.jstree",e.proxy(function(t,n){for(var r,i,o,s,a=this.get_node(n.parent),u=this._model.data,c=this.settings.checkbox.tie_selection;a&&a.id!==e.jstree.root&&!a.state[c?"selected":"checked"];){for(o=0,r=0,i=a.children.length;i>r;r++)o+=u[a.children[r]].state[c?"selected":"checked"]
+if(!(i>0&&o===i))break
+a.state[c?"selected":"checked"]=!0,this._data[c?"core":"checkbox"].selected.push(a.id),s=this.get_node(a,!0),s&&s.length&&s.attr("aria-selected",!0).children(".jstree-anchor").addClass(c?"jstree-clicked":"jstree-checked"),a=this.get_node(a.parent)}},this)).on("move_node.jstree",e.proxy(function(t,n){var r,i,o,s,a,u=n.is_multi,c=n.old_parent,l=this.get_node(n.parent),h=this._model.data,d=this.settings.checkbox.tie_selection
+if(!u)for(r=this.get_node(c);r&&r.id!==e.jstree.root&&!r.state[d?"selected":"checked"];){for(i=0,o=0,s=r.children.length;s>o;o++)i+=h[r.children[o]].state[d?"selected":"checked"]
+if(!(s>0&&i===s))break
+r.state[d?"selected":"checked"]=!0,this._data[d?"core":"checkbox"].selected.push(r.id),a=this.get_node(r,!0),a&&a.length&&a.attr("aria-selected",!0).children(".jstree-anchor").addClass(d?"jstree-clicked":"jstree-checked"),r=this.get_node(r.parent)}for(r=l;r&&r.id!==e.jstree.root;){for(i=0,o=0,s=r.children.length;s>o;o++)i+=h[r.children[o]].state[d?"selected":"checked"]
+if(i===s)r.state[d?"selected":"checked"]||(r.state[d?"selected":"checked"]=!0,this._data[d?"core":"checkbox"].selected.push(r.id),(a=this.get_node(r,!0))&&a.length&&a.attr("aria-selected",!0).children(".jstree-anchor").addClass(d?"jstree-clicked":"jstree-checked"))
+else{if(!r.state[d?"selected":"checked"])break
+r.state[d?"selected":"checked"]=!1,this._data[d?"core":"checkbox"].selected=e.vakata.array_remove_item(this._data[d?"core":"checkbox"].selected,r.id),(a=this.get_node(r,!0))&&a.length&&a.attr("aria-selected",!1).children(".jstree-anchor").removeClass(d?"jstree-clicked":"jstree-checked")}r=this.get_node(r.parent)}},this))},this.get_undetermined=function(n){if(-1===this.settings.checkbox.cascade.indexOf("undetermined"))return[]
+var r,i,o,s,a={},u=this._model.data,c=this.settings.checkbox.tie_selection,l=this._data[c?"core":"checkbox"].selected,h=[],d=this,p=[]
+for(r=0,i=l.length;i>r;r++)if(u[l[r]]&&u[l[r]].parents)for(o=0,s=u[l[r]].parents.length;s>o&&a[u[l[r]].parents[o]]===t;o++)u[l[r]].parents[o]!==e.jstree.root&&(a[u[l[r]].parents[o]]=!0,h.push(u[l[r]].parents[o]))
+for(this.element.find(".jstree-closed").not(":has(.jstree-children)").each(function(){var n,c=d.get_node(this)
+if(c)if(c.state.loaded){for(r=0,i=c.children_d.length;i>r;r++)if(n=u[c.children_d[r]],!n.state.loaded&&n.original&&n.original.state&&n.original.state.undetermined&&!0===n.original.state.undetermined)for(a[n.id]===t&&n.id!==e.jstree.root&&(a[n.id]=!0,h.push(n.id)),o=0,s=n.parents.length;s>o;o++)a[n.parents[o]]===t&&n.parents[o]!==e.jstree.root&&(a[n.parents[o]]=!0,h.push(n.parents[o]))}else if(c.original&&c.original.state&&c.original.state.undetermined&&!0===c.original.state.undetermined)for(a[c.id]===t&&c.id!==e.jstree.root&&(a[c.id]=!0,h.push(c.id)),o=0,s=c.parents.length;s>o;o++)a[c.parents[o]]===t&&c.parents[o]!==e.jstree.root&&(a[c.parents[o]]=!0,h.push(c.parents[o]))}),r=0,i=h.length;i>r;r++)u[h[r]].state[c?"selected":"checked"]||p.push(n?u[h[r]]:h[r])
+return p},this._undetermined=function(){if(null!==this.element){var e,t,n,r=this.get_undetermined(!1)
+for(this.element.find(".jstree-undetermined").removeClass("jstree-undetermined"),e=0,t=r.length;t>e;e++)(n=this.get_node(r[e],!0))&&n.length&&n.children(".jstree-anchor").children(".jstree-checkbox").addClass("jstree-undetermined")}},this.redraw_node=function(t,n,i,o){if(t=r.redraw_node.apply(this,arguments)){var s,a,u=null,l=null
+for(s=0,a=t.childNodes.length;a>s;s++)if(t.childNodes[s]&&t.childNodes[s].className&&-1!==t.childNodes[s].className.indexOf("jstree-anchor")){u=t.childNodes[s]
+break}u&&(!this.settings.checkbox.tie_selection&&this._model.data[t.id].state.checked&&(u.className+=" jstree-checked"),l=c.cloneNode(!1),this._model.data[t.id].state.checkbox_disabled&&(l.className+=" jstree-checkbox-disabled"),u.insertBefore(l,u.childNodes[0]))}return i||-1===this.settings.checkbox.cascade.indexOf("undetermined")||(this._data.checkbox.uto&&clearTimeout(this._data.checkbox.uto),this._data.checkbox.uto=setTimeout(e.proxy(this._undetermined,this),50)),t},this.show_checkboxes=function(){this._data.core.themes.checkboxes=!0,this.get_container_ul().removeClass("jstree-no-checkboxes")},this.hide_checkboxes=function(){this._data.core.themes.checkboxes=!1,this.get_container_ul().addClass("jstree-no-checkboxes")},this.toggle_checkboxes=function(){this._data.core.themes.checkboxes?this.hide_checkboxes():this.show_checkboxes()},this.is_undetermined=function(t){t=this.get_node(t)
+var n,r,i=this.settings.checkbox.cascade,o=this.settings.checkbox.tie_selection,s=this._data[o?"core":"checkbox"].selected,a=this._model.data
+if(!t||!0===t.state[o?"selected":"checked"]||-1===i.indexOf("undetermined")||-1===i.indexOf("down")&&-1===i.indexOf("up"))return!1
+if(!t.state.loaded&&!0===t.original.state.undetermined)return!0
+for(n=0,r=t.children_d.length;r>n;n++)if(-1!==e.inArray(t.children_d[n],s)||!a[t.children_d[n]].state.loaded&&a[t.children_d[n]].original.state.undetermined)return!0
+return!1},this.disable_checkbox=function(t){var n,r,i
+if(e.isArray(t)){for(t=t.slice(),n=0,r=t.length;r>n;n++)this.disable_checkbox(t[n])
+return!0}return!(!(t=this.get_node(t))||t.id===e.jstree.root)&&(i=this.get_node(t,!0),void(t.state.checkbox_disabled||(t.state.checkbox_disabled=!0,i&&i.length&&i.children(".jstree-anchor").children(".jstree-checkbox").addClass("jstree-checkbox-disabled"),this.trigger("disable_checkbox",{node:t}))))},this.enable_checkbox=function(t){var n,r,i
+if(e.isArray(t)){for(t=t.slice(),n=0,r=t.length;r>n;n++)this.enable_checkbox(t[n])
+return!0}return!(!(t=this.get_node(t))||t.id===e.jstree.root)&&(i=this.get_node(t,!0),void(t.state.checkbox_disabled&&(t.state.checkbox_disabled=!1,i&&i.length&&i.children(".jstree-anchor").children(".jstree-checkbox").removeClass("jstree-checkbox-disabled"),this.trigger("enable_checkbox",{node:t}))))},this.activate_node=function(t,n){return!e(n.target).hasClass("jstree-checkbox-disabled")&&(this.settings.checkbox.tie_selection&&(this.settings.checkbox.whole_node||e(n.target).hasClass("jstree-checkbox"))&&(n.ctrlKey=!0),this.settings.checkbox.tie_selection||!this.settings.checkbox.whole_node&&!e(n.target).hasClass("jstree-checkbox")?r.activate_node.call(this,t,n):!this.is_disabled(t)&&(this.is_checked(t)?this.uncheck_node(t,n):this.check_node(t,n),void this.trigger("activate_node",{node:this.get_node(t)})))},this._cascade_new_checked_state=function(e,t){var n,r,i,o=this,s=this.settings.checkbox.tie_selection,a=this._model.data[e],u=[],c=[]
+if(!this.settings.checkbox.cascade_to_disabled&&a.state.disabled||!this.settings.checkbox.cascade_to_hidden&&a.state.hidden)i=this.get_checked_descendants(e),a.state[s?"selected":"checked"]&&i.push(a.id),u=u.concat(i)
+else{if(a.children)for(n=0,r=a.children.length;r>n;n++){var l=a.children[n]
+i=o._cascade_new_checked_state(l,t),u=u.concat(i),i.indexOf(l)>-1&&c.push(l)}var h=o.get_node(a,!0),d=c.length>0&&c.length<a.children.length
+a.original&&a.original.state&&a.original.state.undetermined&&(a.original.state.undetermined=d),d?(a.state[s?"selected":"checked"]=!1,h.attr("aria-selected",!1).children(".jstree-anchor").removeClass(s?"jstree-clicked":"jstree-checked")):t&&c.length===a.children.length?(a.state[s?"selected":"checked"]=t,u.push(a.id),h.attr("aria-selected",!0).children(".jstree-anchor").addClass(s?"jstree-clicked":"jstree-checked")):(a.state[s?"selected":"checked"]=!1,h.attr("aria-selected",!1).children(".jstree-anchor").removeClass(s?"jstree-clicked":"jstree-checked"))}return u},this.get_checked_descendants=function(e){var t=this,n=t.settings.checkbox.tie_selection
+return t._model.data[e].children_d.filter(function(e){return t._model.data[e].state[n?"selected":"checked"]})},this.check_node=function(t,n){if(this.settings.checkbox.tie_selection)return this.select_node(t,!1,!0,n)
+var r,i,o
+if(e.isArray(t)){for(t=t.slice(),i=0,o=t.length;o>i;i++)this.check_node(t[i],n)
+return!0}return!(!(t=this.get_node(t))||t.id===e.jstree.root)&&(r=this.get_node(t,!0),void(t.state.checked||(t.state.checked=!0,this._data.checkbox.selected.push(t.id),r&&r.length&&r.children(".jstree-anchor").addClass("jstree-checked"),this.trigger("check_node",{node:t,selected:this._data.checkbox.selected,event:n}))))},this.uncheck_node=function(t,n){if(this.settings.checkbox.tie_selection)return this.deselect_node(t,!1,n)
+var r,i,o
+if(e.isArray(t)){for(t=t.slice(),r=0,i=t.length;i>r;r++)this.uncheck_node(t[r],n)
+return!0}return!(!(t=this.get_node(t))||t.id===e.jstree.root)&&(o=this.get_node(t,!0),void(t.state.checked&&(t.state.checked=!1,this._data.checkbox.selected=e.vakata.array_remove_item(this._data.checkbox.selected,t.id),o.length&&o.children(".jstree-anchor").removeClass("jstree-checked"),this.trigger("uncheck_node",{node:t,selected:this._data.checkbox.selected,event:n}))))},this.check_all=function(){if(this.settings.checkbox.tie_selection)return this.select_all()
+var t,n
+this._data.checkbox.selected.concat([])
+for(this._data.checkbox.selected=this._model.data[e.jstree.root].children_d.concat(),t=0,n=this._data.checkbox.selected.length;n>t;t++)this._model.data[this._data.checkbox.selected[t]]&&(this._model.data[this._data.checkbox.selected[t]].state.checked=!0)
+this.redraw(!0),this.trigger("check_all",{selected:this._data.checkbox.selected})},this.uncheck_all=function(){if(this.settings.checkbox.tie_selection)return this.deselect_all()
+var e,t,n=this._data.checkbox.selected.concat([])
+for(e=0,t=this._data.checkbox.selected.length;t>e;e++)this._model.data[this._data.checkbox.selected[e]]&&(this._model.data[this._data.checkbox.selected[e]].state.checked=!1)
+this._data.checkbox.selected=[],this.element.find(".jstree-checked").removeClass("jstree-checked"),this.trigger("uncheck_all",{selected:this._data.checkbox.selected,node:n})},this.is_checked=function(t){return this.settings.checkbox.tie_selection?this.is_selected(t):!(!(t=this.get_node(t))||t.id===e.jstree.root)&&t.state.checked},this.get_checked=function(t){return this.settings.checkbox.tie_selection?this.get_selected(t):t?e.map(this._data.checkbox.selected,e.proxy(function(e){return this.get_node(e)},this)):this._data.checkbox.selected},this.get_top_checked=function(t){if(this.settings.checkbox.tie_selection)return this.get_top_selected(t)
+var n,r,i,o,s=this.get_checked(!0),a={}
+for(n=0,r=s.length;r>n;n++)a[s[n].id]=s[n]
+for(n=0,r=s.length;r>n;n++)for(i=0,o=s[n].children_d.length;o>i;i++)a[s[n].children_d[i]]&&delete a[s[n].children_d[i]]
+s=[]
+for(n in a)a.hasOwnProperty(n)&&s.push(n)
+return t?e.map(s,e.proxy(function(e){return this.get_node(e)},this)):s},this.get_bottom_checked=function(t){if(this.settings.checkbox.tie_selection)return this.get_bottom_selected(t)
+var n,r,i=this.get_checked(!0),o=[]
+for(n=0,r=i.length;r>n;n++)i[n].children.length||o.push(i[n].id)
+return t?e.map(o,e.proxy(function(e){return this.get_node(e)},this)):o},this.load_node=function(t,n){var i,o,s
+if(!e.isArray(t)&&!this.settings.checkbox.tie_selection&&(s=this.get_node(t))&&s.state.loaded)for(i=0,o=s.children_d.length;o>i;i++)this._model.data[s.children_d[i]].state.checked&&(!0,this._data.checkbox.selected=e.vakata.array_remove_item(this._data.checkbox.selected,s.children_d[i]))
+return r.load_node.apply(this,arguments)},this.get_state=function(){var e=r.get_state.apply(this,arguments)
+return this.settings.checkbox.tie_selection?e:(e.checkbox=this._data.checkbox.selected.slice(),e)},this.set_state=function(t,n){var i=r.set_state.apply(this,arguments)
+if(i&&t.checkbox){if(!this.settings.checkbox.tie_selection){this.uncheck_all()
+var o=this
+e.each(t.checkbox,function(e,t){o.check_node(t)})}return delete t.checkbox,this.set_state(t,n),!1}return i},this.refresh=function(e,t){return this.settings.checkbox.tie_selection||(this._data.checkbox.selected=[]),r.refresh.apply(this,arguments)}},e.jstree.defaults.conditionalselect=function(){return!0},e.jstree.plugins.conditionalselect=function(e,t){this.activate_node=function(e,n){return this.settings.conditionalselect.call(this,this.get_node(e),n)?t.activate_node.call(this,e,n):void 0}},e.jstree.defaults.contextmenu={select_node:!0,show_at_node:!0,items:function(t,n){return{create:{separator_before:!1,separator_after:!0,_disabled:!1,label:"Create",action:function(t){var n=e.jstree.reference(t.reference),r=n.get_node(t.reference)
+n.create_node(r,{},"last",function(e){try{n.edit(e)}catch(t){setTimeout(function(){n.edit(e)},0)}})}},rename:{separator_before:!1,separator_after:!1,_disabled:!1,label:"Rename",action:function(t){var n=e.jstree.reference(t.reference),r=n.get_node(t.reference)
+n.edit(r)}},remove:{separator_before:!1,icon:!1,separator_after:!1,_disabled:!1,label:"Delete",action:function(t){var n=e.jstree.reference(t.reference),r=n.get_node(t.reference)
+n.is_selected(r)?n.delete_node(n.get_selected()):n.delete_node(r)}},ccp:{separator_before:!0,icon:!1,separator_after:!1,label:"Edit",action:!1,submenu:{cut:{separator_before:!1,separator_after:!1,label:"Cut",action:function(t){var n=e.jstree.reference(t.reference),r=n.get_node(t.reference)
+n.is_selected(r)?n.cut(n.get_top_selected()):n.cut(r)}},copy:{separator_before:!1,icon:!1,separator_after:!1,label:"Copy",action:function(t){var n=e.jstree.reference(t.reference),r=n.get_node(t.reference)
+n.is_selected(r)?n.copy(n.get_top_selected()):n.copy(r)}},paste:{separator_before:!1,icon:!1,_disabled:function(t){return!e.jstree.reference(t.reference).can_paste()},separator_after:!1,label:"Paste",action:function(t){var n=e.jstree.reference(t.reference),r=n.get_node(t.reference)
+n.paste(r)}}}}}}},e.jstree.plugins.contextmenu=function(n,r){this.bind=function(){r.bind.call(this)
+var t,n,i=0,o=null
+this.element.on("init.jstree loading.jstree ready.jstree",e.proxy(function(){this.get_container_ul().addClass("jstree-contextmenu")},this)).on("contextmenu.jstree",".jstree-anchor",e.proxy(function(e,t){"input"!==e.target.tagName.toLowerCase()&&(e.preventDefault(),i=e.ctrlKey?+new Date:0,(t||o)&&(i=+new Date+1e4),o&&clearTimeout(o),this.is_loading(e.currentTarget)||this.show_contextmenu(e.currentTarget,e.pageX,e.pageY,e))},this)).on("click.jstree",".jstree-anchor",e.proxy(function(t){this._data.contextmenu.visible&&(!i||+new Date-i>250)&&e.vakata.context.hide(),i=0},this)).on("touchstart.jstree",".jstree-anchor",function(r){r.originalEvent&&r.originalEvent.changedTouches&&r.originalEvent.changedTouches[0]&&(t=r.originalEvent.changedTouches[0].clientX,n=r.originalEvent.changedTouches[0].clientY,o=setTimeout(function(){e(r.currentTarget).trigger("contextmenu",!0)},750))}).on("touchmove.vakata.jstree",function(r){o&&r.originalEvent&&r.originalEvent.changedTouches&&r.originalEvent.changedTouches[0]&&(Math.abs(t-r.originalEvent.changedTouches[0].clientX)>10||Math.abs(n-r.originalEvent.changedTouches[0].clientY)>10)&&(clearTimeout(o),e.vakata.context.hide())}).on("touchend.vakata.jstree",function(e){o&&clearTimeout(o)}),e(u).on("context_hide.vakata.jstree",e.proxy(function(t,n){this._data.contextmenu.visible=!1,e(n.reference).removeClass("jstree-context")},this))},this.teardown=function(){this._data.contextmenu.visible&&e.vakata.context.hide(),r.teardown.call(this)},this.show_contextmenu=function(n,r,i,o){if(!(n=this.get_node(n))||n.id===e.jstree.root)return!1
+var s=this.settings.contextmenu,a=this.get_node(n,!0),u=a.children(".jstree-anchor"),c=!1,l=!1;(s.show_at_node||r===t||i===t)&&(c=u.offset(),r=c.left,i=c.top+this._data.core.li_height),this.settings.contextmenu.select_node&&!this.is_selected(n)&&this.activate_node(n,o),l=s.items,e.isFunction(l)&&(l=l.call(this,n,e.proxy(function(e){this._show_contextmenu(n,r,i,e)},this))),e.isPlainObject(l)&&this._show_contextmenu(n,r,i,l)},this._show_contextmenu=function(t,n,r,i){var o=this.get_node(t,!0),s=o.children(".jstree-anchor")
+e(u).one("context_show.vakata.jstree",e.proxy(function(t,n){var r="jstree-contextmenu jstree-"+this.get_theme()+"-contextmenu"
+e(n.element).addClass(r),s.addClass("jstree-context")},this)),this._data.contextmenu.visible=!0,e.vakata.context.show(s,{x:n,y:r},i),this.trigger("show_contextmenu",{node:t,x:n,y:r})}},function(e){var t=!1,n={element:!1,reference:!1,position_x:0,position_y:0,items:[],html:"",is_visible:!1}
+e.vakata.context={settings:{hide_onmouseleave:0,icons:!0},_trigger:function(t){e(u).triggerHandler("context_"+t+".vakata",{reference:n.reference,element:n.element,position:{x:n.position_x,y:n.position_y}})},_execute:function(t){return!(!(t=n.items[t])||t._disabled&&(!e.isFunction(t._disabled)||t._disabled({item:t,reference:n.reference,element:n.element}))||!t.action)&&t.action.call(null,{item:t,reference:n.reference,element:n.element,position:{x:n.position_x,y:n.position_y}})},_parse:function(t,r){if(!t)return!1
+r||(n.html="",n.items=[])
+var i,o="",s=!1
+return r&&(o+="<ul>"),e.each(t,function(t,r){return!r||(n.items.push(r),!s&&r.separator_before&&(o+="<li class='vakata-context-separator'><a href='#' "+(e.vakata.context.settings.icons?"":'style="margin-left:0px;"')+">&#160;</a></li>"),s=!1,o+="<li class='"+(r._class||"")+(!0===r._disabled||e.isFunction(r._disabled)&&r._disabled({item:r,reference:n.reference,element:n.element})?" vakata-contextmenu-disabled ":"")+"' "+(r.shortcut?" data-shortcut='"+r.shortcut+"' ":"")+">",o+="<a href='#' rel='"+(n.items.length-1)+"' "+(r.title?"title='"+r.title+"'":"")+">",e.vakata.context.settings.icons&&(o+="<i ",r.icon&&(o+=-1!==r.icon.indexOf("/")||-1!==r.icon.indexOf(".")?" style='background:url(\""+r.icon+"\") center center no-repeat' ":" class='"+r.icon+"' "),o+="></i><span class='vakata-contextmenu-sep'>&#160;</span>"),o+=(e.isFunction(r.label)?r.label({item:t,reference:n.reference,element:n.element}):r.label)+(r.shortcut?' <span class="vakata-contextmenu-shortcut vakata-contextmenu-shortcut-'+r.shortcut+'">'+(r.shortcut_label||"")+"</span>":"")+"</a>",r.submenu&&(i=e.vakata.context._parse(r.submenu,!0))&&(o+=i),o+="</li>",void(r.separator_after&&(o+="<li class='vakata-context-separator'><a href='#' "+(e.vakata.context.settings.icons?"":'style="margin-left:0px;"')+">&#160;</a></li>",s=!0)))}),o=o.replace(/<li class\='vakata-context-separator'\><\/li\>$/,""),r&&(o+="</ul>"),r||(n.html=o,e.vakata.context._trigger("parse")),o.length>10&&o},_show_submenu:function(n){if(n=e(n),n.length&&n.children("ul").length){var r=n.children("ul"),i=n.offset().left,o=i+n.outerWidth(),s=n.offset().top,a=r.width(),u=r.height(),c=e(window).width()+e(window).scrollLeft(),l=e(window).height()+e(window).scrollTop()
+t?n[o-(a+10+n.outerWidth())<0?"addClass":"removeClass"]("vakata-context-left"):n[o+a>c&&i>c-o?"addClass":"removeClass"]("vakata-context-right"),s+u+10>l&&r.css("bottom","-1px"),n.hasClass("vakata-context-right")?a>i&&r.css("margin-right",i-a):a>c-o&&r.css("margin-left",c-o-a),r.show()}},show:function(r,i,o){var s,a,u,c,l,h,d,p
+switch(n.element&&n.element.length&&n.element.width(""),!0){case!i&&!r:return!1
+case!!i&&!!r:n.reference=r,n.position_x=i.x,n.position_y=i.y
+break
+case!i&&!!r:n.reference=r,s=r.offset(),n.position_x=s.left+r.outerHeight(),n.position_y=s.top
+break
+case!!i&&!r:n.position_x=i.x,n.position_y=i.y}r&&!o&&e(r).data("vakata_contextmenu")&&(o=e(r).data("vakata_contextmenu")),e.vakata.context._parse(o)&&n.element.html(n.html),n.items.length&&(n.element.appendTo("body"),a=n.element,u=n.position_x,c=n.position_y,l=a.width(),h=a.height(),d=e(window).width()+e(window).scrollLeft(),p=e(window).height()+e(window).scrollTop(),t&&(u-=a.outerWidth()-e(r).outerWidth())<e(window).scrollLeft()+20&&(u=e(window).scrollLeft()+20),u+l+20>d&&(u=d-(l+20)),c+h+20>p&&(c=p-(h+20)),n.element.css({left:u,top:c}).show().find("a").first().focus().parent().addClass("vakata-context-hover"),n.is_visible=!0,e.vakata.context._trigger("show"))},hide:function(){n.is_visible&&(n.element.hide().find("ul").hide().end().find(":focus").blur().end().detach(),n.is_visible=!1,e.vakata.context._trigger("hide"))}},e(function(){t="rtl"===e("body").css("direction")
+var r=!1
+n.element=e("<ul class='vakata-context'></ul>"),n.element.on("mouseenter","li",function(t){t.stopImmediatePropagation(),e.contains(this,t.relatedTarget)||(r&&clearTimeout(r),n.element.find(".vakata-context-hover").removeClass("vakata-context-hover").end(),e(this).siblings().find("ul").hide().end().end().parentsUntil(".vakata-context","li").addBack().addClass("vakata-context-hover"),e.vakata.context._show_submenu(this))}).on("mouseleave","li",function(t){e.contains(this,t.relatedTarget)||e(this).find(".vakata-context-hover").addBack().removeClass("vakata-context-hover")}).on("mouseleave",function(t){e(this).find(".vakata-context-hover").removeClass("vakata-context-hover"),e.vakata.context.settings.hide_onmouseleave&&(r=setTimeout(function(t){return function(){e.vakata.context.hide()}}(),e.vakata.context.settings.hide_onmouseleave))}).on("click","a",function(t){t.preventDefault(),e(this).blur().parent().hasClass("vakata-context-disabled")||!1===e.vakata.context._execute(e(this).attr("rel"))||e.vakata.context.hide()}).on("keydown","a",function(t){var r=null
+switch(t.which){case 13:case 32:t.type="click",t.preventDefault(),e(t.currentTarget).trigger(t)
+break
+case 37:n.is_visible&&(n.element.find(".vakata-context-hover").last().closest("li").first().find("ul").hide().find(".vakata-context-hover").removeClass("vakata-context-hover").end().end().children("a").focus(),t.stopImmediatePropagation(),t.preventDefault())
+break
+case 38:n.is_visible&&(r=n.element.find("ul:visible").addBack().last().children(".vakata-context-hover").removeClass("vakata-context-hover").prevAll("li:not(.vakata-context-separator)").first(),r.length||(r=n.element.find("ul:visible").addBack().last().children("li:not(.vakata-context-separator)").last()),r.addClass("vakata-context-hover").children("a").focus(),t.stopImmediatePropagation(),t.preventDefault())
+break
+case 39:n.is_visible&&(n.element.find(".vakata-context-hover").last().children("ul").show().children("li:not(.vakata-context-separator)").removeClass("vakata-context-hover").first().addClass("vakata-context-hover").children("a").focus(),t.stopImmediatePropagation(),t.preventDefault())
+break
+case 40:n.is_visible&&(r=n.element.find("ul:visible").addBack().last().children(".vakata-context-hover").removeClass("vakata-context-hover").nextAll("li:not(.vakata-context-separator)").first(),r.length||(r=n.element.find("ul:visible").addBack().last().children("li:not(.vakata-context-separator)").first()),r.addClass("vakata-context-hover").children("a").focus(),t.stopImmediatePropagation(),t.preventDefault())
+break
+case 27:e.vakata.context.hide(),t.preventDefault()}}).on("keydown",function(e){e.preventDefault()
+var t=n.element.find(".vakata-contextmenu-shortcut-"+e.which).parent()
+t.parent().not(".vakata-context-disabled")&&t.click()}),e(u).on("mousedown.vakata.jstree",function(t){n.is_visible&&n.element[0]!==t.target&&!e.contains(n.element[0],t.target)&&e.vakata.context.hide()}).on("context_show.vakata.jstree",function(e,r){n.element.find("li:has(ul)").children("a").addClass("vakata-context-parent"),t&&n.element.addClass("vakata-context-rtl").css("direction","rtl"),n.element.find("ul").hide().end()})})}(e),e.jstree.defaults.dnd={copy:!0,open_timeout:500,is_draggable:!0,check_while_dragging:!0,always_copy:!1,inside_pos:0,drag_selection:!0,touch:!0,large_drop_target:!1,large_drag_target:!1,use_html5:!1}
+var l,h
+e.jstree.plugins.dnd=function(t,n){this.init=function(e,t){n.init.call(this,e,t),this.settings.dnd.use_html5=this.settings.dnd.use_html5&&"draggable"in u.createElement("span")},this.bind=function(){n.bind.call(this),this.element.on(this.settings.dnd.use_html5?"dragstart.jstree":"mousedown.jstree touchstart.jstree",this.settings.dnd.large_drag_target?".jstree-node":".jstree-anchor",e.proxy(function(t){if(this.settings.dnd.large_drag_target&&e(t.target).closest(".jstree-node")[0]!==t.currentTarget)return!0
+if("touchstart"===t.type&&(!this.settings.dnd.touch||"selected"===this.settings.dnd.touch&&!e(t.currentTarget).closest(".jstree-node").children(".jstree-anchor").hasClass("jstree-clicked")))return!0
+var n=this.get_node(t.target),r=this.is_selected(n)&&this.settings.dnd.drag_selection?this.get_top_selected().length:1,i=r>1?r+" "+this.get_string("nodes"):this.get_text(t.currentTarget)
+if(this.settings.core.force_text&&(i=e.vakata.html.escape(i)),n&&n.id&&n.id!==e.jstree.root&&(1===t.which||"touchstart"===t.type||"dragstart"===t.type)&&(!0===this.settings.dnd.is_draggable||e.isFunction(this.settings.dnd.is_draggable)&&this.settings.dnd.is_draggable.call(this,r>1?this.get_top_selected(!0):[n],t))){if(l={jstree:!0,origin:this,obj:this.get_node(n,!0),nodes:r>1?this.get_top_selected():[n.id]},h=t.currentTarget,!this.settings.dnd.use_html5)return this.element.trigger("mousedown.jstree"),e.vakata.dnd.start(t,l,'<div id="jstree-dnd" class="jstree-'+this.get_theme()+" jstree-"+this.get_theme()+"-"+this.get_theme_variant()+" "+(this.settings.core.themes.responsive?" jstree-dnd-responsive":"")+'"><i class="jstree-icon jstree-er"></i>'+i+'<ins class="jstree-copy" style="display:none;">+</ins></div>')
+e.vakata.dnd._trigger("start",t,{helper:e(),element:h,data:l})}},this)),this.settings.dnd.use_html5&&this.element.on("dragover.jstree",function(t){return t.preventDefault(),e.vakata.dnd._trigger("move",t,{helper:e(),element:h,data:l}),!1}).on("drop.jstree",e.proxy(function(t){return t.preventDefault(),e.vakata.dnd._trigger("stop",t,{helper:e(),element:h,data:l}),!1},this))},this.redraw_node=function(e,t,r,i){if((e=n.redraw_node.apply(this,arguments))&&this.settings.dnd.use_html5)if(this.settings.dnd.large_drag_target)e.setAttribute("draggable",!0)
+else{var o,s,a=null
+for(o=0,s=e.childNodes.length;s>o;o++)if(e.childNodes[o]&&e.childNodes[o].className&&-1!==e.childNodes[o].className.indexOf("jstree-anchor")){a=e.childNodes[o]
+break}a&&a.setAttribute("draggable",!0)}return e}},e(function(){var n=!1,r=!1,i=!1,o=!1,s=e('<div id="jstree-marker">&#160;</div>').hide()
+e(u).on("dnd_start.vakata.jstree",function(e,t){n=!1,i=!1,t&&t.data&&t.data.jstree&&s.appendTo("body")}).on("dnd_move.vakata.jstree",function(a,u){var c=u.event.target!==i.target
+if(o&&(!u.event||"dragover"!==u.event.type||c)&&clearTimeout(o),u&&u.data&&u.data.jstree&&(!u.event.target.id||"jstree-marker"!==u.event.target.id)){i=u.event
+var l,h,d,p,f,g,m,v,y,b,C,A,_,I,w,x,k=e.jstree.reference(u.event.target),j=!1,E=!1,S=!1
+if(k&&k._data&&k._data.dnd)if(s.attr("class","jstree-"+k.get_theme()+(k.settings.core.themes.responsive?" jstree-dnd-responsive":"")),w=u.data.origin&&(u.data.origin.settings.dnd.always_copy||u.data.origin.settings.dnd.copy&&(u.event.metaKey||u.event.ctrlKey)),u.helper.children().attr("class","jstree-"+k.get_theme()+" jstree-"+k.get_theme()+"-"+k.get_theme_variant()+" "+(k.settings.core.themes.responsive?" jstree-dnd-responsive":"")).find(".jstree-copy").first()[w?"show":"hide"](),u.event.target!==k.element[0]&&u.event.target!==k.get_container_ul()[0]||0!==k.get_container_ul().children().length){if((j=k.settings.dnd.large_drop_target?e(u.event.target).closest(".jstree-node").children(".jstree-anchor"):e(u.event.target).closest(".jstree-anchor"))&&j.length&&j.parent().is(".jstree-closed, .jstree-open, .jstree-leaf")&&(E=j.offset(),S=(u.event.pageY!==t?u.event.pageY:u.event.originalEvent.pageY)-E.top,d=j.outerHeight(),g=d/3>S?["b","i","a"]:S>d-d/3?["a","i","b"]:S>d/2?["i","a","b"]:["i","b","a"],e.each(g,function(t,i){switch(i){case"b":l=E.left-6,h=E.top,p=k.get_parent(j),f=j.parent().index()
+break
+case"i":_=k.settings.dnd.inside_pos,I=k.get_node(j.parent()),l=E.left-2,h=E.top+d/2+1,p=I.id,f="first"===_?0:"last"===_?I.children.length:Math.min(_,I.children.length)
+break
+case"a":l=E.left-6,h=E.top+d,p=k.get_parent(j),f=j.parent().index()+1}for(m=!0,v=0,y=u.data.nodes.length;y>v;v++)if(b=u.data.origin&&(u.data.origin.settings.dnd.always_copy||u.data.origin.settings.dnd.copy&&(u.event.metaKey||u.event.ctrlKey))?"copy_node":"move_node",C=f,"move_node"===b&&"a"===i&&u.data.origin&&u.data.origin===k&&p===k.get_parent(u.data.nodes[v])&&(A=k.get_node(p),C>e.inArray(u.data.nodes[v],A.children)&&(C-=1)),!(m=m&&(k&&k.settings&&k.settings.dnd&&!1===k.settings.dnd.check_while_dragging||k.check(b,u.data.origin&&u.data.origin!==k?u.data.origin.get_node(u.data.nodes[v]):u.data.nodes[v],p,C,{dnd:!0,ref:k.get_node(j.parent()),pos:i,origin:u.data.origin,is_multi:u.data.origin&&u.data.origin!==k,is_foreign:!u.data.origin})))){k&&k.last_error&&(r=k.last_error())
+break}return"i"===i&&j.parent().is(".jstree-closed")&&k.settings.dnd.open_timeout&&(!u.event||"dragover"!==u.event.type||c)&&(o&&clearTimeout(o),o=setTimeout(function(e,t){return function(){e.open_node(t)}}(k,j),k.settings.dnd.open_timeout)),m?(x=k.get_node(p,!0),x.hasClass(".jstree-dnd-parent")||(e(".jstree-dnd-parent").removeClass("jstree-dnd-parent"),x.addClass("jstree-dnd-parent")),n={ins:k,par:p,pos:"i"!==i||"last"!==_||0!==f||k.is_loaded(I)?f:"last"},s.css({left:l+"px",top:h+"px"}).show(),u.helper.find(".jstree-icon").first().removeClass("jstree-er").addClass("jstree-ok"),u.event.originalEvent&&u.event.originalEvent.dataTransfer&&(u.event.originalEvent.dataTransfer.dropEffect=w?"copy":"move"),r={},g=!0,!1):void 0}),!0===g))return}else{for(m=!0,v=0,y=u.data.nodes.length;y>v&&(m=m&&k.check(u.data.origin&&(u.data.origin.settings.dnd.always_copy||u.data.origin.settings.dnd.copy&&(u.event.metaKey||u.event.ctrlKey))?"copy_node":"move_node",u.data.origin&&u.data.origin!==k?u.data.origin.get_node(u.data.nodes[v]):u.data.nodes[v],e.jstree.root,"last",{dnd:!0,ref:k.get_node(e.jstree.root),pos:"i",origin:u.data.origin,is_multi:u.data.origin&&u.data.origin!==k,is_foreign:!u.data.origin}));v++);if(m)return n={ins:k,par:e.jstree.root,pos:"last"},s.hide(),u.helper.find(".jstree-icon").first().removeClass("jstree-er").addClass("jstree-ok"),void(u.event.originalEvent&&u.event.originalEvent.dataTransfer&&(u.event.originalEvent.dataTransfer.dropEffect=w?"copy":"move"))}e(".jstree-dnd-parent").removeClass("jstree-dnd-parent"),n=!1,u.helper.find(".jstree-icon").removeClass("jstree-ok").addClass("jstree-er"),u.event.originalEvent&&u.event.originalEvent.dataTransfer&&(u.event.originalEvent.dataTransfer.dropEffect="none"),s.hide()}}).on("dnd_scroll.vakata.jstree",function(e,t){t&&t.data&&t.data.jstree&&(s.hide(),n=!1,i=!1,t.helper.find(".jstree-icon").first().removeClass("jstree-ok").addClass("jstree-er"))}).on("dnd_stop.vakata.jstree",function(t,a){if(e(".jstree-dnd-parent").removeClass("jstree-dnd-parent"),o&&clearTimeout(o),a&&a.data&&a.data.jstree){s.hide().detach()
+var u,c,l=[]
+if(n){for(u=0,c=a.data.nodes.length;c>u;u++)l[u]=a.data.origin?a.data.origin.get_node(a.data.nodes[u]):a.data.nodes[u]
+n.ins[a.data.origin&&(a.data.origin.settings.dnd.always_copy||a.data.origin.settings.dnd.copy&&(a.event.metaKey||a.event.ctrlKey))?"copy_node":"move_node"](l,n.par,n.pos,!1,!1,!1,a.data.origin)}else u=e(a.event.target).closest(".jstree"),u.length&&r&&r.error&&"check"===r.error&&(u=u.jstree(!0))&&u.settings.core.error.call(this,r)
+i=!1,n=!1}}).on("keyup.jstree keydown.jstree",function(t,a){(a=e.vakata.dnd._get())&&a.data&&a.data.jstree&&("keyup"===t.type&&27===t.which?(o&&clearTimeout(o),n=!1,r=!1,i=!1,o=!1,s.hide().detach(),e.vakata.dnd._clean()):(a.helper.find(".jstree-copy").first()[a.data.origin&&(a.data.origin.settings.dnd.always_copy||a.data.origin.settings.dnd.copy&&(t.metaKey||t.ctrlKey))?"show":"hide"](),i&&(i.metaKey=t.metaKey,i.ctrlKey=t.ctrlKey,e.vakata.dnd._trigger("move",i))))})}),function(e){e.vakata.html={div:e("<div />"),escape:function(t){return e.vakata.html.div.text(t).html()},strip:function(t){return e.vakata.html.div.empty().append(e.parseHTML(t)).text()}}
+var n={element:!1,target:!1,is_down:!1,is_drag:!1,helper:!1,helper_w:0,data:!1,init_x:0,init_y:0,scroll_l:0,scroll_t:0,scroll_e:!1,scroll_i:!1,is_touch:!1}
+e.vakata.dnd={settings:{scroll_speed:10,scroll_proximity:20,helper_left:5,helper_top:10,threshold:5,threshold_touch:10},_trigger:function(n,r,i){i===t&&(i=e.vakata.dnd._get()),i.event=r,e(u).triggerHandler("dnd_"+n+".vakata",i)},_get:function(){return{data:n.data,element:n.element,helper:n.helper}},_clean:function(){n.helper&&n.helper.remove(),n.scroll_i&&(clearInterval(n.scroll_i),n.scroll_i=!1),n={element:!1,target:!1,is_down:!1,is_drag:!1,helper:!1,helper_w:0,data:!1,init_x:0,init_y:0,scroll_l:0,scroll_t:0,scroll_e:!1,scroll_i:!1,is_touch:!1},e(u).off("mousemove.vakata.jstree touchmove.vakata.jstree",e.vakata.dnd.drag),e(u).off("mouseup.vakata.jstree touchend.vakata.jstree",e.vakata.dnd.stop)},_scroll:function(t){if(!n.scroll_e||!n.scroll_l&&!n.scroll_t)return n.scroll_i&&(clearInterval(n.scroll_i),n.scroll_i=!1),!1
+if(!n.scroll_i)return n.scroll_i=setInterval(e.vakata.dnd._scroll,100),!1
+if(!0===t)return!1
+var r=n.scroll_e.scrollTop(),i=n.scroll_e.scrollLeft()
+n.scroll_e.scrollTop(r+n.scroll_t*e.vakata.dnd.settings.scroll_speed),n.scroll_e.scrollLeft(i+n.scroll_l*e.vakata.dnd.settings.scroll_speed),(r!==n.scroll_e.scrollTop()||i!==n.scroll_e.scrollLeft())&&e.vakata.dnd._trigger("scroll",n.scroll_e)},start:function(t,r,i){"touchstart"===t.type&&t.originalEvent&&t.originalEvent.changedTouches&&t.originalEvent.changedTouches[0]&&(t.pageX=t.originalEvent.changedTouches[0].pageX,t.pageY=t.originalEvent.changedTouches[0].pageY,t.target=u.elementFromPoint(t.originalEvent.changedTouches[0].pageX-window.pageXOffset,t.originalEvent.changedTouches[0].pageY-window.pageYOffset)),n.is_drag&&e.vakata.dnd.stop({})
+try{t.currentTarget.unselectable="on",t.currentTarget.onselectstart=function(){return!1},t.currentTarget.style&&(t.currentTarget.style.touchAction="none",t.currentTarget.style.msTouchAction="none",t.currentTarget.style.MozUserSelect="none")}catch(e){}return n.init_x=t.pageX,n.init_y=t.pageY,n.data=r,n.is_down=!0,n.element=t.currentTarget,n.target=t.target,n.is_touch="touchstart"===t.type,!1!==i&&(n.helper=e("<div id='vakata-dnd'></div>").html(i).css({display:"block",margin:"0",padding:"0",position:"absolute",top:"-2000px",lineHeight:"16px",zIndex:"10000"})),e(u).on("mousemove.vakata.jstree touchmove.vakata.jstree",e.vakata.dnd.drag),e(u).on("mouseup.vakata.jstree touchend.vakata.jstree",e.vakata.dnd.stop),!1},drag:function(t){if("touchmove"===t.type&&t.originalEvent&&t.originalEvent.changedTouches&&t.originalEvent.changedTouches[0]&&(t.pageX=t.originalEvent.changedTouches[0].pageX,t.pageY=t.originalEvent.changedTouches[0].pageY,t.target=u.elementFromPoint(t.originalEvent.changedTouches[0].pageX-window.pageXOffset,t.originalEvent.changedTouches[0].pageY-window.pageYOffset)),n.is_down){if(!n.is_drag){if(!(Math.abs(t.pageX-n.init_x)>(n.is_touch?e.vakata.dnd.settings.threshold_touch:e.vakata.dnd.settings.threshold)||Math.abs(t.pageY-n.init_y)>(n.is_touch?e.vakata.dnd.settings.threshold_touch:e.vakata.dnd.settings.threshold)))return
+n.helper&&(n.helper.appendTo("body"),n.helper_w=n.helper.outerWidth()),n.is_drag=!0,e(n.target).one("click.vakata",!1),e.vakata.dnd._trigger("start",t)}var r=!1,i=!1,o=!1,s=!1,a=!1,c=!1,l=!1,h=!1,d=!1,p=!1
+return n.scroll_t=0,n.scroll_l=0,n.scroll_e=!1,e(e(t.target).parentsUntil("body").addBack().get().reverse()).filter(function(){return/^auto|scroll$/.test(e(this).css("overflow"))&&(this.scrollHeight>this.offsetHeight||this.scrollWidth>this.offsetWidth)}).each(function(){var r=e(this),i=r.offset()
+return this.scrollHeight>this.offsetHeight&&(i.top+r.height()-t.pageY<e.vakata.dnd.settings.scroll_proximity&&(n.scroll_t=1),t.pageY-i.top<e.vakata.dnd.settings.scroll_proximity&&(n.scroll_t=-1)),this.scrollWidth>this.offsetWidth&&(i.left+r.width()-t.pageX<e.vakata.dnd.settings.scroll_proximity&&(n.scroll_l=1),t.pageX-i.left<e.vakata.dnd.settings.scroll_proximity&&(n.scroll_l=-1)),n.scroll_t||n.scroll_l?(n.scroll_e=e(this),!1):void 0}),n.scroll_e||(r=e(u),i=e(window),o=r.height(),s=i.height(),a=r.width(),c=i.width(),l=r.scrollTop(),h=r.scrollLeft(),o>s&&t.pageY-l<e.vakata.dnd.settings.scroll_proximity&&(n.scroll_t=-1),o>s&&s-(t.pageY-l)<e.vakata.dnd.settings.scroll_proximity&&(n.scroll_t=1),a>c&&t.pageX-h<e.vakata.dnd.settings.scroll_proximity&&(n.scroll_l=-1),a>c&&c-(t.pageX-h)<e.vakata.dnd.settings.scroll_proximity&&(n.scroll_l=1),(n.scroll_t||n.scroll_l)&&(n.scroll_e=r)),n.scroll_e&&e.vakata.dnd._scroll(!0),n.helper&&(d=parseInt(t.pageY+e.vakata.dnd.settings.helper_top,10),p=parseInt(t.pageX+e.vakata.dnd.settings.helper_left,10),o&&d+25>o&&(d=o-50),a&&p+n.helper_w>a&&(p=a-(n.helper_w+2)),n.helper.css({left:p+"px",top:d+"px"})),e.vakata.dnd._trigger("move",t),!1}},stop:function(t){if("touchend"===t.type&&t.originalEvent&&t.originalEvent.changedTouches&&t.originalEvent.changedTouches[0]&&(t.pageX=t.originalEvent.changedTouches[0].pageX,t.pageY=t.originalEvent.changedTouches[0].pageY,t.target=u.elementFromPoint(t.originalEvent.changedTouches[0].pageX-window.pageXOffset,t.originalEvent.changedTouches[0].pageY-window.pageYOffset)),n.is_drag)t.target!==n.target&&e(n.target).off("click.vakata"),e.vakata.dnd._trigger("stop",t)
+else if("touchend"===t.type&&t.target===n.target){var r=setTimeout(function(){e(t.target).click()},100)
+e(t.target).one("click",function(){r&&clearTimeout(r)})}return e.vakata.dnd._clean(),!1}}}(e),e.jstree.defaults.massload=null,e.jstree.plugins.massload=function(t,n){this.init=function(e,t){this._data.massload={},n.init.call(this,e,t)},this._load_nodes=function(t,r,i,o){var s,a,u,c=this.settings.massload,l=(JSON.stringify(t),[]),h=this._model.data
+if(!i){for(s=0,a=t.length;a>s;s++)(!h[t[s]]||!h[t[s]].state.loaded&&!h[t[s]].state.failed||o)&&(l.push(t[s]),(u=this.get_node(t[s],!0))&&u.length&&u.addClass("jstree-loading").attr("aria-busy",!0))
+if(this._data.massload={},l.length){if(e.isFunction(c))return c.call(this,l,e.proxy(function(e){var s,a
+if(e)for(s in e)e.hasOwnProperty(s)&&(this._data.massload[s]=e[s])
+for(s=0,a=t.length;a>s;s++)(u=this.get_node(t[s],!0))&&u.length&&u.removeClass("jstree-loading").attr("aria-busy",!1)
+n._load_nodes.call(this,t,r,i,o)},this))
+if("object"==typeof c&&c&&c.url)return c=e.extend(!0,{},c),e.isFunction(c.url)&&(c.url=c.url.call(this,l)),e.isFunction(c.data)&&(c.data=c.data.call(this,l)),e.ajax(c).done(e.proxy(function(e,s,a){var c,l
+if(e)for(c in e)e.hasOwnProperty(c)&&(this._data.massload[c]=e[c])
+for(c=0,l=t.length;l>c;c++)(u=this.get_node(t[c],!0))&&u.length&&u.removeClass("jstree-loading").attr("aria-busy",!1)
+n._load_nodes.call(this,t,r,i,o)},this)).fail(e.proxy(function(e){n._load_nodes.call(this,t,r,i,o)},this))}}return n._load_nodes.call(this,t,r,i,o)},this._load_node=function(t,r){var i,o=this._data.massload[t.id],s=null
+return o?(s=this["string"==typeof o?"_append_html_data":"_append_json_data"](t,"string"==typeof o?e(e.parseHTML(o)).filter(function(){return 3!==this.nodeType}):o,function(e){r.call(this,e)}),i=this.get_node(t.id,!0),i&&i.length&&i.removeClass("jstree-loading").attr("aria-busy",!1),delete this._data.massload[t.id],s):n._load_node.call(this,t,r)}},e.jstree.defaults.search={ajax:!1,fuzzy:!1,case_sensitive:!1,show_only_matches:!1,show_only_matches_children:!1,close_opened_onclear:!0,search_leaves_only:!1,search_callback:!1},e.jstree.plugins.search=function(n,r){this.bind=function(){r.bind.call(this),this._data.search.str="",this._data.search.dom=e(),this._data.search.res=[],this._data.search.opn=[],this._data.search.som=!1,this._data.search.smc=!1,this._data.search.hdn=[],this.element.on("search.jstree",e.proxy(function(t,n){if(this._data.search.som&&n.res.length){var r,i,o,s,a=this._model.data,u=[]
+for(r=0,i=n.res.length;i>r;r++)if(a[n.res[r]]&&!a[n.res[r]].state.hidden&&(u.push(n.res[r]),u=u.concat(a[n.res[r]].parents),this._data.search.smc))for(o=0,s=a[n.res[r]].children_d.length;s>o;o++)a[a[n.res[r]].children_d[o]]&&!a[a[n.res[r]].children_d[o]].state.hidden&&u.push(a[n.res[r]].children_d[o])
+u=e.vakata.array_remove_item(e.vakata.array_unique(u),e.jstree.root),this._data.search.hdn=this.hide_all(!0),this.show_node(u,!0),this.redraw(!0)}},this)).on("clear_search.jstree",e.proxy(function(e,t){this._data.search.som&&t.res.length&&(this.show_node(this._data.search.hdn,!0),this.redraw(!0))},this))},this.search=function(n,r,i,o,s,a){if(!1===n||""===e.trim(n.toString()))return this.clear_search()
+o=this.get_node(o),o=o&&o.id?o.id:null,n=n.toString()
+var u,c,l=this.settings.search,h=!!l.ajax&&l.ajax,d=this._model.data,p=null,f=[],g=[]
+if(this._data.search.res.length&&!s&&this.clear_search(),i===t&&(i=l.show_only_matches),a===t&&(a=l.show_only_matches_children),!r&&!1!==h)return e.isFunction(h)?h.call(this,n,e.proxy(function(t){t&&t.d&&(t=t.d),this._load_nodes(e.isArray(t)?e.vakata.array_unique(t):[],function(){this.search(n,!0,i,o,s,a)})},this),o):(h=e.extend({},h),h.data||(h.data={}),h.data.str=n,o&&(h.data.inside=o),this._data.search.lastRequest&&this._data.search.lastRequest.abort(),this._data.search.lastRequest=e.ajax(h).fail(e.proxy(function(){this._data.core.last_error={error:"ajax",plugin:"search",id:"search_01",reason:"Could not load search parents",data:JSON.stringify(h)},this.settings.core.error.call(this,this._data.core.last_error)},this)).done(e.proxy(function(t){t&&t.d&&(t=t.d),this._load_nodes(e.isArray(t)?e.vakata.array_unique(t):[],function(){this.search(n,!0,i,o,s,a)})},this)),this._data.search.lastRequest)
+if(s||(this._data.search.str=n,this._data.search.dom=e(),this._data.search.res=[],this._data.search.opn=[],this._data.search.som=i,this._data.search.smc=a),p=new e.vakata.search(n,!0,{caseSensitive:l.case_sensitive,fuzzy:l.fuzzy}),e.each(d[o||e.jstree.root].children_d,function(e,t){var r=d[t]
+r.text&&!r.state.hidden&&(!l.search_leaves_only||r.state.loaded&&0===r.children.length)&&(l.search_callback&&l.search_callback.call(this,n,r)||!l.search_callback&&p.search(r.text).isMatch)&&(f.push(t),g=g.concat(r.parents))}),f.length){for(g=e.vakata.array_unique(g),u=0,c=g.length;c>u;u++)g[u]!==e.jstree.root&&d[g[u]]&&!0===this.open_node(g[u],null,0)&&this._data.search.opn.push(g[u])
+s?(this._data.search.dom=this._data.search.dom.add(e(this.element[0].querySelectorAll("#"+e.map(f,function(t){return-1!=="0123456789".indexOf(t[0])?"\\3"+t[0]+" "+t.substr(1).replace(e.jstree.idregex,"\\$&"):t.replace(e.jstree.idregex,"\\$&")}).join(", #")))),this._data.search.res=e.vakata.array_unique(this._data.search.res.concat(f))):(this._data.search.dom=e(this.element[0].querySelectorAll("#"+e.map(f,function(t){return-1!=="0123456789".indexOf(t[0])?"\\3"+t[0]+" "+t.substr(1).replace(e.jstree.idregex,"\\$&"):t.replace(e.jstree.idregex,"\\$&")}).join(", #"))),this._data.search.res=f),this._data.search.dom.children(".jstree-anchor").addClass("jstree-search")}this.trigger("search",{nodes:this._data.search.dom,str:n,res:this._data.search.res,show_only_matches:i})},this.clear_search=function(){this.settings.search.close_opened_onclear&&this.close_node(this._data.search.opn,0),this.trigger("clear_search",{nodes:this._data.search.dom,str:this._data.search.str,res:this._data.search.res}),this._data.search.res.length&&(this._data.search.dom=e(this.element[0].querySelectorAll("#"+e.map(this._data.search.res,function(t){return-1!=="0123456789".indexOf(t[0])?"\\3"+t[0]+" "+t.substr(1).replace(e.jstree.idregex,"\\$&"):t.replace(e.jstree.idregex,"\\$&")}).join(", #"))),this._data.search.dom.children(".jstree-anchor").removeClass("jstree-search")),this._data.search.str="",this._data.search.res=[],this._data.search.opn=[],this._data.search.dom=e()},this.redraw_node=function(t,n,i,o){if((t=r.redraw_node.apply(this,arguments))&&-1!==e.inArray(t.id,this._data.search.res)){var s,a,u=null
+for(s=0,a=t.childNodes.length;a>s;s++)if(t.childNodes[s]&&t.childNodes[s].className&&-1!==t.childNodes[s].className.indexOf("jstree-anchor")){u=t.childNodes[s]
+break}u&&(u.className+=" jstree-search")}return t}},function(e){e.vakata.search=function(t,n,r){r=r||{},r=e.extend({},e.vakata.search.defaults,r),!1!==r.fuzzy&&(r.fuzzy=!0),t=r.caseSensitive?t:t.toLowerCase()
+var i,o,s,a,u=r.location,c=r.distance,l=r.threshold,h=t.length
+return h>32&&(r.fuzzy=!1),r.fuzzy&&(i=1<<h-1,o=function(){var e={},n=0
+for(n=0;h>n;n++)e[t.charAt(n)]=0
+for(n=0;h>n;n++)e[t.charAt(n)]|=1<<h-n-1
+return e}(),s=function(e,t){var n=e/h,r=Math.abs(u-t)
+return c?n+r/c:r?1:n}),a=function(e){if(e=r.caseSensitive?e:e.toLowerCase(),t===e||-1!==e.indexOf(t))return{isMatch:!0,score:0}
+if(!r.fuzzy)return{isMatch:!1,score:1}
+var n,a,c,d,p,f,g,m,v,y=e.length,b=l,C=e.indexOf(t,u),A=h+y,_=1,I=[]
+for(-1!==C&&(b=Math.min(s(0,C),b),-1!==(C=e.lastIndexOf(t,u+h))&&(b=Math.min(s(0,C),b))),C=-1,n=0;h>n;n++){for(c=0,d=A;d>c;)s(n,u+d)<=b?c=d:A=d,d=Math.floor((A-c)/2+c)
+for(A=d,f=Math.max(1,u-d+1),g=Math.min(u+d,y)+h,m=new Array(g+2),m[g+1]=(1<<n)-1,a=g;a>=f;a--)if(v=o[e.charAt(a-1)],m[a]=0===n?(m[a+1]<<1|1)&v:(m[a+1]<<1|1)&v|(p[a+1]|p[a])<<1|1|p[a+1],m[a]&i&&(_=s(n,a-1),b>=_)){if(b=_,C=a-1,I.push(C),!(C>u))break
+f=Math.max(1,2*u-C)}if(s(n+1,u)>b)break
+p=m}return{isMatch:C>=0,score:_}},!0===n?{search:a}:a(n)},e.vakata.search.defaults={location:0,distance:100,threshold:.6,fuzzy:!1,caseSensitive:!1}}(e),e.jstree.defaults.sort=function(e,t){return this.get_text(e)>this.get_text(t)?1:-1},e.jstree.plugins.sort=function(t,n){this.bind=function(){n.bind.call(this),this.element.on("model.jstree",e.proxy(function(e,t){this.sort(t.parent,!0)},this)).on("rename_node.jstree create_node.jstree",e.proxy(function(e,t){this.sort(t.parent||t.node.parent,!1),this.redraw_node(t.parent||t.node.parent,!0)},this)).on("move_node.jstree copy_node.jstree",e.proxy(function(e,t){this.sort(t.parent,!1),this.redraw_node(t.parent,!0)},this))},this.sort=function(t,n){var r,i
+if((t=this.get_node(t))&&t.children&&t.children.length&&(t.children.sort(e.proxy(this.settings.sort,this)),n))for(r=0,i=t.children_d.length;i>r;r++)this.sort(t.children_d[r],!1)}}
+var d=!1
+e.jstree.defaults.state={key:"jstree",events:"changed.jstree open_node.jstree close_node.jstree check_node.jstree uncheck_node.jstree",ttl:!1,filter:!1,preserve_loaded:!1},e.jstree.plugins.state=function(t,n){this.bind=function(){n.bind.call(this)
+var t=e.proxy(function(){this.element.on(this.settings.state.events,e.proxy(function(){d&&clearTimeout(d),d=setTimeout(e.proxy(function(){this.save_state()},this),100)},this)),this.trigger("state_ready")},this)
+this.element.on("ready.jstree",e.proxy(function(e,n){this.element.one("restore_state.jstree",t),this.restore_state()||t()},this))},this.save_state=function(){var t=this.get_state()
+this.settings.state.preserve_loaded||delete t.core.loaded
+var n={state:t,ttl:this.settings.state.ttl,sec:+new Date}
+e.vakata.storage.set(this.settings.state.key,JSON.stringify(n))},this.restore_state=function(){var t=e.vakata.storage.get(this.settings.state.key)
+if(t)try{t=JSON.parse(t)}catch(e){return!1}return!(t&&t.ttl&&t.sec&&+new Date-t.sec>t.ttl)&&(t&&t.state&&(t=t.state),t&&e.isFunction(this.settings.state.filter)&&(t=this.settings.state.filter.call(this,t)),!!t&&(this.settings.state.preserve_loaded||delete t.core.loaded,this.element.one("set_state.jstree",function(n,r){r.instance.trigger("restore_state",{state:e.extend(!0,{},t)})}),this.set_state(t),!0))},this.clear_state=function(){return e.vakata.storage.del(this.settings.state.key)}},function(e,t){e.vakata.storage={set:function(e,t){return window.localStorage.setItem(e,t)},get:function(e){return window.localStorage.getItem(e)},del:function(e){return window.localStorage.removeItem(e)}}}(e),e.jstree.defaults.types={default:{}},e.jstree.defaults.types[e.jstree.root]={},e.jstree.plugins.types=function(n,r){this.init=function(n,i){var o,s
+if(i&&i.types&&i.types.default)for(o in i.types)if("default"!==o&&o!==e.jstree.root&&i.types.hasOwnProperty(o))for(s in i.types.default)i.types.default.hasOwnProperty(s)&&i.types[o][s]===t&&(i.types[o][s]=i.types.default[s])
+r.init.call(this,n,i),this._model.data[e.jstree.root].type=e.jstree.root},this.refresh=function(t,n){r.refresh.call(this,t,n),this._model.data[e.jstree.root].type=e.jstree.root},this.bind=function(){this.element.on("model.jstree",e.proxy(function(n,r){var i,o,s,a=this._model.data,u=r.nodes,c=this.settings.types,l="default"
+for(i=0,o=u.length;o>i;i++){if(l="default",a[u[i]].original&&a[u[i]].original.type&&c[a[u[i]].original.type]&&(l=a[u[i]].original.type),a[u[i]].data&&a[u[i]].data.jstree&&a[u[i]].data.jstree.type&&c[a[u[i]].data.jstree.type]&&(l=a[u[i]].data.jstree.type),a[u[i]].type=l,!0===a[u[i]].icon&&c[l].icon!==t&&(a[u[i]].icon=c[l].icon),c[l].li_attr!==t&&"object"==typeof c[l].li_attr)for(s in c[l].li_attr)if(c[l].li_attr.hasOwnProperty(s)){if("id"===s)continue
+a[u[i]].li_attr[s]===t?a[u[i]].li_attr[s]=c[l].li_attr[s]:"class"===s&&(a[u[i]].li_attr.class=c[l].li_attr.class+" "+a[u[i]].li_attr.class)}if(c[l].a_attr!==t&&"object"==typeof c[l].a_attr)for(s in c[l].a_attr)if(c[l].a_attr.hasOwnProperty(s)){if("id"===s)continue
+a[u[i]].a_attr[s]===t?a[u[i]].a_attr[s]=c[l].a_attr[s]:"href"===s&&"#"===a[u[i]].a_attr[s]?a[u[i]].a_attr.href=c[l].a_attr.href:"class"===s&&(a[u[i]].a_attr.class=c[l].a_attr.class+" "+a[u[i]].a_attr.class)}}a[e.jstree.root].type=e.jstree.root},this)),r.bind.call(this)},this.get_json=function(t,n,i){var o,s,a=this._model.data,u=n?e.extend(!0,{},n,{no_id:!1}):{},c=r.get_json.call(this,t,u,i)
+if(!1===c)return!1
+if(e.isArray(c))for(o=0,s=c.length;s>o;o++)c[o].type=c[o].id&&a[c[o].id]&&a[c[o].id].type?a[c[o].id].type:"default",n&&n.no_id&&(delete c[o].id,c[o].li_attr&&c[o].li_attr.id&&delete c[o].li_attr.id,c[o].a_attr&&c[o].a_attr.id&&delete c[o].a_attr.id)
+else c.type=c.id&&a[c.id]&&a[c.id].type?a[c.id].type:"default",n&&n.no_id&&(c=this._delete_ids(c))
+return c},this._delete_ids=function(t){if(e.isArray(t)){for(var n=0,r=t.length;r>n;n++)t[n]=this._delete_ids(t[n])
+return t}return delete t.id,t.li_attr&&t.li_attr.id&&delete t.li_attr.id,t.a_attr&&t.a_attr.id&&delete t.a_attr.id,t.children&&e.isArray(t.children)&&(t.children=this._delete_ids(t.children)),t},this.check=function(n,i,o,s,a){if(!1===r.check.call(this,n,i,o,s,a))return!1
+i=i&&i.id?i:this.get_node(i),o=o&&o.id?o:this.get_node(o)
+var u,c,l,h,d=i&&i.id?a&&a.origin?a.origin:e.jstree.reference(i.id):null
+switch(d=d&&d._model&&d._model.data?d._model.data:null,n){case"create_node":case"move_node":case"copy_node":if("move_node"!==n||-1===e.inArray(i.id,o.children)){if(u=this.get_rules(o),u.max_children!==t&&-1!==u.max_children&&u.max_children===o.children.length)return this._data.core.last_error={error:"check",plugin:"types",id:"types_01",reason:"max_children prevents function: "+n,data:JSON.stringify({chk:n,pos:s,obj:!(!i||!i.id)&&i.id,par:!(!o||!o.id)&&o.id})},!1
+if(u.valid_children!==t&&-1!==u.valid_children&&-1===e.inArray(i.type||"default",u.valid_children))return this._data.core.last_error={error:"check",plugin:"types",id:"types_02",reason:"valid_children prevents function: "+n,data:JSON.stringify({chk:n,pos:s,obj:!(!i||!i.id)&&i.id,par:!(!o||!o.id)&&o.id})},!1
+if(d&&i.children_d&&i.parents){for(c=0,l=0,h=i.children_d.length;h>l;l++)c=Math.max(c,d[i.children_d[l]].parents.length)
+c=c-i.parents.length+1}(0>=c||c===t)&&(c=1)
+do{if(u.max_depth!==t&&-1!==u.max_depth&&u.max_depth<c)return this._data.core.last_error={error:"check",plugin:"types",id:"types_03",reason:"max_depth prevents function: "+n,data:JSON.stringify({chk:n,pos:s,obj:!(!i||!i.id)&&i.id,par:!(!o||!o.id)&&o.id})},!1
+o=this.get_node(o.parent),u=this.get_rules(o),c++}while(o)}}return!0},this.get_rules=function(e){if(!(e=this.get_node(e)))return!1
+var n=this.get_type(e,!0)
+return n.max_depth===t&&(n.max_depth=-1),n.max_children===t&&(n.max_children=-1),n.valid_children===t&&(n.valid_children=-1),n},this.get_type=function(t,n){return!!(t=this.get_node(t))&&(n?e.extend({type:t.type},this.settings.types[t.type]):t.type)},this.set_type=function(n,r){var i,o,s,a,u,c,l,h,d=this._model.data
+if(e.isArray(n)){for(n=n.slice(),o=0,s=n.length;s>o;o++)this.set_type(n[o],r)
+return!0}if(i=this.settings.types,n=this.get_node(n),!i[r]||!n)return!1
+if(l=this.get_node(n,!0),l&&l.length&&(h=l.children(".jstree-anchor")),a=n.type,u=this.get_icon(n),n.type=r,(!0===u||!i[a]||i[a].icon!==t&&u===i[a].icon)&&this.set_icon(n,i[r].icon===t||i[r].icon),i[a]&&i[a].li_attr!==t&&"object"==typeof i[a].li_attr)for(c in i[a].li_attr)if(i[a].li_attr.hasOwnProperty(c)){if("id"===c)continue
+"class"===c?(d[n.id].li_attr.class=(d[n.id].li_attr.class||"").replace(i[a].li_attr[c],""),l&&l.removeClass(i[a].li_attr[c])):d[n.id].li_attr[c]===i[a].li_attr[c]&&(d[n.id].li_attr[c]=null,l&&l.removeAttr(c))}if(i[a]&&i[a].a_attr!==t&&"object"==typeof i[a].a_attr)for(c in i[a].a_attr)if(i[a].a_attr.hasOwnProperty(c)){if("id"===c)continue
+"class"===c?(d[n.id].a_attr.class=(d[n.id].a_attr.class||"").replace(i[a].a_attr[c],""),h&&h.removeClass(i[a].a_attr[c])):d[n.id].a_attr[c]===i[a].a_attr[c]&&("href"===c?(d[n.id].a_attr[c]="#",h&&h.attr("href","#")):(delete d[n.id].a_attr[c],h&&h.removeAttr(c)))}if(i[r].li_attr!==t&&"object"==typeof i[r].li_attr)for(c in i[r].li_attr)if(i[r].li_attr.hasOwnProperty(c)){if("id"===c)continue
+d[n.id].li_attr[c]===t?(d[n.id].li_attr[c]=i[r].li_attr[c],l&&("class"===c?l.addClass(i[r].li_attr[c]):l.attr(c,i[r].li_attr[c]))):"class"===c&&(d[n.id].li_attr.class=i[r].li_attr[c]+" "+d[n.id].li_attr.class,l&&l.addClass(i[r].li_attr[c]))}if(i[r].a_attr!==t&&"object"==typeof i[r].a_attr)for(c in i[r].a_attr)if(i[r].a_attr.hasOwnProperty(c)){if("id"===c)continue
+d[n.id].a_attr[c]===t?(d[n.id].a_attr[c]=i[r].a_attr[c],h&&("class"===c?h.addClass(i[r].a_attr[c]):h.attr(c,i[r].a_attr[c]))):"href"===c&&"#"===d[n.id].a_attr[c]?(d[n.id].a_attr.href=i[r].a_attr.href,h&&h.attr("href",i[r].a_attr.href)):"class"===c&&(d[n.id].a_attr.class=i[r].a_attr.class+" "+d[n.id].a_attr.class,h&&h.addClass(i[r].a_attr[c]))}return!0}},e.jstree.defaults.unique={case_sensitive:!1,trim_whitespace:!1,duplicate:function(e,t){return e+" ("+t+")"}},e.jstree.plugins.unique=function(n,r){this.check=function(t,n,i,o,s){if(!1===r.check.call(this,t,n,i,o,s))return!1
+if(n=n&&n.id?n:this.get_node(n),!(i=i&&i.id?i:this.get_node(i))||!i.children)return!0
+var a,u,c,l="rename_node"===t?o:n.text,h=[],d=this.settings.unique.case_sensitive,p=this.settings.unique.trim_whitespace,f=this._model.data
+for(a=0,u=i.children.length;u>a;a++)c=f[i.children[a]].text,d||(c=c.toLowerCase()),p&&(c=c.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")),h.push(c)
+switch(d||(l=l.toLowerCase()),p&&(l=l.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")),t){case"delete_node":return!0
+case"rename_node":return c=n.text||"",d||(c=c.toLowerCase()),p&&(c=c.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")),a=-1===e.inArray(l,h)||n.text&&c===l,a||(this._data.core.last_error={error:"check",plugin:"unique",id:"unique_01",reason:"Child with name "+l+" already exists. Preventing: "+t,data:JSON.stringify({chk:t,pos:o,obj:!(!n||!n.id)&&n.id,par:!(!i||!i.id)&&i.id})}),a
+case"create_node":return a=-1===e.inArray(l,h),a||(this._data.core.last_error={error:"check",plugin:"unique",id:"unique_04",reason:"Child with name "+l+" already exists. Preventing: "+t,data:JSON.stringify({chk:t,pos:o,obj:!(!n||!n.id)&&n.id,par:!(!i||!i.id)&&i.id})}),a
+case"copy_node":return a=-1===e.inArray(l,h),a||(this._data.core.last_error={error:"check",plugin:"unique",id:"unique_02",reason:"Child with name "+l+" already exists. Preventing: "+t,data:JSON.stringify({chk:t,pos:o,obj:!(!n||!n.id)&&n.id,par:!(!i||!i.id)&&i.id})}),a
+case"move_node":return a=n.parent===i.id&&(!s||!s.is_multi)||-1===e.inArray(l,h),a||(this._data.core.last_error={error:"check",plugin:"unique",id:"unique_03",reason:"Child with name "+l+" already exists. Preventing: "+t,data:JSON.stringify({chk:t,pos:o,obj:!(!n||!n.id)&&n.id,par:!(!i||!i.id)&&i.id})}),a}return!0},this.create_node=function(n,i,o,s,a){if(!i||i.text===t){if(null===n&&(n=e.jstree.root),!(n=this.get_node(n)))return r.create_node.call(this,n,i,o,s,a)
+if(o=o===t?"last":o,!o.toString().match(/^(before|after)$/)&&!a&&!this.is_loaded(n))return r.create_node.call(this,n,i,o,s,a)
+i||(i={})
+var u,c,l,h,d,p,f=this._model.data,g=this.settings.unique.case_sensitive,m=this.settings.unique.trim_whitespace,v=this.settings.unique.duplicate
+for(c=u=this.get_string("New node"),l=[],h=0,d=n.children.length;d>h;h++)p=f[n.children[h]].text,g||(p=p.toLowerCase()),m&&(p=p.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")),l.push(p)
+for(h=1,p=c,g||(p=p.toLowerCase()),m&&(p=p.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""));-1!==e.inArray(p,l);)c=v.call(this,u,++h).toString(),p=c,g||(p=p.toLowerCase()),m&&(p=p.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""))
+i.text=c}return r.create_node.call(this,n,i,o,s,a)}}
+var p=u.createElement("DIV")
+if(p.setAttribute("unselectable","on"),p.setAttribute("role","presentation"),p.className="jstree-wholerow",p.innerHTML="&#160;",e.jstree.plugins.wholerow=function(t,n){this.bind=function(){n.bind.call(this),this.element.on("ready.jstree set_state.jstree",e.proxy(function(){this.hide_dots()},this)).on("init.jstree loading.jstree ready.jstree",e.proxy(function(){this.get_container_ul().addClass("jstree-wholerow-ul")},this)).on("deselect_all.jstree",e.proxy(function(e,t){this.element.find(".jstree-wholerow-clicked").removeClass("jstree-wholerow-clicked")},this)).on("changed.jstree",e.proxy(function(e,t){this.element.find(".jstree-wholerow-clicked").removeClass("jstree-wholerow-clicked")
+var n,r,i=!1
+for(n=0,r=t.selected.length;r>n;n++)(i=this.get_node(t.selected[n],!0))&&i.length&&i.children(".jstree-wholerow").addClass("jstree-wholerow-clicked")},this)).on("open_node.jstree",e.proxy(function(e,t){this.get_node(t.node,!0).find(".jstree-clicked").parent().children(".jstree-wholerow").addClass("jstree-wholerow-clicked")},this)).on("hover_node.jstree dehover_node.jstree",e.proxy(function(e,t){"hover_node"===e.type&&this.is_disabled(t.node)||this.get_node(t.node,!0).children(".jstree-wholerow")["hover_node"===e.type?"addClass":"removeClass"]("jstree-wholerow-hovered")},this)).on("contextmenu.jstree",".jstree-wholerow",e.proxy(function(t){if(this._data.contextmenu){t.preventDefault()
+var n=e.Event("contextmenu",{metaKey:t.metaKey,ctrlKey:t.ctrlKey,altKey:t.altKey,shiftKey:t.shiftKey,pageX:t.pageX,pageY:t.pageY})
+e(t.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(n)}},this)).on("click.jstree",".jstree-wholerow",function(t){t.stopImmediatePropagation()
+var n=e.Event("click",{metaKey:t.metaKey,ctrlKey:t.ctrlKey,altKey:t.altKey,shiftKey:t.shiftKey})
+e(t.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(n).focus()}).on("dblclick.jstree",".jstree-wholerow",function(t){t.stopImmediatePropagation()
+var n=e.Event("dblclick",{metaKey:t.metaKey,ctrlKey:t.ctrlKey,altKey:t.altKey,shiftKey:t.shiftKey})
+e(t.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(n).focus()}).on("click.jstree",".jstree-leaf > .jstree-ocl",e.proxy(function(t){t.stopImmediatePropagation()
+var n=e.Event("click",{metaKey:t.metaKey,ctrlKey:t.ctrlKey,altKey:t.altKey,shiftKey:t.shiftKey})
+e(t.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(n).focus()},this)).on("mouseover.jstree",".jstree-wholerow, .jstree-icon",e.proxy(function(e){return e.stopImmediatePropagation(),this.is_disabled(e.currentTarget)||this.hover_node(e.currentTarget),!1},this)).on("mouseleave.jstree",".jstree-node",e.proxy(function(e){this.dehover_node(e.currentTarget)},this))},this.teardown=function(){this.settings.wholerow&&this.element.find(".jstree-wholerow").remove(),n.teardown.call(this)},this.redraw_node=function(t,r,i,o){if(t=n.redraw_node.apply(this,arguments)){var s=p.cloneNode(!0);-1!==e.inArray(t.id,this._data.core.selected)&&(s.className+=" jstree-wholerow-clicked"),this._data.core.focused&&this._data.core.focused===t.id&&(s.className+=" jstree-wholerow-hovered"),t.insertBefore(s,t.childNodes[0])}return t}},u.registerElement&&Object&&Object.create){var f=Object.create(HTMLElement.prototype)
+f.createdCallback=function(){var t,n={core:{},plugins:[]}
+for(t in e.jstree.plugins)e.jstree.plugins.hasOwnProperty(t)&&this.attributes[t]&&(n.plugins.push(t),this.getAttribute(t)&&JSON.parse(this.getAttribute(t))&&(n[t]=JSON.parse(this.getAttribute(t))))
+for(t in e.jstree.defaults.core)e.jstree.defaults.core.hasOwnProperty(t)&&this.attributes[t]&&(n.core[t]=JSON.parse(this.getAttribute(t))||this.getAttribute(t))
+e(this).jstree(n)}
+try{u.registerElement("vakata-jstree",{prototype:f})}catch(e){}}}}),function(){function e(e){"use strict"
+var t={omitExtraWLInCodeBlocks:{defaultValue:!1,describe:"Omit the default extra whiteline added to code blocks",type:"boolean"},noHeaderId:{defaultValue:!1,describe:"Turn on/off generated header id",type:"boolean"},prefixHeaderId:{defaultValue:!1,describe:"Add a prefix to the generated header ids. Passing a string will prefix that string to the header id. Setting to true will add a generic 'section-' prefix",type:"string"},rawPrefixHeaderId:{defaultValue:!1,describe:'Setting this option to true will prevent showdown from modifying the prefix. This might result in malformed IDs (if, for instance, the " char is used in the prefix)',type:"boolean"},ghCompatibleHeaderId:{defaultValue:!1,describe:"Generate header ids compatible with github style (spaces are replaced with dashes, a bunch of non alphanumeric chars are removed)",type:"boolean"},rawHeaderId:{defaultValue:!1,describe:"Remove only spaces, ' and \" from generated header ids (including prefixes), replacing them with dashes (-). WARNING: This might result in malformed ids",type:"boolean"},headerLevelStart:{defaultValue:!1,describe:"The header blocks level start",type:"integer"},parseImgDimensions:{defaultValue:!1,describe:"Turn on/off image dimension parsing",type:"boolean"},simplifiedAutoLink:{defaultValue:!1,describe:"Turn on/off GFM autolink style",type:"boolean"},excludeTrailingPunctuationFromURLs:{defaultValue:!1,describe:"Excludes trailing punctuation from links generated with autoLinking",type:"boolean"},literalMidWordUnderscores:{defaultValue:!1,describe:"Parse midword underscores as literal underscores",type:"boolean"},literalMidWordAsterisks:{defaultValue:!1,describe:"Parse midword asterisks as literal asterisks",type:"boolean"},strikethrough:{defaultValue:!1,describe:"Turn on/off strikethrough support",type:"boolean"},tables:{defaultValue:!1,describe:"Turn on/off tables support",type:"boolean"},tablesHeaderId:{defaultValue:!1,describe:"Add an id to table headers",type:"boolean"},ghCodeBlocks:{defaultValue:!0,describe:"Turn on/off GFM fenced code blocks support",type:"boolean"},tasklists:{defaultValue:!1,describe:"Turn on/off GFM tasklist support",type:"boolean"},smoothLivePreview:{defaultValue:!1,describe:"Prevents weird effects in live previews due to incomplete input",type:"boolean"},smartIndentationFix:{defaultValue:!1,description:"Tries to smartly fix indentation in es6 strings",type:"boolean"},disableForced4SpacesIndentedSublists:{defaultValue:!1,description:"Disables the requirement of indenting nested sublists by 4 spaces",type:"boolean"},simpleLineBreaks:{defaultValue:!1,description:"Parses simple line breaks as <br> (GFM Style)",type:"boolean"},requireSpaceBeforeHeadingText:{defaultValue:!1,description:"Makes adding a space between `#` and the header text mandatory (GFM Style)",type:"boolean"},ghMentions:{defaultValue:!1,description:"Enables github @mentions",type:"boolean"},ghMentionsLink:{defaultValue:"https://github.com/{u}",description:"Changes the link generated by @mentions. Only applies if ghMentions option is enabled.",type:"string"},encodeEmails:{defaultValue:!0,description:"Encode e-mail addresses through the use of Character Entities, transforming ASCII e-mail addresses into its equivalent decimal entities",type:"boolean"},openLinksInNewWindow:{defaultValue:!1,description:"Open all links in new windows",type:"boolean"},backslashEscapesHTMLTags:{defaultValue:!1,description:"Support for HTML Tag escaping. ex: <div>foo</div>",type:"boolean"},emoji:{defaultValue:!1,description:"Enable emoji support. Ex: `this is a :smile: emoji`",type:"boolean"},underline:{defaultValue:!1,description:"Enable support for underline. Syntax is double or triple underscores: `__underline word__`. With this option enabled, underscores no longer parses into `<em>` and `<strong>`",type:"boolean"},completeHTMLDocument:{defaultValue:!1,description:"Outputs a complete html document, including `<html>`, `<head>` and `<body>` tags",type:"boolean"},metadata:{defaultValue:!1,description:"Enable support for document metadata (defined at the top of the document between `«««` and `»»»` or between `---` and `---`).",type:"boolean"},splitAdjacentBlockquotes:{defaultValue:!1,description:"Split adjacent blockquote blocks",type:"boolean"}}
+if(!1===e)return JSON.parse(JSON.stringify(t))
+var n={}
+for(var r in t)t.hasOwnProperty(r)&&(n[r]=t[r].defaultValue)
+return n}function t(e,t){"use strict"
+var n=t?"Error in "+t+" extension->":"Error in unnamed extension",i={valid:!0,error:""}
+r.helper.isArray(e)||(e=[e])
+for(var o=0;o<e.length;++o){var s=n+" sub-extension "+o+": ",a=e[o]
+if("object"!=typeof a)return i.valid=!1,i.error=s+"must be an object, but "+typeof a+" given",i
+if(!r.helper.isString(a.type))return i.valid=!1,i.error=s+'property "type" must be a string, but '+typeof a.type+" given",i
+var u=a.type=a.type.toLowerCase()
+if("language"===u&&(u=a.type="lang"),"html"===u&&(u=a.type="output"),"lang"!==u&&"output"!==u&&"listener"!==u)return i.valid=!1,i.error=s+"type "+u+' is not recognized. Valid values: "lang/language", "output/html" or "listener"',i
+if("listener"===u){if(r.helper.isUndefined(a.listeners))return i.valid=!1,i.error=s+'. Extensions of type "listener" must have a property called "listeners"',i}else if(r.helper.isUndefined(a.filter)&&r.helper.isUndefined(a.regex))return i.valid=!1,i.error=s+u+' extensions must define either a "regex" property or a "filter" method',i
+if(a.listeners){if("object"!=typeof a.listeners)return i.valid=!1,i.error=s+'"listeners" property must be an object but '+typeof a.listeners+" given",i
+for(var c in a.listeners)if(a.listeners.hasOwnProperty(c)&&"function"!=typeof a.listeners[c])return i.valid=!1,i.error=s+'"listeners" property must be an hash of [event name]: [callback]. listeners.'+c+" must be a function but "+typeof a.listeners[c]+" given",i}if(a.filter){if("function"!=typeof a.filter)return i.valid=!1,i.error=s+'"filter" must be a function, but '+typeof a.filter+" given",i}else if(a.regex){if(r.helper.isString(a.regex)&&(a.regex=new RegExp(a.regex,"g")),!(a.regex instanceof RegExp))return i.valid=!1,i.error=s+'"regex" property must either be a string or a RegExp object, but '+typeof a.regex+" given",i
+if(r.helper.isUndefined(a.replace))return i.valid=!1,i.error=s+'"regex" extensions must implement a replace string or function',i}}return i}function n(e,t){"use strict"
+return"¨E"+t.charCodeAt(0)+"E"}var r={},i={},o={},s=e(!0),a="vanilla",u={github:{omitExtraWLInCodeBlocks:!0,simplifiedAutoLink:!0,excludeTrailingPunctuationFromURLs:!0,literalMidWordUnderscores:!0,strikethrough:!0,tables:!0,tablesHeaderId:!0,ghCodeBlocks:!0,tasklists:!0,disableForced4SpacesIndentedSublists:!0,simpleLineBreaks:!0,requireSpaceBeforeHeadingText:!0,ghCompatibleHeaderId:!0,ghMentions:!0,backslashEscapesHTMLTags:!0,emoji:!0,splitAdjacentBlockquotes:!0},original:{noHeaderId:!0,ghCodeBlocks:!1},ghost:{omitExtraWLInCodeBlocks:!0,parseImgDimensions:!0,simplifiedAutoLink:!0,excludeTrailingPunctuationFromURLs:!0,literalMidWordUnderscores:!0,strikethrough:!0,tables:!0,tablesHeaderId:!0,ghCodeBlocks:!0,tasklists:!0,smoothLivePreview:!0,simpleLineBreaks:!0,requireSpaceBeforeHeadingText:!0,ghMentions:!1,encodeEmails:!0},vanilla:e(!0),allOn:function(){"use strict"
+var t=e(!0),n={}
+for(var r in t)t.hasOwnProperty(r)&&(n[r]=!0)
+return n}()}
+r.helper={},r.extensions={},r.setOption=function(e,t){"use strict"
+return s[e]=t,this},r.getOption=function(e){"use strict"
+return s[e]},r.getOptions=function(){"use strict"
+return s},r.resetOptions=function(){"use strict"
+s=e(!0)},r.setFlavor=function(e){"use strict"
+if(!u.hasOwnProperty(e))throw Error(e+" flavor was not found")
+r.resetOptions()
+var t=u[e]
+a=e
+for(var n in t)t.hasOwnProperty(n)&&(s[n]=t[n])},r.getFlavor=function(){"use strict"
+return a},r.getFlavorOptions=function(e){"use strict"
+if(u.hasOwnProperty(e))return u[e]},r.getDefaultOptions=function(t){"use strict"
+return e(t)},r.subParser=function(e,t){"use strict"
+if(r.helper.isString(e)){if(void 0===t){if(i.hasOwnProperty(e))return i[e]
+throw Error("SubParser named "+e+" not registered!")}i[e]=t}},r.extension=function(e,n){"use strict"
+if(!r.helper.isString(e))throw Error("Extension 'name' must be a string")
+if(e=r.helper.stdExtName(e),r.helper.isUndefined(n)){if(!o.hasOwnProperty(e))throw Error("Extension named "+e+" is not registered!")
+return o[e]}"function"==typeof n&&(n=n()),r.helper.isArray(n)||(n=[n])
+var i=t(n,e)
+if(!i.valid)throw Error(i.error)
+o[e]=n},r.getAllExtensions=function(){"use strict"
+return o},r.removeExtension=function(e){"use strict"
+delete o[e]},r.resetExtensions=function(){"use strict"
+o={}},r.validateExtension=function(e){"use strict"
+var n=t(e,null)
+return!!n.valid||(console.warn(n.error),!1)},r.hasOwnProperty("helper")||(r.helper={}),r.helper.isString=function(e){"use strict"
+return"string"==typeof e||e instanceof String},r.helper.isFunction=function(e){"use strict"
+return e&&"[object Function]"==={}.toString.call(e)},r.helper.isArray=function(e){"use strict"
+return Array.isArray(e)},r.helper.isUndefined=function(e){"use strict"
+return void 0===e},r.helper.forEach=function(e,t){"use strict"
+if(r.helper.isUndefined(e))throw new Error("obj param is required")
+if(r.helper.isUndefined(t))throw new Error("callback param is required")
+if(!r.helper.isFunction(t))throw new Error("callback param must be a function/closure")
+if("function"==typeof e.forEach)e.forEach(t)
+else if(r.helper.isArray(e))for(var n=0;n<e.length;n++)t(e[n],n,e)
+else{if("object"!=typeof e)throw new Error("obj does not seem to be an array or an iterable object")
+for(var i in e)e.hasOwnProperty(i)&&t(e[i],i,e)}},r.helper.stdExtName=function(e){"use strict"
+return e.replace(/[_?*+\/\\.^-]/g,"").replace(/\s/g,"").toLowerCase()},r.helper.escapeCharactersCallback=n,r.helper.escapeCharacters=function(e,t,r){"use strict"
+var i="(["+t.replace(/([\[\]\\])/g,"\\$1")+"])"
+r&&(i="\\\\"+i)
+var o=new RegExp(i,"g")
+return e=e.replace(o,n)}
+var c=function(e,t,n,r){"use strict"
+var i,o,s,a,u,c=r||"",l=c.indexOf("g")>-1,h=new RegExp(t+"|"+n,"g"+c.replace(/g/g,"")),d=new RegExp(t,c.replace(/g/g,"")),p=[]
+do{for(i=0;s=h.exec(e);)if(d.test(s[0]))i++||(a=(o=h.lastIndex)-s[0].length)
+else if(i&&!--i){u=s.index+s[0].length
+var f={left:{start:a,end:o},match:{start:o,end:s.index},right:{start:s.index,end:u},wholeMatch:{start:a,end:u}}
+if(p.push(f),!l)return p}}while(i&&(h.lastIndex=o))
+return p}
+r.helper.matchRecursiveRegExp=function(e,t,n,r){"use strict"
+for(var i=c(e,t,n,r),o=[],s=0;s<i.length;++s)o.push([e.slice(i[s].wholeMatch.start,i[s].wholeMatch.end),e.slice(i[s].match.start,i[s].match.end),e.slice(i[s].left.start,i[s].left.end),e.slice(i[s].right.start,i[s].right.end)])
+return o},r.helper.replaceRecursiveRegExp=function(e,t,n,i,o){"use strict"
+if(!r.helper.isFunction(t)){var s=t
+t=function(){return s}}var a=c(e,n,i,o),u=e,l=a.length
+if(l>0){var h=[]
+0!==a[0].wholeMatch.start&&h.push(e.slice(0,a[0].wholeMatch.start))
+for(var d=0;d<l;++d)h.push(t(e.slice(a[d].wholeMatch.start,a[d].wholeMatch.end),e.slice(a[d].match.start,a[d].match.end),e.slice(a[d].left.start,a[d].left.end),e.slice(a[d].right.start,a[d].right.end))),d<l-1&&h.push(e.slice(a[d].wholeMatch.end,a[d+1].wholeMatch.start))
+a[l-1].wholeMatch.end<e.length&&h.push(e.slice(a[l-1].wholeMatch.end)),u=h.join("")}return u},r.helper.regexIndexOf=function(e,t,n){"use strict"
+if(!r.helper.isString(e))throw"InvalidArgumentError: first parameter of showdown.helper.regexIndexOf function must be a string"
+if(t instanceof RegExp==0)throw"InvalidArgumentError: second parameter of showdown.helper.regexIndexOf function must be an instance of RegExp"
+var i=e.substring(n||0).search(t)
+return i>=0?i+(n||0):i},r.helper.splitAtIndex=function(e,t){"use strict"
+if(!r.helper.isString(e))throw"InvalidArgumentError: first parameter of showdown.helper.regexIndexOf function must be a string"
+return[e.substring(0,t),e.substring(t)]},r.helper.encodeEmailAddress=function(e){"use strict"
+var t=[function(e){return"&#"+e.charCodeAt(0)+";"},function(e){return"&#x"+e.charCodeAt(0).toString(16)+";"},function(e){return e}]
+return e=e.replace(/./g,function(e){if("@"===e)e=t[Math.floor(2*Math.random())](e)
+else{var n=Math.random()
+e=n>.9?t[2](e):n>.45?t[1](e):t[0](e)}return e})},"undefined"==typeof console&&(console={warn:function(e){"use strict"
+alert(e)},log:function(e){"use strict"
+alert(e)},error:function(e){"use strict"
+throw e}}),r.helper.regexes={asteriskDashAndColon:/([*_:~])/g},r.helper.emojis={"+1":"👍","-1":"👎",100:"💯",1234:"🔢","1st_place_medal":"🥇","2nd_place_medal":"🥈","3rd_place_medal":"🥉","8ball":"🎱",a:"🅰️",ab:"🆎",abc:"🔤",abcd:"🔡",accept:"🉑",aerial_tramway:"🚡",airplane:"✈️",alarm_clock:"⏰",alembic:"⚗️",alien:"👽",ambulance:"🚑",amphora:"🏺",anchor:"⚓️",angel:"👼",anger:"💢",angry:"😠",anguished:"😧",ant:"🐜",apple:"🍎",aquarius:"♒️",aries:"♈️",arrow_backward:"◀️",arrow_double_down:"⏬",arrow_double_up:"⏫",arrow_down:"⬇️",arrow_down_small:"🔽",arrow_forward:"▶️",arrow_heading_down:"⤵️",arrow_heading_up:"⤴️",arrow_left:"⬅️",arrow_lower_left:"↙️",arrow_lower_right:"↘️",arrow_right:"➡️",arrow_right_hook:"↪️",arrow_up:"⬆️",arrow_up_down:"↕️",arrow_up_small:"🔼",arrow_upper_left:"↖️",arrow_upper_right:"↗️",arrows_clockwise:"🔃",arrows_counterclockwise:"🔄",art:"🎨",articulated_lorry:"🚛",artificial_satellite:"🛰",astonished:"😲",athletic_shoe:"👟",atm:"🏧",atom_symbol:"⚛️",avocado:"🥑",b:"🅱️",baby:"👶",baby_bottle:"🍼",baby_chick:"🐤",baby_symbol:"🚼",back:"🔙",bacon:"🥓",badminton:"🏸",baggage_claim:"🛄",baguette_bread:"🥖",balance_scale:"⚖️",balloon:"🎈",ballot_box:"🗳",ballot_box_with_check:"☑️",bamboo:"🎍",banana:"🍌",bangbang:"‼️",bank:"🏦",bar_chart:"📊",barber:"💈",baseball:"⚾️",basketball:"🏀",basketball_man:"⛹️",basketball_woman:"⛹️&zwj;♀️",bat:"🦇",bath:"🛀",bathtub:"🛁",battery:"🔋",beach_umbrella:"🏖",bear:"🐻",bed:"🛏",bee:"🐝",beer:"🍺",beers:"🍻",beetle:"🐞",beginner:"🔰",bell:"🔔",bellhop_bell:"🛎",bento:"🍱",biking_man:"🚴",bike:"🚲",biking_woman:"🚴&zwj;♀️",bikini:"👙",biohazard:"☣️",bird:"🐦",birthday:"🎂",black_circle:"⚫️",black_flag:"🏴",black_heart:"🖤",black_joker:"🃏",black_large_square:"⬛️",black_medium_small_square:"◾️",black_medium_square:"◼️",black_nib:"✒️",black_small_square:"▪️",black_square_button:"🔲",blonde_man:"👱",blonde_woman:"👱&zwj;♀️",blossom:"🌼",blowfish:"🐡",blue_book:"📘",blue_car:"🚙",blue_heart:"💙",blush:"😊",boar:"🐗",boat:"⛵️",bomb:"💣",book:"📖",bookmark:"🔖",bookmark_tabs:"📑",books:"📚",boom:"💥",boot:"👢",bouquet:"💐",bowing_man:"🙇",bow_and_arrow:"🏹",bowing_woman:"🙇&zwj;♀️",bowling:"🎳",boxing_glove:"🥊",boy:"👦",bread:"🍞",bride_with_veil:"👰",bridge_at_night:"🌉",briefcase:"💼",broken_heart:"💔",bug:"🐛",building_construction:"🏗",bulb:"💡",bullettrain_front:"🚅",bullettrain_side:"🚄",burrito:"🌯",bus:"🚌",business_suit_levitating:"🕴",busstop:"🚏",bust_in_silhouette:"👤",busts_in_silhouette:"👥",butterfly:"🦋",cactus:"🌵",cake:"🍰",calendar:"📆",call_me_hand:"🤙",calling:"📲",camel:"🐫",camera:"📷",camera_flash:"📸",camping:"🏕",cancer:"♋️",candle:"🕯",candy:"🍬",canoe:"🛶",capital_abcd:"🔠",capricorn:"♑️",car:"🚗",card_file_box:"🗃",card_index:"📇",card_index_dividers:"🗂",carousel_horse:"🎠",carrot:"🥕",cat:"🐱",cat2:"🐈",cd:"💿",chains:"⛓",champagne:"🍾",chart:"💹",chart_with_downwards_trend:"📉",chart_with_upwards_trend:"📈",checkered_flag:"🏁",cheese:"🧀",cherries:"🍒",cherry_blossom:"🌸",chestnut:"🌰",chicken:"🐔",children_crossing:"🚸",chipmunk:"🐿",chocolate_bar:"🍫",christmas_tree:"🎄",church:"⛪️",cinema:"🎦",circus_tent:"🎪",city_sunrise:"🌇",city_sunset:"🌆",cityscape:"🏙",cl:"🆑",clamp:"🗜",clap:"👏",clapper:"🎬",classical_building:"🏛",clinking_glasses:"🥂",clipboard:"📋",clock1:"🕐",clock10:"🕙",clock1030:"🕥",clock11:"🕚",clock1130:"🕦",clock12:"🕛",clock1230:"🕧",clock130:"🕜",clock2:"🕑",clock230:"🕝",clock3:"🕒",clock330:"🕞",clock4:"🕓",clock430:"🕟",clock5:"🕔",clock530:"🕠",clock6:"🕕",clock630:"🕡",clock7:"🕖",clock730:"🕢",clock8:"🕗",clock830:"🕣",clock9:"🕘",clock930:"🕤",closed_book:"📕",closed_lock_with_key:"🔐",closed_umbrella:"🌂",cloud:"☁️",cloud_with_lightning:"🌩",cloud_with_lightning_and_rain:"⛈",cloud_with_rain:"🌧",cloud_with_snow:"🌨",clown_face:"🤡",clubs:"♣️",cocktail:"🍸",coffee:"☕️",coffin:"⚰️",cold_sweat:"😰",comet:"☄️",computer:"💻",computer_mouse:"🖱",confetti_ball:"🎊",confounded:"😖",confused:"😕",congratulations:"㊗️",construction:"🚧",construction_worker_man:"👷",construction_worker_woman:"👷&zwj;♀️",control_knobs:"🎛",convenience_store:"🏪",cookie:"🍪",cool:"🆒",policeman:"👮",copyright:"©️",corn:"🌽",couch_and_lamp:"🛋",couple:"👫",couple_with_heart_woman_man:"💑",couple_with_heart_man_man:"👨&zwj;❤️&zwj;👨",couple_with_heart_woman_woman:"👩&zwj;❤️&zwj;👩",couplekiss_man_man:"👨&zwj;❤️&zwj;💋&zwj;👨",couplekiss_man_woman:"💏",couplekiss_woman_woman:"👩&zwj;❤️&zwj;💋&zwj;👩",cow:"🐮",cow2:"🐄",cowboy_hat_face:"🤠",crab:"🦀",crayon:"🖍",credit_card:"💳",crescent_moon:"🌙",cricket:"🏏",crocodile:"🐊",croissant:"🥐",crossed_fingers:"🤞",crossed_flags:"🎌",crossed_swords:"⚔️",crown:"👑",cry:"😢",crying_cat_face:"😿",crystal_ball:"🔮",cucumber:"🥒",cupid:"💘",curly_loop:"➰",currency_exchange:"💱",curry:"🍛",custard:"🍮",customs:"🛃",cyclone:"🌀",dagger:"🗡",dancer:"💃",dancing_women:"👯",dancing_men:"👯&zwj;♂️",dango:"🍡",dark_sunglasses:"🕶",dart:"🎯",dash:"💨",date:"📅",deciduous_tree:"🌳",deer:"🦌",department_store:"🏬",derelict_house:"🏚",desert:"🏜",desert_island:"🏝",desktop_computer:"🖥",male_detective:"🕵️",diamond_shape_with_a_dot_inside:"💠",diamonds:"♦️",disappointed:"😞",disappointed_relieved:"😥",dizzy:"💫",dizzy_face:"😵",do_not_litter:"🚯",dog:"🐶",dog2:"🐕",dollar:"💵",dolls:"🎎",dolphin:"🐬",door:"🚪",doughnut:"🍩",dove:"🕊",dragon:"🐉",dragon_face:"🐲",dress:"👗",dromedary_camel:"🐪",drooling_face:"🤤",droplet:"💧",drum:"🥁",duck:"🦆",dvd:"📀","e-mail":"📧",eagle:"🦅",ear:"👂",ear_of_rice:"🌾",earth_africa:"🌍",earth_americas:"🌎",earth_asia:"🌏",egg:"🥚",eggplant:"🍆",eight_pointed_black_star:"✴️",eight_spoked_asterisk:"✳️",electric_plug:"🔌",elephant:"🐘",email:"✉️",end:"🔚",envelope_with_arrow:"📩",euro:"💶",european_castle:"🏰",european_post_office:"🏤",evergreen_tree:"🌲",exclamation:"❗️",expressionless:"😑",eye:"👁",eye_speech_bubble:"👁&zwj;🗨",eyeglasses:"👓",eyes:"👀",face_with_head_bandage:"🤕",face_with_thermometer:"🤒",fist_oncoming:"👊",factory:"🏭",fallen_leaf:"🍂",family_man_woman_boy:"👪",family_man_boy:"👨&zwj;👦",family_man_boy_boy:"👨&zwj;👦&zwj;👦",family_man_girl:"👨&zwj;👧",family_man_girl_boy:"👨&zwj;👧&zwj;👦",family_man_girl_girl:"👨&zwj;👧&zwj;👧",family_man_man_boy:"👨&zwj;👨&zwj;👦",family_man_man_boy_boy:"👨&zwj;👨&zwj;👦&zwj;👦",family_man_man_girl:"👨&zwj;👨&zwj;👧",family_man_man_girl_boy:"👨&zwj;👨&zwj;👧&zwj;👦",family_man_man_girl_girl:"👨&zwj;👨&zwj;👧&zwj;👧",family_man_woman_boy_boy:"👨&zwj;👩&zwj;👦&zwj;👦",family_man_woman_girl:"👨&zwj;👩&zwj;👧",family_man_woman_girl_boy:"👨&zwj;👩&zwj;👧&zwj;👦",family_man_woman_girl_girl:"👨&zwj;👩&zwj;👧&zwj;👧",family_woman_boy:"👩&zwj;👦",family_woman_boy_boy:"👩&zwj;👦&zwj;👦",family_woman_girl:"👩&zwj;👧",family_woman_girl_boy:"👩&zwj;👧&zwj;👦",family_woman_girl_girl:"👩&zwj;👧&zwj;👧",family_woman_woman_boy:"👩&zwj;👩&zwj;👦",family_woman_woman_boy_boy:"👩&zwj;👩&zwj;👦&zwj;👦",family_woman_woman_girl:"👩&zwj;👩&zwj;👧",family_woman_woman_girl_boy:"👩&zwj;👩&zwj;👧&zwj;👦",family_woman_woman_girl_girl:"👩&zwj;👩&zwj;👧&zwj;👧",fast_forward:"⏩",fax:"📠",fearful:"😨",feet:"🐾",female_detective:"🕵️&zwj;♀️",ferris_wheel:"🎡",ferry:"⛴",field_hockey:"🏑",file_cabinet:"🗄",file_folder:"📁",film_projector:"📽",film_strip:"🎞",fire:"🔥",fire_engine:"🚒",fireworks:"🎆",first_quarter_moon:"🌓",first_quarter_moon_with_face:"🌛",fish:"🐟",fish_cake:"🍥",fishing_pole_and_fish:"🎣",fist_raised:"✊",fist_left:"🤛",fist_right:"🤜",flags:"🎏",flashlight:"🔦",fleur_de_lis:"⚜️",flight_arrival:"🛬",flight_departure:"🛫",floppy_disk:"💾",flower_playing_cards:"🎴",flushed:"😳",fog:"🌫",foggy:"🌁",football:"🏈",footprints:"👣",fork_and_knife:"🍴",fountain:"⛲️",fountain_pen:"🖋",four_leaf_clover:"🍀",fox_face:"🦊",framed_picture:"🖼",free:"🆓",fried_egg:"🍳",fried_shrimp:"🍤",fries:"🍟",frog:"🐸",frowning:"😦",frowning_face:"☹️",frowning_man:"🙍&zwj;♂️",frowning_woman:"🙍",middle_finger:"🖕",fuelpump:"⛽️",full_moon:"🌕",full_moon_with_face:"🌝",funeral_urn:"⚱️",game_die:"🎲",gear:"⚙️",gem:"💎",gemini:"♊️",ghost:"👻",gift:"🎁",gift_heart:"💝",girl:"👧",globe_with_meridians:"🌐",goal_net:"🥅",goat:"🐐",golf:"⛳️",golfing_man:"🏌️",golfing_woman:"🏌️&zwj;♀️",gorilla:"🦍",grapes:"🍇",green_apple:"🍏",green_book:"📗",green_heart:"💚",green_salad:"🥗",grey_exclamation:"❕",grey_question:"❔",grimacing:"😬",grin:"😁",grinning:"😀",guardsman:"💂",guardswoman:"💂&zwj;♀️",guitar:"🎸",gun:"🔫",haircut_woman:"💇",haircut_man:"💇&zwj;♂️",hamburger:"🍔",hammer:"🔨",hammer_and_pick:"⚒",hammer_and_wrench:"🛠",hamster:"🐹",hand:"✋",handbag:"👜",handshake:"🤝",hankey:"💩",hatched_chick:"🐥",hatching_chick:"🐣",headphones:"🎧",hear_no_evil:"🙉",heart:"❤️",heart_decoration:"💟",heart_eyes:"😍",heart_eyes_cat:"😻",heartbeat:"💓",heartpulse:"💗",hearts:"♥️",heavy_check_mark:"✔️",heavy_division_sign:"➗",heavy_dollar_sign:"💲",heavy_heart_exclamation:"❣️",heavy_minus_sign:"➖",heavy_multiplication_x:"✖️",heavy_plus_sign:"➕",helicopter:"🚁",herb:"🌿",hibiscus:"🌺",high_brightness:"🔆",high_heel:"👠",hocho:"🔪",hole:"🕳",honey_pot:"🍯",horse:"🐴",horse_racing:"🏇",hospital:"🏥",hot_pepper:"🌶",hotdog:"🌭",hotel:"🏨",hotsprings:"♨️",hourglass:"⌛️",hourglass_flowing_sand:"⏳",house:"🏠",house_with_garden:"🏡",houses:"🏘",hugs:"🤗",hushed:"😯",ice_cream:"🍨",ice_hockey:"🏒",ice_skate:"⛸",icecream:"🍦",id:"🆔",ideograph_advantage:"🉐",imp:"👿",inbox_tray:"📥",incoming_envelope:"📨",tipping_hand_woman:"💁",information_source:"ℹ️",innocent:"😇",interrobang:"⁉️",iphone:"📱",izakaya_lantern:"🏮",jack_o_lantern:"🎃",japan:"🗾",japanese_castle:"🏯",japanese_goblin:"👺",japanese_ogre:"👹",jeans:"👖",joy:"😂",joy_cat:"😹",joystick:"🕹",kaaba:"🕋",key:"🔑",keyboard:"⌨️",keycap_ten:"🔟",kick_scooter:"🛴",kimono:"👘",kiss:"💋",kissing:"😗",kissing_cat:"😽",kissing_closed_eyes:"😚",kissing_heart:"😘",kissing_smiling_eyes:"😙",kiwi_fruit:"🥝",koala:"🐨",koko:"🈁",label:"🏷",large_blue_circle:"🔵",large_blue_diamond:"🔷",large_orange_diamond:"🔶",last_quarter_moon:"🌗",last_quarter_moon_with_face:"🌜",latin_cross:"✝️",laughing:"😆",leaves:"🍃",ledger:"📒",left_luggage:"🛅",left_right_arrow:"↔️",leftwards_arrow_with_hook:"↩️",lemon:"🍋",leo:"♌️",leopard:"🐆",level_slider:"🎚",libra:"♎️",light_rail:"🚈",link:"🔗",lion:"🦁",lips:"👄",lipstick:"💄",lizard:"🦎",lock:"🔒",lock_with_ink_pen:"🔏",lollipop:"🍭",loop:"➿",loud_sound:"🔊",loudspeaker:"📢",love_hotel:"🏩",love_letter:"💌",low_brightness:"🔅",lying_face:"🤥",m:"Ⓜ️",mag:"🔍",mag_right:"🔎",mahjong:"🀄️",mailbox:"📫",mailbox_closed:"📪",mailbox_with_mail:"📬",mailbox_with_no_mail:"📭",man:"👨",man_artist:"👨&zwj;🎨",man_astronaut:"👨&zwj;🚀",man_cartwheeling:"🤸&zwj;♂️",man_cook:"👨&zwj;🍳",man_dancing:"🕺",man_facepalming:"🤦&zwj;♂️",man_factory_worker:"👨&zwj;🏭",man_farmer:"👨&zwj;🌾",man_firefighter:"👨&zwj;🚒",man_health_worker:"👨&zwj;⚕️",man_in_tuxedo:"🤵",man_judge:"👨&zwj;⚖️",man_juggling:"🤹&zwj;♂️",man_mechanic:"👨&zwj;🔧",man_office_worker:"👨&zwj;💼",man_pilot:"👨&zwj;✈️",man_playing_handball:"🤾&zwj;♂️",man_playing_water_polo:"🤽&zwj;♂️",man_scientist:"👨&zwj;🔬",man_shrugging:"🤷&zwj;♂️",man_singer:"👨&zwj;🎤",man_student:"👨&zwj;🎓",man_teacher:"👨&zwj;🏫",man_technologist:"👨&zwj;💻",man_with_gua_pi_mao:"👲",man_with_turban:"👳",tangerine:"🍊",mans_shoe:"👞",mantelpiece_clock:"🕰",maple_leaf:"🍁",martial_arts_uniform:"🥋",mask:"😷",massage_woman:"💆",massage_man:"💆&zwj;♂️",meat_on_bone:"🍖",medal_military:"🎖",medal_sports:"🏅",mega:"📣",melon:"🍈",memo:"📝",men_wrestling:"🤼&zwj;♂️",menorah:"🕎",mens:"🚹",metal:"🤘",metro:"🚇",microphone:"🎤",microscope:"🔬",milk_glass:"🥛",milky_way:"🌌",minibus:"🚐",minidisc:"💽",mobile_phone_off:"📴",money_mouth_face:"🤑",money_with_wings:"💸",moneybag:"💰",monkey:"🐒",monkey_face:"🐵",monorail:"🚝",moon:"🌔",mortar_board:"🎓",mosque:"🕌",motor_boat:"🛥",motor_scooter:"🛵",motorcycle:"🏍",motorway:"🛣",mount_fuji:"🗻",mountain:"⛰",mountain_biking_man:"🚵",mountain_biking_woman:"🚵&zwj;♀️",mountain_cableway:"🚠",mountain_railway:"🚞",mountain_snow:"🏔",mouse:"🐭",mouse2:"🐁",movie_camera:"🎥",moyai:"🗿",mrs_claus:"🤶",muscle:"💪",mushroom:"🍄",musical_keyboard:"🎹",musical_note:"🎵",musical_score:"🎼",mute:"🔇",nail_care:"💅",name_badge:"📛",national_park:"🏞",nauseated_face:"🤢",necktie:"👔",negative_squared_cross_mark:"❎",nerd_face:"🤓",neutral_face:"😐",new:"🆕",new_moon:"🌑",new_moon_with_face:"🌚",newspaper:"📰",newspaper_roll:"🗞",next_track_button:"⏭",ng:"🆖",no_good_man:"🙅&zwj;♂️",no_good_woman:"🙅",night_with_stars:"🌃",no_bell:"🔕",no_bicycles:"🚳",no_entry:"⛔️",no_entry_sign:"🚫",no_mobile_phones:"📵",no_mouth:"😶",no_pedestrians:"🚷",no_smoking:"🚭","non-potable_water":"🚱",nose:"👃",notebook:"📓",notebook_with_decorative_cover:"📔",notes:"🎶",nut_and_bolt:"🔩",o:"⭕️",o2:"🅾️",ocean:"🌊",octopus:"🐙",oden:"🍢",office:"🏢",oil_drum:"🛢",ok:"🆗",ok_hand:"👌",ok_man:"🙆&zwj;♂️",ok_woman:"🙆",old_key:"🗝",older_man:"👴",older_woman:"👵",om:"🕉",on:"🔛",oncoming_automobile:"🚘",oncoming_bus:"🚍",oncoming_police_car:"🚔",oncoming_taxi:"🚖",open_file_folder:"📂",open_hands:"👐",open_mouth:"😮",open_umbrella:"☂️",ophiuchus:"⛎",orange_book:"📙",orthodox_cross:"☦️",outbox_tray:"📤",owl:"🦉",ox:"🐂",package:"📦",page_facing_up:"📄",page_with_curl:"📃",pager:"📟",paintbrush:"🖌",palm_tree:"🌴",pancakes:"🥞",panda_face:"🐼",paperclip:"📎",paperclips:"🖇",parasol_on_ground:"⛱",parking:"🅿️",part_alternation_mark:"〽️",partly_sunny:"⛅️",passenger_ship:"🛳",passport_control:"🛂",pause_button:"⏸",peace_symbol:"☮️",peach:"🍑",peanuts:"🥜",pear:"🍐",pen:"🖊",pencil2:"✏️",penguin:"🐧",pensive:"😔",performing_arts:"🎭",persevere:"😣",person_fencing:"🤺",pouting_woman:"🙎",phone:"☎️",pick:"⛏",pig:"🐷",pig2:"🐖",pig_nose:"🐽",pill:"💊",pineapple:"🍍",ping_pong:"🏓",pisces:"♓️",pizza:"🍕",place_of_worship:"🛐",plate_with_cutlery:"🍽",play_or_pause_button:"⏯",point_down:"👇",point_left:"👈",point_right:"👉",point_up:"☝️",point_up_2:"👆",police_car:"🚓",policewoman:"👮&zwj;♀️",poodle:"🐩",popcorn:"🍿",post_office:"🏣",postal_horn:"📯",postbox:"📮",potable_water:"🚰",potato:"🥔",pouch:"👝",poultry_leg:"🍗",pound:"💷",rage:"😡",pouting_cat:"😾",pouting_man:"🙎&zwj;♂️",pray:"🙏",prayer_beads:"📿",pregnant_woman:"🤰",previous_track_button:"⏮",prince:"🤴",princess:"👸",printer:"🖨",purple_heart:"💜",purse:"👛",pushpin:"📌",put_litter_in_its_place:"🚮",question:"❓",rabbit:"🐰",rabbit2:"🐇",racehorse:"🐎",racing_car:"🏎",radio:"📻",radio_button:"🔘",radioactive:"☢️",railway_car:"🚃",railway_track:"🛤",rainbow:"🌈",rainbow_flag:"🏳️&zwj;🌈",raised_back_of_hand:"🤚",raised_hand_with_fingers_splayed:"🖐",raised_hands:"🙌",raising_hand_woman:"🙋",raising_hand_man:"🙋&zwj;♂️",ram:"🐏",ramen:"🍜",rat:"🐀",record_button:"⏺",recycle:"♻️",red_circle:"🔴",registered:"®️",relaxed:"☺️",relieved:"😌",reminder_ribbon:"🎗",repeat:"🔁",repeat_one:"🔂",rescue_worker_helmet:"⛑",restroom:"🚻",revolving_hearts:"💞",rewind:"⏪",rhinoceros:"🦏",ribbon:"🎀",rice:"🍚",rice_ball:"🍙",rice_cracker:"🍘",rice_scene:"🎑",right_anger_bubble:"🗯",ring:"💍",robot:"🤖",rocket:"🚀",rofl:"🤣",roll_eyes:"🙄",roller_coaster:"🎢",rooster:"🐓",rose:"🌹",rosette:"🏵",rotating_light:"🚨",round_pushpin:"📍",rowing_man:"🚣",rowing_woman:"🚣&zwj;♀️",rugby_football:"🏉",running_man:"🏃",running_shirt_with_sash:"🎽",running_woman:"🏃&zwj;♀️",sa:"🈂️",sagittarius:"♐️",sake:"🍶",sandal:"👡",santa:"🎅",satellite:"📡",saxophone:"🎷",school:"🏫",school_satchel:"🎒",scissors:"✂️",scorpion:"🦂",scorpius:"♏️",scream:"😱",scream_cat:"🙀",scroll:"📜",seat:"💺",secret:"㊙️",see_no_evil:"🙈",seedling:"🌱",selfie:"🤳",shallow_pan_of_food:"🥘",shamrock:"☘️",shark:"🦈",shaved_ice:"🍧",sheep:"🐑",shell:"🐚",shield:"🛡",shinto_shrine:"⛩",ship:"🚢",shirt:"👕",shopping:"🛍",shopping_cart:"🛒",shower:"🚿",shrimp:"🦐",signal_strength:"📶",six_pointed_star:"🔯",ski:"🎿",skier:"⛷",skull:"💀",skull_and_crossbones:"☠️",sleeping:"😴",sleeping_bed:"🛌",sleepy:"😪",slightly_frowning_face:"🙁",slightly_smiling_face:"🙂",slot_machine:"🎰",small_airplane:"🛩",small_blue_diamond:"🔹",small_orange_diamond:"🔸",small_red_triangle:"🔺",small_red_triangle_down:"🔻",smile:"😄",smile_cat:"😸",smiley:"😃",smiley_cat:"😺",smiling_imp:"😈",smirk:"😏",smirk_cat:"😼",smoking:"🚬",snail:"🐌",snake:"🐍",sneezing_face:"🤧",snowboarder:"🏂",snowflake:"❄️",snowman:"⛄️",snowman_with_snow:"☃️",sob:"😭",soccer:"⚽️",soon:"🔜",sos:"🆘",sound:"🔉",space_invader:"👾",spades:"♠️",spaghetti:"🍝",sparkle:"❇️",sparkler:"🎇",sparkles:"✨",sparkling_heart:"💖",speak_no_evil:"🙊",speaker:"🔈",speaking_head:"🗣",speech_balloon:"💬",speedboat:"🚤",spider:"🕷",spider_web:"🕸",spiral_calendar:"🗓",spiral_notepad:"🗒",spoon:"🥄",squid:"🦑",stadium:"🏟",star:"⭐️",star2:"🌟",star_and_crescent:"☪️",star_of_david:"✡️",stars:"🌠",station:"🚉",statue_of_liberty:"🗽",steam_locomotive:"🚂",stew:"🍲",stop_button:"⏹",stop_sign:"🛑",stopwatch:"⏱",straight_ruler:"📏",strawberry:"🍓",stuck_out_tongue:"😛",stuck_out_tongue_closed_eyes:"😝",stuck_out_tongue_winking_eye:"😜",studio_microphone:"🎙",stuffed_flatbread:"🥙",sun_behind_large_cloud:"🌥",sun_behind_rain_cloud:"🌦",sun_behind_small_cloud:"🌤",sun_with_face:"🌞",sunflower:"🌻",sunglasses:"😎",sunny:"☀️",sunrise:"🌅",sunrise_over_mountains:"🌄",surfing_man:"🏄",surfing_woman:"🏄&zwj;♀️",sushi:"🍣",suspension_railway:"🚟",sweat:"😓",sweat_drops:"💦",sweat_smile:"😅",sweet_potato:"🍠",swimming_man:"🏊",swimming_woman:"🏊&zwj;♀️",symbols:"🔣",synagogue:"🕍",syringe:"💉",taco:"🌮",tada:"🎉",tanabata_tree:"🎋",taurus:"♉️",taxi:"🚕",tea:"🍵",telephone_receiver:"📞",telescope:"🔭",tennis:"🎾",tent:"⛺️",thermometer:"🌡",thinking:"🤔",thought_balloon:"💭",ticket:"🎫",tickets:"🎟",tiger:"🐯",tiger2:"🐅",timer_clock:"⏲",tipping_hand_man:"💁&zwj;♂️",tired_face:"😫",tm:"™️",toilet:"🚽",tokyo_tower:"🗼",tomato:"🍅",tongue:"👅",top:"🔝",tophat:"🎩",tornado:"🌪",trackball:"🖲",tractor:"🚜",traffic_light:"🚥",train:"🚋",train2:"🚆",tram:"🚊",triangular_flag_on_post:"🚩",triangular_ruler:"📐",trident:"🔱",triumph:"😤",trolleybus:"🚎",trophy:"🏆",tropical_drink:"🍹",tropical_fish:"🐠",truck:"🚚",trumpet:"🎺",tulip:"🌷",tumbler_glass:"🥃",turkey:"🦃",turtle:"🐢",tv:"📺",twisted_rightwards_arrows:"🔀",two_hearts:"💕",two_men_holding_hands:"👬",two_women_holding_hands:"👭",u5272:"🈹",u5408:"🈴",u55b6:"🈺",u6307:"🈯️",u6708:"🈷️",u6709:"🈶",u6e80:"🈵",u7121:"🈚️",u7533:"🈸",u7981:"🈲",u7a7a:"🈳",umbrella:"☔️",unamused:"😒",underage:"🔞",unicorn:"🦄",unlock:"🔓",up:"🆙",upside_down_face:"🙃",v:"✌️",vertical_traffic_light:"🚦",vhs:"📼",vibration_mode:"📳",video_camera:"📹",video_game:"🎮",violin:"🎻",virgo:"♍️",volcano:"🌋",volleyball:"🏐",vs:"🆚",vulcan_salute:"🖖",walking_man:"🚶",walking_woman:"🚶&zwj;♀️",waning_crescent_moon:"🌘",waning_gibbous_moon:"🌖",warning:"⚠️",wastebasket:"🗑",watch:"⌚️",water_buffalo:"🐃",watermelon:"🍉",wave:"👋",wavy_dash:"〰️",waxing_crescent_moon:"🌒",wc:"🚾",weary:"😩",wedding:"💒",weight_lifting_man:"🏋️",weight_lifting_woman:"🏋️&zwj;♀️",whale:"🐳",whale2:"🐋",wheel_of_dharma:"☸️",wheelchair:"♿️",white_check_mark:"✅",white_circle:"⚪️",white_flag:"🏳️",white_flower:"💮",white_large_square:"⬜️",white_medium_small_square:"◽️",white_medium_square:"◻️",white_small_square:"▫️",white_square_button:"🔳",wilted_flower:"🥀",wind_chime:"🎐",wind_face:"🌬",wine_glass:"🍷",wink:"😉",wolf:"🐺",woman:"👩",woman_artist:"👩&zwj;🎨",woman_astronaut:"👩&zwj;🚀",woman_cartwheeling:"🤸&zwj;♀️",woman_cook:"👩&zwj;🍳",woman_facepalming:"🤦&zwj;♀️",woman_factory_worker:"👩&zwj;🏭",woman_farmer:"👩&zwj;🌾",woman_firefighter:"👩&zwj;🚒",woman_health_worker:"👩&zwj;⚕️",woman_judge:"👩&zwj;⚖️",woman_juggling:"🤹&zwj;♀️",woman_mechanic:"👩&zwj;🔧",woman_office_worker:"👩&zwj;💼",woman_pilot:"👩&zwj;✈️",woman_playing_handball:"🤾&zwj;♀️",woman_playing_water_polo:"🤽&zwj;♀️",woman_scientist:"👩&zwj;🔬",woman_shrugging:"🤷&zwj;♀️",woman_singer:"👩&zwj;🎤",woman_student:"👩&zwj;🎓",woman_teacher:"👩&zwj;🏫",woman_technologist:"👩&zwj;💻",woman_with_turban:"👳&zwj;♀️",womans_clothes:"👚",womans_hat:"👒",women_wrestling:"🤼&zwj;♀️",womens:"🚺",world_map:"🗺",worried:"😟",wrench:"🔧",writing_hand:"✍️",x:"❌",yellow_heart:"💛",yen:"💴",yin_yang:"☯️",yum:"😋",zap:"⚡️",zipper_mouth_face:"🤐",zzz:"💤",octocat:'<img width="20" height="20" align="absmiddle" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAOwUlEQVR42uVbCVyO6RbPmn0sw9gZS0aZO4y5GTEUE2ObxjZjrbHEJVy3sWS5pkaWxjLEkCVDSbSgFLdESaWSLIVUSIi4kvb9f895vi/zbbR+yZ339/tbnu99n/ec/3Oe85xznufV0CjDBaAdwZqwnzCJ0FXjHV70/i8J5oQDhCFV8cJdq1atwqxZs+Ds7Iz4+HhqwgXCLELNKlK6G2Ej4e6lS5ewZcsWzJgxA+fOnWNZFqvzxT1v3boF/qcsBg0ahP3796OwsJAFWKYuIqjfPoS9cXFxWL58Obp06SInh5aWFr//jjoJWLlu3TolAorRuXNn7Ny5k4W4Spgj81xrgj5hLmED4RDhlNRygglBhADCSakpWxFMCHoETUJTwrYHDx7A1NT0je9nPHz4kN/fXl0EeI0aNeqtAjB69+4NPz8/FsSdlXvy5An8/f1hZ2cHCwsLGBsbY/To0cJy9PT0MGDAAAwePBhGRkbClNesWYODBw8iODgYOTk53M/d9evXo27duiW++8iRI3z/ZHURENOjR48ShSjGuHHjhHJ16tQp9TOKaNWqlZKpvw1MHluQOpSvk5eXh5YtW5ZbmarAvHnzmIBd6iCgXnZ2Npo1a1atCWAfwY5SHQTUKCoqQocOHao1AebmHBJgi7p8QBDP6epMwKFDvMDAWF0ELLS1ta3WBNy9e5cJMFIXAdvt7e2rNQHDhw9nAv5D+KKylV9y8+bNCi1pVYWZM2cyCfaVTcDdsqzH7xpBQRxcwqyylLdi5/K+KM/Q0dFhAqIri4Bn1T0AUgVpdmhYUeVHnD59+r1TnjF27Fgm4HhFCThoYmLyXhLQoEGD4mRKsyIE3OrZs+d7SQCDCyZcNSqv8k1evXoFTU3NUr+wzUcfYqRBf8yb/C2WzfoBFoTF08fBdMIITDD8CsP1+kL30x7Q6dYZH7drjfZ0f4fWLdG1Q1t81qMLBvTRwejB/TBl1BDMnzQGS2dMxKo5k7Fs9iSY/jAaBvR8Pc26pZaH02quLZSXgO6xsbGlelGnli1wZKcVMqN8gKcRwItrf+K/VB95doXaLwOJIVSzOU/+2Re5kV7IuuyJrIhTyLt6mmztLBBPNZLHoUAy9fE8UvJ8ikxfj8PwJPQErJeYlkquTZs2MQFLykuANgc/Jb2kn3Z3ZMaQUrmxwO1zyAo7gfRAJ6RfOIyMEFdkXj5F8BTK5lzxQv610yi8QcFatI8gQoCIK7x+hojwRnaE5H4JTiEj9Pjr/rJDqcZyn9b4ovu45LYbdWvXeqtsXMHiSlZ5CegRExPz1hd83PYj5POo0QinXyLFg48hnZTOiQ1Dzr1IZEaeQRoJn0HKZIR7lA2kfHrQUerXHTlx4ZL+rnjjFRGRGeYB5MUj2GnbW+XbuJFrp1heXgI6JCYmvvUFN1x3Aek3SWkapRAXMeJFGS8ge2Xfuog0toaykED3Mpk8+shOk+sv68Y50V9WuKewBKt5094o39atW/mRf5WXgIYZGRlo3Lixys4nj6A6Z1YMcqRCpwU4ouDlUyHk/QA/hNttR25Wlvh/ZthJUsil9ATQ/axkYbqEzDgfL0Ts/x35+aLyTES7IY36Q6w/+Q4/tP6wuUoZ9+7dy7ebVmQZjO/atavKzn32rAdeXkd6KCkXdAxZ13yFcLFnvPD73zrDVrsdTs6eggKSuSjjORHkUGoC0i86Iyc6QPQX7eqMnTodYNuzHU4vnosiaitMSUSavwMy6d3IvEUrzViVMrq5uXEX4ytCgL++vr5Sx7Vr1cIDX0dKkQJfj37Rs3jw1sBxkwlwGD4Ax3+ciN1faCHW76xQRFgAOcjSEMBkIe0x8nLzcez7kTg8Rh/uxuOxR/cTJISFSfq7eATpZCk8CAfXLVFJwIULXHnHoIoQYLtw4UKljps2aogXQcQuef/XAiMDKY+S4DhyEFwpDnCj9f+Afl8EbbWRTANaAdihlYoAMn8aZzyNuYODX/eD29TvRH/7v+qN8H27JdOAyWQfQQ74xPafVRLAPox9WUlK6hIGEgx4f00Kg2JcvHhRqeP6FIwknXemyen/2gLIIeC/CYk49M0AuE4xgtu0sThg8AUCN62TEuBdRgJo2Y+Kxh9D/k59SQiwH9QHobt3SAk4KSGA4oWjm1YqyVi8U6Soj4yOrHM/jTAyKVby/PnzIoNi8L+L4eXlpXoFcLcTgc1rAlISkJeXDxeK2A6P1hdTwI6mQPTJE+WbAlnJyE7PhNO3Q3BkrKGYWtxfHMkkmQLO0ilwA7+vXqAkn66urtBLUZ9iHfm30NBQaPAf165dA0d9vP2UlJSEp0+f4vHjx3j06JH4e+rUqUovcNmyGkiNEkLwklXsBG+ecMUOnfbYod1emG5uboFKJ8jPFVD0l0dBUHqoPDHpQeQEb0qc4FUHe3KAbYUT9JgzDbwOFL5MfN0fXkXhJ5PxSvLt2LFD1Ah5u4z1YJ14l4qnBe8v3rhxAzz4PAVG8nLHivIP0dHRiIiIQGRkpEgmrl69ClW1QBMjQ7LDW8hmU+RRI69ckJIkhL7jfRJBm62R+TJVYq6h0jhBRslsivqenT2MF/7OyI70VmkFhWnPJaS6OyPkt43IycqR9EfWlH7JDQUUTuNhCHR7Ke9YcRp/5coVoQPrcvnyZURFRYmBZlLS0kR8MVLD29sbnp6e8PHxQUBAgCgn8YO8E3z79m3BGKeVc+bMkXuBZt06SA12F/F5Go0gR4C8HBalPZMPXKL8lQKhPAqF+f97KXFyNx6HQsoPsshJ/kmAp2TKkJLISpXvjyxNhMYcDVLOEO+lPDi8B5mamipkZx1YF9YpJCRErAy+vr5CZ9ZdWABhDGEYYTBhAOFz3g4nfMJelNCbkNCpUye5F034mvxIPi1/FM+zQCw0k5B9O0iEr5kRXkqhMJOVf9NXIHjtT7hmaymSoBzKETimkAuFpaF1dkwI9RcmIYaXv3BJXoGCuyIgk5WpefPmKCgoYK46SmX/RKoL69Sfl0WuFEl1HlmWJXE5z6WmTZvKJxxmxkIQ3AuU5APk6NICj4hRT6eITTEEzqWk55HHPjz3cxJhNF5cxeNT9kj2cRDTQjEkzpDtjyyCic5l5fEA7uSHFEefR5pPsahrb2B9QkICFHeJ51HunkdLIg0VLY0BFKdLwllVHp4dHyvst3QuEiiju21vA/+VZkiluIKt4I3RIfWXQ4QgKUxkni47LJWUP3PmjHo2RxVI+CebmKJP6EiFDVurxUgmExe5PHlnPAkn8w4QqW62NCVmYopozid5H0CI9RKE21ggJeAYEeMnfitOnRn5XCfgeJ+VTosWQU8MOc6ZE0cqnUm4fv165SrPBVHCfMI4TowUfmOfsIcdJh92kBWmUcP6GDt8EDZbzIffH5tx3/ewSFjw5LKk0MEFEkZenDBjgew7Yiog5brkt+QrknvJmhIp4Apw/A1bVpjhG/0v5d7Vrl07bNu2TelUSqUoz8uI3Z49OEtBAy+TdP1CqKtwHzvQUxxgTJs2TeX5gdq1a0ObSmCjh+jB+NuvRamL1+3ls77HCip1rTSdJP5eNnMizKndjMLoH42G4bthX+FzHS3UVVEC69evH3799VeKMXJZrlWKclUGAZ5jxoxB02ZNsNlxH74aagBHZyex986HlVTczyGmI58h4CjL2toa48ePFxsUPEotWrQoc0GT0/C2bduiY8eO4ISMcxLeoOFYhS6qm2EpoZG65jmbv+dPSyRZlt5QfVjvtX19AOFNL+aDFNI4m0eFc9Ho5ORkaGtrl5kAVp6DMOk88efEjLe++ZhclZwHTJHEHbs4YOCmLj2645fdvwnTK42zoXtaEHwNDQ3LXdZm5yad3/2r+gQmDsRnIF5KAldX6zdsgG/GG8F44Vzcu3eP2y1K6GPr2rVrK1zbnz59Or/LoaoJCPZ4kCZsjw9GECL79OmDj9q2wb+320C3/5fgPQO6Vrzh+fpcDqxXr16lbHBwgkZXm6okYJr0ECMrX5vraiJ1lArEjrEnzWuOqemiYj9spGd2ee478XkiPsJakmJ83qA05/8qXNurJFLiunXrhpo1a6LxB02wyHIFZpovgOHwYfjZ0hK2lH5u2rwZ5suWYv5ycyUlmjRpgl69eimlrFy3kwuoyOvXr19frm3RokVMwPZ3TYC57E6xVq+e6KzVDSaL/oEp82Zh8IhhWLjGAp/p9oX5ujVKBNjY2MDV1VWuzd3dXaTesm2biUQuZ8u28elSPmKr8a4vdog8GnJpcT1N1KHUuBbt0jSgWuGbzJh3mVhh2TYHBwdxjFa2jVcZnvPVlQBOLXdZWlqW2ZFxNYYVlm07fPgwAgMD5dr4OD5HeHLFFxM+O42DGtXhIkFaMQlcUjIzM0P37t1Ro0YNpZPjPJcVK7SOjo5ybU5OTqIAo0gAh97VlgAZIj4l8Pn4WFaO64ocuXG6zJtDbMqySnC7IgF8uptLVrJtq1evFuWqak+A4j4i4TNpltiJ8LPiNFFFwNGjRyWFyfedAFUny/joekkEuLi4KK0CfykCeFnkiu1flgBeFtl3/D8SsMbKykpOifv37ysRcPz4cVHKUiSA8wwNdR9/VTMBSh9Y8S4Nf2qnSICiBbDzVCRg9uzZTMC+94kAv6FDh8opwRsVHPjItnl4eEDxHNLKlStFXV+2javQ/M1SpZe+1KA4L4G7WDG57fSm/OUbXiqG0ewAFYOeYcN4fwZhvLkp2y4tftrxcltdlf/w+fPn4qNGxTCYU2m6nrRu3VqunT/EoiuZvw6TTZHpyuNNmEaNGsndP3fu3OJAq1N1JOAHDmyKheVtNP4OkE2crULRAW7fvl20EyyLy24a8p+/7WISFixYIMLt4t82bNhQYjXqXREgPq3j74mlX3AmSL8E1eOPIBXnuVT5OsVZpuLnOMeOHeN7vifwiYhYzhC5IpwlOXj1QXWdBmy/XWU/X+UqMZfKBw4cKAobHPlJlZe9h6tOu+7cuSN2dg0MDMSSyZUpmXvaSD+crq/xvl0k9BTCRa7qEPq+5T4t6ffF52WVV+f1P6zyLG30bsU4AAAAAElFTkSuQmCC">',
+showdown:'<img width="20" height="20" align="absmiddle" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAECtaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzA2NyA3OS4xNTc3NDcsIDIwMTUvMDMvMzAtMjM6NDA6NDIgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgICAgICAgICB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNSAoV2luZG93cyk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMTUtMDEtMTVUMjE6MDE6MTlaPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNy0xMC0yNFQxMzozMTozMCswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTctMTAtMjRUMTM6MzE6MzArMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8cGhvdG9zaG9wOklDQ1Byb2ZpbGU+c1JHQiBJRUM2MTk2Ni0yLjE8L3Bob3Rvc2hvcDpJQ0NQcm9maWxlPgogICAgICAgICA8cGhvdG9zaG9wOlRleHRMYXllcnM+CiAgICAgICAgICAgIDxyZGY6QmFnPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHBob3Rvc2hvcDpMYXllck5hbWU+UyAtPC9waG90b3Nob3A6TGF5ZXJOYW1lPgogICAgICAgICAgICAgICAgICA8cGhvdG9zaG9wOkxheWVyVGV4dD5TIC08L3Bob3Rvc2hvcDpMYXllclRleHQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpCYWc+CiAgICAgICAgIDwvcGhvdG9zaG9wOlRleHRMYXllcnM+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6N2NkMzQxNzctOWYyZi0yNDRiLWEyYjQtMzU1MzJkY2Y1MWJiPC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD5hZG9iZTpkb2NpZDpwaG90b3Nob3A6M2E1YzgxYmYtYjhiNy0xMWU3LTk0NDktYTQ2MzdlZjJkNjMzPC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6NjBDNUFFNjVGNjlDRTQxMTk0NUE4NTVFM0JDQTdFRUI8L3htcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkhpc3Rvcnk+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jcmVhdGVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6NjBDNUFFNjVGNjlDRTQxMTk0NUE4NTVFM0JDQTdFRUI8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTUtMDEtMTVUMjE6MDE6MTlaPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6ODZjNjBkMGQtOGY0Yy01ZTRlLWEwMjQtODI4ZWQyNTIwZDc3PC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE3LTEwLTI0VDEzOjMxOjMwKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjdjZDM0MTc3LTlmMmYtMjQ0Yi1hMmI0LTM1NTMyZGNmNTFiYjwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNy0xMC0yNFQxMzozMTozMCswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L3htcE1NOkhpc3Rvcnk+CiAgICAgICAgIDx4bXBNTTpEZXJpdmVkRnJvbSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgIDxzdFJlZjppbnN0YW5jZUlEPnhtcC5paWQ6ODZjNjBkMGQtOGY0Yy01ZTRlLWEwMjQtODI4ZWQyNTIwZDc3PC9zdFJlZjppbnN0YW5jZUlEPgogICAgICAgICAgICA8c3RSZWY6ZG9jdW1lbnRJRD54bXAuZGlkOjYwQzVBRTY1RjY5Q0U0MTE5NDVBODU1RTNCQ0E3RUVCPC9zdFJlZjpkb2N1bWVudElEPgogICAgICAgICAgICA8c3RSZWY6b3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6NjBDNUFFNjVGNjlDRTQxMTk0NUE4NTVFM0JDQTdFRUI8L3N0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgPC94bXBNTTpEZXJpdmVkRnJvbT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOlhSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpZUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WVJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDxleGlmOkNvbG9yU3BhY2U+MTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NjQ8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+NjQ8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/Pse7bzcAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAA1JJREFUeNrsm1+OmlAUhz+aeS9dwZggJn1AnRUMO6jpBgZXULuC2hWUWUGZBTSxKyiuoA4mfUBMnB04K5g+9DihRBHlyh/lJLwIXLgf99xzzu9etZeXFy7Z3nDh1gBoAFy4XeVtQNO0zNcapmUDfUBPnFoBfhQGq6IBaHmjwD4Ahmk5wAD4kKG5J8CNwsAFaHe6DvA9cc0wCgOv8gDka3vA9RHNPgo0D7hNnJtGYWBXxgV2dH4MfMnRRA+Y1WIO2NJ5F/ikoKm3tYsChmkNFHW+fmHQMC1dfHaXPQP3wM1yMdc2B/AOGALTWobBmI1Shu0UGCwX83XyRBQGawHntTtdG5gUNfxVu4CTNqNv6/wWGL7kCc+1AmCYVisl3I2ydD4GYZUCs7IjoLXrxHIx9w9tLAqDCfBwDrXAY457x+cAoCfuwRGjYFUnAGk+PsjR7s8Dn1VeLWCYVlpDw+VivjVHSHt+u9PVJbzGzZXQWTkAkz0V31fATUaEsjVJlQBs4FeGcteLgzgbAALBA+4y3voAeJL8nA0AHfClnM1qm1HhnYUidCSE+KzvSSJUTwAxCOMcpfETMFYpfRUKIAbCFhC3OTJJJwqDWS0BxED0JZ4Pjix1P2+E0loCSMBwyK4S/xc1ojBwag8gMU84cvTKGgmlAYhngu1O9xAXuVE5J1QCQCz3bwHuHvdQui5QKQAxEO6eEKpsFCgTRSXkvdoxSlBMCxhJJbgrrbZRtHCiShN0pRB6PeQ3ckBw2K0oKXMBVYJIP+Nvh9qulFivGoBt1lLQxowT2ykBXCfnhZIglgYACWmqXQv+baioBYCeiCQHm+QEg1O7RhF7hO4OhSAhcJKSFU7qBGADwZeqMMuXn6TUBw8qlaMrirNb4LdhWlP+SWD+cjFfxTpuS2GUpik+o3jFSEkqbJiWn0P0OMSGqlWiOu0TvD+FRHZKAE+oW+cfRmEwqlsesJJEJs8y91QqP+9UL6lqEtz2gpuNEY5sm9sIHln2DRa2aFKGJtiXkZEMiWtgVvRKUSUFkSKt2S7fAGgAXLYpmQQXf36MUChTZdUa2u8/rkvPA6Tz30r4eH3ybcBS5gJ6SaNXb+aABkA1AMxKenclBZLW/He4cYEGwEXb3wEASelexk6LIIIAAAAASUVORK5CYII=">'},r.Converter=function(e){"use strict"
+function n(e,n){if(n=n||null,r.helper.isString(e)){if(e=r.helper.stdExtName(e),n=e,r.extensions[e])return console.warn("DEPRECATION WARNING: "+e+" is an old extension that uses a deprecated loading method.Please inform the developer that the extension should be updated!"),void function(e,n){"function"==typeof e&&(e=e(new r.Converter)),r.helper.isArray(e)||(e=[e])
+var i=t(e,n)
+if(!i.valid)throw Error(i.error)
+for(var o=0;o<e.length;++o)switch(e[o].type){case"lang":l.push(e[o])
+break
+case"output":h.push(e[o])
+break
+default:throw Error("Extension loader error: Type unrecognized!!!")}}(r.extensions[e],e)
+if(r.helper.isUndefined(o[e]))throw Error('Extension "'+e+'" could not be loaded. It was either not found or is not a valid extension.')
+e=o[e]}"function"==typeof e&&(e=e()),r.helper.isArray(e)||(e=[e])
+var s=t(e,n)
+if(!s.valid)throw Error(s.error)
+for(var a=0;a<e.length;++a){switch(e[a].type){case"lang":l.push(e[a])
+break
+case"output":h.push(e[a])}if(e[a].hasOwnProperty("listeners"))for(var u in e[a].listeners)e[a].listeners.hasOwnProperty(u)&&i(u,e[a].listeners[u])}}function i(e,t){if(!r.helper.isString(e))throw Error("Invalid argument in converter.listen() method: name must be a string, but "+typeof e+" given")
+if("function"!=typeof t)throw Error("Invalid argument in converter.listen() method: callback must be a function, but "+typeof t+" given")
+d.hasOwnProperty(e)||(d[e]=[]),d[e].push(t)}var c={},l=[],h=[],d={},p=a,f={parsed:{},raw:"",format:""}
+!function(){e=e||{}
+for(var t in s)s.hasOwnProperty(t)&&(c[t]=s[t])
+if("object"!=typeof e)throw Error("Converter expects the passed parameter to be an object, but "+typeof e+" was passed instead.")
+for(var i in e)e.hasOwnProperty(i)&&(c[i]=e[i])
+c.extensions&&r.helper.forEach(c.extensions,n)}(),this._dispatch=function(e,t,n,r){if(d.hasOwnProperty(e))for(var i=0;i<d[e].length;++i){var o=d[e][i](e,t,this,n,r)
+o&&void 0!==o&&(t=o)}return t},this.listen=function(e,t){return i(e,t),this},this.makeHtml=function(e){if(!e)return e
+var t={gHtmlBlocks:[],gHtmlMdBlocks:[],gHtmlSpans:[],gUrls:{},gTitles:{},gDimensions:{},gListLevel:0,hashLinkCounts:{},langExtensions:l,outputModifiers:h,converter:this,ghCodeBlocks:[],metadata:{parsed:{},raw:"",format:""}}
+return e=e.replace(/¨/g,"¨T"),e=e.replace(/\$/g,"¨D"),e=e.replace(/\r\n/g,"\n"),e=e.replace(/\r/g,"\n"),e=e.replace(/\u00A0/g," "),c.smartIndentationFix&&(e=function(e){var t=e.match(/^\s*/)[0].length,n=new RegExp("^\\s{0,"+t+"}","gm")
+return e.replace(n,"")}(e)),e="\n\n"+e+"\n\n",e=r.subParser("detab")(e,c,t),e=e.replace(/^[ \t]+$/gm,""),r.helper.forEach(l,function(n){e=r.subParser("runExtension")(n,e,c,t)}),e=r.subParser("metadata")(e,c,t),e=r.subParser("hashPreCodeTags")(e,c,t),e=r.subParser("githubCodeBlocks")(e,c,t),e=r.subParser("hashHTMLBlocks")(e,c,t),e=r.subParser("hashCodeTags")(e,c,t),e=r.subParser("stripLinkDefinitions")(e,c,t),e=r.subParser("blockGamut")(e,c,t),e=r.subParser("unhashHTMLSpans")(e,c,t),e=r.subParser("unescapeSpecialChars")(e,c,t),e=e.replace(/¨D/g,"$$"),e=e.replace(/¨T/g,"¨"),e=r.subParser("completeHTMLDocument")(e,c,t),r.helper.forEach(h,function(n){e=r.subParser("runExtension")(n,e,c,t)}),f=t.metadata,e},this.setOption=function(e,t){c[e]=t},this.getOption=function(e){return c[e]},this.getOptions=function(){return c},this.addExtension=function(e,t){n(e,t=t||null)},this.useExtension=function(e){n(e)},this.setFlavor=function(e){if(!u.hasOwnProperty(e))throw Error(e+" flavor was not found")
+var t=u[e]
+p=e
+for(var n in t)t.hasOwnProperty(n)&&(c[n]=t[n])},this.getFlavor=function(){return p},this.removeExtension=function(e){r.helper.isArray(e)||(e=[e])
+for(var t=0;t<e.length;++t){for(var n=e[t],i=0;i<l.length;++i)l[i]===n&&l[i].splice(i,1)
+for(;0<h.length;++i)h[0]===n&&h[0].splice(i,1)}},this.getAllExtensions=function(){return{language:l,output:h}},this.getMetadata=function(e){return e?f.raw:f.parsed},this.getMetadataFormat=function(){return f.format},this._setMetadataPair=function(e,t){f.parsed[e]=t},this._setMetadataFormat=function(e){f.format=e},this._setMetadataRaw=function(e){f.raw=e}},r.subParser("anchors",function(e,t,n){"use strict"
+var i=function(e,i,o,s,a,u,c){if(r.helper.isUndefined(c)&&(c=""),o=o.toLowerCase(),e.search(/\(<?\s*>? ?(['"].*['"])?\)$/m)>-1)s=""
+else if(!s){if(o||(o=i.toLowerCase().replace(/ ?\n/g," ")),s="#"+o,r.helper.isUndefined(n.gUrls[o]))return e
+s=n.gUrls[o],r.helper.isUndefined(n.gTitles[o])||(c=n.gTitles[o])}var l='<a href="'+(s=s.replace(r.helper.regexes.asteriskDashAndColon,r.helper.escapeCharactersCallback))+'"'
+return""!==c&&null!==c&&(l+=' title="'+(c=(c=c.replace(/"/g,"&quot;")).replace(r.helper.regexes.asteriskDashAndColon,r.helper.escapeCharactersCallback))+'"'),t.openLinksInNewWindow&&!/^#/.test(s)&&(l+=' target="¨E95Eblank"'),l+=">"+i+"</a>"}
+return e=(e=n.converter._dispatch("anchors.before",e,t,n)).replace(/\[((?:\[[^\]]*]|[^\[\]])*)] ?(?:\n *)?\[(.*?)]()()()()/g,i),e=e.replace(/\[((?:\[[^\]]*]|[^\[\]])*)]()[ \t]*\([ \t]?<([^>]*)>(?:[ \t]*((["'])([^"]*?)\5))?[ \t]?\)/g,i),e=e.replace(/\[((?:\[[^\]]*]|[^\[\]])*)]()[ \t]*\([ \t]?<?([\S]+?(?:\([\S]*?\)[\S]*?)?)>?(?:[ \t]*((["'])([^"]*?)\5))?[ \t]?\)/g,i),e=e.replace(/\[([^\[\]]+)]()()()()()/g,i),t.ghMentions&&(e=e.replace(/(^|\s)(\\)?(@([a-z\d\-]+))(?=[.!?;,[\]()]|\s|$)/gim,function(e,n,i,o,s){if("\\"===i)return n+o
+if(!r.helper.isString(t.ghMentionsLink))throw new Error("ghMentionsLink option must be a string")
+var a=t.ghMentionsLink.replace(/\{u}/g,s),u=""
+return t.openLinksInNewWindow&&(u=' target="¨E95Eblank"'),n+'<a href="'+a+'"'+u+">"+o+"</a>"})),e=n.converter._dispatch("anchors.after",e,t,n)})
+var l=/([*~_]+|\b)(((https?|ftp|dict):\/\/|www\.)[^'">\s]+?\.[^'">\s]+?)()(\1)?(?=\s|$)(?!["<>])/gi,h=/([*~_]+|\b)(((https?|ftp|dict):\/\/|www\.)[^'">\s]+\.[^'">\s]+?)([.!?,()\[\]])?(\1)?(?=\s|$)(?!["<>])/gi,d=/()<(((https?|ftp|dict):\/\/|www\.)[^'">\s]+)()>()/gi,p=/(^|\s)(?:mailto:)?([A-Za-z0-9!#$%&'*+-\/=?^_`{|}~.]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)(?=$|\s)/gim,f=/<()(?:mailto:)?([-.\w]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)>/gi,g=function(e){"use strict"
+return function(t,n,i,o,s,a,u){var c=i=i.replace(r.helper.regexes.asteriskDashAndColon,r.helper.escapeCharactersCallback),l="",h="",d=n||"",p=u||""
+return/^www\./i.test(i)&&(i=i.replace(/^www\./i,"http://www.")),e.excludeTrailingPunctuationFromURLs&&a&&(l=a),e.openLinksInNewWindow&&(h=' target="¨E95Eblank"'),d+'<a href="'+i+'"'+h+">"+c+"</a>"+l+p}},m=function(e,t){"use strict"
+return function(n,i,o){var s="mailto:"
+return i=i||"",o=r.subParser("unescapeSpecialChars")(o,e,t),e.encodeEmails?(s=r.helper.encodeEmailAddress(s+o),o=r.helper.encodeEmailAddress(o)):s+=o,i+'<a href="'+s+'">'+o+"</a>"}}
+r.subParser("autoLinks",function(e,t,n){"use strict"
+return e=n.converter._dispatch("autoLinks.before",e,t,n),e=e.replace(d,g(t)),e=e.replace(f,m(t,n)),e=n.converter._dispatch("autoLinks.after",e,t,n)}),r.subParser("simplifiedAutoLinks",function(e,t,n){"use strict"
+return t.simplifiedAutoLink?(e=n.converter._dispatch("simplifiedAutoLinks.before",e,t,n),e=t.excludeTrailingPunctuationFromURLs?e.replace(h,g(t)):e.replace(l,g(t)),e=e.replace(p,m(t,n)),e=n.converter._dispatch("simplifiedAutoLinks.after",e,t,n)):e}),r.subParser("blockGamut",function(e,t,n){"use strict"
+return e=n.converter._dispatch("blockGamut.before",e,t,n),e=r.subParser("blockQuotes")(e,t,n),e=r.subParser("headers")(e,t,n),e=r.subParser("horizontalRule")(e,t,n),e=r.subParser("lists")(e,t,n),e=r.subParser("codeBlocks")(e,t,n),e=r.subParser("tables")(e,t,n),e=r.subParser("hashHTMLBlocks")(e,t,n),e=r.subParser("paragraphs")(e,t,n),e=n.converter._dispatch("blockGamut.after",e,t,n)}),r.subParser("blockQuotes",function(e,t,n){"use strict"
+e=n.converter._dispatch("blockQuotes.before",e,t,n),e+="\n\n"
+var i=/(^ {0,3}>[ \t]?.+\n(.+\n)*\n*)+/gm
+return t.splitAdjacentBlockquotes&&(i=/^ {0,3}>[\s\S]*?(?:\n\n)/gm),e=e.replace(i,function(e){return e=e.replace(/^[ \t]*>[ \t]?/gm,""),e=e.replace(/¨0/g,""),e=e.replace(/^[ \t]+$/gm,""),e=r.subParser("githubCodeBlocks")(e,t,n),e=r.subParser("blockGamut")(e,t,n),e=e.replace(/(^|\n)/g,"$1 "),e=e.replace(/(\s*<pre>[^\r]+?<\/pre>)/gm,function(e,t){var n=t
+return n=n.replace(/^ /gm,"¨0"),n=n.replace(/¨0/g,"")}),r.subParser("hashBlock")("<blockquote>\n"+e+"\n</blockquote>",t,n)}),e=n.converter._dispatch("blockQuotes.after",e,t,n)}),r.subParser("codeBlocks",function(e,t,n){"use strict"
+return e=n.converter._dispatch("codeBlocks.before",e,t,n),e=(e+="¨0").replace(/(?:\n\n|^)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=¨0))/g,function(e,i,o){var s=i,a=o,u="\n"
+return s=r.subParser("outdent")(s,t,n),s=r.subParser("encodeCode")(s,t,n),s=r.subParser("detab")(s,t,n),s=s.replace(/^\n+/g,""),s=s.replace(/\n+$/g,""),t.omitExtraWLInCodeBlocks&&(u=""),s="<pre><code>"+s+u+"</code></pre>",r.subParser("hashBlock")(s,t,n)+a}),e=e.replace(/¨0/,""),e=n.converter._dispatch("codeBlocks.after",e,t,n)}),r.subParser("codeSpans",function(e,t,n){"use strict"
+return void 0===(e=n.converter._dispatch("codeSpans.before",e,t,n))&&(e=""),e=e.replace(/(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm,function(e,i,o,s){var a=s
+return a=a.replace(/^([ \t]*)/g,""),a=a.replace(/[ \t]*$/g,""),a=r.subParser("encodeCode")(a,t,n),a=i+"<code>"+a+"</code>",a=r.subParser("hashHTMLSpans")(a,t,n)}),e=n.converter._dispatch("codeSpans.after",e,t,n)}),r.subParser("completeHTMLDocument",function(e,t,n){"use strict"
+if(!t.completeHTMLDocument)return e
+e=n.converter._dispatch("completeHTMLDocument.before",e,t,n)
+var r="html",i="<!DOCTYPE HTML>\n",o="",s='<meta charset="utf-8">\n',a="",u=""
+void 0!==n.metadata.parsed.doctype&&(i="<!DOCTYPE "+n.metadata.parsed.doctype+">\n","html"!==(r=n.metadata.parsed.doctype.toString().toLowerCase())&&"html5"!==r||(s='<meta charset="utf-8">'))
+for(var c in n.metadata.parsed)if(n.metadata.parsed.hasOwnProperty(c))switch(c.toLowerCase()){case"doctype":break
+case"title":o="<title>"+n.metadata.parsed.title+"</title>\n"
+break
+case"charset":s="html"===r||"html5"===r?'<meta charset="'+n.metadata.parsed.charset+'">\n':'<meta name="charset" content="'+n.metadata.parsed.charset+'">\n'
+break
+case"language":case"lang":a=' lang="'+n.metadata.parsed[c]+'"',u+='<meta name="'+c+'" content="'+n.metadata.parsed[c]+'">\n'
+break
+default:u+='<meta name="'+c+'" content="'+n.metadata.parsed[c]+'">\n'}return e=i+"<html"+a+">\n<head>\n"+o+s+u+"</head>\n<body>\n"+e.trim()+"\n</body>\n</html>",e=n.converter._dispatch("completeHTMLDocument.after",e,t,n)}),r.subParser("detab",function(e,t,n){"use strict"
+return e=n.converter._dispatch("detab.before",e,t,n),e=e.replace(/\t(?=\t)/g," "),e=e.replace(/\t/g,"¨A¨B"),e=e.replace(/¨B(.+?)¨A/g,function(e,t){for(var n=t,r=4-n.length%4,i=0;i<r;i++)n+=" "
+return n}),e=e.replace(/¨A/g," "),e=e.replace(/¨B/g,""),e=n.converter._dispatch("detab.after",e,t,n)}),r.subParser("ellipsis",function(e,t,n){"use strict"
+return e=n.converter._dispatch("ellipsis.before",e,t,n),e=e.replace(/\.\.\./g,"…"),e=n.converter._dispatch("ellipsis.after",e,t,n)}),r.subParser("emoji",function(e,t,n){"use strict"
+return t.emoji?(e=(e=n.converter._dispatch("emoji.before",e,t,n)).replace(/:([\S]+?):/g,function(e,t){return r.helper.emojis.hasOwnProperty(t)?r.helper.emojis[t]:e}),e=n.converter._dispatch("emoji.after",e,t,n)):e}),r.subParser("encodeAmpsAndAngles",function(e,t,n){"use strict"
+return e=n.converter._dispatch("encodeAmpsAndAngles.before",e,t,n),e=e.replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/g,"&amp;"),e=e.replace(/<(?![a-z\/?$!])/gi,"&lt;"),e=e.replace(/</g,"&lt;"),e=e.replace(/>/g,"&gt;"),e=n.converter._dispatch("encodeAmpsAndAngles.after",e,t,n)}),r.subParser("encodeBackslashEscapes",function(e,t,n){"use strict"
+return e=n.converter._dispatch("encodeBackslashEscapes.before",e,t,n),e=e.replace(/\\(\\)/g,r.helper.escapeCharactersCallback),e=e.replace(/\\([`*_{}\[\]()>#+.!~=|-])/g,r.helper.escapeCharactersCallback),e=n.converter._dispatch("encodeBackslashEscapes.after",e,t,n)}),r.subParser("encodeCode",function(e,t,n){"use strict"
+return e=n.converter._dispatch("encodeCode.before",e,t,n),e=e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/([*_{}\[\]\\=~-])/g,r.helper.escapeCharactersCallback),e=n.converter._dispatch("encodeCode.after",e,t,n)}),r.subParser("escapeSpecialCharsWithinTagAttributes",function(e,t,n){"use strict"
+return e=(e=n.converter._dispatch("escapeSpecialCharsWithinTagAttributes.before",e,t,n)).replace(/<\/?[a-z\d_:-]+(?:[\s]+[\s\S]+?)?>/gi,function(e){return e.replace(/(.)<\/?code>(?=.)/g,"$1`").replace(/([\\`*_~=|])/g,r.helper.escapeCharactersCallback)}),e=e.replace(/<!(--(?:(?:[^>-]|-[^>])(?:[^-]|-[^-])*)--)>/gi,function(e){return e.replace(/([\\`*_~=|])/g,r.helper.escapeCharactersCallback)}),e=n.converter._dispatch("escapeSpecialCharsWithinTagAttributes.after",e,t,n)}),r.subParser("githubCodeBlocks",function(e,t,n){"use strict"
+return t.ghCodeBlocks?(e=n.converter._dispatch("githubCodeBlocks.before",e,t,n),e+="¨0",e=e.replace(/(?:^|\n)(```+|~~~+)([^\s`~]*)\n([\s\S]*?)\n\1/g,function(e,i,o,s){var a=t.omitExtraWLInCodeBlocks?"":"\n"
+return s=r.subParser("encodeCode")(s,t,n),s=r.subParser("detab")(s,t,n),s=s.replace(/^\n+/g,""),s=s.replace(/\n+$/g,""),s="<pre><code"+(o?' class="'+o+" language-"+o+'"':"")+">"+s+a+"</code></pre>",s=r.subParser("hashBlock")(s,t,n),"\n\n¨G"+(n.ghCodeBlocks.push({text:e,codeblock:s})-1)+"G\n\n"}),e=e.replace(/¨0/,""),n.converter._dispatch("githubCodeBlocks.after",e,t,n)):e}),r.subParser("hashBlock",function(e,t,n){"use strict"
+return e=n.converter._dispatch("hashBlock.before",e,t,n),e=e.replace(/(^\n+|\n+$)/g,""),e="\n\n¨K"+(n.gHtmlBlocks.push(e)-1)+"K\n\n",e=n.converter._dispatch("hashBlock.after",e,t,n)}),r.subParser("hashCodeTags",function(e,t,n){"use strict"
+return e=n.converter._dispatch("hashCodeTags.before",e,t,n),e=r.helper.replaceRecursiveRegExp(e,function(e,i,o,s){var a=o+r.subParser("encodeCode")(i,t,n)+s
+return"¨C"+(n.gHtmlSpans.push(a)-1)+"C"},"<code\\b[^>]*>","</code>","gim"),e=n.converter._dispatch("hashCodeTags.after",e,t,n)}),r.subParser("hashElement",function(e,t,n){"use strict"
+return function(e,t){var r=t
+return r=r.replace(/\n\n/g,"\n"),r=r.replace(/^\n/,""),r=r.replace(/\n+$/g,""),r="\n\n¨K"+(n.gHtmlBlocks.push(r)-1)+"K\n\n"}}),r.subParser("hashHTMLBlocks",function(e,t,n){"use strict"
+e=n.converter._dispatch("hashHTMLBlocks.before",e,t,n)
+var i=["pre","div","h1","h2","h3","h4","h5","h6","blockquote","table","dl","ol","ul","script","noscript","form","fieldset","iframe","math","style","section","header","footer","nav","article","aside","address","audio","canvas","figure","hgroup","output","video","p"],o=function(e,t,r,i){var o=e
+return-1!==r.search(/\bmarkdown\b/)&&(o=r+n.converter.makeHtml(t)+i),"\n\n¨K"+(n.gHtmlBlocks.push(o)-1)+"K\n\n"}
+t.backslashEscapesHTMLTags&&(e=e.replace(/\\<(\/?[^>]+?)>/g,function(e,t){return"&lt;"+t+"&gt;"}))
+for(var s=0;s<i.length;++s)for(var a,u=new RegExp("^ {0,3}(<"+i[s]+"\\b[^>]*>)","im"),c="<"+i[s]+"\\b[^>]*>",l="</"+i[s]+">";-1!==(a=r.helper.regexIndexOf(e,u));){var h=r.helper.splitAtIndex(e,a),d=r.helper.replaceRecursiveRegExp(h[1],o,c,l,"im")
+if(d===h[1])break
+e=h[0].concat(d)}return e=e.replace(/(\n {0,3}(<(hr)\b([^<>])*?\/?>)[ \t]*(?=\n{2,}))/g,r.subParser("hashElement")(e,t,n)),e=r.helper.replaceRecursiveRegExp(e,function(e){return"\n\n¨K"+(n.gHtmlBlocks.push(e)-1)+"K\n\n"},"^ {0,3}\x3c!--","--\x3e","gm"),e=e.replace(/(?:\n\n)( {0,3}(?:<([?%])[^\r]*?\2>)[ \t]*(?=\n{2,}))/g,r.subParser("hashElement")(e,t,n)),e=n.converter._dispatch("hashHTMLBlocks.after",e,t,n)}),r.subParser("hashHTMLSpans",function(e,t,n){"use strict"
+function r(e){return"¨C"+(n.gHtmlSpans.push(e)-1)+"C"}return e=n.converter._dispatch("hashHTMLSpans.before",e,t,n),e=e.replace(/<[^>]+?\/>/gi,function(e){return r(e)}),e=e.replace(/<([^>]+?)>[\s\S]*?<\/\1>/g,function(e){return r(e)}),e=e.replace(/<([^>]+?)\s[^>]+?>[\s\S]*?<\/\1>/g,function(e){return r(e)}),e=e.replace(/<[^>]+?>/gi,function(e){return r(e)}),e=n.converter._dispatch("hashHTMLSpans.after",e,t,n)}),r.subParser("unhashHTMLSpans",function(e,t,n){"use strict"
+e=n.converter._dispatch("unhashHTMLSpans.before",e,t,n)
+for(var r=0;r<n.gHtmlSpans.length;++r){for(var i=n.gHtmlSpans[r],o=0;/¨C(\d+)C/.test(i);){var s=RegExp.$1
+if(i=i.replace("¨C"+s+"C",n.gHtmlSpans[s]),10===o){console.error("maximum nesting of 10 spans reached!!!")
+break}++o}e=e.replace("¨C"+r+"C",i)}return e=n.converter._dispatch("unhashHTMLSpans.after",e,t,n)}),r.subParser("hashPreCodeTags",function(e,t,n){"use strict"
+return e=n.converter._dispatch("hashPreCodeTags.before",e,t,n),e=r.helper.replaceRecursiveRegExp(e,function(e,i,o,s){var a=o+r.subParser("encodeCode")(i,t,n)+s
+return"\n\n¨G"+(n.ghCodeBlocks.push({text:e,codeblock:a})-1)+"G\n\n"},"^ {0,3}<pre\\b[^>]*>\\s*<code\\b[^>]*>","^ {0,3}</code>\\s*</pre>","gim"),e=n.converter._dispatch("hashPreCodeTags.after",e,t,n)}),r.subParser("headers",function(e,t,n){"use strict"
+function i(e){var i,o
+if(t.customizedHeaderId){var s=e.match(/\{([^{]+?)}\s*$/)
+s&&s[1]&&(e=s[1])}return i=e,o=r.helper.isString(t.prefixHeaderId)?t.prefixHeaderId:!0===t.prefixHeaderId?"section-":"",t.rawPrefixHeaderId||(i=o+i),i=t.ghCompatibleHeaderId?i.replace(/ /g,"-").replace(/&amp;/g,"").replace(/¨T/g,"").replace(/¨D/g,"").replace(/[&+$,\/:;=?@"#{}|^¨~\[\]`\\*)(%.!'<>]/g,"").toLowerCase():t.rawHeaderId?i.replace(/ /g,"-").replace(/&amp;/g,"&").replace(/¨T/g,"¨").replace(/¨D/g,"$").replace(/["']/g,"-").toLowerCase():i.replace(/[^\w]/g,"").toLowerCase(),t.rawPrefixHeaderId&&(i=o+i),n.hashLinkCounts[i]?i=i+"-"+n.hashLinkCounts[i]++:n.hashLinkCounts[i]=1,i}e=n.converter._dispatch("headers.before",e,t,n)
+var o=isNaN(parseInt(t.headerLevelStart))?1:parseInt(t.headerLevelStart),s=t.smoothLivePreview?/^(.+)[ \t]*\n={2,}[ \t]*\n+/gm:/^(.+)[ \t]*\n=+[ \t]*\n+/gm,a=t.smoothLivePreview?/^(.+)[ \t]*\n-{2,}[ \t]*\n+/gm:/^(.+)[ \t]*\n-+[ \t]*\n+/gm
+e=(e=e.replace(s,function(e,s){var a=r.subParser("spanGamut")(s,t,n),u=t.noHeaderId?"":' id="'+i(s)+'"',c="<h"+o+u+">"+a+"</h"+o+">"
+return r.subParser("hashBlock")(c,t,n)})).replace(a,function(e,s){var a=r.subParser("spanGamut")(s,t,n),u=t.noHeaderId?"":' id="'+i(s)+'"',c=o+1,l="<h"+c+u+">"+a+"</h"+c+">"
+return r.subParser("hashBlock")(l,t,n)})
+var u=t.requireSpaceBeforeHeadingText?/^(#{1,6})[ \t]+(.+?)[ \t]*#*\n+/gm:/^(#{1,6})[ \t]*(.+?)[ \t]*#*\n+/gm
+return e=e.replace(u,function(e,s,a){var u=a
+t.customizedHeaderId&&(u=a.replace(/\s?\{([^{]+?)}\s*$/,""))
+var c=r.subParser("spanGamut")(u,t,n),l=t.noHeaderId?"":' id="'+i(a)+'"',h=o-1+s.length,d="<h"+h+l+">"+c+"</h"+h+">"
+return r.subParser("hashBlock")(d,t,n)}),e=n.converter._dispatch("headers.after",e,t,n)}),r.subParser("horizontalRule",function(e,t,n){"use strict"
+e=n.converter._dispatch("horizontalRule.before",e,t,n)
+var i=r.subParser("hashBlock")("<hr />",t,n)
+return e=e.replace(/^ {0,2}( ?-){3,}[ \t]*$/gm,i),e=e.replace(/^ {0,2}( ?\*){3,}[ \t]*$/gm,i),e=e.replace(/^ {0,2}( ?_){3,}[ \t]*$/gm,i),e=n.converter._dispatch("horizontalRule.after",e,t,n)}),r.subParser("images",function(e,t,n){"use strict"
+function i(e,t,i,o,s,a,u,c){var l=n.gUrls,h=n.gTitles,d=n.gDimensions
+if(i=i.toLowerCase(),c||(c=""),e.search(/\(<?\s*>? ?(['"].*['"])?\)$/m)>-1)o=""
+else if(""===o||null===o){if(""!==i&&null!==i||(i=t.toLowerCase().replace(/ ?\n/g," ")),o="#"+i,r.helper.isUndefined(l[i]))return e
+o=l[i],r.helper.isUndefined(h[i])||(c=h[i]),r.helper.isUndefined(d[i])||(s=d[i].width,a=d[i].height)}t=t.replace(/"/g,"&quot;").replace(r.helper.regexes.asteriskDashAndColon,r.helper.escapeCharactersCallback)
+var p='<img src="'+(o=o.replace(r.helper.regexes.asteriskDashAndColon,r.helper.escapeCharactersCallback))+'" alt="'+t+'"'
+return c&&(p+=' title="'+(c=c.replace(/"/g,"&quot;").replace(r.helper.regexes.asteriskDashAndColon,r.helper.escapeCharactersCallback))+'"'),s&&a&&(p+=' width="'+(s="*"===s?"auto":s)+'"',p+=' height="'+(a="*"===a?"auto":a)+'"'),p+=" />"}return e=(e=n.converter._dispatch("images.before",e,t,n)).replace(/!\[([^\]]*?)] ?(?:\n *)?\[([\s\S]*?)]()()()()()/g,i),e=e.replace(/!\[([^\]]*?)][ \t]*()\([ \t]?<?(data:.+?\/.+?;base64,[A-Za-z0-9+\/=\n]+?)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(["'])([^"]*?)\6)?[ \t]?\)/g,function(e,t,n,r,o,s,a,u){return r=r.replace(/\s/g,""),i(e,t,n,r,o,s,0,u)}),e=e.replace(/!\[([^\]]*?)][ \t]*()\([ \t]?<([^>]*)>(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(?:(["'])([^"]*?)\6))?[ \t]?\)/g,i),e=e.replace(/!\[([^\]]*?)][ \t]*()\([ \t]?<?([\S]+?(?:\([\S]*?\)[\S]*?)?)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(["'])([^"]*?)\6)?[ \t]?\)/g,i),e=e.replace(/!\[([^\[\]]+)]()()()()()/g,i),e=n.converter._dispatch("images.after",e,t,n)}),r.subParser("italicsAndBold",function(e,t,n){"use strict"
+function r(e,t,n){return t+e+n}return e=n.converter._dispatch("italicsAndBold.before",e,t,n),e=t.literalMidWordUnderscores?(e=(e=e.replace(/\b___(\S[\s\S]*)___\b/g,function(e,t){return r(t,"<strong><em>","</em></strong>")})).replace(/\b__(\S[\s\S]*)__\b/g,function(e,t){return r(t,"<strong>","</strong>")})).replace(/\b_(\S[\s\S]*?)_\b/g,function(e,t){return r(t,"<em>","</em>")}):(e=(e=e.replace(/___(\S[\s\S]*?)___/g,function(e,t){return/\S$/.test(t)?r(t,"<strong><em>","</em></strong>"):e})).replace(/__(\S[\s\S]*?)__/g,function(e,t){return/\S$/.test(t)?r(t,"<strong>","</strong>"):e})).replace(/_([^\s_][\s\S]*?)_/g,function(e,t){return/\S$/.test(t)?r(t,"<em>","</em>"):e}),e=t.literalMidWordAsterisks?(e=(e=e.replace(/([^*]|^)\B\*\*\*(\S[\s\S]+?)\*\*\*\B(?!\*)/g,function(e,t,n){return r(n,t+"<strong><em>","</em></strong>")})).replace(/([^*]|^)\B\*\*(\S[\s\S]+?)\*\*\B(?!\*)/g,function(e,t,n){return r(n,t+"<strong>","</strong>")})).replace(/([^*]|^)\B\*(\S[\s\S]+?)\*\B(?!\*)/g,function(e,t,n){return r(n,t+"<em>","</em>")}):(e=(e=e.replace(/\*\*\*(\S[\s\S]*?)\*\*\*/g,function(e,t){return/\S$/.test(t)?r(t,"<strong><em>","</em></strong>"):e})).replace(/\*\*(\S[\s\S]*?)\*\*/g,function(e,t){return/\S$/.test(t)?r(t,"<strong>","</strong>"):e})).replace(/\*([^\s*][\s\S]*?)\*/g,function(e,t){return/\S$/.test(t)?r(t,"<em>","</em>"):e}),e=n.converter._dispatch("italicsAndBold.after",e,t,n)}),r.subParser("lists",function(e,t,n){"use strict"
+function i(e,i){n.gListLevel++,e=e.replace(/\n{2,}$/,"\n")
+var o=/(\n)?(^ {0,3})([*+-]|\d+[.])[ \t]+((\[(x|X| )?])?[ \t]*[^\r]+?(\n{1,2}))(?=\n*(¨0| {0,3}([*+-]|\d+[.])[ \t]+))/gm,s=/\n[ \t]*\n(?!¨0)/.test(e+="¨0")
+return t.disableForced4SpacesIndentedSublists&&(o=/(\n)?(^ {0,3})([*+-]|\d+[.])[ \t]+((\[(x|X| )?])?[ \t]*[^\r]+?(\n{1,2}))(?=\n*(¨0|\2([*+-]|\d+[.])[ \t]+))/gm),e=e.replace(o,function(e,i,o,a,u,c,l){l=l&&""!==l.trim()
+var h=r.subParser("outdent")(u,t,n),d=""
+return c&&t.tasklists&&(d=' class="task-list-item" style="list-style-type: none;"',h=h.replace(/^[ \t]*\[(x|X| )?]/m,function(){var e='<input type="checkbox" disabled style="margin: 0px 0.35em 0.25em -1.6em; vertical-align: middle;"'
+return l&&(e+=" checked"),e+=">"})),h=h.replace(/^([-*+]|\d\.)[ \t]+[\S\n ]*/g,function(e){return"¨A"+e}),i||h.search(/\n{2,}/)>-1?(h=r.subParser("githubCodeBlocks")(h,t,n),h=r.subParser("blockGamut")(h,t,n)):(h=(h=r.subParser("lists")(h,t,n)).replace(/\n$/,""),h=(h=r.subParser("hashHTMLBlocks")(h,t,n)).replace(/\n\n+/g,"\n\n"),h=s?r.subParser("paragraphs")(h,t,n):r.subParser("spanGamut")(h,t,n)),h=h.replace("¨A",""),h="<li"+d+">"+h+"</li>\n"}),e=e.replace(/¨0/g,""),n.gListLevel--,i&&(e=e.replace(/\s+$/,"")),e}function o(e,t){if("ol"===t){var n=e.match(/^ *(\d+)\./)
+if(n&&"1"!==n[1])return' start="'+n[1]+'"'}return""}function s(e,n,r){var s=t.disableForced4SpacesIndentedSublists?/^ ?\d+\.[ \t]/gm:/^ {0,3}\d+\.[ \t]/gm,a=t.disableForced4SpacesIndentedSublists?/^ ?[*+-][ \t]/gm:/^ {0,3}[*+-][ \t]/gm,u="ul"===n?s:a,c=""
+if(-1!==e.search(u))!function t(l){var h=l.search(u),d=o(e,n);-1!==h?(c+="\n\n<"+n+d+">\n"+i(l.slice(0,h),!!r)+"</"+n+">\n",u="ul"==(n="ul"===n?"ol":"ul")?s:a,t(l.slice(h))):c+="\n\n<"+n+d+">\n"+i(l,!!r)+"</"+n+">\n"}(e)
+else{var l=o(e,n)
+c="\n\n<"+n+l+">\n"+i(e,!!r)+"</"+n+">\n"}return c}return e=n.converter._dispatch("lists.before",e,t,n),e+="¨0",e=n.gListLevel?e.replace(/^(( {0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(¨0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm,function(e,t,n){return s(t,n.search(/[*+-]/g)>-1?"ul":"ol",!0)}):e.replace(/(\n\n|^\n?)(( {0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(¨0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm,function(e,t,n,r){return s(n,r.search(/[*+-]/g)>-1?"ul":"ol",!1)}),e=e.replace(/¨0/,""),e=n.converter._dispatch("lists.after",e,t,n)}),r.subParser("metadata",function(e,t,n){"use strict"
+function r(e){n.metadata.raw=e,(e=(e=e.replace(/&/g,"&amp;").replace(/"/g,"&quot;")).replace(/\n {4}/g," ")).replace(/^([\S ]+): +([\s\S]+?)$/gm,function(e,t,r){return n.metadata.parsed[t]=r,""})}return t.metadata?(e=n.converter._dispatch("metadata.before",e,t,n),e=e.replace(/^\s*«««+(\S*?)\n([\s\S]+?)\n»»»+\n/,function(e,t,n){return r(n),"¨M"}),e=e.replace(/^\s*---+(\S*?)\n([\s\S]+?)\n---+\n/,function(e,t,i){return t&&(n.metadata.format=t),r(i),"¨M"}),e=e.replace(/¨M/g,""),e=n.converter._dispatch("metadata.after",e,t,n)):e}),r.subParser("outdent",function(e,t,n){"use strict"
+return e=n.converter._dispatch("outdent.before",e,t,n),e=e.replace(/^(\t|[ ]{1,4})/gm,"¨0"),e=e.replace(/¨0/g,""),e=n.converter._dispatch("outdent.after",e,t,n)}),r.subParser("paragraphs",function(e,t,n){"use strict"
+for(var i=(e=(e=(e=n.converter._dispatch("paragraphs.before",e,t,n)).replace(/^\n+/g,"")).replace(/\n+$/g,"")).split(/\n{2,}/g),o=[],s=i.length,a=0;a<s;a++){var u=i[a]
+u.search(/¨(K|G)(\d+)\1/g)>=0?o.push(u):u.search(/\S/)>=0&&(u=(u=r.subParser("spanGamut")(u,t,n)).replace(/^([ \t]*)/g,"<p>"),u+="</p>",o.push(u))}for(s=o.length,a=0;a<s;a++){for(var c="",l=o[a],h=!1;/¨(K|G)(\d+)\1/.test(l);){var d=RegExp.$1,p=RegExp.$2
+c=(c="K"===d?n.gHtmlBlocks[p]:h?r.subParser("encodeCode")(n.ghCodeBlocks[p].text,t,n):n.ghCodeBlocks[p].codeblock).replace(/\$/g,"$$$$"),l=l.replace(/(\n\n)?¨(K|G)\d+\2(\n\n)?/,c),/^<pre\b[^>]*>\s*<code\b[^>]*>/.test(l)&&(h=!0)}o[a]=l}return e=o.join("\n"),e=e.replace(/^\n+/g,""),e=e.replace(/\n+$/g,""),n.converter._dispatch("paragraphs.after",e,t,n)}),r.subParser("runExtension",function(e,t,n,r){"use strict"
+if(e.filter)t=e.filter(t,r.converter,n)
+else if(e.regex){var i=e.regex
+i instanceof RegExp||(i=new RegExp(i,"g")),t=t.replace(i,e.replace)}return t}),r.subParser("spanGamut",function(e,t,n){"use strict"
+return e=n.converter._dispatch("spanGamut.before",e,t,n),e=r.subParser("codeSpans")(e,t,n),e=r.subParser("escapeSpecialCharsWithinTagAttributes")(e,t,n),e=r.subParser("encodeBackslashEscapes")(e,t,n),e=r.subParser("images")(e,t,n),e=r.subParser("anchors")(e,t,n),e=r.subParser("autoLinks")(e,t,n),e=r.subParser("simplifiedAutoLinks")(e,t,n),e=r.subParser("emoji")(e,t,n),e=r.subParser("underline")(e,t,n),e=r.subParser("italicsAndBold")(e,t,n),e=r.subParser("strikethrough")(e,t,n),e=r.subParser("ellipsis")(e,t,n),e=r.subParser("hashHTMLSpans")(e,t,n),e=r.subParser("encodeAmpsAndAngles")(e,t,n),t.simpleLineBreaks?/\n\n¨K/.test(e)||(e=e.replace(/\n+/g,"<br />\n")):e=e.replace(/ +\n/g,"<br />\n"),e=n.converter._dispatch("spanGamut.after",e,t,n)}),r.subParser("strikethrough",function(e,t,n){"use strict"
+return t.strikethrough&&(e=(e=n.converter._dispatch("strikethrough.before",e,t,n)).replace(/(?:~){2}([\s\S]+?)(?:~){2}/g,function(e,i){return function(e){return t.simplifiedAutoLink&&(e=r.subParser("simplifiedAutoLinks")(e,t,n)),"<del>"+e+"</del>"}(i)}),e=n.converter._dispatch("strikethrough.after",e,t,n)),e}),r.subParser("stripLinkDefinitions",function(e,t,n){"use strict"
+var i=function(e,i,o,s,a,u,c){return i=i.toLowerCase(),o.match(/^data:.+?\/.+?;base64,/)?n.gUrls[i]=o.replace(/\s/g,""):n.gUrls[i]=r.subParser("encodeAmpsAndAngles")(o,t,n),u?u+c:(c&&(n.gTitles[i]=c.replace(/"|'/g,"&quot;")),t.parseImgDimensions&&s&&a&&(n.gDimensions[i]={width:s,height:a}),"")}
+return e=(e+="¨0").replace(/^ {0,3}\[(.+)]:[ \t]*\n?[ \t]*<?(data:.+?\/.+?;base64,[A-Za-z0-9+\/=\n]+?)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*\n?[ \t]*(?:(\n*)["|'(](.+?)["|')][ \t]*)?(?:\n\n|(?=¨0)|(?=\n\[))/gm,i),e=e.replace(/^ {0,3}\[(.+)]:[ \t]*\n?[ \t]*<?([^>\s]+)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*\n?[ \t]*(?:(\n*)["|'(](.+?)["|')][ \t]*)?(?:\n+|(?=¨0))/gm,i),e=e.replace(/¨0/,"")}),r.subParser("tables",function(e,t,n){"use strict"
+function i(e){return/^:[ \t]*--*$/.test(e)?' style="text-align:left;"':/^--*[ \t]*:[ \t]*$/.test(e)?' style="text-align:right;"':/^:[ \t]*--*[ \t]*:$/.test(e)?' style="text-align:center;"':""}function o(e,i){var o=""
+return e=e.trim(),(t.tablesHeaderId||t.tableHeaderId)&&(o=' id="'+e.replace(/ /g,"_").toLowerCase()+'"'),e=r.subParser("spanGamut")(e,t,n),"<th"+o+i+">"+e+"</th>\n"}function s(e,i){return"<td"+i+">"+r.subParser("spanGamut")(e,t,n)+"</td>\n"}function a(e){var a,u=e.split("\n")
+for(a=0;a<u.length;++a)/^ {0,3}\|/.test(u[a])&&(u[a]=u[a].replace(/^ {0,3}\|/,"")),/\|[ \t]*$/.test(u[a])&&(u[a]=u[a].replace(/\|[ \t]*$/,"")),u[a]=r.subParser("codeSpans")(u[a],t,n)
+var c=u[0].split("|").map(function(e){return e.trim()}),l=u[1].split("|").map(function(e){return e.trim()}),h=[],d=[],p=[],f=[]
+for(u.shift(),u.shift(),a=0;a<u.length;++a)""!==u[a].trim()&&h.push(u[a].split("|").map(function(e){return e.trim()}))
+if(c.length<l.length)return e
+for(a=0;a<l.length;++a)p.push(i(l[a]))
+for(a=0;a<c.length;++a)r.helper.isUndefined(p[a])&&(p[a]=""),d.push(o(c[a],p[a]))
+for(a=0;a<h.length;++a){for(var g=[],m=0;m<d.length;++m)r.helper.isUndefined(h[a][m]),g.push(s(h[a][m],p[m]))
+f.push(g)}return function(e,t){for(var n="<table>\n<thead>\n<tr>\n",r=e.length,i=0;i<r;++i)n+=e[i]
+for(n+="</tr>\n</thead>\n<tbody>\n",i=0;i<t.length;++i){n+="<tr>\n"
+for(var o=0;o<r;++o)n+=t[i][o]
+n+="</tr>\n"}return n+="</tbody>\n</table>\n"}(d,f)}return t.tables?(e=n.converter._dispatch("tables.before",e,t,n),e=e.replace(/\\(\|)/g,r.helper.escapeCharactersCallback),e=e.replace(/^ {0,3}\|?.+\|.+\n {0,3}\|?[ \t]*:?[ \t]*(?:[-=]){2,}[ \t]*:?[ \t]*\|[ \t]*:?[ \t]*(?:[-=]){2,}[\s\S]+?(?:\n\n|¨0)/gm,a),e=e.replace(/^ {0,3}\|.+\|[ \t]*\n {0,3}\|[ \t]*:?[ \t]*(?:[-=]){2,}[ \t]*:?[ \t]*\|[ \t]*\n( {0,3}\|.+\|[ \t]*\n)*(?:\n|¨0)/gm,a),e=n.converter._dispatch("tables.after",e,t,n)):e}),r.subParser("underline",function(e,t,n){"use strict"
+return t.underline?(e=n.converter._dispatch("underline.before",e,t,n),e=t.literalMidWordUnderscores?e.replace(/\b_?__(\S[\s\S]*)___?\b/g,function(e,t){return"<u>"+t+"</u>"}):e.replace(/_?__(\S[\s\S]*?)___?/g,function(e,t){return/\S$/.test(t)?"<u>"+t+"</u>":e}),e=e.replace(/(_)/g,r.helper.escapeCharactersCallback),e=n.converter._dispatch("underline.after",e,t,n)):e}),r.subParser("unescapeSpecialChars",function(e,t,n){"use strict"
+return e=n.converter._dispatch("unescapeSpecialChars.before",e,t,n),e=e.replace(/¨E(\d+)E/g,function(e,t){var n=parseInt(t)
+return String.fromCharCode(n)}),e=n.converter._dispatch("unescapeSpecialChars.after",e,t,n)})
+"function"==typeof define&&define.amd?define(function(){"use strict"
+return r}):"undefined"!=typeof module&&module.exports?module.exports=r:this.showdown=r}.call(this),define("ember-cli-app-version/initializer-factory",["exports"],function(e){"use strict"
+function t(e,t){var r=!1
+return function(){if(!r&&e&&t){var i=Ember.String.classify(e)
+n.register(i,t),r=!0}}}Object.defineProperty(e,"__esModule",{value:!0}),e.default=t
+var n=Ember.libraries}),define("ember-cli-app-version/utils/regexp",["exports"],function(e){"use strict"
+Object.defineProperty(e,"__esModule",{value:!0})
+e.versionRegExp=/\d+[.]\d+[.]\d+/,e.versionExtendedRegExp=/\d+[.]\d+[.]\d+-[a-z]*([.]\d+)?/,e.shaRegExp=/[a-z\d]{8}$/}),define("ember-load-initializers/index",["exports"],function(e){"use strict"
+function t(e){var t=require(e,null,null,!0)
+if(!t)throw new Error(e+" must export an initializer.")
+var n=t.default
+return n.name||(n.name=e.slice(e.lastIndexOf("/")+1)),n}function n(e,n){for(var r=0;r<n.length;r++)e.initializer(t(n[r]))}function r(e,n){for(var r=0;r<n.length;r++)e.instanceInitializer(t(n[r]))}function i(e,t){return-1!==e.indexOf(t,e.length-t.length)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e,t){for(var o=t+"/initializers/",s=t+"/instance-initializers/",a=[],u=[],c=Object.keys(requirejs._eak_seen),l=0;l<c.length;l++){var h=c[l]
+0===h.lastIndexOf(o,0)?i(h,"-test")||a.push(h):0===h.lastIndexOf(s,0)&&(i(h,"-test")||u.push(h))}n(e,a),r(e,u)}}),define("ember-radio-button/components/labeled-radio-button",["exports","ember-radio-button/templates/components/labeled-radio-button"],function(e,t){"use strict"
+Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({tagName:"label",layout:t.default,attributeBindings:["for"],classNameBindings:["_checkedClass"],classNames:["ember-radio-button"],defaultLayout:null,checkedClass:"checked",_checkedClass:Ember.computed("checked","checkedClass",function(){return this.get("checked")?this.get("checkedClass"):""}),checked:Ember.computed("groupValue","value",function(){return Ember.isEqual(this.get("groupValue"),this.get("value"))}).readOnly(),for:Ember.computed.readOnly("radioId"),actions:{innerRadioChanged:function(e){this.sendAction("changed",e)}}})}),define("ember-radio-button/components/radio-button-input",["exports"],function(e){"use strict"
+Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({tagName:"input",type:"radio",defaultLayout:null,attributeBindings:["autofocus","checked","disabled","name","required","tabindex","type","value","ariaLabelledby:aria-labelledby","ariaDescribedby:aria-describedby","checked:aria-checked"],checked:Ember.computed("groupValue","value",function(){return Ember.isEqual(this.get("groupValue"),this.get("value"))}).readOnly(),sendChangedAction:function(){this.sendAction("changed",this.get("value"))},change:function(){var e=this.get("value")
+this.get("groupValue")!==e&&(this.set("groupValue",e),Ember.run.once(this,"sendChangedAction"))}})}),define("ember-radio-button/components/radio-button",["exports","ember-radio-button/templates/components/radio-button"],function(e,t){"use strict"
+Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({tagName:"",layout:t.default,hasBlock:Ember.computed.bool("template").readOnly(),joinedClassNames:Ember.computed("classNames",function(){var e=this.get("classNames")
+return e&&e.length&&e.join?e.join(" "):e}),defaultLayout:null,checkedClass:"checked",checked:Ember.computed("groupValue","value",function(){return Ember.isEqual(this.get("groupValue"),this.get("value"))}).readOnly(),actions:{changed:function(e){this.sendAction("changed",e)}}})}),define("ember-radio-button/templates/components/labeled-radio-button",["exports"],function(e){"use strict"
+e.__esModule=!0,e.default=Ember.HTMLBars.template({id:"1UntrEkb",block:'{"symbols":["&default"],"statements":[[1,[26,"radio-button",null,[["radioClass","radioId","changed","disabled","groupValue","name","required","value"],[[22,["radioClass"]],[22,["radioId"]],"innerRadioChanged",[22,["disabled"]],[22,["groupValue"]],[22,["name"]],[22,["required"]],[22,["value"]]]]],false],[0,"\\n\\n"],[13,1],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"ember-radio-button/templates/components/labeled-radio-button.hbs"}})}),define("ember-radio-button/templates/components/radio-button-input",["exports"],function(e){"use strict"
+e.__esModule=!0,e.default=Ember.HTMLBars.template({id:"3/rWZEpA",block:'{"symbols":[],"statements":[],"hasEval":false}',meta:{moduleName:"ember-radio-button/templates/components/radio-button-input.hbs"}})}),define("ember-radio-button/templates/components/radio-button",["exports"],function(e){"use strict"
+e.__esModule=!0,e.default=Ember.HTMLBars.template({id:"MNnQlikJ",block:'{"symbols":["&default"],"statements":[[4,"if",[[23,1]],null,{"statements":[[0," "],[6,"label"],[11,"class",[27,["ember-radio-button ",[26,"if",[[22,["checked"]],[22,["checkedClass"]]],null]," ",[20,"joinedClassNames"]]]],[11,"for",[20,"radioId"]],[8],[0,"\\n "],[1,[26,"radio-button-input",null,[["class","id","autofocus","disabled","name","required","tabindex","groupValue","value","ariaLabelledby","ariaDescribedby","changed"],[[22,["radioClass"]],[22,["radioId"]],[22,["autofocus"]],[22,["disabled"]],[22,["name"]],[22,["required"]],[22,["tabindex"]],[22,["groupValue"]],[22,["value"]],[22,["ariaLabelledby"]],[22,["ariaDescribedby"]],"changed"]]],false],[0,"\\n\\n "],[13,1],[0,"\\n "],[9],[0,"\\n"]],"parameters":[]},{"statements":[[0," "],[1,[26,"radio-button-input",null,[["class","id","autofocus","disabled","name","required","tabindex","groupValue","value","ariaLabelledby","ariaDescribedby","changed"],[[22,["radioClass"]],[22,["radioId"]],[22,["autofocus"]],[22,["disabled"]],[22,["name"]],[22,["required"]],[22,["tabindex"]],[22,["groupValue"]],[22,["value"]],[22,["ariaLabelledby"]],[22,["ariaDescribedby"]],"changed"]]],false],[0,"\\n"]],"parameters":[]}]],"hasEval":false}',meta:{moduleName:"ember-radio-button/templates/components/radio-button.hbs"}})}),define("ember-resolver/features",[],function(){"use strict"}),define("ember-resolver/index",["exports","ember-resolver/resolvers/classic"],function(e,t){"use strict"
+Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ember-resolver/resolver",["exports","ember-resolver/resolvers/classic"],function(e,t){"use strict"
+Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ember-resolver/resolvers/classic/container-debug-adapter",["exports","ember-resolver/resolvers/classic/index"],function(e,t){"use strict"
+function n(e,t,n){var r=t.match(new RegExp("^/?"+n+"/(.+)/"+e+"$"))
+if(null!==r)return r[1]}Object.defineProperty(e,"__esModule",{value:!0})
+var r=Ember.ContainerDebugAdapter
+e.default=r.extend({_moduleRegistry:null,init:function(){this._super.apply(this,arguments),this._moduleRegistry||(this._moduleRegistry=new t.ModuleRegistry)},canCatalogEntriesByType:function(e){return"model"===e||this._super.apply(this,arguments)},catalogEntriesByType:function(e){for(var t=this._moduleRegistry.moduleNames(),r=Ember.A(),i=this.namespace.modulePrefix,o=0,s=t.length;o<s;o++){var a=t[o]
+if(-1!==a.indexOf(e)){var u=n(e,a,this.namespace.podModulePrefix||i)
+u||(u=a.split(e+"s/").pop()),r.addObject(u)}}return r}})}),define("ember-resolver/resolvers/classic/index",["exports","ember-resolver/utils/class-factory","ember-resolver/utils/make-dictionary"],function(e,t,n){"use strict"
+function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e){if(!0===e.parsedName)return e
+var t=void 0,n=void 0,r=void 0,i=e.split("@")
+if("helper:@content-helper"!==e&&2===i.length){var o=i[0].split(":")
+if(2===o.length)t=o[1],n=o[0],r=i[1]
+else{var s=i[1].split(":")
+t=i[0],n=s[0],r=s[1]}"template"===n&&0===t.lastIndexOf("components/",0)&&(r="components/"+r,t=t.slice(11))}else i=e.split(":"),n=i[0],r=i[1]
+var a=r,u=h(this,"namespace"),l=u
+return{parsedName:!0,fullName:e,prefix:t||this.prefix({type:n}),type:n,fullNameWithoutType:a,name:r,root:l,resolveMethodName:"resolve"+c(n)}}function o(e){Ember.assert("`modulePrefix` must be defined",this.namespace.modulePrefix)
+var n=this.findModuleName(e)
+if(n){var r=this._extractDefaultExport(n,e)
+if(void 0===r)throw new Error(" Expected to find: '"+e.fullName+"' within '"+n+"' but got 'undefined'. Did you forget to 'export default' within '"+n+"'?")
+return this.shouldWrapInClassFactory(r,e)&&(r=(0,t.default)(r)),r}return this._super(e)}Object.defineProperty(e,"__esModule",{value:!0}),e.ModuleRegistry=void 0,void 0===requirejs.entries&&(requirejs.entries=requirejs._eak_seen)
+var s=e.ModuleRegistry=function(){function e(t){r(this,e),this._entries=t||requirejs.entries}return e.prototype.moduleNames=function(){return Object.keys(this._entries)},e.prototype.has=function(e){return e in this._entries},e.prototype.get=function(e){return require(e)},e}(),a=Ember.String,u=a.underscore,c=a.classify,l=a.dasherize,h=Ember.get,d=Ember.DefaultResolver,p=d.extend({resolveOther:o,parseName:i,resolveTemplate:o,pluralizedTypes:null,moduleRegistry:null,makeToString:function(e,t){return this.namespace.modulePrefix+"@"+t+":"},shouldWrapInClassFactory:function(){return!1},init:function(){this._super(),this.moduleBasedResolver=!0,this._moduleRegistry||(this._moduleRegistry=new s),this._normalizeCache=(0,n.default)(),this.pluralizedTypes=this.pluralizedTypes||(0,n.default)(),this.pluralizedTypes.config||(this.pluralizedTypes.config="config"),this._deprecatedPodModulePrefix=!1},normalize:function(e){return this._normalizeCache[e]||(this._normalizeCache[e]=this._normalize(e))},_normalize:function(e){var t=e.split(":")
+return t.length>1?"helper"===t[0]?t[0]+":"+t[1].replace(/_/g,"-"):t[0]+":"+l(t[1].replace(/\./g,"/")):e},pluralize:function(e){return this.pluralizedTypes[e]||(this.pluralizedTypes[e]=e+"s")},podBasedLookupWithPrefix:function(e,t){var n=t.fullNameWithoutType
+return"template"===t.type&&(n=n.replace(/^components\//,"")),e+"/"+n+"/"+t.type},podBasedModuleName:function(e){var t=this.namespace.podModulePrefix||this.namespace.modulePrefix
+return this.podBasedLookupWithPrefix(t,e)},podBasedComponentsInSubdir:function(e){var t=this.namespace.podModulePrefix||this.namespace.modulePrefix
+if(t+="/components","component"===e.type||/^components/.test(e.fullNameWithoutType))return this.podBasedLookupWithPrefix(t,e)},resolveEngine:function(e){var t=e.fullNameWithoutType,n=t+"/engine"
+if(this._moduleRegistry.has(n))return this._extractDefaultExport(n)},resolveRouteMap:function(e){var t=e.fullNameWithoutType,n=t+"/routes"
+if(this._moduleRegistry.has(n)){var r=this._extractDefaultExport(n)
+return Ember.assert("The route map for "+t+" should be wrapped by 'buildRoutes' before exporting.",r.isRouteMap),r}},mainModuleName:function(e){if("main"===e.fullNameWithoutType)return e.prefix+"/"+e.type},defaultModuleName:function(e){return e.prefix+"/"+this.pluralize(e.type)+"/"+e.fullNameWithoutType},prefix:function(e){var t=this.namespace.modulePrefix
+return this.namespace[e.type+"Prefix"]&&(t=this.namespace[e.type+"Prefix"]),t},moduleNameLookupPatterns:Ember.computed(function(){return[this.podBasedModuleName,this.podBasedComponentsInSubdir,this.mainModuleName,this.defaultModuleName]}).readOnly(),findModuleName:function(e,t){for(var n=this.get("moduleNameLookupPatterns"),r=void 0,i=0,o=n.length;i<o;i++){var s=n[i],a=s.call(this,e)
+if(a&&(a=this.chooseModuleName(a,e)),a&&this._moduleRegistry.has(a)&&(r=a),t||this._logLookup(r,e,a),r)return r}},chooseModuleName:function(e,t){var n=this,r=u(e)
+if(e!==r&&this._moduleRegistry.has(e)&&this._moduleRegistry.has(r))throw new TypeError("Ambiguous module names: '"+e+"' and '"+r+"'")
+if(this._moduleRegistry.has(e))return e
+if(this._moduleRegistry.has(r))return r
+var i=e.replace(/\/-([^\/]*)$/,"/_$1")
+if(this._moduleRegistry.has(i))return Ember.deprecate('Modules should not contain underscores. Attempted to lookup "'+e+'" which was not found. Please rename "'+i+'" to "'+e+'" instead.',!1,{id:"ember-resolver.underscored-modules",until:"3.0.0"}),i
+Ember.runInDebug(function(){"helper"===t.type&&/[a-z]+[A-Z]+/.test(e)&&(n._camelCaseHelperWarnedNames=n._camelCaseHelperWarnedNames||[],!(n._camelCaseHelperWarnedNames.indexOf(t.fullName)>-1)&&n._moduleRegistry.has(l(e))&&(n._camelCaseHelperWarnedNames.push(t.fullName),Ember.warn('Attempted to lookup "'+t.fullName+'" which was not found. In previous versions of ember-resolver, a bug would have caused the module at "'+l(e)+'" to be returned for this camel case helper name. This has been fixed. Use the dasherized name to resolve the module that would have been returned in previous versions.',!1,{id:"ember-resolver.camelcase-helper-names",until:"3.0.0"})))})},lookupDescription:function(e){var t=this.parseName(e)
+return this.findModuleName(t,!0)},_logLookup:function(e,t,n){if(Ember.ENV.LOG_MODULE_RESOLVER||t.root.LOG_RESOLVER){var r=void 0,i=e?"[✓]":"[ ]"
+r=t.fullName.length>60?".":new Array(60-t.fullName.length).join("."),n||(n=this.lookupDescription(t)),console&&console.info&&console.info(i,t.fullName,r,n)}},knownForType:function(e){for(var t=this._moduleRegistry.moduleNames(),r=(0,n.default)(),i=0,o=t.length;i<o;i++){var s=t[i],a=this.translateToContainerFullname(e,s)
+a&&(r[a]=!0)}return r},translateToContainerFullname:function(e,t){var n=this.prefix({type:e}),r=n+"/",i="/"+e,o=t.indexOf(r),s=t.indexOf(i)
+if(0===o&&s===t.length-i.length&&t.length>r.length+i.length)return e+":"+t.slice(o+r.length,s)
+var a=this.pluralize(e),u=n+"/"+a+"/"
+return 0===t.indexOf(u)&&t.length>u.length?e+":"+t.slice(u.length):void 0},_extractDefaultExport:function(e){var t=require(e,null,null,!0)
+return t&&t.default&&(t=t.default),t}})
+p.reopenClass({moduleBasedResolver:!0}),e.default=p}),define("ember-resolver/utils/class-factory",["exports"],function(e){"use strict"
+function t(e){return{create:function(t){return"function"==typeof e.extend?e.extend(t):e}}}Object.defineProperty(e,"__esModule",{value:!0}),e.default=t}),define("ember-resolver/utils/make-dictionary",["exports"],function(e){"use strict"
+function t(){var e=Object.create(null)
+return e._dict=null,delete e._dict,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=t}),define("ember-truth-helpers/helpers/and",["exports","ember-truth-helpers/utils/truth-convert"],function(e,t){"use strict"
+function n(e){for(var n=0,r=e.length;n<r;n++)if(!1===(0,t.default)(e[n]))return e[n]
+return e[e.length-1]}Object.defineProperty(e,"__esModule",{value:!0}),e.and=n,e.default=Ember.Helper.helper(n)}),define("ember-truth-helpers/helpers/equal",["exports"],function(e){"use strict"
+function t(e){return e[0]===e[1]}Object.defineProperty(e,"__esModule",{value:!0}),e.equal=t,e.default=Ember.Helper.helper(t)}),define("ember-truth-helpers/helpers/gt",["exports"],function(e){"use strict"
+function t(e,t){var n=e[0],r=e[1]
+return t.forceNumber&&("number"!=typeof n&&(n=Number(n)),"number"!=typeof r&&(r=Number(r))),n>r}Object.defineProperty(e,"__esModule",{value:!0}),e.gt=t,e.default=Ember.Helper.helper(t)})
+define("ember-truth-helpers/helpers/gte",["exports"],function(e){"use strict"
+function t(e,t){var n=e[0],r=e[1]
+return t.forceNumber&&("number"!=typeof n&&(n=Number(n)),"number"!=typeof r&&(r=Number(r))),n>=r}Object.defineProperty(e,"__esModule",{value:!0}),e.gte=t,e.default=Ember.Helper.helper(t)}),define("ember-truth-helpers/helpers/is-array",["exports"],function(e){"use strict"
+function t(e){for(var t=0,n=e.length;t<n;t++)if(!1===Ember.isArray(e[t]))return!1
+return!0}Object.defineProperty(e,"__esModule",{value:!0}),e.isArray=t,e.default=Ember.Helper.helper(t)}),define("ember-truth-helpers/helpers/is-equal",["exports"],function(e){"use strict"
+function t(e){var t=n(e,2),r=t[0],i=t[1]
+return Ember.isEqual(r,i)}Object.defineProperty(e,"__esModule",{value:!0}),e.isEqual=t
+var n=function(){function e(e,t){var n=[],r=!0,i=!1,o=void 0
+try{for(var s,a=e[Symbol.iterator]();!(r=(s=a.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(e){i=!0,o=e}finally{try{!r&&a.return&&a.return()}finally{if(i)throw o}}return n}return function(t,n){if(Array.isArray(t))return t
+if(Symbol.iterator in Object(t))return e(t,n)
+throw new TypeError("Invalid attempt to destructure non-iterable instance")}}()
+e.default=Ember.Helper.helper(t)}),define("ember-truth-helpers/helpers/lt",["exports"],function(e){"use strict"
+function t(e,t){var n=e[0],r=e[1]
+return t.forceNumber&&("number"!=typeof n&&(n=Number(n)),"number"!=typeof r&&(r=Number(r))),n<r}Object.defineProperty(e,"__esModule",{value:!0}),e.lt=t,e.default=Ember.Helper.helper(t)}),define("ember-truth-helpers/helpers/lte",["exports"],function(e){"use strict"
+function t(e,t){var n=e[0],r=e[1]
+return t.forceNumber&&("number"!=typeof n&&(n=Number(n)),"number"!=typeof r&&(r=Number(r))),n<=r}Object.defineProperty(e,"__esModule",{value:!0}),e.lte=t,e.default=Ember.Helper.helper(t)}),define("ember-truth-helpers/helpers/not-equal",["exports"],function(e){"use strict"
+function t(e){return e[0]!==e[1]}Object.defineProperty(e,"__esModule",{value:!0}),e.notEqualHelper=t,e.default=Ember.Helper.helper(t)}),define("ember-truth-helpers/helpers/not",["exports","ember-truth-helpers/utils/truth-convert"],function(e,t){"use strict"
+function n(e){for(var n=0,r=e.length;n<r;n++)if(!0===(0,t.default)(e[n]))return!1
+return!0}Object.defineProperty(e,"__esModule",{value:!0}),e.not=n,e.default=Ember.Helper.helper(n)}),define("ember-truth-helpers/helpers/or",["exports","ember-truth-helpers/utils/truth-convert"],function(e,t){"use strict"
+function n(e){for(var n=0,r=e.length;n<r;n++)if(!0===(0,t.default)(e[n]))return e[n]
+return e[e.length-1]}Object.defineProperty(e,"__esModule",{value:!0}),e.or=n,e.default=Ember.Helper.helper(n)}),define("ember-truth-helpers/helpers/xor",["exports","ember-truth-helpers/utils/truth-convert"],function(e,t){"use strict"
+function n(e){return(0,t.default)(e[0])!==(0,t.default)(e[1])}Object.defineProperty(e,"__esModule",{value:!0}),e.xor=n,e.default=Ember.Helper.helper(n)}),define("ember-truth-helpers/utils/truth-convert",["exports"],function(e){"use strict"
+function t(e){var t=e&&Ember.get(e,"isTruthy")
+return"boolean"==typeof t?t:Ember.isArray(e)?0!==Ember.get(e,"length"):!!e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=t})
diff --git a/javascript/release/assets/vendor-61c2b6995db771bb0e33f39a71767638.css b/javascript/release/assets/vendor-61c2b6995db771bb0e33f39a71767638.css
new file mode 100644
index 0000000..17824ea
--- /dev/null
+++ b/javascript/release/assets/vendor-61c2b6995db771bb0e33f39a71767638.css
@@ -0,0 +1,3 @@
+/*! jQuery UI - v1.12.1 - 2018-03-18
+* http://jqueryui.com
+* Copyright jQuery Foundation and other contributors; Licensed MIT */.jstree-anchor:focus,.vakata-context li>a:focus{outline:0}.jstree-anchor,.jstree-node{white-space:nowrap}.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:after,.ui-helper-clearfix:before{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-autohide .ui-resizable-handle,.ui-resizable-disabled .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.jstree-children,.jstree-container-ul,.jstree-node{display:block;margin:0;padding:0;list-style-type:none;list-style-image:none}.jstree-anchor,.jstree-icon,.jstree-icon:empty{display:inline-block;margin:0;vertical-align:top}.jstree-anchor{padding:0 4px 0 1px}.jstree-anchor,.jstree-anchor:active,.jstree-anchor:hover,.jstree-anchor:link,.jstree-anchor:visited{text-decoration:none;color:inherit}.jstree-icon,.jstree-icon:empty{text-decoration:none;padding:0;text-align:center}.jstree-ocl{cursor:pointer}.jstree-leaf>.jstree-ocl{cursor:default}.jstree .jstree-open>.jstree-children{display:block}.jstree .jstree-closed>.jstree-children,.jstree .jstree-leaf>.jstree-children,.jstree-anchor>.jstree-themeicon-hidden,.jstree-hidden,.jstree-no-icons .jstree-themeicon,.jstree-node.jstree-hidden{display:none}.jstree-anchor>.jstree-themeicon{margin-right:2px}.jstree-rtl .jstree-anchor{padding:0 1px 0 4px}.jstree-rtl .jstree-anchor>.jstree-themeicon{margin-left:2px;margin-right:0}.jstree-rtl .jstree-node{margin-left:0}.jstree-rtl .jstree-container-ul>.jstree-node{margin-right:0}.jstree-wholerow-ul{position:relative;display:inline-block;min-width:100%}.jstree-wholerow-ul .jstree-leaf>.jstree-ocl{cursor:pointer}.jstree-wholerow-ul .jstree-anchor,.jstree-wholerow-ul .jstree-icon{position:relative}.jstree-wholerow-ul .jstree-wholerow{width:100%;cursor:pointer;position:absolute;left:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.jstree-contextmenu .jstree-anchor{-webkit-user-select:none;-webkit-touch-callout:none}.vakata-context{display:none}.vakata-context,.vakata-context ul{margin:0;padding:2px;position:absolute;background:#f5f5f5;border:1px solid #979797;box-shadow:2px 2px 2px #999}.vakata-context .vakata-context-hover>a,.vakata-context li>a:hover{position:relative;background-color:#e8eff7;box-shadow:0 0 2px #0a6aa1}.vakata-context ul{list-style:none;left:100%;margin-top:-2.7em;margin-left:-4px}.vakata-context .vakata-context-right ul{left:auto;right:100%;margin-left:auto;margin-right:-4px}.vakata-context li{list-style:none}.vakata-context li>a{display:block;padding:0 2em;text-decoration:none;width:auto;color:#000;white-space:nowrap;line-height:2.4em;text-shadow:1px 1px 0 #fff;border-radius:1px}.vakata-context li>a>i,.vakata-context li>a>i:empty{width:2.4em;line-height:2.4em}.vakata-context li>a.vakata-context-parent{background-image:url(data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAIORI4JlrqN1oMSnmmZDQUAOw==);background-position:right center;background-repeat:no-repeat}.vakata-context .vakata-context-separator>a,.vakata-context .vakata-context-separator>a:hover{background:#fff;border:0;border-top:1px solid #e2e3e3;height:1px;min-height:1px;max-height:1px;padding:0;margin:0 0 0 2.4em;border-left:1px solid #e0e0e0;text-shadow:0 0 0 transparent;box-shadow:0 0 0 transparent;border-radius:0}.vakata-context .vakata-contextmenu-disabled a,.vakata-context .vakata-contextmenu-disabled a:hover{color:silver;background-color:transparent;border:0;box-shadow:0 0 0}.vakata-context li>a>i{text-decoration:none;display:inline-block;height:2.4em;background:0 0;margin:0 0 0 -2em;vertical-align:top;text-align:center}.vakata-context li>a .vakata-contextmenu-sep{display:inline-block;width:1px;height:2.4em;background:#fff;margin:0 .5em 0 0;border-left:1px solid #e2e3e3}.vakata-context .vakata-contextmenu-shortcut{font-size:.8em;color:silver;opacity:.5;display:none}.vakata-context-rtl ul{left:auto;right:100%;margin-left:auto;margin-right:-4px}.vakata-context-rtl li>a.vakata-context-parent{background-image:url(data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAINjI+AC7rWHIsPtmoxLAA7);background-position:left center;background-repeat:no-repeat}.vakata-context-rtl .vakata-context-separator>a{margin:0 2.4em 0 0;border-left:0;border-right:1px solid #e2e3e3}.vakata-context-rtl .vakata-context-left ul{right:auto;left:100%;margin-left:-4px;margin-right:auto}.vakata-context-rtl li>a>i{margin:0 -2em 0 0}.vakata-context-rtl li>a .vakata-contextmenu-sep{margin:0 0 0 .5em;border-left-color:#fff;background:#e2e3e3}#jstree-marker{position:absolute;top:0;left:0;margin:-5px 0 0;padding:0;border-right:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid;width:0;height:0;font-size:0;line-height:0}#jstree-dnd{line-height:16px;margin:0;padding:4px}#jstree-dnd .jstree-copy,#jstree-dnd .jstree-icon{display:inline-block;text-decoration:none;margin:0 2px 0 0;padding:0;width:16px;height:16px}#jstree-dnd .jstree-ok{background:green}#jstree-dnd .jstree-er{background:red}#jstree-dnd .jstree-copy{margin:0 2px}.jstree-default .jstree-icon,.jstree-default .jstree-node{background-repeat:no-repeat;background-color:transparent}.jstree-default .jstree-anchor,.jstree-default .jstree-animated,.jstree-default .jstree-wholerow{transition:background-color .15s,box-shadow .15s}.jstree-default .jstree-context,.jstree-default .jstree-hovered{background:#e7f4f9;border-radius:2px;box-shadow:inset 0 0 1px #ccc}.jstree-default .jstree-clicked{background:#beebff;border-radius:2px;box-shadow:inset 0 0 1px #999}.jstree-default .jstree-no-icons .jstree-anchor>.jstree-themeicon{display:none}.jstree-default .jstree-disabled{color:#666}.jstree-default .jstree-disabled.jstree-hovered{box-shadow:none}.jstree-default .jstree-disabled>.jstree-icon{opacity:.8;filter:url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-default .jstree-search{font-style:italic;color:#8b0000;font-weight:700}.jstree-default .jstree-no-checkboxes .jstree-checkbox{display:none!important}.jstree-default.jstree-checkbox-no-clicked .jstree-clicked{background:0 0;box-shadow:none}.jstree-default.jstree-checkbox-no-clicked .jstree-clicked.jstree-hovered{background:#e7f4f9}.jstree-default.jstree-checkbox-no-clicked>.jstree-wholerow-ul .jstree-wholerow-clicked{background:0 0}.jstree-default.jstree-checkbox-no-clicked>.jstree-wholerow-ul .jstree-wholerow-clicked.jstree-wholerow-hovered{background:#e7f4f9}.jstree-default>.jstree-striped{min-width:100%;display:inline-block;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAMAAAB/qqA+AAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMNAMM9s3UAAAAXSURBVHjajcEBAQAAAIKg/H/aCQZ70AUBjAATb6YPDgAAAABJRU5ErkJggg==) left top}.jstree-default>.jstree-wholerow-ul .jstree-clicked,.jstree-default>.jstree-wholerow-ul .jstree-hovered{background:0 0;box-shadow:none;border-radius:0}.jstree-default .jstree-wholerow{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;height:24px}.jstree-default .jstree-wholerow-hovered{background:#e7f4f9}.jstree-default .jstree-wholerow-clicked{background:#beebff;background:-webkit-linear-gradient(top,#beebff 0,#a8e4ff 100%);background:linear-gradient(to bottom,#beebff 0,#a8e4ff 100%)}.jstree-default .jstree-node{min-height:24px;line-height:24px;margin-left:24px;min-width:24px;background-position:-292px -4px;background-repeat:repeat-y}.jstree-default .jstree-anchor{line-height:24px;height:24px}.jstree-default .jstree-icon,.jstree-default .jstree-icon:empty{width:24px;height:24px;line-height:24px}.jstree-default .jstree-icon,.jstree-default .jstree-node{background-image:url(32px-eebaf260766f5e0e773f53d3ea4f3e4d.png)}.jstree-default .jstree-last{background:0 0}.jstree-default .jstree-open>.jstree-ocl{background-position:-132px -4px}.jstree-default .jstree-closed>.jstree-ocl{background-position:-100px -4px}.jstree-default .jstree-leaf>.jstree-ocl{background-position:-68px -4px}.jstree-default .jstree-themeicon{background-position:-260px -4px}.jstree-default>.jstree-no-dots .jstree-leaf>.jstree-ocl,.jstree-default>.jstree-no-dots .jstree-node{background:0 0}.jstree-default>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-36px -4px}.jstree-default>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-4px -4px}.jstree-default .jstree-disabled,.jstree-default .jstree-disabled.jstree-hovered{background:0 0}.jstree-default .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default .jstree-checkbox{background-position:-164px -4px}.jstree-default .jstree-checkbox:hover{background-position:-164px -36px}.jstree-default .jstree-checked>.jstree-checkbox,.jstree-default.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox{background-position:-228px -4px}.jstree-default .jstree-checked>.jstree-checkbox:hover,.jstree-default.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover{background-position:-228px -36px}.jstree-default .jstree-anchor>.jstree-undetermined{background-position:-196px -4px}.jstree-default .jstree-anchor>.jstree-undetermined:hover{background-position:-196px -36px}.jstree-default .jstree-checkbox-disabled{opacity:.8;filter:url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-default>.jstree-striped{background-size:auto 48px}.jstree-default.jstree-rtl .jstree-node{margin-right:24px;background-position:100% 1px;background-repeat:repeat-y}.jstree-default.jstree-rtl .jstree-open>.jstree-ocl{background-position:-132px -36px}.jstree-default.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-100px -36px}.jstree-default.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-68px -36px}.jstree-default.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl,.jstree-default.jstree-rtl>.jstree-no-dots .jstree-node{background:0 0}.jstree-default.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-36px -36px}.jstree-default.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-4px -36px}.jstree-default .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url(throbber-62be6ed2b189444b472b8000dc187240.gif) center center no-repeat}.jstree-default .jstree-file{background:url(32px-eebaf260766f5e0e773f53d3ea4f3e4d.png) -100px -68px no-repeat}.jstree-default .jstree-folder{background:url(32px-eebaf260766f5e0e773f53d3ea4f3e4d.png) -260px -4px no-repeat}.jstree-default>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}#jstree-dnd.jstree-default{line-height:24px;padding:0 4px}#jstree-dnd.jstree-default .jstree-er,#jstree-dnd.jstree-default .jstree-ok{background-image:url(32px-eebaf260766f5e0e773f53d3ea4f3e4d.png);background-repeat:no-repeat;background-color:transparent}#jstree-dnd.jstree-default i{background:0 0;width:24px;height:24px;line-height:24px}#jstree-dnd.jstree-default .jstree-ok{background-position:-4px -68px}#jstree-dnd.jstree-default .jstree-er{background-position:-36px -68px}.jstree-default .jstree-ellipsis{overflow:hidden}.jstree-default .jstree-ellipsis .jstree-anchor{width:calc(100% - 29px);text-overflow:ellipsis;overflow:hidden}.jstree-default .jstree-ellipsis.jstree-no-icons .jstree-anchor{width:calc(100% - 5px)}#jstree-dnd.jstree-default-small i,.jstree-default-small .jstree-icon,.jstree-default-small .jstree-icon:empty{width:18px;height:18px;line-height:18px}.jstree-default.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==)}.jstree-default.jstree-rtl .jstree-last{background:0 0}.jstree-default-small .jstree-node{min-height:18px;line-height:18px;margin-left:18px;min-width:18px;background-position:-295px -7px;background-repeat:repeat-y}.jstree-default-small .jstree-anchor{line-height:18px;height:18px}.jstree-default-small .jstree-wholerow{height:18px}.jstree-default-small .jstree-icon,.jstree-default-small .jstree-node{background-image:url(32px-eebaf260766f5e0e773f53d3ea4f3e4d.png)}.jstree-default-small .jstree-last{background:0 0}.jstree-default-small .jstree-open>.jstree-ocl{background-position:-135px -7px}.jstree-default-small .jstree-closed>.jstree-ocl{background-position:-103px -7px}.jstree-default-small .jstree-leaf>.jstree-ocl{background-position:-71px -7px}.jstree-default-small .jstree-themeicon{background-position:-263px -7px}.jstree-default-small>.jstree-no-dots .jstree-leaf>.jstree-ocl,.jstree-default-small>.jstree-no-dots .jstree-node{background:0 0}.jstree-default-small>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-39px -7px}.jstree-default-small>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-7px -7px}.jstree-default-small .jstree-disabled,.jstree-default-small .jstree-disabled.jstree-hovered{background:0 0}.jstree-default-small .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default-small .jstree-checkbox{background-position:-167px -7px}.jstree-default-small .jstree-checkbox:hover{background-position:-167px -39px}.jstree-default-small .jstree-checked>.jstree-checkbox,.jstree-default-small.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox{background-position:-231px -7px}.jstree-default-small .jstree-checked>.jstree-checkbox:hover,.jstree-default-small.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover{background-position:-231px -39px}.jstree-default-small .jstree-anchor>.jstree-undetermined{background-position:-199px -7px}.jstree-default-small .jstree-anchor>.jstree-undetermined:hover{background-position:-199px -39px}.jstree-default-small .jstree-checkbox-disabled{opacity:.8;filter:url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-default-small>.jstree-striped{background-size:auto 36px}.jstree-default-small.jstree-rtl .jstree-node{margin-right:18px;background-position:100% 1px;background-repeat:repeat-y}.jstree-default-small.jstree-rtl .jstree-open>.jstree-ocl{background-position:-135px -39px}.jstree-default-small.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-103px -39px}.jstree-default-small.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-71px -39px}.jstree-default-small.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl,.jstree-default-small.jstree-rtl>.jstree-no-dots .jstree-node{background:0 0}.jstree-default-small.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-39px -39px}.jstree-default-small.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-7px -39px}.jstree-default-small .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default-small>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url(throbber-62be6ed2b189444b472b8000dc187240.gif) center center no-repeat}.jstree-default-small .jstree-file{background:url(32px-eebaf260766f5e0e773f53d3ea4f3e4d.png) -103px -71px no-repeat}.jstree-default-small .jstree-folder{background:url(32px-eebaf260766f5e0e773f53d3ea4f3e4d.png) -263px -7px no-repeat}.jstree-default-small>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}#jstree-dnd.jstree-default-small{line-height:18px;padding:0 4px}#jstree-dnd.jstree-default-small .jstree-er,#jstree-dnd.jstree-default-small .jstree-ok{background-image:url(32px-eebaf260766f5e0e773f53d3ea4f3e4d.png);background-repeat:no-repeat;background-color:transparent}#jstree-dnd.jstree-default-small i{background:0 0}#jstree-dnd.jstree-default-small .jstree-ok{background-position:-7px -71px}#jstree-dnd.jstree-default-small .jstree-er{background-position:-39px -71px}.jstree-default-small .jstree-ellipsis{overflow:hidden}.jstree-default-small .jstree-ellipsis .jstree-anchor{width:calc(100% - 23px);text-overflow:ellipsis;overflow:hidden}.jstree-default-small .jstree-ellipsis.jstree-no-icons .jstree-anchor{width:calc(100% - 5px)}#jstree-dnd.jstree-default-large i,.jstree-default-large .jstree-icon,.jstree-default-large .jstree-icon:empty{width:32px;height:32px;line-height:32px}.jstree-default-small.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg==)}.jstree-default-small.jstree-rtl .jstree-last{background:0 0}.jstree-default-large .jstree-node{min-height:32px;line-height:32px;margin-left:32px;min-width:32px;background-position:-288px 0;background-repeat:repeat-y}.jstree-default-large .jstree-anchor{line-height:32px;height:32px}.jstree-default-large .jstree-wholerow{height:32px}.jstree-default-large .jstree-icon,.jstree-default-large .jstree-node{background-image:url(32px-eebaf260766f5e0e773f53d3ea4f3e4d.png)}.jstree-default-large .jstree-last{background:0 0}.jstree-default-large .jstree-open>.jstree-ocl{background-position:-128px 0}.jstree-default-large .jstree-closed>.jstree-ocl{background-position:-96px 0}.jstree-default-large .jstree-leaf>.jstree-ocl{background-position:-64px 0}.jstree-default-large .jstree-themeicon{background-position:-256px 0}.jstree-default-large>.jstree-no-dots .jstree-leaf>.jstree-ocl,.jstree-default-large>.jstree-no-dots .jstree-node{background:0 0}.jstree-default-large>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-32px 0}.jstree-default-large>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:0 0}.jstree-default-large .jstree-disabled,.jstree-default-large .jstree-disabled.jstree-hovered{background:0 0}.jstree-default-large .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default-large .jstree-checkbox{background-position:-160px 0}.jstree-default-large .jstree-checkbox:hover{background-position:-160px -32px}.jstree-default-large .jstree-checked>.jstree-checkbox,.jstree-default-large.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox{background-position:-224px 0}.jstree-default-large .jstree-checked>.jstree-checkbox:hover,.jstree-default-large.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover{background-position:-224px -32px}.jstree-default-large .jstree-anchor>.jstree-undetermined{background-position:-192px 0}.jstree-default-large .jstree-anchor>.jstree-undetermined:hover{background-position:-192px -32px}.jstree-default-large .jstree-checkbox-disabled{opacity:.8;filter:url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-default-large>.jstree-striped{background-size:auto 64px}.jstree-default-large.jstree-rtl .jstree-node{margin-right:32px;background-position:100% 1px;background-repeat:repeat-y}.jstree-default-large.jstree-rtl .jstree-open>.jstree-ocl{background-position:-128px -32px}.jstree-default-large.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-96px -32px}.jstree-default-large.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-64px -32px}.jstree-default-large.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl,.jstree-default-large.jstree-rtl>.jstree-no-dots .jstree-node{background:0 0}.jstree-default-large.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-32px -32px}.jstree-default-large.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:0 -32px}.jstree-default-large .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default-large>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url(throbber-62be6ed2b189444b472b8000dc187240.gif) center center no-repeat}.jstree-default-large .jstree-file{background:url(32px-eebaf260766f5e0e773f53d3ea4f3e4d.png) -96px -64px no-repeat}.jstree-default-large .jstree-folder{background:url(32px-eebaf260766f5e0e773f53d3ea4f3e4d.png) -256px 0 no-repeat}.jstree-default-large>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}#jstree-dnd.jstree-default-large{line-height:32px;padding:0 4px}#jstree-dnd.jstree-default-large .jstree-er,#jstree-dnd.jstree-default-large .jstree-ok{background-image:url(32px-eebaf260766f5e0e773f53d3ea4f3e4d.png);background-repeat:no-repeat;background-color:transparent}#jstree-dnd.jstree-default-large i{background:0 0}#jstree-dnd.jstree-default-large .jstree-ok{background-position:0 -64px}#jstree-dnd.jstree-default-large .jstree-er{background-position:-32px -64px}.jstree-default-large .jstree-ellipsis{overflow:hidden}.jstree-default-large .jstree-ellipsis .jstree-anchor{width:calc(100% - 37px);text-overflow:ellipsis;overflow:hidden}.jstree-default-large .jstree-ellipsis.jstree-no-icons .jstree-anchor{width:calc(100% - 5px)}.jstree-default-large.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg==)}.jstree-default-large.jstree-rtl .jstree-last{background:0 0}@media (max-width:768px){#jstree-dnd.jstree-dnd-responsive{line-height:40px;font-weight:700;font-size:1.1em;text-shadow:1px 1px #fff}#jstree-dnd.jstree-dnd-responsive>i{background:0 0;width:40px;height:40px}#jstree-dnd.jstree-dnd-responsive>.jstree-ok{background-image:url(40px-51286e68b083696edaf4f9fc577e2a2d.png);background-position:0 -200px;background-size:120px 240px}#jstree-dnd.jstree-dnd-responsive>.jstree-er{background-image:url(40px-51286e68b083696edaf4f9fc577e2a2d.png);background-position:-40px -200px;background-size:120px 240px}#jstree-marker.jstree-dnd-responsive{border-left-width:10px;border-top-width:10px;border-bottom-width:10px;margin-top:-10px}.jstree-default-responsive .jstree-leaf>.jstree-ocl,.jstree-default-responsive .jstree-node{background:0 0}.jstree-default-responsive .jstree-node{min-height:40px;line-height:40px;margin-left:40px;min-width:40px;white-space:nowrap}.jstree-default-responsive .jstree-anchor{line-height:40px;height:40px;font-weight:700;font-size:1.1em;text-shadow:1px 1px #fff}.jstree-default-responsive .jstree-icon,.jstree-default-responsive .jstree-icon:empty{width:40px;height:40px;line-height:40px}.jstree-default-responsive.jstree-rtl .jstree-node{margin-left:0;margin-right:40px;background:0 0}.jstree-default-responsive.jstree-rtl .jstree-container-ul>.jstree-node{margin-right:0}.jstree-default-responsive .jstree-checkbox,.jstree-default-responsive .jstree-ocl,.jstree-default-responsive .jstree-themeicon{background-size:120px 240px}.jstree-default-responsive .jstree-leaf>.jstree-ocl,.jstree-default-responsive.jstree-rtl .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-responsive .jstree-open>.jstree-ocl{background-position:0 0!important}.jstree-default-responsive .jstree-closed>.jstree-ocl{background-position:0 -40px!important}.jstree-default-responsive.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-40px 0!important}.jstree-default-responsive .jstree-themeicon{background-position:-40px -40px}.jstree-default-responsive .jstree-checkbox,.jstree-default-responsive .jstree-checkbox:hover{background-position:-40px -80px}.jstree-default-responsive .jstree-checked>.jstree-checkbox,.jstree-default-responsive .jstree-checked>.jstree-checkbox:hover,.jstree-default-responsive.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-default-responsive.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover{background-position:0 -80px}.jstree-default-responsive .jstree-anchor>.jstree-undetermined,.jstree-default-responsive .jstree-anchor>.jstree-undetermined:hover{background-position:0 -120px}.jstree-default-responsive>.jstree-striped{background:0 0}.jstree-default-responsive .jstree-wholerow{border-top:1px solid rgba(255,255,255,.7);border-bottom:1px solid rgba(64,64,64,.2);background:#ebebeb;height:40px}.jstree-default-responsive .jstree-wholerow-hovered{background:#e7f4f9}.jstree-default-responsive .jstree-wholerow-clicked{background:#beebff}.jstree-default-responsive .jstree-children .jstree-last>.jstree-wholerow{box-shadow:inset 0 -6px 3px -5px #666}.jstree-default-responsive .jstree-children .jstree-open>.jstree-wholerow{box-shadow:inset 0 6px 3px -5px #666;border-top:0}.jstree-default-responsive .jstree-children .jstree-open+.jstree-open{box-shadow:none}.jstree-default-responsive .jstree-checkbox,.jstree-default-responsive .jstree-icon,.jstree-default-responsive .jstree-node,.jstree-default-responsive .jstree-node>.jstree-ocl,.jstree-default-responsive .jstree-themeicon{background-image:url(40px-51286e68b083696edaf4f9fc577e2a2d.png);background-size:120px 240px}.jstree-default-responsive .jstree-node{background-position:-80px 0;background-repeat:repeat-y}.jstree-default-responsive .jstree-last{background:0 0}.jstree-default-responsive .jstree-leaf>.jstree-ocl{background-position:-40px -120px}.jstree-default-responsive .jstree-last>.jstree-ocl{background-position:-40px -160px}.jstree-default-responsive .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default-responsive .jstree-file{background:url(40px-51286e68b083696edaf4f9fc577e2a2d.png) 0 -160px no-repeat;background-size:120px 240px}.jstree-default-responsive .jstree-folder{background:url(40px-51286e68b083696edaf4f9fc577e2a2d.png) -40px -40px no-repeat;background-size:120px 240px}.jstree-default-responsive>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}}.pace{-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.pace-inactive{display:none}.pace .pace-progress{background:#d6d6d6;position:fixed;z-index:2000;top:0;right:100%;width:100%;height:2px} \ No newline at end of file
diff --git a/javascript/release/index.html b/javascript/release/index.html
new file mode 100644
index 0000000..36588ec
--- /dev/null
+++ b/javascript/release/index.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <title>Haskell code explorer</title>
+ <meta name="description" content="Haskell code explorer">
+ <meta name="google" content="notranslate">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+
+<meta name="haskell-code-explorer/config/environment" content="%7B%22modulePrefix%22%3A%22haskell-code-explorer%22%2C%22environment%22%3A%22production%22%2C%22rootURL%22%3A%22/%22%2C%22locationType%22%3A%22auto%22%2C%22EmberENV%22%3A%7B%22FEATURES%22%3A%7B%7D%2C%22EXTEND_PROTOTYPES%22%3A%7B%22Date%22%3Afalse%7D%7D%2C%22pace%22%3A%7B%22theme%22%3A%22minimal%22%2C%22color%22%3A%22silver%22%2C%22target%22%3A%22body%22%2C%22elements%22%3A%7B%22checkInterval%22%3A100%2C%22selectors%22%3A%5B%22body%22%2C%22.ember-view%22%5D%7D%2C%22ajax%22%3Afalse%2C%22catchupTime%22%3A50%2C%22initialRate%22%3A0.01%2C%22minTime%22%3A100%2C%22ghostTime%22%3A50%2C%22maxProgressPerFrame%22%3A20%2C%22easeFactor%22%3A1.25%2C%22startOnPageLoad%22%3Atrue%2C%22restartOnPushState%22%3Atrue%2C%22restartOnRequestAfter%22%3A500%2C%22eventLag%22%3A%7B%22minSamples%22%3A10%2C%22sampleCount%22%3A3%2C%22lagThreshold%22%3A3%7D%7D%2C%22APP%22%3A%7B%22staticUrlPrefix%22%3A%22/files%22%2C%22apiUrlPrefix%22%3A%22/api%22%2C%22haskellCodeExplorerDirectory%22%3A%22.haskell-code-explorer%22%2C%22title%22%3A%22Haskell%20code%20explorer%22%2C%22name%22%3A%22haskell-code-explorer%22%2C%22version%22%3A%220.0.1+cdeabaf8%22%7D%2C%22exportApplicationGlobal%22%3Afalse%7D" />
+<script type="text/javascript" data-pace-options='{"color":"silver","theme":"minimal","catchupTime":50,"initialRate":0.01,"minTime":100,"ghostTime":50,"maxProgressPerFrame":20,"easeFactor":1.25,"startOnPageLoad":true,"restartOnPushState":true,"restartOnRequestAfter":500,"target":"body","elements":{"checkInterval":100,"selectors":["body",".ember-view"]},"eventLag":{"minSamples":10,"sampleCount":3,"lagThreshold":3},"ajax":false}'>(function(){var t,e,n,r,s,o,i,u,a,c,l,p,h,f,d,g,m,y,v,w,b,k,S,q,L,x,P,T,R,j,E,O,M,A,N,_,F,C,U,W,X,D,H,I,z,G,B,J,K,Q=[].slice,V={}.hasOwnProperty,Y=function(t,e){function n(){this.constructor=t}for(var r in e)V.call(e,r)&&(t[r]=e[r]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},Z=[].indexOf||function(t){for(var e=0,n=this.length;e<n;e++)if(e in this&&this[e]===t)return e;return-1};for(b={catchupTime:100,initialRate:.03,minTime:250,ghostTime:100,maxProgressPerFrame:20,easeFactor:1.25,startOnPageLoad:!0,restartOnPushState:!0,restartOnRequestAfter:500,target:"body",elements:{checkInterval:100,selectors:["body"]},eventLag:{minSamples:10,sampleCount:3,lagThreshold:3},ajax:{trackMethods:["GET"],trackWebSockets:!0,ignoreURLs:[]}},R=function(){var t;return null!=(t="undefined"!=typeof performance&&null!==performance&&"function"==typeof performance.now?performance.now():void 0)?t:+new Date},E=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame,w=window.cancelAnimationFrame||window.mozCancelAnimationFrame,null==E&&(E=function(t){return setTimeout(t,50)},w=function(t){return clearTimeout(t)}),M=function(t){var e,n;return e=R(),(n=function(){var r;return r=R()-e,r>=33?(e=R(),t(r,function(){return E(n)})):setTimeout(n,33-r)})()},O=function(){var t,e,n;return n=arguments[0],e=arguments[1],t=3<=arguments.length?Q.call(arguments,2):[],"function"==typeof n[e]?n[e].apply(n,t):n[e]},k=function(){var t,e,n,r,s,o,i;for(e=arguments[0],r=2<=arguments.length?Q.call(arguments,1):[],o=0,i=r.length;o<i;o++)if(n=r[o])for(t in n)V.call(n,t)&&(s=n[t],null!=e[t]&&"object"==typeof e[t]&&null!=s&&"object"==typeof s?k(e[t],s):e[t]=s);return e},m=function(t){var e,n,r,s,o;for(n=e=0,s=0,o=t.length;s<o;s++)r=t[s],n+=Math.abs(r),e++;return n/e},q=function(t,e){var n,r,s;if(null==t&&(t="options"),null==e&&(e=!0),s=document.querySelector("[data-pace-"+t+"]")){if(n=s.getAttribute("data-pace-"+t),!e)return n;try{return JSON.parse(n)}catch(t){return r=t,"undefined"!=typeof console&&null!==console?console.error("Error parsing inline pace options",r):void 0}}},i=function(){function t(){}return t.prototype.on=function(t,e,n,r){var s;return null==r&&(r=!1),null==this.bindings&&(this.bindings={}),null==(s=this.bindings)[t]&&(s[t]=[]),this.bindings[t].push({handler:e,ctx:n,once:r})},t.prototype.once=function(t,e,n){return this.on(t,e,n,!0)},t.prototype.off=function(t,e){var n,r,s;if(null!=(null!=(r=this.bindings)?r[t]:void 0)){if(null==e)return delete this.bindings[t];for(n=0,s=[];n<this.bindings[t].length;)this.bindings[t][n].handler===e?s.push(this.bindings[t].splice(n,1)):s.push(n++);return s}},t.prototype.trigger=function(){var t,e,n,r,s,o,i,u,a;if(n=arguments[0],t=2<=arguments.length?Q.call(arguments,1):[],null!=(i=this.bindings)?i[n]:void 0){for(s=0,a=[];s<this.bindings[n].length;)u=this.bindings[n][s],r=u.handler,e=u.ctx,o=u.once,r.apply(null!=e?e:this,t),o?a.push(this.bindings[n].splice(s,1)):a.push(s++);return a}},t}(),c=window.Pace||{},window.Pace=c,k(c,i.prototype),j=c.options=k({},b,window.paceOptions,q()),B=["ajax","document","eventLag","elements"],H=0,z=B.length;H<z;H++)F=B[H],!0===j[F]&&(j[F]=b[F]);a=function(t){function e(){return J=e.__super__.constructor.apply(this,arguments)}return Y(e,t),e}(Error),e=function(){function t(){this.progress=0}return t.prototype.getElement=function(){var t;if(null==this.el){if(!(t=document.querySelector(j.target)))throw new a;this.el=document.createElement("div"),this.el.className="pace pace-active",document.body.className=document.body.className.replace(/pace-done/g,""),document.body.className+=" pace-running",this.el.innerHTML='<div class="pace-progress">\n <div class="pace-progress-inner"></div>\n</div>\n<div class="pace-activity"></div>',null!=t.firstChild?t.insertBefore(this.el,t.firstChild):t.appendChild(this.el)}return this.el},t.prototype.finish=function(){var t;return t=this.getElement(),t.className=t.className.replace("pace-active",""),t.className+=" pace-inactive",document.body.className=document.body.className.replace("pace-running",""),document.body.className+=" pace-done"},t.prototype.update=function(t){return this.progress=t,this.render()},t.prototype.destroy=function(){try{this.getElement().parentNode.removeChild(this.getElement())}catch(t){a=t}return this.el=void 0},t.prototype.render=function(){var t,e,n,r,s,o,i;if(null==document.querySelector(j.target))return!1;for(t=this.getElement(),r="translate3d("+this.progress+"%, 0, 0)",i=["webkitTransform","msTransform","transform"],s=0,o=i.length;s<o;s++)e=i[s],t.children[0].style[e]=r;return(!this.lastRenderedProgress||this.lastRenderedProgress|0!==this.progress|0)&&(t.children[0].setAttribute("data-progress-text",(0|this.progress)+"%"),this.progress>=100?n="99":(n=this.progress<10?"0":"",n+=0|this.progress),t.children[0].setAttribute("data-progress",""+n)),this.lastRenderedProgress=this.progress},t.prototype.done=function(){return this.progress>=100},t}(),u=function(){function t(){this.bindings={}}return t.prototype.trigger=function(t,e){var n,r,s,o,i;if(null!=this.bindings[t]){for(o=this.bindings[t],i=[],r=0,s=o.length;r<s;r++)n=o[r],i.push(n.call(this,e));return i}},t.prototype.on=function(t,e){var n;return null==(n=this.bindings)[t]&&(n[t]=[]),this.bindings[t].push(e)},t}(),D=window.XMLHttpRequest,X=window.XDomainRequest,W=window.WebSocket,S=function(t,e){var n,r;r=[];for(n in e.prototype)try{null==t[n]&&"function"!=typeof e[n]?"function"==typeof Object.defineProperty?r.push(Object.defineProperty(t,n,{get:function(){return e.prototype[n]},configurable:!0,enumerable:!0})):r.push(t[n]=e.prototype[n]):r.push(void 0)}catch(t){t}return r},P=[],c.ignore=function(){var t,e,n;return e=arguments[0],t=2<=arguments.length?Q.call(arguments,1):[],P.unshift("ignore"),n=e.apply(null,t),P.shift(),n},c.track=function(){var t,e,n;return e=arguments[0],t=2<=arguments.length?Q.call(arguments,1):[],P.unshift("track"),n=e.apply(null,t),P.shift(),n},_=function(t){var e;if(null==t&&(t="GET"),"track"===P[0])return"force";if(!P.length&&j.ajax){if("socket"===t&&j.ajax.trackWebSockets)return!0;if(e=t.toUpperCase(),Z.call(j.ajax.trackMethods,e)>=0)return!0}return!1},l=function(t){function e(){var t,n=this;e.__super__.constructor.apply(this,arguments),t=function(t){var e;return e=t.open,t.open=function(r,s,o){return _(r)&&n.trigger("request",{type:r,url:s,request:t}),e.apply(t,arguments)}},window.XMLHttpRequest=function(e){var n;return n=new D(e),t(n),n};try{S(window.XMLHttpRequest,D)}catch(t){}if(null!=X){window.XDomainRequest=function(){var e;return e=new X,t(e),e};try{S(window.XDomainRequest,X)}catch(t){}}if(null!=W&&j.ajax.trackWebSockets){window.WebSocket=function(t,e){var r;return r=null!=e?new W(t,e):new W(t),_("socket")&&n.trigger("request",{type:"socket",url:t,protocols:e,request:r}),r};try{S(window.WebSocket,W)}catch(t){}}}return Y(e,t),e}(u),I=null,L=function(){return null==I&&(I=new l),I},N=function(t){var e,n,r,s;for(s=j.ajax.ignoreURLs,n=0,r=s.length;n<r;n++)if("string"==typeof(e=s[n])){if(-1!==t.indexOf(e))return!0}else if(e.test(t))return!0;return!1},L().on("request",function(e){var n,r,s,o,i;if(o=e.type,s=e.request,i=e.url,!N(i))return c.running||!1===j.restartOnRequestAfter&&"force"!==_(o)?void 0:(r=arguments,n=j.restartOnRequestAfter||0,"boolean"==typeof n&&(n=0),setTimeout(function(){var e,n,i,u,a;if("socket"===o?s.readyState<2:0<(i=s.readyState)&&i<4){for(c.restart(),u=c.sources,a=[],e=0,n=u.length;e<n;e++){if((F=u[e])instanceof t){F.watch.apply(F,r);break}a.push(void 0)}return a}},n))}),t=function(){function t(){var t=this;this.elements=[],L().on("request",function(){return t.watch.apply(t,arguments)})}return t.prototype.watch=function(t){var e,n,r,s;if(r=t.type,e=t.request,s=t.url,!N(s))return n="socket"===r?new f(e):new d(e),this.elements.push(n)},t}(),d=function(){function t(t){var e,n,r,s,o,i=this;if(this.progress=0,null!=window.ProgressEvent)for(null,t.addEventListener("progress",function(t){return t.lengthComputable?i.progress=100*t.loaded/t.total:i.progress=i.progress+(100-i.progress)/2},!1),o=["load","abort","timeout","error"],n=0,r=o.length;n<r;n++)e=o[n],t.addEventListener(e,function(){return i.progress=100},!1);else s=t.onreadystatechange,t.onreadystatechange=function(){var e;return 0===(e=t.readyState)||4===e?i.progress=100:3===t.readyState&&(i.progress=50),"function"==typeof s?s.apply(null,arguments):void 0}}return t}(),f=function(){function t(t){var e,n,r,s,o=this;for(this.progress=0,s=["error","open"],n=0,r=s.length;n<r;n++)e=s[n],t.addEventListener(e,function(){return o.progress=100},!1)}return t}(),r=function(){function t(t){var e,n,r,o;for(null==t&&(t={}),this.elements=[],null==t.selectors&&(t.selectors=[]),o=t.selectors,n=0,r=o.length;n<r;n++)e=o[n],this.elements.push(new s(e))}return t}(),s=function(){function t(t){this.selector=t,this.progress=0,this.check()}return t.prototype.check=function(){var t=this;return document.querySelector(this.selector)?this.done():setTimeout(function(){return t.check()},j.elements.checkInterval)},t.prototype.done=function(){return this.progress=100},t}(),n=function(){function t(){var t,e,n=this;this.progress=null!=(e=this.states[document.readyState])?e:100,t=document.onreadystatechange,document.onreadystatechange=function(){return null!=n.states[document.readyState]&&(n.progress=n.states[document.readyState]),"function"==typeof t?t.apply(null,arguments):void 0}}return t.prototype.states={loading:0,interactive:50,complete:100},t}(),o=function(){function t(){var t,e,n,r,s,o=this;this.progress=0,t=0,s=[],r=0,n=R(),e=setInterval(function(){var i;return i=R()-n-50,n=R(),s.push(i),s.length>j.eventLag.sampleCount&&s.shift(),t=m(s),++r>=j.eventLag.minSamples&&t<j.eventLag.lagThreshold?(o.progress=100,clearInterval(e)):o.progress=3/(t+3)*100},50)}return t}(),h=function(){function t(t){this.source=t,this.last=this.sinceLastUpdate=0,this.rate=j.initialRate,this.catchup=0,this.progress=this.lastProgress=0,null!=this.source&&(this.progress=O(this.source,"progress"))}return t.prototype.tick=function(t,e){var n;return null==e&&(e=O(this.source,"progress")),e>=100&&(this.done=!0),e===this.last?this.sinceLastUpdate+=t:(this.sinceLastUpdate&&(this.rate=(e-this.last)/this.sinceLastUpdate),this.catchup=(e-this.progress)/j.catchupTime,this.sinceLastUpdate=0,this.last=e),e>this.progress&&(this.progress+=this.catchup*t),n=1-Math.pow(this.progress/100,j.easeFactor),this.progress+=n*this.rate*t,this.progress=Math.min(this.lastProgress+j.maxProgressPerFrame,this.progress),this.progress=Math.max(0,this.progress),this.progress=Math.min(100,this.progress),this.lastProgress=this.progress,this.progress},t}(),C=null,A=null,y=null,U=null,g=null,v=null,c.running=!1,x=function(){if(j.restartOnPushState)return c.restart()},null!=window.history.pushState&&(G=window.history.pushState,window.history.pushState=function(){return x(),G.apply(window.history,arguments)}),null!=window.history.replaceState&&(K=window.history.replaceState,window.history.replaceState=function(){return x(),K.apply(window.history,arguments)}),p={ajax:t,elements:r,document:n,eventLag:o},(T=function(){var t,n,r,s,o,i,u,a;for(c.sources=C=[],i=["ajax","elements","document","eventLag"],n=0,s=i.length;n<s;n++)t=i[n],!1!==j[t]&&C.push(new p[t](j[t]));for(a=null!=(u=j.extraSources)?u:[],r=0,o=a.length;r<o;r++)F=a[r],C.push(new F(j));return c.bar=y=new e,A=[],U=new h})(),c.stop=function(){return c.trigger("stop"),c.running=!1,y.destroy(),v=!0,null!=g&&("function"==typeof w&&w(g),g=null),T()},c.restart=function(){return c.trigger("restart"),c.stop(),c.start()},c.go=function(){var t;return c.running=!0,y.render(),t=R(),v=!1,g=M(function(e,n){var r,s,o,i,u,a,l,p,f,d,g,m,w,b,k;for(100-y.progress,s=d=0,o=!0,a=g=0,w=C.length;g<w;a=++g)for(F=C[a],f=null!=A[a]?A[a]:A[a]=[],u=null!=(k=F.elements)?k:[F],l=m=0,b=u.length;m<b;l=++m)i=u[l],p=null!=f[l]?f[l]:f[l]=new h(i),o&=p.done,p.done||(s++,d+=p.tick(e));return r=d/s,y.update(U.tick(e,r)),y.done()||o||v?(y.update(100),c.trigger("done"),setTimeout(function(){return y.finish(),c.running=!1,c.trigger("hide")},Math.max(j.ghostTime,Math.max(j.minTime-(R()-t),0)))):n()})},c.start=function(t){k(j,t),c.running=!0;try{y.render()}catch(t){a=t}return document.querySelector(".pace")?(c.trigger("start"),c.go()):setTimeout(c.start,50)},"function"==typeof define&&define.amd?define(["pace"],function(){return c}):"object"==typeof exports?module.exports=c:j.startOnPageLoad&&c.start()}).call(this);;
+!function(){var t,e=[],n=function(){var e=document.querySelectorAll("script[pace-src]"),n=e.length;t=n;for(var o=0;o<n;o++)c.call(this,o,e[o].getAttribute("pace-src"),a);e=null},a=function(n,a){if(t--,e[n]=a||"",0===t){var c=document.createElement("script");c.type="text/javascript",c.text=e.join(";\n\n"),document.querySelector("body").appendChild(c),e=null,c=null,t=null}},c=function(t,e,n){var a=new XMLHttpRequest;a.open("GET",e,!0),a.onreadystatechange=function(){if(4===this.readyState)if(this.status>=200&&this.status<400){var e=this.responseURL,a=this.responseText;a=a.replace(/sourceMappingURL\=/gm,function(t){return t+e+"/../"}),n(t,a)}else n(t)},a.send(),a=null};!function(t){"loading"!==document.readyState?t():document.addEventListener?document.addEventListener("DOMContentLoaded",t):document.attachEvent("onreadystatechange",function(){"loading"!==document.readyState&&t()})}(n)}();</script>
+ <link rel="stylesheet" href="/assets/vendor-61c2b6995db771bb0e33f39a71767638.css" integrity="sha256-wK08h79IqBqu0uM+pvcl3TdHB7oUQ8DDFhoqrlG4gh4= sha512-mKU1E7GiRYspQ0BldW76zmBhlH63gSan099aN8R/AVah3UZI/EdaSWVILTiMYDj48eywGA1mkvT9NKebkMXrpw==" >
+ <link rel="stylesheet" href="/assets/haskell-code-explorer-7473ab64643f48019c68ec4624ce37cb.css" integrity="sha256-cnyY7YNhL2/eUA936wah5OgxQnt9ULBa33AeAV5kH3c= sha512-pemUX61XdGAq4ZBotErE0kP6V7RA9OfCSr531CvPbN6XCIXKtL1iQyn4z2bygTttKNbUj1tMOUvsdyAknPJMCA==" >
+
+ </head>
+ <body>
+
+ <script pace-src="/assets/vendor-1da6cdb46c95e61ce73ee429881d2b12.js"></script>
+ <script pace-src="/assets/haskell-code-explorer-132e5ea09a5eb8889a4b7fe11ee25e98.js"></script>
+
+ <noscript>You need to enable JavaScript to run this app.</noscript>
+ </body>
+</html>
diff --git a/javascript/release/robots.txt b/javascript/release/robots.txt
new file mode 100644
index 0000000..f591645
--- /dev/null
+++ b/javascript/release/robots.txt
@@ -0,0 +1,3 @@
+# http://www.robotstxt.org
+User-agent: *
+Disallow:
diff --git a/javascript/server/.eslintrc.js b/javascript/server/.eslintrc.js
new file mode 100644
index 0000000..1147d29
--- /dev/null
+++ b/javascript/server/.eslintrc.js
@@ -0,0 +1,5 @@
+module.exports = {
+ env: {
+ node: true
+ }
+};
diff --git a/javascript/server/index.js b/javascript/server/index.js
new file mode 100644
index 0000000..eadf932
--- /dev/null
+++ b/javascript/server/index.js
@@ -0,0 +1,30 @@
+/* eslint-env node */
+'use strict';
+
+//https://discuss.emberjs.com/t/how-to-disable-http-mock-server-within-environment-config-file/6660/9
+
+//To use http mocks from server/mocks for testing:
+//ember server
+//To use real server:
+//ember server --proxy=http://localhost:8080/
+
+function usingProxy() {
+ return !!process.argv.filter(function (arg) {
+ return arg.indexOf('--proxy') === 0;
+ }).length;
+}
+
+module.exports = function(app) {
+ if (usingProxy()) { return; }
+
+ const globSync = require('glob').sync;
+ const mocks = globSync('./mocks/**/*.js', { cwd: __dirname }).map(require);
+ const proxies = globSync('./proxies/**/*.js', { cwd: __dirname }).map(require);
+
+ // Log proxy requests
+ const morgan = require('morgan');
+ app.use(morgan('dev'));
+
+ mocks.forEach(route => route(app));
+ proxies.forEach(route => route(app));
+};
diff --git a/javascript/server/mocks/packages.js b/javascript/server/mocks/packages.js
new file mode 100644
index 0000000..5da80b2
--- /dev/null
+++ b/javascript/server/mocks/packages.js
@@ -0,0 +1,397 @@
+/* eslint-env node */
+'use strict';
+
+const packages = [
+ {
+ "versions": [
+ "0.1.0.0"
+ ],
+ "name": "test-package"
+ }
+];
+
+const testPackage = {
+ "directoryTree": {
+ "tag": "Dir",
+ "contents": [
+ {
+ "tag": "File",
+ "path": "Setup.hs",
+ "isHaskellModule": false,
+ "name": "Setup.hs"
+ },
+ {
+ "tag": "File",
+ "path": "stack-8.0.2.yaml",
+ "isHaskellModule": false,
+ "name": "stack-8.0.2.yaml"
+ },
+ {
+ "tag": "File",
+ "path": "stack.yaml",
+ "isHaskellModule": false,
+ "name": "stack.yaml"
+ },
+ {
+ "tag": "Dir",
+ "contents": [
+ {
+ "tag": "File",
+ "path": "src/Lib.hs",
+ "isHaskellModule": true,
+ "name": "Lib.hs"
+ },
+ {
+ "tag": "File",
+ "path": "src/Types.hs",
+ "isHaskellModule": true,
+ "name": "Types.hs"
+ }
+ ],
+ "name": "src"
+ },
+ {
+ "tag": "Dir",
+ "contents": [
+ {
+ "tag": "File",
+ "path": "app/Main.hs",
+ "isHaskellModule": true,
+ "name": "Main.hs"
+ }
+ ],
+ "name": "app"
+ },
+ {
+ "tag": "Dir",
+ "contents": [
+ {
+ "tag": "File",
+ "path": "test/Spec.hs",
+ "isHaskellModule": true,
+ "name": "Spec.hs"
+ }
+ ],
+ "name": "test"
+ },
+ {
+ "tag": "File",
+ "path": "package.yaml",
+ "isHaskellModule": false,
+ "name": "package.yaml"
+ },
+ {
+ "tag": "File",
+ "path": "test-package.cabal",
+ "isHaskellModule": false,
+ "name": "test-package.cabal"
+ }
+ ],
+ "name": "test-package"
+ },
+ "modules": {
+ "app/Main.hs": [],
+ "src/Types.hs": [],
+ "test/Spec.hs": [],
+ "src/Lib.hs": []
+ },
+ "id": "test-package-0.1.0.0"
+};
+
+const testModuleInfo = {
+ "occurrences": {
+ "3-8-11": {
+ "sort": {
+ "tag": "ModuleId",
+ "contents": {
+ "packageId": {
+ "name": "test-package",
+ "version": "0.1.0.0"
+ },
+ "tag": "ApproximateLocation",
+ "moduleName": "Lib",
+ "name": "Lib",
+ "componentId": "exe-test-package-exe",
+ "entity": "Mod"
+ }
+ },
+ "description": "ImportDecl"
+ },
+ "6-8-16": {
+ "internalId": "4",
+ "sort": {
+ "tag": "ValueId"
+ },
+ "description": "HsVar"
+ },
+ "5-1-5": {
+ "internalId": "0",
+ "sort": {
+ "tag": "ValueId"
+ },
+ "description": "TypeSig"
+ },
+ "5-9-11": {
+ "internalId": "2",
+ "sort": {
+ "tag": "TypeId"
+ },
+ "description": "HsTyVar"
+ },
+ "6-1-5": {
+ "isBinder": true,
+ "internalId": "0",
+ "sort": {
+ "tag": "ValueId"
+ },
+ "description": "Match"
+ },
+ "5-12-14": {
+ "internalId": "3",
+ "sort": {
+ "tag": "TypeId"
+ },
+ "description": "HsTupleTy"
+ }
+ },
+ "identifiers": {
+ "7": {
+ "isExported": false,
+ "idType": {
+ "components": [
+ {
+ "tag": "TyCon",
+ "name": "RuntimeRep",
+ "internalId": "6"
+ }
+ ]
+ },
+ "locationInfo": {
+ "packageId": {
+ "name": "ghc-prim",
+ "version": "0.5.1.1"
+ },
+ "tag": "ApproximateLocation",
+ "haddockAnchorId": "LiftedRep",
+ "moduleName": "GHC.Types",
+ "name": "LiftedRep",
+ "componentId": "lib",
+ "entity": "Val"
+ },
+ "nameSpace": "DataName",
+ "internalId": "7",
+ "sort": "External",
+ "occName": "LiftedRep",
+ "externalId": "ghc-prim-0.5.1.1|GHC.Types|Val|LiftedRep",
+ "demangledOccName": "LiftedRep"
+ },
+ "0": {
+ "isExported": true,
+ "idType": {
+ "components": [
+ {
+ "tag": "TyCon",
+ "name": "IO",
+ "internalId": "2"
+ },
+ {
+ "tag": "Text",
+ "contents": " ()"
+ }
+ ]
+ },
+ "locationInfo": {
+ "packageId": {
+ "name": "test-package",
+ "version": "0.1.0.0"
+ },
+ "tag": "ExactLocation",
+ "moduleName": "Main",
+ "startLine": 6,
+ "endLine": 6,
+ "modulePath": "app/Main.hs",
+ "startColumn": 1,
+ "endColumn": 5
+ },
+ "nameSpace": "VarName",
+ "internalId": "0",
+ "details": "VanillaId",
+ "sort": "External",
+ "occName": "main",
+ "externalId": "test-package-0.1.0.0|Main|Val|main",
+ "demangledOccName": "main"
+ },
+ "4": {
+ "isExported": false,
+ "idType": {
+ "components": [
+ {
+ "tag": "TyCon",
+ "name": "IO",
+ "internalId": "2"
+ },
+ {
+ "tag": "Text",
+ "contents": " ()"
+ }
+ ]
+ },
+ "doc": "<p><span>someFunc documentation</span></p>",
+ "locationInfo": {
+ "packageId": {
+ "name": "test-package",
+ "version": "0.1.0.0"
+ },
+ "tag": "ExactLocation",
+ "moduleName": "Lib",
+ "startLine": 9,
+ "endLine": 9,
+ "modulePath": "src/Lib.hs",
+ "startColumn": 1,
+ "endColumn": 9
+ },
+ "nameSpace": "VarName",
+ "internalId": "4",
+ "details": "VanillaId",
+ "sort": "External",
+ "occName": "someFunc",
+ "externalId": "test-package-0.1.0.0|Lib|Val|someFunc",
+ "demangledOccName": "someFunc"
+ },
+ "2": {
+ "isExported": false,
+ "idType": {
+ "components": [
+ {
+ "tag": "Text",
+ "contents": "* -> *"
+ }
+ ]
+ },
+ "locationInfo": {
+ "packageId": {
+ "name": "ghc-prim",
+ "version": "0.5.1.1"
+ },
+ "tag": "ApproximateLocation",
+ "haddockAnchorId": "IO",
+ "moduleName": "GHC.Types",
+ "name": "IO",
+ "componentId": "lib",
+ "entity": "Typ"
+ },
+ "nameSpace": "TcClsName",
+ "internalId": "2",
+ "sort": "External",
+ "occName": "IO",
+ "externalId": "ghc-prim-0.5.1.1|GHC.Types|Typ|IO",
+ "demangledOccName": "IO"
+ },
+ "5": {
+ "isExported": false,
+ "idType": {
+ "components": [
+ {
+ "tag": "TyCon",
+ "name": "RuntimeRep",
+ "internalId": "6"
+ },
+ {
+ "tag": "Text",
+ "contents": " -> *"
+ }
+ ]
+ },
+ "locationInfo": {
+ "packageId": {
+ "name": "ghc-prim",
+ "version": "0.5.1.1"
+ },
+ "tag": "ApproximateLocation",
+ "haddockAnchorId": "TYPE",
+ "moduleName": "GHC.Prim",
+ "name": "TYPE",
+ "componentId": "lib",
+ "entity": "Typ"
+ },
+ "nameSpace": "TcClsName",
+ "internalId": "5",
+ "sort": "External",
+ "occName": "TYPE",
+ "externalId": "ghc-prim-0.5.1.1|GHC.Prim|Typ|TYPE",
+ "demangledOccName": "TYPE"
+ },
+ "3": {
+ "isExported": false,
+ "idType": {
+ "components": [
+ {
+ "tag": "Text",
+ "contents": "*"
+ }
+ ]
+ },
+ "locationInfo": {
+ "packageId": {
+ "name": "ghc-prim",
+ "version": "0.5.1.1"
+ },
+ "tag": "ApproximateLocation",
+ "haddockAnchorId": "-40--41-",
+ "moduleName": "GHC.Tuple",
+ "name": "()",
+ "componentId": "lib",
+ "entity": "Typ"
+ },
+ "nameSpace": "TcClsName",
+ "internalId": "3",
+ "sort": "External",
+ "occName": "()",
+ "externalId": "ghc-prim-0.5.1.1|GHC.Tuple|Typ|()",
+ "demangledOccName": "()"
+ }
+ },
+ "name": "Main",
+ "sourceCodeHtml": "<table class=\"source-code\"><tbody><tr><td class=\"line-number\" id=\"LN1\">1</td><td class=\"line-content\" data-line=\"1\" id=\"LC1\"><span data-start=\"1\" data-end=\"18\">module Main where</span></td></tr><tr><td class=\"line-number\" id=\"LN2\">2</td><td class=\"line-content\" data-line=\"2\" id=\"LC2\"><span data-start=\"1\" data-end=\"1\"></span></td></tr><tr><td class=\"line-number\" id=\"LN3\">3</td><td class=\"line-content\" data-line=\"3\" id=\"LC3\"><span data-start=\"1\" data-end=\"8\">import </span><span class=\"identifier\" id=\"\" data-occurrence=\"3-8-11\" data-identifier=\"\" data-start=\"8\" data-end=\"11\">Lib</span></td></tr><tr><td class=\"line-number\" id=\"LN4\">4</td><td class=\"line-content\" data-line=\"4\" id=\"LC4\"><span data-start=\"1\" data-end=\"1\"></span></td></tr><tr><td class=\"line-number\" id=\"LN5\">5</td><td class=\"line-content\" data-line=\"5\" id=\"LC5\"><span class=\"identifier\" id=\"1\" data-occurrence=\"5-1-5\" data-identifier=\"0\" data-start=\"1\" data-end=\"5\">main</span><span data-start=\"5\" data-end=\"9\"> :: </span><span class=\"identifier\" id=\"2\" data-occurrence=\"5-9-11\" data-identifier=\"2\" data-start=\"9\" data-end=\"11\">IO</span><span data-start=\"11\" data-end=\"12\"> </span><span class=\"identifier\" id=\"3\" data-occurrence=\"5-12-14\" data-identifier=\"3\" data-start=\"12\" data-end=\"14\">()</span></td></tr><tr><td class=\"line-number\" id=\"LN6\">6</td><td class=\"line-content\" data-line=\"6\" id=\"LC6\"><span class=\"identifier\" id=\"1\" data-occurrence=\"6-1-5\" data-identifier=\"0\" data-start=\"1\" data-end=\"5\">main</span><span data-start=\"5\" data-end=\"8\"> = </span><span class=\"identifier\" id=\"4\" data-occurrence=\"6-8-16\" data-identifier=\"4\" data-start=\"8\" data-end=\"16\">someFunc</span></td></tr><tr><td class=\"line-number\" id=\"LN7\">7</td><td class=\"line-content\" data-line=\"7\" id=\"LC7\"><span data-start=\"1\" data-end=\"1\"></span></td></tr><tr><td class=\"line-number\" id=\"LN8\">8</td><td class=\"line-content\" data-line=\"8\" id=\"LC8\"><span data-start=\"1\" data-end=\"1\"></span></td></tr></tbody></table>",
+ "id": "app/Main.hs",
+ "declarations": [
+ {
+ "isExported": true,
+ "lineNumber": 6,
+ "declType": {
+ "components": [
+ {
+ "tag": "TyCon",
+ "name": "IO",
+ "internalId": "2"
+ },
+ {
+ "tag": "Text",
+ "contents": " ()"
+ }
+ ]
+ },
+ "name": "main",
+ "sort": "ValD"
+ }
+ ]
+};
+
+module.exports = function(app) {
+ const express = require('express');
+ let packagesRouter = express.Router();
+
+ packagesRouter.get('/api/packages', function(req, res) {
+ res.send(packages);
+ });
+
+ packagesRouter.get('/files/test-package-0.1.0.0/.haskell-code-explorer/packageInfo.json', function(req, res) {
+ res.send(testPackage);
+ });
+
+ packagesRouter.get('/files/test-package-0.1.0.0/.haskell-code-explorer/app%252FMain.hs.json', function(req, res) {
+ res.send(testModuleInfo);
+ });
+
+ app.use('/', packagesRouter);
+};
diff --git a/javascript/testem.js b/javascript/testem.js
new file mode 100644
index 0000000..d7710c2
--- /dev/null
+++ b/javascript/testem.js
@@ -0,0 +1,24 @@
+/* eslint-env node */
+module.exports = {
+ test_page: 'tests/index.html?hidepassed',
+ disable_watching: true,
+ launch_in_ci: [
+ 'Chrome'
+ ],
+ launch_in_dev: [
+ 'Chrome'
+ ],
+ browser_args: {
+ Chrome: {
+ mode: 'ci',
+ args: [
+ // --no-sandbox is needed when running Chrome inside a container
+ process.env.TRAVIS ? '--no-sandbox' : null,
+ '--disable-gpu',
+ '--headless',
+ '--remote-debugging-port=0',
+ '--window-size=1440,900'
+ ].filter(Boolean)
+ }
+ }
+};
diff --git a/javascript/tests/.eslintrc.js b/javascript/tests/.eslintrc.js
new file mode 100644
index 0000000..fbf2555
--- /dev/null
+++ b/javascript/tests/.eslintrc.js
@@ -0,0 +1,5 @@
+module.exports = {
+ env: {
+ embertest: true
+ }
+};
diff --git a/javascript/tests/acceptance/haskell-module-test.js b/javascript/tests/acceptance/haskell-module-test.js
new file mode 100644
index 0000000..939c0dd
--- /dev/null
+++ b/javascript/tests/acceptance/haskell-module-test.js
@@ -0,0 +1,28 @@
+import { module, test } from 'qunit';
+import { visit, currentURL, find } from '@ember/test-helpers';
+import { setupApplicationTest } from 'ember-qunit';
+
+
+module('Acceptance | haskell-module', function(hooks) {
+ setupApplicationTest(hooks);
+
+ //Test data is in 'server/mocks/packages.js'
+ test('visiting /package/test-package-0.1.0.0/show/app/Main.hs', async function(assert) {
+ await visit('/package/test-package-0.1.0.0/show/app/Main.hs');
+
+ assert.equal(currentURL(), '/package/test-package-0.1.0.0/show/app/Main.hs');
+
+ const lines = Array.from(find('tbody').children).map((tr) => {
+ return tr.children[1].innerText;
+ });
+
+ assert.deepEqual(lines,["module Main where",
+ "",
+ "import Lib",
+ "",
+ "main :: IO ()",
+ "main = someFunc",
+ "",
+ ""]);
+ });
+});
diff --git a/javascript/tests/acceptance/package-test.js b/javascript/tests/acceptance/package-test.js
new file mode 100644
index 0000000..bdb1fef
--- /dev/null
+++ b/javascript/tests/acceptance/package-test.js
@@ -0,0 +1,23 @@
+import { module, test } from 'qunit';
+import { visit, currentURL, find } from '@ember/test-helpers';
+import { setupApplicationTest } from 'ember-qunit';
+
+
+module('Acceptance | package', function(hooks) {
+ setupApplicationTest(hooks);
+
+ //Test data is in 'server/mocks/packages.js'
+ test('visiting /package/test-package-0.1.0.0', async function(assert) {
+ await visit('/package/test-package-0.1.0.0');
+ assert.equal(currentURL(), '/package/test-package-0.1.0.0');
+
+ const moduleNames = Array.from(find('ul.modules').children).map((li) => {
+ return [li.innerText,li.children[0].getAttribute('href')];
+ });
+
+ assert.deepEqual(moduleNames,[["app/Main.hs","/package/test-package-0.1.0.0/show/app/Main.hs"],
+ ["src/Lib.hs","/package/test-package-0.1.0.0/show/src/Lib.hs"],
+ ["src/Types.hs","/package/test-package-0.1.0.0/show/src/Types.hs"],
+ ["test/Spec.hs","/package/test-package-0.1.0.0/show/test/Spec.hs"]]);
+ });
+});
diff --git a/javascript/tests/acceptance/packages-test.js b/javascript/tests/acceptance/packages-test.js
new file mode 100644
index 0000000..4c970b1
--- /dev/null
+++ b/javascript/tests/acceptance/packages-test.js
@@ -0,0 +1,16 @@
+import { module, test } from 'qunit';
+import { visit, currentURL, find } from '@ember/test-helpers';
+import { setupApplicationTest } from 'ember-qunit';
+
+module('Acceptance | packages', function(hooks) {
+ setupApplicationTest(hooks);
+
+ //Test data is in file 'server/mocks/packages.js'
+ test('visiting /', async function(assert) {
+ await visit('/');
+ assert.equal(currentURL(), '/');
+ const linkToPackage = find('ul a:first-child');
+ assert.equal(linkToPackage.innerText, 'test-package-0.1.0.0');
+ assert.equal(linkToPackage.getAttribute('href'), '/package/test-package-0.1.0.0');
+ });
+});
diff --git a/javascript/tests/helpers/.gitkeep b/javascript/tests/helpers/.gitkeep
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/javascript/tests/helpers/.gitkeep
diff --git a/javascript/tests/index.html b/javascript/tests/index.html
new file mode 100644
index 0000000..19f55cc
--- /dev/null
+++ b/javascript/tests/index.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <title>HaskellCodeExplorer Tests</title>
+ <meta name="description" content="">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+
+ {{content-for "head"}}
+ {{content-for "test-head"}}
+
+ <link rel="stylesheet" href="{{rootURL}}assets/vendor.css">
+ <link rel="stylesheet" href="{{rootURL}}assets/haskell-code-explorer.css">
+ <link rel="stylesheet" href="{{rootURL}}assets/test-support.css">
+
+ {{content-for "head-footer"}}
+ {{content-for "test-head-footer"}}
+ </head>
+ <body>
+ {{content-for "body"}}
+ {{content-for "test-body"}}
+
+ <script src="/testem.js" integrity=""></script>
+ <script src="{{rootURL}}assets/vendor.js"></script>
+ <script src="{{rootURL}}assets/test-support.js"></script>
+ <script src="{{rootURL}}assets/haskell-code-explorer.js"></script>
+ <script src="{{rootURL}}assets/tests.js"></script>
+
+ {{content-for "body-footer"}}
+ {{content-for "test-body-footer"}}
+ </body>
+</html>
diff --git a/javascript/tests/integration/.gitkeep b/javascript/tests/integration/.gitkeep
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/javascript/tests/integration/.gitkeep
diff --git a/javascript/tests/integration/components/.gitkeep b/javascript/tests/integration/components/.gitkeep
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/javascript/tests/integration/components/.gitkeep
diff --git a/javascript/tests/test-helper.js b/javascript/tests/test-helper.js
new file mode 100644
index 0000000..0382a84
--- /dev/null
+++ b/javascript/tests/test-helper.js
@@ -0,0 +1,8 @@
+import Application from '../app';
+import config from '../config/environment';
+import { setApplication } from '@ember/test-helpers';
+import { start } from 'ember-qunit';
+
+setApplication(Application.create(config.APP));
+
+start();
diff --git a/javascript/vendor/.gitkeep b/javascript/vendor/.gitkeep
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/javascript/vendor/.gitkeep
diff --git a/javascript/vendor/jquery-ui-1.12.1.custom/AUTHORS.txt b/javascript/vendor/jquery-ui-1.12.1.custom/AUTHORS.txt
new file mode 100644
index 0000000..a75056b
--- /dev/null
+++ b/javascript/vendor/jquery-ui-1.12.1.custom/AUTHORS.txt
@@ -0,0 +1,333 @@
+Authors ordered by first contribution
+A list of current team members is available at http://jqueryui.com/about
+
+Paul Bakaus <paul.bakaus@gmail.com>
+Richard Worth <rdworth@gmail.com>
+Yehuda Katz <wycats@gmail.com>
+Sean Catchpole <sean@sunsean.com>
+John Resig <jeresig@gmail.com>
+Tane Piper <piper.tane@gmail.com>
+Dmitri Gaskin <dmitrig01@gmail.com>
+Klaus Hartl <klaus.hartl@gmail.com>
+Stefan Petre <stefan.petre@gmail.com>
+Gilles van den Hoven <gilles@webunity.nl>
+Micheil Bryan Smith <micheil@brandedcode.com>
+Jörn Zaefferer <joern.zaefferer@gmail.com>
+Marc Grabanski <m@marcgrabanski.com>
+Keith Wood <kbwood@iinet.com.au>
+Brandon Aaron <brandon.aaron@gmail.com>
+Scott González <scott.gonzalez@gmail.com>
+Eduardo Lundgren <eduardolundgren@gmail.com>
+Aaron Eisenberger <aaronchi@gmail.com>
+Joan Piedra <theneojp@gmail.com>
+Bruno Basto <b.basto@gmail.com>
+Remy Sharp <remy@leftlogic.com>
+Bohdan Ganicky <bohdan.ganicky@gmail.com>
+David Bolter <david.bolter@gmail.com>
+Chi Cheng <cloudream@gmail.com>
+Ca-Phun Ung <pazu2k@gmail.com>
+Ariel Flesler <aflesler@gmail.com>
+Maggie Wachs <maggie@filamentgroup.com>
+Scott Jehl <scottjehl@gmail.com>
+Todd Parker <todd@filamentgroup.com>
+Andrew Powell <andrew@shellscape.org>
+Brant Burnett <btburnett3@gmail.com>
+Douglas Neiner <doug@dougneiner.com>
+Paul Irish <paul.irish@gmail.com>
+Ralph Whitbeck <ralph.whitbeck@gmail.com>
+Thibault Duplessis <thibault.duplessis@gmail.com>
+Dominique Vincent <dominique.vincent@toitl.com>
+Jack Hsu <jack.hsu@gmail.com>
+Adam Sontag <ajpiano@ajpiano.com>
+Carl Fürstenberg <carl@excito.com>
+Kevin Dalman <development@allpro.net>
+Alberto Fernández Capel <afcapel@gmail.com>
+Jacek Jędrzejewski (http://jacek.jedrzejewski.name)
+Ting Kuei <ting@kuei.com>
+Samuel Cormier-Iijima <sam@chide.it>
+Jon Palmer <jonspalmer@gmail.com>
+Ben Hollis <bhollis@amazon.com>
+Justin MacCarthy <Justin@Rubystars.biz>
+Eyal Kobrigo <kobrigo@hotmail.com>
+Tiago Freire <tiago.freire@gmail.com>
+Diego Tres <diegotres@gmail.com>
+Holger Rüprich <holger@rueprich.de>
+Ziling Zhao <zilingzhao@gmail.com>
+Mike Alsup <malsup@gmail.com>
+Robson Braga Araujo <robsonbraga@gmail.com>
+Pierre-Henri Ausseil <ph.ausseil@gmail.com>
+Christopher McCulloh <cmcculloh@gmail.com>
+Andrew Newcomb <ext.github@preceptsoftware.co.uk>
+Lim Chee Aun <cheeaun@gmail.com>
+Jorge Barreiro <yortx.barry@gmail.com>
+Daniel Steigerwald <daniel@steigerwald.cz>
+John Firebaugh <john_firebaugh@bigfix.com>
+John Enters <github@darkdark.net>
+Andrey Kapitcyn <ru.m157y@gmail.com>
+Dmitry Petrov <dpetroff@gmail.com>
+Eric Hynds <eric@hynds.net>
+Chairat Sunthornwiphat <pipo@sixhead.com>
+Josh Varner <josh.varner@gmail.com>
+Stéphane Raimbault <stephane.raimbault@gmail.com>
+Jay Merrifield <fracmak@gmail.com>
+J. Ryan Stinnett <jryans@gmail.com>
+Peter Heiberg <peter@heiberg.se>
+Alex Dovenmuehle <adovenmuehle@gmail.com>
+Jamie Gegerson <git@jamiegegerson.com>
+Raymond Schwartz <skeetergraphics@gmail.com>
+Phillip Barnes <philbar@gmail.com>
+Kyle Wilkinson <kai@wikyd.org>
+Khaled AlHourani <me@khaledalhourani.com>
+Marian Rudzynski <mr@impaled.org>
+Jean-Francois Remy <jeff@melix.org>
+Doug Blood <dougblood@gmail.com>
+Filippo Cavallarin <filippo.cavallarin@codseq.it>
+Heiko Henning <heiko@thehennings.ch>
+Aliaksandr Rahalevich <saksmlz@gmail.com>
+Mario Visic <mario@mariovisic.com>
+Xavi Ramirez <xavi.rmz@gmail.com>
+Max Schnur <max.schnur@gmail.com>
+Saji Nediyanchath <saji89@gmail.com>
+Corey Frang <gnarf37@gmail.com>
+Aaron Peterson <aaronp123@yahoo.com>
+Ivan Peters <ivan@ivanpeters.com>
+Mohamed Cherif Bouchelaghem <cherifbouchelaghem@yahoo.fr>
+Marcos Sousa <falecomigo@marcossousa.com>
+Michael DellaNoce <mdellanoce@mailtrust.com>
+George Marshall <echosx@gmail.com>
+Tobias Brunner <tobias@strongswan.org>
+Martin Solli <msolli@gmail.com>
+David Petersen <public@petersendidit.com>
+Dan Heberden <danheberden@gmail.com>
+William Kevin Manire <williamkmanire@gmail.com>
+Gilmore Davidson <gilmoreorless@gmail.com>
+Michael Wu <michaelmwu@gmail.com>
+Adam Parod <mystic414@gmail.com>
+Guillaume Gautreau <guillaume+github@ghusse.com>
+Marcel Toele <EleotleCram@gmail.com>
+Dan Streetman <ddstreet@ieee.org>
+Matt Hoskins <matt@nipltd.com>
+Giovanni Giacobbi <giovanni@giacobbi.net>
+Kyle Florence <kyle.florence@gmail.com>
+Pavol Hluchý <lopo@losys.sk>
+Hans Hillen <hans.hillen@gmail.com>
+Mark Johnson <virgofx@live.com>
+Trey Hunner <treyhunner@gmail.com>
+Shane Whittet <whittet@gmail.com>
+Edward A Faulkner <ef@alum.mit.edu>
+Adam Baratz <adam@adambaratz.com>
+Kato Kazuyoshi <kato.kazuyoshi@gmail.com>
+Eike Send <eike.send@gmail.com>
+Kris Borchers <kris.borchers@gmail.com>
+Eddie Monge <eddie@eddiemonge.com>
+Israel Tsadok <itsadok@gmail.com>
+Carson McDonald <carson@ioncannon.net>
+Jason Davies <jason@jasondavies.com>
+Garrison Locke <gplocke@gmail.com>
+David Murdoch <david@davidmurdoch.com>
+Benjamin Scott Boyle <benjamins.boyle@gmail.com>
+Jesse Baird <jebaird@gmail.com>
+Jonathan Vingiano <jvingiano@gmail.com>
+Dylan Just <dev@ephox.com>
+Hiroshi Tomita <tomykaira@gmail.com>
+Glenn Goodrich <glenn.goodrich@gmail.com>
+Tarafder Ashek-E-Elahi <mail.ashek@gmail.com>
+Ryan Neufeld <ryan@neufeldmail.com>
+Marc Neuwirth <marc.neuwirth@gmail.com>
+Philip Graham <philip.robert.graham@gmail.com>
+Benjamin Sterling <benjamin.sterling@kenzomedia.com>
+Wesley Walser <waw325@gmail.com>
+Kouhei Sutou <kou@clear-code.com>
+Karl Kirch <karlkrch@gmail.com>
+Chris Kelly <ckdake@ckdake.com>
+Jason Oster <jay@kodewerx.org>
+Felix Nagel <info@felixnagel.com>
+Alexander Polomoshnov <alex.polomoshnov@gmail.com>
+David Leal <dgleal@gmail.com>
+Igor Milla <igor.fsp.milla@gmail.com>
+Dave Methvin <dave.methvin@gmail.com>
+Florian Gutmann <f.gutmann@chronimo.com>
+Marwan Al Jubeh <marwan.aljubeh@gmail.com>
+Milan Broum <midlis@googlemail.com>
+Sebastian Sauer <info@dynpages.de>
+Gaëtan Muller <m.gaetan89@gmail.com>
+Michel Weimerskirch <michel@weimerskirch.net>
+William Griffiths <william@ycymro.com>
+Stojce Slavkovski <stojce@gmail.com>
+David Soms <david.soms@gmail.com>
+David De Sloovere <david.desloovere@outlook.com>
+Michael P. Jung <michael.jung@terreon.de>
+Shannon Pekary <spekary@gmail.com>
+Dan Wellman <danwellman@hotmail.com>
+Matthew Edward Hutton <meh@corefiling.co.uk>
+James Khoury <james@jameskhoury.com>
+Rob Loach <robloach@gmail.com>
+Alberto Monteiro <betimbrasil@gmail.com>
+Alex Rhea <alex.rhea@gmail.com>
+Krzysztof Rosiński <rozwell69@gmail.com>
+Ryan Olton <oltonr@gmail.com>
+Genie <386@mail.com>
+Rick Waldron <waldron.rick@gmail.com>
+Ian Simpson <spoonlikesham@gmail.com>
+Lev Kitsis <spam4lev@gmail.com>
+TJ VanToll <tj.vantoll@gmail.com>
+Justin Domnitz <jdomnitz@gmail.com>
+Douglas Cerna <douglascerna@yahoo.com>
+Bert ter Heide <bertjh@hotmail.com>
+Jasvir Nagra <jasvir@gmail.com>
+Yuriy Khabarov <13real008@gmail.com>
+Harri Kilpiö <harri.kilpio@gmail.com>
+Lado Lomidze <lado.lomidze@gmail.com>
+Amir E. Aharoni <amir.aharoni@mail.huji.ac.il>
+Simon Sattes <simon.sattes@gmail.com>
+Jo Liss <joliss42@gmail.com>
+Guntupalli Karunakar <karunakarg@yahoo.com>
+Shahyar Ghobadpour <shahyar@gmail.com>
+Lukasz Lipinski <uzza17@gmail.com>
+Timo Tijhof <krinklemail@gmail.com>
+Jason Moon <jmoon@socialcast.com>
+Martin Frost <martinf55@hotmail.com>
+Eneko Illarramendi <eneko@illarra.com>
+EungJun Yi <semtlenori@gmail.com>
+Courtland Allen <courtlandallen@gmail.com>
+Viktar Varvanovich <non4eg@gmail.com>
+Danny Trunk <dtrunk90@gmail.com>
+Pavel Stetina <pavel.stetina@nangu.tv>
+Michael Stay <metaweta@gmail.com>
+Steven Roussey <sroussey@gmail.com>
+Michael Hollis <hollis21@gmail.com>
+Lee Rowlands <lee.rowlands@previousnext.com.au>
+Timmy Willison <timmywillisn@gmail.com>
+Karl Swedberg <kswedberg@gmail.com>
+Baoju Yuan <the_guy_1987@hotmail.com>
+Maciej Mroziński <maciej.k.mrozinski@gmail.com>
+Luis Dalmolin <luis.nh@gmail.com>
+Mark Aaron Shirley <maspwr@gmail.com>
+Martin Hoch <martin@fidion.de>
+Jiayi Yang <tr870829@gmail.com>
+Philipp Benjamin Köppchen <xgxtpbk@gws.ms>
+Sindre Sorhus <sindresorhus@gmail.com>
+Bernhard Sirlinger <bernhard.sirlinger@tele2.de>
+Jared A. Scheel <jared@jaredscheel.com>
+Rafael Xavier de Souza <rxaviers@gmail.com>
+John Chen <zhang.z.chen@intel.com>
+Robert Beuligmann <robertbeuligmann@gmail.com>
+Dale Kocian <dale.kocian@gmail.com>
+Mike Sherov <mike.sherov@gmail.com>
+Andrew Couch <andy@couchand.com>
+Marc-Andre Lafortune <github@marc-andre.ca>
+Nate Eagle <nate.eagle@teamaol.com>
+David Souther <davidsouther@gmail.com>
+Mathias Stenbom <mathias@stenbom.com>
+Sergey Kartashov <ebishkek@yandex.ru>
+Avinash R <nashpapa@gmail.com>
+Ethan Romba <ethanromba@gmail.com>
+Cory Gackenheimer <cory.gack@gmail.com>
+Juan Pablo Kaniefsky <jpkaniefsky@gmail.com>
+Roman Salnikov <bardt.dz@gmail.com>
+Anika Henke <anika@selfthinker.org>
+Samuel Bovée <samycookie2000@yahoo.fr>
+Fabrício Matté <ult_combo@hotmail.com>
+Viktor Kojouharov <vkojouharov@gmail.com>
+Pawel Maruszczyk (http://hrabstwo.net)
+Pavel Selitskas <p.selitskas@gmail.com>
+Bjørn Johansen <post@bjornjohansen.no>
+Matthieu Penant <thieum22@hotmail.com>
+Dominic Barnes <dominic@dbarnes.info>
+David Sullivan <david.sullivan@gmail.com>
+Thomas Jaggi <thomas@responsive.ch>
+Vahid Sohrabloo <vahid4134@gmail.com>
+Travis Carden <travis.carden@gmail.com>
+Bruno M. Custódio <bruno@brunomcustodio.com>
+Nathanael Silverman <nathanael.silverman@gmail.com>
+Christian Wenz <christian@wenz.org>
+Steve Urmston <steve@urm.st>
+Zaven Muradyan <megalivoithos@gmail.com>
+Woody Gilk <shadowhand@deviantart.com>
+Zbigniew Motyka <zbigniew.motyka@gmail.com>
+Suhail Alkowaileet <xsoh.k7@gmail.com>
+Toshi MARUYAMA <marutosijp2@yahoo.co.jp>
+David Hansen <hansede@gmail.com>
+Brian Grinstead <briangrinstead@gmail.com>
+Christian Klammer <christian314159@gmail.com>
+Steven Luscher <jquerycla@steveluscher.com>
+Gan Eng Chin <engchin.gan@gmail.com>
+Gabriel Schulhof <gabriel.schulhof@intel.com>
+Alexander Schmitz <arschmitz@gmail.com>
+Vilhjálmur Skúlason <vis@dmm.is>
+Siebrand Mazeland <siebrand@kitano.nl>
+Mohsen Ekhtiari <mohsenekhtiari@yahoo.com>
+Pere Orga <gotrunks@gmail.com>
+Jasper de Groot <mail@ugomobi.com>
+Stephane Deschamps <stephane.deschamps@gmail.com>
+Jyoti Deka <dekajp@gmail.com>
+Andrei Picus <office.nightcrawler@gmail.com>
+Ondrej Novy <novy@ondrej.org>
+Jacob McCutcheon <jacob.mccutcheon@gmail.com>
+Monika Piotrowicz <monika.piotrowicz@gmail.com>
+Imants Horsts <imants.horsts@inbox.lv>
+Eric Dahl <eric.c.dahl@gmail.com>
+Dave Stein <dave@behance.com>
+Dylan Barrell <dylan@barrell.com>
+Daniel DeGroff <djdegroff@gmail.com>
+Michael Wiencek <mwtuea@gmail.com>
+Thomas Meyer <meyertee@gmail.com>
+Ruslan Yakhyaev <ruslan@ruslan.io>
+Brian J. Dowling <bjd-dev@simplicity.net>
+Ben Higgins <ben@extrahop.com>
+Yermo Lamers <yml@yml.com>
+Patrick Stapleton <github@gdi2290.com>
+Trisha Crowley <trisha.crowley@gmail.com>
+Usman Akeju <akeju00+github@gmail.com>
+Rodrigo Menezes <rod333@gmail.com>
+Jacques Perrault <jacques_perrault@us.ibm.com>
+Frederik Elvhage <frederik.elvhage@googlemail.com>
+Will Holley <willholley@gmail.com>
+Uri Gilad <antishok@gmail.com>
+Richard Gibson <richard.gibson@gmail.com>
+Simen Bekkhus <sbekkhus91@gmail.com>
+Chen Eshchar <eshcharc@gmail.com>
+Bruno Pérel <brunoperel@gmail.com>
+Mohammed Alshehri <m@dralshehri.com>
+Lisa Seacat DeLuca <ldeluca@us.ibm.com>
+Anne-Gaelle Colom <coloma@westminster.ac.uk>
+Adam Foster <slimfoster@gmail.com>
+Luke Page <luke.a.page@gmail.com>
+Daniel Owens <daniel@matchstickmixup.com>
+Michael Orchard <morchard@scottlogic.co.uk>
+Marcus Warren <marcus@envoke.com>
+Nils Heuermann <nils@world-of-scripts.de>
+Marco Ziech <marco@ziech.net>
+Patricia Juarez <patrixd@gmail.com>
+Ben Mosher <me@benmosher.com>
+Ablay Keldibek <atomio.ak@gmail.com>
+Thomas Applencourt <thomas.applencourt@irsamc.ups-tlse.fr>
+Jiabao Wu <jiabao.foss@gmail.com>
+Eric Lee Carraway <github@ericcarraway.com>
+Victor Homyakov <vkhomyackov@gmail.com>
+Myeongjin Lee <aranet100@gmail.com>
+Liran Sharir <lsharir@gmail.com>
+Weston Ruter <weston@xwp.co>
+Mani Mishra <manimishra902@gmail.com>
+Hannah Methvin <hannahmethvin@gmail.com>
+Leonardo Balter <leonardo.balter@gmail.com>
+Benjamin Albert <benjamin_a5@yahoo.com>
+Michał Gołębiowski <m.goleb@gmail.com>
+Alyosha Pushak <alyosha.pushak@gmail.com>
+Fahad Ahmad <fahadahmad41@hotmail.com>
+Matt Brundage <github@mattbrundage.com>
+Francesc Baeta <francesc.baeta@gmail.com>
+Piotr Baran <piotros@wp.pl>
+Mukul Hase <mukulhase@gmail.com>
+Konstantin Dinev <kdinev@mail.bw.edu>
+Rand Scullard <rand@randscullard.com>
+Dan Strohl <dan@wjcg.net>
+Maksim Ryzhikov <rv.maksim@gmail.com>
+Amine HADDAD <haddad@allegorie.tv>
+Amanpreet Singh <apsdehal@gmail.com>
+Alexey Balchunas <bleshik@gmail.com>
+Peter Kehl <peter.kehl@gmail.com>
+Peter Dave Hello <hsu@peterdavehello.org>
+Johannes Schäfer <johnschaefer@gmx.de>
+Ville Skyttä <ville.skytta@iki.fi>
+Ryan Oriecuia <ryan.oriecuia@visioncritical.com>
diff --git a/javascript/vendor/jquery-ui-1.12.1.custom/LICENSE.txt b/javascript/vendor/jquery-ui-1.12.1.custom/LICENSE.txt
new file mode 100644
index 0000000..4819e54
--- /dev/null
+++ b/javascript/vendor/jquery-ui-1.12.1.custom/LICENSE.txt
@@ -0,0 +1,43 @@
+Copyright jQuery Foundation and other contributors, https://jquery.org/
+
+This software consists of voluntary contributions made by many
+individuals. For exact contribution history, see the revision history
+available at https://github.com/jquery/jquery-ui
+
+The following license applies to all parts of this software except as
+documented below:
+
+====
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+====
+
+Copyright and related rights for sample code are waived via CC0. Sample
+code is defined as all source code contained within the demos directory.
+
+CC0: http://creativecommons.org/publicdomain/zero/1.0/
+
+====
+
+All files located in the node_modules and external directories are
+externally maintained libraries used by this software which have their
+own licenses; we recommend you read them, as their terms may differ from
+the terms above.
diff --git a/javascript/vendor/jquery-ui-1.12.1.custom/external/jquery/jquery.js b/javascript/vendor/jquery-ui-1.12.1.custom/external/jquery/jquery.js
new file mode 100644
index 0000000..7fc60fc
--- /dev/null
+++ b/javascript/vendor/jquery-ui-1.12.1.custom/external/jquery/jquery.js
@@ -0,0 +1,11008 @@
+/*!
+ * jQuery JavaScript Library v1.12.4
+ * http://jquery.com/
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license
+ * http://jquery.org/license
+ *
+ * Date: 2016-05-20T17:17Z
+ */
+
+(function( global, factory ) {
+
+ if ( typeof module === "object" && typeof module.exports === "object" ) {
+ // For CommonJS and CommonJS-like environments where a proper `window`
+ // is present, execute the factory and get jQuery.
+ // For environments that do not have a `window` with a `document`
+ // (such as Node.js), expose a factory as module.exports.
+ // This accentuates the need for the creation of a real `window`.
+ // e.g. var jQuery = require("jquery")(window);
+ // See ticket #14549 for more info.
+ module.exports = global.document ?
+ factory( global, true ) :
+ function( w ) {
+ if ( !w.document ) {
+ throw new Error( "jQuery requires a window with a document" );
+ }
+ return factory( w );
+ };
+ } else {
+ factory( global );
+ }
+
+// Pass this if window is not defined yet
+}(typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
+
+// Support: Firefox 18+
+// Can't be in strict mode, several libs including ASP.NET trace
+// the stack via arguments.caller.callee and Firefox dies if
+// you try to trace through "use strict" call chains. (#13335)
+//"use strict";
+var deletedIds = [];
+
+var document = window.document;
+
+var slice = deletedIds.slice;
+
+var concat = deletedIds.concat;
+
+var push = deletedIds.push;
+
+var indexOf = deletedIds.indexOf;
+
+var class2type = {};
+
+var toString = class2type.toString;
+
+var hasOwn = class2type.hasOwnProperty;
+
+var support = {};
+
+
+
+var
+ version = "1.12.4",
+
+ // Define a local copy of jQuery
+ jQuery = function( selector, context ) {
+
+ // The jQuery object is actually just the init constructor 'enhanced'
+ // Need init if jQuery is called (just allow error to be thrown if not included)
+ return new jQuery.fn.init( selector, context );
+ },
+
+ // Support: Android<4.1, IE<9
+ // Make sure we trim BOM and NBSP
+ rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
+
+ // Matches dashed string for camelizing
+ rmsPrefix = /^-ms-/,
+ rdashAlpha = /-([\da-z])/gi,
+
+ // Used by jQuery.camelCase as callback to replace()
+ fcamelCase = function( all, letter ) {
+ return letter.toUpperCase();
+ };
+
+jQuery.fn = jQuery.prototype = {
+
+ // The current version of jQuery being used
+ jquery: version,
+
+ constructor: jQuery,
+
+ // Start with an empty selector
+ selector: "",
+
+ // The default length of a jQuery object is 0
+ length: 0,
+
+ toArray: function() {
+ return slice.call( this );
+ },
+
+ // Get the Nth element in the matched element set OR
+ // Get the whole matched element set as a clean array
+ get: function( num ) {
+ return num != null ?
+
+ // Return just the one element from the set
+ ( num < 0 ? this[ num + this.length ] : this[ num ] ) :
+
+ // Return all the elements in a clean array
+ slice.call( this );
+ },
+
+ // Take an array of elements and push it onto the stack
+ // (returning the new matched element set)
+ pushStack: function( elems ) {
+
+ // Build a new jQuery matched element set
+ var ret = jQuery.merge( this.constructor(), elems );
+
+ // Add the old object onto the stack (as a reference)
+ ret.prevObject = this;
+ ret.context = this.context;
+
+ // Return the newly-formed element set
+ return ret;
+ },
+
+ // Execute a callback for every element in the matched set.
+ each: function( callback ) {
+ return jQuery.each( this, callback );
+ },
+
+ map: function( callback ) {
+ return this.pushStack( jQuery.map( this, function( elem, i ) {
+ return callback.call( elem, i, elem );
+ } ) );
+ },
+
+ slice: function() {
+ return this.pushStack( slice.apply( this, arguments ) );
+ },
+
+ first: function() {
+ return this.eq( 0 );
+ },
+
+ last: function() {
+ return this.eq( -1 );
+ },
+
+ eq: function( i ) {
+ var len = this.length,
+ j = +i + ( i < 0 ? len : 0 );
+ return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );
+ },
+
+ end: function() {
+ return this.prevObject || this.constructor();
+ },
+
+ // For internal use only.
+ // Behaves like an Array's method, not like a jQuery method.
+ push: push,
+ sort: deletedIds.sort,
+ splice: deletedIds.splice
+};
+
+jQuery.extend = jQuery.fn.extend = function() {
+ var src, copyIsArray, copy, name, options, clone,
+ target = arguments[ 0 ] || {},
+ i = 1,
+ length = arguments.length,
+ deep = false;
+
+ // Handle a deep copy situation
+ if ( typeof target === "boolean" ) {
+ deep = target;
+
+ // skip the boolean and the target
+ target = arguments[ i ] || {};
+ i++;
+ }
+
+ // Handle case when target is a string or something (possible in deep copy)
+ if ( typeof target !== "object" && !jQuery.isFunction( target ) ) {
+ target = {};
+ }
+
+ // extend jQuery itself if only one argument is passed
+ if ( i === length ) {
+ target = this;
+ i--;
+ }
+
+ for ( ; i < length; i++ ) {
+
+ // Only deal with non-null/undefined values
+ if ( ( options = arguments[ i ] ) != null ) {
+
+ // Extend the base object
+ for ( name in options ) {
+ src = target[ name ];
+ copy = options[ name ];
+
+ // Prevent never-ending loop
+ if ( target === copy ) {
+ continue;
+ }
+
+ // Recurse if we're merging plain objects or arrays
+ if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
+ ( copyIsArray = jQuery.isArray( copy ) ) ) ) {
+
+ if ( copyIsArray ) {
+ copyIsArray = false;
+ clone = src && jQuery.isArray( src ) ? src : [];
+
+ } else {
+ clone = src && jQuery.isPlainObject( src ) ? src : {};
+ }
+
+ // Never move original objects, clone them
+ target[ name ] = jQuery.extend( deep, clone, copy );
+
+ // Don't bring in undefined values
+ } else if ( copy !== undefined ) {
+ target[ name ] = copy;
+ }
+ }
+ }
+ }
+
+ // Return the modified object
+ return target;
+};
+
+jQuery.extend( {
+
+ // Unique for each copy of jQuery on the page
+ expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
+
+ // Assume jQuery is ready without the ready module
+ isReady: true,
+
+ error: function( msg ) {
+ throw new Error( msg );
+ },
+
+ noop: function() {},
+
+ // See test/unit/core.js for details concerning isFunction.
+ // Since version 1.3, DOM methods and functions like alert
+ // aren't supported. They return false on IE (#2968).
+ isFunction: function( obj ) {
+ return jQuery.type( obj ) === "function";
+ },
+
+ isArray: Array.isArray || function( obj ) {
+ return jQuery.type( obj ) === "array";
+ },
+
+ isWindow: function( obj ) {
+ /* jshint eqeqeq: false */
+ return obj != null && obj == obj.window;
+ },
+
+ isNumeric: function( obj ) {
+
+ // parseFloat NaNs numeric-cast false positives (null|true|false|"")
+ // ...but misinterprets leading-number strings, particularly hex literals ("0x...")
+ // subtraction forces infinities to NaN
+ // adding 1 corrects loss of precision from parseFloat (#15100)
+ var realStringObj = obj && obj.toString();
+ return !jQuery.isArray( obj ) && ( realStringObj - parseFloat( realStringObj ) + 1 ) >= 0;
+ },
+
+ isEmptyObject: function( obj ) {
+ var name;
+ for ( name in obj ) {
+ return false;
+ }
+ return true;
+ },
+
+ isPlainObject: function( obj ) {
+ var key;
+
+ // Must be an Object.
+ // Because of IE, we also have to check the presence of the constructor property.
+ // Make sure that DOM nodes and window objects don't pass through, as well
+ if ( !obj || jQuery.type( obj ) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
+ return false;
+ }
+
+ try {
+
+ // Not own constructor property must be Object
+ if ( obj.constructor &&
+ !hasOwn.call( obj, "constructor" ) &&
+ !hasOwn.call( obj.constructor.prototype, "isPrototypeOf" ) ) {
+ return false;
+ }
+ } catch ( e ) {
+
+ // IE8,9 Will throw exceptions on certain host objects #9897
+ return false;
+ }
+
+ // Support: IE<9
+ // Handle iteration over inherited properties before own properties.
+ if ( !support.ownFirst ) {
+ for ( key in obj ) {
+ return hasOwn.call( obj, key );
+ }
+ }
+
+ // Own properties are enumerated firstly, so to speed up,
+ // if last one is own, then all properties are own.
+ for ( key in obj ) {}
+
+ return key === undefined || hasOwn.call( obj, key );
+ },
+
+ type: function( obj ) {
+ if ( obj == null ) {
+ return obj + "";
+ }
+ return typeof obj === "object" || typeof obj === "function" ?
+ class2type[ toString.call( obj ) ] || "object" :
+ typeof obj;
+ },
+
+ // Workarounds based on findings by Jim Driscoll
+ // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context
+ globalEval: function( data ) {
+ if ( data && jQuery.trim( data ) ) {
+
+ // We use execScript on Internet Explorer
+ // We use an anonymous function so that context is window
+ // rather than jQuery in Firefox
+ ( window.execScript || function( data ) {
+ window[ "eval" ].call( window, data ); // jscs:ignore requireDotNotation
+ } )( data );
+ }
+ },
+
+ // Convert dashed to camelCase; used by the css and data modules
+ // Microsoft forgot to hump their vendor prefix (#9572)
+ camelCase: function( string ) {
+ return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
+ },
+
+ nodeName: function( elem, name ) {
+ return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
+ },
+
+ each: function( obj, callback ) {
+ var length, i = 0;
+
+ if ( isArrayLike( obj ) ) {
+ length = obj.length;
+ for ( ; i < length; i++ ) {
+ if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+ break;
+ }
+ }
+ } else {
+ for ( i in obj ) {
+ if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+ break;
+ }
+ }
+ }
+
+ return obj;
+ },
+
+ // Support: Android<4.1, IE<9
+ trim: function( text ) {
+ return text == null ?
+ "" :
+ ( text + "" ).replace( rtrim, "" );
+ },
+
+ // results is for internal usage only
+ makeArray: function( arr, results ) {
+ var ret = results || [];
+
+ if ( arr != null ) {
+ if ( isArrayLike( Object( arr ) ) ) {
+ jQuery.merge( ret,
+ typeof arr === "string" ?
+ [ arr ] : arr
+ );
+ } else {
+ push.call( ret, arr );
+ }
+ }
+
+ return ret;
+ },
+
+ inArray: function( elem, arr, i ) {
+ var len;
+
+ if ( arr ) {
+ if ( indexOf ) {
+ return indexOf.call( arr, elem, i );
+ }
+
+ len = arr.length;
+ i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0;
+
+ for ( ; i < len; i++ ) {
+
+ // Skip accessing in sparse arrays
+ if ( i in arr && arr[ i ] === elem ) {
+ return i;
+ }
+ }
+ }
+
+ return -1;
+ },
+
+ merge: function( first, second ) {
+ var len = +second.length,
+ j = 0,
+ i = first.length;
+
+ while ( j < len ) {
+ first[ i++ ] = second[ j++ ];
+ }
+
+ // Support: IE<9
+ // Workaround casting of .length to NaN on otherwise arraylike objects (e.g., NodeLists)
+ if ( len !== len ) {
+ while ( second[ j ] !== undefined ) {
+ first[ i++ ] = second[ j++ ];
+ }
+ }
+
+ first.length = i;
+
+ return first;
+ },
+
+ grep: function( elems, callback, invert ) {
+ var callbackInverse,
+ matches = [],
+ i = 0,
+ length = elems.length,
+ callbackExpect = !invert;
+
+ // Go through the array, only saving the items
+ // that pass the validator function
+ for ( ; i < length; i++ ) {
+ callbackInverse = !callback( elems[ i ], i );
+ if ( callbackInverse !== callbackExpect ) {
+ matches.push( elems[ i ] );
+ }
+ }
+
+ return matches;
+ },
+
+ // arg is for internal usage only
+ map: function( elems, callback, arg ) {
+ var length, value,
+ i = 0,
+ ret = [];
+
+ // Go through the array, translating each of the items to their new values
+ if ( isArrayLike( elems ) ) {
+ length = elems.length;
+ for ( ; i < length; i++ ) {
+ value = callback( elems[ i ], i, arg );
+
+ if ( value != null ) {
+ ret.push( value );
+ }
+ }
+
+ // Go through every key on the object,
+ } else {
+ for ( i in elems ) {
+ value = callback( elems[ i ], i, arg );
+
+ if ( value != null ) {
+ ret.push( value );
+ }
+ }
+ }
+
+ // Flatten any nested arrays
+ return concat.apply( [], ret );
+ },
+
+ // A global GUID counter for objects
+ guid: 1,
+
+ // Bind a function to a context, optionally partially applying any
+ // arguments.
+ proxy: function( fn, context ) {
+ var args, proxy, tmp;
+
+ if ( typeof context === "string" ) {
+ tmp = fn[ context ];
+ context = fn;
+ fn = tmp;
+ }
+
+ // Quick check to determine if target is callable, in the spec
+ // this throws a TypeError, but we will just return undefined.
+ if ( !jQuery.isFunction( fn ) ) {
+ return undefined;
+ }
+
+ // Simulated bind
+ args = slice.call( arguments, 2 );
+ proxy = function() {
+ return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
+ };
+
+ // Set the guid of unique handler to the same of original handler, so it can be removed
+ proxy.guid = fn.guid = fn.guid || jQuery.guid++;
+
+ return proxy;
+ },
+
+ now: function() {
+ return +( new Date() );
+ },
+
+ // jQuery.support is not used in Core but other projects attach their
+ // properties to it so it needs to exist.
+ support: support
+} );
+
+// JSHint would error on this code due to the Symbol not being defined in ES5.
+// Defining this global in .jshintrc would create a danger of using the global
+// unguarded in another place, it seems safer to just disable JSHint for these
+// three lines.
+/* jshint ignore: start */
+if ( typeof Symbol === "function" ) {
+ jQuery.fn[ Symbol.iterator ] = deletedIds[ Symbol.iterator ];
+}
+/* jshint ignore: end */
+
+// Populate the class2type map
+jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
+function( i, name ) {
+ class2type[ "[object " + name + "]" ] = name.toLowerCase();
+} );
+
+function isArrayLike( obj ) {
+
+ // Support: iOS 8.2 (not reproducible in simulator)
+ // `in` check used to prevent JIT error (gh-2145)
+ // hasOwn isn't used here due to false negatives
+ // regarding Nodelist length in IE
+ var length = !!obj && "length" in obj && obj.length,
+ type = jQuery.type( obj );
+
+ if ( type === "function" || jQuery.isWindow( obj ) ) {
+ return false;
+ }
+
+ return type === "array" || length === 0 ||
+ typeof length === "number" && length > 0 && ( length - 1 ) in obj;
+}
+var Sizzle =
+/*!
+ * Sizzle CSS Selector Engine v2.2.1
+ * http://sizzlejs.com/
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license
+ * http://jquery.org/license
+ *
+ * Date: 2015-10-17
+ */
+(function( window ) {
+
+var i,
+ support,
+ Expr,
+ getText,
+ isXML,
+ tokenize,
+ compile,
+ select,
+ outermostContext,
+ sortInput,
+ hasDuplicate,
+
+ // Local document vars
+ setDocument,
+ document,
+ docElem,
+ documentIsHTML,
+ rbuggyQSA,
+ rbuggyMatches,
+ matches,
+ contains,
+
+ // Instance-specific data
+ expando = "sizzle" + 1 * new Date(),
+ preferredDoc = window.document,
+ dirruns = 0,
+ done = 0,
+ classCache = createCache(),
+ tokenCache = createCache(),
+ compilerCache = createCache(),
+ sortOrder = function( a, b ) {
+ if ( a === b ) {
+ hasDuplicate = true;
+ }
+ return 0;
+ },
+
+ // General-purpose constants
+ MAX_NEGATIVE = 1 << 31,
+
+ // Instance methods
+ hasOwn = ({}).hasOwnProperty,
+ arr = [],
+ pop = arr.pop,
+ push_native = arr.push,
+ push = arr.push,
+ slice = arr.slice,
+ // Use a stripped-down indexOf as it's faster than native
+ // http://jsperf.com/thor-indexof-vs-for/5
+ indexOf = function( list, elem ) {
+ var i = 0,
+ len = list.length;
+ for ( ; i < len; i++ ) {
+ if ( list[i] === elem ) {
+ return i;
+ }
+ }
+ return -1;
+ },
+
+ booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
+
+ // Regular expressions
+
+ // http://www.w3.org/TR/css3-selectors/#whitespace
+ whitespace = "[\\x20\\t\\r\\n\\f]",
+
+ // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
+ identifier = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
+
+ // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
+ attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +
+ // Operator (capture 2)
+ "*([*^$|!~]?=)" + whitespace +
+ // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
+ "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace +
+ "*\\]",
+
+ pseudos = ":(" + identifier + ")(?:\\((" +
+ // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
+ // 1. quoted (capture 3; capture 4 or capture 5)
+ "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +
+ // 2. simple (capture 6)
+ "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +
+ // 3. anything else (capture 2)
+ ".*" +
+ ")\\)|)",
+
+ // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
+ rwhitespace = new RegExp( whitespace + "+", "g" ),
+ rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
+
+ rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
+ rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
+
+ rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
+
+ rpseudo = new RegExp( pseudos ),
+ ridentifier = new RegExp( "^" + identifier + "$" ),
+
+ matchExpr = {
+ "ID": new RegExp( "^#(" + identifier + ")" ),
+ "CLASS": new RegExp( "^\\.(" + identifier + ")" ),
+ "TAG": new RegExp( "^(" + identifier + "|[*])" ),
+ "ATTR": new RegExp( "^" + attributes ),
+ "PSEUDO": new RegExp( "^" + pseudos ),
+ "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
+ "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
+ "*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
+ "bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
+ // For use in libraries implementing .is()
+ // We use this for POS matching in `select`
+ "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
+ whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
+ },
+
+ rinputs = /^(?:input|select|textarea|button)$/i,
+ rheader = /^h\d$/i,
+
+ rnative = /^[^{]+\{\s*\[native \w/,
+
+ // Easily-parseable/retrievable ID or TAG or CLASS selectors
+ rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
+
+ rsibling = /[+~]/,
+ rescape = /'|\\/g,
+
+ // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
+ runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
+ funescape = function( _, escaped, escapedWhitespace ) {
+ var high = "0x" + escaped - 0x10000;
+ // NaN means non-codepoint
+ // Support: Firefox<24
+ // Workaround erroneous numeric interpretation of +"0x"
+ return high !== high || escapedWhitespace ?
+ escaped :
+ high < 0 ?
+ // BMP codepoint
+ String.fromCharCode( high + 0x10000 ) :
+ // Supplemental Plane codepoint (surrogate pair)
+ String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
+ },
+
+ // Used for iframes
+ // See setDocument()
+ // Removing the function wrapper causes a "Permission Denied"
+ // error in IE
+ unloadHandler = function() {
+ setDocument();
+ };
+
+// Optimize for push.apply( _, NodeList )
+try {
+ push.apply(
+ (arr = slice.call( preferredDoc.childNodes )),
+ preferredDoc.childNodes
+ );
+ // Support: Android<4.0
+ // Detect silently failing push.apply
+ arr[ preferredDoc.childNodes.length ].nodeType;
+} catch ( e ) {
+ push = { apply: arr.length ?
+
+ // Leverage slice if possible
+ function( target, els ) {
+ push_native.apply( target, slice.call(els) );
+ } :
+
+ // Support: IE<9
+ // Otherwise append directly
+ function( target, els ) {
+ var j = target.length,
+ i = 0;
+ // Can't trust NodeList.length
+ while ( (target[j++] = els[i++]) ) {}
+ target.length = j - 1;
+ }
+ };
+}
+
+function Sizzle( selector, context, results, seed ) {
+ var m, i, elem, nid, nidselect, match, groups, newSelector,
+ newContext = context && context.ownerDocument,
+
+ // nodeType defaults to 9, since context defaults to document
+ nodeType = context ? context.nodeType : 9;
+
+ results = results || [];
+
+ // Return early from calls with invalid selector or context
+ if ( typeof selector !== "string" || !selector ||
+ nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {
+
+ return results;
+ }
+
+ // Try to shortcut find operations (as opposed to filters) in HTML documents
+ if ( !seed ) {
+
+ if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
+ setDocument( context );
+ }
+ context = context || document;
+
+ if ( documentIsHTML ) {
+
+ // If the selector is sufficiently simple, try using a "get*By*" DOM method
+ // (excepting DocumentFragment context, where the methods don't exist)
+ if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {
+
+ // ID selector
+ if ( (m = match[1]) ) {
+
+ // Document context
+ if ( nodeType === 9 ) {
+ if ( (elem = context.getElementById( m )) ) {
+
+ // Support: IE, Opera, Webkit
+ // TODO: identify versions
+ // getElementById can match elements by name instead of ID
+ if ( elem.id === m ) {
+ results.push( elem );
+ return results;
+ }
+ } else {
+ return results;
+ }
+
+ // Element context
+ } else {
+
+ // Support: IE, Opera, Webkit
+ // TODO: identify versions
+ // getElementById can match elements by name instead of ID
+ if ( newContext && (elem = newContext.getElementById( m )) &&
+ contains( context, elem ) &&
+ elem.id === m ) {
+
+ results.push( elem );
+ return results;
+ }
+ }
+
+ // Type selector
+ } else if ( match[2] ) {
+ push.apply( results, context.getElementsByTagName( selector ) );
+ return results;
+
+ // Class selector
+ } else if ( (m = match[3]) && support.getElementsByClassName &&
+ context.getElementsByClassName ) {
+
+ push.apply( results, context.getElementsByClassName( m ) );
+ return results;
+ }
+ }
+
+ // Take advantage of querySelectorAll
+ if ( support.qsa &&
+ !compilerCache[ selector + " " ] &&
+ (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
+
+ if ( nodeType !== 1 ) {
+ newContext = context;
+ newSelector = selector;
+
+ // qSA looks outside Element context, which is not what we want
+ // Thanks to Andrew Dupont for this workaround technique
+ // Support: IE <=8
+ // Exclude object elements
+ } else if ( context.nodeName.toLowerCase() !== "object" ) {
+
+ // Capture the context ID, setting it first if necessary
+ if ( (nid = context.getAttribute( "id" )) ) {
+ nid = nid.replace( rescape, "\\$&" );
+ } else {
+ context.setAttribute( "id", (nid = expando) );
+ }
+
+ // Prefix every selector in the list
+ groups = tokenize( selector );
+ i = groups.length;
+ nidselect = ridentifier.test( nid ) ? "#" + nid : "[id='" + nid + "']";
+ while ( i-- ) {
+ groups[i] = nidselect + " " + toSelector( groups[i] );
+ }
+ newSelector = groups.join( "," );
+
+ // Expand context for sibling selectors
+ newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
+ context;
+ }
+
+ if ( newSelector ) {
+ try {
+ push.apply( results,
+ newContext.querySelectorAll( newSelector )
+ );
+ return results;
+ } catch ( qsaError ) {
+ } finally {
+ if ( nid === expando ) {
+ context.removeAttribute( "id" );
+ }
+ }
+ }
+ }
+ }
+ }
+
+ // All others
+ return select( selector.replace( rtrim, "$1" ), context, results, seed );
+}
+
+/**
+ * Create key-value caches of limited size
+ * @returns {function(string, object)} Returns the Object data after storing it on itself with
+ * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
+ * deleting the oldest entry
+ */
+function createCache() {
+ var keys = [];
+
+ function cache( key, value ) {
+ // Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
+ if ( keys.push( key + " " ) > Expr.cacheLength ) {
+ // Only keep the most recent entries
+ delete cache[ keys.shift() ];
+ }
+ return (cache[ key + " " ] = value);
+ }
+ return cache;
+}
+
+/**
+ * Mark a function for special use by Sizzle
+ * @param {Function} fn The function to mark
+ */
+function markFunction( fn ) {
+ fn[ expando ] = true;
+ return fn;
+}
+
+/**
+ * Support testing using an element
+ * @param {Function} fn Passed the created div and expects a boolean result
+ */
+function assert( fn ) {
+ var div = document.createElement("div");
+
+ try {
+ return !!fn( div );
+ } catch (e) {
+ return false;
+ } finally {
+ // Remove from its parent by default
+ if ( div.parentNode ) {
+ div.parentNode.removeChild( div );
+ }
+ // release memory in IE
+ div = null;
+ }
+}
+
+/**
+ * Adds the same handler for all of the specified attrs
+ * @param {String} attrs Pipe-separated list of attributes
+ * @param {Function} handler The method that will be applied
+ */
+function addHandle( attrs, handler ) {
+ var arr = attrs.split("|"),
+ i = arr.length;
+
+ while ( i-- ) {
+ Expr.attrHandle[ arr[i] ] = handler;
+ }
+}
+
+/**
+ * Checks document order of two siblings
+ * @param {Element} a
+ * @param {Element} b
+ * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
+ */
+function siblingCheck( a, b ) {
+ var cur = b && a,
+ diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
+ ( ~b.sourceIndex || MAX_NEGATIVE ) -
+ ( ~a.sourceIndex || MAX_NEGATIVE );
+
+ // Use IE sourceIndex if available on both nodes
+ if ( diff ) {
+ return diff;
+ }
+
+ // Check if b follows a
+ if ( cur ) {
+ while ( (cur = cur.nextSibling) ) {
+ if ( cur === b ) {
+ return -1;
+ }
+ }
+ }
+
+ return a ? 1 : -1;
+}
+
+/**
+ * Returns a function to use in pseudos for input types
+ * @param {String} type
+ */
+function createInputPseudo( type ) {
+ return function( elem ) {
+ var name = elem.nodeName.toLowerCase();
+ return name === "input" && elem.type === type;
+ };
+}
+
+/**
+ * Returns a function to use in pseudos for buttons
+ * @param {String} type
+ */
+function createButtonPseudo( type ) {
+ return function( elem ) {
+ var name = elem.nodeName.toLowerCase();
+ return (name === "input" || name === "button") && elem.type === type;
+ };
+}
+
+/**
+ * Returns a function to use in pseudos for positionals
+ * @param {Function} fn
+ */
+function createPositionalPseudo( fn ) {
+ return markFunction(function( argument ) {
+ argument = +argument;
+ return markFunction(function( seed, matches ) {
+ var j,
+ matchIndexes = fn( [], seed.length, argument ),
+ i = matchIndexes.length;
+
+ // Match elements found at the specified indexes
+ while ( i-- ) {
+ if ( seed[ (j = matchIndexes[i]) ] ) {
+ seed[j] = !(matches[j] = seed[j]);
+ }
+ }
+ });
+ });
+}
+
+/**
+ * Checks a node for validity as a Sizzle context
+ * @param {Element|Object=} context
+ * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
+ */
+function testContext( context ) {
+ return context && typeof context.getElementsByTagName !== "undefined" && context;
+}
+
+// Expose support vars for convenience
+support = Sizzle.support = {};
+
+/**
+ * Detects XML nodes
+ * @param {Element|Object} elem An element or a document
+ * @returns {Boolean} True iff elem is a non-HTML XML node
+ */
+isXML = Sizzle.isXML = function( elem ) {
+ // documentElement is verified for cases where it doesn't yet exist
+ // (such as loading iframes in IE - #4833)
+ var documentElement = elem && (elem.ownerDocument || elem).documentElement;
+ return documentElement ? documentElement.nodeName !== "HTML" : false;
+};
+
+/**
+ * Sets document-related variables once based on the current document
+ * @param {Element|Object} [doc] An element or document object to use to set the document
+ * @returns {Object} Returns the current document
+ */
+setDocument = Sizzle.setDocument = function( node ) {
+ var hasCompare, parent,
+ doc = node ? node.ownerDocument || node : preferredDoc;
+
+ // Return early if doc is invalid or already selected
+ if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
+ return document;
+ }
+
+ // Update global variables
+ document = doc;
+ docElem = document.documentElement;
+ documentIsHTML = !isXML( document );
+
+ // Support: IE 9-11, Edge
+ // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936)
+ if ( (parent = document.defaultView) && parent.top !== parent ) {
+ // Support: IE 11
+ if ( parent.addEventListener ) {
+ parent.addEventListener( "unload", unloadHandler, false );
+
+ // Support: IE 9 - 10 only
+ } else if ( parent.attachEvent ) {
+ parent.attachEvent( "onunload", unloadHandler );
+ }
+ }
+
+ /* Attributes
+ ---------------------------------------------------------------------- */
+
+ // Support: IE<8
+ // Verify that getAttribute really returns attributes and not properties
+ // (excepting IE8 booleans)
+ support.attributes = assert(function( div ) {
+ div.className = "i";
+ return !div.getAttribute("className");
+ });
+
+ /* getElement(s)By*
+ ---------------------------------------------------------------------- */
+
+ // Check if getElementsByTagName("*") returns only elements
+ support.getElementsByTagName = assert(function( div ) {
+ div.appendChild( document.createComment("") );
+ return !div.getElementsByTagName("*").length;
+ });
+
+ // Support: IE<9
+ support.getElementsByClassName = rnative.test( document.getElementsByClassName );
+
+ // Support: IE<10
+ // Check if getElementById returns elements by name
+ // The broken getElementById methods don't pick up programatically-set names,
+ // so use a roundabout getElementsByName test
+ support.getById = assert(function( div ) {
+ docElem.appendChild( div ).id = expando;
+ return !document.getElementsByName || !document.getElementsByName( expando ).length;
+ });
+
+ // ID find and filter
+ if ( support.getById ) {
+ Expr.find["ID"] = function( id, context ) {
+ if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
+ var m = context.getElementById( id );
+ return m ? [ m ] : [];
+ }
+ };
+ Expr.filter["ID"] = function( id ) {
+ var attrId = id.replace( runescape, funescape );
+ return function( elem ) {
+ return elem.getAttribute("id") === attrId;
+ };
+ };
+ } else {
+ // Support: IE6/7
+ // getElementById is not reliable as a find shortcut
+ delete Expr.find["ID"];
+
+ Expr.filter["ID"] = function( id ) {
+ var attrId = id.replace( runescape, funescape );
+ return function( elem ) {
+ var node = typeof elem.getAttributeNode !== "undefined" &&
+ elem.getAttributeNode("id");
+ return node && node.value === attrId;
+ };
+ };
+ }
+
+ // Tag
+ Expr.find["TAG"] = support.getElementsByTagName ?
+ function( tag, context ) {
+ if ( typeof context.getElementsByTagName !== "undefined" ) {
+ return context.getElementsByTagName( tag );
+
+ // DocumentFragment nodes don't have gEBTN
+ } else if ( support.qsa ) {
+ return context.querySelectorAll( tag );
+ }
+ } :
+
+ function( tag, context ) {
+ var elem,
+ tmp = [],
+ i = 0,
+ // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too
+ results = context.getElementsByTagName( tag );
+
+ // Filter out possible comments
+ if ( tag === "*" ) {
+ while ( (elem = results[i++]) ) {
+ if ( elem.nodeType === 1 ) {
+ tmp.push( elem );
+ }
+ }
+
+ return tmp;
+ }
+ return results;
+ };
+
+ // Class
+ Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
+ if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) {
+ return context.getElementsByClassName( className );
+ }
+ };
+
+ /* QSA/matchesSelector
+ ---------------------------------------------------------------------- */
+
+ // QSA and matchesSelector support
+
+ // matchesSelector(:active) reports false when true (IE9/Opera 11.5)
+ rbuggyMatches = [];
+
+ // qSa(:focus) reports false when true (Chrome 21)
+ // We allow this because of a bug in IE8/9 that throws an error
+ // whenever `document.activeElement` is accessed on an iframe
+ // So, we allow :focus to pass through QSA all the time to avoid the IE error
+ // See http://bugs.jquery.com/ticket/13378
+ rbuggyQSA = [];
+
+ if ( (support.qsa = rnative.test( document.querySelectorAll )) ) {
+ // Build QSA regex
+ // Regex strategy adopted from Diego Perini
+ assert(function( div ) {
+ // Select is set to empty string on purpose
+ // This is to test IE's treatment of not explicitly
+ // setting a boolean content attribute,
+ // since its presence should be enough
+ // http://bugs.jquery.com/ticket/12359
+ docElem.appendChild( div ).innerHTML = "<a id='" + expando + "'></a>" +
+ "<select id='" + expando + "-\r\\' msallowcapture=''>" +
+ "<option selected=''></option></select>";
+
+ // Support: IE8, Opera 11-12.16
+ // Nothing should be selected when empty strings follow ^= or $= or *=
+ // The test attribute must be unknown in Opera but "safe" for WinRT
+ // http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
+ if ( div.querySelectorAll("[msallowcapture^='']").length ) {
+ rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
+ }
+
+ // Support: IE8
+ // Boolean attributes and "value" are not treated correctly
+ if ( !div.querySelectorAll("[selected]").length ) {
+ rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
+ }
+
+ // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+
+ if ( !div.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
+ rbuggyQSA.push("~=");
+ }
+
+ // Webkit/Opera - :checked should return selected option elements
+ // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+ // IE8 throws error here and will not see later tests
+ if ( !div.querySelectorAll(":checked").length ) {
+ rbuggyQSA.push(":checked");
+ }
+
+ // Support: Safari 8+, iOS 8+
+ // https://bugs.webkit.org/show_bug.cgi?id=136851
+ // In-page `selector#id sibing-combinator selector` fails
+ if ( !div.querySelectorAll( "a#" + expando + "+*" ).length ) {
+ rbuggyQSA.push(".#.+[+~]");
+ }
+ });
+
+ assert(function( div ) {
+ // Support: Windows 8 Native Apps
+ // The type and name attributes are restricted during .innerHTML assignment
+ var input = document.createElement("input");
+ input.setAttribute( "type", "hidden" );
+ div.appendChild( input ).setAttribute( "name", "D" );
+
+ // Support: IE8
+ // Enforce case-sensitivity of name attribute
+ if ( div.querySelectorAll("[name=d]").length ) {
+ rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
+ }
+
+ // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
+ // IE8 throws error here and will not see later tests
+ if ( !div.querySelectorAll(":enabled").length ) {
+ rbuggyQSA.push( ":enabled", ":disabled" );
+ }
+
+ // Opera 10-11 does not throw on post-comma invalid pseudos
+ div.querySelectorAll("*,:x");
+ rbuggyQSA.push(",.*:");
+ });
+ }
+
+ if ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||
+ docElem.webkitMatchesSelector ||
+ docElem.mozMatchesSelector ||
+ docElem.oMatchesSelector ||
+ docElem.msMatchesSelector) )) ) {
+
+ assert(function( div ) {
+ // Check to see if it's possible to do matchesSelector
+ // on a disconnected node (IE 9)
+ support.disconnectedMatch = matches.call( div, "div" );
+
+ // This should fail with an exception
+ // Gecko does not error, returns false instead
+ matches.call( div, "[s!='']:x" );
+ rbuggyMatches.push( "!=", pseudos );
+ });
+ }
+
+ rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
+ rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
+
+ /* Contains
+ ---------------------------------------------------------------------- */
+ hasCompare = rnative.test( docElem.compareDocumentPosition );
+
+ // Element contains another
+ // Purposefully self-exclusive
+ // As in, an element does not contain itself
+ contains = hasCompare || rnative.test( docElem.contains ) ?
+ function( a, b ) {
+ var adown = a.nodeType === 9 ? a.documentElement : a,
+ bup = b && b.parentNode;
+ return a === bup || !!( bup && bup.nodeType === 1 && (
+ adown.contains ?
+ adown.contains( bup ) :
+ a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
+ ));
+ } :
+ function( a, b ) {
+ if ( b ) {
+ while ( (b = b.parentNode) ) {
+ if ( b === a ) {
+ return true;
+ }
+ }
+ }
+ return false;
+ };
+
+ /* Sorting
+ ---------------------------------------------------------------------- */
+
+ // Document order sorting
+ sortOrder = hasCompare ?
+ function( a, b ) {
+
+ // Flag for duplicate removal
+ if ( a === b ) {
+ hasDuplicate = true;
+ return 0;
+ }
+
+ // Sort on method existence if only one input has compareDocumentPosition
+ var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
+ if ( compare ) {
+ return compare;
+ }
+
+ // Calculate position if both inputs belong to the same document
+ compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
+ a.compareDocumentPosition( b ) :
+
+ // Otherwise we know they are disconnected
+ 1;
+
+ // Disconnected nodes
+ if ( compare & 1 ||
+ (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
+
+ // Choose the first element that is related to our preferred document
+ if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
+ return -1;
+ }
+ if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
+ return 1;
+ }
+
+ // Maintain original order
+ return sortInput ?
+ ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
+ 0;
+ }
+
+ return compare & 4 ? -1 : 1;
+ } :
+ function( a, b ) {
+ // Exit early if the nodes are identical
+ if ( a === b ) {
+ hasDuplicate = true;
+ return 0;
+ }
+
+ var cur,
+ i = 0,
+ aup = a.parentNode,
+ bup = b.parentNode,
+ ap = [ a ],
+ bp = [ b ];
+
+ // Parentless nodes are either documents or disconnected
+ if ( !aup || !bup ) {
+ return a === document ? -1 :
+ b === document ? 1 :
+ aup ? -1 :
+ bup ? 1 :
+ sortInput ?
+ ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
+ 0;
+
+ // If the nodes are siblings, we can do a quick check
+ } else if ( aup === bup ) {
+ return siblingCheck( a, b );
+ }
+
+ // Otherwise we need full lists of their ancestors for comparison
+ cur = a;
+ while ( (cur = cur.parentNode) ) {
+ ap.unshift( cur );
+ }
+ cur = b;
+ while ( (cur = cur.parentNode) ) {
+ bp.unshift( cur );
+ }
+
+ // Walk down the tree looking for a discrepancy
+ while ( ap[i] === bp[i] ) {
+ i++;
+ }
+
+ return i ?
+ // Do a sibling check if the nodes have a common ancestor
+ siblingCheck( ap[i], bp[i] ) :
+
+ // Otherwise nodes in our document sort first
+ ap[i] === preferredDoc ? -1 :
+ bp[i] === preferredDoc ? 1 :
+ 0;
+ };
+
+ return document;
+};
+
+Sizzle.matches = function( expr, elements ) {
+ return Sizzle( expr, null, null, elements );
+};
+
+Sizzle.matchesSelector = function( elem, expr ) {
+ // Set document vars if needed
+ if ( ( elem.ownerDocument || elem ) !== document ) {
+ setDocument( elem );
+ }
+
+ // Make sure that attribute selectors are quoted
+ expr = expr.replace( rattributeQuotes, "='$1']" );
+
+ if ( support.matchesSelector && documentIsHTML &&
+ !compilerCache[ expr + " " ] &&
+ ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
+ ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {
+
+ try {
+ var ret = matches.call( elem, expr );
+
+ // IE 9's matchesSelector returns false on disconnected nodes
+ if ( ret || support.disconnectedMatch ||
+ // As well, disconnected nodes are said to be in a document
+ // fragment in IE 9
+ elem.document && elem.document.nodeType !== 11 ) {
+ return ret;
+ }
+ } catch (e) {}
+ }
+
+ return Sizzle( expr, document, null, [ elem ] ).length > 0;
+};
+
+Sizzle.contains = function( context, elem ) {
+ // Set document vars if needed
+ if ( ( context.ownerDocument || context ) !== document ) {
+ setDocument( context );
+ }
+ return contains( context, elem );
+};
+
+Sizzle.attr = function( elem, name ) {
+ // Set document vars if needed
+ if ( ( elem.ownerDocument || elem ) !== document ) {
+ setDocument( elem );
+ }
+
+ var fn = Expr.attrHandle[ name.toLowerCase() ],
+ // Don't get fooled by Object.prototype properties (jQuery #13807)
+ val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
+ fn( elem, name, !documentIsHTML ) :
+ undefined;
+
+ return val !== undefined ?
+ val :
+ support.attributes || !documentIsHTML ?
+ elem.getAttribute( name ) :
+ (val = elem.getAttributeNode(name)) && val.specified ?
+ val.value :
+ null;
+};
+
+Sizzle.error = function( msg ) {
+ throw new Error( "Syntax error, unrecognized expression: " + msg );
+};
+
+/**
+ * Document sorting and removing duplicates
+ * @param {ArrayLike} results
+ */
+Sizzle.uniqueSort = function( results ) {
+ var elem,
+ duplicates = [],
+ j = 0,
+ i = 0;
+
+ // Unless we *know* we can detect duplicates, assume their presence
+ hasDuplicate = !support.detectDuplicates;
+ sortInput = !support.sortStable && results.slice( 0 );
+ results.sort( sortOrder );
+
+ if ( hasDuplicate ) {
+ while ( (elem = results[i++]) ) {
+ if ( elem === results[ i ] ) {
+ j = duplicates.push( i );
+ }
+ }
+ while ( j-- ) {
+ results.splice( duplicates[ j ], 1 );
+ }
+ }
+
+ // Clear input after sorting to release objects
+ // See https://github.com/jquery/sizzle/pull/225
+ sortInput = null;
+
+ return results;
+};
+
+/**
+ * Utility function for retrieving the text value of an array of DOM nodes
+ * @param {Array|Element} elem
+ */
+getText = Sizzle.getText = function( elem ) {
+ var node,
+ ret = "",
+ i = 0,
+ nodeType = elem.nodeType;
+
+ if ( !nodeType ) {
+ // If no nodeType, this is expected to be an array
+ while ( (node = elem[i++]) ) {
+ // Do not traverse comment nodes
+ ret += getText( node );
+ }
+ } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
+ // Use textContent for elements
+ // innerText usage removed for consistency of new lines (jQuery #11153)
+ if ( typeof elem.textContent === "string" ) {
+ return elem.textContent;
+ } else {
+ // Traverse its children
+ for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+ ret += getText( elem );
+ }
+ }
+ } else if ( nodeType === 3 || nodeType === 4 ) {
+ return elem.nodeValue;
+ }
+ // Do not include comment or processing instruction nodes
+
+ return ret;
+};
+
+Expr = Sizzle.selectors = {
+
+ // Can be adjusted by the user
+ cacheLength: 50,
+
+ createPseudo: markFunction,
+
+ match: matchExpr,
+
+ attrHandle: {},
+
+ find: {},
+
+ relative: {
+ ">": { dir: "parentNode", first: true },
+ " ": { dir: "parentNode" },
+ "+": { dir: "previousSibling", first: true },
+ "~": { dir: "previousSibling" }
+ },
+
+ preFilter: {
+ "ATTR": function( match ) {
+ match[1] = match[1].replace( runescape, funescape );
+
+ // Move the given value to match[3] whether quoted or unquoted
+ match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape );
+
+ if ( match[2] === "~=" ) {
+ match[3] = " " + match[3] + " ";
+ }
+
+ return match.slice( 0, 4 );
+ },
+
+ "CHILD": function( match ) {
+ /* matches from matchExpr["CHILD"]
+ 1 type (only|nth|...)
+ 2 what (child|of-type)
+ 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
+ 4 xn-component of xn+y argument ([+-]?\d*n|)
+ 5 sign of xn-component
+ 6 x of xn-component
+ 7 sign of y-component
+ 8 y of y-component
+ */
+ match[1] = match[1].toLowerCase();
+
+ if ( match[1].slice( 0, 3 ) === "nth" ) {
+ // nth-* requires argument
+ if ( !match[3] ) {
+ Sizzle.error( match[0] );
+ }
+
+ // numeric x and y parameters for Expr.filter.CHILD
+ // remember that false/true cast respectively to 0/1
+ match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
+ match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
+
+ // other types prohibit arguments
+ } else if ( match[3] ) {
+ Sizzle.error( match[0] );
+ }
+
+ return match;
+ },
+
+ "PSEUDO": function( match ) {
+ var excess,
+ unquoted = !match[6] && match[2];
+
+ if ( matchExpr["CHILD"].test( match[0] ) ) {
+ return null;
+ }
+
+ // Accept quoted arguments as-is
+ if ( match[3] ) {
+ match[2] = match[4] || match[5] || "";
+
+ // Strip excess characters from unquoted arguments
+ } else if ( unquoted && rpseudo.test( unquoted ) &&
+ // Get excess from tokenize (recursively)
+ (excess = tokenize( unquoted, true )) &&
+ // advance to the next closing parenthesis
+ (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
+
+ // excess is a negative index
+ match[0] = match[0].slice( 0, excess );
+ match[2] = unquoted.slice( 0, excess );
+ }
+
+ // Return only captures needed by the pseudo filter method (type and argument)
+ return match.slice( 0, 3 );
+ }
+ },
+
+ filter: {
+
+ "TAG": function( nodeNameSelector ) {
+ var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
+ return nodeNameSelector === "*" ?
+ function() { return true; } :
+ function( elem ) {
+ return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
+ };
+ },
+
+ "CLASS": function( className ) {
+ var pattern = classCache[ className + " " ];
+
+ return pattern ||
+ (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
+ classCache( className, function( elem ) {
+ return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" );
+ });
+ },
+
+ "ATTR": function( name, operator, check ) {
+ return function( elem ) {
+ var result = Sizzle.attr( elem, name );
+
+ if ( result == null ) {
+ return operator === "!=";
+ }
+ if ( !operator ) {
+ return true;
+ }
+
+ result += "";
+
+ return operator === "=" ? result === check :
+ operator === "!=" ? result !== check :
+ operator === "^=" ? check && result.indexOf( check ) === 0 :
+ operator === "*=" ? check && result.indexOf( check ) > -1 :
+ operator === "$=" ? check && result.slice( -check.length ) === check :
+ operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :
+ operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
+ false;
+ };
+ },
+
+ "CHILD": function( type, what, argument, first, last ) {
+ var simple = type.slice( 0, 3 ) !== "nth",
+ forward = type.slice( -4 ) !== "last",
+ ofType = what === "of-type";
+
+ return first === 1 && last === 0 ?
+
+ // Shortcut for :nth-*(n)
+ function( elem ) {
+ return !!elem.parentNode;
+ } :
+
+ function( elem, context, xml ) {
+ var cache, uniqueCache, outerCache, node, nodeIndex, start,
+ dir = simple !== forward ? "nextSibling" : "previousSibling",
+ parent = elem.parentNode,
+ name = ofType && elem.nodeName.toLowerCase(),
+ useCache = !xml && !ofType,
+ diff = false;
+
+ if ( parent ) {
+
+ // :(first|last|only)-(child|of-type)
+ if ( simple ) {
+ while ( dir ) {
+ node = elem;
+ while ( (node = node[ dir ]) ) {
+ if ( ofType ?
+ node.nodeName.toLowerCase() === name :
+ node.nodeType === 1 ) {
+
+ return false;
+ }
+ }
+ // Reverse direction for :only-* (if we haven't yet done so)
+ start = dir = type === "only" && !start && "nextSibling";
+ }
+ return true;
+ }
+
+ start = [ forward ? parent.firstChild : parent.lastChild ];
+
+ // non-xml :nth-child(...) stores cache data on `parent`
+ if ( forward && useCache ) {
+
+ // Seek `elem` from a previously-cached index
+
+ // ...in a gzip-friendly way
+ node = parent;
+ outerCache = node[ expando ] || (node[ expando ] = {});
+
+ // Support: IE <9 only
+ // Defend against cloned attroperties (jQuery gh-1709)
+ uniqueCache = outerCache[ node.uniqueID ] ||
+ (outerCache[ node.uniqueID ] = {});
+
+ cache = uniqueCache[ type ] || [];
+ nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
+ diff = nodeIndex && cache[ 2 ];
+ node = nodeIndex && parent.childNodes[ nodeIndex ];
+
+ while ( (node = ++nodeIndex && node && node[ dir ] ||
+
+ // Fallback to seeking `elem` from the start
+ (diff = nodeIndex = 0) || start.pop()) ) {
+
+ // When found, cache indexes on `parent` and break
+ if ( node.nodeType === 1 && ++diff && node === elem ) {
+ uniqueCache[ type ] = [ dirruns, nodeIndex, diff ];
+ break;
+ }
+ }
+
+ } else {
+ // Use previously-cached element index if available
+ if ( useCache ) {
+ // ...in a gzip-friendly way
+ node = elem;
+ outerCache = node[ expando ] || (node[ expando ] = {});
+
+ // Support: IE <9 only
+ // Defend against cloned attroperties (jQuery gh-1709)
+ uniqueCache = outerCache[ node.uniqueID ] ||
+ (outerCache[ node.uniqueID ] = {});
+
+ cache = uniqueCache[ type ] || [];
+ nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
+ diff = nodeIndex;
+ }
+
+ // xml :nth-child(...)
+ // or :nth-last-child(...) or :nth(-last)?-of-type(...)
+ if ( diff === false ) {
+ // Use the same loop as above to seek `elem` from the start
+ while ( (node = ++nodeIndex && node && node[ dir ] ||
+ (diff = nodeIndex = 0) || start.pop()) ) {
+
+ if ( ( ofType ?
+ node.nodeName.toLowerCase() === name :
+ node.nodeType === 1 ) &&
+ ++diff ) {
+
+ // Cache the index of each encountered element
+ if ( useCache ) {
+ outerCache = node[ expando ] || (node[ expando ] = {});
+
+ // Support: IE <9 only
+ // Defend against cloned attroperties (jQuery gh-1709)
+ uniqueCache = outerCache[ node.uniqueID ] ||
+ (outerCache[ node.uniqueID ] = {});
+
+ uniqueCache[ type ] = [ dirruns, diff ];
+ }
+
+ if ( node === elem ) {
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ // Incorporate the offset, then check against cycle size
+ diff -= last;
+ return diff === first || ( diff % first === 0 && diff / first >= 0 );
+ }
+ };
+ },
+
+ "PSEUDO": function( pseudo, argument ) {
+ // pseudo-class names are case-insensitive
+ // http://www.w3.org/TR/selectors/#pseudo-classes
+ // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
+ // Remember that setFilters inherits from pseudos
+ var args,
+ fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
+ Sizzle.error( "unsupported pseudo: " + pseudo );
+
+ // The user may use createPseudo to indicate that
+ // arguments are needed to create the filter function
+ // just as Sizzle does
+ if ( fn[ expando ] ) {
+ return fn( argument );
+ }
+
+ // But maintain support for old signatures
+ if ( fn.length > 1 ) {
+ args = [ pseudo, pseudo, "", argument ];
+ return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
+ markFunction(function( seed, matches ) {
+ var idx,
+ matched = fn( seed, argument ),
+ i = matched.length;
+ while ( i-- ) {
+ idx = indexOf( seed, matched[i] );
+ seed[ idx ] = !( matches[ idx ] = matched[i] );
+ }
+ }) :
+ function( elem ) {
+ return fn( elem, 0, args );
+ };
+ }
+
+ return fn;
+ }
+ },
+
+ pseudos: {
+ // Potentially complex pseudos
+ "not": markFunction(function( selector ) {
+ // Trim the selector passed to compile
+ // to avoid treating leading and trailing
+ // spaces as combinators
+ var input = [],
+ results = [],
+ matcher = compile( selector.replace( rtrim, "$1" ) );
+
+ return matcher[ expando ] ?
+ markFunction(function( seed, matches, context, xml ) {
+ var elem,
+ unmatched = matcher( seed, null, xml, [] ),
+ i = seed.length;
+
+ // Match elements unmatched by `matcher`
+ while ( i-- ) {
+ if ( (elem = unmatched[i]) ) {
+ seed[i] = !(matches[i] = elem);
+ }
+ }
+ }) :
+ function( elem, context, xml ) {
+ input[0] = elem;
+ matcher( input, null, xml, results );
+ // Don't keep the element (issue #299)
+ input[0] = null;
+ return !results.pop();
+ };
+ }),
+
+ "has": markFunction(function( selector ) {
+ return function( elem ) {
+ return Sizzle( selector, elem ).length > 0;
+ };
+ }),
+
+ "contains": markFunction(function( text ) {
+ text = text.replace( runescape, funescape );
+ return function( elem ) {
+ return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
+ };
+ }),
+
+ // "Whether an element is represented by a :lang() selector
+ // is based solely on the element's language value
+ // being equal to the identifier C,
+ // or beginning with the identifier C immediately followed by "-".
+ // The matching of C against the element's language value is performed case-insensitively.
+ // The identifier C does not have to be a valid language name."
+ // http://www.w3.org/TR/selectors/#lang-pseudo
+ "lang": markFunction( function( lang ) {
+ // lang value must be a valid identifier
+ if ( !ridentifier.test(lang || "") ) {
+ Sizzle.error( "unsupported lang: " + lang );
+ }
+ lang = lang.replace( runescape, funescape ).toLowerCase();
+ return function( elem ) {
+ var elemLang;
+ do {
+ if ( (elemLang = documentIsHTML ?
+ elem.lang :
+ elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
+
+ elemLang = elemLang.toLowerCase();
+ return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
+ }
+ } while ( (elem = elem.parentNode) && elem.nodeType === 1 );
+ return false;
+ };
+ }),
+
+ // Miscellaneous
+ "target": function( elem ) {
+ var hash = window.location && window.location.hash;
+ return hash && hash.slice( 1 ) === elem.id;
+ },
+
+ "root": function( elem ) {
+ return elem === docElem;
+ },
+
+ "focus": function( elem ) {
+ return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
+ },
+
+ // Boolean properties
+ "enabled": function( elem ) {
+ return elem.disabled === false;
+ },
+
+ "disabled": function( elem ) {
+ return elem.disabled === true;
+ },
+
+ "checked": function( elem ) {
+ // In CSS3, :checked should return both checked and selected elements
+ // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+ var nodeName = elem.nodeName.toLowerCase();
+ return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
+ },
+
+ "selected": function( elem ) {
+ // Accessing this property makes selected-by-default
+ // options in Safari work properly
+ if ( elem.parentNode ) {
+ elem.parentNode.selectedIndex;
+ }
+
+ return elem.selected === true;
+ },
+
+ // Contents
+ "empty": function( elem ) {
+ // http://www.w3.org/TR/selectors/#empty-pseudo
+ // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
+ // but not by others (comment: 8; processing instruction: 7; etc.)
+ // nodeType < 6 works because attributes (2) do not appear as children
+ for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+ if ( elem.nodeType < 6 ) {
+ return false;
+ }
+ }
+ return true;
+ },
+
+ "parent": function( elem ) {
+ return !Expr.pseudos["empty"]( elem );
+ },
+
+ // Element/input types
+ "header": function( elem ) {
+ return rheader.test( elem.nodeName );
+ },
+
+ "input": function( elem ) {
+ return rinputs.test( elem.nodeName );
+ },
+
+ "button": function( elem ) {
+ var name = elem.nodeName.toLowerCase();
+ return name === "input" && elem.type === "button" || name === "button";
+ },
+
+ "text": function( elem ) {
+ var attr;
+ return elem.nodeName.toLowerCase() === "input" &&
+ elem.type === "text" &&
+
+ // Support: IE<8
+ // New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
+ ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );
+ },
+
+ // Position-in-collection
+ "first": createPositionalPseudo(function() {
+ return [ 0 ];
+ }),
+
+ "last": createPositionalPseudo(function( matchIndexes, length ) {
+ return [ length - 1 ];
+ }),
+
+ "eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
+ return [ argument < 0 ? argument + length : argument ];
+ }),
+
+ "even": createPositionalPseudo(function( matchIndexes, length ) {
+ var i = 0;
+ for ( ; i < length; i += 2 ) {
+ matchIndexes.push( i );
+ }
+ return matchIndexes;
+ }),
+
+ "odd": createPositionalPseudo(function( matchIndexes, length ) {
+ var i = 1;
+ for ( ; i < length; i += 2 ) {
+ matchIndexes.push( i );
+ }
+ return matchIndexes;
+ }),
+
+ "lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+ var i = argument < 0 ? argument + length : argument;
+ for ( ; --i >= 0; ) {
+ matchIndexes.push( i );
+ }
+ return matchIndexes;
+ }),
+
+ "gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+ var i = argument < 0 ? argument + length : argument;
+ for ( ; ++i < length; ) {
+ matchIndexes.push( i );
+ }
+ return matchIndexes;
+ })
+ }
+};
+
+Expr.pseudos["nth"] = Expr.pseudos["eq"];
+
+// Add button/input type pseudos
+for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
+ Expr.pseudos[ i ] = createInputPseudo( i );
+}
+for ( i in { submit: true, reset: true } ) {
+ Expr.pseudos[ i ] = createButtonPseudo( i );
+}
+
+// Easy API for creating new setFilters
+function setFilters() {}
+setFilters.prototype = Expr.filters = Expr.pseudos;
+Expr.setFilters = new setFilters();
+
+tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
+ var matched, match, tokens, type,
+ soFar, groups, preFilters,
+ cached = tokenCache[ selector + " " ];
+
+ if ( cached ) {
+ return parseOnly ? 0 : cached.slice( 0 );
+ }
+
+ soFar = selector;
+ groups = [];
+ preFilters = Expr.preFilter;
+
+ while ( soFar ) {
+
+ // Comma and first run
+ if ( !matched || (match = rcomma.exec( soFar )) ) {
+ if ( match ) {
+ // Don't consume trailing commas as valid
+ soFar = soFar.slice( match[0].length ) || soFar;
+ }
+ groups.push( (tokens = []) );
+ }
+
+ matched = false;
+
+ // Combinators
+ if ( (match = rcombinators.exec( soFar )) ) {
+ matched = match.shift();
+ tokens.push({
+ value: matched,
+ // Cast descendant combinators to space
+ type: match[0].replace( rtrim, " " )
+ });
+ soFar = soFar.slice( matched.length );
+ }
+
+ // Filters
+ for ( type in Expr.filter ) {
+ if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
+ (match = preFilters[ type ]( match ))) ) {
+ matched = match.shift();
+ tokens.push({
+ value: matched,
+ type: type,
+ matches: match
+ });
+ soFar = soFar.slice( matched.length );
+ }
+ }
+
+ if ( !matched ) {
+ break;
+ }
+ }
+
+ // Return the length of the invalid excess
+ // if we're just parsing
+ // Otherwise, throw an error or return tokens
+ return parseOnly ?
+ soFar.length :
+ soFar ?
+ Sizzle.error( selector ) :
+ // Cache the tokens
+ tokenCache( selector, groups ).slice( 0 );
+};
+
+function toSelector( tokens ) {
+ var i = 0,
+ len = tokens.length,
+ selector = "";
+ for ( ; i < len; i++ ) {
+ selector += tokens[i].value;
+ }
+ return selector;
+}
+
+function addCombinator( matcher, combinator, base ) {
+ var dir = combinator.dir,
+ checkNonElements = base && dir === "parentNode",
+ doneName = done++;
+
+ return combinator.first ?
+ // Check against closest ancestor/preceding element
+ function( elem, context, xml ) {
+ while ( (elem = elem[ dir ]) ) {
+ if ( elem.nodeType === 1 || checkNonElements ) {
+ return matcher( elem, context, xml );
+ }
+ }
+ } :
+
+ // Check against all ancestor/preceding elements
+ function( elem, context, xml ) {
+ var oldCache, uniqueCache, outerCache,
+ newCache = [ dirruns, doneName ];
+
+ // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching
+ if ( xml ) {
+ while ( (elem = elem[ dir ]) ) {
+ if ( elem.nodeType === 1 || checkNonElements ) {
+ if ( matcher( elem, context, xml ) ) {
+ return true;
+ }
+ }
+ }
+ } else {
+ while ( (elem = elem[ dir ]) ) {
+ if ( elem.nodeType === 1 || checkNonElements ) {
+ outerCache = elem[ expando ] || (elem[ expando ] = {});
+
+ // Support: IE <9 only
+ // Defend against cloned attroperties (jQuery gh-1709)
+ uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});
+
+ if ( (oldCache = uniqueCache[ dir ]) &&
+ oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
+
+ // Assign to newCache so results back-propagate to previous elements
+ return (newCache[ 2 ] = oldCache[ 2 ]);
+ } else {
+ // Reuse newcache so results back-propagate to previous elements
+ uniqueCache[ dir ] = newCache;
+
+ // A match means we're done; a fail means we have to keep checking
+ if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {
+ return true;
+ }
+ }
+ }
+ }
+ }
+ };
+}
+
+function elementMatcher( matchers ) {
+ return matchers.length > 1 ?
+ function( elem, context, xml ) {
+ var i = matchers.length;
+ while ( i-- ) {
+ if ( !matchers[i]( elem, context, xml ) ) {
+ return false;
+ }
+ }
+ return true;
+ } :
+ matchers[0];
+}
+
+function multipleContexts( selector, contexts, results ) {
+ var i = 0,
+ len = contexts.length;
+ for ( ; i < len; i++ ) {
+ Sizzle( selector, contexts[i], results );
+ }
+ return results;
+}
+
+function condense( unmatched, map, filter, context, xml ) {
+ var elem,
+ newUnmatched = [],
+ i = 0,
+ len = unmatched.length,
+ mapped = map != null;
+
+ for ( ; i < len; i++ ) {
+ if ( (elem = unmatched[i]) ) {
+ if ( !filter || filter( elem, context, xml ) ) {
+ newUnmatched.push( elem );
+ if ( mapped ) {
+ map.push( i );
+ }
+ }
+ }
+ }
+
+ return newUnmatched;
+}
+
+function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
+ if ( postFilter && !postFilter[ expando ] ) {
+ postFilter = setMatcher( postFilter );
+ }
+ if ( postFinder && !postFinder[ expando ] ) {
+ postFinder = setMatcher( postFinder, postSelector );
+ }
+ return markFunction(function( seed, results, context, xml ) {
+ var temp, i, elem,
+ preMap = [],
+ postMap = [],
+ preexisting = results.length,
+
+ // Get initial elements from seed or context
+ elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
+
+ // Prefilter to get matcher input, preserving a map for seed-results synchronization
+ matcherIn = preFilter && ( seed || !selector ) ?
+ condense( elems, preMap, preFilter, context, xml ) :
+ elems,
+
+ matcherOut = matcher ?
+ // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
+ postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
+
+ // ...intermediate processing is necessary
+ [] :
+
+ // ...otherwise use results directly
+ results :
+ matcherIn;
+
+ // Find primary matches
+ if ( matcher ) {
+ matcher( matcherIn, matcherOut, context, xml );
+ }
+
+ // Apply postFilter
+ if ( postFilter ) {
+ temp = condense( matcherOut, postMap );
+ postFilter( temp, [], context, xml );
+
+ // Un-match failing elements by moving them back to matcherIn
+ i = temp.length;
+ while ( i-- ) {
+ if ( (elem = temp[i]) ) {
+ matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
+ }
+ }
+ }
+
+ if ( seed ) {
+ if ( postFinder || preFilter ) {
+ if ( postFinder ) {
+ // Get the final matcherOut by condensing this intermediate into postFinder contexts
+ temp = [];
+ i = matcherOut.length;
+ while ( i-- ) {
+ if ( (elem = matcherOut[i]) ) {
+ // Restore matcherIn since elem is not yet a final match
+ temp.push( (matcherIn[i] = elem) );
+ }
+ }
+ postFinder( null, (matcherOut = []), temp, xml );
+ }
+
+ // Move matched elements from seed to results to keep them synchronized
+ i = matcherOut.length;
+ while ( i-- ) {
+ if ( (elem = matcherOut[i]) &&
+ (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {
+
+ seed[temp] = !(results[temp] = elem);
+ }
+ }
+ }
+
+ // Add elements to results, through postFinder if defined
+ } else {
+ matcherOut = condense(
+ matcherOut === results ?
+ matcherOut.splice( preexisting, matcherOut.length ) :
+ matcherOut
+ );
+ if ( postFinder ) {
+ postFinder( null, results, matcherOut, xml );
+ } else {
+ push.apply( results, matcherOut );
+ }
+ }
+ });
+}
+
+function matcherFromTokens( tokens ) {
+ var checkContext, matcher, j,
+ len = tokens.length,
+ leadingRelative = Expr.relative[ tokens[0].type ],
+ implicitRelative = leadingRelative || Expr.relative[" "],
+ i = leadingRelative ? 1 : 0,
+
+ // The foundational matcher ensures that elements are reachable from top-level context(s)
+ matchContext = addCombinator( function( elem ) {
+ return elem === checkContext;
+ }, implicitRelative, true ),
+ matchAnyContext = addCombinator( function( elem ) {
+ return indexOf( checkContext, elem ) > -1;
+ }, implicitRelative, true ),
+ matchers = [ function( elem, context, xml ) {
+ var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
+ (checkContext = context).nodeType ?
+ matchContext( elem, context, xml ) :
+ matchAnyContext( elem, context, xml ) );
+ // Avoid hanging onto element (issue #299)
+ checkContext = null;
+ return ret;
+ } ];
+
+ for ( ; i < len; i++ ) {
+ if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
+ matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
+ } else {
+ matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
+
+ // Return special upon seeing a positional matcher
+ if ( matcher[ expando ] ) {
+ // Find the next relative operator (if any) for proper handling
+ j = ++i;
+ for ( ; j < len; j++ ) {
+ if ( Expr.relative[ tokens[j].type ] ) {
+ break;
+ }
+ }
+ return setMatcher(
+ i > 1 && elementMatcher( matchers ),
+ i > 1 && toSelector(
+ // If the preceding token was a descendant combinator, insert an implicit any-element `*`
+ tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
+ ).replace( rtrim, "$1" ),
+ matcher,
+ i < j && matcherFromTokens( tokens.slice( i, j ) ),
+ j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
+ j < len && toSelector( tokens )
+ );
+ }
+ matchers.push( matcher );
+ }
+ }
+
+ return elementMatcher( matchers );
+}
+
+function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
+ var bySet = setMatchers.length > 0,
+ byElement = elementMatchers.length > 0,
+ superMatcher = function( seed, context, xml, results, outermost ) {
+ var elem, j, matcher,
+ matchedCount = 0,
+ i = "0",
+ unmatched = seed && [],
+ setMatched = [],
+ contextBackup = outermostContext,
+ // We must always have either seed elements or outermost context
+ elems = seed || byElement && Expr.find["TAG"]( "*", outermost ),
+ // Use integer dirruns iff this is the outermost matcher
+ dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),
+ len = elems.length;
+
+ if ( outermost ) {
+ outermostContext = context === document || context || outermost;
+ }
+
+ // Add elements passing elementMatchers directly to results
+ // Support: IE<9, Safari
+ // Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id
+ for ( ; i !== len && (elem = elems[i]) != null; i++ ) {
+ if ( byElement && elem ) {
+ j = 0;
+ if ( !context && elem.ownerDocument !== document ) {
+ setDocument( elem );
+ xml = !documentIsHTML;
+ }
+ while ( (matcher = elementMatchers[j++]) ) {
+ if ( matcher( elem, context || document, xml) ) {
+ results.push( elem );
+ break;
+ }
+ }
+ if ( outermost ) {
+ dirruns = dirrunsUnique;
+ }
+ }
+
+ // Track unmatched elements for set filters
+ if ( bySet ) {
+ // They will have gone through all possible matchers
+ if ( (elem = !matcher && elem) ) {
+ matchedCount--;
+ }
+
+ // Lengthen the array for every element, matched or not
+ if ( seed ) {
+ unmatched.push( elem );
+ }
+ }
+ }
+
+ // `i` is now the count of elements visited above, and adding it to `matchedCount`
+ // makes the latter nonnegative.
+ matchedCount += i;
+
+ // Apply set filters to unmatched elements
+ // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`
+ // equals `i`), unless we didn't visit _any_ elements in the above loop because we have
+ // no element matchers and no seed.
+ // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that
+ // case, which will result in a "00" `matchedCount` that differs from `i` but is also
+ // numerically zero.
+ if ( bySet && i !== matchedCount ) {
+ j = 0;
+ while ( (matcher = setMatchers[j++]) ) {
+ matcher( unmatched, setMatched, context, xml );
+ }
+
+ if ( seed ) {
+ // Reintegrate element matches to eliminate the need for sorting
+ if ( matchedCount > 0 ) {
+ while ( i-- ) {
+ if ( !(unmatched[i] || setMatched[i]) ) {
+ setMatched[i] = pop.call( results );
+ }
+ }
+ }
+
+ // Discard index placeholder values to get only actual matches
+ setMatched = condense( setMatched );
+ }
+
+ // Add matches to results
+ push.apply( results, setMatched );
+
+ // Seedless set matches succeeding multiple successful matchers stipulate sorting
+ if ( outermost && !seed && setMatched.length > 0 &&
+ ( matchedCount + setMatchers.length ) > 1 ) {
+
+ Sizzle.uniqueSort( results );
+ }
+ }
+
+ // Override manipulation of globals by nested matchers
+ if ( outermost ) {
+ dirruns = dirrunsUnique;
+ outermostContext = contextBackup;
+ }
+
+ return unmatched;
+ };
+
+ return bySet ?
+ markFunction( superMatcher ) :
+ superMatcher;
+}
+
+compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
+ var i,
+ setMatchers = [],
+ elementMatchers = [],
+ cached = compilerCache[ selector + " " ];
+
+ if ( !cached ) {
+ // Generate a function of recursive functions that can be used to check each element
+ if ( !match ) {
+ match = tokenize( selector );
+ }
+ i = match.length;
+ while ( i-- ) {
+ cached = matcherFromTokens( match[i] );
+ if ( cached[ expando ] ) {
+ setMatchers.push( cached );
+ } else {
+ elementMatchers.push( cached );
+ }
+ }
+
+ // Cache the compiled function
+ cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
+
+ // Save selector and tokenization
+ cached.selector = selector;
+ }
+ return cached;
+};
+
+/**
+ * A low-level selection function that works with Sizzle's compiled
+ * selector functions
+ * @param {String|Function} selector A selector or a pre-compiled
+ * selector function built with Sizzle.compile
+ * @param {Element} context
+ * @param {Array} [results]
+ * @param {Array} [seed] A set of elements to match against
+ */
+select = Sizzle.select = function( selector, context, results, seed ) {
+ var i, tokens, token, type, find,
+ compiled = typeof selector === "function" && selector,
+ match = !seed && tokenize( (selector = compiled.selector || selector) );
+
+ results = results || [];
+
+ // Try to minimize operations if there is only one selector in the list and no seed
+ // (the latter of which guarantees us context)
+ if ( match.length === 1 ) {
+
+ // Reduce context if the leading compound selector is an ID
+ tokens = match[0] = match[0].slice( 0 );
+ if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
+ support.getById && context.nodeType === 9 && documentIsHTML &&
+ Expr.relative[ tokens[1].type ] ) {
+
+ context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
+ if ( !context ) {
+ return results;
+
+ // Precompiled matchers will still verify ancestry, so step up a level
+ } else if ( compiled ) {
+ context = context.parentNode;
+ }
+
+ selector = selector.slice( tokens.shift().value.length );
+ }
+
+ // Fetch a seed set for right-to-left matching
+ i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
+ while ( i-- ) {
+ token = tokens[i];
+
+ // Abort if we hit a combinator
+ if ( Expr.relative[ (type = token.type) ] ) {
+ break;
+ }
+ if ( (find = Expr.find[ type ]) ) {
+ // Search, expanding context for leading sibling combinators
+ if ( (seed = find(
+ token.matches[0].replace( runescape, funescape ),
+ rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context
+ )) ) {
+
+ // If seed is empty or no tokens remain, we can return early
+ tokens.splice( i, 1 );
+ selector = seed.length && toSelector( tokens );
+ if ( !selector ) {
+ push.apply( results, seed );
+ return results;
+ }
+
+ break;
+ }
+ }
+ }
+ }
+
+ // Compile and execute a filtering function if one is not provided
+ // Provide `match` to avoid retokenization if we modified the selector above
+ ( compiled || compile( selector, match ) )(
+ seed,
+ context,
+ !documentIsHTML,
+ results,
+ !context || rsibling.test( selector ) && testContext( context.parentNode ) || context
+ );
+ return results;
+};
+
+// One-time assignments
+
+// Sort stability
+support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
+
+// Support: Chrome 14-35+
+// Always assume duplicates if they aren't passed to the comparison function
+support.detectDuplicates = !!hasDuplicate;
+
+// Initialize against the default document
+setDocument();
+
+// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
+// Detached nodes confoundingly follow *each other*
+support.sortDetached = assert(function( div1 ) {
+ // Should return 1, but returns 4 (following)
+ return div1.compareDocumentPosition( document.createElement("div") ) & 1;
+});
+
+// Support: IE<8
+// Prevent attribute/property "interpolation"
+// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
+if ( !assert(function( div ) {
+ div.innerHTML = "<a href='#'></a>";
+ return div.firstChild.getAttribute("href") === "#" ;
+}) ) {
+ addHandle( "type|href|height|width", function( elem, name, isXML ) {
+ if ( !isXML ) {
+ return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
+ }
+ });
+}
+
+// Support: IE<9
+// Use defaultValue in place of getAttribute("value")
+if ( !support.attributes || !assert(function( div ) {
+ div.innerHTML = "<input/>";
+ div.firstChild.setAttribute( "value", "" );
+ return div.firstChild.getAttribute( "value" ) === "";
+}) ) {
+ addHandle( "value", function( elem, name, isXML ) {
+ if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
+ return elem.defaultValue;
+ }
+ });
+}
+
+// Support: IE<9
+// Use getAttributeNode to fetch booleans when getAttribute lies
+if ( !assert(function( div ) {
+ return div.getAttribute("disabled") == null;
+}) ) {
+ addHandle( booleans, function( elem, name, isXML ) {
+ var val;
+ if ( !isXML ) {
+ return elem[ name ] === true ? name.toLowerCase() :
+ (val = elem.getAttributeNode( name )) && val.specified ?
+ val.value :
+ null;
+ }
+ });
+}
+
+return Sizzle;
+
+})( window );
+
+
+
+jQuery.find = Sizzle;
+jQuery.expr = Sizzle.selectors;
+jQuery.expr[ ":" ] = jQuery.expr.pseudos;
+jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;
+jQuery.text = Sizzle.getText;
+jQuery.isXMLDoc = Sizzle.isXML;
+jQuery.contains = Sizzle.contains;
+
+
+
+var dir = function( elem, dir, until ) {
+ var matched = [],
+ truncate = until !== undefined;
+
+ while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {
+ if ( elem.nodeType === 1 ) {
+ if ( truncate && jQuery( elem ).is( until ) ) {
+ break;
+ }
+ matched.push( elem );
+ }
+ }
+ return matched;
+};
+
+
+var siblings = function( n, elem ) {
+ var matched = [];
+
+ for ( ; n; n = n.nextSibling ) {
+ if ( n.nodeType === 1 && n !== elem ) {
+ matched.push( n );
+ }
+ }
+
+ return matched;
+};
+
+
+var rneedsContext = jQuery.expr.match.needsContext;
+
+var rsingleTag = ( /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/ );
+
+
+
+var risSimple = /^.[^:#\[\.,]*$/;
+
+// Implement the identical functionality for filter and not
+function winnow( elements, qualifier, not ) {
+ if ( jQuery.isFunction( qualifier ) ) {
+ return jQuery.grep( elements, function( elem, i ) {
+ /* jshint -W018 */
+ return !!qualifier.call( elem, i, elem ) !== not;
+ } );
+
+ }
+
+ if ( qualifier.nodeType ) {
+ return jQuery.grep( elements, function( elem ) {
+ return ( elem === qualifier ) !== not;
+ } );
+
+ }
+
+ if ( typeof qualifier === "string" ) {
+ if ( risSimple.test( qualifier ) ) {
+ return jQuery.filter( qualifier, elements, not );
+ }
+
+ qualifier = jQuery.filter( qualifier, elements );
+ }
+
+ return jQuery.grep( elements, function( elem ) {
+ return ( jQuery.inArray( elem, qualifier ) > -1 ) !== not;
+ } );
+}
+
+jQuery.filter = function( expr, elems, not ) {
+ var elem = elems[ 0 ];
+
+ if ( not ) {
+ expr = ":not(" + expr + ")";
+ }
+
+ return elems.length === 1 && elem.nodeType === 1 ?
+ jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :
+ jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
+ return elem.nodeType === 1;
+ } ) );
+};
+
+jQuery.fn.extend( {
+ find: function( selector ) {
+ var i,
+ ret = [],
+ self = this,
+ len = self.length;
+
+ if ( typeof selector !== "string" ) {
+ return this.pushStack( jQuery( selector ).filter( function() {
+ for ( i = 0; i < len; i++ ) {
+ if ( jQuery.contains( self[ i ], this ) ) {
+ return true;
+ }
+ }
+ } ) );
+ }
+
+ for ( i = 0; i < len; i++ ) {
+ jQuery.find( selector, self[ i ], ret );
+ }
+
+ // Needed because $( selector, context ) becomes $( context ).find( selector )
+ ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret );
+ ret.selector = this.selector ? this.selector + " " + selector : selector;
+ return ret;
+ },
+ filter: function( selector ) {
+ return this.pushStack( winnow( this, selector || [], false ) );
+ },
+ not: function( selector ) {
+ return this.pushStack( winnow( this, selector || [], true ) );
+ },
+ is: function( selector ) {
+ return !!winnow(
+ this,
+
+ // If this is a positional/relative selector, check membership in the returned set
+ // so $("p:first").is("p:last") won't return true for a doc with two "p".
+ typeof selector === "string" && rneedsContext.test( selector ) ?
+ jQuery( selector ) :
+ selector || [],
+ false
+ ).length;
+ }
+} );
+
+
+// Initialize a jQuery object
+
+
+// A central reference to the root jQuery(document)
+var rootjQuery,
+
+ // A simple way to check for HTML strings
+ // Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
+ // Strict HTML recognition (#11290: must start with <)
+ rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
+
+ init = jQuery.fn.init = function( selector, context, root ) {
+ var match, elem;
+
+ // HANDLE: $(""), $(null), $(undefined), $(false)
+ if ( !selector ) {
+ return this;
+ }
+
+ // init accepts an alternate rootjQuery
+ // so migrate can support jQuery.sub (gh-2101)
+ root = root || rootjQuery;
+
+ // Handle HTML strings
+ if ( typeof selector === "string" ) {
+ if ( selector.charAt( 0 ) === "<" &&
+ selector.charAt( selector.length - 1 ) === ">" &&
+ selector.length >= 3 ) {
+
+ // Assume that strings that start and end with <> are HTML and skip the regex check
+ match = [ null, selector, null ];
+
+ } else {
+ match = rquickExpr.exec( selector );
+ }
+
+ // Match html or make sure no context is specified for #id
+ if ( match && ( match[ 1 ] || !context ) ) {
+
+ // HANDLE: $(html) -> $(array)
+ if ( match[ 1 ] ) {
+ context = context instanceof jQuery ? context[ 0 ] : context;
+
+ // scripts is true for back-compat
+ // Intentionally let the error be thrown if parseHTML is not present
+ jQuery.merge( this, jQuery.parseHTML(
+ match[ 1 ],
+ context && context.nodeType ? context.ownerDocument || context : document,
+ true
+ ) );
+
+ // HANDLE: $(html, props)
+ if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {
+ for ( match in context ) {
+
+ // Properties of context are called as methods if possible
+ if ( jQuery.isFunction( this[ match ] ) ) {
+ this[ match ]( context[ match ] );
+
+ // ...and otherwise set as attributes
+ } else {
+ this.attr( match, context[ match ] );
+ }
+ }
+ }
+
+ return this;
+
+ // HANDLE: $(#id)
+ } else {
+ elem = document.getElementById( match[ 2 ] );
+
+ // Check parentNode to catch when Blackberry 4.6 returns
+ // nodes that are no longer in the document #6963
+ if ( elem && elem.parentNode ) {
+
+ // Handle the case where IE and Opera return items
+ // by name instead of ID
+ if ( elem.id !== match[ 2 ] ) {
+ return rootjQuery.find( selector );
+ }
+
+ // Otherwise, we inject the element directly into the jQuery object
+ this.length = 1;
+ this[ 0 ] = elem;
+ }
+
+ this.context = document;
+ this.selector = selector;
+ return this;
+ }
+
+ // HANDLE: $(expr, $(...))
+ } else if ( !context || context.jquery ) {
+ return ( context || root ).find( selector );
+
+ // HANDLE: $(expr, context)
+ // (which is just equivalent to: $(context).find(expr)
+ } else {
+ return this.constructor( context ).find( selector );
+ }
+
+ // HANDLE: $(DOMElement)
+ } else if ( selector.nodeType ) {
+ this.context = this[ 0 ] = selector;
+ this.length = 1;
+ return this;
+
+ // HANDLE: $(function)
+ // Shortcut for document ready
+ } else if ( jQuery.isFunction( selector ) ) {
+ return typeof root.ready !== "undefined" ?
+ root.ready( selector ) :
+
+ // Execute immediately if ready is not present
+ selector( jQuery );
+ }
+
+ if ( selector.selector !== undefined ) {
+ this.selector = selector.selector;
+ this.context = selector.context;
+ }
+
+ return jQuery.makeArray( selector, this );
+ };
+
+// Give the init function the jQuery prototype for later instantiation
+init.prototype = jQuery.fn;
+
+// Initialize central reference
+rootjQuery = jQuery( document );
+
+
+var rparentsprev = /^(?:parents|prev(?:Until|All))/,
+
+ // methods guaranteed to produce a unique set when starting from a unique set
+ guaranteedUnique = {
+ children: true,
+ contents: true,
+ next: true,
+ prev: true
+ };
+
+jQuery.fn.extend( {
+ has: function( target ) {
+ var i,
+ targets = jQuery( target, this ),
+ len = targets.length;
+
+ return this.filter( function() {
+ for ( i = 0; i < len; i++ ) {
+ if ( jQuery.contains( this, targets[ i ] ) ) {
+ return true;
+ }
+ }
+ } );
+ },
+
+ closest: function( selectors, context ) {
+ var cur,
+ i = 0,
+ l = this.length,
+ matched = [],
+ pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ?
+ jQuery( selectors, context || this.context ) :
+ 0;
+
+ for ( ; i < l; i++ ) {
+ for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {
+
+ // Always skip document fragments
+ if ( cur.nodeType < 11 && ( pos ?
+ pos.index( cur ) > -1 :
+
+ // Don't pass non-elements to Sizzle
+ cur.nodeType === 1 &&
+ jQuery.find.matchesSelector( cur, selectors ) ) ) {
+
+ matched.push( cur );
+ break;
+ }
+ }
+ }
+
+ return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );
+ },
+
+ // Determine the position of an element within
+ // the matched set of elements
+ index: function( elem ) {
+
+ // No argument, return index in parent
+ if ( !elem ) {
+ return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;
+ }
+
+ // index in selector
+ if ( typeof elem === "string" ) {
+ return jQuery.inArray( this[ 0 ], jQuery( elem ) );
+ }
+
+ // Locate the position of the desired element
+ return jQuery.inArray(
+
+ // If it receives a jQuery object, the first element is used
+ elem.jquery ? elem[ 0 ] : elem, this );
+ },
+
+ add: function( selector, context ) {
+ return this.pushStack(
+ jQuery.uniqueSort(
+ jQuery.merge( this.get(), jQuery( selector, context ) )
+ )
+ );
+ },
+
+ addBack: function( selector ) {
+ return this.add( selector == null ?
+ this.prevObject : this.prevObject.filter( selector )
+ );
+ }
+} );
+
+function sibling( cur, dir ) {
+ do {
+ cur = cur[ dir ];
+ } while ( cur && cur.nodeType !== 1 );
+
+ return cur;
+}
+
+jQuery.each( {
+ parent: function( elem ) {
+ var parent = elem.parentNode;
+ return parent && parent.nodeType !== 11 ? parent : null;
+ },
+ parents: function( elem ) {
+ return dir( elem, "parentNode" );
+ },
+ parentsUntil: function( elem, i, until ) {
+ return dir( elem, "parentNode", until );
+ },
+ next: function( elem ) {
+ return sibling( elem, "nextSibling" );
+ },
+ prev: function( elem ) {
+ return sibling( elem, "previousSibling" );
+ },
+ nextAll: function( elem ) {
+ return dir( elem, "nextSibling" );
+ },
+ prevAll: function( elem ) {
+ return dir( elem, "previousSibling" );
+ },
+ nextUntil: function( elem, i, until ) {
+ return dir( elem, "nextSibling", until );
+ },
+ prevUntil: function( elem, i, until ) {
+ return dir( elem, "previousSibling", until );
+ },
+ siblings: function( elem ) {
+ return siblings( ( elem.parentNode || {} ).firstChild, elem );
+ },
+ children: function( elem ) {
+ return siblings( elem.firstChild );
+ },
+ contents: function( elem ) {
+ return jQuery.nodeName( elem, "iframe" ) ?
+ elem.contentDocument || elem.contentWindow.document :
+ jQuery.merge( [], elem.childNodes );
+ }
+}, function( name, fn ) {
+ jQuery.fn[ name ] = function( until, selector ) {
+ var ret = jQuery.map( this, fn, until );
+
+ if ( name.slice( -5 ) !== "Until" ) {
+ selector = until;
+ }
+
+ if ( selector && typeof selector === "string" ) {
+ ret = jQuery.filter( selector, ret );
+ }
+
+ if ( this.length > 1 ) {
+
+ // Remove duplicates
+ if ( !guaranteedUnique[ name ] ) {
+ ret = jQuery.uniqueSort( ret );
+ }
+
+ // Reverse order for parents* and prev-derivatives
+ if ( rparentsprev.test( name ) ) {
+ ret = ret.reverse();
+ }
+ }
+
+ return this.pushStack( ret );
+ };
+} );
+var rnotwhite = ( /\S+/g );
+
+
+
+// Convert String-formatted options into Object-formatted ones
+function createOptions( options ) {
+ var object = {};
+ jQuery.each( options.match( rnotwhite ) || [], function( _, flag ) {
+ object[ flag ] = true;
+ } );
+ return object;
+}
+
+/*
+ * Create a callback list using the following parameters:
+ *
+ * options: an optional list of space-separated options that will change how
+ * the callback list behaves or a more traditional option object
+ *
+ * By default a callback list will act like an event callback list and can be
+ * "fired" multiple times.
+ *
+ * Possible options:
+ *
+ * once: will ensure the callback list can only be fired once (like a Deferred)
+ *
+ * memory: will keep track of previous values and will call any callback added
+ * after the list has been fired right away with the latest "memorized"
+ * values (like a Deferred)
+ *
+ * unique: will ensure a callback can only be added once (no duplicate in the list)
+ *
+ * stopOnFalse: interrupt callings when a callback returns false
+ *
+ */
+jQuery.Callbacks = function( options ) {
+
+ // Convert options from String-formatted to Object-formatted if needed
+ // (we check in cache first)
+ options = typeof options === "string" ?
+ createOptions( options ) :
+ jQuery.extend( {}, options );
+
+ var // Flag to know if list is currently firing
+ firing,
+
+ // Last fire value for non-forgettable lists
+ memory,
+
+ // Flag to know if list was already fired
+ fired,
+
+ // Flag to prevent firing
+ locked,
+
+ // Actual callback list
+ list = [],
+
+ // Queue of execution data for repeatable lists
+ queue = [],
+
+ // Index of currently firing callback (modified by add/remove as needed)
+ firingIndex = -1,
+
+ // Fire callbacks
+ fire = function() {
+
+ // Enforce single-firing
+ locked = options.once;
+
+ // Execute callbacks for all pending executions,
+ // respecting firingIndex overrides and runtime changes
+ fired = firing = true;
+ for ( ; queue.length; firingIndex = -1 ) {
+ memory = queue.shift();
+ while ( ++firingIndex < list.length ) {
+
+ // Run callback and check for early termination
+ if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&
+ options.stopOnFalse ) {
+
+ // Jump to end and forget the data so .add doesn't re-fire
+ firingIndex = list.length;
+ memory = false;
+ }
+ }
+ }
+
+ // Forget the data if we're done with it
+ if ( !options.memory ) {
+ memory = false;
+ }
+
+ firing = false;
+
+ // Clean up if we're done firing for good
+ if ( locked ) {
+
+ // Keep an empty list if we have data for future add calls
+ if ( memory ) {
+ list = [];
+
+ // Otherwise, this object is spent
+ } else {
+ list = "";
+ }
+ }
+ },
+
+ // Actual Callbacks object
+ self = {
+
+ // Add a callback or a collection of callbacks to the list
+ add: function() {
+ if ( list ) {
+
+ // If we have memory from a past run, we should fire after adding
+ if ( memory && !firing ) {
+ firingIndex = list.length - 1;
+ queue.push( memory );
+ }
+
+ ( function add( args ) {
+ jQuery.each( args, function( _, arg ) {
+ if ( jQuery.isFunction( arg ) ) {
+ if ( !options.unique || !self.has( arg ) ) {
+ list.push( arg );
+ }
+ } else if ( arg && arg.length && jQuery.type( arg ) !== "string" ) {
+
+ // Inspect recursively
+ add( arg );
+ }
+ } );
+ } )( arguments );
+
+ if ( memory && !firing ) {
+ fire();
+ }
+ }
+ return this;
+ },
+
+ // Remove a callback from the list
+ remove: function() {
+ jQuery.each( arguments, function( _, arg ) {
+ var index;
+ while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
+ list.splice( index, 1 );
+
+ // Handle firing indexes
+ if ( index <= firingIndex ) {
+ firingIndex--;
+ }
+ }
+ } );
+ return this;
+ },
+
+ // Check if a given callback is in the list.
+ // If no argument is given, return whether or not list has callbacks attached.
+ has: function( fn ) {
+ return fn ?
+ jQuery.inArray( fn, list ) > -1 :
+ list.length > 0;
+ },
+
+ // Remove all callbacks from the list
+ empty: function() {
+ if ( list ) {
+ list = [];
+ }
+ return this;
+ },
+
+ // Disable .fire and .add
+ // Abort any current/pending executions
+ // Clear all callbacks and values
+ disable: function() {
+ locked = queue = [];
+ list = memory = "";
+ return this;
+ },
+ disabled: function() {
+ return !list;
+ },
+
+ // Disable .fire
+ // Also disable .add unless we have memory (since it would have no effect)
+ // Abort any pending executions
+ lock: function() {
+ locked = true;
+ if ( !memory ) {
+ self.disable();
+ }
+ return this;
+ },
+ locked: function() {
+ return !!locked;
+ },
+
+ // Call all callbacks with the given context and arguments
+ fireWith: function( context, args ) {
+ if ( !locked ) {
+ args = args || [];
+ args = [ context, args.slice ? args.slice() : args ];
+ queue.push( args );
+ if ( !firing ) {
+ fire();
+ }
+ }
+ return this;
+ },
+
+ // Call all the callbacks with the given arguments
+ fire: function() {
+ self.fireWith( this, arguments );
+ return this;
+ },
+
+ // To know if the callbacks have already been called at least once
+ fired: function() {
+ return !!fired;
+ }
+ };
+
+ return self;
+};
+
+
+jQuery.extend( {
+
+ Deferred: function( func ) {
+ var tuples = [
+
+ // action, add listener, listener list, final state
+ [ "resolve", "done", jQuery.Callbacks( "once memory" ), "resolved" ],
+ [ "reject", "fail", jQuery.Callbacks( "once memory" ), "rejected" ],
+ [ "notify", "progress", jQuery.Callbacks( "memory" ) ]
+ ],
+ state = "pending",
+ promise = {
+ state: function() {
+ return state;
+ },
+ always: function() {
+ deferred.done( arguments ).fail( arguments );
+ return this;
+ },
+ then: function( /* fnDone, fnFail, fnProgress */ ) {
+ var fns = arguments;
+ return jQuery.Deferred( function( newDefer ) {
+ jQuery.each( tuples, function( i, tuple ) {
+ var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];
+
+ // deferred[ done | fail | progress ] for forwarding actions to newDefer
+ deferred[ tuple[ 1 ] ]( function() {
+ var returned = fn && fn.apply( this, arguments );
+ if ( returned && jQuery.isFunction( returned.promise ) ) {
+ returned.promise()
+ .progress( newDefer.notify )
+ .done( newDefer.resolve )
+ .fail( newDefer.reject );
+ } else {
+ newDefer[ tuple[ 0 ] + "With" ](
+ this === promise ? newDefer.promise() : this,
+ fn ? [ returned ] : arguments
+ );
+ }
+ } );
+ } );
+ fns = null;
+ } ).promise();
+ },
+
+ // Get a promise for this deferred
+ // If obj is provided, the promise aspect is added to the object
+ promise: function( obj ) {
+ return obj != null ? jQuery.extend( obj, promise ) : promise;
+ }
+ },
+ deferred = {};
+
+ // Keep pipe for back-compat
+ promise.pipe = promise.then;
+
+ // Add list-specific methods
+ jQuery.each( tuples, function( i, tuple ) {
+ var list = tuple[ 2 ],
+ stateString = tuple[ 3 ];
+
+ // promise[ done | fail | progress ] = list.add
+ promise[ tuple[ 1 ] ] = list.add;
+
+ // Handle state
+ if ( stateString ) {
+ list.add( function() {
+
+ // state = [ resolved | rejected ]
+ state = stateString;
+
+ // [ reject_list | resolve_list ].disable; progress_list.lock
+ }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );
+ }
+
+ // deferred[ resolve | reject | notify ]
+ deferred[ tuple[ 0 ] ] = function() {
+ deferred[ tuple[ 0 ] + "With" ]( this === deferred ? promise : this, arguments );
+ return this;
+ };
+ deferred[ tuple[ 0 ] + "With" ] = list.fireWith;
+ } );
+
+ // Make the deferred a promise
+ promise.promise( deferred );
+
+ // Call given func if any
+ if ( func ) {
+ func.call( deferred, deferred );
+ }
+
+ // All done!
+ return deferred;
+ },
+
+ // Deferred helper
+ when: function( subordinate /* , ..., subordinateN */ ) {
+ var i = 0,
+ resolveValues = slice.call( arguments ),
+ length = resolveValues.length,
+
+ // the count of uncompleted subordinates
+ remaining = length !== 1 ||
+ ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,
+
+ // the master Deferred.
+ // If resolveValues consist of only a single Deferred, just use that.
+ deferred = remaining === 1 ? subordinate : jQuery.Deferred(),
+
+ // Update function for both resolve and progress values
+ updateFunc = function( i, contexts, values ) {
+ return function( value ) {
+ contexts[ i ] = this;
+ values[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
+ if ( values === progressValues ) {
+ deferred.notifyWith( contexts, values );
+
+ } else if ( !( --remaining ) ) {
+ deferred.resolveWith( contexts, values );
+ }
+ };
+ },
+
+ progressValues, progressContexts, resolveContexts;
+
+ // add listeners to Deferred subordinates; treat others as resolved
+ if ( length > 1 ) {
+ progressValues = new Array( length );
+ progressContexts = new Array( length );
+ resolveContexts = new Array( length );
+ for ( ; i < length; i++ ) {
+ if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {
+ resolveValues[ i ].promise()
+ .progress( updateFunc( i, progressContexts, progressValues ) )
+ .done( updateFunc( i, resolveContexts, resolveValues ) )
+ .fail( deferred.reject );
+ } else {
+ --remaining;
+ }
+ }
+ }
+
+ // if we're not waiting on anything, resolve the master
+ if ( !remaining ) {
+ deferred.resolveWith( resolveContexts, resolveValues );
+ }
+
+ return deferred.promise();
+ }
+} );
+
+
+// The deferred used on DOM ready
+var readyList;
+
+jQuery.fn.ready = function( fn ) {
+
+ // Add the callback
+ jQuery.ready.promise().done( fn );
+
+ return this;
+};
+
+jQuery.extend( {
+
+ // Is the DOM ready to be used? Set to true once it occurs.
+ isReady: false,
+
+ // A counter to track how many items to wait for before
+ // the ready event fires. See #6781
+ readyWait: 1,
+
+ // Hold (or release) the ready event
+ holdReady: function( hold ) {
+ if ( hold ) {
+ jQuery.readyWait++;
+ } else {
+ jQuery.ready( true );
+ }
+ },
+
+ // Handle when the DOM is ready
+ ready: function( wait ) {
+
+ // Abort if there are pending holds or we're already ready
+ if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
+ return;
+ }
+
+ // Remember that the DOM is ready
+ jQuery.isReady = true;
+
+ // If a normal DOM Ready event fired, decrement, and wait if need be
+ if ( wait !== true && --jQuery.readyWait > 0 ) {
+ return;
+ }
+
+ // If there are functions bound, to execute
+ readyList.resolveWith( document, [ jQuery ] );
+
+ // Trigger any bound ready events
+ if ( jQuery.fn.triggerHandler ) {
+ jQuery( document ).triggerHandler( "ready" );
+ jQuery( document ).off( "ready" );
+ }
+ }
+} );
+
+/**
+ * Clean-up method for dom ready events
+ */
+function detach() {
+ if ( document.addEventListener ) {
+ document.removeEventListener( "DOMContentLoaded", completed );
+ window.removeEventListener( "load", completed );
+
+ } else {
+ document.detachEvent( "onreadystatechange", completed );
+ window.detachEvent( "onload", completed );
+ }
+}
+
+/**
+ * The ready event handler and self cleanup method
+ */
+function completed() {
+
+ // readyState === "complete" is good enough for us to call the dom ready in oldIE
+ if ( document.addEventListener ||
+ window.event.type === "load" ||
+ document.readyState === "complete" ) {
+
+ detach();
+ jQuery.ready();
+ }
+}
+
+jQuery.ready.promise = function( obj ) {
+ if ( !readyList ) {
+
+ readyList = jQuery.Deferred();
+
+ // Catch cases where $(document).ready() is called
+ // after the browser event has already occurred.
+ // Support: IE6-10
+ // Older IE sometimes signals "interactive" too soon
+ if ( document.readyState === "complete" ||
+ ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) {
+
+ // Handle it asynchronously to allow scripts the opportunity to delay ready
+ window.setTimeout( jQuery.ready );
+
+ // Standards-based browsers support DOMContentLoaded
+ } else if ( document.addEventListener ) {
+
+ // Use the handy event callback
+ document.addEventListener( "DOMContentLoaded", completed );
+
+ // A fallback to window.onload, that will always work
+ window.addEventListener( "load", completed );
+
+ // If IE event model is used
+ } else {
+
+ // Ensure firing before onload, maybe late but safe also for iframes
+ document.attachEvent( "onreadystatechange", completed );
+
+ // A fallback to window.onload, that will always work
+ window.attachEvent( "onload", completed );
+
+ // If IE and not a frame
+ // continually check to see if the document is ready
+ var top = false;
+
+ try {
+ top = window.frameElement == null && document.documentElement;
+ } catch ( e ) {}
+
+ if ( top && top.doScroll ) {
+ ( function doScrollCheck() {
+ if ( !jQuery.isReady ) {
+
+ try {
+
+ // Use the trick by Diego Perini
+ // http://javascript.nwbox.com/IEContentLoaded/
+ top.doScroll( "left" );
+ } catch ( e ) {
+ return window.setTimeout( doScrollCheck, 50 );
+ }
+
+ // detach all dom ready events
+ detach();
+
+ // and execute any waiting functions
+ jQuery.ready();
+ }
+ } )();
+ }
+ }
+ }
+ return readyList.promise( obj );
+};
+
+// Kick off the DOM ready check even if the user does not
+jQuery.ready.promise();
+
+
+
+
+// Support: IE<9
+// Iteration over object's inherited properties before its own
+var i;
+for ( i in jQuery( support ) ) {
+ break;
+}
+support.ownFirst = i === "0";
+
+// Note: most support tests are defined in their respective modules.
+// false until the test is run
+support.inlineBlockNeedsLayout = false;
+
+// Execute ASAP in case we need to set body.style.zoom
+jQuery( function() {
+
+ // Minified: var a,b,c,d
+ var val, div, body, container;
+
+ body = document.getElementsByTagName( "body" )[ 0 ];
+ if ( !body || !body.style ) {
+
+ // Return for frameset docs that don't have a body
+ return;
+ }
+
+ // Setup
+ div = document.createElement( "div" );
+ container = document.createElement( "div" );
+ container.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px";
+ body.appendChild( container ).appendChild( div );
+
+ if ( typeof div.style.zoom !== "undefined" ) {
+
+ // Support: IE<8
+ // Check if natively block-level elements act like inline-block
+ // elements when setting their display to 'inline' and giving
+ // them layout
+ div.style.cssText = "display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1";
+
+ support.inlineBlockNeedsLayout = val = div.offsetWidth === 3;
+ if ( val ) {
+
+ // Prevent IE 6 from affecting layout for positioned elements #11048
+ // Prevent IE from shrinking the body in IE 7 mode #12869
+ // Support: IE<8
+ body.style.zoom = 1;
+ }
+ }
+
+ body.removeChild( container );
+} );
+
+
+( function() {
+ var div = document.createElement( "div" );
+
+ // Support: IE<9
+ support.deleteExpando = true;
+ try {
+ delete div.test;
+ } catch ( e ) {
+ support.deleteExpando = false;
+ }
+
+ // Null elements to avoid leaks in IE.
+ div = null;
+} )();
+var acceptData = function( elem ) {
+ var noData = jQuery.noData[ ( elem.nodeName + " " ).toLowerCase() ],
+ nodeType = +elem.nodeType || 1;
+
+ // Do not set data on non-element DOM nodes because it will not be cleared (#8335).
+ return nodeType !== 1 && nodeType !== 9 ?
+ false :
+
+ // Nodes accept data unless otherwise specified; rejection can be conditional
+ !noData || noData !== true && elem.getAttribute( "classid" ) === noData;
+};
+
+
+
+
+var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
+ rmultiDash = /([A-Z])/g;
+
+function dataAttr( elem, key, data ) {
+
+ // If nothing was found internally, try to fetch any
+ // data from the HTML5 data-* attribute
+ if ( data === undefined && elem.nodeType === 1 ) {
+
+ var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase();
+
+ data = elem.getAttribute( name );
+
+ if ( typeof data === "string" ) {
+ try {
+ data = data === "true" ? true :
+ data === "false" ? false :
+ data === "null" ? null :
+
+ // Only convert to a number if it doesn't change the string
+ +data + "" === data ? +data :
+ rbrace.test( data ) ? jQuery.parseJSON( data ) :
+ data;
+ } catch ( e ) {}
+
+ // Make sure we set the data so it isn't changed later
+ jQuery.data( elem, key, data );
+
+ } else {
+ data = undefined;
+ }
+ }
+
+ return data;
+}
+
+// checks a cache object for emptiness
+function isEmptyDataObject( obj ) {
+ var name;
+ for ( name in obj ) {
+
+ // if the public data object is empty, the private is still empty
+ if ( name === "data" && jQuery.isEmptyObject( obj[ name ] ) ) {
+ continue;
+ }
+ if ( name !== "toJSON" ) {
+ return false;
+ }
+ }
+
+ return true;
+}
+
+function internalData( elem, name, data, pvt /* Internal Use Only */ ) {
+ if ( !acceptData( elem ) ) {
+ return;
+ }
+
+ var ret, thisCache,
+ internalKey = jQuery.expando,
+
+ // We have to handle DOM nodes and JS objects differently because IE6-7
+ // can't GC object references properly across the DOM-JS boundary
+ isNode = elem.nodeType,
+
+ // Only DOM nodes need the global jQuery cache; JS object data is
+ // attached directly to the object so GC can occur automatically
+ cache = isNode ? jQuery.cache : elem,
+
+ // Only defining an ID for JS objects if its cache already exists allows
+ // the code to shortcut on the same path as a DOM node with no cache
+ id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey;
+
+ // Avoid doing any more work than we need to when trying to get data on an
+ // object that has no data at all
+ if ( ( !id || !cache[ id ] || ( !pvt && !cache[ id ].data ) ) &&
+ data === undefined && typeof name === "string" ) {
+ return;
+ }
+
+ if ( !id ) {
+
+ // Only DOM nodes need a new unique ID for each element since their data
+ // ends up in the global cache
+ if ( isNode ) {
+ id = elem[ internalKey ] = deletedIds.pop() || jQuery.guid++;
+ } else {
+ id = internalKey;
+ }
+ }
+
+ if ( !cache[ id ] ) {
+
+ // Avoid exposing jQuery metadata on plain JS objects when the object
+ // is serialized using JSON.stringify
+ cache[ id ] = isNode ? {} : { toJSON: jQuery.noop };
+ }
+
+ // An object can be passed to jQuery.data instead of a key/value pair; this gets
+ // shallow copied over onto the existing cache
+ if ( typeof name === "object" || typeof name === "function" ) {
+ if ( pvt ) {
+ cache[ id ] = jQuery.extend( cache[ id ], name );
+ } else {
+ cache[ id ].data = jQuery.extend( cache[ id ].data, name );
+ }
+ }
+
+ thisCache = cache[ id ];
+
+ // jQuery data() is stored in a separate object inside the object's internal data
+ // cache in order to avoid key collisions between internal data and user-defined
+ // data.
+ if ( !pvt ) {
+ if ( !thisCache.data ) {
+ thisCache.data = {};
+ }
+
+ thisCache = thisCache.data;
+ }
+
+ if ( data !== undefined ) {
+ thisCache[ jQuery.camelCase( name ) ] = data;
+ }
+
+ // Check for both converted-to-camel and non-converted data property names
+ // If a data property was specified
+ if ( typeof name === "string" ) {
+
+ // First Try to find as-is property data
+ ret = thisCache[ name ];
+
+ // Test for null|undefined property data
+ if ( ret == null ) {
+
+ // Try to find the camelCased property
+ ret = thisCache[ jQuery.camelCase( name ) ];
+ }
+ } else {
+ ret = thisCache;
+ }
+
+ return ret;
+}
+
+function internalRemoveData( elem, name, pvt ) {
+ if ( !acceptData( elem ) ) {
+ return;
+ }
+
+ var thisCache, i,
+ isNode = elem.nodeType,
+
+ // See jQuery.data for more information
+ cache = isNode ? jQuery.cache : elem,
+ id = isNode ? elem[ jQuery.expando ] : jQuery.expando;
+
+ // If there is already no cache entry for this object, there is no
+ // purpose in continuing
+ if ( !cache[ id ] ) {
+ return;
+ }
+
+ if ( name ) {
+
+ thisCache = pvt ? cache[ id ] : cache[ id ].data;
+
+ if ( thisCache ) {
+
+ // Support array or space separated string names for data keys
+ if ( !jQuery.isArray( name ) ) {
+
+ // try the string as a key before any manipulation
+ if ( name in thisCache ) {
+ name = [ name ];
+ } else {
+
+ // split the camel cased version by spaces unless a key with the spaces exists
+ name = jQuery.camelCase( name );
+ if ( name in thisCache ) {
+ name = [ name ];
+ } else {
+ name = name.split( " " );
+ }
+ }
+ } else {
+
+ // If "name" is an array of keys...
+ // When data is initially created, via ("key", "val") signature,
+ // keys will be converted to camelCase.
+ // Since there is no way to tell _how_ a key was added, remove
+ // both plain key and camelCase key. #12786
+ // This will only penalize the array argument path.
+ name = name.concat( jQuery.map( name, jQuery.camelCase ) );
+ }
+
+ i = name.length;
+ while ( i-- ) {
+ delete thisCache[ name[ i ] ];
+ }
+
+ // If there is no data left in the cache, we want to continue
+ // and let the cache object itself get destroyed
+ if ( pvt ? !isEmptyDataObject( thisCache ) : !jQuery.isEmptyObject( thisCache ) ) {
+ return;
+ }
+ }
+ }
+
+ // See jQuery.data for more information
+ if ( !pvt ) {
+ delete cache[ id ].data;
+
+ // Don't destroy the parent cache unless the internal data object
+ // had been the only thing left in it
+ if ( !isEmptyDataObject( cache[ id ] ) ) {
+ return;
+ }
+ }
+
+ // Destroy the cache
+ if ( isNode ) {
+ jQuery.cleanData( [ elem ], true );
+
+ // Use delete when supported for expandos or `cache` is not a window per isWindow (#10080)
+ /* jshint eqeqeq: false */
+ } else if ( support.deleteExpando || cache != cache.window ) {
+ /* jshint eqeqeq: true */
+ delete cache[ id ];
+
+ // When all else fails, undefined
+ } else {
+ cache[ id ] = undefined;
+ }
+}
+
+jQuery.extend( {
+ cache: {},
+
+ // The following elements (space-suffixed to avoid Object.prototype collisions)
+ // throw uncatchable exceptions if you attempt to set expando properties
+ noData: {
+ "applet ": true,
+ "embed ": true,
+
+ // ...but Flash objects (which have this classid) *can* handle expandos
+ "object ": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
+ },
+
+ hasData: function( elem ) {
+ elem = elem.nodeType ? jQuery.cache[ elem[ jQuery.expando ] ] : elem[ jQuery.expando ];
+ return !!elem && !isEmptyDataObject( elem );
+ },
+
+ data: function( elem, name, data ) {
+ return internalData( elem, name, data );
+ },
+
+ removeData: function( elem, name ) {
+ return internalRemoveData( elem, name );
+ },
+
+ // For internal use only.
+ _data: function( elem, name, data ) {
+ return internalData( elem, name, data, true );
+ },
+
+ _removeData: function( elem, name ) {
+ return internalRemoveData( elem, name, true );
+ }
+} );
+
+jQuery.fn.extend( {
+ data: function( key, value ) {
+ var i, name, data,
+ elem = this[ 0 ],
+ attrs = elem && elem.attributes;
+
+ // Special expections of .data basically thwart jQuery.access,
+ // so implement the relevant behavior ourselves
+
+ // Gets all values
+ if ( key === undefined ) {
+ if ( this.length ) {
+ data = jQuery.data( elem );
+
+ if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) {
+ i = attrs.length;
+ while ( i-- ) {
+
+ // Support: IE11+
+ // The attrs elements can be null (#14894)
+ if ( attrs[ i ] ) {
+ name = attrs[ i ].name;
+ if ( name.indexOf( "data-" ) === 0 ) {
+ name = jQuery.camelCase( name.slice( 5 ) );
+ dataAttr( elem, name, data[ name ] );
+ }
+ }
+ }
+ jQuery._data( elem, "parsedAttrs", true );
+ }
+ }
+
+ return data;
+ }
+
+ // Sets multiple values
+ if ( typeof key === "object" ) {
+ return this.each( function() {
+ jQuery.data( this, key );
+ } );
+ }
+
+ return arguments.length > 1 ?
+
+ // Sets one value
+ this.each( function() {
+ jQuery.data( this, key, value );
+ } ) :
+
+ // Gets one value
+ // Try to fetch any internally stored data first
+ elem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : undefined;
+ },
+
+ removeData: function( key ) {
+ return this.each( function() {
+ jQuery.removeData( this, key );
+ } );
+ }
+} );
+
+
+jQuery.extend( {
+ queue: function( elem, type, data ) {
+ var queue;
+
+ if ( elem ) {
+ type = ( type || "fx" ) + "queue";
+ queue = jQuery._data( elem, type );
+
+ // Speed up dequeue by getting out quickly if this is just a lookup
+ if ( data ) {
+ if ( !queue || jQuery.isArray( data ) ) {
+ queue = jQuery._data( elem, type, jQuery.makeArray( data ) );
+ } else {
+ queue.push( data );
+ }
+ }
+ return queue || [];
+ }
+ },
+
+ dequeue: function( elem, type ) {
+ type = type || "fx";
+
+ var queue = jQuery.queue( elem, type ),
+ startLength = queue.length,
+ fn = queue.shift(),
+ hooks = jQuery._queueHooks( elem, type ),
+ next = function() {
+ jQuery.dequeue( elem, type );
+ };
+
+ // If the fx queue is dequeued, always remove the progress sentinel
+ if ( fn === "inprogress" ) {
+ fn = queue.shift();
+ startLength--;
+ }
+
+ if ( fn ) {
+
+ // Add a progress sentinel to prevent the fx queue from being
+ // automatically dequeued
+ if ( type === "fx" ) {
+ queue.unshift( "inprogress" );
+ }
+
+ // clear up the last queue stop function
+ delete hooks.stop;
+ fn.call( elem, next, hooks );
+ }
+
+ if ( !startLength && hooks ) {
+ hooks.empty.fire();
+ }
+ },
+
+ // not intended for public consumption - generates a queueHooks object,
+ // or returns the current one
+ _queueHooks: function( elem, type ) {
+ var key = type + "queueHooks";
+ return jQuery._data( elem, key ) || jQuery._data( elem, key, {
+ empty: jQuery.Callbacks( "once memory" ).add( function() {
+ jQuery._removeData( elem, type + "queue" );
+ jQuery._removeData( elem, key );
+ } )
+ } );
+ }
+} );
+
+jQuery.fn.extend( {
+ queue: function( type, data ) {
+ var setter = 2;
+
+ if ( typeof type !== "string" ) {
+ data = type;
+ type = "fx";
+ setter--;
+ }
+
+ if ( arguments.length < setter ) {
+ return jQuery.queue( this[ 0 ], type );
+ }
+
+ return data === undefined ?
+ this :
+ this.each( function() {
+ var queue = jQuery.queue( this, type, data );
+
+ // ensure a hooks for this queue
+ jQuery._queueHooks( this, type );
+
+ if ( type === "fx" && queue[ 0 ] !== "inprogress" ) {
+ jQuery.dequeue( this, type );
+ }
+ } );
+ },
+ dequeue: function( type ) {
+ return this.each( function() {
+ jQuery.dequeue( this, type );
+ } );
+ },
+ clearQueue: function( type ) {
+ return this.queue( type || "fx", [] );
+ },
+
+ // Get a promise resolved when queues of a certain type
+ // are emptied (fx is the type by default)
+ promise: function( type, obj ) {
+ var tmp,
+ count = 1,
+ defer = jQuery.Deferred(),
+ elements = this,
+ i = this.length,
+ resolve = function() {
+ if ( !( --count ) ) {
+ defer.resolveWith( elements, [ elements ] );
+ }
+ };
+
+ if ( typeof type !== "string" ) {
+ obj = type;
+ type = undefined;
+ }
+ type = type || "fx";
+
+ while ( i-- ) {
+ tmp = jQuery._data( elements[ i ], type + "queueHooks" );
+ if ( tmp && tmp.empty ) {
+ count++;
+ tmp.empty.add( resolve );
+ }
+ }
+ resolve();
+ return defer.promise( obj );
+ }
+} );
+
+
+( function() {
+ var shrinkWrapBlocksVal;
+
+ support.shrinkWrapBlocks = function() {
+ if ( shrinkWrapBlocksVal != null ) {
+ return shrinkWrapBlocksVal;
+ }
+
+ // Will be changed later if needed.
+ shrinkWrapBlocksVal = false;
+
+ // Minified: var b,c,d
+ var div, body, container;
+
+ body = document.getElementsByTagName( "body" )[ 0 ];
+ if ( !body || !body.style ) {
+
+ // Test fired too early or in an unsupported environment, exit.
+ return;
+ }
+
+ // Setup
+ div = document.createElement( "div" );
+ container = document.createElement( "div" );
+ container.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px";
+ body.appendChild( container ).appendChild( div );
+
+ // Support: IE6
+ // Check if elements with layout shrink-wrap their children
+ if ( typeof div.style.zoom !== "undefined" ) {
+
+ // Reset CSS: box-sizing; display; margin; border
+ div.style.cssText =
+
+ // Support: Firefox<29, Android 2.3
+ // Vendor-prefix box-sizing
+ "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;" +
+ "box-sizing:content-box;display:block;margin:0;border:0;" +
+ "padding:1px;width:1px;zoom:1";
+ div.appendChild( document.createElement( "div" ) ).style.width = "5px";
+ shrinkWrapBlocksVal = div.offsetWidth !== 3;
+ }
+
+ body.removeChild( container );
+
+ return shrinkWrapBlocksVal;
+ };
+
+} )();
+var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source;
+
+var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );
+
+
+var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
+
+var isHidden = function( elem, el ) {
+
+ // isHidden might be called from jQuery#filter function;
+ // in that case, element will be second argument
+ elem = el || elem;
+ return jQuery.css( elem, "display" ) === "none" ||
+ !jQuery.contains( elem.ownerDocument, elem );
+ };
+
+
+
+function adjustCSS( elem, prop, valueParts, tween ) {
+ var adjusted,
+ scale = 1,
+ maxIterations = 20,
+ currentValue = tween ?
+ function() { return tween.cur(); } :
+ function() { return jQuery.css( elem, prop, "" ); },
+ initial = currentValue(),
+ unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
+
+ // Starting value computation is required for potential unit mismatches
+ initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
+ rcssNum.exec( jQuery.css( elem, prop ) );
+
+ if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
+
+ // Trust units reported by jQuery.css
+ unit = unit || initialInUnit[ 3 ];
+
+ // Make sure we update the tween properties later on
+ valueParts = valueParts || [];
+
+ // Iteratively approximate from a nonzero starting point
+ initialInUnit = +initial || 1;
+
+ do {
+
+ // If previous iteration zeroed out, double until we get *something*.
+ // Use string for doubling so we don't accidentally see scale as unchanged below
+ scale = scale || ".5";
+
+ // Adjust and apply
+ initialInUnit = initialInUnit / scale;
+ jQuery.style( elem, prop, initialInUnit + unit );
+
+ // Update scale, tolerating zero or NaN from tween.cur()
+ // Break the loop if scale is unchanged or perfect, or if we've just had enough.
+ } while (
+ scale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations
+ );
+ }
+
+ if ( valueParts ) {
+ initialInUnit = +initialInUnit || +initial || 0;
+
+ // Apply relative offset (+=/-=) if specified
+ adjusted = valueParts[ 1 ] ?
+ initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :
+ +valueParts[ 2 ];
+ if ( tween ) {
+ tween.unit = unit;
+ tween.start = initialInUnit;
+ tween.end = adjusted;
+ }
+ }
+ return adjusted;
+}
+
+
+// Multifunctional method to get and set values of a collection
+// The value/s can optionally be executed if it's a function
+var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
+ var i = 0,
+ length = elems.length,
+ bulk = key == null;
+
+ // Sets many values
+ if ( jQuery.type( key ) === "object" ) {
+ chainable = true;
+ for ( i in key ) {
+ access( elems, fn, i, key[ i ], true, emptyGet, raw );
+ }
+
+ // Sets one value
+ } else if ( value !== undefined ) {
+ chainable = true;
+
+ if ( !jQuery.isFunction( value ) ) {
+ raw = true;
+ }
+
+ if ( bulk ) {
+
+ // Bulk operations run against the entire set
+ if ( raw ) {
+ fn.call( elems, value );
+ fn = null;
+
+ // ...except when executing function values
+ } else {
+ bulk = fn;
+ fn = function( elem, key, value ) {
+ return bulk.call( jQuery( elem ), value );
+ };
+ }
+ }
+
+ if ( fn ) {
+ for ( ; i < length; i++ ) {
+ fn(
+ elems[ i ],
+ key,
+ raw ? value : value.call( elems[ i ], i, fn( elems[ i ], key ) )
+ );
+ }
+ }
+ }
+
+ return chainable ?
+ elems :
+
+ // Gets
+ bulk ?
+ fn.call( elems ) :
+ length ? fn( elems[ 0 ], key ) : emptyGet;
+};
+var rcheckableType = ( /^(?:checkbox|radio)$/i );
+
+var rtagName = ( /<([\w:-]+)/ );
+
+var rscriptType = ( /^$|\/(?:java|ecma)script/i );
+
+var rleadingWhitespace = ( /^\s+/ );
+
+var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|" +
+ "details|dialog|figcaption|figure|footer|header|hgroup|main|" +
+ "mark|meter|nav|output|picture|progress|section|summary|template|time|video";
+
+
+
+function createSafeFragment( document ) {
+ var list = nodeNames.split( "|" ),
+ safeFrag = document.createDocumentFragment();
+
+ if ( safeFrag.createElement ) {
+ while ( list.length ) {
+ safeFrag.createElement(
+ list.pop()
+ );
+ }
+ }
+ return safeFrag;
+}
+
+
+( function() {
+ var div = document.createElement( "div" ),
+ fragment = document.createDocumentFragment(),
+ input = document.createElement( "input" );
+
+ // Setup
+ div.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>";
+
+ // IE strips leading whitespace when .innerHTML is used
+ support.leadingWhitespace = div.firstChild.nodeType === 3;
+
+ // Make sure that tbody elements aren't automatically inserted
+ // IE will insert them into empty tables
+ support.tbody = !div.getElementsByTagName( "tbody" ).length;
+
+ // Make sure that link elements get serialized correctly by innerHTML
+ // This requires a wrapper element in IE
+ support.htmlSerialize = !!div.getElementsByTagName( "link" ).length;
+
+ // Makes sure cloning an html5 element does not cause problems
+ // Where outerHTML is undefined, this still works
+ support.html5Clone =
+ document.createElement( "nav" ).cloneNode( true ).outerHTML !== "<:nav></:nav>";
+
+ // Check if a disconnected checkbox will retain its checked
+ // value of true after appended to the DOM (IE6/7)
+ input.type = "checkbox";
+ input.checked = true;
+ fragment.appendChild( input );
+ support.appendChecked = input.checked;
+
+ // Make sure textarea (and checkbox) defaultValue is properly cloned
+ // Support: IE6-IE11+
+ div.innerHTML = "<textarea>x</textarea>";
+ support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
+
+ // #11217 - WebKit loses check when the name is after the checked attribute
+ fragment.appendChild( div );
+
+ // Support: Windows Web Apps (WWA)
+ // `name` and `type` must use .setAttribute for WWA (#14901)
+ input = document.createElement( "input" );
+ input.setAttribute( "type", "radio" );
+ input.setAttribute( "checked", "checked" );
+ input.setAttribute( "name", "t" );
+
+ div.appendChild( input );
+
+ // Support: Safari 5.1, iOS 5.1, Android 4.x, Android 2.3
+ // old WebKit doesn't clone checked state correctly in fragments
+ support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
+
+ // Support: IE<9
+ // Cloned elements keep attachEvent handlers, we use addEventListener on IE9+
+ support.noCloneEvent = !!div.addEventListener;
+
+ // Support: IE<9
+ // Since attributes and properties are the same in IE,
+ // cleanData must set properties to undefined rather than use removeAttribute
+ div[ jQuery.expando ] = 1;
+ support.attributes = !div.getAttribute( jQuery.expando );
+} )();
+
+
+// We have to close these tags to support XHTML (#13200)
+var wrapMap = {
+ option: [ 1, "<select multiple='multiple'>", "</select>" ],
+ legend: [ 1, "<fieldset>", "</fieldset>" ],
+ area: [ 1, "<map>", "</map>" ],
+
+ // Support: IE8
+ param: [ 1, "<object>", "</object>" ],
+ thead: [ 1, "<table>", "</table>" ],
+ tr: [ 2, "<table><tbody>", "</tbody></table>" ],
+ col: [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ],
+ td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
+
+ // IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags,
+ // unless wrapped in a div with non-breaking characters in front of it.
+ _default: support.htmlSerialize ? [ 0, "", "" ] : [ 1, "X<div>", "</div>" ]
+};
+
+// Support: IE8-IE9
+wrapMap.optgroup = wrapMap.option;
+
+wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
+wrapMap.th = wrapMap.td;
+
+
+function getAll( context, tag ) {
+ var elems, elem,
+ i = 0,
+ found = typeof context.getElementsByTagName !== "undefined" ?
+ context.getElementsByTagName( tag || "*" ) :
+ typeof context.querySelectorAll !== "undefined" ?
+ context.querySelectorAll( tag || "*" ) :
+ undefined;
+
+ if ( !found ) {
+ for ( found = [], elems = context.childNodes || context;
+ ( elem = elems[ i ] ) != null;
+ i++
+ ) {
+ if ( !tag || jQuery.nodeName( elem, tag ) ) {
+ found.push( elem );
+ } else {
+ jQuery.merge( found, getAll( elem, tag ) );
+ }
+ }
+ }
+
+ return tag === undefined || tag && jQuery.nodeName( context, tag ) ?
+ jQuery.merge( [ context ], found ) :
+ found;
+}
+
+
+// Mark scripts as having already been evaluated
+function setGlobalEval( elems, refElements ) {
+ var elem,
+ i = 0;
+ for ( ; ( elem = elems[ i ] ) != null; i++ ) {
+ jQuery._data(
+ elem,
+ "globalEval",
+ !refElements || jQuery._data( refElements[ i ], "globalEval" )
+ );
+ }
+}
+
+
+var rhtml = /<|&#?\w+;/,
+ rtbody = /<tbody/i;
+
+function fixDefaultChecked( elem ) {
+ if ( rcheckableType.test( elem.type ) ) {
+ elem.defaultChecked = elem.checked;
+ }
+}
+
+function buildFragment( elems, context, scripts, selection, ignored ) {
+ var j, elem, contains,
+ tmp, tag, tbody, wrap,
+ l = elems.length,
+
+ // Ensure a safe fragment
+ safe = createSafeFragment( context ),
+
+ nodes = [],
+ i = 0;
+
+ for ( ; i < l; i++ ) {
+ elem = elems[ i ];
+
+ if ( elem || elem === 0 ) {
+
+ // Add nodes directly
+ if ( jQuery.type( elem ) === "object" ) {
+ jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
+
+ // Convert non-html into a text node
+ } else if ( !rhtml.test( elem ) ) {
+ nodes.push( context.createTextNode( elem ) );
+
+ // Convert html into DOM nodes
+ } else {
+ tmp = tmp || safe.appendChild( context.createElement( "div" ) );
+
+ // Deserialize a standard representation
+ tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase();
+ wrap = wrapMap[ tag ] || wrapMap._default;
+
+ tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];
+
+ // Descend through wrappers to the right content
+ j = wrap[ 0 ];
+ while ( j-- ) {
+ tmp = tmp.lastChild;
+ }
+
+ // Manually add leading whitespace removed by IE
+ if ( !support.leadingWhitespace && rleadingWhitespace.test( elem ) ) {
+ nodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[ 0 ] ) );
+ }
+
+ // Remove IE's autoinserted <tbody> from table fragments
+ if ( !support.tbody ) {
+
+ // String was a <table>, *may* have spurious <tbody>
+ elem = tag === "table" && !rtbody.test( elem ) ?
+ tmp.firstChild :
+
+ // String was a bare <thead> or <tfoot>
+ wrap[ 1 ] === "<table>" && !rtbody.test( elem ) ?
+ tmp :
+ 0;
+
+ j = elem && elem.childNodes.length;
+ while ( j-- ) {
+ if ( jQuery.nodeName( ( tbody = elem.childNodes[ j ] ), "tbody" ) &&
+ !tbody.childNodes.length ) {
+
+ elem.removeChild( tbody );
+ }
+ }
+ }
+
+ jQuery.merge( nodes, tmp.childNodes );
+
+ // Fix #12392 for WebKit and IE > 9
+ tmp.textContent = "";
+
+ // Fix #12392 for oldIE
+ while ( tmp.firstChild ) {
+ tmp.removeChild( tmp.firstChild );
+ }
+
+ // Remember the top-level container for proper cleanup
+ tmp = safe.lastChild;
+ }
+ }
+ }
+
+ // Fix #11356: Clear elements from fragment
+ if ( tmp ) {
+ safe.removeChild( tmp );
+ }
+
+ // Reset defaultChecked for any radios and checkboxes
+ // about to be appended to the DOM in IE 6/7 (#8060)
+ if ( !support.appendChecked ) {
+ jQuery.grep( getAll( nodes, "input" ), fixDefaultChecked );
+ }
+
+ i = 0;
+ while ( ( elem = nodes[ i++ ] ) ) {
+
+ // Skip elements already in the context collection (trac-4087)
+ if ( selection && jQuery.inArray( elem, selection ) > -1 ) {
+ if ( ignored ) {
+ ignored.push( elem );
+ }
+
+ continue;
+ }
+
+ contains = jQuery.contains( elem.ownerDocument, elem );
+
+ // Append to fragment
+ tmp = getAll( safe.appendChild( elem ), "script" );
+
+ // Preserve script evaluation history
+ if ( contains ) {
+ setGlobalEval( tmp );
+ }
+
+ // Capture executables
+ if ( scripts ) {
+ j = 0;
+ while ( ( elem = tmp[ j++ ] ) ) {
+ if ( rscriptType.test( elem.type || "" ) ) {
+ scripts.push( elem );
+ }
+ }
+ }
+ }
+
+ tmp = null;
+
+ return safe;
+}
+
+
+( function() {
+ var i, eventName,
+ div = document.createElement( "div" );
+
+ // Support: IE<9 (lack submit/change bubble), Firefox (lack focus(in | out) events)
+ for ( i in { submit: true, change: true, focusin: true } ) {
+ eventName = "on" + i;
+
+ if ( !( support[ i ] = eventName in window ) ) {
+
+ // Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP)
+ div.setAttribute( eventName, "t" );
+ support[ i ] = div.attributes[ eventName ].expando === false;
+ }
+ }
+
+ // Null elements to avoid leaks in IE.
+ div = null;
+} )();
+
+
+var rformElems = /^(?:input|select|textarea)$/i,
+ rkeyEvent = /^key/,
+ rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
+ rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
+ rtypenamespace = /^([^.]*)(?:\.(.+)|)/;
+
+function returnTrue() {
+ return true;
+}
+
+function returnFalse() {
+ return false;
+}
+
+// Support: IE9
+// See #13393 for more info
+function safeActiveElement() {
+ try {
+ return document.activeElement;
+ } catch ( err ) { }
+}
+
+function on( elem, types, selector, data, fn, one ) {
+ var origFn, type;
+
+ // Types can be a map of types/handlers
+ if ( typeof types === "object" ) {
+
+ // ( types-Object, selector, data )
+ if ( typeof selector !== "string" ) {
+
+ // ( types-Object, data )
+ data = data || selector;
+ selector = undefined;
+ }
+ for ( type in types ) {
+ on( elem, type, selector, data, types[ type ], one );
+ }
+ return elem;
+ }
+
+ if ( data == null && fn == null ) {
+
+ // ( types, fn )
+ fn = selector;
+ data = selector = undefined;
+ } else if ( fn == null ) {
+ if ( typeof selector === "string" ) {
+
+ // ( types, selector, fn )
+ fn = data;
+ data = undefined;
+ } else {
+
+ // ( types, data, fn )
+ fn = data;
+ data = selector;
+ selector = undefined;
+ }
+ }
+ if ( fn === false ) {
+ fn = returnFalse;
+ } else if ( !fn ) {
+ return elem;
+ }
+
+ if ( one === 1 ) {
+ origFn = fn;
+ fn = function( event ) {
+
+ // Can use an empty set, since event contains the info
+ jQuery().off( event );
+ return origFn.apply( this, arguments );
+ };
+
+ // Use same guid so caller can remove using origFn
+ fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
+ }
+ return elem.each( function() {
+ jQuery.event.add( this, types, fn, data, selector );
+ } );
+}
+
+/*
+ * Helper functions for managing events -- not part of the public interface.
+ * Props to Dean Edwards' addEvent library for many of the ideas.
+ */
+jQuery.event = {
+
+ global: {},
+
+ add: function( elem, types, handler, data, selector ) {
+ var tmp, events, t, handleObjIn,
+ special, eventHandle, handleObj,
+ handlers, type, namespaces, origType,
+ elemData = jQuery._data( elem );
+
+ // Don't attach events to noData or text/comment nodes (but allow plain objects)
+ if ( !elemData ) {
+ return;
+ }
+
+ // Caller can pass in an object of custom data in lieu of the handler
+ if ( handler.handler ) {
+ handleObjIn = handler;
+ handler = handleObjIn.handler;
+ selector = handleObjIn.selector;
+ }
+
+ // Make sure that the handler has a unique ID, used to find/remove it later
+ if ( !handler.guid ) {
+ handler.guid = jQuery.guid++;
+ }
+
+ // Init the element's event structure and main handler, if this is the first
+ if ( !( events = elemData.events ) ) {
+ events = elemData.events = {};
+ }
+ if ( !( eventHandle = elemData.handle ) ) {
+ eventHandle = elemData.handle = function( e ) {
+
+ // Discard the second event of a jQuery.event.trigger() and
+ // when an event is called after a page has unloaded
+ return typeof jQuery !== "undefined" &&
+ ( !e || jQuery.event.triggered !== e.type ) ?
+ jQuery.event.dispatch.apply( eventHandle.elem, arguments ) :
+ undefined;
+ };
+
+ // Add elem as a property of the handle fn to prevent a memory leak
+ // with IE non-native events
+ eventHandle.elem = elem;
+ }
+
+ // Handle multiple events separated by a space
+ types = ( types || "" ).match( rnotwhite ) || [ "" ];
+ t = types.length;
+ while ( t-- ) {
+ tmp = rtypenamespace.exec( types[ t ] ) || [];
+ type = origType = tmp[ 1 ];
+ namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
+
+ // There *must* be a type, no attaching namespace-only handlers
+ if ( !type ) {
+ continue;
+ }
+
+ // If event changes its type, use the special event handlers for the changed type
+ special = jQuery.event.special[ type ] || {};
+
+ // If selector defined, determine special event api type, otherwise given type
+ type = ( selector ? special.delegateType : special.bindType ) || type;
+
+ // Update special based on newly reset type
+ special = jQuery.event.special[ type ] || {};
+
+ // handleObj is passed to all event handlers
+ handleObj = jQuery.extend( {
+ type: type,
+ origType: origType,
+ data: data,
+ handler: handler,
+ guid: handler.guid,
+ selector: selector,
+ needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
+ namespace: namespaces.join( "." )
+ }, handleObjIn );
+
+ // Init the event handler queue if we're the first
+ if ( !( handlers = events[ type ] ) ) {
+ handlers = events[ type ] = [];
+ handlers.delegateCount = 0;
+
+ // Only use addEventListener/attachEvent if the special events handler returns false
+ if ( !special.setup ||
+ special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
+
+ // Bind the global event handler to the element
+ if ( elem.addEventListener ) {
+ elem.addEventListener( type, eventHandle, false );
+
+ } else if ( elem.attachEvent ) {
+ elem.attachEvent( "on" + type, eventHandle );
+ }
+ }
+ }
+
+ if ( special.add ) {
+ special.add.call( elem, handleObj );
+
+ if ( !handleObj.handler.guid ) {
+ handleObj.handler.guid = handler.guid;
+ }
+ }
+
+ // Add to the element's handler list, delegates in front
+ if ( selector ) {
+ handlers.splice( handlers.delegateCount++, 0, handleObj );
+ } else {
+ handlers.push( handleObj );
+ }
+
+ // Keep track of which events have ever been used, for event optimization
+ jQuery.event.global[ type ] = true;
+ }
+
+ // Nullify elem to prevent memory leaks in IE
+ elem = null;
+ },
+
+ // Detach an event or set of events from an element
+ remove: function( elem, types, handler, selector, mappedTypes ) {
+ var j, handleObj, tmp,
+ origCount, t, events,
+ special, handlers, type,
+ namespaces, origType,
+ elemData = jQuery.hasData( elem ) && jQuery._data( elem );
+
+ if ( !elemData || !( events = elemData.events ) ) {
+ return;
+ }
+
+ // Once for each type.namespace in types; type may be omitted
+ types = ( types || "" ).match( rnotwhite ) || [ "" ];
+ t = types.length;
+ while ( t-- ) {
+ tmp = rtypenamespace.exec( types[ t ] ) || [];
+ type = origType = tmp[ 1 ];
+ namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
+
+ // Unbind all events (on this namespace, if provided) for the element
+ if ( !type ) {
+ for ( type in events ) {
+ jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
+ }
+ continue;
+ }
+
+ special = jQuery.event.special[ type ] || {};
+ type = ( selector ? special.delegateType : special.bindType ) || type;
+ handlers = events[ type ] || [];
+ tmp = tmp[ 2 ] &&
+ new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" );
+
+ // Remove matching events
+ origCount = j = handlers.length;
+ while ( j-- ) {
+ handleObj = handlers[ j ];
+
+ if ( ( mappedTypes || origType === handleObj.origType ) &&
+ ( !handler || handler.guid === handleObj.guid ) &&
+ ( !tmp || tmp.test( handleObj.namespace ) ) &&
+ ( !selector || selector === handleObj.selector ||
+ selector === "**" && handleObj.selector ) ) {
+ handlers.splice( j, 1 );
+
+ if ( handleObj.selector ) {
+ handlers.delegateCount--;
+ }
+ if ( special.remove ) {
+ special.remove.call( elem, handleObj );
+ }
+ }
+ }
+
+ // Remove generic event handler if we removed something and no more handlers exist
+ // (avoids potential for endless recursion during removal of special event handlers)
+ if ( origCount && !handlers.length ) {
+ if ( !special.teardown ||
+ special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
+
+ jQuery.removeEvent( elem, type, elemData.handle );
+ }
+
+ delete events[ type ];
+ }
+ }
+
+ // Remove the expando if it's no longer used
+ if ( jQuery.isEmptyObject( events ) ) {
+ delete elemData.handle;
+
+ // removeData also checks for emptiness and clears the expando if empty
+ // so use it instead of delete
+ jQuery._removeData( elem, "events" );
+ }
+ },
+
+ trigger: function( event, data, elem, onlyHandlers ) {
+ var handle, ontype, cur,
+ bubbleType, special, tmp, i,
+ eventPath = [ elem || document ],
+ type = hasOwn.call( event, "type" ) ? event.type : event,
+ namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : [];
+
+ cur = tmp = elem = elem || document;
+
+ // Don't do events on text and comment nodes
+ if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
+ return;
+ }
+
+ // focus/blur morphs to focusin/out; ensure we're not firing them right now
+ if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
+ return;
+ }
+
+ if ( type.indexOf( "." ) > -1 ) {
+
+ // Namespaced trigger; create a regexp to match event type in handle()
+ namespaces = type.split( "." );
+ type = namespaces.shift();
+ namespaces.sort();
+ }
+ ontype = type.indexOf( ":" ) < 0 && "on" + type;
+
+ // Caller can pass in a jQuery.Event object, Object, or just an event type string
+ event = event[ jQuery.expando ] ?
+ event :
+ new jQuery.Event( type, typeof event === "object" && event );
+
+ // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
+ event.isTrigger = onlyHandlers ? 2 : 3;
+ event.namespace = namespaces.join( "." );
+ event.rnamespace = event.namespace ?
+ new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) :
+ null;
+
+ // Clean up the event in case it is being reused
+ event.result = undefined;
+ if ( !event.target ) {
+ event.target = elem;
+ }
+
+ // Clone any incoming data and prepend the event, creating the handler arg list
+ data = data == null ?
+ [ event ] :
+ jQuery.makeArray( data, [ event ] );
+
+ // Allow special events to draw outside the lines
+ special = jQuery.event.special[ type ] || {};
+ if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {
+ return;
+ }
+
+ // Determine event propagation path in advance, per W3C events spec (#9951)
+ // Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
+ if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {
+
+ bubbleType = special.delegateType || type;
+ if ( !rfocusMorph.test( bubbleType + type ) ) {
+ cur = cur.parentNode;
+ }
+ for ( ; cur; cur = cur.parentNode ) {
+ eventPath.push( cur );
+ tmp = cur;
+ }
+
+ // Only add window if we got to document (e.g., not plain obj or detached DOM)
+ if ( tmp === ( elem.ownerDocument || document ) ) {
+ eventPath.push( tmp.defaultView || tmp.parentWindow || window );
+ }
+ }
+
+ // Fire handlers on the event path
+ i = 0;
+ while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {
+
+ event.type = i > 1 ?
+ bubbleType :
+ special.bindType || type;
+
+ // jQuery handler
+ handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] &&
+ jQuery._data( cur, "handle" );
+
+ if ( handle ) {
+ handle.apply( cur, data );
+ }
+
+ // Native handler
+ handle = ontype && cur[ ontype ];
+ if ( handle && handle.apply && acceptData( cur ) ) {
+ event.result = handle.apply( cur, data );
+ if ( event.result === false ) {
+ event.preventDefault();
+ }
+ }
+ }
+ event.type = type;
+
+ // If nobody prevented the default action, do it now
+ if ( !onlyHandlers && !event.isDefaultPrevented() ) {
+
+ if (
+ ( !special._default ||
+ special._default.apply( eventPath.pop(), data ) === false
+ ) && acceptData( elem )
+ ) {
+
+ // Call a native DOM method on the target with the same name name as the event.
+ // Can't use an .isFunction() check here because IE6/7 fails that test.
+ // Don't do default actions on window, that's where global variables be (#6170)
+ if ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) {
+
+ // Don't re-trigger an onFOO event when we call its FOO() method
+ tmp = elem[ ontype ];
+
+ if ( tmp ) {
+ elem[ ontype ] = null;
+ }
+
+ // Prevent re-triggering of the same event, since we already bubbled it above
+ jQuery.event.triggered = type;
+ try {
+ elem[ type ]();
+ } catch ( e ) {
+
+ // IE<9 dies on focus/blur to hidden element (#1486,#12518)
+ // only reproducible on winXP IE8 native, not IE9 in IE8 mode
+ }
+ jQuery.event.triggered = undefined;
+
+ if ( tmp ) {
+ elem[ ontype ] = tmp;
+ }
+ }
+ }
+ }
+
+ return event.result;
+ },
+
+ dispatch: function( event ) {
+
+ // Make a writable jQuery.Event from the native event object
+ event = jQuery.event.fix( event );
+
+ var i, j, ret, matched, handleObj,
+ handlerQueue = [],
+ args = slice.call( arguments ),
+ handlers = ( jQuery._data( this, "events" ) || {} )[ event.type ] || [],
+ special = jQuery.event.special[ event.type ] || {};
+
+ // Use the fix-ed jQuery.Event rather than the (read-only) native event
+ args[ 0 ] = event;
+ event.delegateTarget = this;
+
+ // Call the preDispatch hook for the mapped type, and let it bail if desired
+ if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
+ return;
+ }
+
+ // Determine handlers
+ handlerQueue = jQuery.event.handlers.call( this, event, handlers );
+
+ // Run delegates first; they may want to stop propagation beneath us
+ i = 0;
+ while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {
+ event.currentTarget = matched.elem;
+
+ j = 0;
+ while ( ( handleObj = matched.handlers[ j++ ] ) &&
+ !event.isImmediatePropagationStopped() ) {
+
+ // Triggered event must either 1) have no namespace, or 2) have namespace(s)
+ // a subset or equal to those in the bound event (both can have no namespace).
+ if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {
+
+ event.handleObj = handleObj;
+ event.data = handleObj.data;
+
+ ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||
+ handleObj.handler ).apply( matched.elem, args );
+
+ if ( ret !== undefined ) {
+ if ( ( event.result = ret ) === false ) {
+ event.preventDefault();
+ event.stopPropagation();
+ }
+ }
+ }
+ }
+ }
+
+ // Call the postDispatch hook for the mapped type
+ if ( special.postDispatch ) {
+ special.postDispatch.call( this, event );
+ }
+
+ return event.result;
+ },
+
+ handlers: function( event, handlers ) {
+ var i, matches, sel, handleObj,
+ handlerQueue = [],
+ delegateCount = handlers.delegateCount,
+ cur = event.target;
+
+ // Support (at least): Chrome, IE9
+ // Find delegate handlers
+ // Black-hole SVG <use> instance trees (#13180)
+ //
+ // Support: Firefox<=42+
+ // Avoid non-left-click in FF but don't block IE radio events (#3861, gh-2343)
+ if ( delegateCount && cur.nodeType &&
+ ( event.type !== "click" || isNaN( event.button ) || event.button < 1 ) ) {
+
+ /* jshint eqeqeq: false */
+ for ( ; cur != this; cur = cur.parentNode || this ) {
+ /* jshint eqeqeq: true */
+
+ // Don't check non-elements (#13208)
+ // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
+ if ( cur.nodeType === 1 && ( cur.disabled !== true || event.type !== "click" ) ) {
+ matches = [];
+ for ( i = 0; i < delegateCount; i++ ) {
+ handleObj = handlers[ i ];
+
+ // Don't conflict with Object.prototype properties (#13203)
+ sel = handleObj.selector + " ";
+
+ if ( matches[ sel ] === undefined ) {
+ matches[ sel ] = handleObj.needsContext ?
+ jQuery( sel, this ).index( cur ) > -1 :
+ jQuery.find( sel, this, null, [ cur ] ).length;
+ }
+ if ( matches[ sel ] ) {
+ matches.push( handleObj );
+ }
+ }
+ if ( matches.length ) {
+ handlerQueue.push( { elem: cur, handlers: matches } );
+ }
+ }
+ }
+ }
+
+ // Add the remaining (directly-bound) handlers
+ if ( delegateCount < handlers.length ) {
+ handlerQueue.push( { elem: this, handlers: handlers.slice( delegateCount ) } );
+ }
+
+ return handlerQueue;
+ },
+
+ fix: function( event ) {
+ if ( event[ jQuery.expando ] ) {
+ return event;
+ }
+
+ // Create a writable copy of the event object and normalize some properties
+ var i, prop, copy,
+ type = event.type,
+ originalEvent = event,
+ fixHook = this.fixHooks[ type ];
+
+ if ( !fixHook ) {
+ this.fixHooks[ type ] = fixHook =
+ rmouseEvent.test( type ) ? this.mouseHooks :
+ rkeyEvent.test( type ) ? this.keyHooks :
+ {};
+ }
+ copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;
+
+ event = new jQuery.Event( originalEvent );
+
+ i = copy.length;
+ while ( i-- ) {
+ prop = copy[ i ];
+ event[ prop ] = originalEvent[ prop ];
+ }
+
+ // Support: IE<9
+ // Fix target property (#1925)
+ if ( !event.target ) {
+ event.target = originalEvent.srcElement || document;
+ }
+
+ // Support: Safari 6-8+
+ // Target should not be a text node (#504, #13143)
+ if ( event.target.nodeType === 3 ) {
+ event.target = event.target.parentNode;
+ }
+
+ // Support: IE<9
+ // For mouse/key events, metaKey==false if it's undefined (#3368, #11328)
+ event.metaKey = !!event.metaKey;
+
+ return fixHook.filter ? fixHook.filter( event, originalEvent ) : event;
+ },
+
+ // Includes some event props shared by KeyEvent and MouseEvent
+ props: ( "altKey bubbles cancelable ctrlKey currentTarget detail eventPhase " +
+ "metaKey relatedTarget shiftKey target timeStamp view which" ).split( " " ),
+
+ fixHooks: {},
+
+ keyHooks: {
+ props: "char charCode key keyCode".split( " " ),
+ filter: function( event, original ) {
+
+ // Add which for key events
+ if ( event.which == null ) {
+ event.which = original.charCode != null ? original.charCode : original.keyCode;
+ }
+
+ return event;
+ }
+ },
+
+ mouseHooks: {
+ props: ( "button buttons clientX clientY fromElement offsetX offsetY " +
+ "pageX pageY screenX screenY toElement" ).split( " " ),
+ filter: function( event, original ) {
+ var body, eventDoc, doc,
+ button = original.button,
+ fromElement = original.fromElement;
+
+ // Calculate pageX/Y if missing and clientX/Y available
+ if ( event.pageX == null && original.clientX != null ) {
+ eventDoc = event.target.ownerDocument || document;
+ doc = eventDoc.documentElement;
+ body = eventDoc.body;
+
+ event.pageX = original.clientX +
+ ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) -
+ ( doc && doc.clientLeft || body && body.clientLeft || 0 );
+ event.pageY = original.clientY +
+ ( doc && doc.scrollTop || body && body.scrollTop || 0 ) -
+ ( doc && doc.clientTop || body && body.clientTop || 0 );
+ }
+
+ // Add relatedTarget, if necessary
+ if ( !event.relatedTarget && fromElement ) {
+ event.relatedTarget = fromElement === event.target ?
+ original.toElement :
+ fromElement;
+ }
+
+ // Add which for click: 1 === left; 2 === middle; 3 === right
+ // Note: button is not normalized, so don't use it
+ if ( !event.which && button !== undefined ) {
+ event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );
+ }
+
+ return event;
+ }
+ },
+
+ special: {
+ load: {
+
+ // Prevent triggered image.load events from bubbling to window.load
+ noBubble: true
+ },
+ focus: {
+
+ // Fire native event if possible so blur/focus sequence is correct
+ trigger: function() {
+ if ( this !== safeActiveElement() && this.focus ) {
+ try {
+ this.focus();
+ return false;
+ } catch ( e ) {
+
+ // Support: IE<9
+ // If we error on focus to hidden element (#1486, #12518),
+ // let .trigger() run the handlers
+ }
+ }
+ },
+ delegateType: "focusin"
+ },
+ blur: {
+ trigger: function() {
+ if ( this === safeActiveElement() && this.blur ) {
+ this.blur();
+ return false;
+ }
+ },
+ delegateType: "focusout"
+ },
+ click: {
+
+ // For checkbox, fire native event so checked state will be right
+ trigger: function() {
+ if ( jQuery.nodeName( this, "input" ) && this.type === "checkbox" && this.click ) {
+ this.click();
+ return false;
+ }
+ },
+
+ // For cross-browser consistency, don't fire native .click() on links
+ _default: function( event ) {
+ return jQuery.nodeName( event.target, "a" );
+ }
+ },
+
+ beforeunload: {
+ postDispatch: function( event ) {
+
+ // Support: Firefox 20+
+ // Firefox doesn't alert if the returnValue field is not set.
+ if ( event.result !== undefined && event.originalEvent ) {
+ event.originalEvent.returnValue = event.result;
+ }
+ }
+ }
+ },
+
+ // Piggyback on a donor event to simulate a different one
+ simulate: function( type, elem, event ) {
+ var e = jQuery.extend(
+ new jQuery.Event(),
+ event,
+ {
+ type: type,
+ isSimulated: true
+
+ // Previously, `originalEvent: {}` was set here, so stopPropagation call
+ // would not be triggered on donor event, since in our own
+ // jQuery.event.stopPropagation function we had a check for existence of
+ // originalEvent.stopPropagation method, so, consequently it would be a noop.
+ //
+ // Guard for simulated events was moved to jQuery.event.stopPropagation function
+ // since `originalEvent` should point to the original event for the
+ // constancy with other events and for more focused logic
+ }
+ );
+
+ jQuery.event.trigger( e, null, elem );
+
+ if ( e.isDefaultPrevented() ) {
+ event.preventDefault();
+ }
+ }
+};
+
+jQuery.removeEvent = document.removeEventListener ?
+ function( elem, type, handle ) {
+
+ // This "if" is needed for plain objects
+ if ( elem.removeEventListener ) {
+ elem.removeEventListener( type, handle );
+ }
+ } :
+ function( elem, type, handle ) {
+ var name = "on" + type;
+
+ if ( elem.detachEvent ) {
+
+ // #8545, #7054, preventing memory leaks for custom events in IE6-8
+ // detachEvent needed property on element, by name of that event,
+ // to properly expose it to GC
+ if ( typeof elem[ name ] === "undefined" ) {
+ elem[ name ] = null;
+ }
+
+ elem.detachEvent( name, handle );
+ }
+ };
+
+jQuery.Event = function( src, props ) {
+
+ // Allow instantiation without the 'new' keyword
+ if ( !( this instanceof jQuery.Event ) ) {
+ return new jQuery.Event( src, props );
+ }
+
+ // Event object
+ if ( src && src.type ) {
+ this.originalEvent = src;
+ this.type = src.type;
+
+ // Events bubbling up the document may have been marked as prevented
+ // by a handler lower down the tree; reflect the correct value.
+ this.isDefaultPrevented = src.defaultPrevented ||
+ src.defaultPrevented === undefined &&
+
+ // Support: IE < 9, Android < 4.0
+ src.returnValue === false ?
+ returnTrue :
+ returnFalse;
+
+ // Event type
+ } else {
+ this.type = src;
+ }
+
+ // Put explicitly provided properties onto the event object
+ if ( props ) {
+ jQuery.extend( this, props );
+ }
+
+ // Create a timestamp if incoming event doesn't have one
+ this.timeStamp = src && src.timeStamp || jQuery.now();
+
+ // Mark it as fixed
+ this[ jQuery.expando ] = true;
+};
+
+// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
+// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
+jQuery.Event.prototype = {
+ constructor: jQuery.Event,
+ isDefaultPrevented: returnFalse,
+ isPropagationStopped: returnFalse,
+ isImmediatePropagationStopped: returnFalse,
+
+ preventDefault: function() {
+ var e = this.originalEvent;
+
+ this.isDefaultPrevented = returnTrue;
+ if ( !e ) {
+ return;
+ }
+
+ // If preventDefault exists, run it on the original event
+ if ( e.preventDefault ) {
+ e.preventDefault();
+
+ // Support: IE
+ // Otherwise set the returnValue property of the original event to false
+ } else {
+ e.returnValue = false;
+ }
+ },
+ stopPropagation: function() {
+ var e = this.originalEvent;
+
+ this.isPropagationStopped = returnTrue;
+
+ if ( !e || this.isSimulated ) {
+ return;
+ }
+
+ // If stopPropagation exists, run it on the original event
+ if ( e.stopPropagation ) {
+ e.stopPropagation();
+ }
+
+ // Support: IE
+ // Set the cancelBubble property of the original event to true
+ e.cancelBubble = true;
+ },
+ stopImmediatePropagation: function() {
+ var e = this.originalEvent;
+
+ this.isImmediatePropagationStopped = returnTrue;
+
+ if ( e && e.stopImmediatePropagation ) {
+ e.stopImmediatePropagation();
+ }
+
+ this.stopPropagation();
+ }
+};
+
+// Create mouseenter/leave events using mouseover/out and event-time checks
+// so that event delegation works in jQuery.
+// Do the same for pointerenter/pointerleave and pointerover/pointerout
+//
+// Support: Safari 7 only
+// Safari sends mouseenter too often; see:
+// https://code.google.com/p/chromium/issues/detail?id=470258
+// for the description of the bug (it existed in older Chrome versions as well).
+jQuery.each( {
+ mouseenter: "mouseover",
+ mouseleave: "mouseout",
+ pointerenter: "pointerover",
+ pointerleave: "pointerout"
+}, function( orig, fix ) {
+ jQuery.event.special[ orig ] = {
+ delegateType: fix,
+ bindType: fix,
+
+ handle: function( event ) {
+ var ret,
+ target = this,
+ related = event.relatedTarget,
+ handleObj = event.handleObj;
+
+ // For mouseenter/leave call the handler if related is outside the target.
+ // NB: No relatedTarget if the mouse left/entered the browser window
+ if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {
+ event.type = handleObj.origType;
+ ret = handleObj.handler.apply( this, arguments );
+ event.type = fix;
+ }
+ return ret;
+ }
+ };
+} );
+
+// IE submit delegation
+if ( !support.submit ) {
+
+ jQuery.event.special.submit = {
+ setup: function() {
+
+ // Only need this for delegated form submit events
+ if ( jQuery.nodeName( this, "form" ) ) {
+ return false;
+ }
+
+ // Lazy-add a submit handler when a descendant form may potentially be submitted
+ jQuery.event.add( this, "click._submit keypress._submit", function( e ) {
+
+ // Node name check avoids a VML-related crash in IE (#9807)
+ var elem = e.target,
+ form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ?
+
+ // Support: IE <=8
+ // We use jQuery.prop instead of elem.form
+ // to allow fixing the IE8 delegated submit issue (gh-2332)
+ // by 3rd party polyfills/workarounds.
+ jQuery.prop( elem, "form" ) :
+ undefined;
+
+ if ( form && !jQuery._data( form, "submit" ) ) {
+ jQuery.event.add( form, "submit._submit", function( event ) {
+ event._submitBubble = true;
+ } );
+ jQuery._data( form, "submit", true );
+ }
+ } );
+
+ // return undefined since we don't need an event listener
+ },
+
+ postDispatch: function( event ) {
+
+ // If form was submitted by the user, bubble the event up the tree
+ if ( event._submitBubble ) {
+ delete event._submitBubble;
+ if ( this.parentNode && !event.isTrigger ) {
+ jQuery.event.simulate( "submit", this.parentNode, event );
+ }
+ }
+ },
+
+ teardown: function() {
+
+ // Only need this for delegated form submit events
+ if ( jQuery.nodeName( this, "form" ) ) {
+ return false;
+ }
+
+ // Remove delegated handlers; cleanData eventually reaps submit handlers attached above
+ jQuery.event.remove( this, "._submit" );
+ }
+ };
+}
+
+// IE change delegation and checkbox/radio fix
+if ( !support.change ) {
+
+ jQuery.event.special.change = {
+
+ setup: function() {
+
+ if ( rformElems.test( this.nodeName ) ) {
+
+ // IE doesn't fire change on a check/radio until blur; trigger it on click
+ // after a propertychange. Eat the blur-change in special.change.handle.
+ // This still fires onchange a second time for check/radio after blur.
+ if ( this.type === "checkbox" || this.type === "radio" ) {
+ jQuery.event.add( this, "propertychange._change", function( event ) {
+ if ( event.originalEvent.propertyName === "checked" ) {
+ this._justChanged = true;
+ }
+ } );
+ jQuery.event.add( this, "click._change", function( event ) {
+ if ( this._justChanged && !event.isTrigger ) {
+ this._justChanged = false;
+ }
+
+ // Allow triggered, simulated change events (#11500)
+ jQuery.event.simulate( "change", this, event );
+ } );
+ }
+ return false;
+ }
+
+ // Delegated event; lazy-add a change handler on descendant inputs
+ jQuery.event.add( this, "beforeactivate._change", function( e ) {
+ var elem = e.target;
+
+ if ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, "change" ) ) {
+ jQuery.event.add( elem, "change._change", function( event ) {
+ if ( this.parentNode && !event.isSimulated && !event.isTrigger ) {
+ jQuery.event.simulate( "change", this.parentNode, event );
+ }
+ } );
+ jQuery._data( elem, "change", true );
+ }
+ } );
+ },
+
+ handle: function( event ) {
+ var elem = event.target;
+
+ // Swallow native change events from checkbox/radio, we already triggered them above
+ if ( this !== elem || event.isSimulated || event.isTrigger ||
+ ( elem.type !== "radio" && elem.type !== "checkbox" ) ) {
+
+ return event.handleObj.handler.apply( this, arguments );
+ }
+ },
+
+ teardown: function() {
+ jQuery.event.remove( this, "._change" );
+
+ return !rformElems.test( this.nodeName );
+ }
+ };
+}
+
+// Support: Firefox
+// Firefox doesn't have focus(in | out) events
+// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
+//
+// Support: Chrome, Safari
+// focus(in | out) events fire after focus & blur events,
+// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order
+// Related ticket - https://code.google.com/p/chromium/issues/detail?id=449857
+if ( !support.focusin ) {
+ jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) {
+
+ // Attach a single capturing handler on the document while someone wants focusin/focusout
+ var handler = function( event ) {
+ jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );
+ };
+
+ jQuery.event.special[ fix ] = {
+ setup: function() {
+ var doc = this.ownerDocument || this,
+ attaches = jQuery._data( doc, fix );
+
+ if ( !attaches ) {
+ doc.addEventListener( orig, handler, true );
+ }
+ jQuery._data( doc, fix, ( attaches || 0 ) + 1 );
+ },
+ teardown: function() {
+ var doc = this.ownerDocument || this,
+ attaches = jQuery._data( doc, fix ) - 1;
+
+ if ( !attaches ) {
+ doc.removeEventListener( orig, handler, true );
+ jQuery._removeData( doc, fix );
+ } else {
+ jQuery._data( doc, fix, attaches );
+ }
+ }
+ };
+ } );
+}
+
+jQuery.fn.extend( {
+
+ on: function( types, selector, data, fn ) {
+ return on( this, types, selector, data, fn );
+ },
+ one: function( types, selector, data, fn ) {
+ return on( this, types, selector, data, fn, 1 );
+ },
+ off: function( types, selector, fn ) {
+ var handleObj, type;
+ if ( types && types.preventDefault && types.handleObj ) {
+
+ // ( event ) dispatched jQuery.Event
+ handleObj = types.handleObj;
+ jQuery( types.delegateTarget ).off(
+ handleObj.namespace ?
+ handleObj.origType + "." + handleObj.namespace :
+ handleObj.origType,
+ handleObj.selector,
+ handleObj.handler
+ );
+ return this;
+ }
+ if ( typeof types === "object" ) {
+
+ // ( types-object [, selector] )
+ for ( type in types ) {
+ this.off( type, selector, types[ type ] );
+ }
+ return this;
+ }
+ if ( selector === false || typeof selector === "function" ) {
+
+ // ( types [, fn] )
+ fn = selector;
+ selector = undefined;
+ }
+ if ( fn === false ) {
+ fn = returnFalse;
+ }
+ return this.each( function() {
+ jQuery.event.remove( this, types, fn, selector );
+ } );
+ },
+
+ trigger: function( type, data ) {
+ return this.each( function() {
+ jQuery.event.trigger( type, data, this );
+ } );
+ },
+ triggerHandler: function( type, data ) {
+ var elem = this[ 0 ];
+ if ( elem ) {
+ return jQuery.event.trigger( type, data, elem, true );
+ }
+ }
+} );
+
+
+var rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g,
+ rnoshimcache = new RegExp( "<(?:" + nodeNames + ")[\\s/>]", "i" ),
+ rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,
+
+ // Support: IE 10-11, Edge 10240+
+ // In IE/Edge using regex groups here causes severe slowdowns.
+ // See https://connect.microsoft.com/IE/feedback/details/1736512/
+ rnoInnerhtml = /<script|<style|<link/i,
+
+ // checked="checked" or checked
+ rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
+ rscriptTypeMasked = /^true\/(.*)/,
+ rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,
+ safeFragment = createSafeFragment( document ),
+ fragmentDiv = safeFragment.appendChild( document.createElement( "div" ) );
+
+// Support: IE<8
+// Manipulating tables requires a tbody
+function manipulationTarget( elem, content ) {
+ return jQuery.nodeName( elem, "table" ) &&
+ jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ?
+
+ elem.getElementsByTagName( "tbody" )[ 0 ] ||
+ elem.appendChild( elem.ownerDocument.createElement( "tbody" ) ) :
+ elem;
+}
+
+// Replace/restore the type attribute of script elements for safe DOM manipulation
+function disableScript( elem ) {
+ elem.type = ( jQuery.find.attr( elem, "type" ) !== null ) + "/" + elem.type;
+ return elem;
+}
+function restoreScript( elem ) {
+ var match = rscriptTypeMasked.exec( elem.type );
+ if ( match ) {
+ elem.type = match[ 1 ];
+ } else {
+ elem.removeAttribute( "type" );
+ }
+ return elem;
+}
+
+function cloneCopyEvent( src, dest ) {
+ if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) {
+ return;
+ }
+
+ var type, i, l,
+ oldData = jQuery._data( src ),
+ curData = jQuery._data( dest, oldData ),
+ events = oldData.events;
+
+ if ( events ) {
+ delete curData.handle;
+ curData.events = {};
+
+ for ( type in events ) {
+ for ( i = 0, l = events[ type ].length; i < l; i++ ) {
+ jQuery.event.add( dest, type, events[ type ][ i ] );
+ }
+ }
+ }
+
+ // make the cloned public data object a copy from the original
+ if ( curData.data ) {
+ curData.data = jQuery.extend( {}, curData.data );
+ }
+}
+
+function fixCloneNodeIssues( src, dest ) {
+ var nodeName, e, data;
+
+ // We do not need to do anything for non-Elements
+ if ( dest.nodeType !== 1 ) {
+ return;
+ }
+
+ nodeName = dest.nodeName.toLowerCase();
+
+ // IE6-8 copies events bound via attachEvent when using cloneNode.
+ if ( !support.noCloneEvent && dest[ jQuery.expando ] ) {
+ data = jQuery._data( dest );
+
+ for ( e in data.events ) {
+ jQuery.removeEvent( dest, e, data.handle );
+ }
+
+ // Event data gets referenced instead of copied if the expando gets copied too
+ dest.removeAttribute( jQuery.expando );
+ }
+
+ // IE blanks contents when cloning scripts, and tries to evaluate newly-set text
+ if ( nodeName === "script" && dest.text !== src.text ) {
+ disableScript( dest ).text = src.text;
+ restoreScript( dest );
+
+ // IE6-10 improperly clones children of object elements using classid.
+ // IE10 throws NoModificationAllowedError if parent is null, #12132.
+ } else if ( nodeName === "object" ) {
+ if ( dest.parentNode ) {
+ dest.outerHTML = src.outerHTML;
+ }
+
+ // This path appears unavoidable for IE9. When cloning an object
+ // element in IE9, the outerHTML strategy above is not sufficient.
+ // If the src has innerHTML and the destination does not,
+ // copy the src.innerHTML into the dest.innerHTML. #10324
+ if ( support.html5Clone && ( src.innerHTML && !jQuery.trim( dest.innerHTML ) ) ) {
+ dest.innerHTML = src.innerHTML;
+ }
+
+ } else if ( nodeName === "input" && rcheckableType.test( src.type ) ) {
+
+ // IE6-8 fails to persist the checked state of a cloned checkbox
+ // or radio button. Worse, IE6-7 fail to give the cloned element
+ // a checked appearance if the defaultChecked value isn't also set
+
+ dest.defaultChecked = dest.checked = src.checked;
+
+ // IE6-7 get confused and end up setting the value of a cloned
+ // checkbox/radio button to an empty string instead of "on"
+ if ( dest.value !== src.value ) {
+ dest.value = src.value;
+ }
+
+ // IE6-8 fails to return the selected option to the default selected
+ // state when cloning options
+ } else if ( nodeName === "option" ) {
+ dest.defaultSelected = dest.selected = src.defaultSelected;
+
+ // IE6-8 fails to set the defaultValue to the correct value when
+ // cloning other types of input fields
+ } else if ( nodeName === "input" || nodeName === "textarea" ) {
+ dest.defaultValue = src.defaultValue;
+ }
+}
+
+function domManip( collection, args, callback, ignored ) {
+
+ // Flatten any nested arrays
+ args = concat.apply( [], args );
+
+ var first, node, hasScripts,
+ scripts, doc, fragment,
+ i = 0,
+ l = collection.length,
+ iNoClone = l - 1,
+ value = args[ 0 ],
+ isFunction = jQuery.isFunction( value );
+
+ // We can't cloneNode fragments that contain checked, in WebKit
+ if ( isFunction ||
+ ( l > 1 && typeof value === "string" &&
+ !support.checkClone && rchecked.test( value ) ) ) {
+ return collection.each( function( index ) {
+ var self = collection.eq( index );
+ if ( isFunction ) {
+ args[ 0 ] = value.call( this, index, self.html() );
+ }
+ domManip( self, args, callback, ignored );
+ } );
+ }
+
+ if ( l ) {
+ fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );
+ first = fragment.firstChild;
+
+ if ( fragment.childNodes.length === 1 ) {
+ fragment = first;
+ }
+
+ // Require either new content or an interest in ignored elements to invoke the callback
+ if ( first || ignored ) {
+ scripts = jQuery.map( getAll( fragment, "script" ), disableScript );
+ hasScripts = scripts.length;
+
+ // Use the original fragment for the last item
+ // instead of the first because it can end up
+ // being emptied incorrectly in certain situations (#8070).
+ for ( ; i < l; i++ ) {
+ node = fragment;
+
+ if ( i !== iNoClone ) {
+ node = jQuery.clone( node, true, true );
+
+ // Keep references to cloned scripts for later restoration
+ if ( hasScripts ) {
+
+ // Support: Android<4.1, PhantomJS<2
+ // push.apply(_, arraylike) throws on ancient WebKit
+ jQuery.merge( scripts, getAll( node, "script" ) );
+ }
+ }
+
+ callback.call( collection[ i ], node, i );
+ }
+
+ if ( hasScripts ) {
+ doc = scripts[ scripts.length - 1 ].ownerDocument;
+
+ // Reenable scripts
+ jQuery.map( scripts, restoreScript );
+
+ // Evaluate executable scripts on first document insertion
+ for ( i = 0; i < hasScripts; i++ ) {
+ node = scripts[ i ];
+ if ( rscriptType.test( node.type || "" ) &&
+ !jQuery._data( node, "globalEval" ) &&
+ jQuery.contains( doc, node ) ) {
+
+ if ( node.src ) {
+
+ // Optional AJAX dependency, but won't run scripts if not present
+ if ( jQuery._evalUrl ) {
+ jQuery._evalUrl( node.src );
+ }
+ } else {
+ jQuery.globalEval(
+ ( node.text || node.textContent || node.innerHTML || "" )
+ .replace( rcleanScript, "" )
+ );
+ }
+ }
+ }
+ }
+
+ // Fix #11809: Avoid leaking memory
+ fragment = first = null;
+ }
+ }
+
+ return collection;
+}
+
+function remove( elem, selector, keepData ) {
+ var node,
+ elems = selector ? jQuery.filter( selector, elem ) : elem,
+ i = 0;
+
+ for ( ; ( node = elems[ i ] ) != null; i++ ) {
+
+ if ( !keepData && node.nodeType === 1 ) {
+ jQuery.cleanData( getAll( node ) );
+ }
+
+ if ( node.parentNode ) {
+ if ( keepData && jQuery.contains( node.ownerDocument, node ) ) {
+ setGlobalEval( getAll( node, "script" ) );
+ }
+ node.parentNode.removeChild( node );
+ }
+ }
+
+ return elem;
+}
+
+jQuery.extend( {
+ htmlPrefilter: function( html ) {
+ return html.replace( rxhtmlTag, "<$1></$2>" );
+ },
+
+ clone: function( elem, dataAndEvents, deepDataAndEvents ) {
+ var destElements, node, clone, i, srcElements,
+ inPage = jQuery.contains( elem.ownerDocument, elem );
+
+ if ( support.html5Clone || jQuery.isXMLDoc( elem ) ||
+ !rnoshimcache.test( "<" + elem.nodeName + ">" ) ) {
+
+ clone = elem.cloneNode( true );
+
+ // IE<=8 does not properly clone detached, unknown element nodes
+ } else {
+ fragmentDiv.innerHTML = elem.outerHTML;
+ fragmentDiv.removeChild( clone = fragmentDiv.firstChild );
+ }
+
+ if ( ( !support.noCloneEvent || !support.noCloneChecked ) &&
+ ( elem.nodeType === 1 || elem.nodeType === 11 ) && !jQuery.isXMLDoc( elem ) ) {
+
+ // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2
+ destElements = getAll( clone );
+ srcElements = getAll( elem );
+
+ // Fix all IE cloning issues
+ for ( i = 0; ( node = srcElements[ i ] ) != null; ++i ) {
+
+ // Ensure that the destination node is not null; Fixes #9587
+ if ( destElements[ i ] ) {
+ fixCloneNodeIssues( node, destElements[ i ] );
+ }
+ }
+ }
+
+ // Copy the events from the original to the clone
+ if ( dataAndEvents ) {
+ if ( deepDataAndEvents ) {
+ srcElements = srcElements || getAll( elem );
+ destElements = destElements || getAll( clone );
+
+ for ( i = 0; ( node = srcElements[ i ] ) != null; i++ ) {
+ cloneCopyEvent( node, destElements[ i ] );
+ }
+ } else {
+ cloneCopyEvent( elem, clone );
+ }
+ }
+
+ // Preserve script evaluation history
+ destElements = getAll( clone, "script" );
+ if ( destElements.length > 0 ) {
+ setGlobalEval( destElements, !inPage && getAll( elem, "script" ) );
+ }
+
+ destElements = srcElements = node = null;
+
+ // Return the cloned set
+ return clone;
+ },
+
+ cleanData: function( elems, /* internal */ forceAcceptData ) {
+ var elem, type, id, data,
+ i = 0,
+ internalKey = jQuery.expando,
+ cache = jQuery.cache,
+ attributes = support.attributes,
+ special = jQuery.event.special;
+
+ for ( ; ( elem = elems[ i ] ) != null; i++ ) {
+ if ( forceAcceptData || acceptData( elem ) ) {
+
+ id = elem[ internalKey ];
+ data = id && cache[ id ];
+
+ if ( data ) {
+ if ( data.events ) {
+ for ( type in data.events ) {
+ if ( special[ type ] ) {
+ jQuery.event.remove( elem, type );
+
+ // This is a shortcut to avoid jQuery.event.remove's overhead
+ } else {
+ jQuery.removeEvent( elem, type, data.handle );
+ }
+ }
+ }
+
+ // Remove cache only if it was not already removed by jQuery.event.remove
+ if ( cache[ id ] ) {
+
+ delete cache[ id ];
+
+ // Support: IE<9
+ // IE does not allow us to delete expando properties from nodes
+ // IE creates expando attributes along with the property
+ // IE does not have a removeAttribute function on Document nodes
+ if ( !attributes && typeof elem.removeAttribute !== "undefined" ) {
+ elem.removeAttribute( internalKey );
+
+ // Webkit & Blink performance suffers when deleting properties
+ // from DOM nodes, so set to undefined instead
+ // https://code.google.com/p/chromium/issues/detail?id=378607
+ } else {
+ elem[ internalKey ] = undefined;
+ }
+
+ deletedIds.push( id );
+ }
+ }
+ }
+ }
+ }
+} );
+
+jQuery.fn.extend( {
+
+ // Keep domManip exposed until 3.0 (gh-2225)
+ domManip: domManip,
+
+ detach: function( selector ) {
+ return remove( this, selector, true );
+ },
+
+ remove: function( selector ) {
+ return remove( this, selector );
+ },
+
+ text: function( value ) {
+ return access( this, function( value ) {
+ return value === undefined ?
+ jQuery.text( this ) :
+ this.empty().append(
+ ( this[ 0 ] && this[ 0 ].ownerDocument || document ).createTextNode( value )
+ );
+ }, null, value, arguments.length );
+ },
+
+ append: function() {
+ return domManip( this, arguments, function( elem ) {
+ if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+ var target = manipulationTarget( this, elem );
+ target.appendChild( elem );
+ }
+ } );
+ },
+
+ prepend: function() {
+ return domManip( this, arguments, function( elem ) {
+ if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+ var target = manipulationTarget( this, elem );
+ target.insertBefore( elem, target.firstChild );
+ }
+ } );
+ },
+
+ before: function() {
+ return domManip( this, arguments, function( elem ) {
+ if ( this.parentNode ) {
+ this.parentNode.insertBefore( elem, this );
+ }
+ } );
+ },
+
+ after: function() {
+ return domManip( this, arguments, function( elem ) {
+ if ( this.parentNode ) {
+ this.parentNode.insertBefore( elem, this.nextSibling );
+ }
+ } );
+ },
+
+ empty: function() {
+ var elem,
+ i = 0;
+
+ for ( ; ( elem = this[ i ] ) != null; i++ ) {
+
+ // Remove element nodes and prevent memory leaks
+ if ( elem.nodeType === 1 ) {
+ jQuery.cleanData( getAll( elem, false ) );
+ }
+
+ // Remove any remaining nodes
+ while ( elem.firstChild ) {
+ elem.removeChild( elem.firstChild );
+ }
+
+ // If this is a select, ensure that it displays empty (#12336)
+ // Support: IE<9
+ if ( elem.options && jQuery.nodeName( elem, "select" ) ) {
+ elem.options.length = 0;
+ }
+ }
+
+ return this;
+ },
+
+ clone: function( dataAndEvents, deepDataAndEvents ) {
+ dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
+ deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
+
+ return this.map( function() {
+ return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
+ } );
+ },
+
+ html: function( value ) {
+ return access( this, function( value ) {
+ var elem = this[ 0 ] || {},
+ i = 0,
+ l = this.length;
+
+ if ( value === undefined ) {
+ return elem.nodeType === 1 ?
+ elem.innerHTML.replace( rinlinejQuery, "" ) :
+ undefined;
+ }
+
+ // See if we can take a shortcut and just use innerHTML
+ if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
+ ( support.htmlSerialize || !rnoshimcache.test( value ) ) &&
+ ( support.leadingWhitespace || !rleadingWhitespace.test( value ) ) &&
+ !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) {
+
+ value = jQuery.htmlPrefilter( value );
+
+ try {
+ for ( ; i < l; i++ ) {
+
+ // Remove element nodes and prevent memory leaks
+ elem = this[ i ] || {};
+ if ( elem.nodeType === 1 ) {
+ jQuery.cleanData( getAll( elem, false ) );
+ elem.innerHTML = value;
+ }
+ }
+
+ elem = 0;
+
+ // If using innerHTML throws an exception, use the fallback method
+ } catch ( e ) {}
+ }
+
+ if ( elem ) {
+ this.empty().append( value );
+ }
+ }, null, value, arguments.length );
+ },
+
+ replaceWith: function() {
+ var ignored = [];
+
+ // Make the changes, replacing each non-ignored context element with the new content
+ return domManip( this, arguments, function( elem ) {
+ var parent = this.parentNode;
+
+ if ( jQuery.inArray( this, ignored ) < 0 ) {
+ jQuery.cleanData( getAll( this ) );
+ if ( parent ) {
+ parent.replaceChild( elem, this );
+ }
+ }
+
+ // Force callback invocation
+ }, ignored );
+ }
+} );
+
+jQuery.each( {
+ appendTo: "append",
+ prependTo: "prepend",
+ insertBefore: "before",
+ insertAfter: "after",
+ replaceAll: "replaceWith"
+}, function( name, original ) {
+ jQuery.fn[ name ] = function( selector ) {
+ var elems,
+ i = 0,
+ ret = [],
+ insert = jQuery( selector ),
+ last = insert.length - 1;
+
+ for ( ; i <= last; i++ ) {
+ elems = i === last ? this : this.clone( true );
+ jQuery( insert[ i ] )[ original ]( elems );
+
+ // Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get()
+ push.apply( ret, elems.get() );
+ }
+
+ return this.pushStack( ret );
+ };
+} );
+
+
+var iframe,
+ elemdisplay = {
+
+ // Support: Firefox
+ // We have to pre-define these values for FF (#10227)
+ HTML: "block",
+ BODY: "block"
+ };
+
+/**
+ * Retrieve the actual display of a element
+ * @param {String} name nodeName of the element
+ * @param {Object} doc Document object
+ */
+
+// Called only from within defaultDisplay
+function actualDisplay( name, doc ) {
+ var elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),
+
+ display = jQuery.css( elem[ 0 ], "display" );
+
+ // We don't have any data stored on the element,
+ // so use "detach" method as fast way to get rid of the element
+ elem.detach();
+
+ return display;
+}
+
+/**
+ * Try to determine the default display value of an element
+ * @param {String} nodeName
+ */
+function defaultDisplay( nodeName ) {
+ var doc = document,
+ display = elemdisplay[ nodeName ];
+
+ if ( !display ) {
+ display = actualDisplay( nodeName, doc );
+
+ // If the simple way fails, read from inside an iframe
+ if ( display === "none" || !display ) {
+
+ // Use the already-created iframe if possible
+ iframe = ( iframe || jQuery( "<iframe frameborder='0' width='0' height='0'/>" ) )
+ .appendTo( doc.documentElement );
+
+ // Always write a new HTML skeleton so Webkit and Firefox don't choke on reuse
+ doc = ( iframe[ 0 ].contentWindow || iframe[ 0 ].contentDocument ).document;
+
+ // Support: IE
+ doc.write();
+ doc.close();
+
+ display = actualDisplay( nodeName, doc );
+ iframe.detach();
+ }
+
+ // Store the correct default display
+ elemdisplay[ nodeName ] = display;
+ }
+
+ return display;
+}
+var rmargin = ( /^margin/ );
+
+var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
+
+var swap = function( elem, options, callback, args ) {
+ var ret, name,
+ old = {};
+
+ // Remember the old values, and insert the new ones
+ for ( name in options ) {
+ old[ name ] = elem.style[ name ];
+ elem.style[ name ] = options[ name ];
+ }
+
+ ret = callback.apply( elem, args || [] );
+
+ // Revert the old values
+ for ( name in options ) {
+ elem.style[ name ] = old[ name ];
+ }
+
+ return ret;
+};
+
+
+var documentElement = document.documentElement;
+
+
+
+( function() {
+ var pixelPositionVal, pixelMarginRightVal, boxSizingReliableVal,
+ reliableHiddenOffsetsVal, reliableMarginRightVal, reliableMarginLeftVal,
+ container = document.createElement( "div" ),
+ div = document.createElement( "div" );
+
+ // Finish early in limited (non-browser) environments
+ if ( !div.style ) {
+ return;
+ }
+
+ div.style.cssText = "float:left;opacity:.5";
+
+ // Support: IE<9
+ // Make sure that element opacity exists (as opposed to filter)
+ support.opacity = div.style.opacity === "0.5";
+
+ // Verify style float existence
+ // (IE uses styleFloat instead of cssFloat)
+ support.cssFloat = !!div.style.cssFloat;
+
+ div.style.backgroundClip = "content-box";
+ div.cloneNode( true ).style.backgroundClip = "";
+ support.clearCloneStyle = div.style.backgroundClip === "content-box";
+
+ container = document.createElement( "div" );
+ container.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;" +
+ "padding:0;margin-top:1px;position:absolute";
+ div.innerHTML = "";
+ container.appendChild( div );
+
+ // Support: Firefox<29, Android 2.3
+ // Vendor-prefix box-sizing
+ support.boxSizing = div.style.boxSizing === "" || div.style.MozBoxSizing === "" ||
+ div.style.WebkitBoxSizing === "";
+
+ jQuery.extend( support, {
+ reliableHiddenOffsets: function() {
+ if ( pixelPositionVal == null ) {
+ computeStyleTests();
+ }
+ return reliableHiddenOffsetsVal;
+ },
+
+ boxSizingReliable: function() {
+
+ // We're checking for pixelPositionVal here instead of boxSizingReliableVal
+ // since that compresses better and they're computed together anyway.
+ if ( pixelPositionVal == null ) {
+ computeStyleTests();
+ }
+ return boxSizingReliableVal;
+ },
+
+ pixelMarginRight: function() {
+
+ // Support: Android 4.0-4.3
+ if ( pixelPositionVal == null ) {
+ computeStyleTests();
+ }
+ return pixelMarginRightVal;
+ },
+
+ pixelPosition: function() {
+ if ( pixelPositionVal == null ) {
+ computeStyleTests();
+ }
+ return pixelPositionVal;
+ },
+
+ reliableMarginRight: function() {
+
+ // Support: Android 2.3
+ if ( pixelPositionVal == null ) {
+ computeStyleTests();
+ }
+ return reliableMarginRightVal;
+ },
+
+ reliableMarginLeft: function() {
+
+ // Support: IE <=8 only, Android 4.0 - 4.3 only, Firefox <=3 - 37
+ if ( pixelPositionVal == null ) {
+ computeStyleTests();
+ }
+ return reliableMarginLeftVal;
+ }
+ } );
+
+ function computeStyleTests() {
+ var contents, divStyle,
+ documentElement = document.documentElement;
+
+ // Setup
+ documentElement.appendChild( container );
+
+ div.style.cssText =
+
+ // Support: Android 2.3
+ // Vendor-prefix box-sizing
+ "-webkit-box-sizing:border-box;box-sizing:border-box;" +
+ "position:relative;display:block;" +
+ "margin:auto;border:1px;padding:1px;" +
+ "top:1%;width:50%";
+
+ // Support: IE<9
+ // Assume reasonable values in the absence of getComputedStyle
+ pixelPositionVal = boxSizingReliableVal = reliableMarginLeftVal = false;
+ pixelMarginRightVal = reliableMarginRightVal = true;
+
+ // Check for getComputedStyle so that this code is not run in IE<9.
+ if ( window.getComputedStyle ) {
+ divStyle = window.getComputedStyle( div );
+ pixelPositionVal = ( divStyle || {} ).top !== "1%";
+ reliableMarginLeftVal = ( divStyle || {} ).marginLeft === "2px";
+ boxSizingReliableVal = ( divStyle || { width: "4px" } ).width === "4px";
+
+ // Support: Android 4.0 - 4.3 only
+ // Some styles come back with percentage values, even though they shouldn't
+ div.style.marginRight = "50%";
+ pixelMarginRightVal = ( divStyle || { marginRight: "4px" } ).marginRight === "4px";
+
+ // Support: Android 2.3 only
+ // Div with explicit width and no margin-right incorrectly
+ // gets computed margin-right based on width of container (#3333)
+ // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
+ contents = div.appendChild( document.createElement( "div" ) );
+
+ // Reset CSS: box-sizing; display; margin; border; padding
+ contents.style.cssText = div.style.cssText =
+
+ // Support: Android 2.3
+ // Vendor-prefix box-sizing
+ "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;" +
+ "box-sizing:content-box;display:block;margin:0;border:0;padding:0";
+ contents.style.marginRight = contents.style.width = "0";
+ div.style.width = "1px";
+
+ reliableMarginRightVal =
+ !parseFloat( ( window.getComputedStyle( contents ) || {} ).marginRight );
+
+ div.removeChild( contents );
+ }
+
+ // Support: IE6-8
+ // First check that getClientRects works as expected
+ // Check if table cells still have offsetWidth/Height when they are set
+ // to display:none and there are still other visible table cells in a
+ // table row; if so, offsetWidth/Height are not reliable for use when
+ // determining if an element has been hidden directly using
+ // display:none (it is still safe to use offsets if a parent element is
+ // hidden; don safety goggles and see bug #4512 for more information).
+ div.style.display = "none";
+ reliableHiddenOffsetsVal = div.getClientRects().length === 0;
+ if ( reliableHiddenOffsetsVal ) {
+ div.style.display = "";
+ div.innerHTML = "<table><tr><td></td><td>t</td></tr></table>";
+ div.childNodes[ 0 ].style.borderCollapse = "separate";
+ contents = div.getElementsByTagName( "td" );
+ contents[ 0 ].style.cssText = "margin:0;border:0;padding:0;display:none";
+ reliableHiddenOffsetsVal = contents[ 0 ].offsetHeight === 0;
+ if ( reliableHiddenOffsetsVal ) {
+ contents[ 0 ].style.display = "";
+ contents[ 1 ].style.display = "none";
+ reliableHiddenOffsetsVal = contents[ 0 ].offsetHeight === 0;
+ }
+ }
+
+ // Teardown
+ documentElement.removeChild( container );
+ }
+
+} )();
+
+
+var getStyles, curCSS,
+ rposition = /^(top|right|bottom|left)$/;
+
+if ( window.getComputedStyle ) {
+ getStyles = function( elem ) {
+
+ // Support: IE<=11+, Firefox<=30+ (#15098, #14150)
+ // IE throws on elements created in popups
+ // FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
+ var view = elem.ownerDocument.defaultView;
+
+ if ( !view || !view.opener ) {
+ view = window;
+ }
+
+ return view.getComputedStyle( elem );
+ };
+
+ curCSS = function( elem, name, computed ) {
+ var width, minWidth, maxWidth, ret,
+ style = elem.style;
+
+ computed = computed || getStyles( elem );
+
+ // getPropertyValue is only needed for .css('filter') in IE9, see #12537
+ ret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined;
+
+ // Support: Opera 12.1x only
+ // Fall back to style even without computed
+ // computed is undefined for elems on document fragments
+ if ( ( ret === "" || ret === undefined ) && !jQuery.contains( elem.ownerDocument, elem ) ) {
+ ret = jQuery.style( elem, name );
+ }
+
+ if ( computed ) {
+
+ // A tribute to the "awesome hack by Dean Edwards"
+ // Chrome < 17 and Safari 5.0 uses "computed value"
+ // instead of "used value" for margin-right
+ // Safari 5.1.7 (at least) returns percentage for a larger set of values,
+ // but width seems to be reliably pixels
+ // this is against the CSSOM draft spec:
+ // http://dev.w3.org/csswg/cssom/#resolved-values
+ if ( !support.pixelMarginRight() && rnumnonpx.test( ret ) && rmargin.test( name ) ) {
+
+ // Remember the original values
+ width = style.width;
+ minWidth = style.minWidth;
+ maxWidth = style.maxWidth;
+
+ // Put in the new values to get a computed value out
+ style.minWidth = style.maxWidth = style.width = ret;
+ ret = computed.width;
+
+ // Revert the changed values
+ style.width = width;
+ style.minWidth = minWidth;
+ style.maxWidth = maxWidth;
+ }
+ }
+
+ // Support: IE
+ // IE returns zIndex value as an integer.
+ return ret === undefined ?
+ ret :
+ ret + "";
+ };
+} else if ( documentElement.currentStyle ) {
+ getStyles = function( elem ) {
+ return elem.currentStyle;
+ };
+
+ curCSS = function( elem, name, computed ) {
+ var left, rs, rsLeft, ret,
+ style = elem.style;
+
+ computed = computed || getStyles( elem );
+ ret = computed ? computed[ name ] : undefined;
+
+ // Avoid setting ret to empty string here
+ // so we don't default to auto
+ if ( ret == null && style && style[ name ] ) {
+ ret = style[ name ];
+ }
+
+ // From the awesome hack by Dean Edwards
+ // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
+
+ // If we're not dealing with a regular pixel number
+ // but a number that has a weird ending, we need to convert it to pixels
+ // but not position css attributes, as those are
+ // proportional to the parent element instead
+ // and we can't measure the parent instead because it
+ // might trigger a "stacking dolls" problem
+ if ( rnumnonpx.test( ret ) && !rposition.test( name ) ) {
+
+ // Remember the original values
+ left = style.left;
+ rs = elem.runtimeStyle;
+ rsLeft = rs && rs.left;
+
+ // Put in the new values to get a computed value out
+ if ( rsLeft ) {
+ rs.left = elem.currentStyle.left;
+ }
+ style.left = name === "fontSize" ? "1em" : ret;
+ ret = style.pixelLeft + "px";
+
+ // Revert the changed values
+ style.left = left;
+ if ( rsLeft ) {
+ rs.left = rsLeft;
+ }
+ }
+
+ // Support: IE
+ // IE returns zIndex value as an integer.
+ return ret === undefined ?
+ ret :
+ ret + "" || "auto";
+ };
+}
+
+
+
+
+function addGetHookIf( conditionFn, hookFn ) {
+
+ // Define the hook, we'll check on the first run if it's really needed.
+ return {
+ get: function() {
+ if ( conditionFn() ) {
+
+ // Hook not needed (or it's not possible to use it due
+ // to missing dependency), remove it.
+ delete this.get;
+ return;
+ }
+
+ // Hook needed; redefine it so that the support test is not executed again.
+ return ( this.get = hookFn ).apply( this, arguments );
+ }
+ };
+}
+
+
+var
+
+ ralpha = /alpha\([^)]*\)/i,
+ ropacity = /opacity\s*=\s*([^)]*)/i,
+
+ // swappable if display is none or starts with table except
+ // "table", "table-cell", or "table-caption"
+ // see here for display values:
+ // https://developer.mozilla.org/en-US/docs/CSS/display
+ rdisplayswap = /^(none|table(?!-c[ea]).+)/,
+ rnumsplit = new RegExp( "^(" + pnum + ")(.*)$", "i" ),
+
+ cssShow = { position: "absolute", visibility: "hidden", display: "block" },
+ cssNormalTransform = {
+ letterSpacing: "0",
+ fontWeight: "400"
+ },
+
+ cssPrefixes = [ "Webkit", "O", "Moz", "ms" ],
+ emptyStyle = document.createElement( "div" ).style;
+
+
+// return a css property mapped to a potentially vendor prefixed property
+function vendorPropName( name ) {
+
+ // shortcut for names that are not vendor prefixed
+ if ( name in emptyStyle ) {
+ return name;
+ }
+
+ // check for vendor prefixed names
+ var capName = name.charAt( 0 ).toUpperCase() + name.slice( 1 ),
+ i = cssPrefixes.length;
+
+ while ( i-- ) {
+ name = cssPrefixes[ i ] + capName;
+ if ( name in emptyStyle ) {
+ return name;
+ }
+ }
+}
+
+function showHide( elements, show ) {
+ var display, elem, hidden,
+ values = [],
+ index = 0,
+ length = elements.length;
+
+ for ( ; index < length; index++ ) {
+ elem = elements[ index ];
+ if ( !elem.style ) {
+ continue;
+ }
+
+ values[ index ] = jQuery._data( elem, "olddisplay" );
+ display = elem.style.display;
+ if ( show ) {
+
+ // Reset the inline display of this element to learn if it is
+ // being hidden by cascaded rules or not
+ if ( !values[ index ] && display === "none" ) {
+ elem.style.display = "";
+ }
+
+ // Set elements which have been overridden with display: none
+ // in a stylesheet to whatever the default browser style is
+ // for such an element
+ if ( elem.style.display === "" && isHidden( elem ) ) {
+ values[ index ] =
+ jQuery._data( elem, "olddisplay", defaultDisplay( elem.nodeName ) );
+ }
+ } else {
+ hidden = isHidden( elem );
+
+ if ( display && display !== "none" || !hidden ) {
+ jQuery._data(
+ elem,
+ "olddisplay",
+ hidden ? display : jQuery.css( elem, "display" )
+ );
+ }
+ }
+ }
+
+ // Set the display of most of the elements in a second loop
+ // to avoid the constant reflow
+ for ( index = 0; index < length; index++ ) {
+ elem = elements[ index ];
+ if ( !elem.style ) {
+ continue;
+ }
+ if ( !show || elem.style.display === "none" || elem.style.display === "" ) {
+ elem.style.display = show ? values[ index ] || "" : "none";
+ }
+ }
+
+ return elements;
+}
+
+function setPositiveNumber( elem, value, subtract ) {
+ var matches = rnumsplit.exec( value );
+ return matches ?
+
+ // Guard against undefined "subtract", e.g., when used as in cssHooks
+ Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) :
+ value;
+}
+
+function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
+ var i = extra === ( isBorderBox ? "border" : "content" ) ?
+
+ // If we already have the right measurement, avoid augmentation
+ 4 :
+
+ // Otherwise initialize for horizontal or vertical properties
+ name === "width" ? 1 : 0,
+
+ val = 0;
+
+ for ( ; i < 4; i += 2 ) {
+
+ // both box models exclude margin, so add it if we want it
+ if ( extra === "margin" ) {
+ val += jQuery.css( elem, extra + cssExpand[ i ], true, styles );
+ }
+
+ if ( isBorderBox ) {
+
+ // border-box includes padding, so remove it if we want content
+ if ( extra === "content" ) {
+ val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+ }
+
+ // at this point, extra isn't border nor margin, so remove border
+ if ( extra !== "margin" ) {
+ val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+ }
+ } else {
+
+ // at this point, extra isn't content, so add padding
+ val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+
+ // at this point, extra isn't content nor padding, so add border
+ if ( extra !== "padding" ) {
+ val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+ }
+ }
+ }
+
+ return val;
+}
+
+function getWidthOrHeight( elem, name, extra ) {
+
+ // Start with offset property, which is equivalent to the border-box value
+ var valueIsBorderBox = true,
+ val = name === "width" ? elem.offsetWidth : elem.offsetHeight,
+ styles = getStyles( elem ),
+ isBorderBox = support.boxSizing &&
+ jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
+
+ // some non-html elements return undefined for offsetWidth, so check for null/undefined
+ // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285
+ // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668
+ if ( val <= 0 || val == null ) {
+
+ // Fall back to computed then uncomputed css if necessary
+ val = curCSS( elem, name, styles );
+ if ( val < 0 || val == null ) {
+ val = elem.style[ name ];
+ }
+
+ // Computed unit is not pixels. Stop here and return.
+ if ( rnumnonpx.test( val ) ) {
+ return val;
+ }
+
+ // we need the check for style in case a browser which returns unreliable values
+ // for getComputedStyle silently falls back to the reliable elem.style
+ valueIsBorderBox = isBorderBox &&
+ ( support.boxSizingReliable() || val === elem.style[ name ] );
+
+ // Normalize "", auto, and prepare for extra
+ val = parseFloat( val ) || 0;
+ }
+
+ // use the active box-sizing model to add/subtract irrelevant styles
+ return ( val +
+ augmentWidthOrHeight(
+ elem,
+ name,
+ extra || ( isBorderBox ? "border" : "content" ),
+ valueIsBorderBox,
+ styles
+ )
+ ) + "px";
+}
+
+jQuery.extend( {
+
+ // Add in style property hooks for overriding the default
+ // behavior of getting and setting a style property
+ cssHooks: {
+ opacity: {
+ get: function( elem, computed ) {
+ if ( computed ) {
+
+ // We should always get a number back from opacity
+ var ret = curCSS( elem, "opacity" );
+ return ret === "" ? "1" : ret;
+ }
+ }
+ }
+ },
+
+ // Don't automatically add "px" to these possibly-unitless properties
+ cssNumber: {
+ "animationIterationCount": true,
+ "columnCount": true,
+ "fillOpacity": true,
+ "flexGrow": true,
+ "flexShrink": true,
+ "fontWeight": true,
+ "lineHeight": true,
+ "opacity": true,
+ "order": true,
+ "orphans": true,
+ "widows": true,
+ "zIndex": true,
+ "zoom": true
+ },
+
+ // Add in properties whose names you wish to fix before
+ // setting or getting the value
+ cssProps: {
+
+ // normalize float css property
+ "float": support.cssFloat ? "cssFloat" : "styleFloat"
+ },
+
+ // Get and set the style property on a DOM Node
+ style: function( elem, name, value, extra ) {
+
+ // Don't set styles on text and comment nodes
+ if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
+ return;
+ }
+
+ // Make sure that we're working with the right name
+ var ret, type, hooks,
+ origName = jQuery.camelCase( name ),
+ style = elem.style;
+
+ name = jQuery.cssProps[ origName ] ||
+ ( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName );
+
+ // gets hook for the prefixed version
+ // followed by the unprefixed version
+ hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+
+ // Check if we're setting a value
+ if ( value !== undefined ) {
+ type = typeof value;
+
+ // Convert "+=" or "-=" to relative numbers (#7345)
+ if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {
+ value = adjustCSS( elem, name, ret );
+
+ // Fixes bug #9237
+ type = "number";
+ }
+
+ // Make sure that null and NaN values aren't set. See: #7116
+ if ( value == null || value !== value ) {
+ return;
+ }
+
+ // If a number was passed in, add the unit (except for certain CSS properties)
+ if ( type === "number" ) {
+ value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
+ }
+
+ // Fixes #8908, it can be done more correctly by specifing setters in cssHooks,
+ // but it would mean to define eight
+ // (for every problematic property) identical functions
+ if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) {
+ style[ name ] = "inherit";
+ }
+
+ // If a hook was provided, use that value, otherwise just set the specified value
+ if ( !hooks || !( "set" in hooks ) ||
+ ( value = hooks.set( elem, value, extra ) ) !== undefined ) {
+
+ // Support: IE
+ // Swallow errors from 'invalid' CSS values (#5509)
+ try {
+ style[ name ] = value;
+ } catch ( e ) {}
+ }
+
+ } else {
+
+ // If a hook was provided get the non-computed value from there
+ if ( hooks && "get" in hooks &&
+ ( ret = hooks.get( elem, false, extra ) ) !== undefined ) {
+
+ return ret;
+ }
+
+ // Otherwise just get the value from the style object
+ return style[ name ];
+ }
+ },
+
+ css: function( elem, name, extra, styles ) {
+ var num, val, hooks,
+ origName = jQuery.camelCase( name );
+
+ // Make sure that we're working with the right name
+ name = jQuery.cssProps[ origName ] ||
+ ( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName );
+
+ // gets hook for the prefixed version
+ // followed by the unprefixed version
+ hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+
+ // If a hook was provided get the computed value from there
+ if ( hooks && "get" in hooks ) {
+ val = hooks.get( elem, true, extra );
+ }
+
+ // Otherwise, if a way to get the computed value exists, use that
+ if ( val === undefined ) {
+ val = curCSS( elem, name, styles );
+ }
+
+ //convert "normal" to computed value
+ if ( val === "normal" && name in cssNormalTransform ) {
+ val = cssNormalTransform[ name ];
+ }
+
+ // Return, converting to number if forced or a qualifier was provided and val looks numeric
+ if ( extra === "" || extra ) {
+ num = parseFloat( val );
+ return extra === true || isFinite( num ) ? num || 0 : val;
+ }
+ return val;
+ }
+} );
+
+jQuery.each( [ "height", "width" ], function( i, name ) {
+ jQuery.cssHooks[ name ] = {
+ get: function( elem, computed, extra ) {
+ if ( computed ) {
+
+ // certain elements can have dimension info if we invisibly show them
+ // however, it must have a current display style that would benefit from this
+ return rdisplayswap.test( jQuery.css( elem, "display" ) ) &&
+ elem.offsetWidth === 0 ?
+ swap( elem, cssShow, function() {
+ return getWidthOrHeight( elem, name, extra );
+ } ) :
+ getWidthOrHeight( elem, name, extra );
+ }
+ },
+
+ set: function( elem, value, extra ) {
+ var styles = extra && getStyles( elem );
+ return setPositiveNumber( elem, value, extra ?
+ augmentWidthOrHeight(
+ elem,
+ name,
+ extra,
+ support.boxSizing &&
+ jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
+ styles
+ ) : 0
+ );
+ }
+ };
+} );
+
+if ( !support.opacity ) {
+ jQuery.cssHooks.opacity = {
+ get: function( elem, computed ) {
+
+ // IE uses filters for opacity
+ return ropacity.test( ( computed && elem.currentStyle ?
+ elem.currentStyle.filter :
+ elem.style.filter ) || "" ) ?
+ ( 0.01 * parseFloat( RegExp.$1 ) ) + "" :
+ computed ? "1" : "";
+ },
+
+ set: function( elem, value ) {
+ var style = elem.style,
+ currentStyle = elem.currentStyle,
+ opacity = jQuery.isNumeric( value ) ? "alpha(opacity=" + value * 100 + ")" : "",
+ filter = currentStyle && currentStyle.filter || style.filter || "";
+
+ // IE has trouble with opacity if it does not have layout
+ // Force it by setting the zoom level
+ style.zoom = 1;
+
+ // if setting opacity to 1, and no other filters exist -
+ // attempt to remove filter attribute #6652
+ // if value === "", then remove inline opacity #12685
+ if ( ( value >= 1 || value === "" ) &&
+ jQuery.trim( filter.replace( ralpha, "" ) ) === "" &&
+ style.removeAttribute ) {
+
+ // Setting style.filter to null, "" & " " still leave "filter:" in the cssText
+ // if "filter:" is present at all, clearType is disabled, we want to avoid this
+ // style.removeAttribute is IE Only, but so apparently is this code path...
+ style.removeAttribute( "filter" );
+
+ // if there is no filter style applied in a css rule
+ // or unset inline opacity, we are done
+ if ( value === "" || currentStyle && !currentStyle.filter ) {
+ return;
+ }
+ }
+
+ // otherwise, set new filter values
+ style.filter = ralpha.test( filter ) ?
+ filter.replace( ralpha, opacity ) :
+ filter + " " + opacity;
+ }
+ };
+}
+
+jQuery.cssHooks.marginRight = addGetHookIf( support.reliableMarginRight,
+ function( elem, computed ) {
+ if ( computed ) {
+ return swap( elem, { "display": "inline-block" },
+ curCSS, [ elem, "marginRight" ] );
+ }
+ }
+);
+
+jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,
+ function( elem, computed ) {
+ if ( computed ) {
+ return (
+ parseFloat( curCSS( elem, "marginLeft" ) ) ||
+
+ // Support: IE<=11+
+ // Running getBoundingClientRect on a disconnected node in IE throws an error
+ // Support: IE8 only
+ // getClientRects() errors on disconnected elems
+ ( jQuery.contains( elem.ownerDocument, elem ) ?
+ elem.getBoundingClientRect().left -
+ swap( elem, { marginLeft: 0 }, function() {
+ return elem.getBoundingClientRect().left;
+ } ) :
+ 0
+ )
+ ) + "px";
+ }
+ }
+);
+
+// These hooks are used by animate to expand properties
+jQuery.each( {
+ margin: "",
+ padding: "",
+ border: "Width"
+}, function( prefix, suffix ) {
+ jQuery.cssHooks[ prefix + suffix ] = {
+ expand: function( value ) {
+ var i = 0,
+ expanded = {},
+
+ // assumes a single number if not a string
+ parts = typeof value === "string" ? value.split( " " ) : [ value ];
+
+ for ( ; i < 4; i++ ) {
+ expanded[ prefix + cssExpand[ i ] + suffix ] =
+ parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
+ }
+
+ return expanded;
+ }
+ };
+
+ if ( !rmargin.test( prefix ) ) {
+ jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
+ }
+} );
+
+jQuery.fn.extend( {
+ css: function( name, value ) {
+ return access( this, function( elem, name, value ) {
+ var styles, len,
+ map = {},
+ i = 0;
+
+ if ( jQuery.isArray( name ) ) {
+ styles = getStyles( elem );
+ len = name.length;
+
+ for ( ; i < len; i++ ) {
+ map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );
+ }
+
+ return map;
+ }
+
+ return value !== undefined ?
+ jQuery.style( elem, name, value ) :
+ jQuery.css( elem, name );
+ }, name, value, arguments.length > 1 );
+ },
+ show: function() {
+ return showHide( this, true );
+ },
+ hide: function() {
+ return showHide( this );
+ },
+ toggle: function( state ) {
+ if ( typeof state === "boolean" ) {
+ return state ? this.show() : this.hide();
+ }
+
+ return this.each( function() {
+ if ( isHidden( this ) ) {
+ jQuery( this ).show();
+ } else {
+ jQuery( this ).hide();
+ }
+ } );
+ }
+} );
+
+
+function Tween( elem, options, prop, end, easing ) {
+ return new Tween.prototype.init( elem, options, prop, end, easing );
+}
+jQuery.Tween = Tween;
+
+Tween.prototype = {
+ constructor: Tween,
+ init: function( elem, options, prop, end, easing, unit ) {
+ this.elem = elem;
+ this.prop = prop;
+ this.easing = easing || jQuery.easing._default;
+ this.options = options;
+ this.start = this.now = this.cur();
+ this.end = end;
+ this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" );
+ },
+ cur: function() {
+ var hooks = Tween.propHooks[ this.prop ];
+
+ return hooks && hooks.get ?
+ hooks.get( this ) :
+ Tween.propHooks._default.get( this );
+ },
+ run: function( percent ) {
+ var eased,
+ hooks = Tween.propHooks[ this.prop ];
+
+ if ( this.options.duration ) {
+ this.pos = eased = jQuery.easing[ this.easing ](
+ percent, this.options.duration * percent, 0, 1, this.options.duration
+ );
+ } else {
+ this.pos = eased = percent;
+ }
+ this.now = ( this.end - this.start ) * eased + this.start;
+
+ if ( this.options.step ) {
+ this.options.step.call( this.elem, this.now, this );
+ }
+
+ if ( hooks && hooks.set ) {
+ hooks.set( this );
+ } else {
+ Tween.propHooks._default.set( this );
+ }
+ return this;
+ }
+};
+
+Tween.prototype.init.prototype = Tween.prototype;
+
+Tween.propHooks = {
+ _default: {
+ get: function( tween ) {
+ var result;
+
+ // Use a property on the element directly when it is not a DOM element,
+ // or when there is no matching style property that exists.
+ if ( tween.elem.nodeType !== 1 ||
+ tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {
+ return tween.elem[ tween.prop ];
+ }
+
+ // passing an empty string as a 3rd parameter to .css will automatically
+ // attempt a parseFloat and fallback to a string if the parse fails
+ // so, simple values such as "10px" are parsed to Float.
+ // complex values such as "rotate(1rad)" are returned as is.
+ result = jQuery.css( tween.elem, tween.prop, "" );
+
+ // Empty strings, null, undefined and "auto" are converted to 0.
+ return !result || result === "auto" ? 0 : result;
+ },
+ set: function( tween ) {
+
+ // use step hook for back compat - use cssHook if its there - use .style if its
+ // available and use plain properties where available
+ if ( jQuery.fx.step[ tween.prop ] ) {
+ jQuery.fx.step[ tween.prop ]( tween );
+ } else if ( tween.elem.nodeType === 1 &&
+ ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null ||
+ jQuery.cssHooks[ tween.prop ] ) ) {
+ jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
+ } else {
+ tween.elem[ tween.prop ] = tween.now;
+ }
+ }
+ }
+};
+
+// Support: IE <=9
+// Panic based approach to setting things on disconnected nodes
+
+Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {
+ set: function( tween ) {
+ if ( tween.elem.nodeType && tween.elem.parentNode ) {
+ tween.elem[ tween.prop ] = tween.now;
+ }
+ }
+};
+
+jQuery.easing = {
+ linear: function( p ) {
+ return p;
+ },
+ swing: function( p ) {
+ return 0.5 - Math.cos( p * Math.PI ) / 2;
+ },
+ _default: "swing"
+};
+
+jQuery.fx = Tween.prototype.init;
+
+// Back Compat <1.8 extension point
+jQuery.fx.step = {};
+
+
+
+
+var
+ fxNow, timerId,
+ rfxtypes = /^(?:toggle|show|hide)$/,
+ rrun = /queueHooks$/;
+
+// Animations created synchronously will run synchronously
+function createFxNow() {
+ window.setTimeout( function() {
+ fxNow = undefined;
+ } );
+ return ( fxNow = jQuery.now() );
+}
+
+// Generate parameters to create a standard animation
+function genFx( type, includeWidth ) {
+ var which,
+ attrs = { height: type },
+ i = 0;
+
+ // if we include width, step value is 1 to do all cssExpand values,
+ // if we don't include width, step value is 2 to skip over Left and Right
+ includeWidth = includeWidth ? 1 : 0;
+ for ( ; i < 4 ; i += 2 - includeWidth ) {
+ which = cssExpand[ i ];
+ attrs[ "margin" + which ] = attrs[ "padding" + which ] = type;
+ }
+
+ if ( includeWidth ) {
+ attrs.opacity = attrs.width = type;
+ }
+
+ return attrs;
+}
+
+function createTween( value, prop, animation ) {
+ var tween,
+ collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ),
+ index = 0,
+ length = collection.length;
+ for ( ; index < length; index++ ) {
+ if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {
+
+ // we're done with this property
+ return tween;
+ }
+ }
+}
+
+function defaultPrefilter( elem, props, opts ) {
+ /* jshint validthis: true */
+ var prop, value, toggle, tween, hooks, oldfire, display, checkDisplay,
+ anim = this,
+ orig = {},
+ style = elem.style,
+ hidden = elem.nodeType && isHidden( elem ),
+ dataShow = jQuery._data( elem, "fxshow" );
+
+ // handle queue: false promises
+ if ( !opts.queue ) {
+ hooks = jQuery._queueHooks( elem, "fx" );
+ if ( hooks.unqueued == null ) {
+ hooks.unqueued = 0;
+ oldfire = hooks.empty.fire;
+ hooks.empty.fire = function() {
+ if ( !hooks.unqueued ) {
+ oldfire();
+ }
+ };
+ }
+ hooks.unqueued++;
+
+ anim.always( function() {
+
+ // doing this makes sure that the complete handler will be called
+ // before this completes
+ anim.always( function() {
+ hooks.unqueued--;
+ if ( !jQuery.queue( elem, "fx" ).length ) {
+ hooks.empty.fire();
+ }
+ } );
+ } );
+ }
+
+ // height/width overflow pass
+ if ( elem.nodeType === 1 && ( "height" in props || "width" in props ) ) {
+
+ // Make sure that nothing sneaks out
+ // Record all 3 overflow attributes because IE does not
+ // change the overflow attribute when overflowX and
+ // overflowY are set to the same value
+ opts.overflow = [ style.overflow, style.overflowX, style.overflowY ];
+
+ // Set display property to inline-block for height/width
+ // animations on inline elements that are having width/height animated
+ display = jQuery.css( elem, "display" );
+
+ // Test default display if display is currently "none"
+ checkDisplay = display === "none" ?
+ jQuery._data( elem, "olddisplay" ) || defaultDisplay( elem.nodeName ) : display;
+
+ if ( checkDisplay === "inline" && jQuery.css( elem, "float" ) === "none" ) {
+
+ // inline-level elements accept inline-block;
+ // block-level elements need to be inline with layout
+ if ( !support.inlineBlockNeedsLayout || defaultDisplay( elem.nodeName ) === "inline" ) {
+ style.display = "inline-block";
+ } else {
+ style.zoom = 1;
+ }
+ }
+ }
+
+ if ( opts.overflow ) {
+ style.overflow = "hidden";
+ if ( !support.shrinkWrapBlocks() ) {
+ anim.always( function() {
+ style.overflow = opts.overflow[ 0 ];
+ style.overflowX = opts.overflow[ 1 ];
+ style.overflowY = opts.overflow[ 2 ];
+ } );
+ }
+ }
+
+ // show/hide pass
+ for ( prop in props ) {
+ value = props[ prop ];
+ if ( rfxtypes.exec( value ) ) {
+ delete props[ prop ];
+ toggle = toggle || value === "toggle";
+ if ( value === ( hidden ? "hide" : "show" ) ) {
+
+ // If there is dataShow left over from a stopped hide or show
+ // and we are going to proceed with show, we should pretend to be hidden
+ if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) {
+ hidden = true;
+ } else {
+ continue;
+ }
+ }
+ orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );
+
+ // Any non-fx value stops us from restoring the original display value
+ } else {
+ display = undefined;
+ }
+ }
+
+ if ( !jQuery.isEmptyObject( orig ) ) {
+ if ( dataShow ) {
+ if ( "hidden" in dataShow ) {
+ hidden = dataShow.hidden;
+ }
+ } else {
+ dataShow = jQuery._data( elem, "fxshow", {} );
+ }
+
+ // store state if its toggle - enables .stop().toggle() to "reverse"
+ if ( toggle ) {
+ dataShow.hidden = !hidden;
+ }
+ if ( hidden ) {
+ jQuery( elem ).show();
+ } else {
+ anim.done( function() {
+ jQuery( elem ).hide();
+ } );
+ }
+ anim.done( function() {
+ var prop;
+ jQuery._removeData( elem, "fxshow" );
+ for ( prop in orig ) {
+ jQuery.style( elem, prop, orig[ prop ] );
+ }
+ } );
+ for ( prop in orig ) {
+ tween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );
+
+ if ( !( prop in dataShow ) ) {
+ dataShow[ prop ] = tween.start;
+ if ( hidden ) {
+ tween.end = tween.start;
+ tween.start = prop === "width" || prop === "height" ? 1 : 0;
+ }
+ }
+ }
+
+ // If this is a noop like .hide().hide(), restore an overwritten display value
+ } else if ( ( display === "none" ? defaultDisplay( elem.nodeName ) : display ) === "inline" ) {
+ style.display = display;
+ }
+}
+
+function propFilter( props, specialEasing ) {
+ var index, name, easing, value, hooks;
+
+ // camelCase, specialEasing and expand cssHook pass
+ for ( index in props ) {
+ name = jQuery.camelCase( index );
+ easing = specialEasing[ name ];
+ value = props[ index ];
+ if ( jQuery.isArray( value ) ) {
+ easing = value[ 1 ];
+ value = props[ index ] = value[ 0 ];
+ }
+
+ if ( index !== name ) {
+ props[ name ] = value;
+ delete props[ index ];
+ }
+
+ hooks = jQuery.cssHooks[ name ];
+ if ( hooks && "expand" in hooks ) {
+ value = hooks.expand( value );
+ delete props[ name ];
+
+ // not quite $.extend, this wont overwrite keys already present.
+ // also - reusing 'index' from above because we have the correct "name"
+ for ( index in value ) {
+ if ( !( index in props ) ) {
+ props[ index ] = value[ index ];
+ specialEasing[ index ] = easing;
+ }
+ }
+ } else {
+ specialEasing[ name ] = easing;
+ }
+ }
+}
+
+function Animation( elem, properties, options ) {
+ var result,
+ stopped,
+ index = 0,
+ length = Animation.prefilters.length,
+ deferred = jQuery.Deferred().always( function() {
+
+ // don't match elem in the :animated selector
+ delete tick.elem;
+ } ),
+ tick = function() {
+ if ( stopped ) {
+ return false;
+ }
+ var currentTime = fxNow || createFxNow(),
+ remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),
+
+ // Support: Android 2.3
+ // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)
+ temp = remaining / animation.duration || 0,
+ percent = 1 - temp,
+ index = 0,
+ length = animation.tweens.length;
+
+ for ( ; index < length ; index++ ) {
+ animation.tweens[ index ].run( percent );
+ }
+
+ deferred.notifyWith( elem, [ animation, percent, remaining ] );
+
+ if ( percent < 1 && length ) {
+ return remaining;
+ } else {
+ deferred.resolveWith( elem, [ animation ] );
+ return false;
+ }
+ },
+ animation = deferred.promise( {
+ elem: elem,
+ props: jQuery.extend( {}, properties ),
+ opts: jQuery.extend( true, {
+ specialEasing: {},
+ easing: jQuery.easing._default
+ }, options ),
+ originalProperties: properties,
+ originalOptions: options,
+ startTime: fxNow || createFxNow(),
+ duration: options.duration,
+ tweens: [],
+ createTween: function( prop, end ) {
+ var tween = jQuery.Tween( elem, animation.opts, prop, end,
+ animation.opts.specialEasing[ prop ] || animation.opts.easing );
+ animation.tweens.push( tween );
+ return tween;
+ },
+ stop: function( gotoEnd ) {
+ var index = 0,
+
+ // if we are going to the end, we want to run all the tweens
+ // otherwise we skip this part
+ length = gotoEnd ? animation.tweens.length : 0;
+ if ( stopped ) {
+ return this;
+ }
+ stopped = true;
+ for ( ; index < length ; index++ ) {
+ animation.tweens[ index ].run( 1 );
+ }
+
+ // resolve when we played the last frame
+ // otherwise, reject
+ if ( gotoEnd ) {
+ deferred.notifyWith( elem, [ animation, 1, 0 ] );
+ deferred.resolveWith( elem, [ animation, gotoEnd ] );
+ } else {
+ deferred.rejectWith( elem, [ animation, gotoEnd ] );
+ }
+ return this;
+ }
+ } ),
+ props = animation.props;
+
+ propFilter( props, animation.opts.specialEasing );
+
+ for ( ; index < length ; index++ ) {
+ result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );
+ if ( result ) {
+ if ( jQuery.isFunction( result.stop ) ) {
+ jQuery._queueHooks( animation.elem, animation.opts.queue ).stop =
+ jQuery.proxy( result.stop, result );
+ }
+ return result;
+ }
+ }
+
+ jQuery.map( props, createTween, animation );
+
+ if ( jQuery.isFunction( animation.opts.start ) ) {
+ animation.opts.start.call( elem, animation );
+ }
+
+ jQuery.fx.timer(
+ jQuery.extend( tick, {
+ elem: elem,
+ anim: animation,
+ queue: animation.opts.queue
+ } )
+ );
+
+ // attach callbacks from options
+ return animation.progress( animation.opts.progress )
+ .done( animation.opts.done, animation.opts.complete )
+ .fail( animation.opts.fail )
+ .always( animation.opts.always );
+}
+
+jQuery.Animation = jQuery.extend( Animation, {
+
+ tweeners: {
+ "*": [ function( prop, value ) {
+ var tween = this.createTween( prop, value );
+ adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );
+ return tween;
+ } ]
+ },
+
+ tweener: function( props, callback ) {
+ if ( jQuery.isFunction( props ) ) {
+ callback = props;
+ props = [ "*" ];
+ } else {
+ props = props.match( rnotwhite );
+ }
+
+ var prop,
+ index = 0,
+ length = props.length;
+
+ for ( ; index < length ; index++ ) {
+ prop = props[ index ];
+ Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];
+ Animation.tweeners[ prop ].unshift( callback );
+ }
+ },
+
+ prefilters: [ defaultPrefilter ],
+
+ prefilter: function( callback, prepend ) {
+ if ( prepend ) {
+ Animation.prefilters.unshift( callback );
+ } else {
+ Animation.prefilters.push( callback );
+ }
+ }
+} );
+
+jQuery.speed = function( speed, easing, fn ) {
+ var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
+ complete: fn || !fn && easing ||
+ jQuery.isFunction( speed ) && speed,
+ duration: speed,
+ easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing
+ };
+
+ opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration :
+ opt.duration in jQuery.fx.speeds ?
+ jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default;
+
+ // normalize opt.queue - true/undefined/null -> "fx"
+ if ( opt.queue == null || opt.queue === true ) {
+ opt.queue = "fx";
+ }
+
+ // Queueing
+ opt.old = opt.complete;
+
+ opt.complete = function() {
+ if ( jQuery.isFunction( opt.old ) ) {
+ opt.old.call( this );
+ }
+
+ if ( opt.queue ) {
+ jQuery.dequeue( this, opt.queue );
+ }
+ };
+
+ return opt;
+};
+
+jQuery.fn.extend( {
+ fadeTo: function( speed, to, easing, callback ) {
+
+ // show any hidden elements after setting opacity to 0
+ return this.filter( isHidden ).css( "opacity", 0 ).show()
+
+ // animate to the value specified
+ .end().animate( { opacity: to }, speed, easing, callback );
+ },
+ animate: function( prop, speed, easing, callback ) {
+ var empty = jQuery.isEmptyObject( prop ),
+ optall = jQuery.speed( speed, easing, callback ),
+ doAnimation = function() {
+
+ // Operate on a copy of prop so per-property easing won't be lost
+ var anim = Animation( this, jQuery.extend( {}, prop ), optall );
+
+ // Empty animations, or finishing resolves immediately
+ if ( empty || jQuery._data( this, "finish" ) ) {
+ anim.stop( true );
+ }
+ };
+ doAnimation.finish = doAnimation;
+
+ return empty || optall.queue === false ?
+ this.each( doAnimation ) :
+ this.queue( optall.queue, doAnimation );
+ },
+ stop: function( type, clearQueue, gotoEnd ) {
+ var stopQueue = function( hooks ) {
+ var stop = hooks.stop;
+ delete hooks.stop;
+ stop( gotoEnd );
+ };
+
+ if ( typeof type !== "string" ) {
+ gotoEnd = clearQueue;
+ clearQueue = type;
+ type = undefined;
+ }
+ if ( clearQueue && type !== false ) {
+ this.queue( type || "fx", [] );
+ }
+
+ return this.each( function() {
+ var dequeue = true,
+ index = type != null && type + "queueHooks",
+ timers = jQuery.timers,
+ data = jQuery._data( this );
+
+ if ( index ) {
+ if ( data[ index ] && data[ index ].stop ) {
+ stopQueue( data[ index ] );
+ }
+ } else {
+ for ( index in data ) {
+ if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {
+ stopQueue( data[ index ] );
+ }
+ }
+ }
+
+ for ( index = timers.length; index--; ) {
+ if ( timers[ index ].elem === this &&
+ ( type == null || timers[ index ].queue === type ) ) {
+
+ timers[ index ].anim.stop( gotoEnd );
+ dequeue = false;
+ timers.splice( index, 1 );
+ }
+ }
+
+ // start the next in the queue if the last step wasn't forced
+ // timers currently will call their complete callbacks, which will dequeue
+ // but only if they were gotoEnd
+ if ( dequeue || !gotoEnd ) {
+ jQuery.dequeue( this, type );
+ }
+ } );
+ },
+ finish: function( type ) {
+ if ( type !== false ) {
+ type = type || "fx";
+ }
+ return this.each( function() {
+ var index,
+ data = jQuery._data( this ),
+ queue = data[ type + "queue" ],
+ hooks = data[ type + "queueHooks" ],
+ timers = jQuery.timers,
+ length = queue ? queue.length : 0;
+
+ // enable finishing flag on private data
+ data.finish = true;
+
+ // empty the queue first
+ jQuery.queue( this, type, [] );
+
+ if ( hooks && hooks.stop ) {
+ hooks.stop.call( this, true );
+ }
+
+ // look for any active animations, and finish them
+ for ( index = timers.length; index--; ) {
+ if ( timers[ index ].elem === this && timers[ index ].queue === type ) {
+ timers[ index ].anim.stop( true );
+ timers.splice( index, 1 );
+ }
+ }
+
+ // look for any animations in the old queue and finish them
+ for ( index = 0; index < length; index++ ) {
+ if ( queue[ index ] && queue[ index ].finish ) {
+ queue[ index ].finish.call( this );
+ }
+ }
+
+ // turn off finishing flag
+ delete data.finish;
+ } );
+ }
+} );
+
+jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) {
+ var cssFn = jQuery.fn[ name ];
+ jQuery.fn[ name ] = function( speed, easing, callback ) {
+ return speed == null || typeof speed === "boolean" ?
+ cssFn.apply( this, arguments ) :
+ this.animate( genFx( name, true ), speed, easing, callback );
+ };
+} );
+
+// Generate shortcuts for custom animations
+jQuery.each( {
+ slideDown: genFx( "show" ),
+ slideUp: genFx( "hide" ),
+ slideToggle: genFx( "toggle" ),
+ fadeIn: { opacity: "show" },
+ fadeOut: { opacity: "hide" },
+ fadeToggle: { opacity: "toggle" }
+}, function( name, props ) {
+ jQuery.fn[ name ] = function( speed, easing, callback ) {
+ return this.animate( props, speed, easing, callback );
+ };
+} );
+
+jQuery.timers = [];
+jQuery.fx.tick = function() {
+ var timer,
+ timers = jQuery.timers,
+ i = 0;
+
+ fxNow = jQuery.now();
+
+ for ( ; i < timers.length; i++ ) {
+ timer = timers[ i ];
+
+ // Checks the timer has not already been removed
+ if ( !timer() && timers[ i ] === timer ) {
+ timers.splice( i--, 1 );
+ }
+ }
+
+ if ( !timers.length ) {
+ jQuery.fx.stop();
+ }
+ fxNow = undefined;
+};
+
+jQuery.fx.timer = function( timer ) {
+ jQuery.timers.push( timer );
+ if ( timer() ) {
+ jQuery.fx.start();
+ } else {
+ jQuery.timers.pop();
+ }
+};
+
+jQuery.fx.interval = 13;
+
+jQuery.fx.start = function() {
+ if ( !timerId ) {
+ timerId = window.setInterval( jQuery.fx.tick, jQuery.fx.interval );
+ }
+};
+
+jQuery.fx.stop = function() {
+ window.clearInterval( timerId );
+ timerId = null;
+};
+
+jQuery.fx.speeds = {
+ slow: 600,
+ fast: 200,
+
+ // Default speed
+ _default: 400
+};
+
+
+// Based off of the plugin by Clint Helfers, with permission.
+// http://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/
+jQuery.fn.delay = function( time, type ) {
+ time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
+ type = type || "fx";
+
+ return this.queue( type, function( next, hooks ) {
+ var timeout = window.setTimeout( next, time );
+ hooks.stop = function() {
+ window.clearTimeout( timeout );
+ };
+ } );
+};
+
+
+( function() {
+ var a,
+ input = document.createElement( "input" ),
+ div = document.createElement( "div" ),
+ select = document.createElement( "select" ),
+ opt = select.appendChild( document.createElement( "option" ) );
+
+ // Setup
+ div = document.createElement( "div" );
+ div.setAttribute( "className", "t" );
+ div.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>";
+ a = div.getElementsByTagName( "a" )[ 0 ];
+
+ // Support: Windows Web Apps (WWA)
+ // `type` must use .setAttribute for WWA (#14901)
+ input.setAttribute( "type", "checkbox" );
+ div.appendChild( input );
+
+ a = div.getElementsByTagName( "a" )[ 0 ];
+
+ // First batch of tests.
+ a.style.cssText = "top:1px";
+
+ // Test setAttribute on camelCase class.
+ // If it works, we need attrFixes when doing get/setAttribute (ie6/7)
+ support.getSetAttribute = div.className !== "t";
+
+ // Get the style information from getAttribute
+ // (IE uses .cssText instead)
+ support.style = /top/.test( a.getAttribute( "style" ) );
+
+ // Make sure that URLs aren't manipulated
+ // (IE normalizes it by default)
+ support.hrefNormalized = a.getAttribute( "href" ) === "/a";
+
+ // Check the default checkbox/radio value ("" on WebKit; "on" elsewhere)
+ support.checkOn = !!input.value;
+
+ // Make sure that a selected-by-default option has a working selected property.
+ // (WebKit defaults to false instead of true, IE too, if it's in an optgroup)
+ support.optSelected = opt.selected;
+
+ // Tests for enctype support on a form (#6743)
+ support.enctype = !!document.createElement( "form" ).enctype;
+
+ // Make sure that the options inside disabled selects aren't marked as disabled
+ // (WebKit marks them as disabled)
+ select.disabled = true;
+ support.optDisabled = !opt.disabled;
+
+ // Support: IE8 only
+ // Check if we can trust getAttribute("value")
+ input = document.createElement( "input" );
+ input.setAttribute( "value", "" );
+ support.input = input.getAttribute( "value" ) === "";
+
+ // Check if an input maintains its value after becoming a radio
+ input.value = "t";
+ input.setAttribute( "type", "radio" );
+ support.radioValue = input.value === "t";
+} )();
+
+
+var rreturn = /\r/g,
+ rspaces = /[\x20\t\r\n\f]+/g;
+
+jQuery.fn.extend( {
+ val: function( value ) {
+ var hooks, ret, isFunction,
+ elem = this[ 0 ];
+
+ if ( !arguments.length ) {
+ if ( elem ) {
+ hooks = jQuery.valHooks[ elem.type ] ||
+ jQuery.valHooks[ elem.nodeName.toLowerCase() ];
+
+ if (
+ hooks &&
+ "get" in hooks &&
+ ( ret = hooks.get( elem, "value" ) ) !== undefined
+ ) {
+ return ret;
+ }
+
+ ret = elem.value;
+
+ return typeof ret === "string" ?
+
+ // handle most common string cases
+ ret.replace( rreturn, "" ) :
+
+ // handle cases where value is null/undef or number
+ ret == null ? "" : ret;
+ }
+
+ return;
+ }
+
+ isFunction = jQuery.isFunction( value );
+
+ return this.each( function( i ) {
+ var val;
+
+ if ( this.nodeType !== 1 ) {
+ return;
+ }
+
+ if ( isFunction ) {
+ val = value.call( this, i, jQuery( this ).val() );
+ } else {
+ val = value;
+ }
+
+ // Treat null/undefined as ""; convert numbers to string
+ if ( val == null ) {
+ val = "";
+ } else if ( typeof val === "number" ) {
+ val += "";
+ } else if ( jQuery.isArray( val ) ) {
+ val = jQuery.map( val, function( value ) {
+ return value == null ? "" : value + "";
+ } );
+ }
+
+ hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];
+
+ // If set returns undefined, fall back to normal setting
+ if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) {
+ this.value = val;
+ }
+ } );
+ }
+} );
+
+jQuery.extend( {
+ valHooks: {
+ option: {
+ get: function( elem ) {
+ var val = jQuery.find.attr( elem, "value" );
+ return val != null ?
+ val :
+
+ // Support: IE10-11+
+ // option.text throws exceptions (#14686, #14858)
+ // Strip and collapse whitespace
+ // https://html.spec.whatwg.org/#strip-and-collapse-whitespace
+ jQuery.trim( jQuery.text( elem ) ).replace( rspaces, " " );
+ }
+ },
+ select: {
+ get: function( elem ) {
+ var value, option,
+ options = elem.options,
+ index = elem.selectedIndex,
+ one = elem.type === "select-one" || index < 0,
+ values = one ? null : [],
+ max = one ? index + 1 : options.length,
+ i = index < 0 ?
+ max :
+ one ? index : 0;
+
+ // Loop through all the selected options
+ for ( ; i < max; i++ ) {
+ option = options[ i ];
+
+ // oldIE doesn't update selected after form reset (#2551)
+ if ( ( option.selected || i === index ) &&
+
+ // Don't return options that are disabled or in a disabled optgroup
+ ( support.optDisabled ?
+ !option.disabled :
+ option.getAttribute( "disabled" ) === null ) &&
+ ( !option.parentNode.disabled ||
+ !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) {
+
+ // Get the specific value for the option
+ value = jQuery( option ).val();
+
+ // We don't need an array for one selects
+ if ( one ) {
+ return value;
+ }
+
+ // Multi-Selects return an array
+ values.push( value );
+ }
+ }
+
+ return values;
+ },
+
+ set: function( elem, value ) {
+ var optionSet, option,
+ options = elem.options,
+ values = jQuery.makeArray( value ),
+ i = options.length;
+
+ while ( i-- ) {
+ option = options[ i ];
+
+ if ( jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 ) {
+
+ // Support: IE6
+ // When new option element is added to select box we need to
+ // force reflow of newly added node in order to workaround delay
+ // of initialization properties
+ try {
+ option.selected = optionSet = true;
+
+ } catch ( _ ) {
+
+ // Will be executed only in IE6
+ option.scrollHeight;
+ }
+
+ } else {
+ option.selected = false;
+ }
+ }
+
+ // Force browsers to behave consistently when non-matching value is set
+ if ( !optionSet ) {
+ elem.selectedIndex = -1;
+ }
+
+ return options;
+ }
+ }
+ }
+} );
+
+// Radios and checkboxes getter/setter
+jQuery.each( [ "radio", "checkbox" ], function() {
+ jQuery.valHooks[ this ] = {
+ set: function( elem, value ) {
+ if ( jQuery.isArray( value ) ) {
+ return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );
+ }
+ }
+ };
+ if ( !support.checkOn ) {
+ jQuery.valHooks[ this ].get = function( elem ) {
+ return elem.getAttribute( "value" ) === null ? "on" : elem.value;
+ };
+ }
+} );
+
+
+
+
+var nodeHook, boolHook,
+ attrHandle = jQuery.expr.attrHandle,
+ ruseDefault = /^(?:checked|selected)$/i,
+ getSetAttribute = support.getSetAttribute,
+ getSetInput = support.input;
+
+jQuery.fn.extend( {
+ attr: function( name, value ) {
+ return access( this, jQuery.attr, name, value, arguments.length > 1 );
+ },
+
+ removeAttr: function( name ) {
+ return this.each( function() {
+ jQuery.removeAttr( this, name );
+ } );
+ }
+} );
+
+jQuery.extend( {
+ attr: function( elem, name, value ) {
+ var ret, hooks,
+ nType = elem.nodeType;
+
+ // Don't get/set attributes on text, comment and attribute nodes
+ if ( nType === 3 || nType === 8 || nType === 2 ) {
+ return;
+ }
+
+ // Fallback to prop when attributes are not supported
+ if ( typeof elem.getAttribute === "undefined" ) {
+ return jQuery.prop( elem, name, value );
+ }
+
+ // All attributes are lowercase
+ // Grab necessary hook if one is defined
+ if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
+ name = name.toLowerCase();
+ hooks = jQuery.attrHooks[ name ] ||
+ ( jQuery.expr.match.bool.test( name ) ? boolHook : nodeHook );
+ }
+
+ if ( value !== undefined ) {
+ if ( value === null ) {
+ jQuery.removeAttr( elem, name );
+ return;
+ }
+
+ if ( hooks && "set" in hooks &&
+ ( ret = hooks.set( elem, value, name ) ) !== undefined ) {
+ return ret;
+ }
+
+ elem.setAttribute( name, value + "" );
+ return value;
+ }
+
+ if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
+ return ret;
+ }
+
+ ret = jQuery.find.attr( elem, name );
+
+ // Non-existent attributes return null, we normalize to undefined
+ return ret == null ? undefined : ret;
+ },
+
+ attrHooks: {
+ type: {
+ set: function( elem, value ) {
+ if ( !support.radioValue && value === "radio" &&
+ jQuery.nodeName( elem, "input" ) ) {
+
+ // Setting the type on a radio button after the value resets the value in IE8-9
+ // Reset value to default in case type is set after value during creation
+ var val = elem.value;
+ elem.setAttribute( "type", value );
+ if ( val ) {
+ elem.value = val;
+ }
+ return value;
+ }
+ }
+ }
+ },
+
+ removeAttr: function( elem, value ) {
+ var name, propName,
+ i = 0,
+ attrNames = value && value.match( rnotwhite );
+
+ if ( attrNames && elem.nodeType === 1 ) {
+ while ( ( name = attrNames[ i++ ] ) ) {
+ propName = jQuery.propFix[ name ] || name;
+
+ // Boolean attributes get special treatment (#10870)
+ if ( jQuery.expr.match.bool.test( name ) ) {
+
+ // Set corresponding property to false
+ if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) {
+ elem[ propName ] = false;
+
+ // Support: IE<9
+ // Also clear defaultChecked/defaultSelected (if appropriate)
+ } else {
+ elem[ jQuery.camelCase( "default-" + name ) ] =
+ elem[ propName ] = false;
+ }
+
+ // See #9699 for explanation of this approach (setting first, then removal)
+ } else {
+ jQuery.attr( elem, name, "" );
+ }
+
+ elem.removeAttribute( getSetAttribute ? name : propName );
+ }
+ }
+ }
+} );
+
+// Hooks for boolean attributes
+boolHook = {
+ set: function( elem, value, name ) {
+ if ( value === false ) {
+
+ // Remove boolean attributes when set to false
+ jQuery.removeAttr( elem, name );
+ } else if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) {
+
+ // IE<8 needs the *property* name
+ elem.setAttribute( !getSetAttribute && jQuery.propFix[ name ] || name, name );
+
+ } else {
+
+ // Support: IE<9
+ // Use defaultChecked and defaultSelected for oldIE
+ elem[ jQuery.camelCase( "default-" + name ) ] = elem[ name ] = true;
+ }
+ return name;
+ }
+};
+
+jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) {
+ var getter = attrHandle[ name ] || jQuery.find.attr;
+
+ if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) {
+ attrHandle[ name ] = function( elem, name, isXML ) {
+ var ret, handle;
+ if ( !isXML ) {
+
+ // Avoid an infinite loop by temporarily removing this function from the getter
+ handle = attrHandle[ name ];
+ attrHandle[ name ] = ret;
+ ret = getter( elem, name, isXML ) != null ?
+ name.toLowerCase() :
+ null;
+ attrHandle[ name ] = handle;
+ }
+ return ret;
+ };
+ } else {
+ attrHandle[ name ] = function( elem, name, isXML ) {
+ if ( !isXML ) {
+ return elem[ jQuery.camelCase( "default-" + name ) ] ?
+ name.toLowerCase() :
+ null;
+ }
+ };
+ }
+} );
+
+// fix oldIE attroperties
+if ( !getSetInput || !getSetAttribute ) {
+ jQuery.attrHooks.value = {
+ set: function( elem, value, name ) {
+ if ( jQuery.nodeName( elem, "input" ) ) {
+
+ // Does not return so that setAttribute is also used
+ elem.defaultValue = value;
+ } else {
+
+ // Use nodeHook if defined (#1954); otherwise setAttribute is fine
+ return nodeHook && nodeHook.set( elem, value, name );
+ }
+ }
+ };
+}
+
+// IE6/7 do not support getting/setting some attributes with get/setAttribute
+if ( !getSetAttribute ) {
+
+ // Use this for any attribute in IE6/7
+ // This fixes almost every IE6/7 issue
+ nodeHook = {
+ set: function( elem, value, name ) {
+
+ // Set the existing or create a new attribute node
+ var ret = elem.getAttributeNode( name );
+ if ( !ret ) {
+ elem.setAttributeNode(
+ ( ret = elem.ownerDocument.createAttribute( name ) )
+ );
+ }
+
+ ret.value = value += "";
+
+ // Break association with cloned elements by also using setAttribute (#9646)
+ if ( name === "value" || value === elem.getAttribute( name ) ) {
+ return value;
+ }
+ }
+ };
+
+ // Some attributes are constructed with empty-string values when not defined
+ attrHandle.id = attrHandle.name = attrHandle.coords =
+ function( elem, name, isXML ) {
+ var ret;
+ if ( !isXML ) {
+ return ( ret = elem.getAttributeNode( name ) ) && ret.value !== "" ?
+ ret.value :
+ null;
+ }
+ };
+
+ // Fixing value retrieval on a button requires this module
+ jQuery.valHooks.button = {
+ get: function( elem, name ) {
+ var ret = elem.getAttributeNode( name );
+ if ( ret && ret.specified ) {
+ return ret.value;
+ }
+ },
+ set: nodeHook.set
+ };
+
+ // Set contenteditable to false on removals(#10429)
+ // Setting to empty string throws an error as an invalid value
+ jQuery.attrHooks.contenteditable = {
+ set: function( elem, value, name ) {
+ nodeHook.set( elem, value === "" ? false : value, name );
+ }
+ };
+
+ // Set width and height to auto instead of 0 on empty string( Bug #8150 )
+ // This is for removals
+ jQuery.each( [ "width", "height" ], function( i, name ) {
+ jQuery.attrHooks[ name ] = {
+ set: function( elem, value ) {
+ if ( value === "" ) {
+ elem.setAttribute( name, "auto" );
+ return value;
+ }
+ }
+ };
+ } );
+}
+
+if ( !support.style ) {
+ jQuery.attrHooks.style = {
+ get: function( elem ) {
+
+ // Return undefined in the case of empty string
+ // Note: IE uppercases css property names, but if we were to .toLowerCase()
+ // .cssText, that would destroy case sensitivity in URL's, like in "background"
+ return elem.style.cssText || undefined;
+ },
+ set: function( elem, value ) {
+ return ( elem.style.cssText = value + "" );
+ }
+ };
+}
+
+
+
+
+var rfocusable = /^(?:input|select|textarea|button|object)$/i,
+ rclickable = /^(?:a|area)$/i;
+
+jQuery.fn.extend( {
+ prop: function( name, value ) {
+ return access( this, jQuery.prop, name, value, arguments.length > 1 );
+ },
+
+ removeProp: function( name ) {
+ name = jQuery.propFix[ name ] || name;
+ return this.each( function() {
+
+ // try/catch handles cases where IE balks (such as removing a property on window)
+ try {
+ this[ name ] = undefined;
+ delete this[ name ];
+ } catch ( e ) {}
+ } );
+ }
+} );
+
+jQuery.extend( {
+ prop: function( elem, name, value ) {
+ var ret, hooks,
+ nType = elem.nodeType;
+
+ // Don't get/set properties on text, comment and attribute nodes
+ if ( nType === 3 || nType === 8 || nType === 2 ) {
+ return;
+ }
+
+ if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
+
+ // Fix name and attach hooks
+ name = jQuery.propFix[ name ] || name;
+ hooks = jQuery.propHooks[ name ];
+ }
+
+ if ( value !== undefined ) {
+ if ( hooks && "set" in hooks &&
+ ( ret = hooks.set( elem, value, name ) ) !== undefined ) {
+ return ret;
+ }
+
+ return ( elem[ name ] = value );
+ }
+
+ if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
+ return ret;
+ }
+
+ return elem[ name ];
+ },
+
+ propHooks: {
+ tabIndex: {
+ get: function( elem ) {
+
+ // elem.tabIndex doesn't always return the
+ // correct value when it hasn't been explicitly set
+ // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
+ // Use proper attribute retrieval(#12072)
+ var tabindex = jQuery.find.attr( elem, "tabindex" );
+
+ return tabindex ?
+ parseInt( tabindex, 10 ) :
+ rfocusable.test( elem.nodeName ) ||
+ rclickable.test( elem.nodeName ) && elem.href ?
+ 0 :
+ -1;
+ }
+ }
+ },
+
+ propFix: {
+ "for": "htmlFor",
+ "class": "className"
+ }
+} );
+
+// Some attributes require a special call on IE
+// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
+if ( !support.hrefNormalized ) {
+
+ // href/src property should get the full normalized URL (#10299/#12915)
+ jQuery.each( [ "href", "src" ], function( i, name ) {
+ jQuery.propHooks[ name ] = {
+ get: function( elem ) {
+ return elem.getAttribute( name, 4 );
+ }
+ };
+ } );
+}
+
+// Support: Safari, IE9+
+// Accessing the selectedIndex property
+// forces the browser to respect setting selected
+// on the option
+// The getter ensures a default option is selected
+// when in an optgroup
+if ( !support.optSelected ) {
+ jQuery.propHooks.selected = {
+ get: function( elem ) {
+ var parent = elem.parentNode;
+
+ if ( parent ) {
+ parent.selectedIndex;
+
+ // Make sure that it also works with optgroups, see #5701
+ if ( parent.parentNode ) {
+ parent.parentNode.selectedIndex;
+ }
+ }
+ return null;
+ },
+ set: function( elem ) {
+ var parent = elem.parentNode;
+ if ( parent ) {
+ parent.selectedIndex;
+
+ if ( parent.parentNode ) {
+ parent.parentNode.selectedIndex;
+ }
+ }
+ }
+ };
+}
+
+jQuery.each( [
+ "tabIndex",
+ "readOnly",
+ "maxLength",
+ "cellSpacing",
+ "cellPadding",
+ "rowSpan",
+ "colSpan",
+ "useMap",
+ "frameBorder",
+ "contentEditable"
+], function() {
+ jQuery.propFix[ this.toLowerCase() ] = this;
+} );
+
+// IE6/7 call enctype encoding
+if ( !support.enctype ) {
+ jQuery.propFix.enctype = "encoding";
+}
+
+
+
+
+var rclass = /[\t\r\n\f]/g;
+
+function getClass( elem ) {
+ return jQuery.attr( elem, "class" ) || "";
+}
+
+jQuery.fn.extend( {
+ addClass: function( value ) {
+ var classes, elem, cur, curValue, clazz, j, finalValue,
+ i = 0;
+
+ if ( jQuery.isFunction( value ) ) {
+ return this.each( function( j ) {
+ jQuery( this ).addClass( value.call( this, j, getClass( this ) ) );
+ } );
+ }
+
+ if ( typeof value === "string" && value ) {
+ classes = value.match( rnotwhite ) || [];
+
+ while ( ( elem = this[ i++ ] ) ) {
+ curValue = getClass( elem );
+ cur = elem.nodeType === 1 &&
+ ( " " + curValue + " " ).replace( rclass, " " );
+
+ if ( cur ) {
+ j = 0;
+ while ( ( clazz = classes[ j++ ] ) ) {
+ if ( cur.indexOf( " " + clazz + " " ) < 0 ) {
+ cur += clazz + " ";
+ }
+ }
+
+ // only assign if different to avoid unneeded rendering.
+ finalValue = jQuery.trim( cur );
+ if ( curValue !== finalValue ) {
+ jQuery.attr( elem, "class", finalValue );
+ }
+ }
+ }
+ }
+
+ return this;
+ },
+
+ removeClass: function( value ) {
+ var classes, elem, cur, curValue, clazz, j, finalValue,
+ i = 0;
+
+ if ( jQuery.isFunction( value ) ) {
+ return this.each( function( j ) {
+ jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );
+ } );
+ }
+
+ if ( !arguments.length ) {
+ return this.attr( "class", "" );
+ }
+
+ if ( typeof value === "string" && value ) {
+ classes = value.match( rnotwhite ) || [];
+
+ while ( ( elem = this[ i++ ] ) ) {
+ curValue = getClass( elem );
+
+ // This expression is here for better compressibility (see addClass)
+ cur = elem.nodeType === 1 &&
+ ( " " + curValue + " " ).replace( rclass, " " );
+
+ if ( cur ) {
+ j = 0;
+ while ( ( clazz = classes[ j++ ] ) ) {
+
+ // Remove *all* instances
+ while ( cur.indexOf( " " + clazz + " " ) > -1 ) {
+ cur = cur.replace( " " + clazz + " ", " " );
+ }
+ }
+
+ // Only assign if different to avoid unneeded rendering.
+ finalValue = jQuery.trim( cur );
+ if ( curValue !== finalValue ) {
+ jQuery.attr( elem, "class", finalValue );
+ }
+ }
+ }
+ }
+
+ return this;
+ },
+
+ toggleClass: function( value, stateVal ) {
+ var type = typeof value;
+
+ if ( typeof stateVal === "boolean" && type === "string" ) {
+ return stateVal ? this.addClass( value ) : this.removeClass( value );
+ }
+
+ if ( jQuery.isFunction( value ) ) {
+ return this.each( function( i ) {
+ jQuery( this ).toggleClass(
+ value.call( this, i, getClass( this ), stateVal ),
+ stateVal
+ );
+ } );
+ }
+
+ return this.each( function() {
+ var className, i, self, classNames;
+
+ if ( type === "string" ) {
+
+ // Toggle individual class names
+ i = 0;
+ self = jQuery( this );
+ classNames = value.match( rnotwhite ) || [];
+
+ while ( ( className = classNames[ i++ ] ) ) {
+
+ // Check each className given, space separated list
+ if ( self.hasClass( className ) ) {
+ self.removeClass( className );
+ } else {
+ self.addClass( className );
+ }
+ }
+
+ // Toggle whole class name
+ } else if ( value === undefined || type === "boolean" ) {
+ className = getClass( this );
+ if ( className ) {
+
+ // store className if set
+ jQuery._data( this, "__className__", className );
+ }
+
+ // If the element has a class name or if we're passed "false",
+ // then remove the whole classname (if there was one, the above saved it).
+ // Otherwise bring back whatever was previously saved (if anything),
+ // falling back to the empty string if nothing was stored.
+ jQuery.attr( this, "class",
+ className || value === false ?
+ "" :
+ jQuery._data( this, "__className__" ) || ""
+ );
+ }
+ } );
+ },
+
+ hasClass: function( selector ) {
+ var className, elem,
+ i = 0;
+
+ className = " " + selector + " ";
+ while ( ( elem = this[ i++ ] ) ) {
+ if ( elem.nodeType === 1 &&
+ ( " " + getClass( elem ) + " " ).replace( rclass, " " )
+ .indexOf( className ) > -1
+ ) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+} );
+
+
+
+
+// Return jQuery for attributes-only inclusion
+
+
+jQuery.each( ( "blur focus focusin focusout load resize scroll unload click dblclick " +
+ "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
+ "change select submit keydown keypress keyup error contextmenu" ).split( " " ),
+ function( i, name ) {
+
+ // Handle event binding
+ jQuery.fn[ name ] = function( data, fn ) {
+ return arguments.length > 0 ?
+ this.on( name, null, data, fn ) :
+ this.trigger( name );
+ };
+} );
+
+jQuery.fn.extend( {
+ hover: function( fnOver, fnOut ) {
+ return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
+ }
+} );
+
+
+var location = window.location;
+
+var nonce = jQuery.now();
+
+var rquery = ( /\?/ );
+
+
+
+var rvalidtokens = /(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;
+
+jQuery.parseJSON = function( data ) {
+
+ // Attempt to parse using the native JSON parser first
+ if ( window.JSON && window.JSON.parse ) {
+
+ // Support: Android 2.3
+ // Workaround failure to string-cast null input
+ return window.JSON.parse( data + "" );
+ }
+
+ var requireNonComma,
+ depth = null,
+ str = jQuery.trim( data + "" );
+
+ // Guard against invalid (and possibly dangerous) input by ensuring that nothing remains
+ // after removing valid tokens
+ return str && !jQuery.trim( str.replace( rvalidtokens, function( token, comma, open, close ) {
+
+ // Force termination if we see a misplaced comma
+ if ( requireNonComma && comma ) {
+ depth = 0;
+ }
+
+ // Perform no more replacements after returning to outermost depth
+ if ( depth === 0 ) {
+ return token;
+ }
+
+ // Commas must not follow "[", "{", or ","
+ requireNonComma = open || comma;
+
+ // Determine new depth
+ // array/object open ("[" or "{"): depth += true - false (increment)
+ // array/object close ("]" or "}"): depth += false - true (decrement)
+ // other cases ("," or primitive): depth += true - true (numeric cast)
+ depth += !close - !open;
+
+ // Remove this token
+ return "";
+ } ) ) ?
+ ( Function( "return " + str ) )() :
+ jQuery.error( "Invalid JSON: " + data );
+};
+
+
+// Cross-browser xml parsing
+jQuery.parseXML = function( data ) {
+ var xml, tmp;
+ if ( !data || typeof data !== "string" ) {
+ return null;
+ }
+ try {
+ if ( window.DOMParser ) { // Standard
+ tmp = new window.DOMParser();
+ xml = tmp.parseFromString( data, "text/xml" );
+ } else { // IE
+ xml = new window.ActiveXObject( "Microsoft.XMLDOM" );
+ xml.async = "false";
+ xml.loadXML( data );
+ }
+ } catch ( e ) {
+ xml = undefined;
+ }
+ if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) {
+ jQuery.error( "Invalid XML: " + data );
+ }
+ return xml;
+};
+
+
+var
+ rhash = /#.*$/,
+ rts = /([?&])_=[^&]*/,
+
+ // IE leaves an \r character at EOL
+ rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg,
+
+ // #7653, #8125, #8152: local protocol detection
+ rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
+ rnoContent = /^(?:GET|HEAD)$/,
+ rprotocol = /^\/\//,
+ rurl = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,
+
+ /* Prefilters
+ * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
+ * 2) These are called:
+ * - BEFORE asking for a transport
+ * - AFTER param serialization (s.data is a string if s.processData is true)
+ * 3) key is the dataType
+ * 4) the catchall symbol "*" can be used
+ * 5) execution will start with transport dataType and THEN continue down to "*" if needed
+ */
+ prefilters = {},
+
+ /* Transports bindings
+ * 1) key is the dataType
+ * 2) the catchall symbol "*" can be used
+ * 3) selection will start with transport dataType and THEN go to "*" if needed
+ */
+ transports = {},
+
+ // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
+ allTypes = "*/".concat( "*" ),
+
+ // Document location
+ ajaxLocation = location.href,
+
+ // Segment location into parts
+ ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || [];
+
+// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
+function addToPrefiltersOrTransports( structure ) {
+
+ // dataTypeExpression is optional and defaults to "*"
+ return function( dataTypeExpression, func ) {
+
+ if ( typeof dataTypeExpression !== "string" ) {
+ func = dataTypeExpression;
+ dataTypeExpression = "*";
+ }
+
+ var dataType,
+ i = 0,
+ dataTypes = dataTypeExpression.toLowerCase().match( rnotwhite ) || [];
+
+ if ( jQuery.isFunction( func ) ) {
+
+ // For each dataType in the dataTypeExpression
+ while ( ( dataType = dataTypes[ i++ ] ) ) {
+
+ // Prepend if requested
+ if ( dataType.charAt( 0 ) === "+" ) {
+ dataType = dataType.slice( 1 ) || "*";
+ ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );
+
+ // Otherwise append
+ } else {
+ ( structure[ dataType ] = structure[ dataType ] || [] ).push( func );
+ }
+ }
+ }
+ };
+}
+
+// Base inspection function for prefilters and transports
+function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {
+
+ var inspected = {},
+ seekingTransport = ( structure === transports );
+
+ function inspect( dataType ) {
+ var selected;
+ inspected[ dataType ] = true;
+ jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {
+ var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );
+ if ( typeof dataTypeOrTransport === "string" &&
+ !seekingTransport && !inspected[ dataTypeOrTransport ] ) {
+
+ options.dataTypes.unshift( dataTypeOrTransport );
+ inspect( dataTypeOrTransport );
+ return false;
+ } else if ( seekingTransport ) {
+ return !( selected = dataTypeOrTransport );
+ }
+ } );
+ return selected;
+ }
+
+ return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" );
+}
+
+// A special extend for ajax options
+// that takes "flat" options (not to be deep extended)
+// Fixes #9887
+function ajaxExtend( target, src ) {
+ var deep, key,
+ flatOptions = jQuery.ajaxSettings.flatOptions || {};
+
+ for ( key in src ) {
+ if ( src[ key ] !== undefined ) {
+ ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];
+ }
+ }
+ if ( deep ) {
+ jQuery.extend( true, target, deep );
+ }
+
+ return target;
+}
+
+/* Handles responses to an ajax request:
+ * - finds the right dataType (mediates between content-type and expected dataType)
+ * - returns the corresponding response
+ */
+function ajaxHandleResponses( s, jqXHR, responses ) {
+ var firstDataType, ct, finalDataType, type,
+ contents = s.contents,
+ dataTypes = s.dataTypes;
+
+ // Remove auto dataType and get content-type in the process
+ while ( dataTypes[ 0 ] === "*" ) {
+ dataTypes.shift();
+ if ( ct === undefined ) {
+ ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" );
+ }
+ }
+
+ // Check if we're dealing with a known content-type
+ if ( ct ) {
+ for ( type in contents ) {
+ if ( contents[ type ] && contents[ type ].test( ct ) ) {
+ dataTypes.unshift( type );
+ break;
+ }
+ }
+ }
+
+ // Check to see if we have a response for the expected dataType
+ if ( dataTypes[ 0 ] in responses ) {
+ finalDataType = dataTypes[ 0 ];
+ } else {
+
+ // Try convertible dataTypes
+ for ( type in responses ) {
+ if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) {
+ finalDataType = type;
+ break;
+ }
+ if ( !firstDataType ) {
+ firstDataType = type;
+ }
+ }
+
+ // Or just use first one
+ finalDataType = finalDataType || firstDataType;
+ }
+
+ // If we found a dataType
+ // We add the dataType to the list if needed
+ // and return the corresponding response
+ if ( finalDataType ) {
+ if ( finalDataType !== dataTypes[ 0 ] ) {
+ dataTypes.unshift( finalDataType );
+ }
+ return responses[ finalDataType ];
+ }
+}
+
+/* Chain conversions given the request and the original response
+ * Also sets the responseXXX fields on the jqXHR instance
+ */
+function ajaxConvert( s, response, jqXHR, isSuccess ) {
+ var conv2, current, conv, tmp, prev,
+ converters = {},
+
+ // Work with a copy of dataTypes in case we need to modify it for conversion
+ dataTypes = s.dataTypes.slice();
+
+ // Create converters map with lowercased keys
+ if ( dataTypes[ 1 ] ) {
+ for ( conv in s.converters ) {
+ converters[ conv.toLowerCase() ] = s.converters[ conv ];
+ }
+ }
+
+ current = dataTypes.shift();
+
+ // Convert to each sequential dataType
+ while ( current ) {
+
+ if ( s.responseFields[ current ] ) {
+ jqXHR[ s.responseFields[ current ] ] = response;
+ }
+
+ // Apply the dataFilter if provided
+ if ( !prev && isSuccess && s.dataFilter ) {
+ response = s.dataFilter( response, s.dataType );
+ }
+
+ prev = current;
+ current = dataTypes.shift();
+
+ if ( current ) {
+
+ // There's only work to do if current dataType is non-auto
+ if ( current === "*" ) {
+
+ current = prev;
+
+ // Convert response if prev dataType is non-auto and differs from current
+ } else if ( prev !== "*" && prev !== current ) {
+
+ // Seek a direct converter
+ conv = converters[ prev + " " + current ] || converters[ "* " + current ];
+
+ // If none found, seek a pair
+ if ( !conv ) {
+ for ( conv2 in converters ) {
+
+ // If conv2 outputs current
+ tmp = conv2.split( " " );
+ if ( tmp[ 1 ] === current ) {
+
+ // If prev can be converted to accepted input
+ conv = converters[ prev + " " + tmp[ 0 ] ] ||
+ converters[ "* " + tmp[ 0 ] ];
+ if ( conv ) {
+
+ // Condense equivalence converters
+ if ( conv === true ) {
+ conv = converters[ conv2 ];
+
+ // Otherwise, insert the intermediate dataType
+ } else if ( converters[ conv2 ] !== true ) {
+ current = tmp[ 0 ];
+ dataTypes.unshift( tmp[ 1 ] );
+ }
+ break;
+ }
+ }
+ }
+ }
+
+ // Apply converter (if not an equivalence)
+ if ( conv !== true ) {
+
+ // Unless errors are allowed to bubble, catch and return them
+ if ( conv && s[ "throws" ] ) { // jscs:ignore requireDotNotation
+ response = conv( response );
+ } else {
+ try {
+ response = conv( response );
+ } catch ( e ) {
+ return {
+ state: "parsererror",
+ error: conv ? e : "No conversion from " + prev + " to " + current
+ };
+ }
+ }
+ }
+ }
+ }
+ }
+
+ return { state: "success", data: response };
+}
+
+jQuery.extend( {
+
+ // Counter for holding the number of active queries
+ active: 0,
+
+ // Last-Modified header cache for next request
+ lastModified: {},
+ etag: {},
+
+ ajaxSettings: {
+ url: ajaxLocation,
+ type: "GET",
+ isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ),
+ global: true,
+ processData: true,
+ async: true,
+ contentType: "application/x-www-form-urlencoded; charset=UTF-8",
+ /*
+ timeout: 0,
+ data: null,
+ dataType: null,
+ username: null,
+ password: null,
+ cache: null,
+ throws: false,
+ traditional: false,
+ headers: {},
+ */
+
+ accepts: {
+ "*": allTypes,
+ text: "text/plain",
+ html: "text/html",
+ xml: "application/xml, text/xml",
+ json: "application/json, text/javascript"
+ },
+
+ contents: {
+ xml: /\bxml\b/,
+ html: /\bhtml/,
+ json: /\bjson\b/
+ },
+
+ responseFields: {
+ xml: "responseXML",
+ text: "responseText",
+ json: "responseJSON"
+ },
+
+ // Data converters
+ // Keys separate source (or catchall "*") and destination types with a single space
+ converters: {
+
+ // Convert anything to text
+ "* text": String,
+
+ // Text to html (true = no transformation)
+ "text html": true,
+
+ // Evaluate text as a json expression
+ "text json": jQuery.parseJSON,
+
+ // Parse text as xml
+ "text xml": jQuery.parseXML
+ },
+
+ // For options that shouldn't be deep extended:
+ // you can add your own custom options here if
+ // and when you create one that shouldn't be
+ // deep extended (see ajaxExtend)
+ flatOptions: {
+ url: true,
+ context: true
+ }
+ },
+
+ // Creates a full fledged settings object into target
+ // with both ajaxSettings and settings fields.
+ // If target is omitted, writes into ajaxSettings.
+ ajaxSetup: function( target, settings ) {
+ return settings ?
+
+ // Building a settings object
+ ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :
+
+ // Extending ajaxSettings
+ ajaxExtend( jQuery.ajaxSettings, target );
+ },
+
+ ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
+ ajaxTransport: addToPrefiltersOrTransports( transports ),
+
+ // Main method
+ ajax: function( url, options ) {
+
+ // If url is an object, simulate pre-1.5 signature
+ if ( typeof url === "object" ) {
+ options = url;
+ url = undefined;
+ }
+
+ // Force options to be an object
+ options = options || {};
+
+ var
+
+ // Cross-domain detection vars
+ parts,
+
+ // Loop variable
+ i,
+
+ // URL without anti-cache param
+ cacheURL,
+
+ // Response headers as string
+ responseHeadersString,
+
+ // timeout handle
+ timeoutTimer,
+
+ // To know if global events are to be dispatched
+ fireGlobals,
+
+ transport,
+
+ // Response headers
+ responseHeaders,
+
+ // Create the final options object
+ s = jQuery.ajaxSetup( {}, options ),
+
+ // Callbacks context
+ callbackContext = s.context || s,
+
+ // Context for global events is callbackContext if it is a DOM node or jQuery collection
+ globalEventContext = s.context &&
+ ( callbackContext.nodeType || callbackContext.jquery ) ?
+ jQuery( callbackContext ) :
+ jQuery.event,
+
+ // Deferreds
+ deferred = jQuery.Deferred(),
+ completeDeferred = jQuery.Callbacks( "once memory" ),
+
+ // Status-dependent callbacks
+ statusCode = s.statusCode || {},
+
+ // Headers (they are sent all at once)
+ requestHeaders = {},
+ requestHeadersNames = {},
+
+ // The jqXHR state
+ state = 0,
+
+ // Default abort message
+ strAbort = "canceled",
+
+ // Fake xhr
+ jqXHR = {
+ readyState: 0,
+
+ // Builds headers hashtable if needed
+ getResponseHeader: function( key ) {
+ var match;
+ if ( state === 2 ) {
+ if ( !responseHeaders ) {
+ responseHeaders = {};
+ while ( ( match = rheaders.exec( responseHeadersString ) ) ) {
+ responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ];
+ }
+ }
+ match = responseHeaders[ key.toLowerCase() ];
+ }
+ return match == null ? null : match;
+ },
+
+ // Raw string
+ getAllResponseHeaders: function() {
+ return state === 2 ? responseHeadersString : null;
+ },
+
+ // Caches the header
+ setRequestHeader: function( name, value ) {
+ var lname = name.toLowerCase();
+ if ( !state ) {
+ name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name;
+ requestHeaders[ name ] = value;
+ }
+ return this;
+ },
+
+ // Overrides response content-type header
+ overrideMimeType: function( type ) {
+ if ( !state ) {
+ s.mimeType = type;
+ }
+ return this;
+ },
+
+ // Status-dependent callbacks
+ statusCode: function( map ) {
+ var code;
+ if ( map ) {
+ if ( state < 2 ) {
+ for ( code in map ) {
+
+ // Lazy-add the new callback in a way that preserves old ones
+ statusCode[ code ] = [ statusCode[ code ], map[ code ] ];
+ }
+ } else {
+
+ // Execute the appropriate callbacks
+ jqXHR.always( map[ jqXHR.status ] );
+ }
+ }
+ return this;
+ },
+
+ // Cancel the request
+ abort: function( statusText ) {
+ var finalText = statusText || strAbort;
+ if ( transport ) {
+ transport.abort( finalText );
+ }
+ done( 0, finalText );
+ return this;
+ }
+ };
+
+ // Attach deferreds
+ deferred.promise( jqXHR ).complete = completeDeferred.add;
+ jqXHR.success = jqXHR.done;
+ jqXHR.error = jqXHR.fail;
+
+ // Remove hash character (#7531: and string promotion)
+ // Add protocol if not provided (#5866: IE7 issue with protocol-less urls)
+ // Handle falsy url in the settings object (#10093: consistency with old signature)
+ // We also use the url parameter if available
+ s.url = ( ( url || s.url || ajaxLocation ) + "" )
+ .replace( rhash, "" )
+ .replace( rprotocol, ajaxLocParts[ 1 ] + "//" );
+
+ // Alias method option to type as per ticket #12004
+ s.type = options.method || options.type || s.method || s.type;
+
+ // Extract dataTypes list
+ s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().match( rnotwhite ) || [ "" ];
+
+ // A cross-domain request is in order when we have a protocol:host:port mismatch
+ if ( s.crossDomain == null ) {
+ parts = rurl.exec( s.url.toLowerCase() );
+ s.crossDomain = !!( parts &&
+ ( parts[ 1 ] !== ajaxLocParts[ 1 ] || parts[ 2 ] !== ajaxLocParts[ 2 ] ||
+ ( parts[ 3 ] || ( parts[ 1 ] === "http:" ? "80" : "443" ) ) !==
+ ( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? "80" : "443" ) ) )
+ );
+ }
+
+ // Convert data if not already a string
+ if ( s.data && s.processData && typeof s.data !== "string" ) {
+ s.data = jQuery.param( s.data, s.traditional );
+ }
+
+ // Apply prefilters
+ inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
+
+ // If request was aborted inside a prefilter, stop there
+ if ( state === 2 ) {
+ return jqXHR;
+ }
+
+ // We can fire global events as of now if asked to
+ // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)
+ fireGlobals = jQuery.event && s.global;
+
+ // Watch for a new set of requests
+ if ( fireGlobals && jQuery.active++ === 0 ) {
+ jQuery.event.trigger( "ajaxStart" );
+ }
+
+ // Uppercase the type
+ s.type = s.type.toUpperCase();
+
+ // Determine if request has content
+ s.hasContent = !rnoContent.test( s.type );
+
+ // Save the URL in case we're toying with the If-Modified-Since
+ // and/or If-None-Match header later on
+ cacheURL = s.url;
+
+ // More options handling for requests with no content
+ if ( !s.hasContent ) {
+
+ // If data is available, append data to url
+ if ( s.data ) {
+ cacheURL = ( s.url += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data );
+
+ // #9682: remove data so that it's not used in an eventual retry
+ delete s.data;
+ }
+
+ // Add anti-cache in url if needed
+ if ( s.cache === false ) {
+ s.url = rts.test( cacheURL ) ?
+
+ // If there is already a '_' parameter, set its value
+ cacheURL.replace( rts, "$1_=" + nonce++ ) :
+
+ // Otherwise add one to the end
+ cacheURL + ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + nonce++;
+ }
+ }
+
+ // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+ if ( s.ifModified ) {
+ if ( jQuery.lastModified[ cacheURL ] ) {
+ jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] );
+ }
+ if ( jQuery.etag[ cacheURL ] ) {
+ jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] );
+ }
+ }
+
+ // Set the correct header, if data is being sent
+ if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
+ jqXHR.setRequestHeader( "Content-Type", s.contentType );
+ }
+
+ // Set the Accepts header for the server, depending on the dataType
+ jqXHR.setRequestHeader(
+ "Accept",
+ s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?
+ s.accepts[ s.dataTypes[ 0 ] ] +
+ ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
+ s.accepts[ "*" ]
+ );
+
+ // Check for headers option
+ for ( i in s.headers ) {
+ jqXHR.setRequestHeader( i, s.headers[ i ] );
+ }
+
+ // Allow custom headers/mimetypes and early abort
+ if ( s.beforeSend &&
+ ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {
+
+ // Abort if not done already and return
+ return jqXHR.abort();
+ }
+
+ // aborting is no longer a cancellation
+ strAbort = "abort";
+
+ // Install callbacks on deferreds
+ for ( i in { success: 1, error: 1, complete: 1 } ) {
+ jqXHR[ i ]( s[ i ] );
+ }
+
+ // Get transport
+ transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
+
+ // If no transport, we auto-abort
+ if ( !transport ) {
+ done( -1, "No Transport" );
+ } else {
+ jqXHR.readyState = 1;
+
+ // Send global event
+ if ( fireGlobals ) {
+ globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
+ }
+
+ // If request was aborted inside ajaxSend, stop there
+ if ( state === 2 ) {
+ return jqXHR;
+ }
+
+ // Timeout
+ if ( s.async && s.timeout > 0 ) {
+ timeoutTimer = window.setTimeout( function() {
+ jqXHR.abort( "timeout" );
+ }, s.timeout );
+ }
+
+ try {
+ state = 1;
+ transport.send( requestHeaders, done );
+ } catch ( e ) {
+
+ // Propagate exception as error if not done
+ if ( state < 2 ) {
+ done( -1, e );
+
+ // Simply rethrow otherwise
+ } else {
+ throw e;
+ }
+ }
+ }
+
+ // Callback for when everything is done
+ function done( status, nativeStatusText, responses, headers ) {
+ var isSuccess, success, error, response, modified,
+ statusText = nativeStatusText;
+
+ // Called once
+ if ( state === 2 ) {
+ return;
+ }
+
+ // State is "done" now
+ state = 2;
+
+ // Clear timeout if it exists
+ if ( timeoutTimer ) {
+ window.clearTimeout( timeoutTimer );
+ }
+
+ // Dereference transport for early garbage collection
+ // (no matter how long the jqXHR object will be used)
+ transport = undefined;
+
+ // Cache response headers
+ responseHeadersString = headers || "";
+
+ // Set readyState
+ jqXHR.readyState = status > 0 ? 4 : 0;
+
+ // Determine if successful
+ isSuccess = status >= 200 && status < 300 || status === 304;
+
+ // Get response data
+ if ( responses ) {
+ response = ajaxHandleResponses( s, jqXHR, responses );
+ }
+
+ // Convert no matter what (that way responseXXX fields are always set)
+ response = ajaxConvert( s, response, jqXHR, isSuccess );
+
+ // If successful, handle type chaining
+ if ( isSuccess ) {
+
+ // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+ if ( s.ifModified ) {
+ modified = jqXHR.getResponseHeader( "Last-Modified" );
+ if ( modified ) {
+ jQuery.lastModified[ cacheURL ] = modified;
+ }
+ modified = jqXHR.getResponseHeader( "etag" );
+ if ( modified ) {
+ jQuery.etag[ cacheURL ] = modified;
+ }
+ }
+
+ // if no content
+ if ( status === 204 || s.type === "HEAD" ) {
+ statusText = "nocontent";
+
+ // if not modified
+ } else if ( status === 304 ) {
+ statusText = "notmodified";
+
+ // If we have data, let's convert it
+ } else {
+ statusText = response.state;
+ success = response.data;
+ error = response.error;
+ isSuccess = !error;
+ }
+ } else {
+
+ // We extract error from statusText
+ // then normalize statusText and status for non-aborts
+ error = statusText;
+ if ( status || !statusText ) {
+ statusText = "error";
+ if ( status < 0 ) {
+ status = 0;
+ }
+ }
+ }
+
+ // Set data for the fake xhr object
+ jqXHR.status = status;
+ jqXHR.statusText = ( nativeStatusText || statusText ) + "";
+
+ // Success/Error
+ if ( isSuccess ) {
+ deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
+ } else {
+ deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
+ }
+
+ // Status-dependent callbacks
+ jqXHR.statusCode( statusCode );
+ statusCode = undefined;
+
+ if ( fireGlobals ) {
+ globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError",
+ [ jqXHR, s, isSuccess ? success : error ] );
+ }
+
+ // Complete
+ completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );
+
+ if ( fireGlobals ) {
+ globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
+
+ // Handle the global AJAX counter
+ if ( !( --jQuery.active ) ) {
+ jQuery.event.trigger( "ajaxStop" );
+ }
+ }
+ }
+
+ return jqXHR;
+ },
+
+ getJSON: function( url, data, callback ) {
+ return jQuery.get( url, data, callback, "json" );
+ },
+
+ getScript: function( url, callback ) {
+ return jQuery.get( url, undefined, callback, "script" );
+ }
+} );
+
+jQuery.each( [ "get", "post" ], function( i, method ) {
+ jQuery[ method ] = function( url, data, callback, type ) {
+
+ // shift arguments if data argument was omitted
+ if ( jQuery.isFunction( data ) ) {
+ type = type || callback;
+ callback = data;
+ data = undefined;
+ }
+
+ // The url can be an options object (which then must have .url)
+ return jQuery.ajax( jQuery.extend( {
+ url: url,
+ type: method,
+ dataType: type,
+ data: data,
+ success: callback
+ }, jQuery.isPlainObject( url ) && url ) );
+ };
+} );
+
+
+jQuery._evalUrl = function( url ) {
+ return jQuery.ajax( {
+ url: url,
+
+ // Make this explicit, since user can override this through ajaxSetup (#11264)
+ type: "GET",
+ dataType: "script",
+ cache: true,
+ async: false,
+ global: false,
+ "throws": true
+ } );
+};
+
+
+jQuery.fn.extend( {
+ wrapAll: function( html ) {
+ if ( jQuery.isFunction( html ) ) {
+ return this.each( function( i ) {
+ jQuery( this ).wrapAll( html.call( this, i ) );
+ } );
+ }
+
+ if ( this[ 0 ] ) {
+
+ // The elements to wrap the target around
+ var wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );
+
+ if ( this[ 0 ].parentNode ) {
+ wrap.insertBefore( this[ 0 ] );
+ }
+
+ wrap.map( function() {
+ var elem = this;
+
+ while ( elem.firstChild && elem.firstChild.nodeType === 1 ) {
+ elem = elem.firstChild;
+ }
+
+ return elem;
+ } ).append( this );
+ }
+
+ return this;
+ },
+
+ wrapInner: function( html ) {
+ if ( jQuery.isFunction( html ) ) {
+ return this.each( function( i ) {
+ jQuery( this ).wrapInner( html.call( this, i ) );
+ } );
+ }
+
+ return this.each( function() {
+ var self = jQuery( this ),
+ contents = self.contents();
+
+ if ( contents.length ) {
+ contents.wrapAll( html );
+
+ } else {
+ self.append( html );
+ }
+ } );
+ },
+
+ wrap: function( html ) {
+ var isFunction = jQuery.isFunction( html );
+
+ return this.each( function( i ) {
+ jQuery( this ).wrapAll( isFunction ? html.call( this, i ) : html );
+ } );
+ },
+
+ unwrap: function() {
+ return this.parent().each( function() {
+ if ( !jQuery.nodeName( this, "body" ) ) {
+ jQuery( this ).replaceWith( this.childNodes );
+ }
+ } ).end();
+ }
+} );
+
+
+function getDisplay( elem ) {
+ return elem.style && elem.style.display || jQuery.css( elem, "display" );
+}
+
+function filterHidden( elem ) {
+
+ // Disconnected elements are considered hidden
+ if ( !jQuery.contains( elem.ownerDocument || document, elem ) ) {
+ return true;
+ }
+ while ( elem && elem.nodeType === 1 ) {
+ if ( getDisplay( elem ) === "none" || elem.type === "hidden" ) {
+ return true;
+ }
+ elem = elem.parentNode;
+ }
+ return false;
+}
+
+jQuery.expr.filters.hidden = function( elem ) {
+
+ // Support: Opera <= 12.12
+ // Opera reports offsetWidths and offsetHeights less than zero on some elements
+ return support.reliableHiddenOffsets() ?
+ ( elem.offsetWidth <= 0 && elem.offsetHeight <= 0 &&
+ !elem.getClientRects().length ) :
+ filterHidden( elem );
+};
+
+jQuery.expr.filters.visible = function( elem ) {
+ return !jQuery.expr.filters.hidden( elem );
+};
+
+
+
+
+var r20 = /%20/g,
+ rbracket = /\[\]$/,
+ rCRLF = /\r?\n/g,
+ rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
+ rsubmittable = /^(?:input|select|textarea|keygen)/i;
+
+function buildParams( prefix, obj, traditional, add ) {
+ var name;
+
+ if ( jQuery.isArray( obj ) ) {
+
+ // Serialize array item.
+ jQuery.each( obj, function( i, v ) {
+ if ( traditional || rbracket.test( prefix ) ) {
+
+ // Treat each array item as a scalar.
+ add( prefix, v );
+
+ } else {
+
+ // Item is non-scalar (array or object), encode its numeric index.
+ buildParams(
+ prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]",
+ v,
+ traditional,
+ add
+ );
+ }
+ } );
+
+ } else if ( !traditional && jQuery.type( obj ) === "object" ) {
+
+ // Serialize object item.
+ for ( name in obj ) {
+ buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
+ }
+
+ } else {
+
+ // Serialize scalar item.
+ add( prefix, obj );
+ }
+}
+
+// Serialize an array of form elements or a set of
+// key/values into a query string
+jQuery.param = function( a, traditional ) {
+ var prefix,
+ s = [],
+ add = function( key, value ) {
+
+ // If value is a function, invoke it and return its value
+ value = jQuery.isFunction( value ) ? value() : ( value == null ? "" : value );
+ s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value );
+ };
+
+ // Set traditional to true for jQuery <= 1.3.2 behavior.
+ if ( traditional === undefined ) {
+ traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;
+ }
+
+ // If an array was passed in, assume that it is an array of form elements.
+ if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
+
+ // Serialize the form elements
+ jQuery.each( a, function() {
+ add( this.name, this.value );
+ } );
+
+ } else {
+
+ // If traditional, encode the "old" way (the way 1.3.2 or older
+ // did it), otherwise encode params recursively.
+ for ( prefix in a ) {
+ buildParams( prefix, a[ prefix ], traditional, add );
+ }
+ }
+
+ // Return the resulting serialization
+ return s.join( "&" ).replace( r20, "+" );
+};
+
+jQuery.fn.extend( {
+ serialize: function() {
+ return jQuery.param( this.serializeArray() );
+ },
+ serializeArray: function() {
+ return this.map( function() {
+
+ // Can add propHook for "elements" to filter or add form elements
+ var elements = jQuery.prop( this, "elements" );
+ return elements ? jQuery.makeArray( elements ) : this;
+ } )
+ .filter( function() {
+ var type = this.type;
+
+ // Use .is(":disabled") so that fieldset[disabled] works
+ return this.name && !jQuery( this ).is( ":disabled" ) &&
+ rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
+ ( this.checked || !rcheckableType.test( type ) );
+ } )
+ .map( function( i, elem ) {
+ var val = jQuery( this ).val();
+
+ return val == null ?
+ null :
+ jQuery.isArray( val ) ?
+ jQuery.map( val, function( val ) {
+ return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+ } ) :
+ { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+ } ).get();
+ }
+} );
+
+
+// Create the request object
+// (This is still attached to ajaxSettings for backward compatibility)
+jQuery.ajaxSettings.xhr = window.ActiveXObject !== undefined ?
+
+ // Support: IE6-IE8
+ function() {
+
+ // XHR cannot access local files, always use ActiveX for that case
+ if ( this.isLocal ) {
+ return createActiveXHR();
+ }
+
+ // Support: IE 9-11
+ // IE seems to error on cross-domain PATCH requests when ActiveX XHR
+ // is used. In IE 9+ always use the native XHR.
+ // Note: this condition won't catch Edge as it doesn't define
+ // document.documentMode but it also doesn't support ActiveX so it won't
+ // reach this code.
+ if ( document.documentMode > 8 ) {
+ return createStandardXHR();
+ }
+
+ // Support: IE<9
+ // oldIE XHR does not support non-RFC2616 methods (#13240)
+ // See http://msdn.microsoft.com/en-us/library/ie/ms536648(v=vs.85).aspx
+ // and http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9
+ // Although this check for six methods instead of eight
+ // since IE also does not support "trace" and "connect"
+ return /^(get|post|head|put|delete|options)$/i.test( this.type ) &&
+ createStandardXHR() || createActiveXHR();
+ } :
+
+ // For all other browsers, use the standard XMLHttpRequest object
+ createStandardXHR;
+
+var xhrId = 0,
+ xhrCallbacks = {},
+ xhrSupported = jQuery.ajaxSettings.xhr();
+
+// Support: IE<10
+// Open requests must be manually aborted on unload (#5280)
+// See https://support.microsoft.com/kb/2856746 for more info
+if ( window.attachEvent ) {
+ window.attachEvent( "onunload", function() {
+ for ( var key in xhrCallbacks ) {
+ xhrCallbacks[ key ]( undefined, true );
+ }
+ } );
+}
+
+// Determine support properties
+support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );
+xhrSupported = support.ajax = !!xhrSupported;
+
+// Create transport if the browser can provide an xhr
+if ( xhrSupported ) {
+
+ jQuery.ajaxTransport( function( options ) {
+
+ // Cross domain only allowed if supported through XMLHttpRequest
+ if ( !options.crossDomain || support.cors ) {
+
+ var callback;
+
+ return {
+ send: function( headers, complete ) {
+ var i,
+ xhr = options.xhr(),
+ id = ++xhrId;
+
+ // Open the socket
+ xhr.open(
+ options.type,
+ options.url,
+ options.async,
+ options.username,
+ options.password
+ );
+
+ // Apply custom fields if provided
+ if ( options.xhrFields ) {
+ for ( i in options.xhrFields ) {
+ xhr[ i ] = options.xhrFields[ i ];
+ }
+ }
+
+ // Override mime type if needed
+ if ( options.mimeType && xhr.overrideMimeType ) {
+ xhr.overrideMimeType( options.mimeType );
+ }
+
+ // X-Requested-With header
+ // For cross-domain requests, seeing as conditions for a preflight are
+ // akin to a jigsaw puzzle, we simply never set it to be sure.
+ // (it can always be set on a per-request basis or even using ajaxSetup)
+ // For same-domain requests, won't change header if already provided.
+ if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) {
+ headers[ "X-Requested-With" ] = "XMLHttpRequest";
+ }
+
+ // Set headers
+ for ( i in headers ) {
+
+ // Support: IE<9
+ // IE's ActiveXObject throws a 'Type Mismatch' exception when setting
+ // request header to a null-value.
+ //
+ // To keep consistent with other XHR implementations, cast the value
+ // to string and ignore `undefined`.
+ if ( headers[ i ] !== undefined ) {
+ xhr.setRequestHeader( i, headers[ i ] + "" );
+ }
+ }
+
+ // Do send the request
+ // This may raise an exception which is actually
+ // handled in jQuery.ajax (so no try/catch here)
+ xhr.send( ( options.hasContent && options.data ) || null );
+
+ // Listener
+ callback = function( _, isAbort ) {
+ var status, statusText, responses;
+
+ // Was never called and is aborted or complete
+ if ( callback && ( isAbort || xhr.readyState === 4 ) ) {
+
+ // Clean up
+ delete xhrCallbacks[ id ];
+ callback = undefined;
+ xhr.onreadystatechange = jQuery.noop;
+
+ // Abort manually if needed
+ if ( isAbort ) {
+ if ( xhr.readyState !== 4 ) {
+ xhr.abort();
+ }
+ } else {
+ responses = {};
+ status = xhr.status;
+
+ // Support: IE<10
+ // Accessing binary-data responseText throws an exception
+ // (#11426)
+ if ( typeof xhr.responseText === "string" ) {
+ responses.text = xhr.responseText;
+ }
+
+ // Firefox throws an exception when accessing
+ // statusText for faulty cross-domain requests
+ try {
+ statusText = xhr.statusText;
+ } catch ( e ) {
+
+ // We normalize with Webkit giving an empty statusText
+ statusText = "";
+ }
+
+ // Filter status for non standard behaviors
+
+ // If the request is local and we have data: assume a success
+ // (success with no data won't get notified, that's the best we
+ // can do given current implementations)
+ if ( !status && options.isLocal && !options.crossDomain ) {
+ status = responses.text ? 200 : 404;
+
+ // IE - #1450: sometimes returns 1223 when it should be 204
+ } else if ( status === 1223 ) {
+ status = 204;
+ }
+ }
+ }
+
+ // Call complete if needed
+ if ( responses ) {
+ complete( status, statusText, responses, xhr.getAllResponseHeaders() );
+ }
+ };
+
+ // Do send the request
+ // `xhr.send` may raise an exception, but it will be
+ // handled in jQuery.ajax (so no try/catch here)
+ if ( !options.async ) {
+
+ // If we're in sync mode we fire the callback
+ callback();
+ } else if ( xhr.readyState === 4 ) {
+
+ // (IE6 & IE7) if it's in cache and has been
+ // retrieved directly we need to fire the callback
+ window.setTimeout( callback );
+ } else {
+
+ // Register the callback, but delay it in case `xhr.send` throws
+ // Add to the list of active xhr callbacks
+ xhr.onreadystatechange = xhrCallbacks[ id ] = callback;
+ }
+ },
+
+ abort: function() {
+ if ( callback ) {
+ callback( undefined, true );
+ }
+ }
+ };
+ }
+ } );
+}
+
+// Functions to create xhrs
+function createStandardXHR() {
+ try {
+ return new window.XMLHttpRequest();
+ } catch ( e ) {}
+}
+
+function createActiveXHR() {
+ try {
+ return new window.ActiveXObject( "Microsoft.XMLHTTP" );
+ } catch ( e ) {}
+}
+
+
+
+
+// Install script dataType
+jQuery.ajaxSetup( {
+ accepts: {
+ script: "text/javascript, application/javascript, " +
+ "application/ecmascript, application/x-ecmascript"
+ },
+ contents: {
+ script: /\b(?:java|ecma)script\b/
+ },
+ converters: {
+ "text script": function( text ) {
+ jQuery.globalEval( text );
+ return text;
+ }
+ }
+} );
+
+// Handle cache's special case and global
+jQuery.ajaxPrefilter( "script", function( s ) {
+ if ( s.cache === undefined ) {
+ s.cache = false;
+ }
+ if ( s.crossDomain ) {
+ s.type = "GET";
+ s.global = false;
+ }
+} );
+
+// Bind script tag hack transport
+jQuery.ajaxTransport( "script", function( s ) {
+
+ // This transport only deals with cross domain requests
+ if ( s.crossDomain ) {
+
+ var script,
+ head = document.head || jQuery( "head" )[ 0 ] || document.documentElement;
+
+ return {
+
+ send: function( _, callback ) {
+
+ script = document.createElement( "script" );
+
+ script.async = true;
+
+ if ( s.scriptCharset ) {
+ script.charset = s.scriptCharset;
+ }
+
+ script.src = s.url;
+
+ // Attach handlers for all browsers
+ script.onload = script.onreadystatechange = function( _, isAbort ) {
+
+ if ( isAbort || !script.readyState || /loaded|complete/.test( script.readyState ) ) {
+
+ // Handle memory leak in IE
+ script.onload = script.onreadystatechange = null;
+
+ // Remove the script
+ if ( script.parentNode ) {
+ script.parentNode.removeChild( script );
+ }
+
+ // Dereference the script
+ script = null;
+
+ // Callback if not abort
+ if ( !isAbort ) {
+ callback( 200, "success" );
+ }
+ }
+ };
+
+ // Circumvent IE6 bugs with base elements (#2709 and #4378) by prepending
+ // Use native DOM manipulation to avoid our domManip AJAX trickery
+ head.insertBefore( script, head.firstChild );
+ },
+
+ abort: function() {
+ if ( script ) {
+ script.onload( undefined, true );
+ }
+ }
+ };
+ }
+} );
+
+
+
+
+var oldCallbacks = [],
+ rjsonp = /(=)\?(?=&|$)|\?\?/;
+
+// Default jsonp settings
+jQuery.ajaxSetup( {
+ jsonp: "callback",
+ jsonpCallback: function() {
+ var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) );
+ this[ callback ] = true;
+ return callback;
+ }
+} );
+
+// Detect, normalize options and install callbacks for jsonp requests
+jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
+
+ var callbackName, overwritten, responseContainer,
+ jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?
+ "url" :
+ typeof s.data === "string" &&
+ ( s.contentType || "" )
+ .indexOf( "application/x-www-form-urlencoded" ) === 0 &&
+ rjsonp.test( s.data ) && "data"
+ );
+
+ // Handle iff the expected data type is "jsonp" or we have a parameter to set
+ if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) {
+
+ // Get callback name, remembering preexisting value associated with it
+ callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ?
+ s.jsonpCallback() :
+ s.jsonpCallback;
+
+ // Insert callback into url or form data
+ if ( jsonProp ) {
+ s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName );
+ } else if ( s.jsonp !== false ) {
+ s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName;
+ }
+
+ // Use data converter to retrieve json after script execution
+ s.converters[ "script json" ] = function() {
+ if ( !responseContainer ) {
+ jQuery.error( callbackName + " was not called" );
+ }
+ return responseContainer[ 0 ];
+ };
+
+ // force json dataType
+ s.dataTypes[ 0 ] = "json";
+
+ // Install callback
+ overwritten = window[ callbackName ];
+ window[ callbackName ] = function() {
+ responseContainer = arguments;
+ };
+
+ // Clean-up function (fires after converters)
+ jqXHR.always( function() {
+
+ // If previous value didn't exist - remove it
+ if ( overwritten === undefined ) {
+ jQuery( window ).removeProp( callbackName );
+
+ // Otherwise restore preexisting value
+ } else {
+ window[ callbackName ] = overwritten;
+ }
+
+ // Save back as free
+ if ( s[ callbackName ] ) {
+
+ // make sure that re-using the options doesn't screw things around
+ s.jsonpCallback = originalSettings.jsonpCallback;
+
+ // save the callback name for future use
+ oldCallbacks.push( callbackName );
+ }
+
+ // Call if it was a function and we have a response
+ if ( responseContainer && jQuery.isFunction( overwritten ) ) {
+ overwritten( responseContainer[ 0 ] );
+ }
+
+ responseContainer = overwritten = undefined;
+ } );
+
+ // Delegate to script
+ return "script";
+ }
+} );
+
+
+
+
+// data: string of html
+// context (optional): If specified, the fragment will be created in this context,
+// defaults to document
+// keepScripts (optional): If true, will include scripts passed in the html string
+jQuery.parseHTML = function( data, context, keepScripts ) {
+ if ( !data || typeof data !== "string" ) {
+ return null;
+ }
+ if ( typeof context === "boolean" ) {
+ keepScripts = context;
+ context = false;
+ }
+ context = context || document;
+
+ var parsed = rsingleTag.exec( data ),
+ scripts = !keepScripts && [];
+
+ // Single tag
+ if ( parsed ) {
+ return [ context.createElement( parsed[ 1 ] ) ];
+ }
+
+ parsed = buildFragment( [ data ], context, scripts );
+
+ if ( scripts && scripts.length ) {
+ jQuery( scripts ).remove();
+ }
+
+ return jQuery.merge( [], parsed.childNodes );
+};
+
+
+// Keep a copy of the old load method
+var _load = jQuery.fn.load;
+
+/**
+ * Load a url into a page
+ */
+jQuery.fn.load = function( url, params, callback ) {
+ if ( typeof url !== "string" && _load ) {
+ return _load.apply( this, arguments );
+ }
+
+ var selector, type, response,
+ self = this,
+ off = url.indexOf( " " );
+
+ if ( off > -1 ) {
+ selector = jQuery.trim( url.slice( off, url.length ) );
+ url = url.slice( 0, off );
+ }
+
+ // If it's a function
+ if ( jQuery.isFunction( params ) ) {
+
+ // We assume that it's the callback
+ callback = params;
+ params = undefined;
+
+ // Otherwise, build a param string
+ } else if ( params && typeof params === "object" ) {
+ type = "POST";
+ }
+
+ // If we have elements to modify, make the request
+ if ( self.length > 0 ) {
+ jQuery.ajax( {
+ url: url,
+
+ // If "type" variable is undefined, then "GET" method will be used.
+ // Make value of this field explicit since
+ // user can override it through ajaxSetup method
+ type: type || "GET",
+ dataType: "html",
+ data: params
+ } ).done( function( responseText ) {
+
+ // Save response for use in complete callback
+ response = arguments;
+
+ self.html( selector ?
+
+ // If a selector was specified, locate the right elements in a dummy div
+ // Exclude scripts to avoid IE 'Permission Denied' errors
+ jQuery( "<div>" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :
+
+ // Otherwise use the full result
+ responseText );
+
+ // If the request succeeds, this function gets "data", "status", "jqXHR"
+ // but they are ignored because response was set above.
+ // If it fails, this function gets "jqXHR", "status", "error"
+ } ).always( callback && function( jqXHR, status ) {
+ self.each( function() {
+ callback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );
+ } );
+ } );
+ }
+
+ return this;
+};
+
+
+
+
+// Attach a bunch of functions for handling common AJAX events
+jQuery.each( [
+ "ajaxStart",
+ "ajaxStop",
+ "ajaxComplete",
+ "ajaxError",
+ "ajaxSuccess",
+ "ajaxSend"
+], function( i, type ) {
+ jQuery.fn[ type ] = function( fn ) {
+ return this.on( type, fn );
+ };
+} );
+
+
+
+
+jQuery.expr.filters.animated = function( elem ) {
+ return jQuery.grep( jQuery.timers, function( fn ) {
+ return elem === fn.elem;
+ } ).length;
+};
+
+
+
+
+
+/**
+ * Gets a window from an element
+ */
+function getWindow( elem ) {
+ return jQuery.isWindow( elem ) ?
+ elem :
+ elem.nodeType === 9 ?
+ elem.defaultView || elem.parentWindow :
+ false;
+}
+
+jQuery.offset = {
+ setOffset: function( elem, options, i ) {
+ var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,
+ position = jQuery.css( elem, "position" ),
+ curElem = jQuery( elem ),
+ props = {};
+
+ // set position first, in-case top/left are set even on static elem
+ if ( position === "static" ) {
+ elem.style.position = "relative";
+ }
+
+ curOffset = curElem.offset();
+ curCSSTop = jQuery.css( elem, "top" );
+ curCSSLeft = jQuery.css( elem, "left" );
+ calculatePosition = ( position === "absolute" || position === "fixed" ) &&
+ jQuery.inArray( "auto", [ curCSSTop, curCSSLeft ] ) > -1;
+
+ // need to be able to calculate position if either top or left
+ // is auto and position is either absolute or fixed
+ if ( calculatePosition ) {
+ curPosition = curElem.position();
+ curTop = curPosition.top;
+ curLeft = curPosition.left;
+ } else {
+ curTop = parseFloat( curCSSTop ) || 0;
+ curLeft = parseFloat( curCSSLeft ) || 0;
+ }
+
+ if ( jQuery.isFunction( options ) ) {
+
+ // Use jQuery.extend here to allow modification of coordinates argument (gh-1848)
+ options = options.call( elem, i, jQuery.extend( {}, curOffset ) );
+ }
+
+ if ( options.top != null ) {
+ props.top = ( options.top - curOffset.top ) + curTop;
+ }
+ if ( options.left != null ) {
+ props.left = ( options.left - curOffset.left ) + curLeft;
+ }
+
+ if ( "using" in options ) {
+ options.using.call( elem, props );
+ } else {
+ curElem.css( props );
+ }
+ }
+};
+
+jQuery.fn.extend( {
+ offset: function( options ) {
+ if ( arguments.length ) {
+ return options === undefined ?
+ this :
+ this.each( function( i ) {
+ jQuery.offset.setOffset( this, options, i );
+ } );
+ }
+
+ var docElem, win,
+ box = { top: 0, left: 0 },
+ elem = this[ 0 ],
+ doc = elem && elem.ownerDocument;
+
+ if ( !doc ) {
+ return;
+ }
+
+ docElem = doc.documentElement;
+
+ // Make sure it's not a disconnected DOM node
+ if ( !jQuery.contains( docElem, elem ) ) {
+ return box;
+ }
+
+ // If we don't have gBCR, just use 0,0 rather than error
+ // BlackBerry 5, iOS 3 (original iPhone)
+ if ( typeof elem.getBoundingClientRect !== "undefined" ) {
+ box = elem.getBoundingClientRect();
+ }
+ win = getWindow( doc );
+ return {
+ top: box.top + ( win.pageYOffset || docElem.scrollTop ) - ( docElem.clientTop || 0 ),
+ left: box.left + ( win.pageXOffset || docElem.scrollLeft ) - ( docElem.clientLeft || 0 )
+ };
+ },
+
+ position: function() {
+ if ( !this[ 0 ] ) {
+ return;
+ }
+
+ var offsetParent, offset,
+ parentOffset = { top: 0, left: 0 },
+ elem = this[ 0 ];
+
+ // Fixed elements are offset from window (parentOffset = {top:0, left: 0},
+ // because it is its only offset parent
+ if ( jQuery.css( elem, "position" ) === "fixed" ) {
+
+ // we assume that getBoundingClientRect is available when computed position is fixed
+ offset = elem.getBoundingClientRect();
+ } else {
+
+ // Get *real* offsetParent
+ offsetParent = this.offsetParent();
+
+ // Get correct offsets
+ offset = this.offset();
+ if ( !jQuery.nodeName( offsetParent[ 0 ], "html" ) ) {
+ parentOffset = offsetParent.offset();
+ }
+
+ // Add offsetParent borders
+ parentOffset.top += jQuery.css( offsetParent[ 0 ], "borderTopWidth", true );
+ parentOffset.left += jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true );
+ }
+
+ // Subtract parent offsets and element margins
+ // note: when an element has margin: auto the offsetLeft and marginLeft
+ // are the same in Safari causing offset.left to incorrectly be 0
+ return {
+ top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),
+ left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true )
+ };
+ },
+
+ offsetParent: function() {
+ return this.map( function() {
+ var offsetParent = this.offsetParent;
+
+ while ( offsetParent && ( !jQuery.nodeName( offsetParent, "html" ) &&
+ jQuery.css( offsetParent, "position" ) === "static" ) ) {
+ offsetParent = offsetParent.offsetParent;
+ }
+ return offsetParent || documentElement;
+ } );
+ }
+} );
+
+// Create scrollLeft and scrollTop methods
+jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) {
+ var top = /Y/.test( prop );
+
+ jQuery.fn[ method ] = function( val ) {
+ return access( this, function( elem, method, val ) {
+ var win = getWindow( elem );
+
+ if ( val === undefined ) {
+ return win ? ( prop in win ) ? win[ prop ] :
+ win.document.documentElement[ method ] :
+ elem[ method ];
+ }
+
+ if ( win ) {
+ win.scrollTo(
+ !top ? val : jQuery( win ).scrollLeft(),
+ top ? val : jQuery( win ).scrollTop()
+ );
+
+ } else {
+ elem[ method ] = val;
+ }
+ }, method, val, arguments.length, null );
+ };
+} );
+
+// Support: Safari<7-8+, Chrome<37-44+
+// Add the top/left cssHooks using jQuery.fn.position
+// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
+// getComputedStyle returns percent when specified for top/left/bottom/right
+// rather than make the css module depend on the offset module, we just check for it here
+jQuery.each( [ "top", "left" ], function( i, prop ) {
+ jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,
+ function( elem, computed ) {
+ if ( computed ) {
+ computed = curCSS( elem, prop );
+
+ // if curCSS returns percentage, fallback to offset
+ return rnumnonpx.test( computed ) ?
+ jQuery( elem ).position()[ prop ] + "px" :
+ computed;
+ }
+ }
+ );
+} );
+
+
+// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
+jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
+ jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name },
+ function( defaultExtra, funcName ) {
+
+ // margin is only for outerHeight, outerWidth
+ jQuery.fn[ funcName ] = function( margin, value ) {
+ var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
+ extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );
+
+ return access( this, function( elem, type, value ) {
+ var doc;
+
+ if ( jQuery.isWindow( elem ) ) {
+
+ // As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there
+ // isn't a whole lot we can do. See pull request at this URL for discussion:
+ // https://github.com/jquery/jquery/pull/764
+ return elem.document.documentElement[ "client" + name ];
+ }
+
+ // Get document width or height
+ if ( elem.nodeType === 9 ) {
+ doc = elem.documentElement;
+
+ // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],
+ // whichever is greatest
+ // unfortunately, this causes bug #3838 in IE6/8 only,
+ // but there is currently no good, small way to fix it.
+ return Math.max(
+ elem.body[ "scroll" + name ], doc[ "scroll" + name ],
+ elem.body[ "offset" + name ], doc[ "offset" + name ],
+ doc[ "client" + name ]
+ );
+ }
+
+ return value === undefined ?
+
+ // Get width or height on the element, requesting but not forcing parseFloat
+ jQuery.css( elem, type, extra ) :
+
+ // Set width or height on the element
+ jQuery.style( elem, type, value, extra );
+ }, type, chainable ? margin : undefined, chainable, null );
+ };
+ } );
+} );
+
+
+jQuery.fn.extend( {
+
+ bind: function( types, data, fn ) {
+ return this.on( types, null, data, fn );
+ },
+ unbind: function( types, fn ) {
+ return this.off( types, null, fn );
+ },
+
+ delegate: function( selector, types, data, fn ) {
+ return this.on( types, selector, data, fn );
+ },
+ undelegate: function( selector, types, fn ) {
+
+ // ( namespace ) or ( selector, types [, fn] )
+ return arguments.length === 1 ?
+ this.off( selector, "**" ) :
+ this.off( types, selector || "**", fn );
+ }
+} );
+
+// The number of elements contained in the matched element set
+jQuery.fn.size = function() {
+ return this.length;
+};
+
+jQuery.fn.andSelf = jQuery.fn.addBack;
+
+
+
+
+// Register as a named AMD module, since jQuery can be concatenated with other
+// files that may use define, but not via a proper concatenation script that
+// understands anonymous AMD modules. A named AMD is safest and most robust
+// way to register. Lowercase jquery is used because AMD module names are
+// derived from file names, and jQuery is normally delivered in a lowercase
+// file name. Do this after creating the global so that if an AMD module wants
+// to call noConflict to hide this version of jQuery, it will work.
+
+// Note that for maximum portability, libraries that are not jQuery should
+// declare themselves as anonymous modules, and avoid setting a global if an
+// AMD loader is present. jQuery is a special case. For more information, see
+// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon
+
+if ( typeof define === "function" && define.amd ) {
+ define( "jquery", [], function() {
+ return jQuery;
+ } );
+}
+
+
+
+var
+
+ // Map over jQuery in case of overwrite
+ _jQuery = window.jQuery,
+
+ // Map over the $ in case of overwrite
+ _$ = window.$;
+
+jQuery.noConflict = function( deep ) {
+ if ( window.$ === jQuery ) {
+ window.$ = _$;
+ }
+
+ if ( deep && window.jQuery === jQuery ) {
+ window.jQuery = _jQuery;
+ }
+
+ return jQuery;
+};
+
+// Expose jQuery and $ identifiers, even in
+// AMD (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
+// and CommonJS for browser emulators (#13566)
+if ( !noGlobal ) {
+ window.jQuery = window.$ = jQuery;
+}
+
+return jQuery;
+}));
diff --git a/javascript/vendor/jquery-ui-1.12.1.custom/images/ui-icons_444444_256x240.png b/javascript/vendor/jquery-ui-1.12.1.custom/images/ui-icons_444444_256x240.png
new file mode 100644
index 0000000..19f664d
--- /dev/null
+++ b/javascript/vendor/jquery-ui-1.12.1.custom/images/ui-icons_444444_256x240.png
Binary files differ
diff --git a/javascript/vendor/jquery-ui-1.12.1.custom/images/ui-icons_555555_256x240.png b/javascript/vendor/jquery-ui-1.12.1.custom/images/ui-icons_555555_256x240.png
new file mode 100644
index 0000000..e965f6d
--- /dev/null
+++ b/javascript/vendor/jquery-ui-1.12.1.custom/images/ui-icons_555555_256x240.png
Binary files differ
diff --git a/javascript/vendor/jquery-ui-1.12.1.custom/images/ui-icons_777620_256x240.png b/javascript/vendor/jquery-ui-1.12.1.custom/images/ui-icons_777620_256x240.png
new file mode 100644
index 0000000..9785948
--- /dev/null
+++ b/javascript/vendor/jquery-ui-1.12.1.custom/images/ui-icons_777620_256x240.png
Binary files differ
diff --git a/javascript/vendor/jquery-ui-1.12.1.custom/images/ui-icons_777777_256x240.png b/javascript/vendor/jquery-ui-1.12.1.custom/images/ui-icons_777777_256x240.png
new file mode 100644
index 0000000..323c456
--- /dev/null
+++ b/javascript/vendor/jquery-ui-1.12.1.custom/images/ui-icons_777777_256x240.png
Binary files differ
diff --git a/javascript/vendor/jquery-ui-1.12.1.custom/images/ui-icons_cc0000_256x240.png b/javascript/vendor/jquery-ui-1.12.1.custom/images/ui-icons_cc0000_256x240.png
new file mode 100644
index 0000000..45ac778
--- /dev/null
+++ b/javascript/vendor/jquery-ui-1.12.1.custom/images/ui-icons_cc0000_256x240.png
Binary files differ
diff --git a/javascript/vendor/jquery-ui-1.12.1.custom/images/ui-icons_ffffff_256x240.png b/javascript/vendor/jquery-ui-1.12.1.custom/images/ui-icons_ffffff_256x240.png
new file mode 100644
index 0000000..fe41d2d
--- /dev/null
+++ b/javascript/vendor/jquery-ui-1.12.1.custom/images/ui-icons_ffffff_256x240.png
Binary files differ
diff --git a/javascript/vendor/jquery-ui-1.12.1.custom/index.html b/javascript/vendor/jquery-ui-1.12.1.custom/index.html
new file mode 100644
index 0000000..cb3786f
--- /dev/null
+++ b/javascript/vendor/jquery-ui-1.12.1.custom/index.html
@@ -0,0 +1,325 @@
+<!doctype html>
+<html lang="us">
+<head>
+ <meta charset="utf-8">
+ <title>jQuery UI Example Page</title>
+ <link href="jquery-ui.css" rel="stylesheet">
+ <style>
+ body{
+ font-family: "Trebuchet MS", sans-serif;
+ margin: 50px;
+ }
+ .demoHeaders {
+ margin-top: 2em;
+ }
+ #dialog-link {
+ padding: .4em 1em .4em 20px;
+ text-decoration: none;
+ position: relative;
+ }
+ #dialog-link span.ui-icon {
+ margin: 0 5px 0 0;
+ position: absolute;
+ left: .2em;
+ top: 50%;
+ margin-top: -8px;
+ }
+ #icons {
+ margin: 0;
+ padding: 0;
+ }
+ #icons li {
+ margin: 2px;
+ position: relative;
+ padding: 4px 0;
+ cursor: pointer;
+ float: left;
+ list-style: none;
+ }
+ #icons span.ui-icon {
+ float: left;
+ margin: 0 4px;
+ }
+ .fakewindowcontain .ui-widget-overlay {
+ position: absolute;
+ }
+ select {
+ width: 200px;
+ }
+ </style>
+</head>
+<body>
+
+<h1>Welcome to jQuery UI!</h1>
+
+<div class="ui-widget">
+ <p>This page demonstrates the widgets and theme you selected in Download Builder. Please make sure you are using them with a compatible jQuery version.</p>
+</div>
+
+<h1>YOUR COMPONENTS:</h1>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h2 class="demoHeaders">Framework Icons (content color preview)</h2>
+<ul id="icons" class="ui-widget ui-helper-clearfix">
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-caret-1-n"><span class="ui-icon ui-icon-caret-1-n"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-caret-1-ne"><span class="ui-icon ui-icon-caret-1-ne"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-caret-1-e"><span class="ui-icon ui-icon-caret-1-e"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-caret-1-se"><span class="ui-icon ui-icon-caret-1-se"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-caret-1-s"><span class="ui-icon ui-icon-caret-1-s"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-caret-1-sw"><span class="ui-icon ui-icon-caret-1-sw"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-caret-1-w"><span class="ui-icon ui-icon-caret-1-w"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-caret-1-nw"><span class="ui-icon ui-icon-caret-1-nw"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-caret-2-n-s"><span class="ui-icon ui-icon-caret-2-n-s"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-caret-2-e-w"><span class="ui-icon ui-icon-caret-2-e-w"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-triangle-1-n"><span class="ui-icon ui-icon-triangle-1-n"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-triangle-1-ne"><span class="ui-icon ui-icon-triangle-1-ne"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-triangle-1-e"><span class="ui-icon ui-icon-triangle-1-e"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-triangle-1-se"><span class="ui-icon ui-icon-triangle-1-se"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-triangle-1-s"><span class="ui-icon ui-icon-triangle-1-s"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-triangle-1-sw"><span class="ui-icon ui-icon-triangle-1-sw"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-triangle-1-w"><span class="ui-icon ui-icon-triangle-1-w"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-triangle-1-nw"><span class="ui-icon ui-icon-triangle-1-nw"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-triangle-2-n-s"><span class="ui-icon ui-icon-triangle-2-n-s"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-triangle-2-e-w"><span class="ui-icon ui-icon-triangle-2-e-w"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-1-n"><span class="ui-icon ui-icon-arrow-1-n"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-1-ne"><span class="ui-icon ui-icon-arrow-1-ne"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-1-e"><span class="ui-icon ui-icon-arrow-1-e"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-1-se"><span class="ui-icon ui-icon-arrow-1-se"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-1-s"><span class="ui-icon ui-icon-arrow-1-s"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-1-sw"><span class="ui-icon ui-icon-arrow-1-sw"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-1-w"><span class="ui-icon ui-icon-arrow-1-w"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-1-nw"><span class="ui-icon ui-icon-arrow-1-nw"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-2-n-s"><span class="ui-icon ui-icon-arrow-2-n-s"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-2-ne-sw"><span class="ui-icon ui-icon-arrow-2-ne-sw"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-2-e-w"><span class="ui-icon ui-icon-arrow-2-e-w"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-2-se-nw"><span class="ui-icon ui-icon-arrow-2-se-nw"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowstop-1-n"><span class="ui-icon ui-icon-arrowstop-1-n"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowstop-1-e"><span class="ui-icon ui-icon-arrowstop-1-e"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowstop-1-s"><span class="ui-icon ui-icon-arrowstop-1-s"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowstop-1-w"><span class="ui-icon ui-icon-arrowstop-1-w"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthick-1-n"><span class="ui-icon ui-icon-arrowthick-1-n"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthick-1-ne"><span class="ui-icon ui-icon-arrowthick-1-ne"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthick-1-e"><span class="ui-icon ui-icon-arrowthick-1-e"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthick-1-se"><span class="ui-icon ui-icon-arrowthick-1-se"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthick-1-s"><span class="ui-icon ui-icon-arrowthick-1-s"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthick-1-sw"><span class="ui-icon ui-icon-arrowthick-1-sw"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthick-1-w"><span class="ui-icon ui-icon-arrowthick-1-w"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthick-1-nw"><span class="ui-icon ui-icon-arrowthick-1-nw"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthick-2-n-s"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthick-2-ne-sw"><span class="ui-icon ui-icon-arrowthick-2-ne-sw"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthick-2-e-w"><span class="ui-icon ui-icon-arrowthick-2-e-w"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthick-2-se-nw"><span class="ui-icon ui-icon-arrowthick-2-se-nw"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthickstop-1-n"><span class="ui-icon ui-icon-arrowthickstop-1-n"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthickstop-1-e"><span class="ui-icon ui-icon-arrowthickstop-1-e"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthickstop-1-s"><span class="ui-icon ui-icon-arrowthickstop-1-s"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthickstop-1-w"><span class="ui-icon ui-icon-arrowthickstop-1-w"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowreturnthick-1-w"><span class="ui-icon ui-icon-arrowreturnthick-1-w"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowreturnthick-1-n"><span class="ui-icon ui-icon-arrowreturnthick-1-n"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowreturnthick-1-e"><span class="ui-icon ui-icon-arrowreturnthick-1-e"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowreturnthick-1-s"><span class="ui-icon ui-icon-arrowreturnthick-1-s"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowreturn-1-w"><span class="ui-icon ui-icon-arrowreturn-1-w"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowreturn-1-n"><span class="ui-icon ui-icon-arrowreturn-1-n"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowreturn-1-e"><span class="ui-icon ui-icon-arrowreturn-1-e"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowreturn-1-s"><span class="ui-icon ui-icon-arrowreturn-1-s"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowrefresh-1-w"><span class="ui-icon ui-icon-arrowrefresh-1-w"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowrefresh-1-n"><span class="ui-icon ui-icon-arrowrefresh-1-n"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowrefresh-1-e"><span class="ui-icon ui-icon-arrowrefresh-1-e"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowrefresh-1-s"><span class="ui-icon ui-icon-arrowrefresh-1-s"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-4"><span class="ui-icon ui-icon-arrow-4"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-4-diag"><span class="ui-icon ui-icon-arrow-4-diag"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-extlink"><span class="ui-icon ui-icon-extlink"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-newwin"><span class="ui-icon ui-icon-newwin"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-refresh"><span class="ui-icon ui-icon-refresh"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-shuffle"><span class="ui-icon ui-icon-shuffle"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-transfer-e-w"><span class="ui-icon ui-icon-transfer-e-w"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-transferthick-e-w"><span class="ui-icon ui-icon-transferthick-e-w"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-folder-collapsed"><span class="ui-icon ui-icon-folder-collapsed"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-folder-open"><span class="ui-icon ui-icon-folder-open"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-document"><span class="ui-icon ui-icon-document"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-document-b"><span class="ui-icon ui-icon-document-b"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-note"><span class="ui-icon ui-icon-note"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-mail-closed"><span class="ui-icon ui-icon-mail-closed"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-mail-open"><span class="ui-icon ui-icon-mail-open"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-suitcase"><span class="ui-icon ui-icon-suitcase"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-comment"><span class="ui-icon ui-icon-comment"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-person"><span class="ui-icon ui-icon-person"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-print"><span class="ui-icon ui-icon-print"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-trash"><span class="ui-icon ui-icon-trash"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-locked"><span class="ui-icon ui-icon-locked"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-unlocked"><span class="ui-icon ui-icon-unlocked"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-bookmark"><span class="ui-icon ui-icon-bookmark"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-tag"><span class="ui-icon ui-icon-tag"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-home"><span class="ui-icon ui-icon-home"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-flag"><span class="ui-icon ui-icon-flag"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-calculator"><span class="ui-icon ui-icon-calculator"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-cart"><span class="ui-icon ui-icon-cart"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-pencil"><span class="ui-icon ui-icon-pencil"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-clock"><span class="ui-icon ui-icon-clock"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-disk"><span class="ui-icon ui-icon-disk"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-calendar"><span class="ui-icon ui-icon-calendar"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-zoomin"><span class="ui-icon ui-icon-zoomin"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-zoomout"><span class="ui-icon ui-icon-zoomout"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-search"><span class="ui-icon ui-icon-search"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-wrench"><span class="ui-icon ui-icon-wrench"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-gear"><span class="ui-icon ui-icon-gear"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-heart"><span class="ui-icon ui-icon-heart"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-star"><span class="ui-icon ui-icon-star"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-link"><span class="ui-icon ui-icon-link"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-cancel"><span class="ui-icon ui-icon-cancel"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-plus"><span class="ui-icon ui-icon-plus"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-plusthick"><span class="ui-icon ui-icon-plusthick"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-minus"><span class="ui-icon ui-icon-minus"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-minusthick"><span class="ui-icon ui-icon-minusthick"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-close"><span class="ui-icon ui-icon-close"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-closethick"><span class="ui-icon ui-icon-closethick"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-key"><span class="ui-icon ui-icon-key"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-lightbulb"><span class="ui-icon ui-icon-lightbulb"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-scissors"><span class="ui-icon ui-icon-scissors"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-clipboard"><span class="ui-icon ui-icon-clipboard"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-copy"><span class="ui-icon ui-icon-copy"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-contact"><span class="ui-icon ui-icon-contact"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-image"><span class="ui-icon ui-icon-image"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-video"><span class="ui-icon ui-icon-video"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-script"><span class="ui-icon ui-icon-script"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-alert"><span class="ui-icon ui-icon-alert"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-info"><span class="ui-icon ui-icon-info"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-notice"><span class="ui-icon ui-icon-notice"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-help"><span class="ui-icon ui-icon-help"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-check"><span class="ui-icon ui-icon-check"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-bullet"><span class="ui-icon ui-icon-bullet"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-radio-off"><span class="ui-icon ui-icon-radio-off"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-radio-on"><span class="ui-icon ui-icon-radio-on"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-pin-w"><span class="ui-icon ui-icon-pin-w"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-pin-s"><span class="ui-icon ui-icon-pin-s"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-play"><span class="ui-icon ui-icon-play"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-pause"><span class="ui-icon ui-icon-pause"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-seek-next"><span class="ui-icon ui-icon-seek-next"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-seek-prev"><span class="ui-icon ui-icon-seek-prev"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-seek-end"><span class="ui-icon ui-icon-seek-end"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-seek-first"><span class="ui-icon ui-icon-seek-first"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-stop"><span class="ui-icon ui-icon-stop"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-eject"><span class="ui-icon ui-icon-eject"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-volume-off"><span class="ui-icon ui-icon-volume-off"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-volume-on"><span class="ui-icon ui-icon-volume-on"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-power"><span class="ui-icon ui-icon-power"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-signal-diag"><span class="ui-icon ui-icon-signal-diag"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-signal"><span class="ui-icon ui-icon-signal"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-battery-0"><span class="ui-icon ui-icon-battery-0"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-battery-1"><span class="ui-icon ui-icon-battery-1"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-battery-2"><span class="ui-icon ui-icon-battery-2"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-battery-3"><span class="ui-icon ui-icon-battery-3"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-circle-plus"><span class="ui-icon ui-icon-circle-plus"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-circle-minus"><span class="ui-icon ui-icon-circle-minus"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-circle-close"><span class="ui-icon ui-icon-circle-close"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-circle-triangle-e"><span class="ui-icon ui-icon-circle-triangle-e"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-circle-triangle-s"><span class="ui-icon ui-icon-circle-triangle-s"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-circle-triangle-w"><span class="ui-icon ui-icon-circle-triangle-w"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-circle-triangle-n"><span class="ui-icon ui-icon-circle-triangle-n"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-circle-arrow-e"><span class="ui-icon ui-icon-circle-arrow-e"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-circle-arrow-s"><span class="ui-icon ui-icon-circle-arrow-s"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-circle-arrow-w"><span class="ui-icon ui-icon-circle-arrow-w"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-circle-arrow-n"><span class="ui-icon ui-icon-circle-arrow-n"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-circle-zoomin"><span class="ui-icon ui-icon-circle-zoomin"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-circle-zoomout"><span class="ui-icon ui-icon-circle-zoomout"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-circle-check"><span class="ui-icon ui-icon-circle-check"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-circlesmall-plus"><span class="ui-icon ui-icon-circlesmall-plus"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-circlesmall-minus"><span class="ui-icon ui-icon-circlesmall-minus"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-circlesmall-close"><span class="ui-icon ui-icon-circlesmall-close"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-squaresmall-plus"><span class="ui-icon ui-icon-squaresmall-plus"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-squaresmall-minus"><span class="ui-icon ui-icon-squaresmall-minus"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-squaresmall-close"><span class="ui-icon ui-icon-squaresmall-close"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-grip-dotted-vertical"><span class="ui-icon ui-icon-grip-dotted-vertical"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-grip-dotted-horizontal"><span class="ui-icon ui-icon-grip-dotted-horizontal"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-grip-solid-vertical"><span class="ui-icon ui-icon-grip-solid-vertical"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-grip-solid-horizontal"><span class="ui-icon ui-icon-grip-solid-horizontal"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-gripsmall-diagonal-se"><span class="ui-icon ui-icon-gripsmall-diagonal-se"></span></li>
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-grip-diagonal-se"><span class="ui-icon ui-icon-grip-diagonal-se"></span></li>
+</ul>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- Highlight / Error -->
+<h2 class="demoHeaders">Highlight / Error</h2>
+<div class="ui-widget">
+ <div class="ui-state-highlight ui-corner-all" style="margin-top: 20px; padding: 0 .7em;">
+ <p><span class="ui-icon ui-icon-info" style="float: left; margin-right: .3em;"></span>
+ <strong>Hey!</strong> Sample ui-state-highlight style.</p>
+ </div>
+</div>
+<br>
+<div class="ui-widget">
+ <div class="ui-state-error ui-corner-all" style="padding: 0 .7em;">
+ <p><span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>
+ <strong>Alert:</strong> Sample ui-state-error style.</p>
+ </div>
+</div>
+
+<script src="external/jquery/jquery.js"></script>
+<script src="jquery-ui.js"></script>
+<script>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+// Hover states on the static widgets
+$( "#dialog-link, #icons li" ).hover(
+ function() {
+ $( this ).addClass( "ui-state-hover" );
+ },
+ function() {
+ $( this ).removeClass( "ui-state-hover" );
+ }
+);
+</script>
+</body>
+</html>
diff --git a/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.css b/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.css
new file mode 100644
index 0000000..916181d
--- /dev/null
+++ b/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.css
@@ -0,0 +1,596 @@
+/*! jQuery UI - v1.12.1 - 2018-03-18
+* http://jqueryui.com
+* Includes: draggable.css, core.css, resizable.css, theme.css
+* To view and modify this theme, visit http://jqueryui.com/themeroller/?scope=&folderName=base&cornerRadiusShadow=8px&offsetLeftShadow=0px&offsetTopShadow=0px&thicknessShadow=5px&opacityShadow=30&bgImgOpacityShadow=0&bgTextureShadow=flat&bgColorShadow=666666&opacityOverlay=30&bgImgOpacityOverlay=0&bgTextureOverlay=flat&bgColorOverlay=aaaaaa&iconColorError=cc0000&fcError=5f3f3f&borderColorError=f1a899&bgTextureError=flat&bgColorError=fddfdf&iconColorHighlight=777620&fcHighlight=777620&borderColorHighlight=dad55e&bgTextureHighlight=flat&bgColorHighlight=fffa90&iconColorActive=ffffff&fcActive=ffffff&borderColorActive=003eff&bgTextureActive=flat&bgColorActive=007fff&iconColorHover=555555&fcHover=2b2b2b&borderColorHover=cccccc&bgTextureHover=flat&bgColorHover=ededed&iconColorDefault=777777&fcDefault=454545&borderColorDefault=c5c5c5&bgTextureDefault=flat&bgColorDefault=f6f6f6&iconColorContent=444444&fcContent=333333&borderColorContent=dddddd&bgTextureContent=flat&bgColorContent=ffffff&iconColorHeader=444444&fcHeader=333333&borderColorHeader=dddddd&bgTextureHeader=flat&bgColorHeader=e9e9e9&cornerRadius=3px&fwDefault=normal&fsDefault=1em&ffDefault=Arial%2CHelvetica%2Csans-serif
+* Copyright jQuery Foundation and other contributors; Licensed MIT */
+
+.ui-draggable-handle {
+ -ms-touch-action: none;
+ touch-action: none;
+}
+/* Layout helpers
+----------------------------------*/
+.ui-helper-hidden {
+ display: none;
+}
+.ui-helper-hidden-accessible {
+ border: 0;
+ clip: rect(0 0 0 0);
+ height: 1px;
+ margin: -1px;
+ overflow: hidden;
+ padding: 0;
+ position: absolute;
+ width: 1px;
+}
+.ui-helper-reset {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ outline: 0;
+ line-height: 1.3;
+ text-decoration: none;
+ font-size: 100%;
+ list-style: none;
+}
+.ui-helper-clearfix:before,
+.ui-helper-clearfix:after {
+ content: "";
+ display: table;
+ border-collapse: collapse;
+}
+.ui-helper-clearfix:after {
+ clear: both;
+}
+.ui-helper-zfix {
+ width: 100%;
+ height: 100%;
+ top: 0;
+ left: 0;
+ position: absolute;
+ opacity: 0;
+ filter:Alpha(Opacity=0); /* support: IE8 */
+}
+
+.ui-front {
+ z-index: 100;
+}
+
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-disabled {
+ cursor: default !important;
+ pointer-events: none;
+}
+
+
+/* Icons
+----------------------------------*/
+.ui-icon {
+ display: inline-block;
+ vertical-align: middle;
+ margin-top: -.25em;
+ position: relative;
+ text-indent: -99999px;
+ overflow: hidden;
+ background-repeat: no-repeat;
+}
+
+.ui-widget-icon-block {
+ left: 50%;
+ margin-left: -8px;
+ display: block;
+}
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.ui-widget-overlay {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+}
+.ui-resizable {
+ position: relative;
+}
+.ui-resizable-handle {
+ position: absolute;
+ font-size: 0.1px;
+ display: block;
+ -ms-touch-action: none;
+ touch-action: none;
+}
+.ui-resizable-disabled .ui-resizable-handle,
+.ui-resizable-autohide .ui-resizable-handle {
+ display: none;
+}
+.ui-resizable-n {
+ cursor: n-resize;
+ height: 7px;
+ width: 100%;
+ top: -5px;
+ left: 0;
+}
+.ui-resizable-s {
+ cursor: s-resize;
+ height: 7px;
+ width: 100%;
+ bottom: -5px;
+ left: 0;
+}
+.ui-resizable-e {
+ cursor: e-resize;
+ width: 7px;
+ right: -5px;
+ top: 0;
+ height: 100%;
+}
+.ui-resizable-w {
+ cursor: w-resize;
+ width: 7px;
+ left: -5px;
+ top: 0;
+ height: 100%;
+}
+.ui-resizable-se {
+ cursor: se-resize;
+ width: 12px;
+ height: 12px;
+ right: 1px;
+ bottom: 1px;
+}
+.ui-resizable-sw {
+ cursor: sw-resize;
+ width: 9px;
+ height: 9px;
+ left: -5px;
+ bottom: -5px;
+}
+.ui-resizable-nw {
+ cursor: nw-resize;
+ width: 9px;
+ height: 9px;
+ left: -5px;
+ top: -5px;
+}
+.ui-resizable-ne {
+ cursor: ne-resize;
+ width: 9px;
+ height: 9px;
+ right: -5px;
+ top: -5px;
+}
+
+/* Component containers
+----------------------------------*/
+.ui-widget {
+ font-family: Arial,Helvetica,sans-serif;
+ font-size: 1em;
+}
+.ui-widget .ui-widget {
+ font-size: 1em;
+}
+.ui-widget input,
+.ui-widget select,
+.ui-widget textarea,
+.ui-widget button {
+ font-family: Arial,Helvetica,sans-serif;
+ font-size: 1em;
+}
+.ui-widget.ui-widget-content {
+ border: 1px solid #c5c5c5;
+}
+.ui-widget-content {
+ border: 1px solid #dddddd;
+ background: #ffffff;
+ color: #333333;
+}
+.ui-widget-content a {
+ color: #333333;
+}
+.ui-widget-header {
+ border: 1px solid #dddddd;
+ background: #e9e9e9;
+ color: #333333;
+ font-weight: bold;
+}
+.ui-widget-header a {
+ color: #333333;
+}
+
+/* Interaction states
+----------------------------------*/
+.ui-state-default,
+.ui-widget-content .ui-state-default,
+.ui-widget-header .ui-state-default,
+.ui-button,
+
+/* We use html here because we need a greater specificity to make sure disabled
+works properly when clicked or hovered */
+html .ui-button.ui-state-disabled:hover,
+html .ui-button.ui-state-disabled:active {
+ border: 1px solid #c5c5c5;
+ background: #f6f6f6;
+ font-weight: normal;
+ color: #454545;
+}
+.ui-state-default a,
+.ui-state-default a:link,
+.ui-state-default a:visited,
+a.ui-button,
+a:link.ui-button,
+a:visited.ui-button,
+.ui-button {
+ color: #454545;
+ text-decoration: none;
+}
+.ui-state-hover,
+.ui-widget-content .ui-state-hover,
+.ui-widget-header .ui-state-hover,
+.ui-state-focus,
+.ui-widget-content .ui-state-focus,
+.ui-widget-header .ui-state-focus,
+.ui-button:hover,
+.ui-button:focus {
+ border: 1px solid #cccccc;
+ background: #ededed;
+ font-weight: normal;
+ color: #2b2b2b;
+}
+.ui-state-hover a,
+.ui-state-hover a:hover,
+.ui-state-hover a:link,
+.ui-state-hover a:visited,
+.ui-state-focus a,
+.ui-state-focus a:hover,
+.ui-state-focus a:link,
+.ui-state-focus a:visited,
+a.ui-button:hover,
+a.ui-button:focus {
+ color: #2b2b2b;
+ text-decoration: none;
+}
+
+.ui-visual-focus {
+ box-shadow: 0 0 3px 1px rgb(94, 158, 214);
+}
+.ui-state-active,
+.ui-widget-content .ui-state-active,
+.ui-widget-header .ui-state-active,
+a.ui-button:active,
+.ui-button:active,
+.ui-button.ui-state-active:hover {
+ border: 1px solid #003eff;
+ background: #007fff;
+ font-weight: normal;
+ color: #ffffff;
+}
+.ui-icon-background,
+.ui-state-active .ui-icon-background {
+ border: #003eff;
+ background-color: #ffffff;
+}
+.ui-state-active a,
+.ui-state-active a:link,
+.ui-state-active a:visited {
+ color: #ffffff;
+ text-decoration: none;
+}
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-highlight,
+.ui-widget-content .ui-state-highlight,
+.ui-widget-header .ui-state-highlight {
+ border: 1px solid #dad55e;
+ background: #fffa90;
+ color: #777620;
+}
+.ui-state-checked {
+ border: 1px solid #dad55e;
+ background: #fffa90;
+}
+.ui-state-highlight a,
+.ui-widget-content .ui-state-highlight a,
+.ui-widget-header .ui-state-highlight a {
+ color: #777620;
+}
+.ui-state-error,
+.ui-widget-content .ui-state-error,
+.ui-widget-header .ui-state-error {
+ border: 1px solid #f1a899;
+ background: #fddfdf;
+ color: #5f3f3f;
+}
+.ui-state-error a,
+.ui-widget-content .ui-state-error a,
+.ui-widget-header .ui-state-error a {
+ color: #5f3f3f;
+}
+.ui-state-error-text,
+.ui-widget-content .ui-state-error-text,
+.ui-widget-header .ui-state-error-text {
+ color: #5f3f3f;
+}
+.ui-priority-primary,
+.ui-widget-content .ui-priority-primary,
+.ui-widget-header .ui-priority-primary {
+ font-weight: bold;
+}
+.ui-priority-secondary,
+.ui-widget-content .ui-priority-secondary,
+.ui-widget-header .ui-priority-secondary {
+ opacity: .7;
+ filter:Alpha(Opacity=70); /* support: IE8 */
+ font-weight: normal;
+}
+.ui-state-disabled,
+.ui-widget-content .ui-state-disabled,
+.ui-widget-header .ui-state-disabled {
+ opacity: .35;
+ filter:Alpha(Opacity=35); /* support: IE8 */
+ background-image: none;
+}
+.ui-state-disabled .ui-icon {
+ filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */
+}
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon {
+ width: 16px;
+ height: 16px;
+}
+.ui-icon,
+.ui-widget-content .ui-icon {
+ background-image: url("images/ui-icons_444444_256x240.png");
+}
+.ui-widget-header .ui-icon {
+ background-image: url("images/ui-icons_444444_256x240.png");
+}
+.ui-state-hover .ui-icon,
+.ui-state-focus .ui-icon,
+.ui-button:hover .ui-icon,
+.ui-button:focus .ui-icon {
+ background-image: url("images/ui-icons_555555_256x240.png");
+}
+.ui-state-active .ui-icon,
+.ui-button:active .ui-icon {
+ background-image: url("images/ui-icons_ffffff_256x240.png");
+}
+.ui-state-highlight .ui-icon,
+.ui-button .ui-state-highlight.ui-icon {
+ background-image: url("images/ui-icons_777620_256x240.png");
+}
+.ui-state-error .ui-icon,
+.ui-state-error-text .ui-icon {
+ background-image: url("images/ui-icons_cc0000_256x240.png");
+}
+.ui-button .ui-icon {
+ background-image: url("images/ui-icons_777777_256x240.png");
+}
+
+/* positioning */
+.ui-icon-blank { background-position: 16px 16px; }
+.ui-icon-caret-1-n { background-position: 0 0; }
+.ui-icon-caret-1-ne { background-position: -16px 0; }
+.ui-icon-caret-1-e { background-position: -32px 0; }
+.ui-icon-caret-1-se { background-position: -48px 0; }
+.ui-icon-caret-1-s { background-position: -65px 0; }
+.ui-icon-caret-1-sw { background-position: -80px 0; }
+.ui-icon-caret-1-w { background-position: -96px 0; }
+.ui-icon-caret-1-nw { background-position: -112px 0; }
+.ui-icon-caret-2-n-s { background-position: -128px 0; }
+.ui-icon-caret-2-e-w { background-position: -144px 0; }
+.ui-icon-triangle-1-n { background-position: 0 -16px; }
+.ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.ui-icon-triangle-1-e { background-position: -32px -16px; }
+.ui-icon-triangle-1-se { background-position: -48px -16px; }
+.ui-icon-triangle-1-s { background-position: -65px -16px; }
+.ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.ui-icon-triangle-1-w { background-position: -96px -16px; }
+.ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.ui-icon-arrow-1-n { background-position: 0 -32px; }
+.ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.ui-icon-arrow-1-e { background-position: -32px -32px; }
+.ui-icon-arrow-1-se { background-position: -48px -32px; }
+.ui-icon-arrow-1-s { background-position: -65px -32px; }
+.ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.ui-icon-arrow-1-w { background-position: -96px -32px; }
+.ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.ui-icon-arrowthick-1-n { background-position: 1px -48px; }
+.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.ui-icon-arrow-4 { background-position: 0 -80px; }
+.ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.ui-icon-extlink { background-position: -32px -80px; }
+.ui-icon-newwin { background-position: -48px -80px; }
+.ui-icon-refresh { background-position: -64px -80px; }
+.ui-icon-shuffle { background-position: -80px -80px; }
+.ui-icon-transfer-e-w { background-position: -96px -80px; }
+.ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.ui-icon-folder-collapsed { background-position: 0 -96px; }
+.ui-icon-folder-open { background-position: -16px -96px; }
+.ui-icon-document { background-position: -32px -96px; }
+.ui-icon-document-b { background-position: -48px -96px; }
+.ui-icon-note { background-position: -64px -96px; }
+.ui-icon-mail-closed { background-position: -80px -96px; }
+.ui-icon-mail-open { background-position: -96px -96px; }
+.ui-icon-suitcase { background-position: -112px -96px; }
+.ui-icon-comment { background-position: -128px -96px; }
+.ui-icon-person { background-position: -144px -96px; }
+.ui-icon-print { background-position: -160px -96px; }
+.ui-icon-trash { background-position: -176px -96px; }
+.ui-icon-locked { background-position: -192px -96px; }
+.ui-icon-unlocked { background-position: -208px -96px; }
+.ui-icon-bookmark { background-position: -224px -96px; }
+.ui-icon-tag { background-position: -240px -96px; }
+.ui-icon-home { background-position: 0 -112px; }
+.ui-icon-flag { background-position: -16px -112px; }
+.ui-icon-calendar { background-position: -32px -112px; }
+.ui-icon-cart { background-position: -48px -112px; }
+.ui-icon-pencil { background-position: -64px -112px; }
+.ui-icon-clock { background-position: -80px -112px; }
+.ui-icon-disk { background-position: -96px -112px; }
+.ui-icon-calculator { background-position: -112px -112px; }
+.ui-icon-zoomin { background-position: -128px -112px; }
+.ui-icon-zoomout { background-position: -144px -112px; }
+.ui-icon-search { background-position: -160px -112px; }
+.ui-icon-wrench { background-position: -176px -112px; }
+.ui-icon-gear { background-position: -192px -112px; }
+.ui-icon-heart { background-position: -208px -112px; }
+.ui-icon-star { background-position: -224px -112px; }
+.ui-icon-link { background-position: -240px -112px; }
+.ui-icon-cancel { background-position: 0 -128px; }
+.ui-icon-plus { background-position: -16px -128px; }
+.ui-icon-plusthick { background-position: -32px -128px; }
+.ui-icon-minus { background-position: -48px -128px; }
+.ui-icon-minusthick { background-position: -64px -128px; }
+.ui-icon-close { background-position: -80px -128px; }
+.ui-icon-closethick { background-position: -96px -128px; }
+.ui-icon-key { background-position: -112px -128px; }
+.ui-icon-lightbulb { background-position: -128px -128px; }
+.ui-icon-scissors { background-position: -144px -128px; }
+.ui-icon-clipboard { background-position: -160px -128px; }
+.ui-icon-copy { background-position: -176px -128px; }
+.ui-icon-contact { background-position: -192px -128px; }
+.ui-icon-image { background-position: -208px -128px; }
+.ui-icon-video { background-position: -224px -128px; }
+.ui-icon-script { background-position: -240px -128px; }
+.ui-icon-alert { background-position: 0 -144px; }
+.ui-icon-info { background-position: -16px -144px; }
+.ui-icon-notice { background-position: -32px -144px; }
+.ui-icon-help { background-position: -48px -144px; }
+.ui-icon-check { background-position: -64px -144px; }
+.ui-icon-bullet { background-position: -80px -144px; }
+.ui-icon-radio-on { background-position: -96px -144px; }
+.ui-icon-radio-off { background-position: -112px -144px; }
+.ui-icon-pin-w { background-position: -128px -144px; }
+.ui-icon-pin-s { background-position: -144px -144px; }
+.ui-icon-play { background-position: 0 -160px; }
+.ui-icon-pause { background-position: -16px -160px; }
+.ui-icon-seek-next { background-position: -32px -160px; }
+.ui-icon-seek-prev { background-position: -48px -160px; }
+.ui-icon-seek-end { background-position: -64px -160px; }
+.ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.ui-icon-seek-first { background-position: -80px -160px; }
+.ui-icon-stop { background-position: -96px -160px; }
+.ui-icon-eject { background-position: -112px -160px; }
+.ui-icon-volume-off { background-position: -128px -160px; }
+.ui-icon-volume-on { background-position: -144px -160px; }
+.ui-icon-power { background-position: 0 -176px; }
+.ui-icon-signal-diag { background-position: -16px -176px; }
+.ui-icon-signal { background-position: -32px -176px; }
+.ui-icon-battery-0 { background-position: -48px -176px; }
+.ui-icon-battery-1 { background-position: -64px -176px; }
+.ui-icon-battery-2 { background-position: -80px -176px; }
+.ui-icon-battery-3 { background-position: -96px -176px; }
+.ui-icon-circle-plus { background-position: 0 -192px; }
+.ui-icon-circle-minus { background-position: -16px -192px; }
+.ui-icon-circle-close { background-position: -32px -192px; }
+.ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.ui-icon-circle-zoomin { background-position: -176px -192px; }
+.ui-icon-circle-zoomout { background-position: -192px -192px; }
+.ui-icon-circle-check { background-position: -208px -192px; }
+.ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.ui-icon-circlesmall-close { background-position: -32px -208px; }
+.ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.ui-icon-squaresmall-close { background-position: -80px -208px; }
+.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.ui-corner-all,
+.ui-corner-top,
+.ui-corner-left,
+.ui-corner-tl {
+ border-top-left-radius: 3px;
+}
+.ui-corner-all,
+.ui-corner-top,
+.ui-corner-right,
+.ui-corner-tr {
+ border-top-right-radius: 3px;
+}
+.ui-corner-all,
+.ui-corner-bottom,
+.ui-corner-left,
+.ui-corner-bl {
+ border-bottom-left-radius: 3px;
+}
+.ui-corner-all,
+.ui-corner-bottom,
+.ui-corner-right,
+.ui-corner-br {
+ border-bottom-right-radius: 3px;
+}
+
+/* Overlays */
+.ui-widget-overlay {
+ background: #aaaaaa;
+ opacity: .3;
+ filter: Alpha(Opacity=30); /* support: IE8 */
+}
+.ui-widget-shadow {
+ -webkit-box-shadow: 0px 0px 5px #666666;
+ box-shadow: 0px 0px 5px #666666;
+}
diff --git a/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.js b/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.js
new file mode 100644
index 0000000..fc62b9a
--- /dev/null
+++ b/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.js
@@ -0,0 +1,3553 @@
+/*! jQuery UI - v1.12.1 - 2018-03-18
+* http://jqueryui.com
+* Includes: widget.js, data.js, disable-selection.js, scroll-parent.js, widgets/draggable.js, widgets/resizable.js, widgets/mouse.js
+* Copyright jQuery Foundation and other contributors; Licensed MIT */
+
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+
+ // AMD. Register as an anonymous module.
+ define([ "jquery" ], factory );
+ } else {
+
+ // Browser globals
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+$.ui = $.ui || {};
+
+var version = $.ui.version = "1.12.1";
+
+
+/*!
+ * jQuery UI Widget 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Widget
+//>>group: Core
+//>>description: Provides a factory for creating stateful widgets with a common API.
+//>>docs: http://api.jqueryui.com/jQuery.widget/
+//>>demos: http://jqueryui.com/widget/
+
+
+
+var widgetUuid = 0;
+var widgetSlice = Array.prototype.slice;
+
+$.cleanData = ( function( orig ) {
+ return function( elems ) {
+ var events, elem, i;
+ for ( i = 0; ( elem = elems[ i ] ) != null; i++ ) {
+ try {
+
+ // Only trigger remove when necessary to save time
+ events = $._data( elem, "events" );
+ if ( events && events.remove ) {
+ $( elem ).triggerHandler( "remove" );
+ }
+
+ // Http://bugs.jquery.com/ticket/8235
+ } catch ( e ) {}
+ }
+ orig( elems );
+ };
+} )( $.cleanData );
+
+$.widget = function( name, base, prototype ) {
+ var existingConstructor, constructor, basePrototype;
+
+ // ProxiedPrototype allows the provided prototype to remain unmodified
+ // so that it can be used as a mixin for multiple widgets (#8876)
+ var proxiedPrototype = {};
+
+ var namespace = name.split( "." )[ 0 ];
+ name = name.split( "." )[ 1 ];
+ var fullName = namespace + "-" + name;
+
+ if ( !prototype ) {
+ prototype = base;
+ base = $.Widget;
+ }
+
+ if ( $.isArray( prototype ) ) {
+ prototype = $.extend.apply( null, [ {} ].concat( prototype ) );
+ }
+
+ // Create selector for plugin
+ $.expr[ ":" ][ fullName.toLowerCase() ] = function( elem ) {
+ return !!$.data( elem, fullName );
+ };
+
+ $[ namespace ] = $[ namespace ] || {};
+ existingConstructor = $[ namespace ][ name ];
+ constructor = $[ namespace ][ name ] = function( options, element ) {
+
+ // Allow instantiation without "new" keyword
+ if ( !this._createWidget ) {
+ return new constructor( options, element );
+ }
+
+ // Allow instantiation without initializing for simple inheritance
+ // must use "new" keyword (the code above always passes args)
+ if ( arguments.length ) {
+ this._createWidget( options, element );
+ }
+ };
+
+ // Extend with the existing constructor to carry over any static properties
+ $.extend( constructor, existingConstructor, {
+ version: prototype.version,
+
+ // Copy the object used to create the prototype in case we need to
+ // redefine the widget later
+ _proto: $.extend( {}, prototype ),
+
+ // Track widgets that inherit from this widget in case this widget is
+ // redefined after a widget inherits from it
+ _childConstructors: []
+ } );
+
+ basePrototype = new base();
+
+ // We need to make the options hash a property directly on the new instance
+ // otherwise we'll modify the options hash on the prototype that we're
+ // inheriting from
+ basePrototype.options = $.widget.extend( {}, basePrototype.options );
+ $.each( prototype, function( prop, value ) {
+ if ( !$.isFunction( value ) ) {
+ proxiedPrototype[ prop ] = value;
+ return;
+ }
+ proxiedPrototype[ prop ] = ( function() {
+ function _super() {
+ return base.prototype[ prop ].apply( this, arguments );
+ }
+
+ function _superApply( args ) {
+ return base.prototype[ prop ].apply( this, args );
+ }
+
+ return function() {
+ var __super = this._super;
+ var __superApply = this._superApply;
+ var returnValue;
+
+ this._super = _super;
+ this._superApply = _superApply;
+
+ returnValue = value.apply( this, arguments );
+
+ this._super = __super;
+ this._superApply = __superApply;
+
+ return returnValue;
+ };
+ } )();
+ } );
+ constructor.prototype = $.widget.extend( basePrototype, {
+
+ // TODO: remove support for widgetEventPrefix
+ // always use the name + a colon as the prefix, e.g., draggable:start
+ // don't prefix for widgets that aren't DOM-based
+ widgetEventPrefix: existingConstructor ? ( basePrototype.widgetEventPrefix || name ) : name
+ }, proxiedPrototype, {
+ constructor: constructor,
+ namespace: namespace,
+ widgetName: name,
+ widgetFullName: fullName
+ } );
+
+ // If this widget is being redefined then we need to find all widgets that
+ // are inheriting from it and redefine all of them so that they inherit from
+ // the new version of this widget. We're essentially trying to replace one
+ // level in the prototype chain.
+ if ( existingConstructor ) {
+ $.each( existingConstructor._childConstructors, function( i, child ) {
+ var childPrototype = child.prototype;
+
+ // Redefine the child widget using the same prototype that was
+ // originally used, but inherit from the new version of the base
+ $.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor,
+ child._proto );
+ } );
+
+ // Remove the list of existing child constructors from the old constructor
+ // so the old child constructors can be garbage collected
+ delete existingConstructor._childConstructors;
+ } else {
+ base._childConstructors.push( constructor );
+ }
+
+ $.widget.bridge( name, constructor );
+
+ return constructor;
+};
+
+$.widget.extend = function( target ) {
+ var input = widgetSlice.call( arguments, 1 );
+ var inputIndex = 0;
+ var inputLength = input.length;
+ var key;
+ var value;
+
+ for ( ; inputIndex < inputLength; inputIndex++ ) {
+ for ( key in input[ inputIndex ] ) {
+ value = input[ inputIndex ][ key ];
+ if ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) {
+
+ // Clone objects
+ if ( $.isPlainObject( value ) ) {
+ target[ key ] = $.isPlainObject( target[ key ] ) ?
+ $.widget.extend( {}, target[ key ], value ) :
+
+ // Don't extend strings, arrays, etc. with objects
+ $.widget.extend( {}, value );
+
+ // Copy everything else by reference
+ } else {
+ target[ key ] = value;
+ }
+ }
+ }
+ }
+ return target;
+};
+
+$.widget.bridge = function( name, object ) {
+ var fullName = object.prototype.widgetFullName || name;
+ $.fn[ name ] = function( options ) {
+ var isMethodCall = typeof options === "string";
+ var args = widgetSlice.call( arguments, 1 );
+ var returnValue = this;
+
+ if ( isMethodCall ) {
+
+ // If this is an empty collection, we need to have the instance method
+ // return undefined instead of the jQuery instance
+ if ( !this.length && options === "instance" ) {
+ returnValue = undefined;
+ } else {
+ this.each( function() {
+ var methodValue;
+ var instance = $.data( this, fullName );
+
+ if ( options === "instance" ) {
+ returnValue = instance;
+ return false;
+ }
+
+ if ( !instance ) {
+ return $.error( "cannot call methods on " + name +
+ " prior to initialization; " +
+ "attempted to call method '" + options + "'" );
+ }
+
+ if ( !$.isFunction( instance[ options ] ) || options.charAt( 0 ) === "_" ) {
+ return $.error( "no such method '" + options + "' for " + name +
+ " widget instance" );
+ }
+
+ methodValue = instance[ options ].apply( instance, args );
+
+ if ( methodValue !== instance && methodValue !== undefined ) {
+ returnValue = methodValue && methodValue.jquery ?
+ returnValue.pushStack( methodValue.get() ) :
+ methodValue;
+ return false;
+ }
+ } );
+ }
+ } else {
+
+ // Allow multiple hashes to be passed on init
+ if ( args.length ) {
+ options = $.widget.extend.apply( null, [ options ].concat( args ) );
+ }
+
+ this.each( function() {
+ var instance = $.data( this, fullName );
+ if ( instance ) {
+ instance.option( options || {} );
+ if ( instance._init ) {
+ instance._init();
+ }
+ } else {
+ $.data( this, fullName, new object( options, this ) );
+ }
+ } );
+ }
+
+ return returnValue;
+ };
+};
+
+$.Widget = function( /* options, element */ ) {};
+$.Widget._childConstructors = [];
+
+$.Widget.prototype = {
+ widgetName: "widget",
+ widgetEventPrefix: "",
+ defaultElement: "<div>",
+
+ options: {
+ classes: {},
+ disabled: false,
+
+ // Callbacks
+ create: null
+ },
+
+ _createWidget: function( options, element ) {
+ element = $( element || this.defaultElement || this )[ 0 ];
+ this.element = $( element );
+ this.uuid = widgetUuid++;
+ this.eventNamespace = "." + this.widgetName + this.uuid;
+
+ this.bindings = $();
+ this.hoverable = $();
+ this.focusable = $();
+ this.classesElementLookup = {};
+
+ if ( element !== this ) {
+ $.data( element, this.widgetFullName, this );
+ this._on( true, this.element, {
+ remove: function( event ) {
+ if ( event.target === element ) {
+ this.destroy();
+ }
+ }
+ } );
+ this.document = $( element.style ?
+
+ // Element within the document
+ element.ownerDocument :
+
+ // Element is window or document
+ element.document || element );
+ this.window = $( this.document[ 0 ].defaultView || this.document[ 0 ].parentWindow );
+ }
+
+ this.options = $.widget.extend( {},
+ this.options,
+ this._getCreateOptions(),
+ options );
+
+ this._create();
+
+ if ( this.options.disabled ) {
+ this._setOptionDisabled( this.options.disabled );
+ }
+
+ this._trigger( "create", null, this._getCreateEventData() );
+ this._init();
+ },
+
+ _getCreateOptions: function() {
+ return {};
+ },
+
+ _getCreateEventData: $.noop,
+
+ _create: $.noop,
+
+ _init: $.noop,
+
+ destroy: function() {
+ var that = this;
+
+ this._destroy();
+ $.each( this.classesElementLookup, function( key, value ) {
+ that._removeClass( value, key );
+ } );
+
+ // We can probably remove the unbind calls in 2.0
+ // all event bindings should go through this._on()
+ this.element
+ .off( this.eventNamespace )
+ .removeData( this.widgetFullName );
+ this.widget()
+ .off( this.eventNamespace )
+ .removeAttr( "aria-disabled" );
+
+ // Clean up events and states
+ this.bindings.off( this.eventNamespace );
+ },
+
+ _destroy: $.noop,
+
+ widget: function() {
+ return this.element;
+ },
+
+ option: function( key, value ) {
+ var options = key;
+ var parts;
+ var curOption;
+ var i;
+
+ if ( arguments.length === 0 ) {
+
+ // Don't return a reference to the internal hash
+ return $.widget.extend( {}, this.options );
+ }
+
+ if ( typeof key === "string" ) {
+
+ // Handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } }
+ options = {};
+ parts = key.split( "." );
+ key = parts.shift();
+ if ( parts.length ) {
+ curOption = options[ key ] = $.widget.extend( {}, this.options[ key ] );
+ for ( i = 0; i < parts.length - 1; i++ ) {
+ curOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {};
+ curOption = curOption[ parts[ i ] ];
+ }
+ key = parts.pop();
+ if ( arguments.length === 1 ) {
+ return curOption[ key ] === undefined ? null : curOption[ key ];
+ }
+ curOption[ key ] = value;
+ } else {
+ if ( arguments.length === 1 ) {
+ return this.options[ key ] === undefined ? null : this.options[ key ];
+ }
+ options[ key ] = value;
+ }
+ }
+
+ this._setOptions( options );
+
+ return this;
+ },
+
+ _setOptions: function( options ) {
+ var key;
+
+ for ( key in options ) {
+ this._setOption( key, options[ key ] );
+ }
+
+ return this;
+ },
+
+ _setOption: function( key, value ) {
+ if ( key === "classes" ) {
+ this._setOptionClasses( value );
+ }
+
+ this.options[ key ] = value;
+
+ if ( key === "disabled" ) {
+ this._setOptionDisabled( value );
+ }
+
+ return this;
+ },
+
+ _setOptionClasses: function( value ) {
+ var classKey, elements, currentElements;
+
+ for ( classKey in value ) {
+ currentElements = this.classesElementLookup[ classKey ];
+ if ( value[ classKey ] === this.options.classes[ classKey ] ||
+ !currentElements ||
+ !currentElements.length ) {
+ continue;
+ }
+
+ // We are doing this to create a new jQuery object because the _removeClass() call
+ // on the next line is going to destroy the reference to the current elements being
+ // tracked. We need to save a copy of this collection so that we can add the new classes
+ // below.
+ elements = $( currentElements.get() );
+ this._removeClass( currentElements, classKey );
+
+ // We don't use _addClass() here, because that uses this.options.classes
+ // for generating the string of classes. We want to use the value passed in from
+ // _setOption(), this is the new value of the classes option which was passed to
+ // _setOption(). We pass this value directly to _classes().
+ elements.addClass( this._classes( {
+ element: elements,
+ keys: classKey,
+ classes: value,
+ add: true
+ } ) );
+ }
+ },
+
+ _setOptionDisabled: function( value ) {
+ this._toggleClass( this.widget(), this.widgetFullName + "-disabled", null, !!value );
+
+ // If the widget is becoming disabled, then nothing is interactive
+ if ( value ) {
+ this._removeClass( this.hoverable, null, "ui-state-hover" );
+ this._removeClass( this.focusable, null, "ui-state-focus" );
+ }
+ },
+
+ enable: function() {
+ return this._setOptions( { disabled: false } );
+ },
+
+ disable: function() {
+ return this._setOptions( { disabled: true } );
+ },
+
+ _classes: function( options ) {
+ var full = [];
+ var that = this;
+
+ options = $.extend( {
+ element: this.element,
+ classes: this.options.classes || {}
+ }, options );
+
+ function processClassString( classes, checkOption ) {
+ var current, i;
+ for ( i = 0; i < classes.length; i++ ) {
+ current = that.classesElementLookup[ classes[ i ] ] || $();
+ if ( options.add ) {
+ current = $( $.unique( current.get().concat( options.element.get() ) ) );
+ } else {
+ current = $( current.not( options.element ).get() );
+ }
+ that.classesElementLookup[ classes[ i ] ] = current;
+ full.push( classes[ i ] );
+ if ( checkOption && options.classes[ classes[ i ] ] ) {
+ full.push( options.classes[ classes[ i ] ] );
+ }
+ }
+ }
+
+ this._on( options.element, {
+ "remove": "_untrackClassesElement"
+ } );
+
+ if ( options.keys ) {
+ processClassString( options.keys.match( /\S+/g ) || [], true );
+ }
+ if ( options.extra ) {
+ processClassString( options.extra.match( /\S+/g ) || [] );
+ }
+
+ return full.join( " " );
+ },
+
+ _untrackClassesElement: function( event ) {
+ var that = this;
+ $.each( that.classesElementLookup, function( key, value ) {
+ if ( $.inArray( event.target, value ) !== -1 ) {
+ that.classesElementLookup[ key ] = $( value.not( event.target ).get() );
+ }
+ } );
+ },
+
+ _removeClass: function( element, keys, extra ) {
+ return this._toggleClass( element, keys, extra, false );
+ },
+
+ _addClass: function( element, keys, extra ) {
+ return this._toggleClass( element, keys, extra, true );
+ },
+
+ _toggleClass: function( element, keys, extra, add ) {
+ add = ( typeof add === "boolean" ) ? add : extra;
+ var shift = ( typeof element === "string" || element === null ),
+ options = {
+ extra: shift ? keys : extra,
+ keys: shift ? element : keys,
+ element: shift ? this.element : element,
+ add: add
+ };
+ options.element.toggleClass( this._classes( options ), add );
+ return this;
+ },
+
+ _on: function( suppressDisabledCheck, element, handlers ) {
+ var delegateElement;
+ var instance = this;
+
+ // No suppressDisabledCheck flag, shuffle arguments
+ if ( typeof suppressDisabledCheck !== "boolean" ) {
+ handlers = element;
+ element = suppressDisabledCheck;
+ suppressDisabledCheck = false;
+ }
+
+ // No element argument, shuffle and use this.element
+ if ( !handlers ) {
+ handlers = element;
+ element = this.element;
+ delegateElement = this.widget();
+ } else {
+ element = delegateElement = $( element );
+ this.bindings = this.bindings.add( element );
+ }
+
+ $.each( handlers, function( event, handler ) {
+ function handlerProxy() {
+
+ // Allow widgets to customize the disabled handling
+ // - disabled as an array instead of boolean
+ // - disabled class as method for disabling individual parts
+ if ( !suppressDisabledCheck &&
+ ( instance.options.disabled === true ||
+ $( this ).hasClass( "ui-state-disabled" ) ) ) {
+ return;
+ }
+ return ( typeof handler === "string" ? instance[ handler ] : handler )
+ .apply( instance, arguments );
+ }
+
+ // Copy the guid so direct unbinding works
+ if ( typeof handler !== "string" ) {
+ handlerProxy.guid = handler.guid =
+ handler.guid || handlerProxy.guid || $.guid++;
+ }
+
+ var match = event.match( /^([\w:-]*)\s*(.*)$/ );
+ var eventName = match[ 1 ] + instance.eventNamespace;
+ var selector = match[ 2 ];
+
+ if ( selector ) {
+ delegateElement.on( eventName, selector, handlerProxy );
+ } else {
+ element.on( eventName, handlerProxy );
+ }
+ } );
+ },
+
+ _off: function( element, eventName ) {
+ eventName = ( eventName || "" ).split( " " ).join( this.eventNamespace + " " ) +
+ this.eventNamespace;
+ element.off( eventName ).off( eventName );
+
+ // Clear the stack to avoid memory leaks (#10056)
+ this.bindings = $( this.bindings.not( element ).get() );
+ this.focusable = $( this.focusable.not( element ).get() );
+ this.hoverable = $( this.hoverable.not( element ).get() );
+ },
+
+ _delay: function( handler, delay ) {
+ function handlerProxy() {
+ return ( typeof handler === "string" ? instance[ handler ] : handler )
+ .apply( instance, arguments );
+ }
+ var instance = this;
+ return setTimeout( handlerProxy, delay || 0 );
+ },
+
+ _hoverable: function( element ) {
+ this.hoverable = this.hoverable.add( element );
+ this._on( element, {
+ mouseenter: function( event ) {
+ this._addClass( $( event.currentTarget ), null, "ui-state-hover" );
+ },
+ mouseleave: function( event ) {
+ this._removeClass( $( event.currentTarget ), null, "ui-state-hover" );
+ }
+ } );
+ },
+
+ _focusable: function( element ) {
+ this.focusable = this.focusable.add( element );
+ this._on( element, {
+ focusin: function( event ) {
+ this._addClass( $( event.currentTarget ), null, "ui-state-focus" );
+ },
+ focusout: function( event ) {
+ this._removeClass( $( event.currentTarget ), null, "ui-state-focus" );
+ }
+ } );
+ },
+
+ _trigger: function( type, event, data ) {
+ var prop, orig;
+ var callback = this.options[ type ];
+
+ data = data || {};
+ event = $.Event( event );
+ event.type = ( type === this.widgetEventPrefix ?
+ type :
+ this.widgetEventPrefix + type ).toLowerCase();
+
+ // The original event may come from any element
+ // so we need to reset the target on the new event
+ event.target = this.element[ 0 ];
+
+ // Copy original event properties over to the new event
+ orig = event.originalEvent;
+ if ( orig ) {
+ for ( prop in orig ) {
+ if ( !( prop in event ) ) {
+ event[ prop ] = orig[ prop ];
+ }
+ }
+ }
+
+ this.element.trigger( event, data );
+ return !( $.isFunction( callback ) &&
+ callback.apply( this.element[ 0 ], [ event ].concat( data ) ) === false ||
+ event.isDefaultPrevented() );
+ }
+};
+
+$.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) {
+ $.Widget.prototype[ "_" + method ] = function( element, options, callback ) {
+ if ( typeof options === "string" ) {
+ options = { effect: options };
+ }
+
+ var hasOptions;
+ var effectName = !options ?
+ method :
+ options === true || typeof options === "number" ?
+ defaultEffect :
+ options.effect || defaultEffect;
+
+ options = options || {};
+ if ( typeof options === "number" ) {
+ options = { duration: options };
+ }
+
+ hasOptions = !$.isEmptyObject( options );
+ options.complete = callback;
+
+ if ( options.delay ) {
+ element.delay( options.delay );
+ }
+
+ if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) {
+ element[ method ]( options );
+ } else if ( effectName !== method && element[ effectName ] ) {
+ element[ effectName ]( options.duration, options.easing, callback );
+ } else {
+ element.queue( function( next ) {
+ $( this )[ method ]();
+ if ( callback ) {
+ callback.call( element[ 0 ] );
+ }
+ next();
+ } );
+ }
+ };
+} );
+
+var widget = $.widget;
+
+
+/*!
+ * jQuery UI :data 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: :data Selector
+//>>group: Core
+//>>description: Selects elements which have data stored under the specified key.
+//>>docs: http://api.jqueryui.com/data-selector/
+
+
+var data = $.extend( $.expr[ ":" ], {
+ data: $.expr.createPseudo ?
+ $.expr.createPseudo( function( dataName ) {
+ return function( elem ) {
+ return !!$.data( elem, dataName );
+ };
+ } ) :
+
+ // Support: jQuery <1.8
+ function( elem, i, match ) {
+ return !!$.data( elem, match[ 3 ] );
+ }
+} );
+
+/*!
+ * jQuery UI Disable Selection 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: disableSelection
+//>>group: Core
+//>>description: Disable selection of text content within the set of matched elements.
+//>>docs: http://api.jqueryui.com/disableSelection/
+
+// This file is deprecated
+
+
+var disableSelection = $.fn.extend( {
+ disableSelection: ( function() {
+ var eventType = "onselectstart" in document.createElement( "div" ) ?
+ "selectstart" :
+ "mousedown";
+
+ return function() {
+ return this.on( eventType + ".ui-disableSelection", function( event ) {
+ event.preventDefault();
+ } );
+ };
+ } )(),
+
+ enableSelection: function() {
+ return this.off( ".ui-disableSelection" );
+ }
+} );
+
+
+/*!
+ * jQuery UI Scroll Parent 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: scrollParent
+//>>group: Core
+//>>description: Get the closest ancestor element that is scrollable.
+//>>docs: http://api.jqueryui.com/scrollParent/
+
+
+
+var scrollParent = $.fn.scrollParent = function( includeHidden ) {
+ var position = this.css( "position" ),
+ excludeStaticParent = position === "absolute",
+ overflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/,
+ scrollParent = this.parents().filter( function() {
+ var parent = $( this );
+ if ( excludeStaticParent && parent.css( "position" ) === "static" ) {
+ return false;
+ }
+ return overflowRegex.test( parent.css( "overflow" ) + parent.css( "overflow-y" ) +
+ parent.css( "overflow-x" ) );
+ } ).eq( 0 );
+
+ return position === "fixed" || !scrollParent.length ?
+ $( this[ 0 ].ownerDocument || document ) :
+ scrollParent;
+};
+
+
+
+
+// This file is deprecated
+var ie = $.ui.ie = !!/msie [\w.]+/.exec( navigator.userAgent.toLowerCase() );
+
+/*!
+ * jQuery UI Mouse 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Mouse
+//>>group: Widgets
+//>>description: Abstracts mouse-based interactions to assist in creating certain widgets.
+//>>docs: http://api.jqueryui.com/mouse/
+
+
+
+var mouseHandled = false;
+$( document ).on( "mouseup", function() {
+ mouseHandled = false;
+} );
+
+var widgetsMouse = $.widget( "ui.mouse", {
+ version: "1.12.1",
+ options: {
+ cancel: "input, textarea, button, select, option",
+ distance: 1,
+ delay: 0
+ },
+ _mouseInit: function() {
+ var that = this;
+
+ this.element
+ .on( "mousedown." + this.widgetName, function( event ) {
+ return that._mouseDown( event );
+ } )
+ .on( "click." + this.widgetName, function( event ) {
+ if ( true === $.data( event.target, that.widgetName + ".preventClickEvent" ) ) {
+ $.removeData( event.target, that.widgetName + ".preventClickEvent" );
+ event.stopImmediatePropagation();
+ return false;
+ }
+ } );
+
+ this.started = false;
+ },
+
+ // TODO: make sure destroying one instance of mouse doesn't mess with
+ // other instances of mouse
+ _mouseDestroy: function() {
+ this.element.off( "." + this.widgetName );
+ if ( this._mouseMoveDelegate ) {
+ this.document
+ .off( "mousemove." + this.widgetName, this._mouseMoveDelegate )
+ .off( "mouseup." + this.widgetName, this._mouseUpDelegate );
+ }
+ },
+
+ _mouseDown: function( event ) {
+
+ // don't let more than one widget handle mouseStart
+ if ( mouseHandled ) {
+ return;
+ }
+
+ this._mouseMoved = false;
+
+ // We may have missed mouseup (out of window)
+ ( this._mouseStarted && this._mouseUp( event ) );
+
+ this._mouseDownEvent = event;
+
+ var that = this,
+ btnIsLeft = ( event.which === 1 ),
+
+ // event.target.nodeName works around a bug in IE 8 with
+ // disabled inputs (#7620)
+ elIsCancel = ( typeof this.options.cancel === "string" && event.target.nodeName ?
+ $( event.target ).closest( this.options.cancel ).length : false );
+ if ( !btnIsLeft || elIsCancel || !this._mouseCapture( event ) ) {
+ return true;
+ }
+
+ this.mouseDelayMet = !this.options.delay;
+ if ( !this.mouseDelayMet ) {
+ this._mouseDelayTimer = setTimeout( function() {
+ that.mouseDelayMet = true;
+ }, this.options.delay );
+ }
+
+ if ( this._mouseDistanceMet( event ) && this._mouseDelayMet( event ) ) {
+ this._mouseStarted = ( this._mouseStart( event ) !== false );
+ if ( !this._mouseStarted ) {
+ event.preventDefault();
+ return true;
+ }
+ }
+
+ // Click event may never have fired (Gecko & Opera)
+ if ( true === $.data( event.target, this.widgetName + ".preventClickEvent" ) ) {
+ $.removeData( event.target, this.widgetName + ".preventClickEvent" );
+ }
+
+ // These delegates are required to keep context
+ this._mouseMoveDelegate = function( event ) {
+ return that._mouseMove( event );
+ };
+ this._mouseUpDelegate = function( event ) {
+ return that._mouseUp( event );
+ };
+
+ this.document
+ .on( "mousemove." + this.widgetName, this._mouseMoveDelegate )
+ .on( "mouseup." + this.widgetName, this._mouseUpDelegate );
+
+ event.preventDefault();
+
+ mouseHandled = true;
+ return true;
+ },
+
+ _mouseMove: function( event ) {
+
+ // Only check for mouseups outside the document if you've moved inside the document
+ // at least once. This prevents the firing of mouseup in the case of IE<9, which will
+ // fire a mousemove event if content is placed under the cursor. See #7778
+ // Support: IE <9
+ if ( this._mouseMoved ) {
+
+ // IE mouseup check - mouseup happened when mouse was out of window
+ if ( $.ui.ie && ( !document.documentMode || document.documentMode < 9 ) &&
+ !event.button ) {
+ return this._mouseUp( event );
+
+ // Iframe mouseup check - mouseup occurred in another document
+ } else if ( !event.which ) {
+
+ // Support: Safari <=8 - 9
+ // Safari sets which to 0 if you press any of the following keys
+ // during a drag (#14461)
+ if ( event.originalEvent.altKey || event.originalEvent.ctrlKey ||
+ event.originalEvent.metaKey || event.originalEvent.shiftKey ) {
+ this.ignoreMissingWhich = true;
+ } else if ( !this.ignoreMissingWhich ) {
+ return this._mouseUp( event );
+ }
+ }
+ }
+
+ if ( event.which || event.button ) {
+ this._mouseMoved = true;
+ }
+
+ if ( this._mouseStarted ) {
+ this._mouseDrag( event );
+ return event.preventDefault();
+ }
+
+ if ( this._mouseDistanceMet( event ) && this._mouseDelayMet( event ) ) {
+ this._mouseStarted =
+ ( this._mouseStart( this._mouseDownEvent, event ) !== false );
+ ( this._mouseStarted ? this._mouseDrag( event ) : this._mouseUp( event ) );
+ }
+
+ return !this._mouseStarted;
+ },
+
+ _mouseUp: function( event ) {
+ this.document
+ .off( "mousemove." + this.widgetName, this._mouseMoveDelegate )
+ .off( "mouseup." + this.widgetName, this._mouseUpDelegate );
+
+ if ( this._mouseStarted ) {
+ this._mouseStarted = false;
+
+ if ( event.target === this._mouseDownEvent.target ) {
+ $.data( event.target, this.widgetName + ".preventClickEvent", true );
+ }
+
+ this._mouseStop( event );
+ }
+
+ if ( this._mouseDelayTimer ) {
+ clearTimeout( this._mouseDelayTimer );
+ delete this._mouseDelayTimer;
+ }
+
+ this.ignoreMissingWhich = false;
+ mouseHandled = false;
+ event.preventDefault();
+ },
+
+ _mouseDistanceMet: function( event ) {
+ return ( Math.max(
+ Math.abs( this._mouseDownEvent.pageX - event.pageX ),
+ Math.abs( this._mouseDownEvent.pageY - event.pageY )
+ ) >= this.options.distance
+ );
+ },
+
+ _mouseDelayMet: function( /* event */ ) {
+ return this.mouseDelayMet;
+ },
+
+ // These are placeholder methods, to be overriden by extending plugin
+ _mouseStart: function( /* event */ ) {},
+ _mouseDrag: function( /* event */ ) {},
+ _mouseStop: function( /* event */ ) {},
+ _mouseCapture: function( /* event */ ) { return true; }
+} );
+
+
+
+
+// $.ui.plugin is deprecated. Use $.widget() extensions instead.
+var plugin = $.ui.plugin = {
+ add: function( module, option, set ) {
+ var i,
+ proto = $.ui[ module ].prototype;
+ for ( i in set ) {
+ proto.plugins[ i ] = proto.plugins[ i ] || [];
+ proto.plugins[ i ].push( [ option, set[ i ] ] );
+ }
+ },
+ call: function( instance, name, args, allowDisconnected ) {
+ var i,
+ set = instance.plugins[ name ];
+
+ if ( !set ) {
+ return;
+ }
+
+ if ( !allowDisconnected && ( !instance.element[ 0 ].parentNode ||
+ instance.element[ 0 ].parentNode.nodeType === 11 ) ) {
+ return;
+ }
+
+ for ( i = 0; i < set.length; i++ ) {
+ if ( instance.options[ set[ i ][ 0 ] ] ) {
+ set[ i ][ 1 ].apply( instance.element, args );
+ }
+ }
+ }
+};
+
+
+
+var safeActiveElement = $.ui.safeActiveElement = function( document ) {
+ var activeElement;
+
+ // Support: IE 9 only
+ // IE9 throws an "Unspecified error" accessing document.activeElement from an <iframe>
+ try {
+ activeElement = document.activeElement;
+ } catch ( error ) {
+ activeElement = document.body;
+ }
+
+ // Support: IE 9 - 11 only
+ // IE may return null instead of an element
+ // Interestingly, this only seems to occur when NOT in an iframe
+ if ( !activeElement ) {
+ activeElement = document.body;
+ }
+
+ // Support: IE 11 only
+ // IE11 returns a seemingly empty object in some cases when accessing
+ // document.activeElement from an <iframe>
+ if ( !activeElement.nodeName ) {
+ activeElement = document.body;
+ }
+
+ return activeElement;
+};
+
+
+
+var safeBlur = $.ui.safeBlur = function( element ) {
+
+ // Support: IE9 - 10 only
+ // If the <body> is blurred, IE will switch windows, see #9420
+ if ( element && element.nodeName.toLowerCase() !== "body" ) {
+ $( element ).trigger( "blur" );
+ }
+};
+
+
+/*!
+ * jQuery UI Draggable 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Draggable
+//>>group: Interactions
+//>>description: Enables dragging functionality for any element.
+//>>docs: http://api.jqueryui.com/draggable/
+//>>demos: http://jqueryui.com/draggable/
+//>>css.structure: ../../themes/base/draggable.css
+
+
+
+$.widget( "ui.draggable", $.ui.mouse, {
+ version: "1.12.1",
+ widgetEventPrefix: "drag",
+ options: {
+ addClasses: true,
+ appendTo: "parent",
+ axis: false,
+ connectToSortable: false,
+ containment: false,
+ cursor: "auto",
+ cursorAt: false,
+ grid: false,
+ handle: false,
+ helper: "original",
+ iframeFix: false,
+ opacity: false,
+ refreshPositions: false,
+ revert: false,
+ revertDuration: 500,
+ scope: "default",
+ scroll: true,
+ scrollSensitivity: 20,
+ scrollSpeed: 20,
+ snap: false,
+ snapMode: "both",
+ snapTolerance: 20,
+ stack: false,
+ zIndex: false,
+
+ // Callbacks
+ drag: null,
+ start: null,
+ stop: null
+ },
+ _create: function() {
+
+ if ( this.options.helper === "original" ) {
+ this._setPositionRelative();
+ }
+ if ( this.options.addClasses ) {
+ this._addClass( "ui-draggable" );
+ }
+ this._setHandleClassName();
+
+ this._mouseInit();
+ },
+
+ _setOption: function( key, value ) {
+ this._super( key, value );
+ if ( key === "handle" ) {
+ this._removeHandleClassName();
+ this._setHandleClassName();
+ }
+ },
+
+ _destroy: function() {
+ if ( ( this.helper || this.element ).is( ".ui-draggable-dragging" ) ) {
+ this.destroyOnClear = true;
+ return;
+ }
+ this._removeHandleClassName();
+ this._mouseDestroy();
+ },
+
+ _mouseCapture: function( event ) {
+ var o = this.options;
+
+ // Among others, prevent a drag on a resizable-handle
+ if ( this.helper || o.disabled ||
+ $( event.target ).closest( ".ui-resizable-handle" ).length > 0 ) {
+ return false;
+ }
+
+ //Quit if we're not on a valid handle
+ this.handle = this._getHandle( event );
+ if ( !this.handle ) {
+ return false;
+ }
+
+ this._blurActiveElement( event );
+
+ this._blockFrames( o.iframeFix === true ? "iframe" : o.iframeFix );
+
+ return true;
+
+ },
+
+ _blockFrames: function( selector ) {
+ this.iframeBlocks = this.document.find( selector ).map( function() {
+ var iframe = $( this );
+
+ return $( "<div>" )
+ .css( "position", "absolute" )
+ .appendTo( iframe.parent() )
+ .outerWidth( iframe.outerWidth() )
+ .outerHeight( iframe.outerHeight() )
+ .offset( iframe.offset() )[ 0 ];
+ } );
+ },
+
+ _unblockFrames: function() {
+ if ( this.iframeBlocks ) {
+ this.iframeBlocks.remove();
+ delete this.iframeBlocks;
+ }
+ },
+
+ _blurActiveElement: function( event ) {
+ var activeElement = $.ui.safeActiveElement( this.document[ 0 ] ),
+ target = $( event.target );
+
+ // Don't blur if the event occurred on an element that is within
+ // the currently focused element
+ // See #10527, #12472
+ if ( target.closest( activeElement ).length ) {
+ return;
+ }
+
+ // Blur any element that currently has focus, see #4261
+ $.ui.safeBlur( activeElement );
+ },
+
+ _mouseStart: function( event ) {
+
+ var o = this.options;
+
+ //Create and append the visible helper
+ this.helper = this._createHelper( event );
+
+ this._addClass( this.helper, "ui-draggable-dragging" );
+
+ //Cache the helper size
+ this._cacheHelperProportions();
+
+ //If ddmanager is used for droppables, set the global draggable
+ if ( $.ui.ddmanager ) {
+ $.ui.ddmanager.current = this;
+ }
+
+ /*
+ * - Position generation -
+ * This block generates everything position related - it's the core of draggables.
+ */
+
+ //Cache the margins of the original element
+ this._cacheMargins();
+
+ //Store the helper's css position
+ this.cssPosition = this.helper.css( "position" );
+ this.scrollParent = this.helper.scrollParent( true );
+ this.offsetParent = this.helper.offsetParent();
+ this.hasFixedAncestor = this.helper.parents().filter( function() {
+ return $( this ).css( "position" ) === "fixed";
+ } ).length > 0;
+
+ //The element's absolute position on the page minus margins
+ this.positionAbs = this.element.offset();
+ this._refreshOffsets( event );
+
+ //Generate the original position
+ this.originalPosition = this.position = this._generatePosition( event, false );
+ this.originalPageX = event.pageX;
+ this.originalPageY = event.pageY;
+
+ //Adjust the mouse offset relative to the helper if "cursorAt" is supplied
+ ( o.cursorAt && this._adjustOffsetFromHelper( o.cursorAt ) );
+
+ //Set a containment if given in the options
+ this._setContainment();
+
+ //Trigger event + callbacks
+ if ( this._trigger( "start", event ) === false ) {
+ this._clear();
+ return false;
+ }
+
+ //Recache the helper size
+ this._cacheHelperProportions();
+
+ //Prepare the droppable offsets
+ if ( $.ui.ddmanager && !o.dropBehaviour ) {
+ $.ui.ddmanager.prepareOffsets( this, event );
+ }
+
+ // Execute the drag once - this causes the helper not to be visible before getting its
+ // correct position
+ this._mouseDrag( event, true );
+
+ // If the ddmanager is used for droppables, inform the manager that dragging has started
+ // (see #5003)
+ if ( $.ui.ddmanager ) {
+ $.ui.ddmanager.dragStart( this, event );
+ }
+
+ return true;
+ },
+
+ _refreshOffsets: function( event ) {
+ this.offset = {
+ top: this.positionAbs.top - this.margins.top,
+ left: this.positionAbs.left - this.margins.left,
+ scroll: false,
+ parent: this._getParentOffset(),
+ relative: this._getRelativeOffset()
+ };
+
+ this.offset.click = {
+ left: event.pageX - this.offset.left,
+ top: event.pageY - this.offset.top
+ };
+ },
+
+ _mouseDrag: function( event, noPropagation ) {
+
+ // reset any necessary cached properties (see #5009)
+ if ( this.hasFixedAncestor ) {
+ this.offset.parent = this._getParentOffset();
+ }
+
+ //Compute the helpers position
+ this.position = this._generatePosition( event, true );
+ this.positionAbs = this._convertPositionTo( "absolute" );
+
+ //Call plugins and callbacks and use the resulting position if something is returned
+ if ( !noPropagation ) {
+ var ui = this._uiHash();
+ if ( this._trigger( "drag", event, ui ) === false ) {
+ this._mouseUp( new $.Event( "mouseup", event ) );
+ return false;
+ }
+ this.position = ui.position;
+ }
+
+ this.helper[ 0 ].style.left = this.position.left + "px";
+ this.helper[ 0 ].style.top = this.position.top + "px";
+
+ if ( $.ui.ddmanager ) {
+ $.ui.ddmanager.drag( this, event );
+ }
+
+ return false;
+ },
+
+ _mouseStop: function( event ) {
+
+ //If we are using droppables, inform the manager about the drop
+ var that = this,
+ dropped = false;
+ if ( $.ui.ddmanager && !this.options.dropBehaviour ) {
+ dropped = $.ui.ddmanager.drop( this, event );
+ }
+
+ //if a drop comes from outside (a sortable)
+ if ( this.dropped ) {
+ dropped = this.dropped;
+ this.dropped = false;
+ }
+
+ if ( ( this.options.revert === "invalid" && !dropped ) ||
+ ( this.options.revert === "valid" && dropped ) ||
+ this.options.revert === true || ( $.isFunction( this.options.revert ) &&
+ this.options.revert.call( this.element, dropped ) )
+ ) {
+ $( this.helper ).animate(
+ this.originalPosition,
+ parseInt( this.options.revertDuration, 10 ),
+ function() {
+ if ( that._trigger( "stop", event ) !== false ) {
+ that._clear();
+ }
+ }
+ );
+ } else {
+ if ( this._trigger( "stop", event ) !== false ) {
+ this._clear();
+ }
+ }
+
+ return false;
+ },
+
+ _mouseUp: function( event ) {
+ this._unblockFrames();
+
+ // If the ddmanager is used for droppables, inform the manager that dragging has stopped
+ // (see #5003)
+ if ( $.ui.ddmanager ) {
+ $.ui.ddmanager.dragStop( this, event );
+ }
+
+ // Only need to focus if the event occurred on the draggable itself, see #10527
+ if ( this.handleElement.is( event.target ) ) {
+
+ // The interaction is over; whether or not the click resulted in a drag,
+ // focus the element
+ this.element.trigger( "focus" );
+ }
+
+ return $.ui.mouse.prototype._mouseUp.call( this, event );
+ },
+
+ cancel: function() {
+
+ if ( this.helper.is( ".ui-draggable-dragging" ) ) {
+ this._mouseUp( new $.Event( "mouseup", { target: this.element[ 0 ] } ) );
+ } else {
+ this._clear();
+ }
+
+ return this;
+
+ },
+
+ _getHandle: function( event ) {
+ return this.options.handle ?
+ !!$( event.target ).closest( this.element.find( this.options.handle ) ).length :
+ true;
+ },
+
+ _setHandleClassName: function() {
+ this.handleElement = this.options.handle ?
+ this.element.find( this.options.handle ) : this.element;
+ this._addClass( this.handleElement, "ui-draggable-handle" );
+ },
+
+ _removeHandleClassName: function() {
+ this._removeClass( this.handleElement, "ui-draggable-handle" );
+ },
+
+ _createHelper: function( event ) {
+
+ var o = this.options,
+ helperIsFunction = $.isFunction( o.helper ),
+ helper = helperIsFunction ?
+ $( o.helper.apply( this.element[ 0 ], [ event ] ) ) :
+ ( o.helper === "clone" ?
+ this.element.clone().removeAttr( "id" ) :
+ this.element );
+
+ if ( !helper.parents( "body" ).length ) {
+ helper.appendTo( ( o.appendTo === "parent" ?
+ this.element[ 0 ].parentNode :
+ o.appendTo ) );
+ }
+
+ // Http://bugs.jqueryui.com/ticket/9446
+ // a helper function can return the original element
+ // which wouldn't have been set to relative in _create
+ if ( helperIsFunction && helper[ 0 ] === this.element[ 0 ] ) {
+ this._setPositionRelative();
+ }
+
+ if ( helper[ 0 ] !== this.element[ 0 ] &&
+ !( /(fixed|absolute)/ ).test( helper.css( "position" ) ) ) {
+ helper.css( "position", "absolute" );
+ }
+
+ return helper;
+
+ },
+
+ _setPositionRelative: function() {
+ if ( !( /^(?:r|a|f)/ ).test( this.element.css( "position" ) ) ) {
+ this.element[ 0 ].style.position = "relative";
+ }
+ },
+
+ _adjustOffsetFromHelper: function( obj ) {
+ if ( typeof obj === "string" ) {
+ obj = obj.split( " " );
+ }
+ if ( $.isArray( obj ) ) {
+ obj = { left: +obj[ 0 ], top: +obj[ 1 ] || 0 };
+ }
+ if ( "left" in obj ) {
+ this.offset.click.left = obj.left + this.margins.left;
+ }
+ if ( "right" in obj ) {
+ this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left;
+ }
+ if ( "top" in obj ) {
+ this.offset.click.top = obj.top + this.margins.top;
+ }
+ if ( "bottom" in obj ) {
+ this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top;
+ }
+ },
+
+ _isRootNode: function( element ) {
+ return ( /(html|body)/i ).test( element.tagName ) || element === this.document[ 0 ];
+ },
+
+ _getParentOffset: function() {
+
+ //Get the offsetParent and cache its position
+ var po = this.offsetParent.offset(),
+ document = this.document[ 0 ];
+
+ // This is a special case where we need to modify a offset calculated on start, since the
+ // following happened:
+ // 1. The position of the helper is absolute, so it's position is calculated based on the
+ // next positioned parent
+ // 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't
+ // the document, which means that the scroll is included in the initial calculation of the
+ // offset of the parent, and never recalculated upon drag
+ if ( this.cssPosition === "absolute" && this.scrollParent[ 0 ] !== document &&
+ $.contains( this.scrollParent[ 0 ], this.offsetParent[ 0 ] ) ) {
+ po.left += this.scrollParent.scrollLeft();
+ po.top += this.scrollParent.scrollTop();
+ }
+
+ if ( this._isRootNode( this.offsetParent[ 0 ] ) ) {
+ po = { top: 0, left: 0 };
+ }
+
+ return {
+ top: po.top + ( parseInt( this.offsetParent.css( "borderTopWidth" ), 10 ) || 0 ),
+ left: po.left + ( parseInt( this.offsetParent.css( "borderLeftWidth" ), 10 ) || 0 )
+ };
+
+ },
+
+ _getRelativeOffset: function() {
+ if ( this.cssPosition !== "relative" ) {
+ return { top: 0, left: 0 };
+ }
+
+ var p = this.element.position(),
+ scrollIsRootNode = this._isRootNode( this.scrollParent[ 0 ] );
+
+ return {
+ top: p.top - ( parseInt( this.helper.css( "top" ), 10 ) || 0 ) +
+ ( !scrollIsRootNode ? this.scrollParent.scrollTop() : 0 ),
+ left: p.left - ( parseInt( this.helper.css( "left" ), 10 ) || 0 ) +
+ ( !scrollIsRootNode ? this.scrollParent.scrollLeft() : 0 )
+ };
+
+ },
+
+ _cacheMargins: function() {
+ this.margins = {
+ left: ( parseInt( this.element.css( "marginLeft" ), 10 ) || 0 ),
+ top: ( parseInt( this.element.css( "marginTop" ), 10 ) || 0 ),
+ right: ( parseInt( this.element.css( "marginRight" ), 10 ) || 0 ),
+ bottom: ( parseInt( this.element.css( "marginBottom" ), 10 ) || 0 )
+ };
+ },
+
+ _cacheHelperProportions: function() {
+ this.helperProportions = {
+ width: this.helper.outerWidth(),
+ height: this.helper.outerHeight()
+ };
+ },
+
+ _setContainment: function() {
+
+ var isUserScrollable, c, ce,
+ o = this.options,
+ document = this.document[ 0 ];
+
+ this.relativeContainer = null;
+
+ if ( !o.containment ) {
+ this.containment = null;
+ return;
+ }
+
+ if ( o.containment === "window" ) {
+ this.containment = [
+ $( window ).scrollLeft() - this.offset.relative.left - this.offset.parent.left,
+ $( window ).scrollTop() - this.offset.relative.top - this.offset.parent.top,
+ $( window ).scrollLeft() + $( window ).width() -
+ this.helperProportions.width - this.margins.left,
+ $( window ).scrollTop() +
+ ( $( window ).height() || document.body.parentNode.scrollHeight ) -
+ this.helperProportions.height - this.margins.top
+ ];
+ return;
+ }
+
+ if ( o.containment === "document" ) {
+ this.containment = [
+ 0,
+ 0,
+ $( document ).width() - this.helperProportions.width - this.margins.left,
+ ( $( document ).height() || document.body.parentNode.scrollHeight ) -
+ this.helperProportions.height - this.margins.top
+ ];
+ return;
+ }
+
+ if ( o.containment.constructor === Array ) {
+ this.containment = o.containment;
+ return;
+ }
+
+ if ( o.containment === "parent" ) {
+ o.containment = this.helper[ 0 ].parentNode;
+ }
+
+ c = $( o.containment );
+ ce = c[ 0 ];
+
+ if ( !ce ) {
+ return;
+ }
+
+ isUserScrollable = /(scroll|auto)/.test( c.css( "overflow" ) );
+
+ this.containment = [
+ ( parseInt( c.css( "borderLeftWidth" ), 10 ) || 0 ) +
+ ( parseInt( c.css( "paddingLeft" ), 10 ) || 0 ),
+ ( parseInt( c.css( "borderTopWidth" ), 10 ) || 0 ) +
+ ( parseInt( c.css( "paddingTop" ), 10 ) || 0 ),
+ ( isUserScrollable ? Math.max( ce.scrollWidth, ce.offsetWidth ) : ce.offsetWidth ) -
+ ( parseInt( c.css( "borderRightWidth" ), 10 ) || 0 ) -
+ ( parseInt( c.css( "paddingRight" ), 10 ) || 0 ) -
+ this.helperProportions.width -
+ this.margins.left -
+ this.margins.right,
+ ( isUserScrollable ? Math.max( ce.scrollHeight, ce.offsetHeight ) : ce.offsetHeight ) -
+ ( parseInt( c.css( "borderBottomWidth" ), 10 ) || 0 ) -
+ ( parseInt( c.css( "paddingBottom" ), 10 ) || 0 ) -
+ this.helperProportions.height -
+ this.margins.top -
+ this.margins.bottom
+ ];
+ this.relativeContainer = c;
+ },
+
+ _convertPositionTo: function( d, pos ) {
+
+ if ( !pos ) {
+ pos = this.position;
+ }
+
+ var mod = d === "absolute" ? 1 : -1,
+ scrollIsRootNode = this._isRootNode( this.scrollParent[ 0 ] );
+
+ return {
+ top: (
+
+ // The absolute mouse position
+ pos.top +
+
+ // Only for relative positioned nodes: Relative offset from element to offset parent
+ this.offset.relative.top * mod +
+
+ // The offsetParent's offset without borders (offset + border)
+ this.offset.parent.top * mod -
+ ( ( this.cssPosition === "fixed" ?
+ -this.offset.scroll.top :
+ ( scrollIsRootNode ? 0 : this.offset.scroll.top ) ) * mod )
+ ),
+ left: (
+
+ // The absolute mouse position
+ pos.left +
+
+ // Only for relative positioned nodes: Relative offset from element to offset parent
+ this.offset.relative.left * mod +
+
+ // The offsetParent's offset without borders (offset + border)
+ this.offset.parent.left * mod -
+ ( ( this.cssPosition === "fixed" ?
+ -this.offset.scroll.left :
+ ( scrollIsRootNode ? 0 : this.offset.scroll.left ) ) * mod )
+ )
+ };
+
+ },
+
+ _generatePosition: function( event, constrainPosition ) {
+
+ var containment, co, top, left,
+ o = this.options,
+ scrollIsRootNode = this._isRootNode( this.scrollParent[ 0 ] ),
+ pageX = event.pageX,
+ pageY = event.pageY;
+
+ // Cache the scroll
+ if ( !scrollIsRootNode || !this.offset.scroll ) {
+ this.offset.scroll = {
+ top: this.scrollParent.scrollTop(),
+ left: this.scrollParent.scrollLeft()
+ };
+ }
+
+ /*
+ * - Position constraining -
+ * Constrain the position to a mix of grid, containment.
+ */
+
+ // If we are not dragging yet, we won't check for options
+ if ( constrainPosition ) {
+ if ( this.containment ) {
+ if ( this.relativeContainer ) {
+ co = this.relativeContainer.offset();
+ containment = [
+ this.containment[ 0 ] + co.left,
+ this.containment[ 1 ] + co.top,
+ this.containment[ 2 ] + co.left,
+ this.containment[ 3 ] + co.top
+ ];
+ } else {
+ containment = this.containment;
+ }
+
+ if ( event.pageX - this.offset.click.left < containment[ 0 ] ) {
+ pageX = containment[ 0 ] + this.offset.click.left;
+ }
+ if ( event.pageY - this.offset.click.top < containment[ 1 ] ) {
+ pageY = containment[ 1 ] + this.offset.click.top;
+ }
+ if ( event.pageX - this.offset.click.left > containment[ 2 ] ) {
+ pageX = containment[ 2 ] + this.offset.click.left;
+ }
+ if ( event.pageY - this.offset.click.top > containment[ 3 ] ) {
+ pageY = containment[ 3 ] + this.offset.click.top;
+ }
+ }
+
+ if ( o.grid ) {
+
+ //Check for grid elements set to 0 to prevent divide by 0 error causing invalid
+ // argument errors in IE (see ticket #6950)
+ top = o.grid[ 1 ] ? this.originalPageY + Math.round( ( pageY -
+ this.originalPageY ) / o.grid[ 1 ] ) * o.grid[ 1 ] : this.originalPageY;
+ pageY = containment ? ( ( top - this.offset.click.top >= containment[ 1 ] ||
+ top - this.offset.click.top > containment[ 3 ] ) ?
+ top :
+ ( ( top - this.offset.click.top >= containment[ 1 ] ) ?
+ top - o.grid[ 1 ] : top + o.grid[ 1 ] ) ) : top;
+
+ left = o.grid[ 0 ] ? this.originalPageX +
+ Math.round( ( pageX - this.originalPageX ) / o.grid[ 0 ] ) * o.grid[ 0 ] :
+ this.originalPageX;
+ pageX = containment ? ( ( left - this.offset.click.left >= containment[ 0 ] ||
+ left - this.offset.click.left > containment[ 2 ] ) ?
+ left :
+ ( ( left - this.offset.click.left >= containment[ 0 ] ) ?
+ left - o.grid[ 0 ] : left + o.grid[ 0 ] ) ) : left;
+ }
+
+ if ( o.axis === "y" ) {
+ pageX = this.originalPageX;
+ }
+
+ if ( o.axis === "x" ) {
+ pageY = this.originalPageY;
+ }
+ }
+
+ return {
+ top: (
+
+ // The absolute mouse position
+ pageY -
+
+ // Click offset (relative to the element)
+ this.offset.click.top -
+
+ // Only for relative positioned nodes: Relative offset from element to offset parent
+ this.offset.relative.top -
+
+ // The offsetParent's offset without borders (offset + border)
+ this.offset.parent.top +
+ ( this.cssPosition === "fixed" ?
+ -this.offset.scroll.top :
+ ( scrollIsRootNode ? 0 : this.offset.scroll.top ) )
+ ),
+ left: (
+
+ // The absolute mouse position
+ pageX -
+
+ // Click offset (relative to the element)
+ this.offset.click.left -
+
+ // Only for relative positioned nodes: Relative offset from element to offset parent
+ this.offset.relative.left -
+
+ // The offsetParent's offset without borders (offset + border)
+ this.offset.parent.left +
+ ( this.cssPosition === "fixed" ?
+ -this.offset.scroll.left :
+ ( scrollIsRootNode ? 0 : this.offset.scroll.left ) )
+ )
+ };
+
+ },
+
+ _clear: function() {
+ this._removeClass( this.helper, "ui-draggable-dragging" );
+ if ( this.helper[ 0 ] !== this.element[ 0 ] && !this.cancelHelperRemoval ) {
+ this.helper.remove();
+ }
+ this.helper = null;
+ this.cancelHelperRemoval = false;
+ if ( this.destroyOnClear ) {
+ this.destroy();
+ }
+ },
+
+ // From now on bulk stuff - mainly helpers
+
+ _trigger: function( type, event, ui ) {
+ ui = ui || this._uiHash();
+ $.ui.plugin.call( this, type, [ event, ui, this ], true );
+
+ // Absolute position and offset (see #6884 ) have to be recalculated after plugins
+ if ( /^(drag|start|stop)/.test( type ) ) {
+ this.positionAbs = this._convertPositionTo( "absolute" );
+ ui.offset = this.positionAbs;
+ }
+ return $.Widget.prototype._trigger.call( this, type, event, ui );
+ },
+
+ plugins: {},
+
+ _uiHash: function() {
+ return {
+ helper: this.helper,
+ position: this.position,
+ originalPosition: this.originalPosition,
+ offset: this.positionAbs
+ };
+ }
+
+} );
+
+$.ui.plugin.add( "draggable", "connectToSortable", {
+ start: function( event, ui, draggable ) {
+ var uiSortable = $.extend( {}, ui, {
+ item: draggable.element
+ } );
+
+ draggable.sortables = [];
+ $( draggable.options.connectToSortable ).each( function() {
+ var sortable = $( this ).sortable( "instance" );
+
+ if ( sortable && !sortable.options.disabled ) {
+ draggable.sortables.push( sortable );
+
+ // RefreshPositions is called at drag start to refresh the containerCache
+ // which is used in drag. This ensures it's initialized and synchronized
+ // with any changes that might have happened on the page since initialization.
+ sortable.refreshPositions();
+ sortable._trigger( "activate", event, uiSortable );
+ }
+ } );
+ },
+ stop: function( event, ui, draggable ) {
+ var uiSortable = $.extend( {}, ui, {
+ item: draggable.element
+ } );
+
+ draggable.cancelHelperRemoval = false;
+
+ $.each( draggable.sortables, function() {
+ var sortable = this;
+
+ if ( sortable.isOver ) {
+ sortable.isOver = 0;
+
+ // Allow this sortable to handle removing the helper
+ draggable.cancelHelperRemoval = true;
+ sortable.cancelHelperRemoval = false;
+
+ // Use _storedCSS To restore properties in the sortable,
+ // as this also handles revert (#9675) since the draggable
+ // may have modified them in unexpected ways (#8809)
+ sortable._storedCSS = {
+ position: sortable.placeholder.css( "position" ),
+ top: sortable.placeholder.css( "top" ),
+ left: sortable.placeholder.css( "left" )
+ };
+
+ sortable._mouseStop( event );
+
+ // Once drag has ended, the sortable should return to using
+ // its original helper, not the shared helper from draggable
+ sortable.options.helper = sortable.options._helper;
+ } else {
+
+ // Prevent this Sortable from removing the helper.
+ // However, don't set the draggable to remove the helper
+ // either as another connected Sortable may yet handle the removal.
+ sortable.cancelHelperRemoval = true;
+
+ sortable._trigger( "deactivate", event, uiSortable );
+ }
+ } );
+ },
+ drag: function( event, ui, draggable ) {
+ $.each( draggable.sortables, function() {
+ var innermostIntersecting = false,
+ sortable = this;
+
+ // Copy over variables that sortable's _intersectsWith uses
+ sortable.positionAbs = draggable.positionAbs;
+ sortable.helperProportions = draggable.helperProportions;
+ sortable.offset.click = draggable.offset.click;
+
+ if ( sortable._intersectsWith( sortable.containerCache ) ) {
+ innermostIntersecting = true;
+
+ $.each( draggable.sortables, function() {
+
+ // Copy over variables that sortable's _intersectsWith uses
+ this.positionAbs = draggable.positionAbs;
+ this.helperProportions = draggable.helperProportions;
+ this.offset.click = draggable.offset.click;
+
+ if ( this !== sortable &&
+ this._intersectsWith( this.containerCache ) &&
+ $.contains( sortable.element[ 0 ], this.element[ 0 ] ) ) {
+ innermostIntersecting = false;
+ }
+
+ return innermostIntersecting;
+ } );
+ }
+
+ if ( innermostIntersecting ) {
+
+ // If it intersects, we use a little isOver variable and set it once,
+ // so that the move-in stuff gets fired only once.
+ if ( !sortable.isOver ) {
+ sortable.isOver = 1;
+
+ // Store draggable's parent in case we need to reappend to it later.
+ draggable._parent = ui.helper.parent();
+
+ sortable.currentItem = ui.helper
+ .appendTo( sortable.element )
+ .data( "ui-sortable-item", true );
+
+ // Store helper option to later restore it
+ sortable.options._helper = sortable.options.helper;
+
+ sortable.options.helper = function() {
+ return ui.helper[ 0 ];
+ };
+
+ // Fire the start events of the sortable with our passed browser event,
+ // and our own helper (so it doesn't create a new one)
+ event.target = sortable.currentItem[ 0 ];
+ sortable._mouseCapture( event, true );
+ sortable._mouseStart( event, true, true );
+
+ // Because the browser event is way off the new appended portlet,
+ // modify necessary variables to reflect the changes
+ sortable.offset.click.top = draggable.offset.click.top;
+ sortable.offset.click.left = draggable.offset.click.left;
+ sortable.offset.parent.left -= draggable.offset.parent.left -
+ sortable.offset.parent.left;
+ sortable.offset.parent.top -= draggable.offset.parent.top -
+ sortable.offset.parent.top;
+
+ draggable._trigger( "toSortable", event );
+
+ // Inform draggable that the helper is in a valid drop zone,
+ // used solely in the revert option to handle "valid/invalid".
+ draggable.dropped = sortable.element;
+
+ // Need to refreshPositions of all sortables in the case that
+ // adding to one sortable changes the location of the other sortables (#9675)
+ $.each( draggable.sortables, function() {
+ this.refreshPositions();
+ } );
+
+ // Hack so receive/update callbacks work (mostly)
+ draggable.currentItem = draggable.element;
+ sortable.fromOutside = draggable;
+ }
+
+ if ( sortable.currentItem ) {
+ sortable._mouseDrag( event );
+
+ // Copy the sortable's position because the draggable's can potentially reflect
+ // a relative position, while sortable is always absolute, which the dragged
+ // element has now become. (#8809)
+ ui.position = sortable.position;
+ }
+ } else {
+
+ // If it doesn't intersect with the sortable, and it intersected before,
+ // we fake the drag stop of the sortable, but make sure it doesn't remove
+ // the helper by using cancelHelperRemoval.
+ if ( sortable.isOver ) {
+
+ sortable.isOver = 0;
+ sortable.cancelHelperRemoval = true;
+
+ // Calling sortable's mouseStop would trigger a revert,
+ // so revert must be temporarily false until after mouseStop is called.
+ sortable.options._revert = sortable.options.revert;
+ sortable.options.revert = false;
+
+ sortable._trigger( "out", event, sortable._uiHash( sortable ) );
+ sortable._mouseStop( event, true );
+
+ // Restore sortable behaviors that were modfied
+ // when the draggable entered the sortable area (#9481)
+ sortable.options.revert = sortable.options._revert;
+ sortable.options.helper = sortable.options._helper;
+
+ if ( sortable.placeholder ) {
+ sortable.placeholder.remove();
+ }
+
+ // Restore and recalculate the draggable's offset considering the sortable
+ // may have modified them in unexpected ways. (#8809, #10669)
+ ui.helper.appendTo( draggable._parent );
+ draggable._refreshOffsets( event );
+ ui.position = draggable._generatePosition( event, true );
+
+ draggable._trigger( "fromSortable", event );
+
+ // Inform draggable that the helper is no longer in a valid drop zone
+ draggable.dropped = false;
+
+ // Need to refreshPositions of all sortables just in case removing
+ // from one sortable changes the location of other sortables (#9675)
+ $.each( draggable.sortables, function() {
+ this.refreshPositions();
+ } );
+ }
+ }
+ } );
+ }
+} );
+
+$.ui.plugin.add( "draggable", "cursor", {
+ start: function( event, ui, instance ) {
+ var t = $( "body" ),
+ o = instance.options;
+
+ if ( t.css( "cursor" ) ) {
+ o._cursor = t.css( "cursor" );
+ }
+ t.css( "cursor", o.cursor );
+ },
+ stop: function( event, ui, instance ) {
+ var o = instance.options;
+ if ( o._cursor ) {
+ $( "body" ).css( "cursor", o._cursor );
+ }
+ }
+} );
+
+$.ui.plugin.add( "draggable", "opacity", {
+ start: function( event, ui, instance ) {
+ var t = $( ui.helper ),
+ o = instance.options;
+ if ( t.css( "opacity" ) ) {
+ o._opacity = t.css( "opacity" );
+ }
+ t.css( "opacity", o.opacity );
+ },
+ stop: function( event, ui, instance ) {
+ var o = instance.options;
+ if ( o._opacity ) {
+ $( ui.helper ).css( "opacity", o._opacity );
+ }
+ }
+} );
+
+$.ui.plugin.add( "draggable", "scroll", {
+ start: function( event, ui, i ) {
+ if ( !i.scrollParentNotHidden ) {
+ i.scrollParentNotHidden = i.helper.scrollParent( false );
+ }
+
+ if ( i.scrollParentNotHidden[ 0 ] !== i.document[ 0 ] &&
+ i.scrollParentNotHidden[ 0 ].tagName !== "HTML" ) {
+ i.overflowOffset = i.scrollParentNotHidden.offset();
+ }
+ },
+ drag: function( event, ui, i ) {
+
+ var o = i.options,
+ scrolled = false,
+ scrollParent = i.scrollParentNotHidden[ 0 ],
+ document = i.document[ 0 ];
+
+ if ( scrollParent !== document && scrollParent.tagName !== "HTML" ) {
+ if ( !o.axis || o.axis !== "x" ) {
+ if ( ( i.overflowOffset.top + scrollParent.offsetHeight ) - event.pageY <
+ o.scrollSensitivity ) {
+ scrollParent.scrollTop = scrolled = scrollParent.scrollTop + o.scrollSpeed;
+ } else if ( event.pageY - i.overflowOffset.top < o.scrollSensitivity ) {
+ scrollParent.scrollTop = scrolled = scrollParent.scrollTop - o.scrollSpeed;
+ }
+ }
+
+ if ( !o.axis || o.axis !== "y" ) {
+ if ( ( i.overflowOffset.left + scrollParent.offsetWidth ) - event.pageX <
+ o.scrollSensitivity ) {
+ scrollParent.scrollLeft = scrolled = scrollParent.scrollLeft + o.scrollSpeed;
+ } else if ( event.pageX - i.overflowOffset.left < o.scrollSensitivity ) {
+ scrollParent.scrollLeft = scrolled = scrollParent.scrollLeft - o.scrollSpeed;
+ }
+ }
+
+ } else {
+
+ if ( !o.axis || o.axis !== "x" ) {
+ if ( event.pageY - $( document ).scrollTop() < o.scrollSensitivity ) {
+ scrolled = $( document ).scrollTop( $( document ).scrollTop() - o.scrollSpeed );
+ } else if ( $( window ).height() - ( event.pageY - $( document ).scrollTop() ) <
+ o.scrollSensitivity ) {
+ scrolled = $( document ).scrollTop( $( document ).scrollTop() + o.scrollSpeed );
+ }
+ }
+
+ if ( !o.axis || o.axis !== "y" ) {
+ if ( event.pageX - $( document ).scrollLeft() < o.scrollSensitivity ) {
+ scrolled = $( document ).scrollLeft(
+ $( document ).scrollLeft() - o.scrollSpeed
+ );
+ } else if ( $( window ).width() - ( event.pageX - $( document ).scrollLeft() ) <
+ o.scrollSensitivity ) {
+ scrolled = $( document ).scrollLeft(
+ $( document ).scrollLeft() + o.scrollSpeed
+ );
+ }
+ }
+
+ }
+
+ if ( scrolled !== false && $.ui.ddmanager && !o.dropBehaviour ) {
+ $.ui.ddmanager.prepareOffsets( i, event );
+ }
+
+ }
+} );
+
+$.ui.plugin.add( "draggable", "snap", {
+ start: function( event, ui, i ) {
+
+ var o = i.options;
+
+ i.snapElements = [];
+
+ $( o.snap.constructor !== String ? ( o.snap.items || ":data(ui-draggable)" ) : o.snap )
+ .each( function() {
+ var $t = $( this ),
+ $o = $t.offset();
+ if ( this !== i.element[ 0 ] ) {
+ i.snapElements.push( {
+ item: this,
+ width: $t.outerWidth(), height: $t.outerHeight(),
+ top: $o.top, left: $o.left
+ } );
+ }
+ } );
+
+ },
+ drag: function( event, ui, inst ) {
+
+ var ts, bs, ls, rs, l, r, t, b, i, first,
+ o = inst.options,
+ d = o.snapTolerance,
+ x1 = ui.offset.left, x2 = x1 + inst.helperProportions.width,
+ y1 = ui.offset.top, y2 = y1 + inst.helperProportions.height;
+
+ for ( i = inst.snapElements.length - 1; i >= 0; i-- ) {
+
+ l = inst.snapElements[ i ].left - inst.margins.left;
+ r = l + inst.snapElements[ i ].width;
+ t = inst.snapElements[ i ].top - inst.margins.top;
+ b = t + inst.snapElements[ i ].height;
+
+ if ( x2 < l - d || x1 > r + d || y2 < t - d || y1 > b + d ||
+ !$.contains( inst.snapElements[ i ].item.ownerDocument,
+ inst.snapElements[ i ].item ) ) {
+ if ( inst.snapElements[ i ].snapping ) {
+ ( inst.options.snap.release &&
+ inst.options.snap.release.call(
+ inst.element,
+ event,
+ $.extend( inst._uiHash(), { snapItem: inst.snapElements[ i ].item } )
+ ) );
+ }
+ inst.snapElements[ i ].snapping = false;
+ continue;
+ }
+
+ if ( o.snapMode !== "inner" ) {
+ ts = Math.abs( t - y2 ) <= d;
+ bs = Math.abs( b - y1 ) <= d;
+ ls = Math.abs( l - x2 ) <= d;
+ rs = Math.abs( r - x1 ) <= d;
+ if ( ts ) {
+ ui.position.top = inst._convertPositionTo( "relative", {
+ top: t - inst.helperProportions.height,
+ left: 0
+ } ).top;
+ }
+ if ( bs ) {
+ ui.position.top = inst._convertPositionTo( "relative", {
+ top: b,
+ left: 0
+ } ).top;
+ }
+ if ( ls ) {
+ ui.position.left = inst._convertPositionTo( "relative", {
+ top: 0,
+ left: l - inst.helperProportions.width
+ } ).left;
+ }
+ if ( rs ) {
+ ui.position.left = inst._convertPositionTo( "relative", {
+ top: 0,
+ left: r
+ } ).left;
+ }
+ }
+
+ first = ( ts || bs || ls || rs );
+
+ if ( o.snapMode !== "outer" ) {
+ ts = Math.abs( t - y1 ) <= d;
+ bs = Math.abs( b - y2 ) <= d;
+ ls = Math.abs( l - x1 ) <= d;
+ rs = Math.abs( r - x2 ) <= d;
+ if ( ts ) {
+ ui.position.top = inst._convertPositionTo( "relative", {
+ top: t,
+ left: 0
+ } ).top;
+ }
+ if ( bs ) {
+ ui.position.top = inst._convertPositionTo( "relative", {
+ top: b - inst.helperProportions.height,
+ left: 0
+ } ).top;
+ }
+ if ( ls ) {
+ ui.position.left = inst._convertPositionTo( "relative", {
+ top: 0,
+ left: l
+ } ).left;
+ }
+ if ( rs ) {
+ ui.position.left = inst._convertPositionTo( "relative", {
+ top: 0,
+ left: r - inst.helperProportions.width
+ } ).left;
+ }
+ }
+
+ if ( !inst.snapElements[ i ].snapping && ( ts || bs || ls || rs || first ) ) {
+ ( inst.options.snap.snap &&
+ inst.options.snap.snap.call(
+ inst.element,
+ event,
+ $.extend( inst._uiHash(), {
+ snapItem: inst.snapElements[ i ].item
+ } ) ) );
+ }
+ inst.snapElements[ i ].snapping = ( ts || bs || ls || rs || first );
+
+ }
+
+ }
+} );
+
+$.ui.plugin.add( "draggable", "stack", {
+ start: function( event, ui, instance ) {
+ var min,
+ o = instance.options,
+ group = $.makeArray( $( o.stack ) ).sort( function( a, b ) {
+ return ( parseInt( $( a ).css( "zIndex" ), 10 ) || 0 ) -
+ ( parseInt( $( b ).css( "zIndex" ), 10 ) || 0 );
+ } );
+
+ if ( !group.length ) { return; }
+
+ min = parseInt( $( group[ 0 ] ).css( "zIndex" ), 10 ) || 0;
+ $( group ).each( function( i ) {
+ $( this ).css( "zIndex", min + i );
+ } );
+ this.css( "zIndex", ( min + group.length ) );
+ }
+} );
+
+$.ui.plugin.add( "draggable", "zIndex", {
+ start: function( event, ui, instance ) {
+ var t = $( ui.helper ),
+ o = instance.options;
+
+ if ( t.css( "zIndex" ) ) {
+ o._zIndex = t.css( "zIndex" );
+ }
+ t.css( "zIndex", o.zIndex );
+ },
+ stop: function( event, ui, instance ) {
+ var o = instance.options;
+
+ if ( o._zIndex ) {
+ $( ui.helper ).css( "zIndex", o._zIndex );
+ }
+ }
+} );
+
+var widgetsDraggable = $.ui.draggable;
+
+
+/*!
+ * jQuery UI Resizable 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Resizable
+//>>group: Interactions
+//>>description: Enables resize functionality for any element.
+//>>docs: http://api.jqueryui.com/resizable/
+//>>demos: http://jqueryui.com/resizable/
+//>>css.structure: ../../themes/base/core.css
+//>>css.structure: ../../themes/base/resizable.css
+//>>css.theme: ../../themes/base/theme.css
+
+
+
+$.widget( "ui.resizable", $.ui.mouse, {
+ version: "1.12.1",
+ widgetEventPrefix: "resize",
+ options: {
+ alsoResize: false,
+ animate: false,
+ animateDuration: "slow",
+ animateEasing: "swing",
+ aspectRatio: false,
+ autoHide: false,
+ classes: {
+ "ui-resizable-se": "ui-icon ui-icon-gripsmall-diagonal-se"
+ },
+ containment: false,
+ ghost: false,
+ grid: false,
+ handles: "e,s,se",
+ helper: false,
+ maxHeight: null,
+ maxWidth: null,
+ minHeight: 10,
+ minWidth: 10,
+
+ // See #7960
+ zIndex: 90,
+
+ // Callbacks
+ resize: null,
+ start: null,
+ stop: null
+ },
+
+ _num: function( value ) {
+ return parseFloat( value ) || 0;
+ },
+
+ _isNumber: function( value ) {
+ return !isNaN( parseFloat( value ) );
+ },
+
+ _hasScroll: function( el, a ) {
+
+ if ( $( el ).css( "overflow" ) === "hidden" ) {
+ return false;
+ }
+
+ var scroll = ( a && a === "left" ) ? "scrollLeft" : "scrollTop",
+ has = false;
+
+ if ( el[ scroll ] > 0 ) {
+ return true;
+ }
+
+ // TODO: determine which cases actually cause this to happen
+ // if the element doesn't have the scroll set, see if it's possible to
+ // set the scroll
+ el[ scroll ] = 1;
+ has = ( el[ scroll ] > 0 );
+ el[ scroll ] = 0;
+ return has;
+ },
+
+ _create: function() {
+
+ var margins,
+ o = this.options,
+ that = this;
+ this._addClass( "ui-resizable" );
+
+ $.extend( this, {
+ _aspectRatio: !!( o.aspectRatio ),
+ aspectRatio: o.aspectRatio,
+ originalElement: this.element,
+ _proportionallyResizeElements: [],
+ _helper: o.helper || o.ghost || o.animate ? o.helper || "ui-resizable-helper" : null
+ } );
+
+ // Wrap the element if it cannot hold child nodes
+ if ( this.element[ 0 ].nodeName.match( /^(canvas|textarea|input|select|button|img)$/i ) ) {
+
+ this.element.wrap(
+ $( "<div class='ui-wrapper' style='overflow: hidden;'></div>" ).css( {
+ position: this.element.css( "position" ),
+ width: this.element.outerWidth(),
+ height: this.element.outerHeight(),
+ top: this.element.css( "top" ),
+ left: this.element.css( "left" )
+ } )
+ );
+
+ this.element = this.element.parent().data(
+ "ui-resizable", this.element.resizable( "instance" )
+ );
+
+ this.elementIsWrapper = true;
+
+ margins = {
+ marginTop: this.originalElement.css( "marginTop" ),
+ marginRight: this.originalElement.css( "marginRight" ),
+ marginBottom: this.originalElement.css( "marginBottom" ),
+ marginLeft: this.originalElement.css( "marginLeft" )
+ };
+
+ this.element.css( margins );
+ this.originalElement.css( "margin", 0 );
+
+ // support: Safari
+ // Prevent Safari textarea resize
+ this.originalResizeStyle = this.originalElement.css( "resize" );
+ this.originalElement.css( "resize", "none" );
+
+ this._proportionallyResizeElements.push( this.originalElement.css( {
+ position: "static",
+ zoom: 1,
+ display: "block"
+ } ) );
+
+ // Support: IE9
+ // avoid IE jump (hard set the margin)
+ this.originalElement.css( margins );
+
+ this._proportionallyResize();
+ }
+
+ this._setupHandles();
+
+ if ( o.autoHide ) {
+ $( this.element )
+ .on( "mouseenter", function() {
+ if ( o.disabled ) {
+ return;
+ }
+ that._removeClass( "ui-resizable-autohide" );
+ that._handles.show();
+ } )
+ .on( "mouseleave", function() {
+ if ( o.disabled ) {
+ return;
+ }
+ if ( !that.resizing ) {
+ that._addClass( "ui-resizable-autohide" );
+ that._handles.hide();
+ }
+ } );
+ }
+
+ this._mouseInit();
+ },
+
+ _destroy: function() {
+
+ this._mouseDestroy();
+
+ var wrapper,
+ _destroy = function( exp ) {
+ $( exp )
+ .removeData( "resizable" )
+ .removeData( "ui-resizable" )
+ .off( ".resizable" )
+ .find( ".ui-resizable-handle" )
+ .remove();
+ };
+
+ // TODO: Unwrap at same DOM position
+ if ( this.elementIsWrapper ) {
+ _destroy( this.element );
+ wrapper = this.element;
+ this.originalElement.css( {
+ position: wrapper.css( "position" ),
+ width: wrapper.outerWidth(),
+ height: wrapper.outerHeight(),
+ top: wrapper.css( "top" ),
+ left: wrapper.css( "left" )
+ } ).insertAfter( wrapper );
+ wrapper.remove();
+ }
+
+ this.originalElement.css( "resize", this.originalResizeStyle );
+ _destroy( this.originalElement );
+
+ return this;
+ },
+
+ _setOption: function( key, value ) {
+ this._super( key, value );
+
+ switch ( key ) {
+ case "handles":
+ this._removeHandles();
+ this._setupHandles();
+ break;
+ default:
+ break;
+ }
+ },
+
+ _setupHandles: function() {
+ var o = this.options, handle, i, n, hname, axis, that = this;
+ this.handles = o.handles ||
+ ( !$( ".ui-resizable-handle", this.element ).length ?
+ "e,s,se" : {
+ n: ".ui-resizable-n",
+ e: ".ui-resizable-e",
+ s: ".ui-resizable-s",
+ w: ".ui-resizable-w",
+ se: ".ui-resizable-se",
+ sw: ".ui-resizable-sw",
+ ne: ".ui-resizable-ne",
+ nw: ".ui-resizable-nw"
+ } );
+
+ this._handles = $();
+ if ( this.handles.constructor === String ) {
+
+ if ( this.handles === "all" ) {
+ this.handles = "n,e,s,w,se,sw,ne,nw";
+ }
+
+ n = this.handles.split( "," );
+ this.handles = {};
+
+ for ( i = 0; i < n.length; i++ ) {
+
+ handle = $.trim( n[ i ] );
+ hname = "ui-resizable-" + handle;
+ axis = $( "<div>" );
+ this._addClass( axis, "ui-resizable-handle " + hname );
+
+ axis.css( { zIndex: o.zIndex } );
+
+ this.handles[ handle ] = ".ui-resizable-" + handle;
+ this.element.append( axis );
+ }
+
+ }
+
+ this._renderAxis = function( target ) {
+
+ var i, axis, padPos, padWrapper;
+
+ target = target || this.element;
+
+ for ( i in this.handles ) {
+
+ if ( this.handles[ i ].constructor === String ) {
+ this.handles[ i ] = this.element.children( this.handles[ i ] ).first().show();
+ } else if ( this.handles[ i ].jquery || this.handles[ i ].nodeType ) {
+ this.handles[ i ] = $( this.handles[ i ] );
+ this._on( this.handles[ i ], { "mousedown": that._mouseDown } );
+ }
+
+ if ( this.elementIsWrapper &&
+ this.originalElement[ 0 ]
+ .nodeName
+ .match( /^(textarea|input|select|button)$/i ) ) {
+ axis = $( this.handles[ i ], this.element );
+
+ padWrapper = /sw|ne|nw|se|n|s/.test( i ) ?
+ axis.outerHeight() :
+ axis.outerWidth();
+
+ padPos = [ "padding",
+ /ne|nw|n/.test( i ) ? "Top" :
+ /se|sw|s/.test( i ) ? "Bottom" :
+ /^e$/.test( i ) ? "Right" : "Left" ].join( "" );
+
+ target.css( padPos, padWrapper );
+
+ this._proportionallyResize();
+ }
+
+ this._handles = this._handles.add( this.handles[ i ] );
+ }
+ };
+
+ // TODO: make renderAxis a prototype function
+ this._renderAxis( this.element );
+
+ this._handles = this._handles.add( this.element.find( ".ui-resizable-handle" ) );
+ this._handles.disableSelection();
+
+ this._handles.on( "mouseover", function() {
+ if ( !that.resizing ) {
+ if ( this.className ) {
+ axis = this.className.match( /ui-resizable-(se|sw|ne|nw|n|e|s|w)/i );
+ }
+ that.axis = axis && axis[ 1 ] ? axis[ 1 ] : "se";
+ }
+ } );
+
+ if ( o.autoHide ) {
+ this._handles.hide();
+ this._addClass( "ui-resizable-autohide" );
+ }
+ },
+
+ _removeHandles: function() {
+ this._handles.remove();
+ },
+
+ _mouseCapture: function( event ) {
+ var i, handle,
+ capture = false;
+
+ for ( i in this.handles ) {
+ handle = $( this.handles[ i ] )[ 0 ];
+ if ( handle === event.target || $.contains( handle, event.target ) ) {
+ capture = true;
+ }
+ }
+
+ return !this.options.disabled && capture;
+ },
+
+ _mouseStart: function( event ) {
+
+ var curleft, curtop, cursor,
+ o = this.options,
+ el = this.element;
+
+ this.resizing = true;
+
+ this._renderProxy();
+
+ curleft = this._num( this.helper.css( "left" ) );
+ curtop = this._num( this.helper.css( "top" ) );
+
+ if ( o.containment ) {
+ curleft += $( o.containment ).scrollLeft() || 0;
+ curtop += $( o.containment ).scrollTop() || 0;
+ }
+
+ this.offset = this.helper.offset();
+ this.position = { left: curleft, top: curtop };
+
+ this.size = this._helper ? {
+ width: this.helper.width(),
+ height: this.helper.height()
+ } : {
+ width: el.width(),
+ height: el.height()
+ };
+
+ this.originalSize = this._helper ? {
+ width: el.outerWidth(),
+ height: el.outerHeight()
+ } : {
+ width: el.width(),
+ height: el.height()
+ };
+
+ this.sizeDiff = {
+ width: el.outerWidth() - el.width(),
+ height: el.outerHeight() - el.height()
+ };
+
+ this.originalPosition = { left: curleft, top: curtop };
+ this.originalMousePosition = { left: event.pageX, top: event.pageY };
+
+ this.aspectRatio = ( typeof o.aspectRatio === "number" ) ?
+ o.aspectRatio :
+ ( ( this.originalSize.width / this.originalSize.height ) || 1 );
+
+ cursor = $( ".ui-resizable-" + this.axis ).css( "cursor" );
+ $( "body" ).css( "cursor", cursor === "auto" ? this.axis + "-resize" : cursor );
+
+ this._addClass( "ui-resizable-resizing" );
+ this._propagate( "start", event );
+ return true;
+ },
+
+ _mouseDrag: function( event ) {
+
+ var data, props,
+ smp = this.originalMousePosition,
+ a = this.axis,
+ dx = ( event.pageX - smp.left ) || 0,
+ dy = ( event.pageY - smp.top ) || 0,
+ trigger = this._change[ a ];
+
+ this._updatePrevProperties();
+
+ if ( !trigger ) {
+ return false;
+ }
+
+ data = trigger.apply( this, [ event, dx, dy ] );
+
+ this._updateVirtualBoundaries( event.shiftKey );
+ if ( this._aspectRatio || event.shiftKey ) {
+ data = this._updateRatio( data, event );
+ }
+
+ data = this._respectSize( data, event );
+
+ this._updateCache( data );
+
+ this._propagate( "resize", event );
+
+ props = this._applyChanges();
+
+ if ( !this._helper && this._proportionallyResizeElements.length ) {
+ this._proportionallyResize();
+ }
+
+ if ( !$.isEmptyObject( props ) ) {
+ this._updatePrevProperties();
+ this._trigger( "resize", event, this.ui() );
+ this._applyChanges();
+ }
+
+ return false;
+ },
+
+ _mouseStop: function( event ) {
+
+ this.resizing = false;
+ var pr, ista, soffseth, soffsetw, s, left, top,
+ o = this.options, that = this;
+
+ if ( this._helper ) {
+
+ pr = this._proportionallyResizeElements;
+ ista = pr.length && ( /textarea/i ).test( pr[ 0 ].nodeName );
+ soffseth = ista && this._hasScroll( pr[ 0 ], "left" ) ? 0 : that.sizeDiff.height;
+ soffsetw = ista ? 0 : that.sizeDiff.width;
+
+ s = {
+ width: ( that.helper.width() - soffsetw ),
+ height: ( that.helper.height() - soffseth )
+ };
+ left = ( parseFloat( that.element.css( "left" ) ) +
+ ( that.position.left - that.originalPosition.left ) ) || null;
+ top = ( parseFloat( that.element.css( "top" ) ) +
+ ( that.position.top - that.originalPosition.top ) ) || null;
+
+ if ( !o.animate ) {
+ this.element.css( $.extend( s, { top: top, left: left } ) );
+ }
+
+ that.helper.height( that.size.height );
+ that.helper.width( that.size.width );
+
+ if ( this._helper && !o.animate ) {
+ this._proportionallyResize();
+ }
+ }
+
+ $( "body" ).css( "cursor", "auto" );
+
+ this._removeClass( "ui-resizable-resizing" );
+
+ this._propagate( "stop", event );
+
+ if ( this._helper ) {
+ this.helper.remove();
+ }
+
+ return false;
+
+ },
+
+ _updatePrevProperties: function() {
+ this.prevPosition = {
+ top: this.position.top,
+ left: this.position.left
+ };
+ this.prevSize = {
+ width: this.size.width,
+ height: this.size.height
+ };
+ },
+
+ _applyChanges: function() {
+ var props = {};
+
+ if ( this.position.top !== this.prevPosition.top ) {
+ props.top = this.position.top + "px";
+ }
+ if ( this.position.left !== this.prevPosition.left ) {
+ props.left = this.position.left + "px";
+ }
+ if ( this.size.width !== this.prevSize.width ) {
+ props.width = this.size.width + "px";
+ }
+ if ( this.size.height !== this.prevSize.height ) {
+ props.height = this.size.height + "px";
+ }
+
+ this.helper.css( props );
+
+ return props;
+ },
+
+ _updateVirtualBoundaries: function( forceAspectRatio ) {
+ var pMinWidth, pMaxWidth, pMinHeight, pMaxHeight, b,
+ o = this.options;
+
+ b = {
+ minWidth: this._isNumber( o.minWidth ) ? o.minWidth : 0,
+ maxWidth: this._isNumber( o.maxWidth ) ? o.maxWidth : Infinity,
+ minHeight: this._isNumber( o.minHeight ) ? o.minHeight : 0,
+ maxHeight: this._isNumber( o.maxHeight ) ? o.maxHeight : Infinity
+ };
+
+ if ( this._aspectRatio || forceAspectRatio ) {
+ pMinWidth = b.minHeight * this.aspectRatio;
+ pMinHeight = b.minWidth / this.aspectRatio;
+ pMaxWidth = b.maxHeight * this.aspectRatio;
+ pMaxHeight = b.maxWidth / this.aspectRatio;
+
+ if ( pMinWidth > b.minWidth ) {
+ b.minWidth = pMinWidth;
+ }
+ if ( pMinHeight > b.minHeight ) {
+ b.minHeight = pMinHeight;
+ }
+ if ( pMaxWidth < b.maxWidth ) {
+ b.maxWidth = pMaxWidth;
+ }
+ if ( pMaxHeight < b.maxHeight ) {
+ b.maxHeight = pMaxHeight;
+ }
+ }
+ this._vBoundaries = b;
+ },
+
+ _updateCache: function( data ) {
+ this.offset = this.helper.offset();
+ if ( this._isNumber( data.left ) ) {
+ this.position.left = data.left;
+ }
+ if ( this._isNumber( data.top ) ) {
+ this.position.top = data.top;
+ }
+ if ( this._isNumber( data.height ) ) {
+ this.size.height = data.height;
+ }
+ if ( this._isNumber( data.width ) ) {
+ this.size.width = data.width;
+ }
+ },
+
+ _updateRatio: function( data ) {
+
+ var cpos = this.position,
+ csize = this.size,
+ a = this.axis;
+
+ if ( this._isNumber( data.height ) ) {
+ data.width = ( data.height * this.aspectRatio );
+ } else if ( this._isNumber( data.width ) ) {
+ data.height = ( data.width / this.aspectRatio );
+ }
+
+ if ( a === "sw" ) {
+ data.left = cpos.left + ( csize.width - data.width );
+ data.top = null;
+ }
+ if ( a === "nw" ) {
+ data.top = cpos.top + ( csize.height - data.height );
+ data.left = cpos.left + ( csize.width - data.width );
+ }
+
+ return data;
+ },
+
+ _respectSize: function( data ) {
+
+ var o = this._vBoundaries,
+ a = this.axis,
+ ismaxw = this._isNumber( data.width ) && o.maxWidth && ( o.maxWidth < data.width ),
+ ismaxh = this._isNumber( data.height ) && o.maxHeight && ( o.maxHeight < data.height ),
+ isminw = this._isNumber( data.width ) && o.minWidth && ( o.minWidth > data.width ),
+ isminh = this._isNumber( data.height ) && o.minHeight && ( o.minHeight > data.height ),
+ dw = this.originalPosition.left + this.originalSize.width,
+ dh = this.originalPosition.top + this.originalSize.height,
+ cw = /sw|nw|w/.test( a ), ch = /nw|ne|n/.test( a );
+ if ( isminw ) {
+ data.width = o.minWidth;
+ }
+ if ( isminh ) {
+ data.height = o.minHeight;
+ }
+ if ( ismaxw ) {
+ data.width = o.maxWidth;
+ }
+ if ( ismaxh ) {
+ data.height = o.maxHeight;
+ }
+
+ if ( isminw && cw ) {
+ data.left = dw - o.minWidth;
+ }
+ if ( ismaxw && cw ) {
+ data.left = dw - o.maxWidth;
+ }
+ if ( isminh && ch ) {
+ data.top = dh - o.minHeight;
+ }
+ if ( ismaxh && ch ) {
+ data.top = dh - o.maxHeight;
+ }
+
+ // Fixing jump error on top/left - bug #2330
+ if ( !data.width && !data.height && !data.left && data.top ) {
+ data.top = null;
+ } else if ( !data.width && !data.height && !data.top && data.left ) {
+ data.left = null;
+ }
+
+ return data;
+ },
+
+ _getPaddingPlusBorderDimensions: function( element ) {
+ var i = 0,
+ widths = [],
+ borders = [
+ element.css( "borderTopWidth" ),
+ element.css( "borderRightWidth" ),
+ element.css( "borderBottomWidth" ),
+ element.css( "borderLeftWidth" )
+ ],
+ paddings = [
+ element.css( "paddingTop" ),
+ element.css( "paddingRight" ),
+ element.css( "paddingBottom" ),
+ element.css( "paddingLeft" )
+ ];
+
+ for ( ; i < 4; i++ ) {
+ widths[ i ] = ( parseFloat( borders[ i ] ) || 0 );
+ widths[ i ] += ( parseFloat( paddings[ i ] ) || 0 );
+ }
+
+ return {
+ height: widths[ 0 ] + widths[ 2 ],
+ width: widths[ 1 ] + widths[ 3 ]
+ };
+ },
+
+ _proportionallyResize: function() {
+
+ if ( !this._proportionallyResizeElements.length ) {
+ return;
+ }
+
+ var prel,
+ i = 0,
+ element = this.helper || this.element;
+
+ for ( ; i < this._proportionallyResizeElements.length; i++ ) {
+
+ prel = this._proportionallyResizeElements[ i ];
+
+ // TODO: Seems like a bug to cache this.outerDimensions
+ // considering that we are in a loop.
+ if ( !this.outerDimensions ) {
+ this.outerDimensions = this._getPaddingPlusBorderDimensions( prel );
+ }
+
+ prel.css( {
+ height: ( element.height() - this.outerDimensions.height ) || 0,
+ width: ( element.width() - this.outerDimensions.width ) || 0
+ } );
+
+ }
+
+ },
+
+ _renderProxy: function() {
+
+ var el = this.element, o = this.options;
+ this.elementOffset = el.offset();
+
+ if ( this._helper ) {
+
+ this.helper = this.helper || $( "<div style='overflow:hidden;'></div>" );
+
+ this._addClass( this.helper, this._helper );
+ this.helper.css( {
+ width: this.element.outerWidth(),
+ height: this.element.outerHeight(),
+ position: "absolute",
+ left: this.elementOffset.left + "px",
+ top: this.elementOffset.top + "px",
+ zIndex: ++o.zIndex //TODO: Don't modify option
+ } );
+
+ this.helper
+ .appendTo( "body" )
+ .disableSelection();
+
+ } else {
+ this.helper = this.element;
+ }
+
+ },
+
+ _change: {
+ e: function( event, dx ) {
+ return { width: this.originalSize.width + dx };
+ },
+ w: function( event, dx ) {
+ var cs = this.originalSize, sp = this.originalPosition;
+ return { left: sp.left + dx, width: cs.width - dx };
+ },
+ n: function( event, dx, dy ) {
+ var cs = this.originalSize, sp = this.originalPosition;
+ return { top: sp.top + dy, height: cs.height - dy };
+ },
+ s: function( event, dx, dy ) {
+ return { height: this.originalSize.height + dy };
+ },
+ se: function( event, dx, dy ) {
+ return $.extend( this._change.s.apply( this, arguments ),
+ this._change.e.apply( this, [ event, dx, dy ] ) );
+ },
+ sw: function( event, dx, dy ) {
+ return $.extend( this._change.s.apply( this, arguments ),
+ this._change.w.apply( this, [ event, dx, dy ] ) );
+ },
+ ne: function( event, dx, dy ) {
+ return $.extend( this._change.n.apply( this, arguments ),
+ this._change.e.apply( this, [ event, dx, dy ] ) );
+ },
+ nw: function( event, dx, dy ) {
+ return $.extend( this._change.n.apply( this, arguments ),
+ this._change.w.apply( this, [ event, dx, dy ] ) );
+ }
+ },
+
+ _propagate: function( n, event ) {
+ $.ui.plugin.call( this, n, [ event, this.ui() ] );
+ ( n !== "resize" && this._trigger( n, event, this.ui() ) );
+ },
+
+ plugins: {},
+
+ ui: function() {
+ return {
+ originalElement: this.originalElement,
+ element: this.element,
+ helper: this.helper,
+ position: this.position,
+ size: this.size,
+ originalSize: this.originalSize,
+ originalPosition: this.originalPosition
+ };
+ }
+
+} );
+
+/*
+ * Resizable Extensions
+ */
+
+$.ui.plugin.add( "resizable", "animate", {
+
+ stop: function( event ) {
+ var that = $( this ).resizable( "instance" ),
+ o = that.options,
+ pr = that._proportionallyResizeElements,
+ ista = pr.length && ( /textarea/i ).test( pr[ 0 ].nodeName ),
+ soffseth = ista && that._hasScroll( pr[ 0 ], "left" ) ? 0 : that.sizeDiff.height,
+ soffsetw = ista ? 0 : that.sizeDiff.width,
+ style = {
+ width: ( that.size.width - soffsetw ),
+ height: ( that.size.height - soffseth )
+ },
+ left = ( parseFloat( that.element.css( "left" ) ) +
+ ( that.position.left - that.originalPosition.left ) ) || null,
+ top = ( parseFloat( that.element.css( "top" ) ) +
+ ( that.position.top - that.originalPosition.top ) ) || null;
+
+ that.element.animate(
+ $.extend( style, top && left ? { top: top, left: left } : {} ), {
+ duration: o.animateDuration,
+ easing: o.animateEasing,
+ step: function() {
+
+ var data = {
+ width: parseFloat( that.element.css( "width" ) ),
+ height: parseFloat( that.element.css( "height" ) ),
+ top: parseFloat( that.element.css( "top" ) ),
+ left: parseFloat( that.element.css( "left" ) )
+ };
+
+ if ( pr && pr.length ) {
+ $( pr[ 0 ] ).css( { width: data.width, height: data.height } );
+ }
+
+ // Propagating resize, and updating values for each animation step
+ that._updateCache( data );
+ that._propagate( "resize", event );
+
+ }
+ }
+ );
+ }
+
+} );
+
+$.ui.plugin.add( "resizable", "containment", {
+
+ start: function() {
+ var element, p, co, ch, cw, width, height,
+ that = $( this ).resizable( "instance" ),
+ o = that.options,
+ el = that.element,
+ oc = o.containment,
+ ce = ( oc instanceof $ ) ?
+ oc.get( 0 ) :
+ ( /parent/.test( oc ) ) ? el.parent().get( 0 ) : oc;
+
+ if ( !ce ) {
+ return;
+ }
+
+ that.containerElement = $( ce );
+
+ if ( /document/.test( oc ) || oc === document ) {
+ that.containerOffset = {
+ left: 0,
+ top: 0
+ };
+ that.containerPosition = {
+ left: 0,
+ top: 0
+ };
+
+ that.parentData = {
+ element: $( document ),
+ left: 0,
+ top: 0,
+ width: $( document ).width(),
+ height: $( document ).height() || document.body.parentNode.scrollHeight
+ };
+ } else {
+ element = $( ce );
+ p = [];
+ $( [ "Top", "Right", "Left", "Bottom" ] ).each( function( i, name ) {
+ p[ i ] = that._num( element.css( "padding" + name ) );
+ } );
+
+ that.containerOffset = element.offset();
+ that.containerPosition = element.position();
+ that.containerSize = {
+ height: ( element.innerHeight() - p[ 3 ] ),
+ width: ( element.innerWidth() - p[ 1 ] )
+ };
+
+ co = that.containerOffset;
+ ch = that.containerSize.height;
+ cw = that.containerSize.width;
+ width = ( that._hasScroll ( ce, "left" ) ? ce.scrollWidth : cw );
+ height = ( that._hasScroll ( ce ) ? ce.scrollHeight : ch ) ;
+
+ that.parentData = {
+ element: ce,
+ left: co.left,
+ top: co.top,
+ width: width,
+ height: height
+ };
+ }
+ },
+
+ resize: function( event ) {
+ var woset, hoset, isParent, isOffsetRelative,
+ that = $( this ).resizable( "instance" ),
+ o = that.options,
+ co = that.containerOffset,
+ cp = that.position,
+ pRatio = that._aspectRatio || event.shiftKey,
+ cop = {
+ top: 0,
+ left: 0
+ },
+ ce = that.containerElement,
+ continueResize = true;
+
+ if ( ce[ 0 ] !== document && ( /static/ ).test( ce.css( "position" ) ) ) {
+ cop = co;
+ }
+
+ if ( cp.left < ( that._helper ? co.left : 0 ) ) {
+ that.size.width = that.size.width +
+ ( that._helper ?
+ ( that.position.left - co.left ) :
+ ( that.position.left - cop.left ) );
+
+ if ( pRatio ) {
+ that.size.height = that.size.width / that.aspectRatio;
+ continueResize = false;
+ }
+ that.position.left = o.helper ? co.left : 0;
+ }
+
+ if ( cp.top < ( that._helper ? co.top : 0 ) ) {
+ that.size.height = that.size.height +
+ ( that._helper ?
+ ( that.position.top - co.top ) :
+ that.position.top );
+
+ if ( pRatio ) {
+ that.size.width = that.size.height * that.aspectRatio;
+ continueResize = false;
+ }
+ that.position.top = that._helper ? co.top : 0;
+ }
+
+ isParent = that.containerElement.get( 0 ) === that.element.parent().get( 0 );
+ isOffsetRelative = /relative|absolute/.test( that.containerElement.css( "position" ) );
+
+ if ( isParent && isOffsetRelative ) {
+ that.offset.left = that.parentData.left + that.position.left;
+ that.offset.top = that.parentData.top + that.position.top;
+ } else {
+ that.offset.left = that.element.offset().left;
+ that.offset.top = that.element.offset().top;
+ }
+
+ woset = Math.abs( that.sizeDiff.width +
+ ( that._helper ?
+ that.offset.left - cop.left :
+ ( that.offset.left - co.left ) ) );
+
+ hoset = Math.abs( that.sizeDiff.height +
+ ( that._helper ?
+ that.offset.top - cop.top :
+ ( that.offset.top - co.top ) ) );
+
+ if ( woset + that.size.width >= that.parentData.width ) {
+ that.size.width = that.parentData.width - woset;
+ if ( pRatio ) {
+ that.size.height = that.size.width / that.aspectRatio;
+ continueResize = false;
+ }
+ }
+
+ if ( hoset + that.size.height >= that.parentData.height ) {
+ that.size.height = that.parentData.height - hoset;
+ if ( pRatio ) {
+ that.size.width = that.size.height * that.aspectRatio;
+ continueResize = false;
+ }
+ }
+
+ if ( !continueResize ) {
+ that.position.left = that.prevPosition.left;
+ that.position.top = that.prevPosition.top;
+ that.size.width = that.prevSize.width;
+ that.size.height = that.prevSize.height;
+ }
+ },
+
+ stop: function() {
+ var that = $( this ).resizable( "instance" ),
+ o = that.options,
+ co = that.containerOffset,
+ cop = that.containerPosition,
+ ce = that.containerElement,
+ helper = $( that.helper ),
+ ho = helper.offset(),
+ w = helper.outerWidth() - that.sizeDiff.width,
+ h = helper.outerHeight() - that.sizeDiff.height;
+
+ if ( that._helper && !o.animate && ( /relative/ ).test( ce.css( "position" ) ) ) {
+ $( this ).css( {
+ left: ho.left - cop.left - co.left,
+ width: w,
+ height: h
+ } );
+ }
+
+ if ( that._helper && !o.animate && ( /static/ ).test( ce.css( "position" ) ) ) {
+ $( this ).css( {
+ left: ho.left - cop.left - co.left,
+ width: w,
+ height: h
+ } );
+ }
+ }
+} );
+
+$.ui.plugin.add( "resizable", "alsoResize", {
+
+ start: function() {
+ var that = $( this ).resizable( "instance" ),
+ o = that.options;
+
+ $( o.alsoResize ).each( function() {
+ var el = $( this );
+ el.data( "ui-resizable-alsoresize", {
+ width: parseFloat( el.width() ), height: parseFloat( el.height() ),
+ left: parseFloat( el.css( "left" ) ), top: parseFloat( el.css( "top" ) )
+ } );
+ } );
+ },
+
+ resize: function( event, ui ) {
+ var that = $( this ).resizable( "instance" ),
+ o = that.options,
+ os = that.originalSize,
+ op = that.originalPosition,
+ delta = {
+ height: ( that.size.height - os.height ) || 0,
+ width: ( that.size.width - os.width ) || 0,
+ top: ( that.position.top - op.top ) || 0,
+ left: ( that.position.left - op.left ) || 0
+ };
+
+ $( o.alsoResize ).each( function() {
+ var el = $( this ), start = $( this ).data( "ui-resizable-alsoresize" ), style = {},
+ css = el.parents( ui.originalElement[ 0 ] ).length ?
+ [ "width", "height" ] :
+ [ "width", "height", "top", "left" ];
+
+ $.each( css, function( i, prop ) {
+ var sum = ( start[ prop ] || 0 ) + ( delta[ prop ] || 0 );
+ if ( sum && sum >= 0 ) {
+ style[ prop ] = sum || null;
+ }
+ } );
+
+ el.css( style );
+ } );
+ },
+
+ stop: function() {
+ $( this ).removeData( "ui-resizable-alsoresize" );
+ }
+} );
+
+$.ui.plugin.add( "resizable", "ghost", {
+
+ start: function() {
+
+ var that = $( this ).resizable( "instance" ), cs = that.size;
+
+ that.ghost = that.originalElement.clone();
+ that.ghost.css( {
+ opacity: 0.25,
+ display: "block",
+ position: "relative",
+ height: cs.height,
+ width: cs.width,
+ margin: 0,
+ left: 0,
+ top: 0
+ } );
+
+ that._addClass( that.ghost, "ui-resizable-ghost" );
+
+ // DEPRECATED
+ // TODO: remove after 1.12
+ if ( $.uiBackCompat !== false && typeof that.options.ghost === "string" ) {
+
+ // Ghost option
+ that.ghost.addClass( this.options.ghost );
+ }
+
+ that.ghost.appendTo( that.helper );
+
+ },
+
+ resize: function() {
+ var that = $( this ).resizable( "instance" );
+ if ( that.ghost ) {
+ that.ghost.css( {
+ position: "relative",
+ height: that.size.height,
+ width: that.size.width
+ } );
+ }
+ },
+
+ stop: function() {
+ var that = $( this ).resizable( "instance" );
+ if ( that.ghost && that.helper ) {
+ that.helper.get( 0 ).removeChild( that.ghost.get( 0 ) );
+ }
+ }
+
+} );
+
+$.ui.plugin.add( "resizable", "grid", {
+
+ resize: function() {
+ var outerDimensions,
+ that = $( this ).resizable( "instance" ),
+ o = that.options,
+ cs = that.size,
+ os = that.originalSize,
+ op = that.originalPosition,
+ a = that.axis,
+ grid = typeof o.grid === "number" ? [ o.grid, o.grid ] : o.grid,
+ gridX = ( grid[ 0 ] || 1 ),
+ gridY = ( grid[ 1 ] || 1 ),
+ ox = Math.round( ( cs.width - os.width ) / gridX ) * gridX,
+ oy = Math.round( ( cs.height - os.height ) / gridY ) * gridY,
+ newWidth = os.width + ox,
+ newHeight = os.height + oy,
+ isMaxWidth = o.maxWidth && ( o.maxWidth < newWidth ),
+ isMaxHeight = o.maxHeight && ( o.maxHeight < newHeight ),
+ isMinWidth = o.minWidth && ( o.minWidth > newWidth ),
+ isMinHeight = o.minHeight && ( o.minHeight > newHeight );
+
+ o.grid = grid;
+
+ if ( isMinWidth ) {
+ newWidth += gridX;
+ }
+ if ( isMinHeight ) {
+ newHeight += gridY;
+ }
+ if ( isMaxWidth ) {
+ newWidth -= gridX;
+ }
+ if ( isMaxHeight ) {
+ newHeight -= gridY;
+ }
+
+ if ( /^(se|s|e)$/.test( a ) ) {
+ that.size.width = newWidth;
+ that.size.height = newHeight;
+ } else if ( /^(ne)$/.test( a ) ) {
+ that.size.width = newWidth;
+ that.size.height = newHeight;
+ that.position.top = op.top - oy;
+ } else if ( /^(sw)$/.test( a ) ) {
+ that.size.width = newWidth;
+ that.size.height = newHeight;
+ that.position.left = op.left - ox;
+ } else {
+ if ( newHeight - gridY <= 0 || newWidth - gridX <= 0 ) {
+ outerDimensions = that._getPaddingPlusBorderDimensions( this );
+ }
+
+ if ( newHeight - gridY > 0 ) {
+ that.size.height = newHeight;
+ that.position.top = op.top - oy;
+ } else {
+ newHeight = gridY - outerDimensions.height;
+ that.size.height = newHeight;
+ that.position.top = op.top + os.height - newHeight;
+ }
+ if ( newWidth - gridX > 0 ) {
+ that.size.width = newWidth;
+ that.position.left = op.left - ox;
+ } else {
+ newWidth = gridX - outerDimensions.width;
+ that.size.width = newWidth;
+ that.position.left = op.left + os.width - newWidth;
+ }
+ }
+ }
+
+} );
+
+var widgetsResizable = $.ui.resizable;
+
+
+
+
+})); \ No newline at end of file
diff --git a/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.min.css b/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.min.css
new file mode 100644
index 0000000..5060970
--- /dev/null
+++ b/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.min.css
@@ -0,0 +1,7 @@
+/*! jQuery UI - v1.12.1 - 2018-03-18
+* http://jqueryui.com
+* Includes: draggable.css, core.css, resizable.css, theme.css
+* To view and modify this theme, visit http://jqueryui.com/themeroller/?scope=&folderName=base&cornerRadiusShadow=8px&offsetLeftShadow=0px&offsetTopShadow=0px&thicknessShadow=5px&opacityShadow=30&bgImgOpacityShadow=0&bgTextureShadow=flat&bgColorShadow=666666&opacityOverlay=30&bgImgOpacityOverlay=0&bgTextureOverlay=flat&bgColorOverlay=aaaaaa&iconColorError=cc0000&fcError=5f3f3f&borderColorError=f1a899&bgTextureError=flat&bgColorError=fddfdf&iconColorHighlight=777620&fcHighlight=777620&borderColorHighlight=dad55e&bgTextureHighlight=flat&bgColorHighlight=fffa90&iconColorActive=ffffff&fcActive=ffffff&borderColorActive=003eff&bgTextureActive=flat&bgColorActive=007fff&iconColorHover=555555&fcHover=2b2b2b&borderColorHover=cccccc&bgTextureHover=flat&bgColorHover=ededed&iconColorDefault=777777&fcDefault=454545&borderColorDefault=c5c5c5&bgTextureDefault=flat&bgColorDefault=f6f6f6&iconColorContent=444444&fcContent=333333&borderColorContent=dddddd&bgTextureContent=flat&bgColorContent=ffffff&iconColorHeader=444444&fcHeader=333333&borderColorHeader=dddddd&bgTextureHeader=flat&bgColorHeader=e9e9e9&cornerRadius=3px&fwDefault=normal&fsDefault=1em&ffDefault=Arial%2CHelvetica%2Csans-serif
+* Copyright jQuery Foundation and other contributors; Licensed MIT */
+
+.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-widget{font-family:Arial,Helvetica,sans-serif;font-size:1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Arial,Helvetica,sans-serif;font-size:1em}.ui-widget.ui-widget-content{border:1px solid #c5c5c5}.ui-widget-content{border:1px solid #ddd;background:#fff;color:#333}.ui-widget-content a{color:#333}.ui-widget-header{border:1px solid #ddd;background:#e9e9e9;color:#333;font-weight:bold}.ui-widget-header a{color:#333}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,.ui-button,html .ui-button.ui-state-disabled:hover,html .ui-button.ui-state-disabled:active{border:1px solid #c5c5c5;background:#f6f6f6;font-weight:normal;color:#454545}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button,.ui-button{color:#454545;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus,.ui-button:hover,.ui-button:focus{border:1px solid #ccc;background:#ededed;font-weight:normal;color:#2b2b2b}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,a.ui-button:hover,a.ui-button:focus{color:#2b2b2b;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px rgb(94,158,214)}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active,.ui-button:active,.ui-button.ui-state-active:hover{border:1px solid #003eff;background:#007fff;font-weight:normal;color:#fff}.ui-icon-background,.ui-state-active .ui-icon-background{border:#003eff;background-color:#fff}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#fff;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #dad55e;background:#fffa90;color:#777620}.ui-state-checked{border:1px solid #dad55e;background:#fffa90}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#777620}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #f1a899;background:#fddfdf;color:#5f3f3f}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#5f3f3f}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#5f3f3f}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_444444_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_444444_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-button:hover .ui-icon,.ui-button:focus .ui-icon{background-image:url("images/ui-icons_555555_256x240.png")}.ui-state-active .ui-icon,.ui-button:active .ui-icon{background-image:url("images/ui-icons_ffffff_256x240.png")}.ui-state-highlight .ui-icon,.ui-button .ui-state-highlight.ui-icon{background-image:url("images/ui-icons_777620_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_cc0000_256x240.png")}.ui-button .ui-icon{background-image:url("images/ui-icons_777777_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-caret-1-n{background-position:0 0}.ui-icon-caret-1-ne{background-position:-16px 0}.ui-icon-caret-1-e{background-position:-32px 0}.ui-icon-caret-1-se{background-position:-48px 0}.ui-icon-caret-1-s{background-position:-65px 0}.ui-icon-caret-1-sw{background-position:-80px 0}.ui-icon-caret-1-w{background-position:-96px 0}.ui-icon-caret-1-nw{background-position:-112px 0}.ui-icon-caret-2-n-s{background-position:-128px 0}.ui-icon-caret-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-65px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-65px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:1px -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:3px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:3px}.ui-widget-overlay{background:#aaa;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{-webkit-box-shadow:0 0 5px #666;box-shadow:0 0 5px #666} \ No newline at end of file
diff --git a/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.min.js b/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.min.js
new file mode 100644
index 0000000..cc9a9aa
--- /dev/null
+++ b/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.min.js
@@ -0,0 +1,7 @@
+/*! jQuery UI - v1.12.1 - 2018-03-18
+* http://jqueryui.com
+* Includes: widget.js, data.js, disable-selection.js, scroll-parent.js, widgets/draggable.js, widgets/resizable.js, widgets/mouse.js
+* Copyright jQuery Foundation and other contributors; Licensed MIT */
+
+(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){t.ui=t.ui||{},t.ui.version="1.12.1";var e=0,i=Array.prototype.slice;t.cleanData=function(e){return function(i){var s,n,o;for(o=0;null!=(n=i[o]);o++)try{s=t._data(n,"events"),s&&s.remove&&t(n).triggerHandler("remove")}catch(a){}e(i)}}(t.cleanData),t.widget=function(e,i,s){var n,o,a,r={},l=e.split(".")[0];e=e.split(".")[1];var h=l+"-"+e;return s||(s=i,i=t.Widget),t.isArray(s)&&(s=t.extend.apply(null,[{}].concat(s))),t.expr[":"][h.toLowerCase()]=function(e){return!!t.data(e,h)},t[l]=t[l]||{},n=t[l][e],o=t[l][e]=function(t,e){return this._createWidget?(arguments.length&&this._createWidget(t,e),void 0):new o(t,e)},t.extend(o,n,{version:s.version,_proto:t.extend({},s),_childConstructors:[]}),a=new i,a.options=t.widget.extend({},a.options),t.each(s,function(e,s){return t.isFunction(s)?(r[e]=function(){function t(){return i.prototype[e].apply(this,arguments)}function n(t){return i.prototype[e].apply(this,t)}return function(){var e,i=this._super,o=this._superApply;return this._super=t,this._superApply=n,e=s.apply(this,arguments),this._super=i,this._superApply=o,e}}(),void 0):(r[e]=s,void 0)}),o.prototype=t.widget.extend(a,{widgetEventPrefix:n?a.widgetEventPrefix||e:e},r,{constructor:o,namespace:l,widgetName:e,widgetFullName:h}),n?(t.each(n._childConstructors,function(e,i){var s=i.prototype;t.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete n._childConstructors):i._childConstructors.push(o),t.widget.bridge(e,o),o},t.widget.extend=function(e){for(var s,n,o=i.call(arguments,1),a=0,r=o.length;r>a;a++)for(s in o[a])n=o[a][s],o[a].hasOwnProperty(s)&&void 0!==n&&(e[s]=t.isPlainObject(n)?t.isPlainObject(e[s])?t.widget.extend({},e[s],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,s){var n=s.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=i.call(arguments,1),l=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(l=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(l=i&&i.jquery?l.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):l=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new s(o,this))})),l}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{classes:{},disabled:!1,create:null},_createWidget:function(i,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=e++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),i),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var l=s.match(/^([\w:-]*)\s*(.*)$/),h=l[1]+o.eventNamespace,c=l[2];c?n.on(h,c,r):i.on(h,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var s=!1;t(document).on("mouseup",function(){s=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!s){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,n=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return n&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),s=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,s=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.ui.safeActiveElement=function(t){var e;try{e=t.activeElement}catch(i){e=t.body}return e||(e=t.body),e.nodeName||(e=t.body),e},t.ui.safeBlur=function(e){e&&"body"!==e.nodeName.toLowerCase()&&t(e).trigger("blur")},t.widget("ui.draggable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){"original"===this.options.helper&&this._setPositionRelative(),this.options.addClasses&&this._addClass("ui-draggable"),this._setHandleClassName(),this._mouseInit()},_setOption:function(t,e){this._super(t,e),"handle"===t&&(this._removeHandleClassName(),this._setHandleClassName())},_destroy:function(){return(this.helper||this.element).is(".ui-draggable-dragging")?(this.destroyOnClear=!0,void 0):(this._removeHandleClassName(),this._mouseDestroy(),void 0)},_mouseCapture:function(e){var i=this.options;return this.helper||i.disabled||t(e.target).closest(".ui-resizable-handle").length>0?!1:(this.handle=this._getHandle(e),this.handle?(this._blurActiveElement(e),this._blockFrames(i.iframeFix===!0?"iframe":i.iframeFix),!0):!1)},_blockFrames:function(e){this.iframeBlocks=this.document.find(e).map(function(){var e=t(this);return t("<div>").css("position","absolute").appendTo(e.parent()).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).offset(e.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(e){var i=t.ui.safeActiveElement(this.document[0]),s=t(e.target);s.closest(i).length||t.ui.safeBlur(i)},_mouseStart:function(e){var i=this.options;return this.helper=this._createHelper(e),this._addClass(this.helper,"ui-draggable-dragging"),this._cacheHelperProportions(),t.ui.ddmanager&&(t.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=this.helper.parents().filter(function(){return"fixed"===t(this).css("position")}).length>0,this.positionAbs=this.element.offset(),this._refreshOffsets(e),this.originalPosition=this.position=this._generatePosition(e,!1),this.originalPageX=e.pageX,this.originalPageY=e.pageY,i.cursorAt&&this._adjustOffsetFromHelper(i.cursorAt),this._setContainment(),this._trigger("start",e)===!1?(this._clear(),!1):(this._cacheHelperProportions(),t.ui.ddmanager&&!i.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this._mouseDrag(e,!0),t.ui.ddmanager&&t.ui.ddmanager.dragStart(this,e),!0)},_refreshOffsets:function(t){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:!1,parent:this._getParentOffset(),relative:this._getRelativeOffset()},this.offset.click={left:t.pageX-this.offset.left,top:t.pageY-this.offset.top}},_mouseDrag:function(e,i){if(this.hasFixedAncestor&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(e,!0),this.positionAbs=this._convertPositionTo("absolute"),!i){var s=this._uiHash();if(this._trigger("drag",e,s)===!1)return this._mouseUp(new t.Event("mouseup",e)),!1;this.position=s.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),!1},_mouseStop:function(e){var i=this,s=!1;return t.ui.ddmanager&&!this.options.dropBehaviour&&(s=t.ui.ddmanager.drop(this,e)),this.dropped&&(s=this.dropped,this.dropped=!1),"invalid"===this.options.revert&&!s||"valid"===this.options.revert&&s||this.options.revert===!0||t.isFunction(this.options.revert)&&this.options.revert.call(this.element,s)?t(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){i._trigger("stop",e)!==!1&&i._clear()}):this._trigger("stop",e)!==!1&&this._clear(),!1},_mouseUp:function(e){return this._unblockFrames(),t.ui.ddmanager&&t.ui.ddmanager.dragStop(this,e),this.handleElement.is(e.target)&&this.element.trigger("focus"),t.ui.mouse.prototype._mouseUp.call(this,e)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp(new t.Event("mouseup",{target:this.element[0]})):this._clear(),this},_getHandle:function(e){return this.options.handle?!!t(e.target).closest(this.element.find(this.options.handle)).length:!0},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element,this._addClass(this.handleElement,"ui-draggable-handle")},_removeHandleClassName:function(){this._removeClass(this.handleElement,"ui-draggable-handle")},_createHelper:function(e){var i=this.options,s=t.isFunction(i.helper),n=s?t(i.helper.apply(this.element[0],[e])):"clone"===i.helper?this.element.clone().removeAttr("id"):this.element;return n.parents("body").length||n.appendTo("parent"===i.appendTo?this.element[0].parentNode:i.appendTo),s&&n[0]===this.element[0]&&this._setPositionRelative(),n[0]===this.element[0]||/(fixed|absolute)/.test(n.css("position"))||n.css("position","absolute"),n},_setPositionRelative:function(){/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative")},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_isRootNode:function(t){return/(html|body)/i.test(t.tagName)||t===this.document[0]},_getParentOffset:function(){var e=this.offsetParent.offset(),i=this.document[0];return"absolute"===this.cssPosition&&this.scrollParent[0]!==i&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"!==this.cssPosition)return{top:0,left:0};var t=this.element.position(),e=this._isRootNode(this.scrollParent[0]);return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+(e?0:this.scrollParent.scrollTop()),left:t.left-(parseInt(this.helper.css("left"),10)||0)+(e?0:this.scrollParent.scrollLeft())}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,s,n=this.options,o=this.document[0];return this.relativeContainer=null,n.containment?"window"===n.containment?(this.containment=[t(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,t(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,t(window).scrollLeft()+t(window).width()-this.helperProportions.width-this.margins.left,t(window).scrollTop()+(t(window).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):"document"===n.containment?(this.containment=[0,0,t(o).width()-this.helperProportions.width-this.margins.left,(t(o).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):n.containment.constructor===Array?(this.containment=n.containment,void 0):("parent"===n.containment&&(n.containment=this.helper[0].parentNode),i=t(n.containment),s=i[0],s&&(e=/(scroll|auto)/.test(i.css("overflow")),this.containment=[(parseInt(i.css("borderLeftWidth"),10)||0)+(parseInt(i.css("paddingLeft"),10)||0),(parseInt(i.css("borderTopWidth"),10)||0)+(parseInt(i.css("paddingTop"),10)||0),(e?Math.max(s.scrollWidth,s.offsetWidth):s.offsetWidth)-(parseInt(i.css("borderRightWidth"),10)||0)-(parseInt(i.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(e?Math.max(s.scrollHeight,s.offsetHeight):s.offsetHeight)-(parseInt(i.css("borderBottomWidth"),10)||0)-(parseInt(i.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relativeContainer=i),void 0):(this.containment=null,void 0)},_convertPositionTo:function(t,e){e||(e=this.position);var i="absolute"===t?1:-1,s=this._isRootNode(this.scrollParent[0]);return{top:e.top+this.offset.relative.top*i+this.offset.parent.top*i-("fixed"===this.cssPosition?-this.offset.scroll.top:s?0:this.offset.scroll.top)*i,left:e.left+this.offset.relative.left*i+this.offset.parent.left*i-("fixed"===this.cssPosition?-this.offset.scroll.left:s?0:this.offset.scroll.left)*i}},_generatePosition:function(t,e){var i,s,n,o,a=this.options,r=this._isRootNode(this.scrollParent[0]),l=t.pageX,h=t.pageY;return r&&this.offset.scroll||(this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}),e&&(this.containment&&(this.relativeContainer?(s=this.relativeContainer.offset(),i=[this.containment[0]+s.left,this.containment[1]+s.top,this.containment[2]+s.left,this.containment[3]+s.top]):i=this.containment,t.pageX-this.offset.click.left<i[0]&&(l=i[0]+this.offset.click.left),t.pageY-this.offset.click.top<i[1]&&(h=i[1]+this.offset.click.top),t.pageX-this.offset.click.left>i[2]&&(l=i[2]+this.offset.click.left),t.pageY-this.offset.click.top>i[3]&&(h=i[3]+this.offset.click.top)),a.grid&&(n=a.grid[1]?this.originalPageY+Math.round((h-this.originalPageY)/a.grid[1])*a.grid[1]:this.originalPageY,h=i?n-this.offset.click.top>=i[1]||n-this.offset.click.top>i[3]?n:n-this.offset.click.top>=i[1]?n-a.grid[1]:n+a.grid[1]:n,o=a.grid[0]?this.originalPageX+Math.round((l-this.originalPageX)/a.grid[0])*a.grid[0]:this.originalPageX,l=i?o-this.offset.click.left>=i[0]||o-this.offset.click.left>i[2]?o:o-this.offset.click.left>=i[0]?o-a.grid[0]:o+a.grid[0]:o),"y"===a.axis&&(l=this.originalPageX),"x"===a.axis&&(h=this.originalPageY)),{top:h-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:r?0:this.offset.scroll.top),left:l-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:r?0:this.offset.scroll.left)}},_clear:function(){this._removeClass(this.helper,"ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_trigger:function(e,i,s){return s=s||this._uiHash(),t.ui.plugin.call(this,e,[i,s,this],!0),/^(drag|start|stop)/.test(e)&&(this.positionAbs=this._convertPositionTo("absolute"),s.offset=this.positionAbs),t.Widget.prototype._trigger.call(this,e,i,s)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),t.ui.plugin.add("draggable","connectToSortable",{start:function(e,i,s){var n=t.extend({},i,{item:s.element});s.sortables=[],t(s.options.connectToSortable).each(function(){var i=t(this).sortable("instance");i&&!i.options.disabled&&(s.sortables.push(i),i.refreshPositions(),i._trigger("activate",e,n))})},stop:function(e,i,s){var n=t.extend({},i,{item:s.element});s.cancelHelperRemoval=!1,t.each(s.sortables,function(){var t=this;t.isOver?(t.isOver=0,s.cancelHelperRemoval=!0,t.cancelHelperRemoval=!1,t._storedCSS={position:t.placeholder.css("position"),top:t.placeholder.css("top"),left:t.placeholder.css("left")},t._mouseStop(e),t.options.helper=t.options._helper):(t.cancelHelperRemoval=!0,t._trigger("deactivate",e,n))})},drag:function(e,i,s){t.each(s.sortables,function(){var n=!1,o=this;o.positionAbs=s.positionAbs,o.helperProportions=s.helperProportions,o.offset.click=s.offset.click,o._intersectsWith(o.containerCache)&&(n=!0,t.each(s.sortables,function(){return this.positionAbs=s.positionAbs,this.helperProportions=s.helperProportions,this.offset.click=s.offset.click,this!==o&&this._intersectsWith(this.containerCache)&&t.contains(o.element[0],this.element[0])&&(n=!1),n})),n?(o.isOver||(o.isOver=1,s._parent=i.helper.parent(),o.currentItem=i.helper.appendTo(o.element).data("ui-sortable-item",!0),o.options._helper=o.options.helper,o.options.helper=function(){return i.helper[0]},e.target=o.currentItem[0],o._mouseCapture(e,!0),o._mouseStart(e,!0,!0),o.offset.click.top=s.offset.click.top,o.offset.click.left=s.offset.click.left,o.offset.parent.left-=s.offset.parent.left-o.offset.parent.left,o.offset.parent.top-=s.offset.parent.top-o.offset.parent.top,s._trigger("toSortable",e),s.dropped=o.element,t.each(s.sortables,function(){this.refreshPositions()}),s.currentItem=s.element,o.fromOutside=s),o.currentItem&&(o._mouseDrag(e),i.position=o.position)):o.isOver&&(o.isOver=0,o.cancelHelperRemoval=!0,o.options._revert=o.options.revert,o.options.revert=!1,o._trigger("out",e,o._uiHash(o)),o._mouseStop(e,!0),o.options.revert=o.options._revert,o.options.helper=o.options._helper,o.placeholder&&o.placeholder.remove(),i.helper.appendTo(s._parent),s._refreshOffsets(e),i.position=s._generatePosition(e,!0),s._trigger("fromSortable",e),s.dropped=!1,t.each(s.sortables,function(){this.refreshPositions()}))})}}),t.ui.plugin.add("draggable","cursor",{start:function(e,i,s){var n=t("body"),o=s.options;n.css("cursor")&&(o._cursor=n.css("cursor")),n.css("cursor",o.cursor)},stop:function(e,i,s){var n=s.options;n._cursor&&t("body").css("cursor",n._cursor)}}),t.ui.plugin.add("draggable","opacity",{start:function(e,i,s){var n=t(i.helper),o=s.options;n.css("opacity")&&(o._opacity=n.css("opacity")),n.css("opacity",o.opacity)},stop:function(e,i,s){var n=s.options;n._opacity&&t(i.helper).css("opacity",n._opacity)}}),t.ui.plugin.add("draggable","scroll",{start:function(t,e,i){i.scrollParentNotHidden||(i.scrollParentNotHidden=i.helper.scrollParent(!1)),i.scrollParentNotHidden[0]!==i.document[0]&&"HTML"!==i.scrollParentNotHidden[0].tagName&&(i.overflowOffset=i.scrollParentNotHidden.offset())},drag:function(e,i,s){var n=s.options,o=!1,a=s.scrollParentNotHidden[0],r=s.document[0];a!==r&&"HTML"!==a.tagName?(n.axis&&"x"===n.axis||(s.overflowOffset.top+a.offsetHeight-e.pageY<n.scrollSensitivity?a.scrollTop=o=a.scrollTop+n.scrollSpeed:e.pageY-s.overflowOffset.top<n.scrollSensitivity&&(a.scrollTop=o=a.scrollTop-n.scrollSpeed)),n.axis&&"y"===n.axis||(s.overflowOffset.left+a.offsetWidth-e.pageX<n.scrollSensitivity?a.scrollLeft=o=a.scrollLeft+n.scrollSpeed:e.pageX-s.overflowOffset.left<n.scrollSensitivity&&(a.scrollLeft=o=a.scrollLeft-n.scrollSpeed))):(n.axis&&"x"===n.axis||(e.pageY-t(r).scrollTop()<n.scrollSensitivity?o=t(r).scrollTop(t(r).scrollTop()-n.scrollSpeed):t(window).height()-(e.pageY-t(r).scrollTop())<n.scrollSensitivity&&(o=t(r).scrollTop(t(r).scrollTop()+n.scrollSpeed))),n.axis&&"y"===n.axis||(e.pageX-t(r).scrollLeft()<n.scrollSensitivity?o=t(r).scrollLeft(t(r).scrollLeft()-n.scrollSpeed):t(window).width()-(e.pageX-t(r).scrollLeft())<n.scrollSensitivity&&(o=t(r).scrollLeft(t(r).scrollLeft()+n.scrollSpeed)))),o!==!1&&t.ui.ddmanager&&!n.dropBehaviour&&t.ui.ddmanager.prepareOffsets(s,e)}}),t.ui.plugin.add("draggable","snap",{start:function(e,i,s){var n=s.options;s.snapElements=[],t(n.snap.constructor!==String?n.snap.items||":data(ui-draggable)":n.snap).each(function(){var e=t(this),i=e.offset();this!==s.element[0]&&s.snapElements.push({item:this,width:e.outerWidth(),height:e.outerHeight(),top:i.top,left:i.left})})},drag:function(e,i,s){var n,o,a,r,l,h,c,u,d,p,f=s.options,m=f.snapTolerance,g=i.offset.left,v=g+s.helperProportions.width,_=i.offset.top,b=_+s.helperProportions.height;for(d=s.snapElements.length-1;d>=0;d--)l=s.snapElements[d].left-s.margins.left,h=l+s.snapElements[d].width,c=s.snapElements[d].top-s.margins.top,u=c+s.snapElements[d].height,l-m>v||g>h+m||c-m>b||_>u+m||!t.contains(s.snapElements[d].item.ownerDocument,s.snapElements[d].item)?(s.snapElements[d].snapping&&s.options.snap.release&&s.options.snap.release.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=!1):("inner"!==f.snapMode&&(n=m>=Math.abs(c-b),o=m>=Math.abs(u-_),a=m>=Math.abs(l-v),r=m>=Math.abs(h-g),n&&(i.position.top=s._convertPositionTo("relative",{top:c-s.helperProportions.height,left:0}).top),o&&(i.position.top=s._convertPositionTo("relative",{top:u,left:0}).top),a&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l-s.helperProportions.width}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h}).left)),p=n||o||a||r,"outer"!==f.snapMode&&(n=m>=Math.abs(c-_),o=m>=Math.abs(u-b),a=m>=Math.abs(l-g),r=m>=Math.abs(h-v),n&&(i.position.top=s._convertPositionTo("relative",{top:c,left:0}).top),o&&(i.position.top=s._convertPositionTo("relative",{top:u-s.helperProportions.height,left:0}).top),a&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h-s.helperProportions.width}).left)),!s.snapElements[d].snapping&&(n||o||a||r||p)&&s.options.snap.snap&&s.options.snap.snap.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=n||o||a||r||p)}}),t.ui.plugin.add("draggable","stack",{start:function(e,i,s){var n,o=s.options,a=t.makeArray(t(o.stack)).sort(function(e,i){return(parseInt(t(e).css("zIndex"),10)||0)-(parseInt(t(i).css("zIndex"),10)||0)});a.length&&(n=parseInt(t(a[0]).css("zIndex"),10)||0,t(a).each(function(e){t(this).css("zIndex",n+e)}),this.css("zIndex",n+a.length))}}),t.ui.plugin.add("draggable","zIndex",{start:function(e,i,s){var n=t(i.helper),o=s.options;n.css("zIndex")&&(o._zIndex=n.css("zIndex")),n.css("zIndex",o.zIndex)},stop:function(e,i,s){var n=s.options;n._zIndex&&t(i.helper).css("zIndex",n._zIndex)}}),t.ui.draggable,t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())
+}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("<div>"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,l=this._change[o];return this._updatePrevProperties(),l?(i=l.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,l,h=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,l=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,h.animate||this.element.css(t.extend(a,{top:l,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!h.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidth<t.width,n=this._isNumber(t.height)&&e.maxHeight&&e.maxHeight<t.height,o=this._isNumber(t.width)&&e.minWidth&&e.minWidth>t.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,l=this.originalPosition.top+this.originalSize.height,h=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&h&&(t.left=r-e.minWidth),s&&h&&(t.left=r-e.maxWidth),a&&c&&(t.top=l-e.minHeight),n&&c&&(t.top=l-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("<div style='overflow:hidden;'></div>"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,l={width:i.size.width-r,height:i.size.height-a},h=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(l,c&&h?{top:c,left:h}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,l=t(this).resizable("instance"),h=l.options,c=l.element,u=h.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(l.containerElement=t(d),/document/.test(u)||u===document?(l.containerOffset={left:0,top:0},l.containerPosition={left:0,top:0},l.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=l._num(e.css("padding"+s))}),l.containerOffset=e.offset(),l.containerPosition=e.position(),l.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=l.containerOffset,n=l.containerSize.height,o=l.containerSize.width,a=l._hasScroll(d,"left")?d.scrollWidth:o,r=l._hasScroll(d)?d.scrollHeight:n,l.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,l=a.containerOffset,h=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=l),h.left<(a._helper?l.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-l.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?l.left:0),h.top<(a._helper?l.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-l.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?l.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-l.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-l.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),l=a.outerWidth()-e.sizeDiff.width,h=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:l,height:h}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:l,height:h})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,l="number"==typeof s.grid?[s.grid,s.grid]:s.grid,h=l[0]||1,c=l[1]||1,u=Math.round((n.width-o.width)/h)*h,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,v=s.minWidth&&s.minWidth>p,_=s.minHeight&&s.minHeight>f;s.grid=l,v&&(p+=h),_&&(f+=c),m&&(p-=h),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-h)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-h>0?(i.size.width=p,i.position.left=a.left-u):(p=h-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable}); \ No newline at end of file
diff --git a/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.structure.css b/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.structure.css
new file mode 100644
index 0000000..2032948
--- /dev/null
+++ b/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.structure.css
@@ -0,0 +1,170 @@
+/*!
+ * jQuery UI CSS Framework 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/category/theming/
+ */
+.ui-draggable-handle {
+ -ms-touch-action: none;
+ touch-action: none;
+}
+/* Layout helpers
+----------------------------------*/
+.ui-helper-hidden {
+ display: none;
+}
+.ui-helper-hidden-accessible {
+ border: 0;
+ clip: rect(0 0 0 0);
+ height: 1px;
+ margin: -1px;
+ overflow: hidden;
+ padding: 0;
+ position: absolute;
+ width: 1px;
+}
+.ui-helper-reset {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ outline: 0;
+ line-height: 1.3;
+ text-decoration: none;
+ font-size: 100%;
+ list-style: none;
+}
+.ui-helper-clearfix:before,
+.ui-helper-clearfix:after {
+ content: "";
+ display: table;
+ border-collapse: collapse;
+}
+.ui-helper-clearfix:after {
+ clear: both;
+}
+.ui-helper-zfix {
+ width: 100%;
+ height: 100%;
+ top: 0;
+ left: 0;
+ position: absolute;
+ opacity: 0;
+ filter:Alpha(Opacity=0); /* support: IE8 */
+}
+
+.ui-front {
+ z-index: 100;
+}
+
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-disabled {
+ cursor: default !important;
+ pointer-events: none;
+}
+
+
+/* Icons
+----------------------------------*/
+.ui-icon {
+ display: inline-block;
+ vertical-align: middle;
+ margin-top: -.25em;
+ position: relative;
+ text-indent: -99999px;
+ overflow: hidden;
+ background-repeat: no-repeat;
+}
+
+.ui-widget-icon-block {
+ left: 50%;
+ margin-left: -8px;
+ display: block;
+}
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.ui-widget-overlay {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+}
+.ui-resizable {
+ position: relative;
+}
+.ui-resizable-handle {
+ position: absolute;
+ font-size: 0.1px;
+ display: block;
+ -ms-touch-action: none;
+ touch-action: none;
+}
+.ui-resizable-disabled .ui-resizable-handle,
+.ui-resizable-autohide .ui-resizable-handle {
+ display: none;
+}
+.ui-resizable-n {
+ cursor: n-resize;
+ height: 7px;
+ width: 100%;
+ top: -5px;
+ left: 0;
+}
+.ui-resizable-s {
+ cursor: s-resize;
+ height: 7px;
+ width: 100%;
+ bottom: -5px;
+ left: 0;
+}
+.ui-resizable-e {
+ cursor: e-resize;
+ width: 7px;
+ right: -5px;
+ top: 0;
+ height: 100%;
+}
+.ui-resizable-w {
+ cursor: w-resize;
+ width: 7px;
+ left: -5px;
+ top: 0;
+ height: 100%;
+}
+.ui-resizable-se {
+ cursor: se-resize;
+ width: 12px;
+ height: 12px;
+ right: 1px;
+ bottom: 1px;
+}
+.ui-resizable-sw {
+ cursor: sw-resize;
+ width: 9px;
+ height: 9px;
+ left: -5px;
+ bottom: -5px;
+}
+.ui-resizable-nw {
+ cursor: nw-resize;
+ width: 9px;
+ height: 9px;
+ left: -5px;
+ top: -5px;
+}
+.ui-resizable-ne {
+ cursor: ne-resize;
+ width: 9px;
+ height: 9px;
+ right: -5px;
+ top: -5px;
+}
diff --git a/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.structure.min.css b/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.structure.min.css
new file mode 100644
index 0000000..3b1d670
--- /dev/null
+++ b/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.structure.min.css
@@ -0,0 +1,5 @@
+/*! jQuery UI - v1.12.1 - 2018-03-18
+* http://jqueryui.com
+* Copyright jQuery Foundation and other contributors; Licensed MIT */
+
+.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px} \ No newline at end of file
diff --git a/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.theme.css b/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.theme.css
new file mode 100644
index 0000000..f559ff3
--- /dev/null
+++ b/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.theme.css
@@ -0,0 +1,443 @@
+/*!
+ * jQuery UI CSS Framework 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/category/theming/
+ *
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?scope=&folderName=base&cornerRadiusShadow=8px&offsetLeftShadow=0px&offsetTopShadow=0px&thicknessShadow=5px&opacityShadow=30&bgImgOpacityShadow=0&bgTextureShadow=flat&bgColorShadow=666666&opacityOverlay=30&bgImgOpacityOverlay=0&bgTextureOverlay=flat&bgColorOverlay=aaaaaa&iconColorError=cc0000&fcError=5f3f3f&borderColorError=f1a899&bgTextureError=flat&bgColorError=fddfdf&iconColorHighlight=777620&fcHighlight=777620&borderColorHighlight=dad55e&bgTextureHighlight=flat&bgColorHighlight=fffa90&iconColorActive=ffffff&fcActive=ffffff&borderColorActive=003eff&bgTextureActive=flat&bgColorActive=007fff&iconColorHover=555555&fcHover=2b2b2b&borderColorHover=cccccc&bgTextureHover=flat&bgColorHover=ededed&iconColorDefault=777777&fcDefault=454545&borderColorDefault=c5c5c5&bgTextureDefault=flat&bgColorDefault=f6f6f6&iconColorContent=444444&fcContent=333333&borderColorContent=dddddd&bgTextureContent=flat&bgColorContent=ffffff&iconColorHeader=444444&fcHeader=333333&borderColorHeader=dddddd&bgTextureHeader=flat&bgColorHeader=e9e9e9&cornerRadius=3px&fwDefault=normal&fsDefault=1em&ffDefault=Arial%2CHelvetica%2Csans-serif
+ */
+
+
+/* Component containers
+----------------------------------*/
+.ui-widget {
+ font-family: Arial,Helvetica,sans-serif;
+ font-size: 1em;
+}
+.ui-widget .ui-widget {
+ font-size: 1em;
+}
+.ui-widget input,
+.ui-widget select,
+.ui-widget textarea,
+.ui-widget button {
+ font-family: Arial,Helvetica,sans-serif;
+ font-size: 1em;
+}
+.ui-widget.ui-widget-content {
+ border: 1px solid #c5c5c5;
+}
+.ui-widget-content {
+ border: 1px solid #dddddd;
+ background: #ffffff;
+ color: #333333;
+}
+.ui-widget-content a {
+ color: #333333;
+}
+.ui-widget-header {
+ border: 1px solid #dddddd;
+ background: #e9e9e9;
+ color: #333333;
+ font-weight: bold;
+}
+.ui-widget-header a {
+ color: #333333;
+}
+
+/* Interaction states
+----------------------------------*/
+.ui-state-default,
+.ui-widget-content .ui-state-default,
+.ui-widget-header .ui-state-default,
+.ui-button,
+
+/* We use html here because we need a greater specificity to make sure disabled
+works properly when clicked or hovered */
+html .ui-button.ui-state-disabled:hover,
+html .ui-button.ui-state-disabled:active {
+ border: 1px solid #c5c5c5;
+ background: #f6f6f6;
+ font-weight: normal;
+ color: #454545;
+}
+.ui-state-default a,
+.ui-state-default a:link,
+.ui-state-default a:visited,
+a.ui-button,
+a:link.ui-button,
+a:visited.ui-button,
+.ui-button {
+ color: #454545;
+ text-decoration: none;
+}
+.ui-state-hover,
+.ui-widget-content .ui-state-hover,
+.ui-widget-header .ui-state-hover,
+.ui-state-focus,
+.ui-widget-content .ui-state-focus,
+.ui-widget-header .ui-state-focus,
+.ui-button:hover,
+.ui-button:focus {
+ border: 1px solid #cccccc;
+ background: #ededed;
+ font-weight: normal;
+ color: #2b2b2b;
+}
+.ui-state-hover a,
+.ui-state-hover a:hover,
+.ui-state-hover a:link,
+.ui-state-hover a:visited,
+.ui-state-focus a,
+.ui-state-focus a:hover,
+.ui-state-focus a:link,
+.ui-state-focus a:visited,
+a.ui-button:hover,
+a.ui-button:focus {
+ color: #2b2b2b;
+ text-decoration: none;
+}
+
+.ui-visual-focus {
+ box-shadow: 0 0 3px 1px rgb(94, 158, 214);
+}
+.ui-state-active,
+.ui-widget-content .ui-state-active,
+.ui-widget-header .ui-state-active,
+a.ui-button:active,
+.ui-button:active,
+.ui-button.ui-state-active:hover {
+ border: 1px solid #003eff;
+ background: #007fff;
+ font-weight: normal;
+ color: #ffffff;
+}
+.ui-icon-background,
+.ui-state-active .ui-icon-background {
+ border: #003eff;
+ background-color: #ffffff;
+}
+.ui-state-active a,
+.ui-state-active a:link,
+.ui-state-active a:visited {
+ color: #ffffff;
+ text-decoration: none;
+}
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-highlight,
+.ui-widget-content .ui-state-highlight,
+.ui-widget-header .ui-state-highlight {
+ border: 1px solid #dad55e;
+ background: #fffa90;
+ color: #777620;
+}
+.ui-state-checked {
+ border: 1px solid #dad55e;
+ background: #fffa90;
+}
+.ui-state-highlight a,
+.ui-widget-content .ui-state-highlight a,
+.ui-widget-header .ui-state-highlight a {
+ color: #777620;
+}
+.ui-state-error,
+.ui-widget-content .ui-state-error,
+.ui-widget-header .ui-state-error {
+ border: 1px solid #f1a899;
+ background: #fddfdf;
+ color: #5f3f3f;
+}
+.ui-state-error a,
+.ui-widget-content .ui-state-error a,
+.ui-widget-header .ui-state-error a {
+ color: #5f3f3f;
+}
+.ui-state-error-text,
+.ui-widget-content .ui-state-error-text,
+.ui-widget-header .ui-state-error-text {
+ color: #5f3f3f;
+}
+.ui-priority-primary,
+.ui-widget-content .ui-priority-primary,
+.ui-widget-header .ui-priority-primary {
+ font-weight: bold;
+}
+.ui-priority-secondary,
+.ui-widget-content .ui-priority-secondary,
+.ui-widget-header .ui-priority-secondary {
+ opacity: .7;
+ filter:Alpha(Opacity=70); /* support: IE8 */
+ font-weight: normal;
+}
+.ui-state-disabled,
+.ui-widget-content .ui-state-disabled,
+.ui-widget-header .ui-state-disabled {
+ opacity: .35;
+ filter:Alpha(Opacity=35); /* support: IE8 */
+ background-image: none;
+}
+.ui-state-disabled .ui-icon {
+ filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */
+}
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon {
+ width: 16px;
+ height: 16px;
+}
+.ui-icon,
+.ui-widget-content .ui-icon {
+ background-image: url("images/ui-icons_444444_256x240.png");
+}
+.ui-widget-header .ui-icon {
+ background-image: url("images/ui-icons_444444_256x240.png");
+}
+.ui-state-hover .ui-icon,
+.ui-state-focus .ui-icon,
+.ui-button:hover .ui-icon,
+.ui-button:focus .ui-icon {
+ background-image: url("images/ui-icons_555555_256x240.png");
+}
+.ui-state-active .ui-icon,
+.ui-button:active .ui-icon {
+ background-image: url("images/ui-icons_ffffff_256x240.png");
+}
+.ui-state-highlight .ui-icon,
+.ui-button .ui-state-highlight.ui-icon {
+ background-image: url("images/ui-icons_777620_256x240.png");
+}
+.ui-state-error .ui-icon,
+.ui-state-error-text .ui-icon {
+ background-image: url("images/ui-icons_cc0000_256x240.png");
+}
+.ui-button .ui-icon {
+ background-image: url("images/ui-icons_777777_256x240.png");
+}
+
+/* positioning */
+.ui-icon-blank { background-position: 16px 16px; }
+.ui-icon-caret-1-n { background-position: 0 0; }
+.ui-icon-caret-1-ne { background-position: -16px 0; }
+.ui-icon-caret-1-e { background-position: -32px 0; }
+.ui-icon-caret-1-se { background-position: -48px 0; }
+.ui-icon-caret-1-s { background-position: -65px 0; }
+.ui-icon-caret-1-sw { background-position: -80px 0; }
+.ui-icon-caret-1-w { background-position: -96px 0; }
+.ui-icon-caret-1-nw { background-position: -112px 0; }
+.ui-icon-caret-2-n-s { background-position: -128px 0; }
+.ui-icon-caret-2-e-w { background-position: -144px 0; }
+.ui-icon-triangle-1-n { background-position: 0 -16px; }
+.ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.ui-icon-triangle-1-e { background-position: -32px -16px; }
+.ui-icon-triangle-1-se { background-position: -48px -16px; }
+.ui-icon-triangle-1-s { background-position: -65px -16px; }
+.ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.ui-icon-triangle-1-w { background-position: -96px -16px; }
+.ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.ui-icon-arrow-1-n { background-position: 0 -32px; }
+.ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.ui-icon-arrow-1-e { background-position: -32px -32px; }
+.ui-icon-arrow-1-se { background-position: -48px -32px; }
+.ui-icon-arrow-1-s { background-position: -65px -32px; }
+.ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.ui-icon-arrow-1-w { background-position: -96px -32px; }
+.ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.ui-icon-arrowthick-1-n { background-position: 1px -48px; }
+.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.ui-icon-arrow-4 { background-position: 0 -80px; }
+.ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.ui-icon-extlink { background-position: -32px -80px; }
+.ui-icon-newwin { background-position: -48px -80px; }
+.ui-icon-refresh { background-position: -64px -80px; }
+.ui-icon-shuffle { background-position: -80px -80px; }
+.ui-icon-transfer-e-w { background-position: -96px -80px; }
+.ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.ui-icon-folder-collapsed { background-position: 0 -96px; }
+.ui-icon-folder-open { background-position: -16px -96px; }
+.ui-icon-document { background-position: -32px -96px; }
+.ui-icon-document-b { background-position: -48px -96px; }
+.ui-icon-note { background-position: -64px -96px; }
+.ui-icon-mail-closed { background-position: -80px -96px; }
+.ui-icon-mail-open { background-position: -96px -96px; }
+.ui-icon-suitcase { background-position: -112px -96px; }
+.ui-icon-comment { background-position: -128px -96px; }
+.ui-icon-person { background-position: -144px -96px; }
+.ui-icon-print { background-position: -160px -96px; }
+.ui-icon-trash { background-position: -176px -96px; }
+.ui-icon-locked { background-position: -192px -96px; }
+.ui-icon-unlocked { background-position: -208px -96px; }
+.ui-icon-bookmark { background-position: -224px -96px; }
+.ui-icon-tag { background-position: -240px -96px; }
+.ui-icon-home { background-position: 0 -112px; }
+.ui-icon-flag { background-position: -16px -112px; }
+.ui-icon-calendar { background-position: -32px -112px; }
+.ui-icon-cart { background-position: -48px -112px; }
+.ui-icon-pencil { background-position: -64px -112px; }
+.ui-icon-clock { background-position: -80px -112px; }
+.ui-icon-disk { background-position: -96px -112px; }
+.ui-icon-calculator { background-position: -112px -112px; }
+.ui-icon-zoomin { background-position: -128px -112px; }
+.ui-icon-zoomout { background-position: -144px -112px; }
+.ui-icon-search { background-position: -160px -112px; }
+.ui-icon-wrench { background-position: -176px -112px; }
+.ui-icon-gear { background-position: -192px -112px; }
+.ui-icon-heart { background-position: -208px -112px; }
+.ui-icon-star { background-position: -224px -112px; }
+.ui-icon-link { background-position: -240px -112px; }
+.ui-icon-cancel { background-position: 0 -128px; }
+.ui-icon-plus { background-position: -16px -128px; }
+.ui-icon-plusthick { background-position: -32px -128px; }
+.ui-icon-minus { background-position: -48px -128px; }
+.ui-icon-minusthick { background-position: -64px -128px; }
+.ui-icon-close { background-position: -80px -128px; }
+.ui-icon-closethick { background-position: -96px -128px; }
+.ui-icon-key { background-position: -112px -128px; }
+.ui-icon-lightbulb { background-position: -128px -128px; }
+.ui-icon-scissors { background-position: -144px -128px; }
+.ui-icon-clipboard { background-position: -160px -128px; }
+.ui-icon-copy { background-position: -176px -128px; }
+.ui-icon-contact { background-position: -192px -128px; }
+.ui-icon-image { background-position: -208px -128px; }
+.ui-icon-video { background-position: -224px -128px; }
+.ui-icon-script { background-position: -240px -128px; }
+.ui-icon-alert { background-position: 0 -144px; }
+.ui-icon-info { background-position: -16px -144px; }
+.ui-icon-notice { background-position: -32px -144px; }
+.ui-icon-help { background-position: -48px -144px; }
+.ui-icon-check { background-position: -64px -144px; }
+.ui-icon-bullet { background-position: -80px -144px; }
+.ui-icon-radio-on { background-position: -96px -144px; }
+.ui-icon-radio-off { background-position: -112px -144px; }
+.ui-icon-pin-w { background-position: -128px -144px; }
+.ui-icon-pin-s { background-position: -144px -144px; }
+.ui-icon-play { background-position: 0 -160px; }
+.ui-icon-pause { background-position: -16px -160px; }
+.ui-icon-seek-next { background-position: -32px -160px; }
+.ui-icon-seek-prev { background-position: -48px -160px; }
+.ui-icon-seek-end { background-position: -64px -160px; }
+.ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.ui-icon-seek-first { background-position: -80px -160px; }
+.ui-icon-stop { background-position: -96px -160px; }
+.ui-icon-eject { background-position: -112px -160px; }
+.ui-icon-volume-off { background-position: -128px -160px; }
+.ui-icon-volume-on { background-position: -144px -160px; }
+.ui-icon-power { background-position: 0 -176px; }
+.ui-icon-signal-diag { background-position: -16px -176px; }
+.ui-icon-signal { background-position: -32px -176px; }
+.ui-icon-battery-0 { background-position: -48px -176px; }
+.ui-icon-battery-1 { background-position: -64px -176px; }
+.ui-icon-battery-2 { background-position: -80px -176px; }
+.ui-icon-battery-3 { background-position: -96px -176px; }
+.ui-icon-circle-plus { background-position: 0 -192px; }
+.ui-icon-circle-minus { background-position: -16px -192px; }
+.ui-icon-circle-close { background-position: -32px -192px; }
+.ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.ui-icon-circle-zoomin { background-position: -176px -192px; }
+.ui-icon-circle-zoomout { background-position: -192px -192px; }
+.ui-icon-circle-check { background-position: -208px -192px; }
+.ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.ui-icon-circlesmall-close { background-position: -32px -208px; }
+.ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.ui-icon-squaresmall-close { background-position: -80px -208px; }
+.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.ui-corner-all,
+.ui-corner-top,
+.ui-corner-left,
+.ui-corner-tl {
+ border-top-left-radius: 3px;
+}
+.ui-corner-all,
+.ui-corner-top,
+.ui-corner-right,
+.ui-corner-tr {
+ border-top-right-radius: 3px;
+}
+.ui-corner-all,
+.ui-corner-bottom,
+.ui-corner-left,
+.ui-corner-bl {
+ border-bottom-left-radius: 3px;
+}
+.ui-corner-all,
+.ui-corner-bottom,
+.ui-corner-right,
+.ui-corner-br {
+ border-bottom-right-radius: 3px;
+}
+
+/* Overlays */
+.ui-widget-overlay {
+ background: #aaaaaa;
+ opacity: .3;
+ filter: Alpha(Opacity=30); /* support: IE8 */
+}
+.ui-widget-shadow {
+ -webkit-box-shadow: 0px 0px 5px #666666;
+ box-shadow: 0px 0px 5px #666666;
+}
diff --git a/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.theme.min.css b/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.theme.min.css
new file mode 100644
index 0000000..f99db91
--- /dev/null
+++ b/javascript/vendor/jquery-ui-1.12.1.custom/jquery-ui.theme.min.css
@@ -0,0 +1,5 @@
+/*! jQuery UI - v1.12.1 - 2018-03-18
+* http://jqueryui.com
+* Copyright jQuery Foundation and other contributors; Licensed MIT */
+
+.ui-widget{font-family:Arial,Helvetica,sans-serif;font-size:1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Arial,Helvetica,sans-serif;font-size:1em}.ui-widget.ui-widget-content{border:1px solid #c5c5c5}.ui-widget-content{border:1px solid #ddd;background:#fff;color:#333}.ui-widget-content a{color:#333}.ui-widget-header{border:1px solid #ddd;background:#e9e9e9;color:#333;font-weight:bold}.ui-widget-header a{color:#333}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,.ui-button,html .ui-button.ui-state-disabled:hover,html .ui-button.ui-state-disabled:active{border:1px solid #c5c5c5;background:#f6f6f6;font-weight:normal;color:#454545}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button,.ui-button{color:#454545;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus,.ui-button:hover,.ui-button:focus{border:1px solid #ccc;background:#ededed;font-weight:normal;color:#2b2b2b}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,a.ui-button:hover,a.ui-button:focus{color:#2b2b2b;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px rgb(94,158,214)}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active,.ui-button:active,.ui-button.ui-state-active:hover{border:1px solid #003eff;background:#007fff;font-weight:normal;color:#fff}.ui-icon-background,.ui-state-active .ui-icon-background{border:#003eff;background-color:#fff}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#fff;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #dad55e;background:#fffa90;color:#777620}.ui-state-checked{border:1px solid #dad55e;background:#fffa90}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#777620}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #f1a899;background:#fddfdf;color:#5f3f3f}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#5f3f3f}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#5f3f3f}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_444444_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_444444_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-button:hover .ui-icon,.ui-button:focus .ui-icon{background-image:url("images/ui-icons_555555_256x240.png")}.ui-state-active .ui-icon,.ui-button:active .ui-icon{background-image:url("images/ui-icons_ffffff_256x240.png")}.ui-state-highlight .ui-icon,.ui-button .ui-state-highlight.ui-icon{background-image:url("images/ui-icons_777620_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_cc0000_256x240.png")}.ui-button .ui-icon{background-image:url("images/ui-icons_777777_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-caret-1-n{background-position:0 0}.ui-icon-caret-1-ne{background-position:-16px 0}.ui-icon-caret-1-e{background-position:-32px 0}.ui-icon-caret-1-se{background-position:-48px 0}.ui-icon-caret-1-s{background-position:-65px 0}.ui-icon-caret-1-sw{background-position:-80px 0}.ui-icon-caret-1-w{background-position:-96px 0}.ui-icon-caret-1-nw{background-position:-112px 0}.ui-icon-caret-2-n-s{background-position:-128px 0}.ui-icon-caret-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-65px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-65px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:1px -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:3px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:3px}.ui-widget-overlay{background:#aaa;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{-webkit-box-shadow:0 0 5px #666;box-shadow:0 0 5px #666} \ No newline at end of file
diff --git a/javascript/vendor/jquery-ui-1.12.1.custom/package.json b/javascript/vendor/jquery-ui-1.12.1.custom/package.json
new file mode 100644
index 0000000..e3c846e
--- /dev/null
+++ b/javascript/vendor/jquery-ui-1.12.1.custom/package.json
@@ -0,0 +1,74 @@
+{
+ "name": "jquery-ui",
+ "title": "jQuery UI",
+ "description": "A curated set of user interface interactions, effects, widgets, and themes built on top of the jQuery JavaScript Library.",
+ "version": "1.12.1",
+ "homepage": "http://jqueryui.com",
+ "author": {
+ "name": "jQuery Foundation and other contributors",
+ "url": "https://github.com/jquery/jquery-ui/blob/1.12.1/AUTHORS.txt"
+ },
+ "main": "ui/widget.js",
+ "maintainers": [
+ {
+ "name": "Scott González",
+ "email": "scott.gonzalez@gmail.com",
+ "url": "http://scottgonzalez.com"
+ },
+ {
+ "name": "Jörn Zaefferer",
+ "email": "joern.zaefferer@gmail.com",
+ "url": "http://bassistance.de"
+ },
+ {
+ "name": "Mike Sherov",
+ "email": "mike.sherov@gmail.com",
+ "url": "http://mike.sherov.com"
+ },
+ {
+ "name": "TJ VanToll",
+ "email": "tj.vantoll@gmail.com",
+ "url": "http://tjvantoll.com"
+ },
+ {
+ "name": "Felix Nagel",
+ "email": "info@felixnagel.com",
+ "url": "http://www.felixnagel.com"
+ },
+ {
+ "name": "Alex Schmitz",
+ "email": "arschmitz@gmail.com",
+ "url": "https://github.com/arschmitz"
+ }
+ ],
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/jquery/jquery-ui.git"
+ },
+ "bugs": "https://bugs.jqueryui.com/",
+ "license": "MIT",
+ "scripts": {
+ "test": "grunt"
+ },
+ "dependencies": {},
+ "devDependencies": {
+ "commitplease": "2.3.0",
+ "grunt": "0.4.5",
+ "grunt-bowercopy": "1.2.4",
+ "grunt-cli": "0.1.13",
+ "grunt-compare-size": "0.4.0",
+ "grunt-contrib-concat": "0.5.1",
+ "grunt-contrib-csslint": "0.5.0",
+ "grunt-contrib-jshint": "0.12.0",
+ "grunt-contrib-qunit": "1.0.1",
+ "grunt-contrib-requirejs": "0.4.4",
+ "grunt-contrib-uglify": "0.11.1",
+ "grunt-git-authors": "3.1.0",
+ "grunt-html": "6.0.0",
+ "grunt-jscs": "2.1.0",
+ "load-grunt-tasks": "3.4.0",
+ "rimraf": "2.5.1",
+ "testswarm": "1.1.0"
+ },
+ "keywords": []
+}