From daee0d05c3582386aca80e268eb23c370a725513 Mon Sep 17 00:00:00 2001 From: jos Date: Sun, 3 Jun 2018 15:21:18 +0200 Subject: [PATCH] Released `v5.17.0` --- HISTORY.md | 2 +- dist/jsoneditor-minimalist.js | 980 ++++++++++++++++++++++++++--- dist/jsoneditor-minimalist.map | 2 +- dist/jsoneditor-minimalist.min.js | 11 +- dist/jsoneditor.css | 142 ++++- dist/jsoneditor.js | 990 +++++++++++++++++++++++++++--- dist/jsoneditor.map | 2 +- dist/jsoneditor.min.css | 2 +- dist/jsoneditor.min.js | 24 +- package-lock.json | 2 +- package.json | 2 +- 11 files changed, 1986 insertions(+), 173 deletions(-) diff --git a/HISTORY.md b/HISTORY.md index 939a41d..9cee1b3 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -3,7 +3,7 @@ https://github.com/josdejong/jsoneditor -## not yet released, version 5.17.0 +## 2018-06-03, version 5.17.0 - Implemented advanced sorting for arrays. diff --git a/dist/jsoneditor-minimalist.js b/dist/jsoneditor-minimalist.js index 4d3c5ac..73c6513 100644 --- a/dist/jsoneditor-minimalist.js +++ b/dist/jsoneditor-minimalist.js @@ -24,8 +24,8 @@ * Copyright (c) 2011-2017 Jos de Jong, http://jsoneditoronline.org * * @author Jos de Jong, - * @version 5.16.0 - * @date 2018-05-23 + * @version 5.17.0 + * @date 2018-06-03 */ (function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') @@ -94,7 +94,7 @@ return /******/ (function(modules) { // webpackBootstrap } var treemode = __webpack_require__(1); - var textmode = __webpack_require__(16); + var textmode = __webpack_require__(17); var util = __webpack_require__(4); /** @@ -504,9 +504,9 @@ return /******/ (function(modules) { // webpackBootstrap var ContextMenu = __webpack_require__(7); var TreePath = __webpack_require__(9); var Node = __webpack_require__(10); - var ModeSwitcher = __webpack_require__(14); + var ModeSwitcher = __webpack_require__(15); var util = __webpack_require__(4); - var autocomplete = __webpack_require__(15); + var autocomplete = __webpack_require__(16); var translate = __webpack_require__(8).translate; var setLanguages = __webpack_require__(8).setLanguages; var setLanguage = __webpack_require__(8).setLanguage; @@ -793,6 +793,10 @@ return /******/ (function(modules) { // webpackBootstrap this.tbody.removeChild(this.node.getDom()); delete this.node; } + + if (this.treePath) { + this.treePath.reset(); + } }; /** @@ -2225,15 +2229,15 @@ return /******/ (function(modules) { // webpackBootstrap 'undo': function (params) { var node = params.node; node.hideChilds(); - node.sort = params.oldSort; node.childs = params.oldChilds; + node._updateDomIndexes(); node.showChilds(); }, 'redo': function (params) { var node = params.node; node.hideChilds(); - node.sort = params.newSort; node.childs = params.newChilds; + node._updateDomIndexes(); node.showChilds(); } } @@ -4610,15 +4614,24 @@ return /******/ (function(modules) { // webpackBootstrap 'insertTitle': 'Insert a new field with type \'auto\' before this field (Ctrl+Ins)', 'insertSub': 'Select the type of the field to be inserted', 'object': 'Object', + 'ok': 'Ok', 'redo': 'Redo (Ctrl+Shift+Z)', 'removeText': 'Remove', 'removeTitle': 'Remove selected fields (Ctrl+Del)', 'removeField': 'Remove this field (Ctrl+Del)', + 'selectANode': 'Select a node...', 'showAll': 'show all', 'showMore': 'show more', 'showMoreStatus': 'displaying ${visibleChilds} of ${totalChilds} items.', 'sort': 'Sort', 'sortTitle': 'Sort the childs of this ', + 'sortFieldLabel': 'Field:', + 'sortDirectionLabel': 'Direction:', + 'sortFieldTitle': 'Select the nested field by which to sort the array or object', + 'sortAscending': 'Ascending', + 'sortAscendingTitle': 'Sort the selected field in ascending order', + 'sortDescending': 'Descending', + 'sortDescendingTitle': 'Sort the selected field in descending order', 'string': 'String', 'type': 'Type', 'typeTitle': 'Change the type of this field', @@ -4662,10 +4675,13 @@ return /******/ (function(modules) { // webpackBootstrap 'insertTitle': 'Inserir um novo campo do tipo \'auto\' antes deste campo (Ctrl+Ins)', 'insertSub': 'Selecionar o tipo de campo a ser inserido', 'object': 'Objeto', + 'ok': 'Ok', 'redo': 'Refazer (Ctrl+Shift+Z)', 'removeText': 'Remover', 'removeTitle': 'Remover campos selecionados (Ctrl+Del)', 'removeField': 'Remover este campo (Ctrl+Del)', + // TODO: correctly translate selectNode + 'selectNode': 'Select a node...', // TODO: correctly translate showAll 'showAll': 'mostre tudo', // TODO: correctly translate showMore @@ -4674,6 +4690,20 @@ return /******/ (function(modules) { // webpackBootstrap 'showMoreStatus': 'exibindo ${visibleChilds} de ${totalChilds} itens.', 'sort': 'Organizar', 'sortTitle': 'Organizar os filhos deste ', + // TODO: correctly translate sortFieldLabel + 'sortFieldLabel': 'Field:', + // TODO: correctly translate sortDirectionLabel + 'sortDirectionLabel': 'Direction:', + // TODO: correctly translate sortFieldTitle + 'sortFieldTitle': 'Select the nested field by which to sort the array or object', + // TODO: correctly translate sortAscending + 'sortAscending': 'Ascending', + // TODO: correctly translate sortAscendingTitle + 'sortAscendingTitle': 'Sort the selected field in ascending order', + // TODO: correctly translate sortDescending + 'sortDescending': 'Descending', + // TODO: correctly translate sortDescendingTitle + 'sortDescendingTitle': 'Sort the selected field in descending order', 'string': 'Texto', 'type': 'Tipo', 'typeTitle': 'Mudar o tipo deste campo', @@ -4756,6 +4786,7 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; var ContextMenu = __webpack_require__(7); + var translate = __webpack_require__(8).translate; /** * Creates a component that visualize path selection in tree based editors @@ -4769,23 +4800,25 @@ return /******/ (function(modules) { // webpackBootstrap container.appendChild(this.path); this.reset(); } - }; + } /** * Reset component to initial status */ TreePath.prototype.reset = function () { - this.path.innerHTML = ''; - } + this.path.innerHTML = translate('selectNode'); + }; /** * Renders the component UI according to a given path objects - * @param {Array} pathObjs a list of path objects + * @param {Array<{name: String, childs: Array}>} pathObjs a list of path objects * */ TreePath.prototype.setPath = function (pathObjs) { var me = this; - this.reset(); + + this.path.innerHTML = ''; + if (pathObjs && pathObjs.length) { pathObjs.forEach(function (pathObj, idx) { var pathEl = document.createElement('span'); @@ -4830,13 +4863,13 @@ return /******/ (function(modules) { // webpackBootstrap if (this.selectionCallback) { this.selectionCallback(pathObj); } - }; + } function _onContextMenuItemClick(pathObj, selection) { if (this.contextMenuCallback) { this.contextMenuCallback(pathObj, selection); } - }; + } }; /** @@ -4868,9 +4901,10 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; var naturalSort = __webpack_require__(11); + var picoModal = __webpack_require__(12); var ContextMenu = __webpack_require__(7); - var appendNodeFactory = __webpack_require__(12); - var showMoreNodeFactory = __webpack_require__(13); + var appendNodeFactory = __webpack_require__(13); + var showMoreNodeFactory = __webpack_require__(14); var util = __webpack_require__(4); var translate = __webpack_require__(8).translate; @@ -5256,7 +5290,7 @@ return /******/ (function(modules) { // webpackBootstrap // sort object keys if (this.editor.options.sortObjectKeys === true) { - this.sort('asc'); + this.sort([], 'asc'); } } else { @@ -7963,29 +7997,52 @@ return /******/ (function(modules) { // webpackBootstrap /** * Sort the child's of the node. Only applicable when the node has type 'object' * or 'array'. + * @param {String[]} path Path of the child value to be compared * @param {String} direction Sorting direction. Available values: "asc", "desc" * @private */ - Node.prototype.sort = function (direction) { + Node.prototype.sort = function (path, direction) { if (!this._hasChilds()) { return; } - var order = (direction == 'desc') ? -1 : 1; - var prop = (this.type == 'array') ? 'value': 'field'; - this.hideChilds(); + this.hideChilds(); // sorting is faster when the childs are not attached to the dom + // copy the childs array (the old one will be kept for an undo action var oldChilds = this.childs; - var oldSortOrder = this.sortOrder; - - // copy the array (the old one will be kept for an undo action this.childs = this.childs.concat(); - // sort the arrays - this.childs.sort(function (a, b) { - return order * naturalSort(a[prop], b[prop]); - }); - this.sortOrder = (order == 1) ? 'asc' : 'desc'; + // sort the childs array + var order = (direction === 'desc') ? -1 : 1; + + if (this.type === 'object') { + this.childs.sort(function (a, b) { + return order * naturalSort(a.field, b.field); + }); + } + else { // this.type === 'array' + this.childs.sort(function (a, b) { + var nodeA = a.getNestedChild(path); + var nodeB = b.getNestedChild(path); + + if (!nodeA) { + return order; + } + if (!nodeB) { + return -order; + } + + var valueA = nodeA.value; + var valueB = nodeB.value; + + if (typeof valueA !== 'string' && typeof valueB !== 'string') { + // both values are a number, boolean, or null -> use simple, fast sorting + return valueA > valueB ? order : valueA < valueB ? -order : 0; + } + + return order * naturalSort(valueA, valueB); + }); + } // update the index numbering this._updateDomIndexes(); @@ -7993,14 +8050,101 @@ return /******/ (function(modules) { // webpackBootstrap this.editor._onAction('sort', { node: this, oldChilds: oldChilds, - oldSort: oldSortOrder, - newChilds: this.childs, - newSort: this.sortOrder + newChilds: this.childs }); this.showChilds(); }; + /** + * Get a nested child given a path with properties + * @param {String[]} path + * @returns {Node} + */ + Node.prototype.getNestedChild = function (path) { + var i = 0; + var child = this; + + while (child && i < path.length) { + child = child.findChildByProperty(path[i]); + i++; + } + + return child; + }; + + /** + * Find a child by property name + * @param {string} prop + * @return {Node | undefined} Returns the child node when found, or undefined otherwise + */ + Node.prototype.findChildByProperty = function(prop) { + if (this.type !== 'object') { + return undefined; + } + + return this.childs.find(function (child) { + return child.field === prop; + }); + }; + + /** + * Get the paths of the sortable child paths of this node + * @return {string[]} + */ + Node.prototype.getSortablePaths = function () { + if (this.type === 'array') { + if (this.childs.length > 0) { + // sort on any of the property paths of nested objects + var pathsMap = {}; + this.childs.forEach(function (child) { + child._getSortablePaths(pathsMap, ''); + }); + + return Object.keys(pathsMap).sort(); + } + else { + // empty array, you can sort though it doesn't do anything + return [ '.' ]; + } + } + + if (this.type === 'object') { + // sort the object by its properties + return [ '.' ]; + } + + return []; + }; + + /** + * Get the paths of the sortable child paths of this node + * @param {Object} pathsMap + * @param {string} rootPath + */ + Node.prototype._getSortablePaths = function (pathsMap, rootPath) { + if (this.type === 'array') { + // not sortable + } + else if (this.type === 'object') { + this.childs.forEach(function (child) { + if (child.type === 'object') { + child._getSortablePaths(pathsMap, rootPath + '.' + child.field); + } + else if (child.type === 'array') { + // not sortable + } + else { // type === 'auto' or type === 'string' + var path = rootPath + '.' + child.field; + pathsMap[path] = true; + } + }); + } + else { + pathsMap[rootPath + '.'] = true; + } + }; + /** * Create a table row with an append button. * @return {HTMLElement | undefined} tr with the AppendNode contents @@ -8337,32 +8481,13 @@ return /******/ (function(modules) { // webpackBootstrap } if (this._hasChilds()) { - var direction = ((this.sortOrder == 'asc') ? 'desc': 'asc'); items.push({ text: translate('sort'), title: translate('sortTitle') + this.type, - className: 'jsoneditor-sort-' + direction, + className: 'jsoneditor-sort-asc', click: function () { - node.sort(direction); - }, - submenu: [ - { - text: translate('ascending'), - className: 'jsoneditor-sort-asc', - title: translate('ascendingTitle' , {type: this.type}), - click: function () { - node.sort('asc'); - } - }, - { - text: translate('descending'), - className: 'jsoneditor-sort-desc', - title: translate('descendingTitle' , {type: this.type}), - click: function () { - node.sort('desc'); - } - } - ] + node._showSortModal() + } }); } @@ -8500,6 +8625,114 @@ return /******/ (function(modules) { // webpackBootstrap menu.show(anchor, this.editor.content); }; + /** + * Show advanced sorting modal + * @private + */ + Node.prototype._showSortModal = function () { + var node = this; + + var content = '
' + + '
' + translate('sort') + '
' + + '
' + + '' + + '' + + '' + + ' ' + + ' ' + + '' + + '' + + ' ' + + ' ' + + '' + + '' + + '' + + '' + + '' + + '
' + translate('sortFieldLabel') + ' ' + + '
' + + ' ' + + '
' + + '
' + translate('sortDirectionLabel') + ' ' + + '
' + + '' + + '' + + '
' + + '
' + + ' ' + + '
' + + '
' + + '
'; + + picoModal({ + parent: this.editor.frame, + content: content, + overlayClass: 'jsoneditor-modal-overlay', + modalClass: 'jsoneditor-modal' + }) + .afterCreate(function (modal) { + var form = modal.modalElem().querySelector('form'); + var ok = modal.modalElem().querySelector('#ok'); + var field = modal.modalElem().querySelector('#field'); + var direction = modal.modalElem().querySelector('#direction'); + + var paths = node.getSortablePaths().sort(); + + paths.forEach(function (path) { + var option = document.createElement('option'); + option.text = path; + option.value = path; + field.appendChild(option); + }); + + function setDirection(value) { + direction.value = value; + direction.className = 'jsoneditor-button-group jsoneditor-button-group-value-' + direction.value; + } + + field.value = node.sortedBy ? node.sortedBy.path : paths[0]; + setDirection(node.sortedBy ? node.sortedBy.direction : 'asc'); + + direction.onclick = function (event) { + setDirection(event.target.getAttribute('data-value')); + }; + + ok.onclick = function (event) { + event.preventDefault(); + event.stopPropagation(); + + modal.close(); + + var path = field.value; + var pathArray = (path === '.') ? [] : path.split('.').slice(1); + + node.sortedBy = { + path: path, + direction: direction.value + }; + + node.sort(pathArray, direction.value) + }; + + if (form) { // form is not available when JSONEditor is created inside a form + form.onsubmit = ok.onclick; + } + }) + .afterClose(function (modal) { + modal.destroy(); + }) + .show(); + }; + /** * get the type of a value * @param {*} value @@ -8698,6 +8931,615 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, /* 12 */ +/***/ function(module, exports, __webpack_require__) { + + var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/** + * 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. + */ + + (function (root, factory) { + "use strict"; + + if (true) { + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); + } + else if (typeof module === 'object' && module.exports) { + module.exports = factory(); + } + else { + root.picoModal = factory(); + } + }(this, function () { + + /** + * A self-contained modal library + */ + "use strict"; + + /** Returns whether a value is a dom node */ + function isNode(value) { + if ( typeof Node === "object" ) { + return value instanceof Node; + } + else { + return value && typeof value === "object" && typeof value.nodeType === "number"; + } + } + + /** Returns whether a value is a string */ + function isString(value) { + return typeof value === "string"; + } + + /** + * Generates observable objects that can be watched and triggered + */ + function observable() { + var callbacks = []; + return { + watch: callbacks.push.bind(callbacks), + trigger: function(context, detail) { + + var unprevented = true; + var event = { + detail: detail, + preventDefault: function preventDefault () { + unprevented = false; + } + }; + + for (var i = 0; i < callbacks.length; i++) { + callbacks[i](context, event); + } + + return unprevented; + } + }; + } + + + /** Whether an element is hidden */ + function isHidden ( elem ) { + // @see http://stackoverflow.com/questions/19669786 + return window.getComputedStyle(elem).display === 'none'; + } + + + /** + * A small interface for creating and managing a dom element + */ + function Elem( elem ) { + this.elem = elem; + } + + /** Creates a new div */ + Elem.make = function ( parent, tag ) { + if ( typeof parent === "string" ) { + parent = document.querySelector(parent); + } + var elem = document.createElement(tag || 'div'); + (parent || document.body).appendChild(elem); + return new Elem(elem); + }; + + Elem.prototype = { + + /** Creates a child of this node */ + child: function (tag) { + return Elem.make(this.elem, tag); + }, + + /** Applies a set of styles to an element */ + stylize: function(styles) { + styles = styles || {}; + + if ( typeof styles.opacity !== "undefined" ) { + styles.filter = "alpha(opacity=" + (styles.opacity * 100) + ")"; + } + + for (var prop in styles) { + if (styles.hasOwnProperty(prop)) { + this.elem.style[prop] = styles[prop]; + } + } + + return this; + }, + + /** Adds a class name */ + clazz: function (clazz) { + this.elem.className += " " + clazz; + return this; + }, + + /** Sets the HTML */ + html: function (content) { + if ( isNode(content) ) { + this.elem.appendChild( content ); + } + else { + this.elem.innerHTML = content; + } + return this; + }, + + /** Adds a click handler to this element */ + onClick: function(callback) { + this.elem.addEventListener('click', callback); + return this; + }, + + /** Removes this element from the DOM */ + destroy: function() { + this.elem.parentNode.removeChild(this.elem); + }, + + /** Hides this element */ + hide: function() { + this.elem.style.display = "none"; + }, + + /** Shows this element */ + show: function() { + this.elem.style.display = "block"; + }, + + /** Sets an attribute on this element */ + attr: function ( name, value ) { + if (value !== undefined) { + this.elem.setAttribute(name, value); + } + return this; + }, + + /** Executes a callback on all the ancestors of an element */ + anyAncestor: function ( predicate ) { + var elem = this.elem; + while ( elem ) { + if ( predicate( new Elem(elem) ) ) { + return true; + } + else { + elem = elem.parentNode; + } + } + return false; + }, + + /** Whether this element is visible */ + isVisible: function () { + return !isHidden(this.elem); + } + }; + + + /** Generates the grey-out effect */ + function buildOverlay( getOption, close ) { + return Elem.make( getOption("parent") ) + .clazz("pico-overlay") + .clazz( getOption("overlayClass", "") ) + .stylize({ + display: "none", + position: "fixed", + top: "0px", + left: "0px", + height: "100%", + width: "100%", + zIndex: 10000 + }) + .stylize(getOption('overlayStyles', { + opacity: 0.5, + background: "#000" + })) + .onClick(function () { + if ( getOption('overlayClose', true) ) { + close(); + } + }); + } + + // An auto incrementing ID assigned to each modal + var autoinc = 1; + + /** Builds the content of a modal */ + function buildModal( getOption, close ) { + var width = getOption('width', 'auto'); + if ( typeof width === "number" ) { + width = "" + width + "px"; + } + + var id = getOption("modalId", "pico-" + autoinc++); + + var elem = Elem.make( getOption("parent") ) + .clazz("pico-content") + .clazz( getOption("modalClass", "") ) + .stylize({ + display: 'none', + position: 'fixed', + zIndex: 10001, + left: "50%", + top: "38.1966%", + maxHeight: '90%', + boxSizing: 'border-box', + width: width, + '-ms-transform': 'translate(-50%,-38.1966%)', + '-moz-transform': 'translate(-50%,-38.1966%)', + '-webkit-transform': 'translate(-50%,-38.1966%)', + '-o-transform': 'translate(-50%,-38.1966%)', + transform: 'translate(-50%,-38.1966%)' + }) + .stylize(getOption('modalStyles', { + overflow: 'auto', + backgroundColor: "white", + padding: "20px", + borderRadius: "5px" + })) + .html( getOption('content') ) + .attr("id", id) + .attr("role", "dialog") + .attr("aria-labelledby", getOption("ariaLabelledBy")) + .attr("aria-describedby", getOption("ariaDescribedBy", id)) + .onClick(function (event) { + var isCloseClick = new Elem(event.target).anyAncestor(function (elem) { + return /\bpico-close\b/.test(elem.elem.className); + }); + if ( isCloseClick ) { + close(); + } + }); + + return elem; + } + + /** Builds the close button */ + function buildClose ( elem, getOption ) { + if ( getOption('closeButton', true) ) { + return elem.child('button') + .html( getOption('closeHtml', "×") ) + .clazz("pico-close") + .clazz( getOption("closeClass", "") ) + .stylize( getOption('closeStyles', { + borderRadius: "2px", + border: 0, + padding: 0, + cursor: "pointer", + height: "15px", + width: "15px", + position: "absolute", + top: "5px", + right: "5px", + fontSize: "16px", + textAlign: "center", + lineHeight: "15px", + background: "#CCC" + }) ) + .attr("aria-label", getOption("close-label", "Close")); + } + } + + /** Builds a method that calls a method and returns an element */ + function buildElemAccessor( builder ) { + return function () { + return builder().elem; + }; + } + + + // An observable that is triggered whenever the escape key is pressed + var escapeKey = observable(); + + // An observable that is triggered when the user hits the tab key + var tabKey = observable(); + + /** A global event handler to detect the escape key being pressed */ + document.documentElement.addEventListener('keydown', function onKeyPress (event) { + var keycode = event.which || event.keyCode; + + // If this is the escape key + if ( keycode === 27 ) { + escapeKey.trigger(); + } + + // If this is the tab key + else if ( keycode === 9 ) { + tabKey.trigger(event); + } + }); + + + /** Attaches focus management events */ + function manageFocus ( iface, isEnabled ) { + + /** Whether an element matches a selector */ + function matches ( elem, selector ) { + var fn = elem.msMatchesSelector || elem.webkitMatchesSelector || elem.matches; + return fn.call(elem, selector); + } + + /** + * Returns whether an element is focusable + * @see http://stackoverflow.com/questions/18261595 + */ + function canFocus( elem ) { + if ( + isHidden(elem) || + matches(elem, ":disabled") || + elem.hasAttribute("contenteditable") + ) { + return false; + } + else { + return elem.hasAttribute("tabindex") || + matches(elem, "input,select,textarea,button,a[href],area[href],iframe"); + } + } + + /** Returns the first descendant that can be focused */ + function firstFocusable ( elem ) { + var items = elem.getElementsByTagName("*"); + for (var i = 0; i < items.length; i++) { + if ( canFocus(items[i]) ) { + return items[i]; + } + } + } + + /** Returns the last descendant that can be focused */ + function lastFocusable ( elem ) { + var items = elem.getElementsByTagName("*"); + for (var i = items.length; i--;) { + if ( canFocus(items[i]) ) { + return items[i]; + } + } + } + + // The element focused before the modal opens + var focused; + + // Records the currently focused element so state can be returned + // after the modal closes + iface.beforeShow(function getActiveFocus() { + focused = document.activeElement; + }); + + // Shift focus into the modal + iface.afterShow(function focusModal() { + if ( isEnabled() ) { + var focusable = firstFocusable(iface.modalElem()); + if ( focusable ) { + focusable.focus(); + } + } + }); + + // Restore the previously focused element when the modal closes + iface.afterClose(function returnFocus() { + if ( isEnabled() && focused ) { + focused.focus(); + } + focused = null; + }); + + // Capture tab key presses and loop them within the modal + tabKey.watch(function tabKeyPress (event) { + if ( isEnabled() && iface.isVisible() ) { + var first = firstFocusable(iface.modalElem()); + var last = lastFocusable(iface.modalElem()); + + var from = event.shiftKey ? first : last; + if ( from === document.activeElement ) { + (event.shiftKey ? last : first).focus(); + event.preventDefault(); + } + } + }); + } + + /** Manages setting the 'overflow: hidden' on the body tag */ + function manageBodyOverflow(iface, isEnabled) { + var origOverflow; + var body = new Elem(document.body); + + iface.beforeShow(function () { + // Capture the current values so they can be restored + origOverflow = body.elem.style.overflow; + + if (isEnabled()) { + body.stylize({ overflow: "hidden" }); + } + }); + + iface.afterClose(function () { + body.stylize({ overflow: origOverflow }); + }); + } + + /** + * Displays a modal + */ + return function picoModal(options) { + + if ( isString(options) || isNode(options) ) { + options = { content: options }; + } + + var afterCreateEvent = observable(); + var beforeShowEvent = observable(); + var afterShowEvent = observable(); + var beforeCloseEvent = observable(); + var afterCloseEvent = observable(); + + /** + * Returns a named option if it has been explicitly defined. Otherwise, + * it returns the given default value + */ + function getOption ( opt, defaultValue ) { + var value = options[opt]; + if ( typeof value === "function" ) { + value = value( defaultValue ); + } + return value === undefined ? defaultValue : value; + } + + + // The various DOM elements that constitute the modal + var modalElem = build.bind(window, 'modal'); + var shadowElem = build.bind(window, 'overlay'); + var closeElem = build.bind(window, 'close'); + + // This will eventually contain the modal API returned to the user + var iface; + + + /** Hides this modal */ + function forceClose (detail) { + shadowElem().hide(); + modalElem().hide(); + afterCloseEvent.trigger(iface, detail); + } + + /** Gracefully hides this modal */ + function close (detail) { + if ( beforeCloseEvent.trigger(iface, detail) ) { + forceClose(detail); + } + } + + /** Wraps a method so it returns the modal interface */ + function returnIface ( callback ) { + return function () { + callback.apply(this, arguments); + return iface; + }; + } + + + // The constructed dom nodes + var built; + + /** Builds a method that calls a method and returns an element */ + function build (name, detail) { + if ( !built ) { + var modal = buildModal(getOption, close); + built = { + modal: modal, + overlay: buildOverlay(getOption, close), + close: buildClose(modal, getOption) + }; + afterCreateEvent.trigger(iface, detail); + } + return built[name]; + } + + iface = { + + /** Returns the wrapping modal element */ + modalElem: buildElemAccessor(modalElem), + + /** Returns the close button element */ + closeElem: buildElemAccessor(closeElem), + + /** Returns the overlay element */ + overlayElem: buildElemAccessor(shadowElem), + + /** Builds the dom without showing the modal */ + buildDom: returnIface(build.bind(null, null)), + + /** Returns whether this modal is currently being shown */ + isVisible: function () { + return !!(built && modalElem && modalElem().isVisible()); + }, + + /** Shows this modal */ + show: function (detail) { + if ( beforeShowEvent.trigger(iface, detail) ) { + shadowElem().show(); + closeElem(); + modalElem().show(); + afterShowEvent.trigger(iface, detail); + } + return this; + }, + + /** Hides this modal */ + close: returnIface(close), + + /** + * Force closes this modal. This will not call beforeClose + * events and will just immediately hide the modal + */ + forceClose: returnIface(forceClose), + + /** Destroys this modal */ + destroy: function () { + modalElem().destroy(); + shadowElem().destroy(); + shadowElem = modalElem = closeElem = undefined; + }, + + /** + * Updates the options for this modal. This will only let you + * change options that are re-evaluted regularly, such as + * `overlayClose`. + */ + options: function ( opts ) { + Object.keys(opts).map(function (key) { + options[key] = opts[key]; + }); + }, + + /** Executes after the DOM nodes are created */ + afterCreate: returnIface(afterCreateEvent.watch), + + /** Executes a callback before this modal is closed */ + beforeShow: returnIface(beforeShowEvent.watch), + + /** Executes a callback after this modal is shown */ + afterShow: returnIface(afterShowEvent.watch), + + /** Executes a callback before this modal is closed */ + beforeClose: returnIface(beforeCloseEvent.watch), + + /** Executes a callback after this modal is closed */ + afterClose: returnIface(afterCloseEvent.watch) + }; + + manageFocus(iface, getOption.bind(null, "focus", true)); + + manageBodyOverflow(iface, getOption.bind(null, "bodyOverflow", true)); + + // If a user presses the 'escape' key, close the modal. + escapeKey.watch(function escapeKeyPress () { + if ( getOption("escCloses", true) && iface.isVisible() ) { + iface.close(); + } + }); + + return iface; + }; + + })); + + +/***/ }, +/* 13 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -8936,7 +9778,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 13 */ +/* 14 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -9097,7 +9939,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 14 */ +/* 15 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -9218,7 +10060,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 15 */ +/* 16 */ /***/ function(module, exports) { 'use strict'; @@ -9605,13 +10447,13 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = completely; /***/ }, -/* 16 */ +/* 17 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var ace = __webpack_require__(17); - var ModeSwitcher = __webpack_require__(14); + var ace = __webpack_require__(18); + var ModeSwitcher = __webpack_require__(15); var util = __webpack_require__(4); // create a mixin with the functions for text mode @@ -9681,7 +10523,7 @@ return /******/ (function(modules) { // webpackBootstrap this.theme = options.theme || DEFAULT_THEME; if (this.theme === DEFAULT_THEME && _ace) { try { - __webpack_require__(21); + __webpack_require__(22); } catch (err) { console.error(err); @@ -10427,7 +11269,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 17 */ +/* 18 */ /***/ function(module, exports, __webpack_require__) { var ace @@ -10441,8 +11283,8 @@ return /******/ (function(modules) { // webpackBootstrap ace = __webpack_require__(!(function webpackMissingModule() { var e = new Error("Cannot find module \"brace\""); e.code = 'MODULE_NOT_FOUND'; throw e; }())); // load required Ace plugins - __webpack_require__(18); - __webpack_require__(20); + __webpack_require__(19); + __webpack_require__(21); } catch (err) { // failed to load brace (can be minimalist bundle). @@ -10454,7 +11296,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 18 */ +/* 19 */ /***/ function(module, exports, __webpack_require__) { ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(acequire, exports, module) { @@ -10756,7 +11598,7 @@ return /******/ (function(modules) { // webpackBootstrap }; this.createWorker = function(session) { - var worker = new WorkerClient(["ace"], __webpack_require__(19), "JsonWorker"); + var worker = new WorkerClient(["ace"], __webpack_require__(20), "JsonWorker"); worker.attachToDocument(session.getDocument()); worker.on("annotate", function(e) { @@ -10779,14 +11621,14 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 19 */ +/* 20 */ /***/ function(module, exports) { module.exports.id = 'ace/mode/json_worker'; module.exports.src = "\"no use strict\";!function(window){function resolveModuleId(id,paths){for(var testPath=id,tail=\"\";testPath;){var alias=paths[testPath];if(\"string\"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\/*$/,\"/\")+(tail||alias.main||alias.name);if(alias===!1)return\"\";var i=testPath.lastIndexOf(\"/\");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:\"log\",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:\"error\",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf(\"!\")){var chunks=moduleName.split(\"!\");return window.normalizeModule(parentId,chunks[0])+\"!\"+window.normalizeModule(parentId,chunks[1])}if(\".\"==moduleName.charAt(0)){var base=parentId.split(\"/\").slice(0,-1).join(\"/\");for(moduleName=(base?base+\"/\":\"\")+moduleName;-1!==moduleName.indexOf(\".\")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\.\\//,\"\").replace(/\\/\\.\\//,\"/\").replace(/[^\\/]+\\/\\.\\.\\//,\"\")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error(\"worker.js acequire() accepts only (parentId, id) as arguments\");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log(\"unable to load \"+id);var path=resolveModuleId(id,window.acequire.tlns);return\".js\"!=path.slice(-3)&&(path+=\".js\"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,\"string\"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),\"function\"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=[\"require\",\"exports\",\"module\"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case\"require\":return req;case\"exports\":return module.exports;case\"module\":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire(\"ace/lib/event_emitter\").EventEmitter,oop=window.acequire(\"ace/lib/oop\"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:\"call\",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:\"event\",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error(\"Unknown command:\"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire(\"ace/lib/es5-shim\"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}}(this),ace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define(\"ace/range\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return\"Range: [\"+this.start.row+\"/\"+this.start.column+\"] -> [\"+this.end.row+\"/\"+this.end.column+\"]\"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){\"object\"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){\"object\"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||\"\";switch(delta.action){case\"insert\":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case\"remove\":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){\"object\"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?\"unshift\":\"push\"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(acequire,exports){\"use strict\";var oop=acequire(\"./lib/oop\"),EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.columnthis.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal(\"change\",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener(\"change\",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on(\"change\",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"],function(acequire,exports){\"use strict\";var oop=acequire(\"./lib/oop\"),applyDelta=acequire(\"./apply_delta\").applyDelta,EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,Range=acequire(\"./range\").Range,Anchor=acequire(\"./anchor\").Anchor,Document=function(textOrLines){this.$lines=[\"\"],0===textOrLines.length?this.$lines=[\"\"]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0===\"aaa\".split(/a/).length?function(text){return text.replace(/\\r\\n|\\r/g,\"\\n\").split(\"\\n\")}:function(text){return text.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=match?match[1]:\"\\n\",this._signal(\"changeNewLineMode\")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\"windows\":return\"\\r\\n\";case\"unix\":return\"\\n\";default:return this.$autoNewLine||\"\\n\"}},this.$autoNewLine=\"\",this.$newLineMode=\"auto\",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal(\"changeNewLineMode\"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return\"\\r\\n\"==text||\"\\r\"==text||\"\\n\"==text},this.getLine=function(row){return this.$lines[row]||\"\"},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||\"\").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\"),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\"),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\"),this.insertMergedLines(position,[\"\",\"\"])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:\"insert\",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([\"\"]),column=0):(lines=[\"\"].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:\"insert\",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:\"remove\",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:\"remove\",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:\"remove\",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:\"remove\",lines:[\"\",\"\"]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert=\"insert\"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal(\"change\",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(\"\"),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:\"insert\"==delta.action?\"remove\":\"insert\",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split(\"\").reverse().join(\"\")},exports.stringRepeat=function(string,count){for(var result=\"\";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\s\\s*/,trimEndRegexp=/\\s\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,\"\")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,\"\")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&\"object\"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if(\"object\"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if(\"[object Object]\"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,\"\\\\$1\")},exports.escapeHTML=function(str){return str.replace(/&/g,\"&\").replace(/\"/g,\""\").replace(/'/g,\"'\").replace(/i;i+=2){if(Array.isArray(data[i+1]))var d={action:\"insert\",start:data[i],lines:data[i+1]};else var d={action:\"remove\",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define(\"ace/mode/json/json_parse\",[\"require\",\"exports\",\"module\"],function(){\"use strict\";var at,ch,text,value,escapee={'\"':'\"',\"\\\\\":\"\\\\\",\"/\":\"/\",b:\"\\b\",f:\"\\f\",n:\"\\n\",r:\"\\r\",t:\"\t\"},error=function(m){throw{name:\"SyntaxError\",message:m,at:at,text:text}},next=function(c){return c&&c!==ch&&error(\"Expected '\"+c+\"' instead of '\"+ch+\"'\"),ch=text.charAt(at),at+=1,ch},number=function(){var number,string=\"\";for(\"-\"===ch&&(string=\"-\",next(\"-\"));ch>=\"0\"&&\"9\">=ch;)string+=ch,next();if(\".\"===ch)for(string+=\".\";next()&&ch>=\"0\"&&\"9\">=ch;)string+=ch;if(\"e\"===ch||\"E\"===ch)for(string+=ch,next(),(\"-\"===ch||\"+\"===ch)&&(string+=ch,next());ch>=\"0\"&&\"9\">=ch;)string+=ch,next();return number=+string,isNaN(number)?(error(\"Bad number\"),void 0):number},string=function(){var hex,i,uffff,string=\"\";if('\"'===ch)for(;next();){if('\"'===ch)return next(),string;if(\"\\\\\"===ch)if(next(),\"u\"===ch){for(uffff=0,i=0;4>i&&(hex=parseInt(next(),16),isFinite(hex));i+=1)uffff=16*uffff+hex;string+=String.fromCharCode(uffff)}else{if(\"string\"!=typeof escapee[ch])break;string+=escapee[ch]}else string+=ch}error(\"Bad string\")},white=function(){for(;ch&&\" \">=ch;)next()},word=function(){switch(ch){case\"t\":return next(\"t\"),next(\"r\"),next(\"u\"),next(\"e\"),!0;case\"f\":return next(\"f\"),next(\"a\"),next(\"l\"),next(\"s\"),next(\"e\"),!1;case\"n\":return next(\"n\"),next(\"u\"),next(\"l\"),next(\"l\"),null}error(\"Unexpected '\"+ch+\"'\")},array=function(){var array=[];if(\"[\"===ch){if(next(\"[\"),white(),\"]\"===ch)return next(\"]\"),array;for(;ch;){if(array.push(value()),white(),\"]\"===ch)return next(\"]\"),array;next(\",\"),white()}}error(\"Bad array\")},object=function(){var key,object={};if(\"{\"===ch){if(next(\"{\"),white(),\"}\"===ch)return next(\"}\"),object;for(;ch;){if(key=string(),white(),next(\":\"),Object.hasOwnProperty.call(object,key)&&error('Duplicate key \"'+key+'\"'),object[key]=value(),white(),\"}\"===ch)return next(\"}\"),object;next(\",\"),white()}}error(\"Bad object\")};return value=function(){switch(white(),ch){case\"{\":return object();case\"[\":return array();case'\"':return string();case\"-\":return number();default:return ch>=\"0\"&&\"9\">=ch?number():word()}},function(source,reviver){var result;return text=source,at=0,ch=\" \",result=value(),white(),ch&&error(\"Syntax error\"),\"function\"==typeof reviver?function walk(holder,key){var k,v,value=holder[key];if(value&&\"object\"==typeof value)for(k in value)Object.hasOwnProperty.call(value,k)&&(v=walk(value,k),void 0!==v?value[k]=v:delete value[k]);return reviver.call(holder,key,value)}({\"\":result},\"\"):result}}),ace.define(\"ace/mode/json_worker\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/worker/mirror\",\"ace/mode/json/json_parse\"],function(acequire,exports){\"use strict\";var oop=acequire(\"../lib/oop\"),Mirror=acequire(\"../worker/mirror\").Mirror,parse=acequire(\"./json/json_parse\"),JsonWorker=exports.JsonWorker=function(sender){Mirror.call(this,sender),this.setTimeout(200)};oop.inherits(JsonWorker,Mirror),function(){this.onUpdate=function(){var value=this.doc.getValue(),errors=[];try{value&&parse(value)}catch(e){var pos=this.doc.indexToPosition(e.at-1);errors.push({row:pos.row,column:pos.column,text:e.message,type:\"error\"})}this.sender.emit(\"annotate\",errors)}}.call(JsonWorker.prototype)}),ace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,\"sentinel\",{}),\"sentinel\"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if(\"function\"!=typeof target)throw new TypeError(\"Function.prototype.bind called on incompatible \"+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,\"__defineGetter__\"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,\"XXX\"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0\n}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return\"[object Array]\"==_toString(obj)});var boxedString=Object(\"a\"),splitString=\"a\"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,thisp=arguments[1],i=-1,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,result=[],thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");if(!length&&1==arguments.length)throw new TypeError(\"reduce of empty array with no initial value\");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError(\"reduce of empty array with no initial value\")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");if(!length&&1==arguments.length)throw new TypeError(\"reduceRight of empty array with no initial value\");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError(\"reduceRight of empty array with no initial value\")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT=\"Object.getOwnPropertyDescriptor called on a non-object: \";Object.getOwnPropertyDescriptor=function(object,property){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if(\"object\"!=typeof prototype)throw new TypeError(\"typeof prototype[\"+typeof prototype+\"] != 'object'\");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom=\"undefined\"==typeof document||doesDefinePropertyWork(document.createElement(\"div\"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR=\"Property description must be an object: \",ERR_NON_OBJECT_TARGET=\"Object.defineProperty called on non-object: \",ERR_ACCESSORS_NOT_SUPPORTED=\"getters & setters can not be defined on this javascript engine\";Object.defineProperty=function(object,property,descriptor){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if(\"object\"!=typeof descriptor&&\"function\"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,\"value\"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,\"get\")&&defineGetter(object,property,descriptor.get),owns(descriptor,\"set\")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return\"function\"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name=\"\";owns(object,name);)name+=\"?\";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=[\"toString\",\"toLocaleString\",\"valueOf\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"constructor\"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(\"Object.keys called on a non-object\");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws=\"\t\\n\u000b\\f\\r   ᠎              \\u2028\\u2029\";if(!String.prototype.trim||ws.trim()){ws=\"[\"+ws+\"]\";var trimBeginRegexp=RegExp(\"^\"+ws+ws+\"*\"),trimEndRegexp=RegExp(ws+ws+\"*$\");String.prototype.trim=function(){return(this+\"\").replace(trimBeginRegexp,\"\").replace(trimEndRegexp,\"\")}}var toObject=function(o){if(null==o)throw new TypeError(\"can't convert \"+o+\" to object\");return Object(o)}});"; /***/ }, -/* 20 */ +/* 21 */ /***/ function(module, exports) { ace.define("ace/ext/searchbox",["require","exports","module","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/keyboard/hash_handler","ace/lib/keys"], function(acequire, exports, module) { @@ -11299,7 +12141,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 21 */ +/* 22 */ /***/ function(module, exports) { /* ***** BEGIN LICENSE BLOCK ***** diff --git a/dist/jsoneditor-minimalist.map b/dist/jsoneditor-minimalist.map index 9132925..d321f3d 100644 --- a/dist/jsoneditor-minimalist.map +++ b/dist/jsoneditor-minimalist.map @@ -1 +1 @@ -{"version":3,"sources":["./dist/jsoneditor-minimalist.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","JSONEditor","container","options","json","Error","ieVersion","util","getInternetExplorerVersion","error","console","warn","onError","change","onChange","editable","onEditable","VALID_OPTIONS","Object","keys","forEach","option","indexOf","arguments","length","_create","Ajv","e","code","err","treemode","textmode","modes","prototype","DEBOUNCE_INTERVAL","mode","setMode","destroy","set","get","setText","jsonText","parse","getText","JSON","stringify","setName","name","getName","data","extend","oldMode","config","asText","clear","mixin","create","load","onModeChange","_onError","getMode","setSchema","schema","schemaRefs","ajv","allErrors","verbose","ref","removeSchema","addSchema","validateSchema","compile","validate","refresh","registerMode","i","prop","isArray","reserved","Highlighter","History","SearchBox","ContextMenu","TreePath","Node","ModeSwitcher","autocomplete","translate","setLanguages","setLanguage","dom","highlighter","selection","undefined","multiselection","nodes","errorNodes","node","focusTarget","_setOptions","history","_createFrame","_createTable","frame","parentNode","removeChild","_debouncedValidate","searchBox","modeSwitcher","search","navigationBar","onSelectionChange","hasOwnProperty","debounce","bind","languages","language","Function","content","table","params","field","value","_setRoot","expand","appendChild","getNodeFromTarget","blur","getValue","sanitizedJsonText","sanitize","updateField","focus","input","querySelector","menu","collapse","tbody","getDom","text","results","expandAll","collapseAll","_onAction","action","add","_onChange","setError","duplicateErrors","schemaErrors","errors","map","improveSchemaError","findNode","dataPath","filter","entry","concat","parentPairs","reduce","all","findParents","parent","some","pair","child","message","type","updateDom","recurse","startAutoScroll","mouseY","me","top","getAbsoluteTop","height","clientHeight","bottom","scrollTop","autoScrollStep","scrollHeight","autoScrollTimer","setInterval","stopAutoScroll","clearTimeout","setDomSelection","select","range","setSelectionOffset","getDomSelection","getSelectionOffset","nodeName","slice","scrollTo","callback","editor","animateTimeout","animateCallback","finalScrollTop","Math","min","max","animate","diff","abs","setTimeout","onEvent","event","_onEvent","document","createElement","className","onclick","target","preventDefault","oninput","onchange","onkeydown","onkeyup","oncut","onpaste","onmousedown","onmouseup","onmouseover","onmouseout","addEventListener","onfocusin","onfocusout","title","undo","_onUndo","redo","_onRedo","disabled","canUndo","canRedo","navBar","treePath","onSectionSelected","_onTreePathSectionSelected","onContextMenuItemSelected","_onTreePathMenuItemSelected","_onKeyDown","_startDragDistance","_updateDragDistance","_updateTreePath","getNodePath","selected","showContextMenu","hasMoved","deselect","onDragStart","drag","_onMultiSelectStart","pathNodes","_escapeHTML","isNaN","index","removeClassName","pathObjs","pathObj","children","childs","childNode","push","setPath","addClassName","expandTo","selectionObj","find","obj","dragDistanceEvent","initialTarget","initialPageX","pageX","initialPageY","pageY","dragDistance","diffX","diffY","sqrt","start","end","mousemove","window","_onMultiSelect","mouseup","_onMultiSelectEnd","_findTopLevelNodes","firstNode","isDescendantOf","direction","removeEventListener","clearStartAndEnd","selectionChanged","setSelected","_selectionChangedHandler","Array","first","expandPathToNode","getSelection","startPath","endPath","startChild","endChild","startIndex","endIndex","firstIndex","lastIndex","keynum","which","keyCode","altKey","ctrlKey","metaKey","shiftKey","handled","selectContentEditable","previous","next","key","jsonElementType","hnode","element","innerText","result","getOptions","getPath","hideDropDown","then","show","startFrom","stopPropagation","contentOuter","col","colgroupContent","width","anchor","onClose","items","click","onDuplicate","onRemove","close","selection1","selection2","serialize","setSelection","_getNodeIntsncesByRange","startNode","endNode","path","findNodeByPath","getIndex","current","nextSibling","getNodesByRange","serializableNodes","locked","highlight","setHighlight","_cancelUnhighlight","unhighlight","unhighlightTimer","lock","unlock","actions","editField","oldValue","newValue","editValue","updateValue","changeType","oldType","newType","appendNodes","insertBeforeNodes","insertBefore","beforeNode","insertAfterNodes","afterNode","insertAfter","removeNodes","append","duplicateNodes","moveNodes","oldBeforeNode","moveBefore","newBeforeNode","sort","hideChilds","oldSort","oldChilds","showChilds","newSort","newChilds","timestamp","Date","splice","oldSelection","newSelection","jsonlint","jsonString","jsString","curr","charAt","prev","parseString","endQuote","chars","controlChars","match","\b","\f","\n","\r","\t","test","pp","specialValues","regexp","join","escapeUnicodeChars","replace","charCodeAt","toString","a","b","object","Number","String","Boolean","RegExp","isUrlRegex","isUrl","getAbsoluteLeft","elem","getBoundingClientRect","left","pageXOffset","scrollLeft","pageYOffset","classes","split","stripFormatting","divElement","childNodes","iMax","style","removeAttribute","attributes","j","attribute","specified","setEndOfContentEditable","contentEditableElement","createRange","selectNodeContents","removeAllRanges","addRange","sel","getRangeAt","rangeCount","startContainer","endContainer","startOffset","endOffset","firstChild","createTextNode","setStart","setEnd","getInnerText","buffer","flush","nodeValue","hasChildNodes","prevChild","prevName","_ieVersion","rv","navigator","appName","ua","userAgent","exec","parseFloat","$1","isFirefox","listener","useCapture","attachEvent","f","detachEvent","parsePath","jsonPath","remainder","substr","SyntaxError","substring","keyword","enums","more","additionalProperty","insideRect","margin","_margin","right","func","wait","immediate","timeout","context","args","later","apply","callNow","textDiff","oldText","newText","len","oldEnd","newEnd","getInputSelection","el","_positionForIndex","textTillIndex","row","column","lastIndexOf","normalizedValue","textInputRange","endRange","selectionStart","selectionEnd","parentElement","createTextRange","moveToBookmark","getBookmark","compareEndPoints","moveStart","moveEnd","getIndexForPosition","rows","columnCount","Element","polyfill","item","defineProperty","configurable","enumerable","writable","CharacterData","DocumentType","startsWith","searchString","position","parser","trace","yy","symbols_","JSONString","STRING","JSONNumber","NUMBER","JSONNullLiteral","NULL","JSONBooleanLiteral","TRUE","FALSE","JSONText","JSONValue","EOF","JSONObject","JSONArray","{","}","JSONMemberList","JSONMember",":",",","[","]","JSONElementList","$accept","$end","terminals_","2","4","6","8","10","11","14","17","18","21","22","23","24","productions_","performAction","yytext","yyleng","yylineno","yystate","$$","_$","$0","$","3","5","7","9","12","13","15","16","1","19","20","25","defaultActions","parseError","str","hash","lex","token","self","lexer","stack","vstack","lstack","recovering","TERROR","setInput","yylloc","yyloc","symbol","preErrorSymbol","state","r","newState","expected","yyval","errStr","showPosition","line","loc","n","first_line","last_line","first_column","last_column","_input","_more","_less","done","matched","conditionStack","ch","unput","less","pastInput","past","upcomingInput","pre","tempMatch","lines","rules","_currentRules","flex","begin","condition","popState","pop","conditions","topState","pushState","yy_","$avoiding_name_collisions","YY_START","INITIAL","inclusive","delay","lastText","tr","td","divInput","tableInput","tbodySearch","refreshSearch","_onDelayedSearch","_onSearch","_onKeyUp","searchNext","searchPrevious","resultIndex","_setActiveResult","activeResult","prevNode","searchFieldActive","searchValueActive","_clearDelay","forceSearch","MAX_SEARCH_RESULTS","Infinity","resultCount","innerHTML","getRootNode","createMenuItems","list","domItems","separator","li","domItem","button","hide","submenu","divIcon","divText","buttonSubmenu","buttonExpand","submenuTitle","divExpand","_onExpandItem","domSubItems","subItems","ul","eventListeners","focusButton","overflow","maxHeight","_getVisibleButtons","buttons","expandedItem","subItem","visibleMenu","contentWindow","showBelow","anchorRect","parentRect","contentRect","leftGap","topGap","anchorHeight","offsetHeight","rootNode","mousedown","_isChildOf","keydown","fn","alreadyVisible","padding","display","childsHeight","targetIndex","prevButton","nextButton","_lang","_locales","_defs","en","array","auto","appendText","appendTitle","appendSubmenuTitle","appendTitleAuto","ascending","ascendingTitle","actionsMenu","descending","descendingTitle","duplicateKey","duplicateText","duplicateTitle","duplicateField","empty","expandTitle","insert","insertTitle","insertSub","removeText","removeTitle","removeField","showAll","showMore","showMoreStatus","sortTitle","string","typeTitle","openUrl","validationCannotMove","autoType","objectType","arrayType","stringType","pt-BR","userLang","userLanguage","l","lang","langFound","assign","reset","_onSegmentClick","selectionCallback","_onContextMenuItemClick","contextMenuCallback","idx","sepEl","pathEl","leftRectPos","offsetWidth","expanded","setField","fieldEditable","setValue","_debouncedOnChangeValue","_onChangeValue","_debouncedOnChangeField","_onChangeField","naturalSort","appendNodeFactory","showMoreNodeFactory","MAX_VISIBLE_CHILDS","visibleChilds","_updateEditability","unshift","shift","parents","errorChild","updateError","tdError","tdValue","popover","onfocus","directions","popoverRect","setParent","previousField","getField","_getDomField","childValue","visible","_getType","childField","sortObjectKeys","previousValue","arr","_getDomValue","getLevel","clone","fieldInnerText","valueInnerText","cloneChilds","childClone","getAppendDom","nextTr","_getNextTr","getShowMoreDom","resetVisibleChilds","currentNode","_hasChilds","newTr","appendTr","updateIndexes","trTemp","AppendNode","lastVisibleNode","moveTo","toLowerCase","searchField","searchValue","_updateDomField","_updateDomValue","offsetTop","focusElement","elementName","editableDiv","containsNode","_move","clearDom","removedNode","_remove","lastTr","_stringCast","silent","_unescapeHTML","undoDiff","redoDiff","domValue","classNames","count","checkbox","tdCheckbox","checked","enum","getUTCMilliseconds","tdSelect","valueFieldHTML","visibility","domField","duplicateKeys","tdDrag","domDrag","tdMenu","tdField","tree","_createDomTree","isVisible","lastNode","draggedNode","offsetY","onDrag","onDragEnd","oldCursor","body","cursor","mouseX","level","trThis","trPrev","trNext","trFirst","trLast","trRoot","nodePrev","nodeNext","topThis","topPrev","topFirst","heightThis","bottomNext","heightNext","moved","previousSibling","diffLevel","round","levelNext","_nextNode","_createDomField","isFirst","domTree","marginLeft","contentEditable","spellcheck","fieldText","_updateSchema","_updateDomIndexes","_findSchema","_findEnum","composite","oneOf","anyOf","allOf","childSchema","foundSchema","allSchemas","patternProperties","properties","_createDomValue","href","_createDomExpandButton","borderCollapse","tdExpand","tdSeparator","srcElement","expandable","_onExpand","open","offsetX","onKeyDown","nextNode","nextDom","nextDom2","selectedNodes","_onInsertBefore","_onInsertAfter","_lastNode","_getElementName","homeNode","_firstNode","prevElement","_previousElement","appendDom","nextNode2","_previousNode","nextElement","_nextElement","prevDom","blurNodes","clones","newNode","_onAppend","_onChangeType","order","oldSortOrder","sortOrder","ShowMoreNode","firstDom","lastDom","lastChild","TYPE_TITLES","addTemplates","templates","appendData","insertData","template","titles","appendSubmenu","insertSubmenu","lower","num","numFloat","htmlEscaped","html","escapeUnicode","escapedText","_escapeJSON","escaped","oFxNcL","oFyNcL","re","sre","dre","hre","s","insensitive","x","y","xN","yN","xD","parseInt","yD","cLoc","numS","trAppend","tdAppend","domText","paddingLeft","showMoreButton","floor","showAllButton","moreContents","moreText","_getShowMoreText","tdContents","moreTr","totalChilds","onSwitch","availableModes","form","view","currentMode","currentTitle","box","completely","setEndOfContenteditable","moveToElementText","calculateWidthForText","spacer","outline","border","whiteSpace","fontSize","fontFamily","fontWeight","confirmKeys","caseSensitive","wrapper","dropDown","leftSide","rs","onArrowDown","onArrowUp","onEnter","onTab","elementHint","elementStyle","startPos","remove","getComputedStyle","getPropertyValue","marginTop","zIndex","backgroundColor","borderColor","cloneNode","keyDownHandler","onBlurHandler","repaint","dropDownController","optionsLength","opt","realInnerText","clientWidth","ix","oldIndex","onMouseOver","onMouseOut","onMouseDown","onmouseselection","__hint","vph","innerHeight","documentElement","rect","distanceToTop","distanceToBottom","divRow","move","step","wasDropDownHidden","ace","statusBar","indentation","_ace","theme","onTextSelectionChange","aceEditor","textarea","buttonFormat","format","buttonCompact","compact","buttonRepair","repair","emptyNode","isReadOnly","editorDom","edit","$blockScrolling","setTheme","setOptions","readOnly","setShowPrintMargin","setFontSize","getSession","setTabSize","setUseSoftTabs","setUseWrapMode","commands","bindKey","poweredBy","on","_onSelect","onselect","_onMouseDown","onblur","_onBlur","validationErrorsContainer","curserInfoElements","lnLabel","lnVal","colLabel","colVal","countLabel","countVal","_updateCursorInfo","_emitSelectionChange","updateDisplay","selectionRange","cursorInfo","curserPos","getCursorPosition","selectedText","getSelectedText","currentSelection","getTextSelection","sanitizedText","resize","originalOnChange","validationErrors","marginBottom","paddingBottom","doValidate","hidden","aceSelection","getRange","lead","getSelectionLead","setTextSelection","endPos","setSelectionRange","setRange","acequire","oop","TextHighlightRules","JsonHighlightRules","$rules","regex","defaultToken","comment","inherits","Range","MatchingBraceOutdent","checkOutdent","autoOutdent","doc","getLine","openBracePos","findMatchingBracket","indent","$getIndent","BaseFoldMode","FoldMode","commentRegex","foldingStartMarker","source","foldingStopMarker","singleLineBlockCommentRe","tripleStarBlockCommentRe","startRegionRe","_getFoldWidgetBase","getFoldWidget","session","foldStyle","fw","getFoldWidgetRange","forceMultiline","getCommentRegionBlock","openingBracketBlock","getCommentFoldRange","isMultiLine","getSectionRange","closingBracketBlock","startIndent","startRow","startColumn","endRow","maxRow","getLength","subRange","depth","TextMode","Mode","HighlightRules","CstyleBehaviour","CStyleFoldMode","WorkerClient","$outdent","$behaviour","foldingRules","getNextLineIndent","tab","createWorker","worker","attachToDocument","getDocument","setAnnotations","clearAnnotations","$id","src","HashHandler","keyUtil","importCssString","showReplaceForm","div","setSession","$init","setEditor","renderer","scroller","searchRange","$syncOptions","$initElements","sb","replaceBox","searchOption","replaceOption","regExpOption","caseSensitiveOption","wholeWordOption","searchInput","replaceInput","searchCounter","_this","addListener","activeInput","t","getAttribute","$searchBarKb","addCommandKeyListener","hashId","keyString","keyCodeToString","command","findKeyCommand","stopEvent","$onChange","delayedCall","schedule","$closeSearchBarKb","bindKeys","Ctrl-f|Command-f","isReplace","Ctrl-H|Command-Option-F","Ctrl-G|Command-G","findNext","Ctrl-Shift-G|Command-Shift-G","findPrev","esc","Return","Shift-Return","Alt-Return","replaceAll","findAll","Tab","addCommands","win","mac","setSearchRange","getSelectionRange","searchRangeMarker","addMarker","removeMarker","preventScroll","setCssClass","textContent","$search","$options","updateBackMarkers","skipCurrent","backwards","wrap","regExp","wholeWord","noMatch","_emit","updateCounter","before","getTextRange","offset","positionToIndex","last","MAX_COUNT","getReadOnly","replaceAndFindNext","active","off","keyBinding","removeKeyboardHandler","addKeyboardHandler","isFocused","activeElement","Search","isDark","cssClass","cssText"],"mappings":"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","file":"jsoneditor-minimalist"} \ No newline at end of file +{"version":3,"sources":["./dist/jsoneditor-minimalist.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","JSONEditor","container","options","json","Error","ieVersion","util","getInternetExplorerVersion","error","console","warn","onError","change","onChange","editable","onEditable","VALID_OPTIONS","Object","keys","forEach","option","indexOf","arguments","length","_create","Ajv","e","code","err","treemode","textmode","modes","prototype","DEBOUNCE_INTERVAL","mode","setMode","destroy","set","get","setText","jsonText","parse","getText","JSON","stringify","setName","name","getName","data","extend","oldMode","config","asText","clear","mixin","create","load","onModeChange","_onError","getMode","setSchema","schema","schemaRefs","ajv","allErrors","verbose","ref","removeSchema","addSchema","validateSchema","compile","validate","refresh","registerMode","i","prop","isArray","reserved","Highlighter","History","SearchBox","ContextMenu","TreePath","Node","ModeSwitcher","autocomplete","translate","setLanguages","setLanguage","dom","highlighter","selection","undefined","multiselection","nodes","errorNodes","node","focusTarget","_setOptions","history","_createFrame","_createTable","frame","parentNode","removeChild","_debouncedValidate","searchBox","modeSwitcher","search","navigationBar","onSelectionChange","hasOwnProperty","debounce","bind","languages","language","Function","content","table","params","field","value","_setRoot","expand","appendChild","getNodeFromTarget","blur","getValue","sanitizedJsonText","sanitize","updateField","focus","input","querySelector","menu","collapse","tbody","getDom","treePath","reset","text","results","expandAll","collapseAll","_onAction","action","add","_onChange","setError","duplicateErrors","schemaErrors","errors","map","improveSchemaError","findNode","dataPath","filter","entry","concat","parentPairs","reduce","all","findParents","parent","some","pair","child","message","type","updateDom","recurse","startAutoScroll","mouseY","me","top","getAbsoluteTop","height","clientHeight","bottom","scrollTop","autoScrollStep","scrollHeight","autoScrollTimer","setInterval","stopAutoScroll","clearTimeout","setDomSelection","select","range","setSelectionOffset","getDomSelection","getSelectionOffset","nodeName","slice","scrollTo","callback","editor","animateTimeout","animateCallback","finalScrollTop","Math","min","max","animate","diff","abs","setTimeout","onEvent","event","_onEvent","document","createElement","className","onclick","target","preventDefault","oninput","onchange","onkeydown","onkeyup","oncut","onpaste","onmousedown","onmouseup","onmouseover","onmouseout","addEventListener","onfocusin","onfocusout","title","undo","_onUndo","redo","_onRedo","disabled","canUndo","canRedo","navBar","onSectionSelected","_onTreePathSectionSelected","onContextMenuItemSelected","_onTreePathMenuItemSelected","_onKeyDown","_startDragDistance","_updateDragDistance","_updateTreePath","getNodePath","selected","showContextMenu","hasMoved","deselect","onDragStart","drag","_onMultiSelectStart","pathNodes","_escapeHTML","isNaN","index","removeClassName","pathObjs","pathObj","children","childs","childNode","push","setPath","addClassName","expandTo","selectionObj","find","obj","dragDistanceEvent","initialTarget","initialPageX","pageX","initialPageY","pageY","dragDistance","diffX","diffY","sqrt","start","end","mousemove","window","_onMultiSelect","mouseup","_onMultiSelectEnd","_findTopLevelNodes","firstNode","isDescendantOf","direction","removeEventListener","clearStartAndEnd","selectionChanged","setSelected","_selectionChangedHandler","Array","first","expandPathToNode","getSelection","startPath","endPath","startChild","endChild","startIndex","endIndex","firstIndex","lastIndex","keynum","which","keyCode","altKey","ctrlKey","metaKey","shiftKey","handled","selectContentEditable","previous","next","key","jsonElementType","hnode","element","innerText","result","getOptions","getPath","hideDropDown","then","show","startFrom","stopPropagation","contentOuter","col","colgroupContent","width","anchor","onClose","items","click","onDuplicate","onRemove","close","selection1","selection2","serialize","setSelection","_getNodeIntsncesByRange","startNode","endNode","path","findNodeByPath","getIndex","current","nextSibling","getNodesByRange","serializableNodes","locked","highlight","setHighlight","_cancelUnhighlight","unhighlight","unhighlightTimer","lock","unlock","actions","editField","oldValue","newValue","editValue","updateValue","changeType","oldType","newType","appendNodes","insertBeforeNodes","insertBefore","beforeNode","insertAfterNodes","afterNode","insertAfter","removeNodes","append","duplicateNodes","moveNodes","oldBeforeNode","moveBefore","newBeforeNode","sort","hideChilds","oldChilds","_updateDomIndexes","showChilds","newChilds","timestamp","Date","splice","oldSelection","newSelection","jsonlint","jsonString","jsString","curr","charAt","prev","parseString","endQuote","chars","controlChars","match","\b","\f","\n","\r","\t","test","pp","specialValues","regexp","join","escapeUnicodeChars","replace","charCodeAt","toString","a","b","object","Number","String","Boolean","RegExp","isUrlRegex","isUrl","getAbsoluteLeft","elem","getBoundingClientRect","left","pageXOffset","scrollLeft","pageYOffset","classes","split","stripFormatting","divElement","childNodes","iMax","style","removeAttribute","attributes","j","attribute","specified","setEndOfContentEditable","contentEditableElement","createRange","selectNodeContents","removeAllRanges","addRange","sel","getRangeAt","rangeCount","startContainer","endContainer","startOffset","endOffset","firstChild","createTextNode","setStart","setEnd","getInnerText","buffer","flush","nodeValue","hasChildNodes","prevChild","prevName","_ieVersion","rv","navigator","appName","ua","userAgent","exec","parseFloat","$1","isFirefox","listener","useCapture","attachEvent","f","detachEvent","parsePath","jsonPath","remainder","substr","SyntaxError","substring","keyword","enums","more","additionalProperty","insideRect","margin","_margin","right","func","wait","immediate","timeout","context","args","later","apply","callNow","textDiff","oldText","newText","len","oldEnd","newEnd","getInputSelection","el","_positionForIndex","textTillIndex","row","column","lastIndexOf","normalizedValue","textInputRange","endRange","selectionStart","selectionEnd","parentElement","createTextRange","moveToBookmark","getBookmark","compareEndPoints","moveStart","moveEnd","getIndexForPosition","rows","columnCount","Element","polyfill","item","defineProperty","configurable","enumerable","writable","CharacterData","DocumentType","startsWith","searchString","position","parser","trace","yy","symbols_","JSONString","STRING","JSONNumber","NUMBER","JSONNullLiteral","NULL","JSONBooleanLiteral","TRUE","FALSE","JSONText","JSONValue","EOF","JSONObject","JSONArray","{","}","JSONMemberList","JSONMember",":",",","[","]","JSONElementList","$accept","$end","terminals_","2","4","6","8","10","11","14","17","18","21","22","23","24","productions_","performAction","yytext","yyleng","yylineno","yystate","$$","_$","$0","$","3","5","7","9","12","13","15","16","1","19","20","25","defaultActions","parseError","str","hash","lex","token","self","lexer","stack","vstack","lstack","recovering","TERROR","setInput","yylloc","yyloc","symbol","preErrorSymbol","state","r","newState","expected","yyval","errStr","showPosition","line","loc","n","first_line","last_line","first_column","last_column","_input","_more","_less","done","matched","conditionStack","ch","unput","less","pastInput","past","upcomingInput","pre","tempMatch","lines","rules","_currentRules","flex","begin","condition","popState","pop","conditions","topState","pushState","yy_","$avoiding_name_collisions","YY_START","INITIAL","inclusive","delay","lastText","tr","td","divInput","tableInput","tbodySearch","refreshSearch","_onDelayedSearch","_onSearch","_onKeyUp","searchNext","searchPrevious","resultIndex","_setActiveResult","activeResult","prevNode","searchFieldActive","searchValueActive","_clearDelay","forceSearch","MAX_SEARCH_RESULTS","Infinity","resultCount","innerHTML","getRootNode","createMenuItems","list","domItems","separator","li","domItem","button","hide","submenu","divIcon","divText","buttonSubmenu","buttonExpand","submenuTitle","divExpand","_onExpandItem","domSubItems","subItems","ul","eventListeners","focusButton","overflow","maxHeight","_getVisibleButtons","buttons","expandedItem","subItem","visibleMenu","contentWindow","showBelow","anchorRect","parentRect","contentRect","leftGap","topGap","anchorHeight","offsetHeight","rootNode","mousedown","_isChildOf","keydown","fn","alreadyVisible","padding","display","childsHeight","targetIndex","prevButton","nextButton","_lang","_locales","_defs","en","array","auto","appendText","appendTitle","appendSubmenuTitle","appendTitleAuto","ascending","ascendingTitle","actionsMenu","descending","descendingTitle","duplicateKey","duplicateText","duplicateTitle","duplicateField","empty","expandTitle","insert","insertTitle","insertSub","ok","removeText","removeTitle","removeField","selectANode","showAll","showMore","showMoreStatus","sortTitle","sortFieldLabel","sortDirectionLabel","sortFieldTitle","sortAscending","sortAscendingTitle","sortDescending","sortDescendingTitle","string","typeTitle","openUrl","validationCannotMove","autoType","objectType","arrayType","stringType","pt-BR","selectNode","userLang","userLanguage","l","lang","langFound","assign","_onSegmentClick","selectionCallback","_onContextMenuItemClick","contextMenuCallback","idx","sepEl","pathEl","leftRectPos","offsetWidth","expanded","setField","fieldEditable","setValue","_debouncedOnChangeValue","_onChangeValue","_debouncedOnChangeField","_onChangeField","naturalSort","picoModal","appendNodeFactory","showMoreNodeFactory","MAX_VISIBLE_CHILDS","visibleChilds","_updateEditability","unshift","shift","parents","errorChild","updateError","tdError","tdValue","popover","onfocus","directions","popoverRect","setParent","previousField","getField","_getDomField","childValue","visible","_getType","childField","sortObjectKeys","previousValue","arr","_getDomValue","getLevel","clone","fieldInnerText","valueInnerText","cloneChilds","childClone","getAppendDom","nextTr","_getNextTr","getShowMoreDom","resetVisibleChilds","currentNode","_hasChilds","newTr","appendTr","updateIndexes","trTemp","AppendNode","lastVisibleNode","moveTo","toLowerCase","searchField","searchValue","_updateDomField","_updateDomValue","offsetTop","focusElement","elementName","editableDiv","containsNode","_move","clearDom","removedNode","_remove","lastTr","_stringCast","silent","_unescapeHTML","undoDiff","redoDiff","domValue","classNames","count","checkbox","tdCheckbox","checked","enum","getUTCMilliseconds","tdSelect","valueFieldHTML","visibility","domField","duplicateKeys","tdDrag","domDrag","tdMenu","tdField","tree","_createDomTree","isVisible","lastNode","draggedNode","offsetY","onDrag","onDragEnd","oldCursor","body","cursor","mouseX","level","trThis","trPrev","trNext","trFirst","trLast","trRoot","nodePrev","nodeNext","topThis","topPrev","topFirst","heightThis","bottomNext","heightNext","moved","previousSibling","diffLevel","round","levelNext","_nextNode","_createDomField","isFirst","domTree","marginLeft","contentEditable","spellcheck","fieldText","_updateSchema","_findSchema","_findEnum","composite","oneOf","anyOf","allOf","childSchema","foundSchema","allSchemas","patternProperties","properties","_createDomValue","href","_createDomExpandButton","borderCollapse","tdExpand","tdSeparator","srcElement","expandable","_onExpand","open","offsetX","onKeyDown","nextNode","nextDom","nextDom2","selectedNodes","_onInsertBefore","_onInsertAfter","_lastNode","_getElementName","homeNode","_firstNode","prevElement","_previousElement","appendDom","nextNode2","_previousNode","nextElement","_nextElement","prevDom","blurNodes","clones","newNode","_onAppend","_onChangeType","order","nodeA","getNestedChild","nodeB","valueA","valueB","findChildByProperty","getSortablePaths","pathsMap","_getSortablePaths","rootPath","ShowMoreNode","firstDom","lastDom","lastChild","TYPE_TITLES","addTemplates","templates","appendData","insertData","template","titles","_showSortModal","appendSubmenu","insertSubmenu","overlayClass","modalClass","afterCreate","modal","setDirection","form","modalElem","paths","sortedBy","getAttribute","pathArray","onsubmit","afterClose","lower","num","numFloat","htmlEscaped","html","escapeUnicode","escapedText","_escapeJSON","escaped","oFxNcL","oFyNcL","re","sre","dre","hre","s","insensitive","x","y","xN","yN","xD","parseInt","yD","cLoc","numS","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","isNode","nodeType","isString","observable","callbacks","watch","trigger","detail","unprevented","isHidden","getComputedStyle","Elem","buildOverlay","getOption","make","clazz","stylize","zIndex","opacity","background","onClick","buildModal","autoinc","boxSizing","-ms-transform","-moz-transform","-webkit-transform","-o-transform","transform","backgroundColor","borderRadius","attr","anyAncestor","buildClose","border","fontSize","textAlign","lineHeight","buildElemAccessor","builder","manageFocus","iface","isEnabled","matches","selector","msMatchesSelector","webkitMatchesSelector","canFocus","hasAttribute","firstFocusable","getElementsByTagName","lastFocusable","focused","beforeShow","activeElement","afterShow","focusable","tabKey","last","manageBodyOverflow","origOverflow","tag","styles","setAttribute","predicate","escapeKey","documentElement","keycode","opt","defaultValue","forceClose","shadowElem","afterCloseEvent","beforeCloseEvent","returnIface","build","built","overlay","afterCreateEvent","beforeShowEvent","afterShowEvent","closeElem","overlayElem","buildDom","opts","beforeClose","trAppend","tdAppend","domText","paddingLeft","showMoreButton","floor","showAllButton","moreContents","moreText","_getShowMoreText","tdContents","moreTr","totalChilds","onSwitch","availableModes","view","currentMode","currentTitle","box","completely","setEndOfContenteditable","moveToElementText","calculateWidthForText","spacer","outline","whiteSpace","fontFamily","fontWeight","confirmKeys","caseSensitive","wrapper","dropDown","leftSide","rs","onArrowDown","onArrowUp","onEnter","onTab","elementHint","elementStyle","startPos","remove","getPropertyValue","marginTop","borderColor","cloneNode","keyDownHandler","onBlurHandler","repaint","dropDownController","optionsLength","realInnerText","clientWidth","ix","oldIndex","onMouseOver","onMouseOut","onMouseDown","onmouseselection","__hint","vph","innerHeight","rect","distanceToTop","distanceToBottom","divRow","move","step","wasDropDownHidden","ace","statusBar","indentation","_ace","theme","onTextSelectionChange","aceEditor","textarea","buttonFormat","format","buttonCompact","compact","buttonRepair","repair","emptyNode","isReadOnly","editorDom","edit","$blockScrolling","setTheme","setOptions","readOnly","setShowPrintMargin","setFontSize","getSession","setTabSize","setUseSoftTabs","setUseWrapMode","commands","bindKey","poweredBy","on","_onSelect","onselect","_onMouseDown","onblur","_onBlur","validationErrorsContainer","curserInfoElements","lnLabel","lnVal","colLabel","colVal","countLabel","countVal","_updateCursorInfo","_emitSelectionChange","updateDisplay","selectionRange","cursorInfo","curserPos","getCursorPosition","selectedText","getSelectedText","currentSelection","getTextSelection","sanitizedText","resize","originalOnChange","validationErrors","marginBottom","paddingBottom","doValidate","hidden","aceSelection","getRange","lead","getSelectionLead","setTextSelection","endPos","setSelectionRange","setRange","acequire","oop","TextHighlightRules","JsonHighlightRules","$rules","regex","defaultToken","comment","inherits","Range","MatchingBraceOutdent","checkOutdent","autoOutdent","doc","getLine","openBracePos","findMatchingBracket","indent","$getIndent","BaseFoldMode","FoldMode","commentRegex","foldingStartMarker","source","foldingStopMarker","singleLineBlockCommentRe","tripleStarBlockCommentRe","startRegionRe","_getFoldWidgetBase","getFoldWidget","session","foldStyle","fw","getFoldWidgetRange","forceMultiline","getCommentRegionBlock","openingBracketBlock","getCommentFoldRange","isMultiLine","getSectionRange","closingBracketBlock","startIndent","startRow","startColumn","endRow","maxRow","getLength","subRange","depth","TextMode","Mode","HighlightRules","CstyleBehaviour","CStyleFoldMode","WorkerClient","$outdent","$behaviour","foldingRules","getNextLineIndent","tab","createWorker","worker","attachToDocument","getDocument","setAnnotations","clearAnnotations","$id","src","HashHandler","keyUtil","importCssString","showReplaceForm","div","setSession","$init","setEditor","renderer","scroller","searchRange","$syncOptions","$initElements","sb","replaceBox","searchOption","replaceOption","regExpOption","caseSensitiveOption","wholeWordOption","searchInput","replaceInput","searchCounter","_this","addListener","activeInput","t","$searchBarKb","addCommandKeyListener","hashId","keyString","keyCodeToString","command","findKeyCommand","stopEvent","$onChange","delayedCall","schedule","$closeSearchBarKb","bindKeys","Ctrl-f|Command-f","isReplace","Ctrl-H|Command-Option-F","Ctrl-G|Command-G","findNext","Ctrl-Shift-G|Command-Shift-G","findPrev","esc","Return","Shift-Return","Alt-Return","replaceAll","findAll","Tab","addCommands","win","mac","setSearchRange","getSelectionRange","searchRangeMarker","addMarker","removeMarker","preventScroll","setCssClass","textContent","$search","$options","updateBackMarkers","skipCurrent","backwards","wrap","regExp","wholeWord","noMatch","_emit","updateCounter","before","getTextRange","offset","positionToIndex","MAX_COUNT","getReadOnly","replaceAndFindNext","active","off","keyBinding","removeKeyboardHandler","addKeyboardHandler","isFocused","Search","isDark","cssClass","cssText"],"mappings":"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","file":"jsoneditor-minimalist"} \ No newline at end of file diff --git a/dist/jsoneditor-minimalist.min.js b/dist/jsoneditor-minimalist.min.js index e45b270..491d5c2 100644 --- a/dist/jsoneditor-minimalist.min.js +++ b/dist/jsoneditor-minimalist.min.js @@ -24,10 +24,11 @@ * Copyright (c) 2011-2017 Jos de Jong, http://jsoneditoronline.org * * @author Jos de Jong, - * @version 5.16.0 - * @date 2018-05-23 + * @version 5.17.0 + * @date 2018-06-03 */ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.JSONEditor=t():e.JSONEditor=t()}(this,function(){return function(e){function t(i){if(n[i])return n[i].exports;var o=n[i]={exports:{},id:i,loaded:!1};return e[i].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function i(e,t,n){if(!(this instanceof i))throw new Error('JSONEditor constructor called without "new".');var o=a.getInternetExplorerVersion();if(-1!=o&&o<9)throw new Error("Unsupported browser, IE9 or newer required. Please install the newest version of your browser.");if(t&&(t.error&&(console.warn('Option "error" has been renamed to "onError"'),t.onError=t.error,delete t.error),t.change&&(console.warn('Option "change" has been renamed to "onChange"'),t.onChange=t.change,delete t.change),t.editable&&(console.warn('Option "editable" has been renamed to "onEditable"'),t.onEditable=t.editable,delete t.editable),t)){var r=["ajv","schema","schemaRefs","templates","ace","theme","autocomplete","onChange","onEditable","onError","onModeChange","onSelectionChange","onTextSelectionChange","escapeUnicode","history","search","mode","modes","name","indentation","sortObjectKeys","navigationBar","statusBar","languages","language"];Object.keys(t).forEach(function(e){-1===r.indexOf(e)&&console.warn('Unknown option "'+e+'". This option will be ignored')})}arguments.length&&this._create(e,t,n)}var o;try{o=n(!function(){var e=new Error('Cannot find module "ajv"');throw e.code="MODULE_NOT_FOUND",e}())}catch(e){}var r=n(1),s=n(16),a=n(4);i.modes={},i.prototype.DEBOUNCE_INTERVAL=150,i.prototype._create=function(e,t,n){this.container=e,this.options=t||{},this.json=n||{};var i=this.options.mode||this.options.modes&&this.options.modes[0]||"tree";this.setMode(i)},i.prototype.destroy=function(){},i.prototype.set=function(e){this.json=e},i.prototype.get=function(){return this.json},i.prototype.setText=function(e){this.json=a.parse(e)},i.prototype.getText=function(){return JSON.stringify(this.json)},i.prototype.setName=function(e){this.options||(this.options={}),this.options.name=e},i.prototype.getName=function(){return this.options&&this.options.name},i.prototype.setMode=function(e){var t,n,o=this.container,r=a.extend({},this.options),s=r.mode;r.mode=e;var l=i.modes[e];if(!l)throw new Error('Unknown mode "'+r.mode+'"');try{var c="text"==l.data;if(n=this.getName(),t=this[c?"getText":"get"](),this.destroy(),a.clear(this),a.extend(this,l.mixin),this.create(o,r),this.setName(n),this[c?"setText":"set"](t),"function"==typeof l.load)try{l.load.call(this)}catch(e){console.error(e)}if("function"==typeof r.onModeChange&&e!==s)try{r.onModeChange(e,s)}catch(e){console.error(e)}}catch(e){this._onError(e)}},i.prototype.getMode=function(){return this.options.mode},i.prototype._onError=function(e){if(!this.options||"function"!=typeof this.options.onError)throw e;this.options.onError(e)},i.prototype.setSchema=function(e,t){if(e){var n;try{n=this.options.ajv||o({allErrors:!0,verbose:!0})}catch(e){console.warn("Failed to create an instance of Ajv, JSON Schema validation is not available. Please use a JSONEditor bundle including Ajv, or pass an instance of Ajv as via the configuration option `ajv`.")}if(n){if(t){for(var i in t)n.removeSchema(i),t[i]&&n.addSchema(t[i],i);this.options.schemaRefs=t}this.validateSchema=n.compile(e),this.options.schema=e,this.validate()}this.refresh()}else this.validateSchema=null,this.options.schema=null,this.options.schemaRefs=null,this.validate(),this.refresh()},i.prototype.validate=function(){},i.prototype.refresh=function(){},i.registerMode=function(e){var t,n;if(a.isArray(e))for(t=0;t0?this.autoScrollStep=(i+24-e)/3:e>r-24&&o+n.scrollTop3?(n.scrollTop+=o/3,i.animateCallback=t,i.animateTimeout=setTimeout(a,50)):(t&&t(!0),n.scrollTop=s,delete i.animateTimeout,delete i.animateCallback)};a()}else t&&t(!1)},f._createFrame=function(){function e(e){t._onEvent&&t._onEvent(e)}this.frame=document.createElement("div"),this.frame.className="jsoneditor jsoneditor-mode-"+this.options.mode,this.container.appendChild(this.frame);var t=this;this.frame.onclick=function(t){var n=t.target;e(t),"BUTTON"==n.nodeName&&t.preventDefault()},this.frame.oninput=e,this.frame.onchange=e,this.frame.onkeydown=e,this.frame.onkeyup=e,this.frame.oncut=e,this.frame.onpaste=e,this.frame.onmousedown=e,this.frame.onmouseup=e,this.frame.onmouseover=e,this.frame.onmouseout=e,d.addEventListener(this.frame,"focus",e,!0),d.addEventListener(this.frame,"blur",e,!0),this.frame.onfocusin=e,this.frame.onfocusout=e,this.menu=document.createElement("div"),this.menu.className="jsoneditor-menu",this.frame.appendChild(this.menu);var n=document.createElement("button");n.type="button",n.className="jsoneditor-expand-all",n.title=u("expandAll"),n.onclick=function(){t.expandAll()},this.menu.appendChild(n);var i=document.createElement("button");if(i.type="button",i.title=u("collapseAll"),i.className="jsoneditor-collapse-all",i.onclick=function(){t.collapseAll()},this.menu.appendChild(i),this.history){var o=document.createElement("button");o.type="button",o.className="jsoneditor-undo jsoneditor-separator",o.title=u("undo"),o.onclick=function(){t._onUndo()},this.menu.appendChild(o),this.dom.undo=o;var s=document.createElement("button");s.type="button",s.className="jsoneditor-redo",s.title=u("redo"),s.onclick=function(){t._onRedo()},this.menu.appendChild(s),this.dom.redo=s,this.history.onChange=function(){o.disabled=!t.history.canUndo(),s.disabled=!t.history.canRedo()},this.history.onChange()}if(this.options&&this.options.modes&&this.options.modes.length){var l=this;this.modeSwitcher=new c(this.menu,this.options.modes,this.options.mode,function(e){l.modeSwitcher.destroy(),l.setMode(e),l.modeSwitcher.focus()})}this.options.search&&(this.searchBox=new r(this,this.menu)),this.options.navigationBar&&(this.navBar=document.createElement("div"),this.navBar.className="jsoneditor-navigation-bar nav-bar-empty",this.frame.appendChild(this.navBar),this.treePath=new a(this.navBar),this.treePath.onSectionSelected(this._onTreePathSectionSelected.bind(this)),this.treePath.onContextMenuItemSelected(this._onTreePathMenuItemSelected.bind(this)))},f._onUndo=function(){this.history&&(this.history.undo(),this._onChange())},f._onRedo=function(){this.history&&(this.history.redo(),this._onChange())},f._onEvent=function(e){"keydown"===e.type&&this._onKeyDown(e),"focus"===e.type&&(this.focusTarget=e.target),"mousedown"===e.type&&this._startDragDistance(e),"mousemove"!==e.type&&"mouseup"!==e.type&&"click"!==e.type||this._updateDragDistance(e);var t=l.getNodeFromTarget(e.target);if(t&&this.options&&this.options.navigationBar&&t&&("keydown"===e.type||"mousedown"===e.type)){var n=this;setTimeout(function(){n._updateTreePath(t.getNodePath())})}if(t&&t.selected){if("click"===e.type){if(e.target===t.dom.menu)return void this.showContextMenu(e.target);e.hasMoved||this.deselect()}"mousedown"===e.type&&l.onDragStart(this.multiselection.nodes,e)}else"mousedown"===e.type&&(this.deselect(),t&&e.target===t.dom.drag?l.onDragStart(t,e):(!t||e.target!==t.dom.field&&e.target!==t.dom.value&&e.target!==t.dom.select)&&this._onMultiSelectStart(e));t&&t.onEvent(e)},f._updateTreePath=function(e){function t(e){return void 0!==e.field?e._escapeHTML(e.field):isNaN(e.index)?e.type:e.index}if(e&&e.length){d.removeClassName(this.navBar,"nav-bar-empty");var n=[];e.forEach(function(e){var i={name:t(e),node:e,children:[]};e.childs&&e.childs.length&&e.childs.forEach(function(e){i.children.push({name:t(e),node:e})}),n.push(i)}),this.treePath.setPath(n)}else d.addClassName(this.navBar,"nav-bar-empty")},f._onTreePathSectionSelected=function(e){e&&e.node&&(e.node.expandTo(),e.node.focus())},f._onTreePathMenuItemSelected=function(e,t){if(e&&e.children.length){var n=e.children.find(function(e){return e.name===t});n&&n.node&&(this._updateTreePath(n.node.getNodePath()),n.node.expandTo(),n.node.focus())}},f._startDragDistance=function(e){this.dragDistanceEvent={initialTarget:e.target,initialPageX:e.pageX,initialPageY:e.pageY,dragDistance:0,hasMoved:!1}},f._updateDragDistance=function(e){this.dragDistanceEvent||this._startDragDistance(e);var t=e.pageX-this.dragDistanceEvent.initialPageX,n=e.pageY-this.dragDistanceEvent.initialPageY;return this.dragDistanceEvent.dragDistance=Math.sqrt(t*t+n*n),this.dragDistanceEvent.hasMoved=this.dragDistanceEvent.hasMoved||this.dragDistanceEvent.dragDistance>10,e.dragDistance=this.dragDistanceEvent.dragDistance,e.hasMoved=this.dragDistanceEvent.hasMoved,e.dragDistance},f._onMultiSelectStart=function(e){var t=l.getNodeFromTarget(e.target);if("tree"===this.options.mode&&void 0===this.options.onEditable){this.multiselection={start:t||null,end:null,nodes:[]},this._startDragDistance(e);var n=this;this.mousemove||(this.mousemove=d.addEventListener(window,"mousemove",function(e){n._onMultiSelect(e)})),this.mouseup||(this.mouseup=d.addEventListener(window,"mouseup",function(e){n._onMultiSelectEnd(e)}))}},f._onMultiSelect=function(e){if(e.preventDefault(),this._updateDragDistance(e),e.hasMoved){var t=l.getNodeFromTarget(e.target);t&&(null==this.multiselection.start&&(this.multiselection.start=t),this.multiselection.end=t),this.deselect();var n=this.multiselection.start,i=this.multiselection.end||this.multiselection.start;if(n&&i){if(this.multiselection.nodes=this._findTopLevelNodes(n,i),this.multiselection.nodes&&this.multiselection.nodes.length){var o=this.multiselection.nodes[0];this.multiselection.start===o||this.multiselection.start.isDescendantOf(o)?this.multiselection.direction="down":this.multiselection.direction="up"}this.select(this.multiselection.nodes)}}},f._onMultiSelectEnd=function(e){this.multiselection.nodes[0]&&this.multiselection.nodes[0].dom.menu.focus(),this.multiselection.start=null,this.multiselection.end=null,this.mousemove&&(d.removeEventListener(window,"mousemove",this.mousemove),delete this.mousemove),this.mouseup&&(d.removeEventListener(window,"mouseup",this.mouseup),delete this.mouseup)},f.deselect=function(e){var t=!!this.multiselection.nodes.length;this.multiselection.nodes.forEach(function(e){e.setSelected(!1)}),this.multiselection.nodes=[],e&&(this.multiselection.start=null,this.multiselection.end=null),t&&this._selectionChangedHandler&&this._selectionChangedHandler()},f.select=function(e){if(!Array.isArray(e))return this.select([e]);if(e){this.deselect(),this.multiselection.nodes=e.slice(0);var t=e[0];if(e.forEach(function(e){e.expandPathToNode(),e.setSelected(!0,e===t)}),this._selectionChangedHandler){var n=this.getSelection();this._selectionChangedHandler(n.start,n.end)}}},f._findTopLevelNodes=function(e,t){for(var n=e.getNodePath(),i=t.getNodePath(),o=0;o=0&&(c="value"),e.target.className.indexOf("jsoneditor-field")>=0&&(c="field");var h=l.getNodeFromTarget(e.target);setTimeout(function(e,t){if(t.innerText.length>0){var n=this.options.autocomplete.getOptions(t.innerText,e.getPath(),c,e.editor);null===n?this.autocomplete.hideDropDown():"function"==typeof n.then?n.then(function(e){null===e?this.autocomplete.hideDropDown():e.options?this.autocomplete.show(t,e.startFrom,e.options):this.autocomplete.show(t,0,e)}.bind(this)):n.options?this.autocomplete.show(t,n.startFrom,n.options):this.autocomplete.show(t,0,n)}else this.autocomplete.hideDropDown()}.bind(this,h,e.target),50)}s&&(e.preventDefault(),e.stopPropagation())},f._createTable=function(){var e=document.createElement("div");e.className="jsoneditor-outer",this.options.navigationBar&&d.addClassName(e,"has-nav-bar"),this.contentOuter=e,this.content=document.createElement("div"),this.content.className="jsoneditor-tree",e.appendChild(this.content),this.table=document.createElement("table"),this.table.className="jsoneditor-tree",this.content.appendChild(this.table);var t;this.colgroupContent=document.createElement("colgroup"),"tree"===this.options.mode&&(t=document.createElement("col"),t.width="24px",this.colgroupContent.appendChild(t)),t=document.createElement("col"),t.width="24px",this.colgroupContent.appendChild(t),t=document.createElement("col"),this.colgroupContent.appendChild(t),this.table.appendChild(this.colgroupContent),this.tbody=document.createElement("tbody"),this.table.appendChild(this.tbody),this.frame.appendChild(e)},f.showContextMenu=function(e,t){var n=[],i=this;n.push({text:u("duplicateText"),title:u("duplicateTitle"),className:"jsoneditor-duplicate",click:function(){l.onDuplicate(i.multiselection.nodes)}}),n.push({text:u("remove"),title:u("removeTitle"),className:"jsoneditor-remove",click:function(){l.onRemove(i.multiselection.nodes)}}),new s(n,{close:t}).show(e,this.content)},f.getSelection=function(){var e={start:null,end:null};if(this.multiselection.nodes&&this.multiselection.nodes.length&&this.multiselection.nodes.length){var t=this.multiselection.nodes[0],n=this.multiselection.nodes[this.multiselection.nodes.length-1];"down"===this.multiselection.direction?(e.start=t.serialize(),e.end=n.serialize()):(e.start=n.serialize(),e.end=t.serialize())}return e},f.onSelectionChange=function(e){"function"==typeof e&&(this._selectionChangedHandler=d.debounce(e,this.DEBOUNCE_INTERVAL))},f.setSelection=function(e,t){e&&e.dom&&e.range&&(console.warn("setSelection/getSelection usage for text selection is depracated and should not be used, see documantaion for supported selection options"),this.setDomSelection(e));var n=this._getNodeIntsncesByRange(e,t);n.forEach(function(e){e.expandTo()}),this.select(n)},f._getNodeIntsncesByRange=function(e,t){var n,i;e&&e.path&&(n=this.node.findNodeByPath(e.path),t&&t.path&&(i=this.node.findNodeByPath(t.path)));var o=[];if(n instanceof l)if(i instanceof l&&i!==n)if(n.parent===i.parent){var e,t;n.getIndex()=0},i.prototype.canRedo=function(){return this.index=" "&&c<=" "||" "===c||" "===c||" "===c?(r.push(" "),s++):"'"===c?o("'"):'"'===c?o('"'):"`"===c?o("´"):"‘"===c?o("’"):"“"===c?o("”"):/[a-zA-Z_$]/.test(c)&&-1!==["{",","].indexOf(function(){for(var e=r.length-1;e>=0;){var t=r[e];if(" "!==t&&"\n"!==t&&"\r"!==t&&"\t"!==t)return t;e--}return""}())?function(){for(var e=["null","true","false"],n="",i=t(),o=/[a-zA-Z_$\d]/;o.test(i);)n+=i,s++,i=t();-1===e.indexOf(n)?r.push('"'+n+'"'):r.push(n)}():(r.push(c),s++)}return r.join("")},t.escapeUnicodeChars=function(e){return e.replace(/[\u007F-\uFFFF]/g,function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})},t.validate=function(e){void 0!==i?i.parse(e):JSON.parse(e)},t.extend=function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e},t.clear=function(e){for(var t in e)e.hasOwnProperty(t)&&delete e[t];return e},t.type=function(e){return null===e?"null":void 0===e?"undefined":e instanceof Number||"number"==typeof e?"number":e instanceof String||"string"==typeof e?"string":e instanceof Boolean||"boolean"==typeof e?"boolean":e instanceof RegExp||"regexp"==typeof e?"regexp":t.isArray(e)?"array":"object"};var o=/^https?:\/\/\S+$/;t.isUrl=function(e){return("string"==typeof e||e instanceof String)&&o.test(e)},t.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)},t.getAbsoluteLeft=function(e){return e.getBoundingClientRect().left+window.pageXOffset||document.scrollLeft||0},t.getAbsoluteTop=function(e){return e.getBoundingClientRect().top+window.pageYOffset||document.scrollTop||0},t.addClassName=function(e,t){var n=e.className.split(" ");-1==n.indexOf(t)&&(n.push(t),e.className=n.join(" "))},t.removeClassName=function(e,t){var n=e.className.split(" "),i=n.indexOf(t);-1!=i&&(n.splice(i,1),e.className=n.join(" "))},t.stripFormatting=function(e){for(var n=e.childNodes,i=0,o=n.length;i=0;a--){var l=s[a];!0===l.specified&&r.removeAttribute(l.name)}t.stripFormatting(r)}},t.setEndOfContentEditable=function(e){var t,n;document.createRange&&(t=document.createRange(),t.selectNodeContents(e),t.collapse(!1),n=window.getSelection(),n.removeAllRanges(),n.addRange(t))},t.selectContentEditable=function(e){if(e&&"DIV"==e.nodeName){var t,n;window.getSelection&&document.createRange&&(n=document.createRange(),n.selectNodeContents(e),t=window.getSelection(),t.removeAllRanges(),t.addRange(n))}},t.getSelection=function(){if(window.getSelection){var e=window.getSelection();if(e.getRangeAt&&e.rangeCount)return e.getRangeAt(0)}return null},t.setSelection=function(e){if(e&&window.getSelection){var t=window.getSelection();t.removeAllRanges(),t.addRange(e)}},t.getSelectionOffset=function(){var e=t.getSelection();return e&&"startOffset"in e&&"endOffset"in e&&e.startContainer&&e.startContainer==e.endContainer?{startOffset:e.startOffset,endOffset:e.endOffset,container:e.startContainer.parentNode}:null},t.setSelectionOffset=function(e){if(document.createRange&&window.getSelection){if(window.getSelection()){var n=document.createRange();e.container.firstChild||e.container.appendChild(document.createTextNode("")),n.setStart(e.container.firstChild,e.startOffset),n.setEnd(e.container.firstChild,e.endOffset),t.setSelection(n)}}},t.getInnerText=function(e,n){if(void 0==n&&(n={text:"",flush:function(){var e=this.text;return this.text="",e},set:function(e){this.text=e}}),e.nodeValue)return n.flush()+e.nodeValue;if(e.hasChildNodes()){for(var i=e.childNodes,o="",r=0,s=i.length;r5){var n=["("+(t.length-5)+" more...)"];t=t.slice(0,5),t.push(n)}e.message="should be equal to one of: "+t.join(", ")}}return"additionalProperties"===e.keyword&&(e.message="should NOT have additional property: "+e.params.additionalProperty),e},t.insideRect=function(e,t,n){var i=void 0!==n?n:0;return t.left-i>=e.left&&t.right+i<=e.right&&t.top-i>=e.top&&t.bottom+i<=e.bottom},t.debounce=function(e,t,n){var i;return function(){var o=this,r=arguments,s=function(){i=null,n||e.apply(o,r)},a=n&&!i;clearTimeout(i),i=setTimeout(s,t),a&&e.apply(o,r)}},t.textDiff=function(e,t){for(var n=t.length,i=0,o=e.length,r=t.length;t.charAt(i)===e.charAt(i)&&ii&&o>0;)r--,o--;return{start:i,end:r}},t.getInputSelection=function(e){function t(t){var n=e.value.substring(0,t);return{row:(n.match(/\n/g)||[]).length+1,column:n.length-n.lastIndexOf("\n")}}var n,i,o,r,s,a=0,l=0;return"number"==typeof e.selectionStart&&"number"==typeof e.selectionEnd?(a=e.selectionStart,l=e.selectionEnd):(i=document.selection.createRange())&&i.parentElement()==e&&(r=e.value.length,n=e.value.replace(/\r\n/g,"\n"),o=e.createTextRange(),o.moveToBookmark(i.getBookmark()),s=e.createTextRange(),s.collapse(!1),o.compareEndPoints("StartToEnd",s)>-1?a=l=r:(a=-o.moveStart("character",-r),a+=n.slice(0,a).split("\n").length-1,o.compareEndPoints("EndToEnd",s)>-1?l=r:(l=-o.moveEnd("character",-r),l+=n.slice(0,l).split("\n").length-1))),{startIndex:a,endIndex:l,start:t(a),end:t(l)}},t.getIndexForPosition=function(e,t,n){var i=e.value||"";if(t>0&&n>0){var o=i.split("\n",t);t=Math.min(o.length,t),n=Math.min(o[t-1].length,n-1);var r=1==t?n:n+1;return o.slice(0,t-1).join("\n").length+r}return-1},"undefined"!=typeof Element&&function(){function e(e){e.hasOwnProperty("remove")||Object.defineProperty(e,"remove",{configurable:!0,enumerable:!0,writable:!0,value:function(){null!=this.parentNode&&this.parentNode.removeChild(this)}})}"undefined"!=typeof Element&&e(Element.prototype),"undefined"!=typeof CharacterData&&e(CharacterData.prototype),"undefined"!=typeof DocumentType&&e(DocumentType.prototype)}(),String.prototype.startsWith||(String.prototype.startsWith=function(e,t){return t=t||0,this.substr(t,e.length)===e}),Array.prototype.find||(Array.prototype.find=function(e){for(var t=0;t2&&x.push("'"+this.terminals_[y]+"'");var E="";E=this.lexer.showPosition?"Parse error on line "+(l+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+x.join(", ")+", got '"+this.terminals_[p]+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==p?"end of input":"'"+(this.terminals_[p]||p)+"'"),this.parseError(E,{text:this.lexer.match,token:this.terminals_[p]||p,line:this.lexer.yylineno,loc:u,expected:x})}if(3==d){if(1==p)throw new Error(E||"Parsing halted.");c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,u=this.lexer.yylloc,p=t()}for(;;){if(h.toString()in s[f])break;if(0==f)throw new Error(E||"Parsing halted.");!function(e){i.length=i.length-2*e,o.length=o.length-e,r.length=r.length-e}(1),f=i[i.length-1]}m=p,p=h,f=i[i.length-1],g=s[f]&&s[f][h],d=3}if(g[0]instanceof Array&&g.length>1)throw new Error("Parse Error: multiple actions possible at state: "+f+", token: "+p);switch(g[0]){case 1:i.push(p),o.push(this.lexer.yytext),r.push(this.lexer.yylloc),i.push(g[1]),p=null,m?(p=m,m=null):(c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,u=this.lexer.yylloc,d>0&&d--);break;case 2:if(b=this.productions_[g[1]][1],_.$=o[o.length-b],_._$={first_line:r[r.length-(b||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(b||1)].first_column,last_column:r[r.length-1].last_column},void 0!==(v=this.performAction.call(_,a,c,l,this.yy,g[1],o,r)))return v;b&&(i=i.slice(0,-1*b*2),o=o.slice(0,-1*b),r=r.slice(0,-1*b)),i.push(this.productions_[g[1]][0]),o.push(_.$),r.push(_._$),w=s[i[i.length-2]][i[i.length-1]],i.push(w);break;case 3:return!0}}return!0}},t=function(){var e={EOF:1,parseError:function(e,t){if(!this.yy.parseError)throw new Error(e);this.yy.parseError(e,t)},setInput:function(e){return this._input=e,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.match+=e,this.matched+=e,e.match(/\n/)&&this.yylineno++,this._input=this._input.slice(1),e},unput:function(e){return this._input=e+this._input,this},more:function(){return this._more=!0,this},less:function(e){this._input=this.match.slice(e)+this._input},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var e,t,n,i,o;this._more||(this.yytext="",this.match="");for(var r=this._currentRules(),s=0;st[0].length)||(t=n,i=s,this.options.flex));s++);return t?(o=t[0].match(/\n.*/g),o&&(this.yylineno+=o.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:o?o[o.length-1].length-1:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.yyleng=this.yytext.length,this._more=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],e=this.performAction.call(this,this.yy,this,r[i],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e||void 0):""===this._input?this.EOF:void this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var e=this.next();return void 0!==e?e:this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(e){this.begin(e)}};return e.options={},e.performAction=function(e,t,n,i){switch(n){case 0:break;case 1:return 6;case 2:return t.yytext=t.yytext.substr(1,t.yyleng-2),4;case 3:return 17;case 4:return 18;case 5:return 23;case 6:return 24;case 7:return 22;case 8:return 21;case 9:return 10;case 10:return 11;case 11:return 8;case 12:return 14;case 13:return"INVALID"}},e.rules=[/^(?:\s+)/,/^(?:(-?([0-9]|[1-9][0-9]+))(\.[0-9]+)?([eE][-+]?[0-9]+)?\b)/,/^(?:"(?:\\[\\"bfnrt\/]|\\u[a-fA-F0-9]{4}|[^\\\0-\x09\x0a-\x1f"])*")/,/^(?:\{)/,/^(?:\})/,/^(?:\[)/,/^(?:\])/,/^(?:,)/,/^(?::)/,/^(?:true\b)/,/^(?:false\b)/,/^(?:null\b)/,/^(?:$)/,/^(?:.)/],e.conditions={INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],inclusive:!0}},e}();return e.lexer=t,e}();t.parser=i,t.parse=i.parse.bind(i)},function(e,t){"use strict";function n(e,t){var n=this;this.editor=e,this.timeout=void 0,this.delay=200,this.lastText=void 0,this.dom={},this.dom.container=t;var i=document.createElement("table");this.dom.table=i,i.className="jsoneditor-search",t.appendChild(i);var o=document.createElement("tbody");this.dom.tbody=o,i.appendChild(o);var r=document.createElement("tr");o.appendChild(r);var s=document.createElement("td");r.appendChild(s);var a=document.createElement("div");this.dom.results=a,a.className="jsoneditor-results",s.appendChild(a),s=document.createElement("td"),r.appendChild(s);var l=document.createElement("div");this.dom.input=l,l.className="jsoneditor-frame",l.title="Search fields and values",s.appendChild(l);var c=document.createElement("table");l.appendChild(c);var d=document.createElement("tbody");c.appendChild(d),r=document.createElement("tr"),d.appendChild(r);var h=document.createElement("button");h.type="button",h.className="jsoneditor-refresh",s=document.createElement("td"),s.appendChild(h),r.appendChild(s);var u=document.createElement("input");this.dom.search=u,u.oninput=function(e){n._onDelayedSearch(e)},u.onchange=function(e){n._onSearch()},u.onkeydown=function(e){n._onKeyDown(e)},u.onkeyup=function(e){n._onKeyUp(e)},h.onclick=function(e){u.select()},s=document.createElement("td"),s.appendChild(u),r.appendChild(s);var p=document.createElement("button");p.type="button",p.title="Next result (Enter)",p.className="jsoneditor-next",p.onclick=function(){n.next()},s=document.createElement("td"),s.appendChild(p),r.appendChild(s);var m=document.createElement("button");m.type="button",m.title="Previous result (Shift+Enter)",m.className="jsoneditor-previous",m.onclick=function(){n.previous()},s=document.createElement("td"),s.appendChild(m),r.appendChild(s)}n.prototype.next=function(e){if(void 0!=this.results){var t=void 0!=this.resultIndex?this.resultIndex+1:0;t>this.results.length-1&&(t=0),this._setActiveResult(t,e)}},n.prototype.previous=function(e){if(void 0!=this.results){var t=this.results.length-1,n=void 0!=this.resultIndex?this.resultIndex-1:t;n<0&&(n=t),this._setActiveResult(n,e)}},n.prototype._setActiveResult=function(e,t){if(this.activeResult){var n=this.activeResult.node;"field"==this.activeResult.elem?delete n.searchFieldActive:delete n.searchValueActive,n.updateDom()}if(!this.results||!this.results[e])return this.resultIndex=void 0,void(this.activeResult=void 0);this.resultIndex=e;var i=this.results[this.resultIndex].node,o=this.results[this.resultIndex].elem;"field"==o?i.searchFieldActive=!0:i.searchValueActive=!0,this.activeResult=this.results[this.resultIndex],i.updateDom(),i.scrollTo(function(){t&&i.focus(o)})},n.prototype._clearDelay=function(){void 0!=this.timeout&&(clearTimeout(this.timeout),delete this.timeout)},n.prototype._onDelayedSearch=function(e){this._clearDelay();var t=this;this.timeout=setTimeout(function(e){t._onSearch()},this.delay)},n.prototype._onSearch=function(e){this._clearDelay();var t=this.dom.search.value,n=t.length>0?t:void 0;if(n!==this.lastText||e){this.lastText=n,this.results=this.editor.search(n);var i=this.results[0]?this.results[0].node.MAX_SEARCH_RESULTS:1/0;if(this._setActiveResult(0,!1),void 0!==n){var o=this.results.length;this.dom.results.innerHTML=0===o?"no results":1===o?"1 result":o>i?i+"+ results":o+" results"}else this.dom.results.innerHTML=""}},n.prototype._onKeyDown=function(e){var t=e.which;27==t?(this.dom.search.value="",this._onSearch(),e.preventDefault(),e.stopPropagation()):13==t&&(e.ctrlKey?this._onSearch(!0):e.shiftKey?this.previous():this.next(),e.preventDefault(),e.stopPropagation())},n.prototype._onKeyUp=function(e){var t=e.keyCode;27!=t&&13!=t&&this._onDelayedSearch(e)},n.prototype.clear=function(){this.dom.search.value="",this._onSearch()},n.prototype.destroy=function(){this.editor=null,this.dom.container.removeChild(this.dom.table),this.dom=null,this.results=null,this.activeResult=null,this._clearDelay()},e.exports=n},function(e,t,n){"use strict";function i(e){return e.getRootNode&&e.getRootNode()||window}function o(e,t){function n(e,t,o){o.forEach(function(o){if("separator"==o.type){var r=document.createElement("div");r.className="jsoneditor-separator",l=document.createElement("li"),l.appendChild(r),e.appendChild(l)}else{var a={},l=document.createElement("li");e.appendChild(l);var c=document.createElement("button");if(c.type="button",c.className=o.className,a.button=c,o.title&&(c.title=o.title),o.click&&(c.onclick=function(e){e.preventDefault(),i.hide(),o.click()}),l.appendChild(c),o.submenu){var d=document.createElement("div");d.className="jsoneditor-icon",c.appendChild(d);var h=document.createElement("div");h.className="jsoneditor-text"+(o.click?"":" jsoneditor-right-margin"),h.appendChild(document.createTextNode(o.text)),c.appendChild(h);var u;if(o.click){c.className+=" jsoneditor-default";var p=document.createElement("button");p.type="button",a.buttonExpand=p,p.className="jsoneditor-expand",p.innerHTML='
',l.appendChild(p),o.submenuTitle&&(p.title=o.submenuTitle),u=p}else{var m=document.createElement("div");m.className="jsoneditor-expand",c.appendChild(m),u=c}u.onclick=function(e){e.preventDefault(),i._onExpandItem(a),u.focus()};var f=[];a.subItems=f;var g=document.createElement("ul");a.ul=g,g.className="jsoneditor-menu",g.style.height="0",l.appendChild(g),n(g,f,o.submenu)}else c.innerHTML='
'+s(o.text)+"
";t.push(a)}})}this.dom={};var i=this,o=this.dom;this.anchor=void 0,this.items=e,this.eventListeners={},this.selection=void 0,this.onClose=t?t.close:void 0;var r=document.createElement("div");r.className="jsoneditor-contextmenu-root",o.root=r;var a=document.createElement("div");a.className="jsoneditor-contextmenu",o.menu=a,r.appendChild(a);var l=document.createElement("ul");l.className="jsoneditor-menu",a.appendChild(l),o.list=l,o.items=[];var c=document.createElement("button");c.type="button",o.focusButton=c;var d=document.createElement("li");d.style.overflow="hidden",d.style.height="0",d.appendChild(c),l.appendChild(d),n(l,this.dom.items,e),this.maxHeight=0,e.forEach(function(t){var n=24*(e.length+(t.submenu?t.submenu.length:0));i.maxHeight=Math.max(i.maxHeight,n)})}var r=n(4),s=n(8).translate;o.prototype._getVisibleButtons=function(){var e=[],t=this;return this.dom.items.forEach(function(n){e.push(n.button),n.buttonExpand&&e.push(n.buttonExpand),n.subItems&&n==t.expandedItem&&n.subItems.forEach(function(t){e.push(t.button),t.buttonExpand&&e.push(t.buttonExpand)})}),e},o.visibleMenu=void 0,o.prototype.show=function(e,t){this.hide();var n=!0,s=e.parentNode,a=e.getBoundingClientRect(),l=s.getBoundingClientRect();if(t){var c=t.getBoundingClientRect();a.bottom+this.maxHeightc.top&&(n=!1)}var d=a.left-l.left,h=a.top-l.top;if(n){var u=e.offsetHeight;this.dom.menu.style.left=d+"px",this.dom.menu.style.top=h+u+"px",this.dom.menu.style.bottom=""}else this.dom.menu.style.left=d+"px",this.dom.menu.style.top=h+"px",this.dom.menu.style.bottom="0px";this.rootNode=i(e),s.insertBefore(this.dom.root,s.firstChild);var p=this,m=this.dom.list;this.eventListeners.mousedown=r.addEventListener(this.rootNode,"mousedown",function(e){var t=e.target;t==m||p._isChildOf(t,m)||(p.hide(),e.stopPropagation(),e.preventDefault())}),this.eventListeners.keydown=r.addEventListener(this.rootNode,"keydown",function(e){p._onKeyDown(e)}),this.selection=r.getSelection(),this.anchor=e,setTimeout(function(){p.dom.focusButton.focus()},0),o.visibleMenu&&o.visibleMenu.hide(),o.visibleMenu=this},o.prototype.hide=function(){this.dom.root.parentNode&&(this.dom.root.parentNode.removeChild(this.dom.root),this.onClose&&this.onClose());for(var e in this.eventListeners)if(this.eventListeners.hasOwnProperty(e)){var t=this.eventListeners[e];t&&r.removeEventListener(this.rootNode,e,t),delete this.eventListeners[e]}o.visibleMenu==this&&(o.visibleMenu=void 0)},o.prototype._onExpandItem=function(e){var t=this,n=e==this.expandedItem,i=this.expandedItem;if(i&&(i.ul.style.height="0",i.ul.style.padding="",setTimeout(function(){t.expandedItem!=i&&(i.ul.style.display="",r.removeClassName(i.ul.parentNode,"jsoneditor-selected"))},300),this.expandedItem=void 0),!n){var o=e.ul;o.style.display="block";o.clientHeight;setTimeout(function(){if(t.expandedItem==e){for(var n=0,i=0;i0;){var i=t.shift();if("number"==typeof i){if("array"!==n.type)throw new Error("Cannot get child node at index "+i+": node is no array");n=n.childs[i]}else{if("object"!==n.type)throw new Error("Cannot get child node "+i+": node is no object");n=n.childs.filter(function(e){return e.field===i})[0]}}return n},i.prototype.findParents=function(){for(var e=[],t=this.parent;t;)e.unshift(t),t=t.parent;return e},i.prototype.setError=function(e,t){this.error=e,this.errorChild=t,this.dom&&this.dom.tr&&this.updateError()},i.prototype.updateError=function(){var e=this.error,t=this.dom.tdError;if(e&&this.dom&&this.dom.tr&&!t){t||(t=document.createElement("td"),this.dom.tdError=t,this.dom.tdValue.parentNode.appendChild(t));var n=document.createElement("div");n.className="jsoneditor-popover jsoneditor-right",n.appendChild(document.createTextNode(e.message));var i=document.createElement("button");i.type="button",i.className="jsoneditor-schema-error",i.appendChild(n),i.onmouseover=i.onfocus=function(){for(var e=["right","above","below","left"],t=0;tthis.visibleChilds){var o=this.childs[this.visibleChilds-1];this.insertBefore(e,o)}else this.appendChild(e);else this.insertBefore(e,t);n&&n.removeChild(i)}},i.prototype.moveTo=function(e,t){if(e.parent==this){this.childs.indexOf(e)0&&(e=this.childs.filter(function(e){return-1!==n.indexOf(e.field)}).map(function(e){return{node:e,error:{message:c("duplicateKey")+' "'+e.field+'"'}}}))}if(this.childs)for(var i=0;i0&&(e=e.concat(r))}return e},i.prototype.clearDom=function(){this.dom={}},i.prototype.getDom=function(){var e=this.dom;if(e.tr)return e.tr;if(this._updateEditability(),e.tr=document.createElement("tr"),e.tr.node=this,"tree"===this.editor.options.mode){var t=document.createElement("td");if(this.editable.field&&this.parent){var n=document.createElement("button");n.type="button",e.drag=n,n.className="jsoneditor-dragarea",n.title=c("drag"),t.appendChild(n)}e.tr.appendChild(t);var i=document.createElement("td"),o=document.createElement("button");o.type="button",e.menu=o,o.className="jsoneditor-contextmenu",o.title=c("actionsMenu"),i.appendChild(e.menu),e.tr.appendChild(i)}var r=document.createElement("td");return e.tr.appendChild(r),e.tree=this._createDomTree(),r.appendChild(e.tree),this.updateDom({updateIndexes:!0}),e.tr},i.prototype.isVisible=function(){return this.dom&&this.dom.tr&&this.dom.tr.parentNode||!1},i.onDragStart=function(e,t){if(!Array.isArray(e))return i.onDragStart([e],t);if(0!==e.length){var n=e[0],o=e[e.length-1],r=i.getNodeFromTarget(t.target),s=o.nextSibling(),a=n.editor,c=l.getAbsoluteTop(r.dom.tr)-l.getAbsoluteTop(n.dom.tr);a.mousemove||(a.mousemove=l.addEventListener(window,"mousemove",function(t){i.onDrag(e,t)})),a.mouseup||(a.mouseup=l.addEventListener(window,"mouseup",function(t){i.onDragEnd(e,t)})),a.highlighter.lock(),a.drag={oldCursor:document.body.style.cursor,oldSelection:a.getDomSelection(),oldBeforeNode:s,mouseX:t.pageX,offsetY:c,level:n.getLevel()},document.body.style.cursor="move",t.preventDefault()}},i.onDrag=function(e,t){if(!Array.isArray(e))return i.onDrag([e],t);if(0!==e.length){var n,o,r,s,a,c,h,u,p,m,f,g,v,y,b=e[0].editor,w=t.pageY-b.drag.offsetY,x=t.pageX,_=!1,E=e[0];if(n=E.dom.tr,p=l.getAbsoluteTop(n),g=n.offsetHeight,wm+g&&(h=void 0)),h&&(e.forEach(function(e){h.parent.moveBefore(e,h)}),_=!0)}else{var C=e[e.length-1];if(a=C.expanded&&C.append?C.append.getDom():C.dom.tr,s=a?a.nextSibling:void 0){f=l.getAbsoluteTop(s),r=s;do{u=i.getNodeFromTarget(r),r&&(v=r.nextSibling?l.getAbsoluteTop(r.nextSibling):0,y=r?v-f:0,u&&u.parent.childs.length==e.length&&u.parent.childs[e.length-1]==C&&(p+=27),r=r.nextSibling)}while(r&&w>p+y);if(u&&u.parent){var S=x-b.drag.mouseX,N=Math.round(S/24/2),j=b.drag.level+N,T=u.getLevel();for(o=u.dom.tr&&u.dom.tr.previousSibling;T0)return n[0].enum}return null},i._findSchema=function(e,t){var n=e,o=n,r=e.oneOf||e.anyOf||e.allOf;r||(r=[e]);for(var s=0;s0?this.editor.multiselection.nodes:[this],w=b[0],x=b[b.length-1];if(13==u){if(p==this.dom.value)this.editable.value&&!e.ctrlKey||l.isUrl(this.value)&&(window.open(this.value,"_blank"),v=!0);else if(p==this.dom.expand){var _=this._hasChilds();if(_){var E=e.ctrlKey;this._onExpand(E),p.focus(),v=!0}}}else if(68==u)m&&y&&(i.onDuplicate(b),v=!0);else if(69==u)m&&(this._onExpand(f),p.focus(),v=!0);else if(77==u&&y)m&&(this.showContextMenu(p),v=!0);else if(46==u&&y)m&&(i.onRemove(b),v=!0);else if(45==u&&y)m&&!f?(this._onInsertBefore(),v=!0):m&&f&&(this._onInsertAfter(),v=!0);else if(35==u){if(g){var C=this._lastNode();C&&C.focus(i.focusElement||this._getElementName(p)),v=!0}}else if(36==u){if(g){var S=this._firstNode();S&&S.focus(i.focusElement||this._getElementName(p)),v=!0}}else if(37==u){if(g&&!f){var N=this._previousElement(p);N&&this.focus(this._getElementName(N)),v=!0}else if(g&&f&&y){if(x.expanded){var j=x.getAppendDom();o=j?j.nextSibling:void 0}else{var T=x.getDom();o=T.nextSibling}o&&(n=i.getNodeFromTarget(o),r=o.nextSibling,D=i.getNodeFromTarget(r),n&&n instanceof d&&1!=x.parent.childs.length&&D&&D.parent&&(s=this.editor.getDomSelection(),a=x.nextSibling(),b.forEach(function(e){D.parent.moveBefore(e,D)}),this.focus(i.focusElement||this._getElementName(p)),this.editor._onAction("moveNodes",{nodes:b,oldBeforeNode:a,newBeforeNode:D,oldSelection:s,newSelection:this.editor.getDomSelection()})))}}else if(38==u)g&&!f?(t=this._previousNode(),t&&(this.editor.deselect(!0),t.focus(i.focusElement||this._getElementName(p))),v=!0):!g&&m&&f&&y?(t=this._previousNode(),t&&(h=this.editor.multiselection,h.start=h.start||this,h.end=t,c=this.editor._findTopLevelNodes(h.start,h.end),this.editor.select(c),t.focus("field")),v=!0):g&&f&&y&&(t=w._previousNode(),t&&t.parent&&(s=this.editor.getDomSelection(),a=x.nextSibling(),b.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(i.focusElement||this._getElementName(p)),this.editor._onAction("moveNodes",{nodes:b,oldBeforeNode:a,newBeforeNode:t,oldSelection:s,newSelection:this.editor.getDomSelection()})),v=!0);else if(39==u){if(g&&!f){var k=this._nextElement(p);k&&this.focus(this._getElementName(k)),v=!0}else if(g&&f&&y){T=w.getDom();var O=T.previousSibling;O&&(t=i.getNodeFromTarget(O))&&t.parent&&!t.isVisible()&&(s=this.editor.getDomSelection(),a=x.nextSibling(),b.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(i.focusElement||this._getElementName(p)),this.editor._onAction("moveNodes",{nodes:b,oldBeforeNode:a,newBeforeNode:t,oldSelection:s,newSelection:this.editor.getDomSelection()}))}}else if(40==u)if(g&&!f)n=this._nextNode(),n&&(this.editor.deselect(!0),n.focus(i.focusElement||this._getElementName(p))),v=!0;else if(!g&&m&&f&&y)n=this._nextNode(),n&&(h=this.editor.multiselection,h.start=h.start||this,h.end=n,c=this.editor._findTopLevelNodes(h.start,h.end),this.editor.select(c),n.focus("field")),v=!0;else if(g&&f&&y){n=x.expanded?x.append?x.append._nextNode():void 0:x._nextNode(),n&&!n.isVisible()&&(n=n.parent.showMore),n&&n instanceof d&&(n=x);var D=n&&(n._nextNode()||n.parent.append);D&&D.parent&&(s=this.editor.getDomSelection(),a=x.nextSibling(),b.forEach(function(e){D.parent.moveBefore(e,D)}),this.focus(i.focusElement||this._getElementName(p)),this.editor._onAction("moveNodes",{nodes:b,oldBeforeNode:a,newBeforeNode:D,oldSelection:s,newSelection:this.editor.getDomSelection()})),v=!0}v&&(e.preventDefault(),e.stopPropagation())},i.prototype._onExpand=function(e){if(e){var t=this.dom.tr.parentNode,n=t.parentNode,i=n.scrollTop;n.removeChild(t)}this.expanded?this.collapse(e):this.expand(e),e&&(n.appendChild(t),n.scrollTop=i)},i.onRemove=function(e){if(!Array.isArray(e))return i.onRemove([e]);if(e&&e.length>0){var t=e[0],n=t.parent,o=t.editor,r=t.getIndex();o.highlighter.unhighlight();var s=o.getDomSelection();i.blurNodes(e);var a=o.getDomSelection();e.forEach(function(e){e.parent._remove(e)}),o._onAction("removeNodes",{nodes:e.slice(0),parent:n,index:r,oldSelection:s,newSelection:a})}},i.onDuplicate=function(e){if(!Array.isArray(e))return i.onDuplicate([e]);if(e&&e.length>0){var t=e[e.length-1],n=t.parent,o=t.editor;o.deselect(o.multiselection.nodes);var r=o.getDomSelection(),s=t,a=e.map(function(e){var t=e.clone();return n.insertAfter(t,s),s=t,t});1===e.length?a[0].focus():o.select(a);var l=o.getDomSelection();o._onAction("duplicateNodes",{afterNode:t,nodes:a,parent:n,oldSelection:r,newSelection:l})}},i.prototype._onInsertBefore=function(e,t,n){var o=this.editor.getDomSelection(),r=new i(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:n});r.expand(!0),this.parent.insertBefore(r,this),this.editor.highlighter.unhighlight(),r.focus("field");var s=this.editor.getDomSelection();this.editor._onAction("insertBeforeNodes",{nodes:[r],beforeNode:this,parent:this.parent,oldSelection:o,newSelection:s})},i.prototype._onInsertAfter=function(e,t,n){var o=this.editor.getDomSelection(),r=new i(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:n});r.expand(!0),this.parent.insertAfter(r,this),this.editor.highlighter.unhighlight(),r.focus("field");var s=this.editor.getDomSelection();this.editor._onAction("insertAfterNodes",{nodes:[r],afterNode:this,parent:this.parent,oldSelection:o,newSelection:s})},i.prototype._onAppend=function(e,t,n){var o=this.editor.getDomSelection(),r=new i(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:n});r.expand(!0),this.parent.appendChild(r),this.editor.highlighter.unhighlight(),r.focus("field");var s=this.editor.getDomSelection();this.editor._onAction("appendNodes",{nodes:[r],parent:this.parent,oldSelection:o,newSelection:s})},i.prototype._onChangeType=function(e){var t=this.type;if(e!=t){var n=this.editor.getDomSelection();this.changeType(e);var i=this.editor.getDomSelection();this.editor._onAction("changeType",{node:this,oldType:t,newType:e,oldSelection:n,newSelection:i})}},i.prototype.sort=function(e){if(this._hasChilds()){var t="desc"==e?-1:1,n="array"==this.type?"value":"field";this.hideChilds();var i=this.childs,r=this.sortOrder;this.childs=this.childs.concat(),this.childs.sort(function(e,i){return t*o(e[n],i[n])}),this.sortOrder=1==t?"asc":"desc",this._updateDomIndexes(),this.editor._onAction("sort",{node:this,oldChilds:i,oldSort:r,newChilds:this.childs,newSort:this.sortOrder}),this.showChilds()}},i.prototype.getAppendDom=function(){return this.append||(this.append=new d(this.editor),this.append.setParent(this)),this.append.getDom()},i.prototype.getShowMoreDom=function(){return this.showMore||(this.showMore=new h(this.editor,this)),this.showMore.getDom()},i.getNodeFromTarget=function(e){for(;e;){if(e.node)return e.node;e=e.parentNode}},i.blurNodes=function(e){if(!Array.isArray(e))return void i.blurNodes([e]);var t=e[0],n=t.parent,o=t.getIndex();n.childs[o+e.length]?n.childs[o+e.length].focus():n.childs[o-1]?n.childs[o-1].focus():n.focus()},i.prototype.nextSibling=function(){var e=this.parent.childs.indexOf(this);return this.parent.childs[e+1]||this.parent.append},i.prototype._previousNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var n=t;do{n=n.previousSibling,e=i.getNodeFromTarget(n)}while(n&&e&&e instanceof d&&!e.isVisible())}return e},i.prototype._nextNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var n=t;do{n=n.nextSibling,e=i.getNodeFromTarget(n)}while(n&&e&&e instanceof d&&!e.isVisible())}return e},i.prototype._firstNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var n=t.parentNode.firstChild;e=i.getNodeFromTarget(n)}return e},i.prototype._lastNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var n=t.parentNode.lastChild;for(e=i.getNodeFromTarget(n);n&&e&&!e.isVisible();)n=n.previousSibling,e=i.getNodeFromTarget(n)}return e},i.prototype._previousElement=function(e){var t=this.dom;switch(e){case t.value:if(this.fieldEditable)return t.field;case t.field:if(this._hasChilds())return t.expand;case t.expand:return t.menu;case t.menu:if(t.drag)return t.drag;default:return null}},i.prototype._nextElement=function(e){var t=this.dom;switch(e){case t.drag:return t.menu;case t.menu:if(this._hasChilds())return t.expand;case t.expand:if(this.fieldEditable)return t.field;case t.field:if(!this._hasChilds())return t.value;default:return null}},i.prototype._getElementName=function(e){var t=this.dom;for(var n in t)if(t.hasOwnProperty(n)&&t[n]==e)return n;return null},i.prototype._hasChilds=function(){return"array"==this.type||"object"==this.type},i.TYPE_TITLES={auto:c("autoType"),object:c("objectType"),array:c("arrayType"),string:c("stringType")},i.prototype.addTemplates=function(e,t){var n=this,i=n.editor.options.templates;if(null!=i){i.length&&e.push({type:"separator"});var o=function(e,t){n._onAppend(e,t)},r=function(e,t){n._onInsertBefore(e,t)};i.forEach(function(n){e.push({text:n.text,className:n.className||"jsoneditor-type-object",title:n.title,click:t?o.bind(this,n.field,n.value):r.bind(this,n.field,n.value)})})}},i.prototype.showContextMenu=function(e,t){var n=this,o=i.TYPE_TITLES,s=[];if(this.editable.value&&s.push({text:c("type"),title:c("typeTitle"),className:"jsoneditor-type-"+this.type,submenu:[{text:c("auto"),className:"jsoneditor-type-auto"+("auto"==this.type?" jsoneditor-selected":""),title:o.auto,click:function(){n._onChangeType("auto")}},{text:c("array"),className:"jsoneditor-type-array"+("array"==this.type?" jsoneditor-selected":""),title:o.array,click:function(){n._onChangeType("array")}},{text:c("object"),className:"jsoneditor-type-object"+("object"==this.type?" jsoneditor-selected":""),title:o.object,click:function(){n._onChangeType("object")}},{text:c("string"),className:"jsoneditor-type-string"+("string"==this.type?" jsoneditor-selected":""),title:o.string,click:function(){n._onChangeType("string")}}]}),this._hasChilds()){var a="asc"==this.sortOrder?"desc":"asc";s.push({text:c("sort"),title:c("sortTitle")+this.type,className:"jsoneditor-sort-"+a,click:function(){n.sort(a)},submenu:[{text:c("ascending"),className:"jsoneditor-sort-asc",title:c("ascendingTitle",{type:this.type}),click:function(){n.sort("asc")}},{text:c("descending"),className:"jsoneditor-sort-desc",title:c("descendingTitle",{type:this.type}),click:function(){n.sort("desc")}}]})}if(this.parent&&this.parent._hasChilds()){s.length&&s.push({type:"separator"});var l=n.parent.childs;if(n==l[l.length-1]){var d=[{text:c("auto"),className:"jsoneditor-type-auto",title:o.auto,click:function(){n._onAppend("","","auto")}},{text:c("array"),className:"jsoneditor-type-array",title:o.array,click:function(){n._onAppend("",[])}},{text:c("object"),className:"jsoneditor-type-object",title:o.object,click:function(){n._onAppend("",{})}},{text:c("string"),className:"jsoneditor-type-string",title:o.string,click:function(){n._onAppend("","","string")}}];n.addTemplates(d,!0),s.push({text:c("appendText"),title:c("appendTitle"),submenuTitle:c("appendSubmenuTitle"),className:"jsoneditor-append",click:function(){n._onAppend("","","auto")},submenu:d})}var h=[{text:c("auto"),className:"jsoneditor-type-auto",title:o.auto,click:function(){n._onInsertBefore("","","auto")}},{text:c("array"),className:"jsoneditor-type-array",title:o.array,click:function(){n._onInsertBefore("",[])}},{text:c("object"),className:"jsoneditor-type-object",title:o.object,click:function(){n._onInsertBefore("",{})}},{text:c("string"),className:"jsoneditor-type-string",title:o.string,click:function(){n._onInsertBefore("","","string")}}];n.addTemplates(h,!1),s.push({text:c("insert"),title:c("insertTitle"),submenuTitle:c("insertSub"),className:"jsoneditor-insert",click:function(){n._onInsertBefore("","","auto")},submenu:h}),this.editable.field&&(s.push({text:c("duplicateText"),title:c("duplicateField"),className:"jsoneditor-duplicate",click:function(){i.onDuplicate(n)}}),s.push({text:c("removeText"),title:c("removeField"),className:"jsoneditor-remove",click:function(){i.onRemove(n)}}))}new r(s,{close:t}).show(e,this.editor.content)},i.prototype._getType=function(e){return e instanceof Array?"array":e instanceof Object?"object":"string"==typeof e&&"string"!=typeof this._stringCast(e)?"string":"auto"},i.prototype._stringCast=function(e){var t=e.toLowerCase(),n=Number(e),i=parseFloat(e);return""==e?"":"null"==t?null:"true"==t||"false"!=t&&(isNaN(n)||isNaN(i)?e:n)},i.prototype._escapeHTML=function(e){if("string"!=typeof e)return String(e);var t=String(e).replace(/&/g,"&").replace(//g,">").replace(/ /g,"  ").replace(/^ /," ").replace(/ $/," "),n=JSON.stringify(t),i=n.substring(1,n.length-1);return!0===this.editor.options.escapeUnicode&&(i=l.escapeUnicodeChars(i)),i},i.prototype._unescapeHTML=function(e){var t='"'+this._escapeJSON(e)+'"';return l.parse(t).replace(/</g,"<").replace(/>/g,">").replace(/ |\u00A0/g," ").replace(/&/g,"&")},i.prototype._escapeJSON=function(e){for(var t="",n=0;nf)return 1}for(var g=0,v=Math.max(u.length,p.length);go)return 1}return 0}},function(e,t,n){"use strict";function i(e){function t(e){this.editor=e,this.dom={}}return t.prototype=new e,t.prototype.getDom=function(){var e=this.dom;if(e.tr)return e.tr;this._updateEditability();var t=document.createElement("tr");if(t.className="jsoneditor-append",t.node=this,e.tr=t,"tree"===this.editor.options.mode){e.tdDrag=document.createElement("td");var n=document.createElement("td");e.tdMenu=n;var i=document.createElement("button");i.type="button",i.className="jsoneditor-contextmenu",i.title="Click to open the actions menu (Ctrl+M)",e.menu=i,n.appendChild(e.menu)}var o=document.createElement("td"),r=document.createElement("div");return r.innerHTML="("+s("empty")+")",r.className="jsoneditor-readonly",o.appendChild(r),e.td=o,e.text=r,this.updateDom(),t},t.prototype.updateDom=function(e){var t=this.dom,n=t.td;n&&(n.style.paddingLeft=24*this.getLevel()+26+"px");var i=t.text;i&&(i.innerHTML="("+s("empty")+" "+this.parent.type+")");var o=t.tr;this.isVisible()?t.tr.firstChild||(t.tdDrag&&o.appendChild(t.tdDrag),t.tdMenu&&o.appendChild(t.tdMenu),o.appendChild(n)):t.tr.firstChild&&(t.tdDrag&&o.removeChild(t.tdDrag),t.tdMenu&&o.removeChild(t.tdMenu),o.removeChild(n))},t.prototype.isVisible=function(){return 0==this.parent.childs.length},t.prototype.showContextMenu=function(t,n){var i=this,o=e.TYPE_TITLES,a=[{text:s("auto"),className:"jsoneditor-type-auto",title:o.auto,click:function(){i._onAppend("","","auto")}},{text:s("array"),className:"jsoneditor-type-array",title:o.array,click:function(){i._onAppend("",[])}},{text:s("object"),className:"jsoneditor-type-object",title:o.object,click:function(){i._onAppend("",{})}},{text:s("string"),className:"jsoneditor-type-string",title:o.string,click:function(){i._onAppend("","","string")}}];i.addTemplates(a,!0);var l=[{text:s("appendText"),title:s("appendTitleAuto"),submenuTitle:s("appendSubmenuTitle"),className:"jsoneditor-insert",click:function(){i._onAppend("","","auto")},submenu:a}];new r(l,{close:n}).show(t,this.editor.content)},t.prototype.onEvent=function(e){var t=e.type,n=e.target||e.srcElement,i=this.dom;if(n==i.menu&&("mouseover"==t?this.editor.highlighter.highlight(this.parent):"mouseout"==t&&this.editor.highlighter.unhighlight()),"click"==t&&n==i.menu){var r=this.editor.highlighter;r.highlight(this.parent),r.lock(),o.addClassName(i.menu,"jsoneditor-selected"),this.showContextMenu(i.menu,function(){o.removeClassName(i.menu,"jsoneditor-selected"),r.unlock(),r.unhighlight()})}"keydown"==t&&this.onKeyDown(e)},t}var o=n(4),r=n(7),s=n(8).translate;e.exports=i},function(e,t,n){"use strict";function i(e){function t(e,t){this.editor=e,this.parent=t,this.dom={}}return t.prototype=new e,t.prototype.getDom=function(){if(this.dom.tr)return this.dom.tr;if(this._updateEditability(),!this.dom.tr){var e=this,t=this.parent,n=document.createElement("a");n.appendChild(document.createTextNode(o("showMore"))),n.href="#",n.onclick=function(n){return t.visibleChilds=Math.floor(t.visibleChilds/t.MAX_VISIBLE_CHILDS+1)*t.MAX_VISIBLE_CHILDS,e.updateDom(),t.showChilds(),n.preventDefault(),!1};var i=document.createElement("a");i.appendChild(document.createTextNode(o("showAll"))),i.href="#",i.onclick=function(n){return t.visibleChilds=1/0,e.updateDom(),t.showChilds(),n.preventDefault(),!1};var r=document.createElement("div"),s=document.createTextNode(this._getShowMoreText());r.className="jsoneditor-show-more",r.appendChild(s),r.appendChild(n),r.appendChild(document.createTextNode(". ")),r.appendChild(i),r.appendChild(document.createTextNode(". "));var a=document.createElement("td");a.appendChild(r);var l=document.createElement("tr");l.appendChild(document.createElement("td")),l.appendChild(document.createElement("td")),l.appendChild(a),l.className="jsoneditor-show-more",this.dom.tr=l,this.dom.moreContents=r,this.dom.moreText=s}return this.updateDom(),this.dom.tr},t.prototype.updateDom=function(e){if(this.isVisible()){if(this.dom.tr.node=this.parent.childs[this.parent.visibleChilds],!this.dom.tr.parentNode){var t=this.parent._getNextTr();t&&t.parentNode.insertBefore(this.dom.tr,t)}this.dom.moreText.nodeValue=this._getShowMoreText(),this.dom.moreContents.style.marginLeft=24*(this.getLevel()+1)+"px"}else this.dom.tr&&this.dom.tr.parentNode&&this.dom.tr.parentNode.removeChild(this.dom.tr)},t.prototype._getShowMoreText=function(){return o("showMoreStatus",{visibleChilds:this.parent.visibleChilds,totalChilds:this.parent.childs.length})+" "},t.prototype.isVisible=function(){return this.parent.expanded&&this.parent.childs.length>this.parent.visibleChilds},t.prototype.onEvent=function(e){"keydown"===e.type&&this.onKeyDown(e)},t}var o=n(8).translate;e.exports=i},function(e,t,n){"use strict";function i(e,t,n,i){for(var r={code:{text:"Code",title:"Switch to code highlighter",click:function(){i("code")}},form:{text:"Form",title:"Switch to form editor",click:function(){i("form")}},text:{text:"Text",title:"Switch to plain text editor",click:function(){i("text")}},tree:{text:"Tree",title:"Switch to tree editor",click:function(){i("tree")}},view:{text:"View",title:"Switch to tree view",click:function(){i("view")}}},s=[],a=0;a/g,">"),a.getBoundingClientRect().right}e=e||{},e.confirmKeys=e.confirmKeys||[39,35,9],e.caseSensitive=e.caseSensitive||!1;var i="",o="",r=document.createElement("div");r.style.position="relative",r.style.outline="0",r.style.border="0",r.style.margin="0",r.style.padding="0";var s=document.createElement("div");s.className="autocomplete dropdown",s.style.position="absolute",s.style.visibility="hidden";var a,l,c={onArrowDown:function(){},onArrowUp:function(){},onEnter:function(){},onTab:function(){},startFrom:0,options:[],element:null,elementHint:null,elementStyle:null,wrapper:r,show:function(e,t,n){this.startFrom=t,this.wrapper.remove(),this.elementHint&&(this.elementHint.remove(),this.elementHint=null),""==i&&(i=window.getComputedStyle(e).getPropertyValue("font-size")),""==o&&(o=window.getComputedStyle(e).getPropertyValue("font-family"));e.getBoundingClientRect().right,e.getBoundingClientRect().left;s.style.marginLeft="0",s.style.marginTop=e.getBoundingClientRect().height+"px",this.options=n,this.element!=e&&(this.element=e,this.elementStyle={zIndex:this.element.style.zIndex,position:this.element.style.position,backgroundColor:this.element.style.backgroundColor,borderColor:this.element.style.borderColor}),this.element.style.zIndex=3,this.element.style.position="relative",this.element.style.backgroundColor="transparent",this.element.style.borderColor="transparent",this.elementHint=e.cloneNode(),this.elementHint.className="autocomplete hint",this.elementHint.style.zIndex=2,this.elementHint.style.position="absolute",this.elementHint.onfocus=function(){this.element.focus()}.bind(this),this.element.addEventListener&&(this.element.removeEventListener("keydown",h),this.element.addEventListener("keydown",h,!1),this.element.removeEventListener("blur",u),this.element.addEventListener("blur",u,!1)),r.appendChild(this.elementHint),r.appendChild(s),e.parentElement.appendChild(r),this.repaint(e)},setText:function(e){this.element.innerText=e},getText:function(){return this.element.innerText},hideDropDown:function(){this.wrapper.remove(),this.elementHint&&(this.elementHint.remove(),this.elementHint=null,d.hide(),this.element.style.zIndex=this.elementStyle.zIndex,this.element.style.position=this.elementStyle.position,this.element.style.backgroundColor=this.elementStyle.backgroundColor,this.element.style.borderColor=this.elementStyle.borderColor)},repaint:function(t){var i=t.innerText;i=i.replace("\n","");var o=(this.startFrom,this.options,this.options.length),r=i.substring(this.startFrom);l=i.substring(0,this.startFrom);for(var a=0;a"+r[m].substring(n.length)+"",i.push(f),t.appendChild(f)}0!==i.length&&(1===i.length&&(n.toLowerCase()===i[0].__hint.toLowerCase()&&!e.caseSensitive||n===i[0].__hint&&e.caseSensitive)||i.length<2||(c.highlight(0),u>3*p?(t.style.maxHeight=u+"px",t.style.top="",t.style.bottom="100%"):(t.style.top="100%",t.style.bottom="",t.style.maxHeight=p+"px"),t.style.visibility="visible"))},highlight:function(e){-1!=r&&i[r]&&(i[r].className="item"),i[e].className="item hover",r=e},move:function(e){return"hidden"===t.style.visibility?"":o+e===-1||o+e===i.length?i[o].__hint:(o+=e,c.highlight(o),i[o].__hint)},onmouseselection:function(){}};return c}(s,c),h=function(n){n=n||window.event;var i=n.keyCode;if(null!=this.elementHint&&33!=i&&34!=i){if(27==i)return c.hideDropDown(),c.element.focus(),n.preventDefault(),void n.stopPropagation();var o=this.element.innerText;o=o.replace("\n","");this.startFrom;if(e.confirmKeys.indexOf(i)>=0)return 9==i&&0==this.elementHint.innerText.length&&c.onTab(),void(this.elementHint.innerText.length>0&&this.element.innerText!=this.elementHint.realInnerText&&(this.element.innerText=this.elementHint.realInnerText,c.hideDropDown(),t(this.element),9==i&&(c.element.focus(),n.preventDefault(),n.stopPropagation())));if(13!=i){if(40==i){var r=o.substring(this.startFrom),a=d.move(1);return""==a&&c.onArrowDown(),this.elementHint.innerText=l+r+a.substring(r.length),this.elementHint.realInnerText=l+a,n.preventDefault(),void n.stopPropagation()}if(38==i){var r=o.substring(this.startFrom),a=d.move(-1);return""==a&&c.onArrowUp(),this.elementHint.innerText=l+r+a.substring(r.length),this.elementHint.realInnerText=l+a,n.preventDefault(),void n.stopPropagation()}}else if(0==this.elementHint.innerText.length)c.onEnter();else{var h="hidden"==s.style.visibility;if(d.hide(),h)return c.hideDropDown(),c.element.focus(),void c.onEnter();this.element.innerText=this.elementHint.realInnerText,c.hideDropDown(),t(this.element),n.preventDefault(),n.stopPropagation()}}}.bind(c),u=function(e){c.hideDropDown()}.bind(c);return d.onmouseselection=function(e,n){n.element.innerText=n.elementHint.innerText=l+e,n.hideDropDown(),window.setTimeout(function(){n.element.focus(),t(n.element)},1)},c}e.exports=n},function(e,t,n){"use strict";var i=n(17),o=n(14),r=n(4),s={};s.create=function(e,t){t=t||{},void 0===t.statusBar&&(t.statusBar=!0),this.options=t,t.indentation?this.indentation=Number(t.indentation):this.indentation=2;var s=t.ace?t.ace:i;if(this.mode="code"==t.mode?"code":"text","code"==this.mode&&void 0===s&&(this.mode="text",console.warn("Failed to load Ace editor, falling back to plain text mode. Please use a JSONEditor bundle including Ace, or pass Ace as via the configuration option `ace`.")),this.theme=t.theme||"ace/theme/jsoneditor","ace/theme/jsoneditor"===this.theme&&s)try{n(21)}catch(e){console.error(e)}t.onTextSelectionChange&&this.onTextSelectionChange(t.onTextSelectionChange);var a=this;this.container=e,this.dom={},this.aceEditor=void 0,this.textarea=void 0,this.validateSchema=null,this._debouncedValidate=r.debounce(this.validate.bind(this),this.DEBOUNCE_INTERVAL),this.width=e.clientWidth,this.height=e.clientHeight,this.frame=document.createElement("div"),this.frame.className="jsoneditor jsoneditor-mode-"+this.options.mode,this.frame.onclick=function(e){e.preventDefault()},this.frame.onkeydown=function(e){a._onKeyDown(e)},this.menu=document.createElement("div"),this.menu.className="jsoneditor-menu",this.frame.appendChild(this.menu);var l=document.createElement("button");l.type="button",l.className="jsoneditor-format",l.title="Format JSON data, with proper indentation and line feeds (Ctrl+\\)",this.menu.appendChild(l),l.onclick=function(){try{a.format(),a._onChange()}catch(e){a._onError(e)}};var c=document.createElement("button");c.type="button",c.className="jsoneditor-compact",c.title="Compact JSON data, remove all whitespaces (Ctrl+Shift+\\)",this.menu.appendChild(c),c.onclick=function(){try{a.compact(),a._onChange()}catch(e){a._onError(e)}};var d=document.createElement("button");d.type="button",d.className="jsoneditor-repair",d.title="Repair JSON: fix quotes and escape characters, remove comments and JSONP notation, turn JavaScript objects into JSON.",this.menu.appendChild(d),d.onclick=function(){try{a.repair(),a._onChange()}catch(e){a._onError(e)}},this.options&&this.options.modes&&this.options.modes.length&&(this.modeSwitcher=new o(this.menu,this.options.modes,this.options.mode,function(e){a.setMode(e),a.modeSwitcher.focus()}));var h={},u=this.options.onEditable&&typeof("function"===this.options.onEditable)&&!this.options.onEditable(h);if(this.content=document.createElement("div"),this.content.className="jsoneditor-outer",this.frame.appendChild(this.content),this.container.appendChild(this.frame),"code"==this.mode){this.editorDom=document.createElement("div"),this.editorDom.style.height="100%",this.editorDom.style.width="100%",this.content.appendChild(this.editorDom);var p=s.edit(this.editorDom);p.$blockScrolling=1/0,p.setTheme(this.theme),p.setOptions({readOnly:u}),p.setShowPrintMargin(!1),p.setFontSize(13),p.getSession().setMode("ace/mode/json"),p.getSession().setTabSize(this.indentation),p.getSession().setUseSoftTabs(!0),p.getSession().setUseWrapMode(!0),p.commands.bindKey("Ctrl-L",null),p.commands.bindKey("Command-L",null),this.aceEditor=p,this.hasOwnProperty("editor")||Object.defineProperty(this,"editor",{get:function(){return console.warn('Property "editor" has been renamed to "aceEditor".'),a.aceEditor},set:function(e){console.warn('Property "editor" has been renamed to "aceEditor".'),a.aceEditor=e}});var m=document.createElement("a");m.appendChild(document.createTextNode("powered by ace")),m.href="http://ace.ajax.org",m.target="_blank",m.className="jsoneditor-poweredBy",m.onclick=function(){window.open(m.href,m.target)},this.menu.appendChild(m),p.on("change",this._onChange.bind(this)),p.on("changeSelection",this._onSelect.bind(this))}else{var f=document.createElement("textarea");f.className="jsoneditor-text",f.spellcheck=!1,this.content.appendChild(f),this.textarea=f,this.textarea.readOnly=u,null===this.textarea.oninput?this.textarea.oninput=this._onChange.bind(this):this.textarea.onchange=this._onChange.bind(this),f.onselect=this._onSelect.bind(this),f.onmousedown=this._onMouseDown.bind(this),f.onblur=this._onBlur.bind(this)}var g=document.createElement("div");if(g.className="validation-errors-container",this.dom.validationErrorsContainer=g,this.frame.appendChild(g),t.statusBar){r.addClassName(this.content,"has-status-bar"),this.curserInfoElements={};var v=document.createElement("div");this.dom.statusBar=v,v.className="jsoneditor-statusbar",this.frame.appendChild(v);var y=document.createElement("span");y.className="jsoneditor-curserinfo-label",y.innerText="Ln:";var b=document.createElement("span");b.className="jsoneditor-curserinfo-val",b.innerText="1",v.appendChild(y),v.appendChild(b);var w=document.createElement("span");w.className="jsoneditor-curserinfo-label",w.innerText="Col:";var x=document.createElement("span");x.className="jsoneditor-curserinfo-val",x.innerText="1",v.appendChild(w),v.appendChild(x),this.curserInfoElements.colVal=x,this.curserInfoElements.lnVal=b;var _=document.createElement("span");_.className="jsoneditor-curserinfo-label",_.innerText="characters selected",_.style.display="none";var E=document.createElement("span");E.className="jsoneditor-curserinfo-count",E.innerText="0",E.style.display="none",this.curserInfoElements.countLabel=_,this.curserInfoElements.countVal=E,v.appendChild(E),v.appendChild(_)}this.setSchema(this.options.schema,this.options.schemaRefs)},s._onChange=function(){if(this._debouncedValidate(),this.options.onChange)try{this.options.onChange()}catch(e){console.error("Error in onChange callback: ",e)}},s._onSelect=function(){this._updateCursorInfo(),this._emitSelectionChange()},s._onKeyDown=function(e){var t=e.which||e.keyCode,n=!1;220==t&&e.ctrlKey&&(e.shiftKey?(this.compact(),this._onChange()):(this.format(),this._onChange()),n=!0),n&&(e.preventDefault(),e.stopPropagation()),this._updateCursorInfo(),this._emitSelectionChange()},s._onMouseDown=function(e){this._updateCursorInfo(),this._emitSelectionChange()},s._onBlur=function(e){this._updateCursorInfo(),this._emitSelectionChange()},s._updateCursorInfo=function(){function e(){o.curserInfoElements.countVal.innerText!==i&&(o.curserInfoElements.countVal.innerText=i,o.curserInfoElements.countVal.style.display=i?"inline":"none",o.curserInfoElements.countLabel.style.display=i?"inline":"none"),o.curserInfoElements.lnVal.innerText=t,o.curserInfoElements.colVal.innerText=n}var t,n,i,o=this;if(this.textarea)setTimeout(function(){var s=r.getInputSelection(o.textarea);s.startIndex!==s.endIndex&&(i=s.endIndex-s.startIndex),i&&o.cursorInfo&&o.cursorInfo.line===s.end.row&&o.cursorInfo.column===s.end.column?(t=s.start.row,n=s.start.column):(t=s.end.row,n=s.end.column),o.cursorInfo={line:t,column:n,count:i},o.options.statusBar&&e()},0);else if(this.aceEditor&&this.curserInfoElements){var s=this.aceEditor.getCursorPosition(),a=this.aceEditor.getSelectedText();t=s.row+1,n=s.column+1,i=a.length,o.cursorInfo={line:t,column:n,count:i},this.options.statusBar&&e()}},s._emitSelectionChange=function(){if(this._selectionChangedHandler){var e=this.getTextSelection();this._selectionChangedHandler(e.start,e.end,e.text)}},s.destroy=function(){this.aceEditor&&(this.aceEditor.destroy(),this.aceEditor=null),this.frame&&this.container&&this.frame.parentNode==this.container&&this.container.removeChild(this.frame),this.modeSwitcher&&(this.modeSwitcher.destroy(),this.modeSwitcher=null),this.textarea=null,this._debouncedValidate=null},s.compact=function(){var e=this.get(),t=JSON.stringify(e);this.setText(t)},s.format=function(){var e=this.get(),t=JSON.stringify(e,null,this.indentation);this.setText(t)},s.repair=function(){var e=this.getText(),t=r.sanitize(e);this.setText(t)},s.focus=function(){this.textarea&&this.textarea.focus(),this.aceEditor&&this.aceEditor.focus()},s.resize=function(){if(this.aceEditor){this.aceEditor.resize(!1)}},s.set=function(e){this.setText(JSON.stringify(e,null,this.indentation))},s.get=function(){var e,t=this.getText();try{e=r.parse(t)}catch(n){t=r.sanitize(t),e=r.parse(t)}return e},s.getText=function(){return this.textarea?this.textarea.value:this.aceEditor?this.aceEditor.getValue():""},s.setText=function(e){var t;if(t=!0===this.options.escapeUnicode?r.escapeUnicodeChars(e):e,this.textarea&&(this.textarea.value=t),this.aceEditor){var n=this.options.onChange;this.options.onChange=null,this.aceEditor.setValue(t,-1),this.options.onChange=n}this.validate()},s.validate=function(){this.dom.validationErrors&&(this.dom.validationErrors.parentNode.removeChild(this.dom.validationErrors),this.dom.validationErrors=null,this.content.style.marginBottom="",this.content.style.paddingBottom="");var e,t=!1,n=[];try{e=this.get(),t=!0}catch(e){}if(t&&this.validateSchema){this.validateSchema(e)||(n=this.validateSchema.errors.map(function(e){return r.improveSchemaError(e)}))}if(n.length>0){if(n.length>3){n=n.slice(0,3);var i=this.validateSchema.errors.length-3;n.push("("+i+" more errors...)")}var o=document.createElement("div");o.innerHTML=''+n.map(function(e){return''+("string"==typeof e?'":"")+""}).join("")+"
'+e+"
"+e.dataPath+""+e.message+"
",this.dom.validationErrors=o,this.dom.validationErrorsContainer.appendChild(o);var s=o.clientHeight+(this.dom.statusBar?this.dom.statusBar.clientHeight:0);this.content.style.marginBottom=-s+"px",this.content.style.paddingBottom=s+"px"}if(this.aceEditor){this.aceEditor.resize(!1)}},s.getTextSelection=function(){var e={};if(this.textarea){var t=r.getInputSelection(this.textarea);return this.cursorInfo&&this.cursorInfo.line===t.end.row&&this.cursorInfo.column===t.end.column?(e.start=t.end,e.end=t.start):e=t,{start:e.start,end:e.end,text:this.textarea.value.substring(t.startIndex,t.endIndex)}}if(this.aceEditor){var n=this.aceEditor.getSelection(),i=this.aceEditor.getSelectedText(),o=n.getRange(),s=n.getSelectionLead();return s.row===o.end.row&&s.column===o.end.column?e=o:(e.start=o.end,e.end=o.start),{start:{row:e.start.row+1,column:e.start.column+1},end:{row:e.end.row+1,column:e.end.column+1},text:i}}},s.onTextSelectionChange=function(e){"function"==typeof e&&(this._selectionChangedHandler=r.debounce(e,this.DEBOUNCE_INTERVAL))},s.setTextSelection=function(e,t){if(e&&t)if(this.textarea){var n=r.getIndexForPosition(this.textarea,e.row,e.column),i=r.getIndexForPosition(this.textarea,t.row,t.column);if(n>-1&&i>-1)if(this.textarea.setSelectionRange)this.textarea.focus(),this.textarea.setSelectionRange(n,i);else if(this.textarea.createTextRange){var o=this.textarea.createTextRange();o.collapse(!0),o.moveEnd("character",i),o.moveStart("character",n),o.select()}}else if(this.aceEditor){var o={start:{row:e.row-1,column:e.column-1},end:{row:t.row-1,column:t.column-1}};this.aceEditor.selection.setRange(o)}},e.exports=[{mode:"text",mixin:s,data:"text",load:s.format},{mode:"code",mixin:s,data:"text",load:s.format}]},function(e,t,n){var i;if(window.ace)i=window.ace;else try{i=n(!function(){var e=new Error('Cannot find module "brace"');throw e.code="MODULE_NOT_FOUND",e}()),n(18),n(20)}catch(e){}e.exports=i},function(e,t,n){ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var i=e("../lib/oop"),o=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"text",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]}};i.inherits(r,o),t.JsonHighlightRules=r}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var i=e("../range").Range,o=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t),o=n.match(/^(\s*\})/);if(!o)return 0;var r=o[1].length,s=e.findMatchingBracket({row:t,column:r});if(!s||s.row==t)return 0;var a=this.$getIndent(e.getLine(s.row));e.replace(new i(t,0,t,r-1),a)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(o.prototype),t.MatchingBraceOutdent=o}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var i=e("../../lib/oop"),o=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};i.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var i=e.getLine(n);if(this.singleLineBlockCommentRe.test(i)&&!this.startRegionRe.test(i)&&!this.tripleStarBlockCommentRe.test(i))return"";var o=this._getFoldWidgetBase(e,t,n);return!o&&this.startRegionRe.test(i)?"start":o},this.getFoldWidgetRange=function(e,t,n,i){var o=e.getLine(n);if(this.startRegionRe.test(o))return this.getCommentRegionBlock(e,o,n);var r=o.match(this.foldingStartMarker);if(r){var s=r.index;if(r[1])return this.openingBracketBlock(e,r[1],n,s);var a=e.getCommentFoldRange(n,s+r[0].length,1);return a&&!a.isMultiLine()&&(i?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}if("markbegin"!==t){var r=o.match(this.foldingStopMarker);if(r){var s=r.index+r[0].length;return r[1]?this.closingBracketBlock(e,r[1],n,s):e.getCommentFoldRange(n,s,-1)}}},this.getSectionRange=function(e,t){ -var n=e.getLine(t),i=n.search(/\S/),r=t,s=n.length;t+=1;for(var a=t,l=e.getLength();++tc)break;var d=this.getFoldWidgetRange(e,"all",t);if(d){if(d.start.row<=r)break;if(d.isMultiLine())t=d.end.row;else if(i==c)break}a=t}}return new o(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var i=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new o(s,i,d,t.length)}}.call(s.prototype)}),ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/worker/worker_client"],function(e,t,i){"use strict";var o=e("../lib/oop"),r=e("./text").Mode,s=e("./json_highlight_rules").JsonHighlightRules,a=e("./matching_brace_outdent").MatchingBraceOutdent,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,d=e("../worker/worker_client").WorkerClient,h=function(){this.HighlightRules=s,this.$outdent=new a,this.$behaviour=new l,this.foldingRules=new c};o.inherits(h,r),function(){this.getNextLineIndent=function(e,t,n){var i=this.$getIndent(t);if("start"==e){t.match(/^.*[\{\(\[]\s*$/)&&(i+=n)}return i},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new d(["ace"],n(19),"JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/json"}.call(h.prototype),t.Mode=h})},function(e,t){e.exports.id="ace/mode/json_worker",e.exports.src='"no use strict";!function(window){function resolveModuleId(id,paths){for(var testPath=id,tail="";testPath;){var alias=paths[testPath];if("string"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\/*$/,"/")+(tail||alias.main||alias.name);if(alias===!1)return"";var i=testPath.lastIndexOf("/");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:"error",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf("!")){var chunks=moduleName.split("!");return window.normalizeModule(parentId,chunks[0])+"!"+window.normalizeModule(parentId,chunks[1])}if("."==moduleName.charAt(0)){var base=parentId.split("/").slice(0,-1).join("/");for(moduleName=(base?base+"/":"")+moduleName;-1!==moduleName.indexOf(".")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\.\\//,"").replace(/\\/\\.\\//,"/").replace(/[^\\/]+\\/\\.\\.\\//,"")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error("worker.js acequire() accepts only (parentId, id) as arguments");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log("unable to load "+id);var path=resolveModuleId(id,window.acequire.tlns);return".js"!=path.slice(-3)&&(path+=".js"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,"string"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),"function"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=["require","exports","module"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case"require":return req;case"exports":return module.exports;case"module":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire("ace/lib/event_emitter").EventEmitter,oop=window.acequire("ace/lib/oop"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:"call",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:"event",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error("Unknown command:"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire("ace/lib/es5-shim"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}}(this),ace.define("ace/lib/oop",["require","exports","module"],function(acequire,exports){"use strict";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define("ace/range",["require","exports","module"],function(acequire,exports){"use strict";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){"object"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){"object"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define("ace/apply_delta",["require","exports","module"],function(acequire,exports){"use strict";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||"";switch(delta.action){case"insert":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case"remove":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(acequire,exports){"use strict";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){"object"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?"unshift":"push"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),EventEmitter=acequire("./lib/event_emitter").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.columnthis.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal("change",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),applyDelta=acequire("./apply_delta").applyDelta,EventEmitter=acequire("./lib/event_emitter").EventEmitter,Range=acequire("./range").Range,Anchor=acequire("./anchor").Anchor,Document=function(textOrLines){this.$lines=[""],0===textOrLines.length?this.$lines=[""]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0==="aaa".split(/a/).length?function(text){return text.replace(/\\r\\n|\\r/g,"\\n").split("\\n")}:function(text){return text.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=match?match[1]:"\\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\\r\\n";case"unix":return"\\n";default:return this.$autoNewLine||"\\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return"\\r\\n"==text||"\\r"==text||"\\n"==text},this.getLine=function(row){return this.$lines[row]||""},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||"").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, [\'\', \'\']) instead."),this.insertMergedLines(position,["",""])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:"insert",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([""]),column=0):(lines=[""].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:"insert",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:"remove",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:"remove",lines:["",""]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert="insert"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal("change",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(""),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:"insert"==delta.action?"remove":"insert",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define("ace/lib/lang",["require","exports","module"],function(acequire,exports){"use strict";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split("").reverse().join("")},exports.stringRepeat=function(string,count){for(var result="";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\s\\s*/,trimEndRegexp=/\\s\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,"")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,"")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&"object"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if("object"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if("[object Object]"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,"\\\\$1")},exports.escapeHTML=function(str){return str.replace(/&/g,"&").replace(/"/g,""").replace(/\'/g,"'").replace(/i;i+=2){if(Array.isArray(data[i+1]))var d={action:"insert",start:data[i],lines:data[i+1]};else var d={action:"remove",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define("ace/mode/json/json_parse",["require","exports","module"],function(){"use strict";var at,ch,text,value,escapee={\'"\':\'"\',"\\\\":"\\\\","/":"/",b:"\\b",f:"\\f",n:"\\n",r:"\\r",t:"\t"},error=function(m){throw{name:"SyntaxError",message:m,at:at,text:text}},next=function(c){return c&&c!==ch&&error("Expected \'"+c+"\' instead of \'"+ch+"\'"),ch=text.charAt(at),at+=1,ch},number=function(){var number,string="";for("-"===ch&&(string="-",next("-"));ch>="0"&&"9">=ch;)string+=ch,next();if("."===ch)for(string+=".";next()&&ch>="0"&&"9">=ch;)string+=ch;if("e"===ch||"E"===ch)for(string+=ch,next(),("-"===ch||"+"===ch)&&(string+=ch,next());ch>="0"&&"9">=ch;)string+=ch,next();return number=+string,isNaN(number)?(error("Bad number"),void 0):number},string=function(){var hex,i,uffff,string="";if(\'"\'===ch)for(;next();){if(\'"\'===ch)return next(),string;if("\\\\"===ch)if(next(),"u"===ch){for(uffff=0,i=0;4>i&&(hex=parseInt(next(),16),isFinite(hex));i+=1)uffff=16*uffff+hex;string+=String.fromCharCode(uffff)}else{if("string"!=typeof escapee[ch])break;string+=escapee[ch]}else string+=ch}error("Bad string")},white=function(){for(;ch&&" ">=ch;)next()},word=function(){switch(ch){case"t":return next("t"),next("r"),next("u"),next("e"),!0;case"f":return next("f"),next("a"),next("l"),next("s"),next("e"),!1;case"n":return next("n"),next("u"),next("l"),next("l"),null}error("Unexpected \'"+ch+"\'")},array=function(){var array=[];if("["===ch){if(next("["),white(),"]"===ch)return next("]"),array;for(;ch;){if(array.push(value()),white(),"]"===ch)return next("]"),array;next(","),white()}}error("Bad array")},object=function(){var key,object={};if("{"===ch){if(next("{"),white(),"}"===ch)return next("}"),object;for(;ch;){if(key=string(),white(),next(":"),Object.hasOwnProperty.call(object,key)&&error(\'Duplicate key "\'+key+\'"\'),object[key]=value(),white(),"}"===ch)return next("}"),object;next(","),white()}}error("Bad object")};return value=function(){switch(white(),ch){case"{":return object();case"[":return array();case\'"\':return string();case"-":return number();default:return ch>="0"&&"9">=ch?number():word()}},function(source,reviver){var result;return text=source,at=0,ch=" ",result=value(),white(),ch&&error("Syntax error"),"function"==typeof reviver?function walk(holder,key){var k,v,value=holder[key];if(value&&"object"==typeof value)for(k in value)Object.hasOwnProperty.call(value,k)&&(v=walk(value,k),void 0!==v?value[k]=v:delete value[k]);return reviver.call(holder,key,value)}({"":result},""):result}}),ace.define("ace/mode/json_worker",["require","exports","module","ace/lib/oop","ace/worker/mirror","ace/mode/json/json_parse"],function(acequire,exports){"use strict";var oop=acequire("../lib/oop"),Mirror=acequire("../worker/mirror").Mirror,parse=acequire("./json/json_parse"),JsonWorker=exports.JsonWorker=function(sender){Mirror.call(this,sender),this.setTimeout(200)};oop.inherits(JsonWorker,Mirror),function(){this.onUpdate=function(){var value=this.doc.getValue(),errors=[];try{value&&parse(value)}catch(e){var pos=this.doc.indexToPosition(e.at-1);errors.push({row:pos.row,column:pos.column,text:e.message,type:"error"})}this.sender.emit("annotate",errors)}}.call(JsonWorker.prototype)}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,"sentinel",{}),"sentinel"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if("function"!=typeof target)throw new TypeError("Function.prototype.bind called on incompatible "+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,"__defineGetter__"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,"XXX"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0\n}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return"[object Array]"==_toString(obj)});var boxedString=Object("a"),splitString="a"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,thisp=arguments[1],i=-1,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=[],thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError("reduce of empty array with no initial value")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError("reduceRight of empty array with no initial value")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(object,property){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if("object"!=typeof prototype)throw new TypeError("typeof prototype["+typeof prototype+"] != \'object\'");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom="undefined"==typeof document||doesDefinePropertyWork(document.createElement("div"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR="Property description must be an object: ",ERR_NON_OBJECT_TARGET="Object.defineProperty called on non-object: ",ERR_ACCESSORS_NOT_SUPPORTED="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(object,property,descriptor){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if("object"!=typeof descriptor&&"function"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,"value"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,"get")&&defineGetter(object,property,descriptor.get),owns(descriptor,"set")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return"function"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name="";owns(object,name);)name+="?";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError("Object.keys called on a non-object");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws="\t\\n\v\\f\\r   ᠎              \\u2028\\u2029\ufeff";if(!String.prototype.trim||ws.trim()){ws="["+ws+"]";var trimBeginRegexp=RegExp("^"+ws+ws+"*"),trimEndRegexp=RegExp(ws+ws+"*$");String.prototype.trim=function(){return(this+"").replace(trimBeginRegexp,"").replace(trimEndRegexp,"")}}var toObject=function(o){if(null==o)throw new TypeError("can\'t convert "+o+" to object");return Object(o)}});'},function(e,t){ace.define("ace/ext/searchbox",["require","exports","module","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/keyboard/hash_handler","ace/lib/keys"],function(e,t,n){"use strict";var i=e("../lib/dom"),o=e("../lib/lang"),r=e("../lib/event"),s=e("../keyboard/hash_handler").HashHandler,a=e("../lib/keys");i.importCssString('\t.ace_search {\tbackground-color: #ddd;\tcolor: #666;\tborder: 1px solid #cbcbcb;\tborder-top: 0 none;\toverflow: hidden;\tmargin: 0;\tpadding: 4px 6px 0 4px;\tposition: absolute;\ttop: 0;\tz-index: 99;\twhite-space: normal;\t}\t.ace_search.left {\tborder-left: 0 none;\tborder-radius: 0px 0px 5px 0px;\tleft: 0;\t}\t.ace_search.right {\tborder-radius: 0px 0px 0px 5px;\tborder-right: 0 none;\tright: 0;\t}\t.ace_search_form, .ace_replace_form {\tmargin: 0 20px 4px 0;\toverflow: hidden;\tline-height: 1.9;\t}\t.ace_replace_form {\tmargin-right: 0;\t}\t.ace_search_form.ace_nomatch {\toutline: 1px solid red;\t}\t.ace_search_field {\tborder-radius: 3px 0 0 3px;\tbackground-color: white;\tcolor: black;\tborder: 1px solid #cbcbcb;\tborder-right: 0 none;\tbox-sizing: border-box!important;\toutline: 0;\tpadding: 0;\tfont-size: inherit;\tmargin: 0;\tline-height: inherit;\tpadding: 0 6px;\tmin-width: 17em;\tvertical-align: top;\t}\t.ace_searchbtn {\tborder: 1px solid #cbcbcb;\tline-height: inherit;\tdisplay: inline-block;\tpadding: 0 6px;\tbackground: #fff;\tborder-right: 0 none;\tborder-left: 1px solid #dcdcdc;\tcursor: pointer;\tmargin: 0;\tposition: relative;\tbox-sizing: content-box!important;\tcolor: #666;\t}\t.ace_searchbtn:last-child {\tborder-radius: 0 3px 3px 0;\tborder-right: 1px solid #cbcbcb;\t}\t.ace_searchbtn:disabled {\tbackground: none;\tcursor: default;\t}\t.ace_searchbtn:hover {\tbackground-color: #eef1f6;\t}\t.ace_searchbtn.prev, .ace_searchbtn.next {\tpadding: 0px 0.7em\t}\t.ace_searchbtn.prev:after, .ace_searchbtn.next:after {\tcontent: "";\tborder: solid 2px #888;\twidth: 0.5em;\theight: 0.5em;\tborder-width: 2px 0 0 2px;\tdisplay:inline-block;\ttransform: rotate(-45deg);\t}\t.ace_searchbtn.next:after {\tborder-width: 0 2px 2px 0 ;\t}\t.ace_searchbtn_close {\tbackground: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\tborder-radius: 50%;\tborder: 0 none;\tcolor: #656565;\tcursor: pointer;\tfont: 16px/16px Arial;\tpadding: 0;\theight: 14px;\twidth: 14px;\ttop: 9px;\tright: 7px;\tposition: absolute;\t}\t.ace_searchbtn_close:hover {\tbackground-color: #656565;\tbackground-position: 50% 100%;\tcolor: white;\t}\t.ace_button {\tmargin-left: 2px;\tcursor: pointer;\t-webkit-user-select: none;\t-moz-user-select: none;\t-o-user-select: none;\t-ms-user-select: none;\tuser-select: none;\toverflow: hidden;\topacity: 0.7;\tborder: 1px solid rgba(100,100,100,0.23);\tpadding: 1px;\tbox-sizing: border-box!important;\tcolor: black;\t}\t.ace_button:hover {\tbackground-color: #eee;\topacity:1;\t}\t.ace_button:active {\tbackground-color: #ddd;\t}\t.ace_button.checked {\tborder-color: #3399ff;\topacity:1;\t}\t.ace_search_options{\tmargin-bottom: 3px;\ttext-align: right;\t-webkit-user-select: none;\t-moz-user-select: none;\t-o-user-select: none;\t-ms-user-select: none;\tuser-select: none;\tclear: both;\t}\t.ace_search_counter {\tfloat: left;\tfont-family: arial;\tpadding: 0 8px;\t}',"ace_searchbox");var l=''.replace(/> +/g,">"),c=function(e,t,n){var o=i.createElement("div");o.innerHTML=l,this.element=o.firstChild,this.setSession=this.setSession.bind(this),this.$init(),this.setEditor(e)};(function(){this.setEditor=function(e){e.searchBox=this,e.renderer.scroller.appendChild(this.element),this.editor=e},this.setSession=function(e){this.searchRange=null,this.$syncOptions(!0)},this.$initElements=function(e){this.searchBox=e.querySelector(".ace_search_form"),this.replaceBox=e.querySelector(".ace_replace_form"),this.searchOption=e.querySelector("[action=searchInSelection]"),this.replaceOption=e.querySelector("[action=toggleReplace]"),this.regExpOption=e.querySelector("[action=toggleRegexpMode]"),this.caseSensitiveOption=e.querySelector("[action=toggleCaseSensitive]"),this.wholeWordOption=e.querySelector("[action=toggleWholeWords]"),this.searchInput=this.searchBox.querySelector(".ace_search_field"),this.replaceInput=this.replaceBox.querySelector(".ace_search_field"),this.searchCounter=e.querySelector(".ace_search_counter")},this.$init=function(){var e=this.element;this.$initElements(e);var t=this;r.addListener(e,"mousedown",function(e){setTimeout(function(){t.activeInput.focus()},0),r.stopPropagation(e)}),r.addListener(e,"click",function(e){var n=e.target||e.srcElement,i=n.getAttribute("action");i&&t[i]?t[i]():t.$searchBarKb.commands[i]&&t.$searchBarKb.commands[i].exec(t),r.stopPropagation(e)}),r.addCommandKeyListener(e,function(e,n,i){var o=a.keyCodeToString(i),s=t.$searchBarKb.findKeyCommand(n,o);s&&s.exec&&(s.exec(t),r.stopEvent(e))}),this.$onChange=o.delayedCall(function(){t.find(!1,!1)}),r.addListener(this.searchInput,"input",function(){t.$onChange.schedule(20)}),r.addListener(this.searchInput,"focus",function(){t.activeInput=t.searchInput,t.searchInput.value&&t.highlight()}),r.addListener(this.replaceInput,"focus",function(){t.activeInput=t.replaceInput,t.searchInput.value&&t.highlight()})},this.$closeSearchBarKb=new s([{bindKey:"Esc",name:"closeSearchBar",exec:function(e){e.searchBox.hide()}}]),this.$searchBarKb=new s,this.$searchBarKb.bindKeys({"Ctrl-f|Command-f":function(e){var t=e.isReplace=!e.isReplace;e.replaceBox.style.display=t?"":"none",e.replaceOption.checked=!1,e.$syncOptions(),e.searchInput.focus()},"Ctrl-H|Command-Option-F":function(e){e.replaceOption.checked=!0,e.$syncOptions(),e.replaceInput.focus()},"Ctrl-G|Command-G":function(e){e.findNext()},"Ctrl-Shift-G|Command-Shift-G":function(e){e.findPrev()},esc:function(e){setTimeout(function(){e.hide()})},Return:function(e){e.activeInput==e.replaceInput&&e.replace(),e.findNext()},"Shift-Return":function(e){e.activeInput==e.replaceInput&&e.replace(),e.findPrev()},"Alt-Return":function(e){e.activeInput==e.replaceInput&&e.replaceAll(),e.findAll()},Tab:function(e){(e.activeInput==e.replaceInput?e.searchInput:e.replaceInput).focus()}}),this.$searchBarKb.addCommands([{name:"toggleRegexpMode",bindKey:{win:"Alt-R|Alt-/",mac:"Ctrl-Alt-R|Ctrl-Alt-/"},exec:function(e){e.regExpOption.checked=!e.regExpOption.checked,e.$syncOptions()}},{name:"toggleCaseSensitive",bindKey:{win:"Alt-C|Alt-I",mac:"Ctrl-Alt-R|Ctrl-Alt-I"},exec:function(e){e.caseSensitiveOption.checked=!e.caseSensitiveOption.checked,e.$syncOptions()}},{name:"toggleWholeWords",bindKey:{win:"Alt-B|Alt-W",mac:"Ctrl-Alt-B|Ctrl-Alt-W"},exec:function(e){e.wholeWordOption.checked=!e.wholeWordOption.checked,e.$syncOptions()}},{name:"toggleReplace",exec:function(e){e.replaceOption.checked=!e.replaceOption.checked,e.$syncOptions()}},{name:"searchInSelection",exec:function(e){e.searchOption.checked=!e.searchRange,e.setSearchRange(e.searchOption.checked&&e.editor.getSelectionRange()),e.$syncOptions()}}]),this.setSearchRange=function(e){this.searchRange=e,e?this.searchRangeMarker=this.editor.session.addMarker(e,"ace_active-line"):this.searchRangeMarker&&(this.editor.session.removeMarker(this.searchRangeMarker),this.searchRangeMarker=null)},this.$syncOptions=function(e){i.setCssClass(this.replaceOption,"checked",this.searchRange),i.setCssClass(this.searchOption,"checked",this.searchOption.checked),this.replaceOption.textContent=this.replaceOption.checked?"-":"+",i.setCssClass(this.regExpOption,"checked",this.regExpOption.checked),i.setCssClass(this.wholeWordOption,"checked",this.wholeWordOption.checked),i.setCssClass(this.caseSensitiveOption,"checked",this.caseSensitiveOption.checked),this.replaceBox.style.display=this.replaceOption.checked?"":"none",this.find(!1,!1,e)},this.highlight=function(e){this.editor.session.highlight(e||this.editor.$search.$options.re),this.editor.renderer.updateBackMarkers()},this.find=function(e,t,n){var o=this.editor.find(this.searchInput.value,{skipCurrent:e,backwards:t,wrap:!0,regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked,preventScroll:n,range:this.searchRange}),r=!o&&this.searchInput.value;i.setCssClass(this.searchBox,"ace_nomatch",r),this.editor._emit("findSearchBox",{match:!r}),this.highlight(),this.updateCounter()},this.updateCounter=function(){var e=this.editor,t=e.$search.$options.re,n=0,i=0;if(t){var o=this.searchRange?e.session.getTextRange(this.searchRange):e.getValue(),r=e.session.doc.positionToIndex(e.selection.anchor);this.searchRange&&(r-=e.session.doc.positionToIndex(this.searchRange.start));for(var s,a=t.lastIndex=0;(s=t.exec(o))&&(n++,a=s.index,a<=r&&i++,!(n>999))&&(s[0]||(t.lastIndex=a+=1,!(a>=o.length))););}this.searchCounter.textContent=i+" of "+(n>999?"999+":n)},this.findNext=function(){this.find(!0,!1)},this.findPrev=function(){this.find(!0,!0)},this.findAll=function(){var e=this.editor.findAll(this.searchInput.value,{regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked}),t=!e&&this.searchInput.value;i.setCssClass(this.searchBox,"ace_nomatch",t),this.editor._emit("findSearchBox",{match:!t}),this.highlight(),this.hide()},this.replace=function(){this.editor.getReadOnly()||this.editor.replace(this.replaceInput.value)},this.replaceAndFindNext=function(){this.editor.getReadOnly()||(this.editor.replace(this.replaceInput.value),this.findNext())},this.replaceAll=function(){this.editor.getReadOnly()||this.editor.replaceAll(this.replaceInput.value)},this.hide=function(){this.active=!1,this.setSearchRange(null),this.editor.off("changeSession",this.setSession),this.element.style.display="none",this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb),this.editor.focus()},this.show=function(e,t){this.active=!0,this.editor.on("changeSession",this.setSession),this.element.style.display="",this.replaceOption.checked=t,e&&(this.searchInput.value=e),this.searchInput.focus(),this.searchInput.select(),this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb),this.$syncOptions(!0)},this.isFocused=function(){var e=document.activeElement;return e==this.searchInput||e==this.replaceInput}}).call(c.prototype),t.SearchBox=c,t.Search=function(e,t){(e.searchBox||new c(e)).show(e.session.getTextRange(),t)}}),function(){ace.acequire(["ace/ext/searchbox"],function(){})}()},function(e,t){ace.define("ace/theme/jsoneditor",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!1,t.cssClass="ace-jsoneditor",t.cssText='.ace-jsoneditor .ace_gutter {\tbackground: #ebebeb;\tcolor: #333\t}\t\t.ace-jsoneditor.ace_editor {\tfont-family: "dejavu sans mono", "droid sans mono", consolas, monaco, "lucida console", "courier new", courier, monospace, sans-serif;\tline-height: 1.3;\tbackground-color: #fff;\t}\t.ace-jsoneditor .ace_print-margin {\twidth: 1px;\tbackground: #e8e8e8\t}\t.ace-jsoneditor .ace_scroller {\tbackground-color: #FFFFFF\t}\t.ace-jsoneditor .ace_text-layer {\tcolor: gray\t}\t.ace-jsoneditor .ace_variable {\tcolor: #1a1a1a\t}\t.ace-jsoneditor .ace_cursor {\tborder-left: 2px solid #000000\t}\t.ace-jsoneditor .ace_overwrite-cursors .ace_cursor {\tborder-left: 0px;\tborder-bottom: 1px solid #000000\t}\t.ace-jsoneditor .ace_marker-layer .ace_selection {\tbackground: lightgray\t}\t.ace-jsoneditor.ace_multiselect .ace_selection.ace_start {\tbox-shadow: 0 0 3px 0px #FFFFFF;\tborder-radius: 2px\t}\t.ace-jsoneditor .ace_marker-layer .ace_step {\tbackground: rgb(255, 255, 0)\t}\t.ace-jsoneditor .ace_marker-layer .ace_bracket {\tmargin: -1px 0 0 -1px;\tborder: 1px solid #BFBFBF\t}\t.ace-jsoneditor .ace_marker-layer .ace_active-line {\tbackground: #FFFBD1\t}\t.ace-jsoneditor .ace_gutter-active-line {\tbackground-color : #dcdcdc\t}\t.ace-jsoneditor .ace_marker-layer .ace_selected-word {\tborder: 1px solid lightgray\t}\t.ace-jsoneditor .ace_invisible {\tcolor: #BFBFBF\t}\t.ace-jsoneditor .ace_keyword,\t.ace-jsoneditor .ace_meta,\t.ace-jsoneditor .ace_support.ace_constant.ace_property-value {\tcolor: #AF956F\t}\t.ace-jsoneditor .ace_keyword.ace_operator {\tcolor: #484848\t}\t.ace-jsoneditor .ace_keyword.ace_other.ace_unit {\tcolor: #96DC5F\t}\t.ace-jsoneditor .ace_constant.ace_language {\tcolor: darkorange\t}\t.ace-jsoneditor .ace_constant.ace_numeric {\tcolor: red\t}\t.ace-jsoneditor .ace_constant.ace_character.ace_entity {\tcolor: #BF78CC\t}\t.ace-jsoneditor .ace_invalid {\tcolor: #FFFFFF;\tbackground-color: #FF002A;\t}\t.ace-jsoneditor .ace_fold {\tbackground-color: #AF956F;\tborder-color: #000000\t}\t.ace-jsoneditor .ace_storage,\t.ace-jsoneditor .ace_support.ace_class,\t.ace-jsoneditor .ace_support.ace_function,\t.ace-jsoneditor .ace_support.ace_other,\t.ace-jsoneditor .ace_support.ace_type {\tcolor: #C52727\t}\t.ace-jsoneditor .ace_string {\tcolor: green\t}\t.ace-jsoneditor .ace_comment {\tcolor: #BCC8BA\t}\t.ace-jsoneditor .ace_entity.ace_name.ace_tag,\t.ace-jsoneditor .ace_entity.ace_other.ace_attribute-name {\tcolor: #606060\t}\t.ace-jsoneditor .ace_markup.ace_underline {\ttext-decoration: underline\t}\t.ace-jsoneditor .ace_indent-guide {\tbackground: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y\t}',e("../lib/dom").importCssString(t.cssText,t.cssClass)})}])}); +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.JSONEditor=t():e.JSONEditor=t()}(this,function(){return function(e){function t(i){if(n[i])return n[i].exports;var o=n[i]={exports:{},id:i,loaded:!1};return e[i].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function i(e,t,n){if(!(this instanceof i))throw new Error('JSONEditor constructor called without "new".');var o=a.getInternetExplorerVersion();if(-1!=o&&o<9)throw new Error("Unsupported browser, IE9 or newer required. Please install the newest version of your browser.");if(t&&(t.error&&(console.warn('Option "error" has been renamed to "onError"'),t.onError=t.error,delete t.error),t.change&&(console.warn('Option "change" has been renamed to "onChange"'),t.onChange=t.change,delete t.change),t.editable&&(console.warn('Option "editable" has been renamed to "onEditable"'),t.onEditable=t.editable,delete t.editable),t)){var r=["ajv","schema","schemaRefs","templates","ace","theme","autocomplete","onChange","onEditable","onError","onModeChange","onSelectionChange","onTextSelectionChange","escapeUnicode","history","search","mode","modes","name","indentation","sortObjectKeys","navigationBar","statusBar","languages","language"];Object.keys(t).forEach(function(e){-1===r.indexOf(e)&&console.warn('Unknown option "'+e+'". This option will be ignored')})}arguments.length&&this._create(e,t,n)}var o;try{o=n(!function(){var e=new Error('Cannot find module "ajv"');throw e.code="MODULE_NOT_FOUND",e}())}catch(e){}var r=n(1),s=n(17),a=n(4);i.modes={},i.prototype.DEBOUNCE_INTERVAL=150,i.prototype._create=function(e,t,n){this.container=e,this.options=t||{},this.json=n||{};var i=this.options.mode||this.options.modes&&this.options.modes[0]||"tree";this.setMode(i)},i.prototype.destroy=function(){},i.prototype.set=function(e){this.json=e},i.prototype.get=function(){return this.json},i.prototype.setText=function(e){this.json=a.parse(e)},i.prototype.getText=function(){return JSON.stringify(this.json)},i.prototype.setName=function(e){this.options||(this.options={}),this.options.name=e},i.prototype.getName=function(){return this.options&&this.options.name},i.prototype.setMode=function(e){var t,n,o=this.container,r=a.extend({},this.options),s=r.mode;r.mode=e;var l=i.modes[e];if(!l)throw new Error('Unknown mode "'+r.mode+'"');try{var c="text"==l.data;if(n=this.getName(),t=this[c?"getText":"get"](),this.destroy(),a.clear(this),a.extend(this,l.mixin),this.create(o,r),this.setName(n),this[c?"setText":"set"](t),"function"==typeof l.load)try{l.load.call(this)}catch(e){console.error(e)}if("function"==typeof r.onModeChange&&e!==s)try{r.onModeChange(e,s)}catch(e){console.error(e)}}catch(e){this._onError(e)}},i.prototype.getMode=function(){return this.options.mode},i.prototype._onError=function(e){if(!this.options||"function"!=typeof this.options.onError)throw e;this.options.onError(e)},i.prototype.setSchema=function(e,t){if(e){var n;try{n=this.options.ajv||o({allErrors:!0,verbose:!0})}catch(e){console.warn("Failed to create an instance of Ajv, JSON Schema validation is not available. Please use a JSONEditor bundle including Ajv, or pass an instance of Ajv as via the configuration option `ajv`.")}if(n){if(t){for(var i in t)n.removeSchema(i),t[i]&&n.addSchema(t[i],i);this.options.schemaRefs=t}this.validateSchema=n.compile(e),this.options.schema=e,this.validate()}this.refresh()}else this.validateSchema=null,this.options.schema=null,this.options.schemaRefs=null,this.validate(),this.refresh()},i.prototype.validate=function(){},i.prototype.refresh=function(){},i.registerMode=function(e){var t,n;if(a.isArray(e))for(t=0;t0?this.autoScrollStep=(i+24-e)/3:e>r-24&&o+n.scrollTop3?(n.scrollTop+=o/3,i.animateCallback=t,i.animateTimeout=setTimeout(a,50)):(t&&t(!0),n.scrollTop=s,delete i.animateTimeout,delete i.animateCallback)};a()}else t&&t(!1)},f._createFrame=function(){function e(e){t._onEvent&&t._onEvent(e)}this.frame=document.createElement("div"),this.frame.className="jsoneditor jsoneditor-mode-"+this.options.mode,this.container.appendChild(this.frame);var t=this;this.frame.onclick=function(t){var n=t.target;e(t),"BUTTON"==n.nodeName&&t.preventDefault()},this.frame.oninput=e,this.frame.onchange=e,this.frame.onkeydown=e,this.frame.onkeyup=e,this.frame.oncut=e,this.frame.onpaste=e,this.frame.onmousedown=e,this.frame.onmouseup=e,this.frame.onmouseover=e,this.frame.onmouseout=e,d.addEventListener(this.frame,"focus",e,!0),d.addEventListener(this.frame,"blur",e,!0),this.frame.onfocusin=e,this.frame.onfocusout=e,this.menu=document.createElement("div"),this.menu.className="jsoneditor-menu",this.frame.appendChild(this.menu);var n=document.createElement("button");n.type="button",n.className="jsoneditor-expand-all",n.title=u("expandAll"),n.onclick=function(){t.expandAll()},this.menu.appendChild(n);var i=document.createElement("button");if(i.type="button",i.title=u("collapseAll"),i.className="jsoneditor-collapse-all",i.onclick=function(){t.collapseAll()},this.menu.appendChild(i),this.history){var o=document.createElement("button");o.type="button",o.className="jsoneditor-undo jsoneditor-separator",o.title=u("undo"),o.onclick=function(){t._onUndo()},this.menu.appendChild(o),this.dom.undo=o;var s=document.createElement("button");s.type="button",s.className="jsoneditor-redo",s.title=u("redo"),s.onclick=function(){t._onRedo()},this.menu.appendChild(s),this.dom.redo=s,this.history.onChange=function(){o.disabled=!t.history.canUndo(),s.disabled=!t.history.canRedo()},this.history.onChange()}if(this.options&&this.options.modes&&this.options.modes.length){var l=this;this.modeSwitcher=new c(this.menu,this.options.modes,this.options.mode,function(e){l.modeSwitcher.destroy(),l.setMode(e),l.modeSwitcher.focus()})}this.options.search&&(this.searchBox=new r(this,this.menu)),this.options.navigationBar&&(this.navBar=document.createElement("div"),this.navBar.className="jsoneditor-navigation-bar nav-bar-empty",this.frame.appendChild(this.navBar),this.treePath=new a(this.navBar),this.treePath.onSectionSelected(this._onTreePathSectionSelected.bind(this)),this.treePath.onContextMenuItemSelected(this._onTreePathMenuItemSelected.bind(this)))},f._onUndo=function(){this.history&&(this.history.undo(),this._onChange())},f._onRedo=function(){this.history&&(this.history.redo(),this._onChange())},f._onEvent=function(e){"keydown"===e.type&&this._onKeyDown(e),"focus"===e.type&&(this.focusTarget=e.target),"mousedown"===e.type&&this._startDragDistance(e),"mousemove"!==e.type&&"mouseup"!==e.type&&"click"!==e.type||this._updateDragDistance(e);var t=l.getNodeFromTarget(e.target);if(t&&this.options&&this.options.navigationBar&&t&&("keydown"===e.type||"mousedown"===e.type)){var n=this;setTimeout(function(){n._updateTreePath(t.getNodePath())})}if(t&&t.selected){if("click"===e.type){if(e.target===t.dom.menu)return void this.showContextMenu(e.target);e.hasMoved||this.deselect()}"mousedown"===e.type&&l.onDragStart(this.multiselection.nodes,e)}else"mousedown"===e.type&&(this.deselect(),t&&e.target===t.dom.drag?l.onDragStart(t,e):(!t||e.target!==t.dom.field&&e.target!==t.dom.value&&e.target!==t.dom.select)&&this._onMultiSelectStart(e));t&&t.onEvent(e)},f._updateTreePath=function(e){function t(e){return void 0!==e.field?e._escapeHTML(e.field):isNaN(e.index)?e.type:e.index}if(e&&e.length){d.removeClassName(this.navBar,"nav-bar-empty");var n=[];e.forEach(function(e){var i={name:t(e),node:e,children:[]};e.childs&&e.childs.length&&e.childs.forEach(function(e){i.children.push({name:t(e),node:e})}),n.push(i)}),this.treePath.setPath(n)}else d.addClassName(this.navBar,"nav-bar-empty")},f._onTreePathSectionSelected=function(e){e&&e.node&&(e.node.expandTo(),e.node.focus())},f._onTreePathMenuItemSelected=function(e,t){if(e&&e.children.length){var n=e.children.find(function(e){return e.name===t});n&&n.node&&(this._updateTreePath(n.node.getNodePath()),n.node.expandTo(),n.node.focus())}},f._startDragDistance=function(e){this.dragDistanceEvent={initialTarget:e.target,initialPageX:e.pageX,initialPageY:e.pageY,dragDistance:0,hasMoved:!1}},f._updateDragDistance=function(e){this.dragDistanceEvent||this._startDragDistance(e);var t=e.pageX-this.dragDistanceEvent.initialPageX,n=e.pageY-this.dragDistanceEvent.initialPageY;return this.dragDistanceEvent.dragDistance=Math.sqrt(t*t+n*n),this.dragDistanceEvent.hasMoved=this.dragDistanceEvent.hasMoved||this.dragDistanceEvent.dragDistance>10,e.dragDistance=this.dragDistanceEvent.dragDistance,e.hasMoved=this.dragDistanceEvent.hasMoved,e.dragDistance},f._onMultiSelectStart=function(e){var t=l.getNodeFromTarget(e.target);if("tree"===this.options.mode&&void 0===this.options.onEditable){this.multiselection={start:t||null,end:null,nodes:[]},this._startDragDistance(e);var n=this;this.mousemove||(this.mousemove=d.addEventListener(window,"mousemove",function(e){n._onMultiSelect(e)})),this.mouseup||(this.mouseup=d.addEventListener(window,"mouseup",function(e){n._onMultiSelectEnd(e)}))}},f._onMultiSelect=function(e){if(e.preventDefault(),this._updateDragDistance(e),e.hasMoved){var t=l.getNodeFromTarget(e.target);t&&(null==this.multiselection.start&&(this.multiselection.start=t),this.multiselection.end=t),this.deselect();var n=this.multiselection.start,i=this.multiselection.end||this.multiselection.start;if(n&&i){if(this.multiselection.nodes=this._findTopLevelNodes(n,i),this.multiselection.nodes&&this.multiselection.nodes.length){var o=this.multiselection.nodes[0];this.multiselection.start===o||this.multiselection.start.isDescendantOf(o)?this.multiselection.direction="down":this.multiselection.direction="up"}this.select(this.multiselection.nodes)}}},f._onMultiSelectEnd=function(e){this.multiselection.nodes[0]&&this.multiselection.nodes[0].dom.menu.focus(),this.multiselection.start=null,this.multiselection.end=null,this.mousemove&&(d.removeEventListener(window,"mousemove",this.mousemove),delete this.mousemove),this.mouseup&&(d.removeEventListener(window,"mouseup",this.mouseup),delete this.mouseup)},f.deselect=function(e){var t=!!this.multiselection.nodes.length;this.multiselection.nodes.forEach(function(e){e.setSelected(!1)}),this.multiselection.nodes=[],e&&(this.multiselection.start=null,this.multiselection.end=null),t&&this._selectionChangedHandler&&this._selectionChangedHandler()},f.select=function(e){if(!Array.isArray(e))return this.select([e]);if(e){this.deselect(),this.multiselection.nodes=e.slice(0);var t=e[0];if(e.forEach(function(e){e.expandPathToNode(),e.setSelected(!0,e===t)}),this._selectionChangedHandler){var n=this.getSelection();this._selectionChangedHandler(n.start,n.end)}}},f._findTopLevelNodes=function(e,t){for(var n=e.getNodePath(),i=t.getNodePath(),o=0;o=0&&(c="value"),e.target.className.indexOf("jsoneditor-field")>=0&&(c="field");var h=l.getNodeFromTarget(e.target);setTimeout(function(e,t){if(t.innerText.length>0){var n=this.options.autocomplete.getOptions(t.innerText,e.getPath(),c,e.editor);null===n?this.autocomplete.hideDropDown():"function"==typeof n.then?n.then(function(e){null===e?this.autocomplete.hideDropDown():e.options?this.autocomplete.show(t,e.startFrom,e.options):this.autocomplete.show(t,0,e)}.bind(this)):n.options?this.autocomplete.show(t,n.startFrom,n.options):this.autocomplete.show(t,0,n)}else this.autocomplete.hideDropDown()}.bind(this,h,e.target),50)}s&&(e.preventDefault(),e.stopPropagation())},f._createTable=function(){var e=document.createElement("div");e.className="jsoneditor-outer",this.options.navigationBar&&d.addClassName(e,"has-nav-bar"),this.contentOuter=e,this.content=document.createElement("div"),this.content.className="jsoneditor-tree",e.appendChild(this.content),this.table=document.createElement("table"),this.table.className="jsoneditor-tree",this.content.appendChild(this.table);var t;this.colgroupContent=document.createElement("colgroup"),"tree"===this.options.mode&&(t=document.createElement("col"),t.width="24px",this.colgroupContent.appendChild(t)),t=document.createElement("col"),t.width="24px",this.colgroupContent.appendChild(t),t=document.createElement("col"),this.colgroupContent.appendChild(t),this.table.appendChild(this.colgroupContent),this.tbody=document.createElement("tbody"),this.table.appendChild(this.tbody),this.frame.appendChild(e)},f.showContextMenu=function(e,t){var n=[],i=this;n.push({text:u("duplicateText"),title:u("duplicateTitle"),className:"jsoneditor-duplicate",click:function(){l.onDuplicate(i.multiselection.nodes)}}),n.push({text:u("remove"),title:u("removeTitle"),className:"jsoneditor-remove",click:function(){l.onRemove(i.multiselection.nodes)}}),new s(n,{close:t}).show(e,this.content)},f.getSelection=function(){var e={start:null,end:null};if(this.multiselection.nodes&&this.multiselection.nodes.length&&this.multiselection.nodes.length){var t=this.multiselection.nodes[0],n=this.multiselection.nodes[this.multiselection.nodes.length-1];"down"===this.multiselection.direction?(e.start=t.serialize(),e.end=n.serialize()):(e.start=n.serialize(),e.end=t.serialize())}return e},f.onSelectionChange=function(e){"function"==typeof e&&(this._selectionChangedHandler=d.debounce(e,this.DEBOUNCE_INTERVAL))},f.setSelection=function(e,t){e&&e.dom&&e.range&&(console.warn("setSelection/getSelection usage for text selection is depracated and should not be used, see documantaion for supported selection options"),this.setDomSelection(e));var n=this._getNodeIntsncesByRange(e,t);n.forEach(function(e){e.expandTo()}),this.select(n)},f._getNodeIntsncesByRange=function(e,t){var n,i;e&&e.path&&(n=this.node.findNodeByPath(e.path),t&&t.path&&(i=this.node.findNodeByPath(t.path)));var o=[];if(n instanceof l)if(i instanceof l&&i!==n)if(n.parent===i.parent){var e,t;n.getIndex()=0},i.prototype.canRedo=function(){return this.index=" "&&c<=" "||" "===c||" "===c||" "===c?(r.push(" "),s++):"'"===c?o("'"):'"'===c?o('"'):"`"===c?o("´"):"‘"===c?o("’"):"“"===c?o("”"):/[a-zA-Z_$]/.test(c)&&-1!==["{",","].indexOf(function(){for(var e=r.length-1;e>=0;){var t=r[e];if(" "!==t&&"\n"!==t&&"\r"!==t&&"\t"!==t)return t;e--}return""}())?function(){for(var e=["null","true","false"],n="",i=t(),o=/[a-zA-Z_$\d]/;o.test(i);)n+=i,s++,i=t();-1===e.indexOf(n)?r.push('"'+n+'"'):r.push(n)}():(r.push(c),s++)}return r.join("")},t.escapeUnicodeChars=function(e){return e.replace(/[\u007F-\uFFFF]/g,function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})},t.validate=function(e){void 0!==i?i.parse(e):JSON.parse(e)},t.extend=function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e},t.clear=function(e){for(var t in e)e.hasOwnProperty(t)&&delete e[t];return e},t.type=function(e){return null===e?"null":void 0===e?"undefined":e instanceof Number||"number"==typeof e?"number":e instanceof String||"string"==typeof e?"string":e instanceof Boolean||"boolean"==typeof e?"boolean":e instanceof RegExp||"regexp"==typeof e?"regexp":t.isArray(e)?"array":"object"};var o=/^https?:\/\/\S+$/;t.isUrl=function(e){return("string"==typeof e||e instanceof String)&&o.test(e)},t.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)},t.getAbsoluteLeft=function(e){return e.getBoundingClientRect().left+window.pageXOffset||document.scrollLeft||0},t.getAbsoluteTop=function(e){return e.getBoundingClientRect().top+window.pageYOffset||document.scrollTop||0},t.addClassName=function(e,t){var n=e.className.split(" ");-1==n.indexOf(t)&&(n.push(t),e.className=n.join(" "))},t.removeClassName=function(e,t){var n=e.className.split(" "),i=n.indexOf(t);-1!=i&&(n.splice(i,1),e.className=n.join(" "))},t.stripFormatting=function(e){for(var n=e.childNodes,i=0,o=n.length;i=0;a--){var l=s[a];!0===l.specified&&r.removeAttribute(l.name)}t.stripFormatting(r)}},t.setEndOfContentEditable=function(e){var t,n;document.createRange&&(t=document.createRange(),t.selectNodeContents(e),t.collapse(!1),n=window.getSelection(),n.removeAllRanges(),n.addRange(t))},t.selectContentEditable=function(e){if(e&&"DIV"==e.nodeName){var t,n;window.getSelection&&document.createRange&&(n=document.createRange(),n.selectNodeContents(e),t=window.getSelection(),t.removeAllRanges(),t.addRange(n))}},t.getSelection=function(){if(window.getSelection){var e=window.getSelection();if(e.getRangeAt&&e.rangeCount)return e.getRangeAt(0)}return null},t.setSelection=function(e){if(e&&window.getSelection){var t=window.getSelection();t.removeAllRanges(),t.addRange(e)}},t.getSelectionOffset=function(){var e=t.getSelection();return e&&"startOffset"in e&&"endOffset"in e&&e.startContainer&&e.startContainer==e.endContainer?{startOffset:e.startOffset,endOffset:e.endOffset,container:e.startContainer.parentNode}:null},t.setSelectionOffset=function(e){if(document.createRange&&window.getSelection){if(window.getSelection()){var n=document.createRange();e.container.firstChild||e.container.appendChild(document.createTextNode("")),n.setStart(e.container.firstChild,e.startOffset),n.setEnd(e.container.firstChild,e.endOffset),t.setSelection(n)}}},t.getInnerText=function(e,n){if(void 0==n&&(n={text:"",flush:function(){var e=this.text;return this.text="",e},set:function(e){this.text=e}}),e.nodeValue)return n.flush()+e.nodeValue;if(e.hasChildNodes()){for(var i=e.childNodes,o="",r=0,s=i.length;r5){var n=["("+(t.length-5)+" more...)"];t=t.slice(0,5),t.push(n)}e.message="should be equal to one of: "+t.join(", ")}}return"additionalProperties"===e.keyword&&(e.message="should NOT have additional property: "+e.params.additionalProperty),e},t.insideRect=function(e,t,n){var i=void 0!==n?n:0;return t.left-i>=e.left&&t.right+i<=e.right&&t.top-i>=e.top&&t.bottom+i<=e.bottom},t.debounce=function(e,t,n){var i;return function(){var o=this,r=arguments,s=function(){i=null,n||e.apply(o,r)},a=n&&!i;clearTimeout(i),i=setTimeout(s,t),a&&e.apply(o,r)}},t.textDiff=function(e,t){for(var n=t.length,i=0,o=e.length,r=t.length;t.charAt(i)===e.charAt(i)&&ii&&o>0;)r--,o--;return{start:i,end:r}},t.getInputSelection=function(e){function t(t){var n=e.value.substring(0,t);return{row:(n.match(/\n/g)||[]).length+1,column:n.length-n.lastIndexOf("\n")}}var n,i,o,r,s,a=0,l=0;return"number"==typeof e.selectionStart&&"number"==typeof e.selectionEnd?(a=e.selectionStart,l=e.selectionEnd):(i=document.selection.createRange())&&i.parentElement()==e&&(r=e.value.length,n=e.value.replace(/\r\n/g,"\n"),o=e.createTextRange(),o.moveToBookmark(i.getBookmark()),s=e.createTextRange(),s.collapse(!1),o.compareEndPoints("StartToEnd",s)>-1?a=l=r:(a=-o.moveStart("character",-r),a+=n.slice(0,a).split("\n").length-1,o.compareEndPoints("EndToEnd",s)>-1?l=r:(l=-o.moveEnd("character",-r),l+=n.slice(0,l).split("\n").length-1))),{startIndex:a,endIndex:l,start:t(a),end:t(l)}},t.getIndexForPosition=function(e,t,n){var i=e.value||"";if(t>0&&n>0){var o=i.split("\n",t);t=Math.min(o.length,t),n=Math.min(o[t-1].length,n-1);var r=1==t?n:n+1;return o.slice(0,t-1).join("\n").length+r}return-1},"undefined"!=typeof Element&&function(){function e(e){e.hasOwnProperty("remove")||Object.defineProperty(e,"remove",{configurable:!0,enumerable:!0,writable:!0,value:function(){null!=this.parentNode&&this.parentNode.removeChild(this)}})}"undefined"!=typeof Element&&e(Element.prototype),"undefined"!=typeof CharacterData&&e(CharacterData.prototype),"undefined"!=typeof DocumentType&&e(DocumentType.prototype)}(),String.prototype.startsWith||(String.prototype.startsWith=function(e,t){return t=t||0,this.substr(t,e.length)===e}),Array.prototype.find||(Array.prototype.find=function(e){for(var t=0;t2&&x.push("'"+this.terminals_[y]+"'");var C="";C=this.lexer.showPosition?"Parse error on line "+(l+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+x.join(", ")+", got '"+this.terminals_[p]+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==p?"end of input":"'"+(this.terminals_[p]||p)+"'"),this.parseError(C,{text:this.lexer.match,token:this.terminals_[p]||p,line:this.lexer.yylineno,loc:u,expected:x})}if(3==d){if(1==p)throw new Error(C||"Parsing halted.");c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,u=this.lexer.yylloc,p=t()}for(;;){if(h.toString()in s[f])break;if(0==f)throw new Error(C||"Parsing halted.");!function(e){i.length=i.length-2*e,o.length=o.length-e,r.length=r.length-e}(1),f=i[i.length-1]}m=p,p=h,f=i[i.length-1],g=s[f]&&s[f][h],d=3}if(g[0]instanceof Array&&g.length>1)throw new Error("Parse Error: multiple actions possible at state: "+f+", token: "+p);switch(g[0]){case 1:i.push(p),o.push(this.lexer.yytext),r.push(this.lexer.yylloc),i.push(g[1]),p=null,m?(p=m,m=null):(c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,u=this.lexer.yylloc,d>0&&d--);break;case 2:if(b=this.productions_[g[1]][1],_.$=o[o.length-b],_._$={first_line:r[r.length-(b||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(b||1)].first_column,last_column:r[r.length-1].last_column},void 0!==(v=this.performAction.call(_,a,c,l,this.yy,g[1],o,r)))return v;b&&(i=i.slice(0,-1*b*2),o=o.slice(0,-1*b),r=r.slice(0,-1*b)),i.push(this.productions_[g[1]][0]),o.push(_.$),r.push(_._$),w=s[i[i.length-2]][i[i.length-1]],i.push(w);break;case 3:return!0}}return!0}},t=function(){var e={EOF:1,parseError:function(e,t){if(!this.yy.parseError)throw new Error(e);this.yy.parseError(e,t)},setInput:function(e){return this._input=e,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.match+=e,this.matched+=e,e.match(/\n/)&&this.yylineno++,this._input=this._input.slice(1),e},unput:function(e){return this._input=e+this._input,this},more:function(){return this._more=!0,this},less:function(e){this._input=this.match.slice(e)+this._input},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var e,t,n,i,o;this._more||(this.yytext="",this.match="");for(var r=this._currentRules(),s=0;st[0].length)||(t=n,i=s,this.options.flex));s++);return t?(o=t[0].match(/\n.*/g),o&&(this.yylineno+=o.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:o?o[o.length-1].length-1:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.yyleng=this.yytext.length,this._more=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],e=this.performAction.call(this,this.yy,this,r[i],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e||void 0):""===this._input?this.EOF:void this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var e=this.next();return void 0!==e?e:this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(e){this.begin(e)}};return e.options={},e.performAction=function(e,t,n,i){switch(n){case 0:break;case 1:return 6;case 2:return t.yytext=t.yytext.substr(1,t.yyleng-2),4;case 3:return 17;case 4:return 18;case 5:return 23;case 6:return 24;case 7:return 22;case 8:return 21;case 9:return 10;case 10:return 11;case 11:return 8;case 12:return 14;case 13:return"INVALID"}},e.rules=[/^(?:\s+)/,/^(?:(-?([0-9]|[1-9][0-9]+))(\.[0-9]+)?([eE][-+]?[0-9]+)?\b)/,/^(?:"(?:\\[\\"bfnrt\/]|\\u[a-fA-F0-9]{4}|[^\\\0-\x09\x0a-\x1f"])*")/,/^(?:\{)/,/^(?:\})/,/^(?:\[)/,/^(?:\])/,/^(?:,)/,/^(?::)/,/^(?:true\b)/,/^(?:false\b)/,/^(?:null\b)/,/^(?:$)/,/^(?:.)/],e.conditions={INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],inclusive:!0}},e}();return e.lexer=t,e}();t.parser=i,t.parse=i.parse.bind(i)},function(e,t){"use strict";function n(e,t){var n=this;this.editor=e,this.timeout=void 0,this.delay=200,this.lastText=void 0,this.dom={},this.dom.container=t;var i=document.createElement("table");this.dom.table=i,i.className="jsoneditor-search",t.appendChild(i);var o=document.createElement("tbody");this.dom.tbody=o,i.appendChild(o);var r=document.createElement("tr");o.appendChild(r);var s=document.createElement("td");r.appendChild(s);var a=document.createElement("div");this.dom.results=a,a.className="jsoneditor-results",s.appendChild(a),s=document.createElement("td"),r.appendChild(s);var l=document.createElement("div");this.dom.input=l,l.className="jsoneditor-frame",l.title="Search fields and values",s.appendChild(l);var c=document.createElement("table");l.appendChild(c);var d=document.createElement("tbody");c.appendChild(d),r=document.createElement("tr"),d.appendChild(r);var h=document.createElement("button");h.type="button",h.className="jsoneditor-refresh",s=document.createElement("td"),s.appendChild(h),r.appendChild(s);var u=document.createElement("input");this.dom.search=u,u.oninput=function(e){n._onDelayedSearch(e)},u.onchange=function(e){n._onSearch()},u.onkeydown=function(e){n._onKeyDown(e)},u.onkeyup=function(e){n._onKeyUp(e)},h.onclick=function(e){u.select()},s=document.createElement("td"),s.appendChild(u),r.appendChild(s);var p=document.createElement("button");p.type="button",p.title="Next result (Enter)",p.className="jsoneditor-next",p.onclick=function(){n.next()},s=document.createElement("td"),s.appendChild(p),r.appendChild(s);var m=document.createElement("button");m.type="button",m.title="Previous result (Shift+Enter)",m.className="jsoneditor-previous",m.onclick=function(){n.previous()},s=document.createElement("td"),s.appendChild(m),r.appendChild(s)}n.prototype.next=function(e){if(void 0!=this.results){var t=void 0!=this.resultIndex?this.resultIndex+1:0;t>this.results.length-1&&(t=0),this._setActiveResult(t,e)}},n.prototype.previous=function(e){if(void 0!=this.results){var t=this.results.length-1,n=void 0!=this.resultIndex?this.resultIndex-1:t;n<0&&(n=t),this._setActiveResult(n,e)}},n.prototype._setActiveResult=function(e,t){if(this.activeResult){var n=this.activeResult.node;"field"==this.activeResult.elem?delete n.searchFieldActive:delete n.searchValueActive,n.updateDom()}if(!this.results||!this.results[e])return this.resultIndex=void 0,void(this.activeResult=void 0);this.resultIndex=e;var i=this.results[this.resultIndex].node,o=this.results[this.resultIndex].elem;"field"==o?i.searchFieldActive=!0:i.searchValueActive=!0,this.activeResult=this.results[this.resultIndex],i.updateDom(),i.scrollTo(function(){t&&i.focus(o)})},n.prototype._clearDelay=function(){void 0!=this.timeout&&(clearTimeout(this.timeout),delete this.timeout)},n.prototype._onDelayedSearch=function(e){this._clearDelay();var t=this;this.timeout=setTimeout(function(e){t._onSearch()},this.delay)},n.prototype._onSearch=function(e){this._clearDelay();var t=this.dom.search.value,n=t.length>0?t:void 0;if(n!==this.lastText||e){this.lastText=n,this.results=this.editor.search(n);var i=this.results[0]?this.results[0].node.MAX_SEARCH_RESULTS:1/0;if(this._setActiveResult(0,!1),void 0!==n){var o=this.results.length;this.dom.results.innerHTML=0===o?"no results":1===o?"1 result":o>i?i+"+ results":o+" results"}else this.dom.results.innerHTML=""}},n.prototype._onKeyDown=function(e){var t=e.which;27==t?(this.dom.search.value="",this._onSearch(),e.preventDefault(),e.stopPropagation()):13==t&&(e.ctrlKey?this._onSearch(!0):e.shiftKey?this.previous():this.next(),e.preventDefault(),e.stopPropagation())},n.prototype._onKeyUp=function(e){var t=e.keyCode;27!=t&&13!=t&&this._onDelayedSearch(e)},n.prototype.clear=function(){this.dom.search.value="",this._onSearch()},n.prototype.destroy=function(){this.editor=null,this.dom.container.removeChild(this.dom.table),this.dom=null,this.results=null,this.activeResult=null,this._clearDelay()},e.exports=n},function(e,t,n){"use strict";function i(e){return e.getRootNode&&e.getRootNode()||window}function o(e,t){function n(e,t,o){o.forEach(function(o){if("separator"==o.type){var r=document.createElement("div");r.className="jsoneditor-separator",l=document.createElement("li"),l.appendChild(r),e.appendChild(l)}else{var a={},l=document.createElement("li");e.appendChild(l);var c=document.createElement("button");if(c.type="button",c.className=o.className,a.button=c,o.title&&(c.title=o.title),o.click&&(c.onclick=function(e){e.preventDefault(),i.hide(),o.click()}),l.appendChild(c),o.submenu){var d=document.createElement("div");d.className="jsoneditor-icon",c.appendChild(d);var h=document.createElement("div");h.className="jsoneditor-text"+(o.click?"":" jsoneditor-right-margin"),h.appendChild(document.createTextNode(o.text)),c.appendChild(h);var u;if(o.click){c.className+=" jsoneditor-default";var p=document.createElement("button");p.type="button",a.buttonExpand=p,p.className="jsoneditor-expand",p.innerHTML='
',l.appendChild(p),o.submenuTitle&&(p.title=o.submenuTitle),u=p}else{var m=document.createElement("div");m.className="jsoneditor-expand",c.appendChild(m),u=c}u.onclick=function(e){e.preventDefault(),i._onExpandItem(a),u.focus()};var f=[];a.subItems=f;var g=document.createElement("ul");a.ul=g,g.className="jsoneditor-menu",g.style.height="0",l.appendChild(g),n(g,f,o.submenu)}else c.innerHTML='
'+s(o.text)+"
";t.push(a)}})}this.dom={};var i=this,o=this.dom;this.anchor=void 0,this.items=e,this.eventListeners={},this.selection=void 0,this.onClose=t?t.close:void 0;var r=document.createElement("div");r.className="jsoneditor-contextmenu-root",o.root=r;var a=document.createElement("div");a.className="jsoneditor-contextmenu",o.menu=a,r.appendChild(a);var l=document.createElement("ul");l.className="jsoneditor-menu",a.appendChild(l),o.list=l,o.items=[];var c=document.createElement("button");c.type="button",o.focusButton=c;var d=document.createElement("li");d.style.overflow="hidden",d.style.height="0",d.appendChild(c),l.appendChild(d),n(l,this.dom.items,e),this.maxHeight=0,e.forEach(function(t){var n=24*(e.length+(t.submenu?t.submenu.length:0));i.maxHeight=Math.max(i.maxHeight,n)})}var r=n(4),s=n(8).translate;o.prototype._getVisibleButtons=function(){var e=[],t=this;return this.dom.items.forEach(function(n){e.push(n.button),n.buttonExpand&&e.push(n.buttonExpand),n.subItems&&n==t.expandedItem&&n.subItems.forEach(function(t){e.push(t.button),t.buttonExpand&&e.push(t.buttonExpand)})}),e},o.visibleMenu=void 0,o.prototype.show=function(e,t){this.hide();var n=!0,s=e.parentNode,a=e.getBoundingClientRect(),l=s.getBoundingClientRect();if(t){var c=t.getBoundingClientRect();a.bottom+this.maxHeightc.top&&(n=!1)}var d=a.left-l.left,h=a.top-l.top;if(n){var u=e.offsetHeight;this.dom.menu.style.left=d+"px",this.dom.menu.style.top=h+u+"px",this.dom.menu.style.bottom=""}else this.dom.menu.style.left=d+"px",this.dom.menu.style.top=h+"px",this.dom.menu.style.bottom="0px";this.rootNode=i(e),s.insertBefore(this.dom.root,s.firstChild);var p=this,m=this.dom.list;this.eventListeners.mousedown=r.addEventListener(this.rootNode,"mousedown",function(e){var t=e.target;t==m||p._isChildOf(t,m)||(p.hide(),e.stopPropagation(),e.preventDefault())}),this.eventListeners.keydown=r.addEventListener(this.rootNode,"keydown",function(e){p._onKeyDown(e)}),this.selection=r.getSelection(),this.anchor=e,setTimeout(function(){p.dom.focusButton.focus()},0),o.visibleMenu&&o.visibleMenu.hide(),o.visibleMenu=this},o.prototype.hide=function(){this.dom.root.parentNode&&(this.dom.root.parentNode.removeChild(this.dom.root),this.onClose&&this.onClose());for(var e in this.eventListeners)if(this.eventListeners.hasOwnProperty(e)){var t=this.eventListeners[e];t&&r.removeEventListener(this.rootNode,e,t),delete this.eventListeners[e]}o.visibleMenu==this&&(o.visibleMenu=void 0)},o.prototype._onExpandItem=function(e){var t=this,n=e==this.expandedItem,i=this.expandedItem;if(i&&(i.ul.style.height="0",i.ul.style.padding="",setTimeout(function(){t.expandedItem!=i&&(i.ul.style.display="",r.removeClassName(i.ul.parentNode,"jsoneditor-selected"))},300),this.expandedItem=void 0),!n){var o=e.ul;o.style.display="block";o.clientHeight;setTimeout(function(){if(t.expandedItem==e){for(var n=0,i=0;i0;){var i=t.shift();if("number"==typeof i){if("array"!==n.type)throw new Error("Cannot get child node at index "+i+": node is no array");n=n.childs[i]}else{if("object"!==n.type)throw new Error("Cannot get child node "+i+": node is no object");n=n.childs.filter(function(e){return e.field===i})[0]}}return n},i.prototype.findParents=function(){for(var e=[],t=this.parent;t;)e.unshift(t),t=t.parent;return e},i.prototype.setError=function(e,t){this.error=e,this.errorChild=t,this.dom&&this.dom.tr&&this.updateError()},i.prototype.updateError=function(){var e=this.error,t=this.dom.tdError;if(e&&this.dom&&this.dom.tr&&!t){t||(t=document.createElement("td"),this.dom.tdError=t,this.dom.tdValue.parentNode.appendChild(t));var n=document.createElement("div");n.className="jsoneditor-popover jsoneditor-right",n.appendChild(document.createTextNode(e.message));var i=document.createElement("button");i.type="button",i.className="jsoneditor-schema-error",i.appendChild(n),i.onmouseover=i.onfocus=function(){for(var e=["right","above","below","left"],t=0;tthis.visibleChilds){var o=this.childs[this.visibleChilds-1];this.insertBefore(e,o)}else this.appendChild(e);else this.insertBefore(e,t);n&&n.removeChild(i)}},i.prototype.moveTo=function(e,t){if(e.parent==this){this.childs.indexOf(e)0&&(e=this.childs.filter(function(e){return-1!==n.indexOf(e.field)}).map(function(e){return{node:e,error:{message:d("duplicateKey")+' "'+e.field+'"'}}}))}if(this.childs)for(var i=0;i0&&(e=e.concat(r))}return e},i.prototype.clearDom=function(){this.dom={}},i.prototype.getDom=function(){var e=this.dom;if(e.tr)return e.tr;if(this._updateEditability(),e.tr=document.createElement("tr"),e.tr.node=this,"tree"===this.editor.options.mode){var t=document.createElement("td");if(this.editable.field&&this.parent){var n=document.createElement("button");n.type="button",e.drag=n,n.className="jsoneditor-dragarea",n.title=d("drag"),t.appendChild(n)}e.tr.appendChild(t);var i=document.createElement("td"),o=document.createElement("button");o.type="button",e.menu=o,o.className="jsoneditor-contextmenu",o.title=d("actionsMenu"),i.appendChild(e.menu),e.tr.appendChild(i)}var r=document.createElement("td");return e.tr.appendChild(r),e.tree=this._createDomTree(),r.appendChild(e.tree),this.updateDom({updateIndexes:!0}),e.tr},i.prototype.isVisible=function(){return this.dom&&this.dom.tr&&this.dom.tr.parentNode||!1},i.onDragStart=function(e,t){if(!Array.isArray(e))return i.onDragStart([e],t);if(0!==e.length){var n=e[0],o=e[e.length-1],r=i.getNodeFromTarget(t.target),s=o.nextSibling(),a=n.editor,l=c.getAbsoluteTop(r.dom.tr)-c.getAbsoluteTop(n.dom.tr);a.mousemove||(a.mousemove=c.addEventListener(window,"mousemove",function(t){i.onDrag(e,t)})),a.mouseup||(a.mouseup=c.addEventListener(window,"mouseup",function(t){i.onDragEnd(e,t)})),a.highlighter.lock(),a.drag={oldCursor:document.body.style.cursor,oldSelection:a.getDomSelection(),oldBeforeNode:s,mouseX:t.pageX,offsetY:l,level:n.getLevel()},document.body.style.cursor="move",t.preventDefault()}},i.onDrag=function(e,t){if(!Array.isArray(e))return i.onDrag([e],t);if(0!==e.length){var n,o,r,s,a,l,d,u,p,m,f,g,v,y,b=e[0].editor,w=t.pageY-b.drag.offsetY,x=t.pageX,_=!1,C=e[0];if(n=C.dom.tr,p=c.getAbsoluteTop(n),g=n.offsetHeight,wm+g&&(d=void 0)),d&&(e.forEach(function(e){d.parent.moveBefore(e,d)}),_=!0)}else{var E=e[e.length-1];if(a=E.expanded&&E.append?E.append.getDom():E.dom.tr,s=a?a.nextSibling:void 0){f=c.getAbsoluteTop(s),r=s;do{u=i.getNodeFromTarget(r),r&&(v=r.nextSibling?c.getAbsoluteTop(r.nextSibling):0,y=r?v-f:0,u&&u.parent.childs.length==e.length&&u.parent.childs[e.length-1]==E&&(p+=27),r=r.nextSibling)}while(r&&w>p+y);if(u&&u.parent){var S=x-b.drag.mouseX,N=Math.round(S/24/2),j=b.drag.level+N,k=u.getLevel();for(o=u.dom.tr&&u.dom.tr.previousSibling;k0)return n[0].enum}return null},i._findSchema=function(e,t){var n=e,o=n,r=e.oneOf||e.anyOf||e.allOf;r||(r=[e]);for(var s=0;s0?this.editor.multiselection.nodes:[this],w=b[0],x=b[b.length-1];if(13==u){if(p==this.dom.value)this.editable.value&&!e.ctrlKey||c.isUrl(this.value)&&(window.open(this.value,"_blank"),v=!0);else if(p==this.dom.expand){var _=this._hasChilds();if(_){var C=e.ctrlKey;this._onExpand(C),p.focus(),v=!0}}}else if(68==u)m&&y&&(i.onDuplicate(b),v=!0);else if(69==u)m&&(this._onExpand(f),p.focus(),v=!0);else if(77==u&&y)m&&(this.showContextMenu(p),v=!0);else if(46==u&&y)m&&(i.onRemove(b),v=!0);else if(45==u&&y)m&&!f?(this._onInsertBefore(),v=!0):m&&f&&(this._onInsertAfter(),v=!0);else if(35==u){if(g){var E=this._lastNode();E&&E.focus(i.focusElement||this._getElementName(p)),v=!0}}else if(36==u){if(g){var S=this._firstNode();S&&S.focus(i.focusElement||this._getElementName(p)),v=!0}}else if(37==u){if(g&&!f){var N=this._previousElement(p);N&&this.focus(this._getElementName(N)),v=!0}else if(g&&f&&y){if(x.expanded){var j=x.getAppendDom();o=j?j.nextSibling:void 0}else{var k=x.getDom();o=k.nextSibling}o&&(n=i.getNodeFromTarget(o),r=o.nextSibling,O=i.getNodeFromTarget(r),n&&n instanceof h&&1!=x.parent.childs.length&&O&&O.parent&&(s=this.editor.getDomSelection(),a=x.nextSibling(),b.forEach(function(e){O.parent.moveBefore(e,O)}),this.focus(i.focusElement||this._getElementName(p)),this.editor._onAction("moveNodes",{nodes:b,oldBeforeNode:a,newBeforeNode:O,oldSelection:s,newSelection:this.editor.getDomSelection()})))}}else if(38==u)g&&!f?(t=this._previousNode(),t&&(this.editor.deselect(!0),t.focus(i.focusElement||this._getElementName(p))),v=!0):!g&&m&&f&&y?(t=this._previousNode(),t&&(d=this.editor.multiselection,d.start=d.start||this,d.end=t,l=this.editor._findTopLevelNodes(d.start,d.end),this.editor.select(l),t.focus("field")),v=!0):g&&f&&y&&(t=w._previousNode(),t&&t.parent&&(s=this.editor.getDomSelection(),a=x.nextSibling(),b.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(i.focusElement||this._getElementName(p)),this.editor._onAction("moveNodes",{nodes:b,oldBeforeNode:a,newBeforeNode:t,oldSelection:s,newSelection:this.editor.getDomSelection()})),v=!0);else if(39==u){if(g&&!f){var T=this._nextElement(p);T&&this.focus(this._getElementName(T)),v=!0}else if(g&&f&&y){k=w.getDom();var D=k.previousSibling;D&&(t=i.getNodeFromTarget(D))&&t.parent&&!t.isVisible()&&(s=this.editor.getDomSelection(),a=x.nextSibling(),b.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(i.focusElement||this._getElementName(p)),this.editor._onAction("moveNodes",{nodes:b,oldBeforeNode:a,newBeforeNode:t,oldSelection:s,newSelection:this.editor.getDomSelection()}))}}else if(40==u)if(g&&!f)n=this._nextNode(),n&&(this.editor.deselect(!0),n.focus(i.focusElement||this._getElementName(p))),v=!0;else if(!g&&m&&f&&y)n=this._nextNode(),n&&(d=this.editor.multiselection,d.start=d.start||this,d.end=n,l=this.editor._findTopLevelNodes(d.start,d.end),this.editor.select(l),n.focus("field")),v=!0;else if(g&&f&&y){n=x.expanded?x.append?x.append._nextNode():void 0:x._nextNode(),n&&!n.isVisible()&&(n=n.parent.showMore),n&&n instanceof h&&(n=x);var O=n&&(n._nextNode()||n.parent.append);O&&O.parent&&(s=this.editor.getDomSelection(),a=x.nextSibling(),b.forEach(function(e){O.parent.moveBefore(e,O)}),this.focus(i.focusElement||this._getElementName(p)),this.editor._onAction("moveNodes",{nodes:b,oldBeforeNode:a,newBeforeNode:O,oldSelection:s,newSelection:this.editor.getDomSelection()})),v=!0}v&&(e.preventDefault(),e.stopPropagation())},i.prototype._onExpand=function(e){if(e){var t=this.dom.tr.parentNode,n=t.parentNode,i=n.scrollTop;n.removeChild(t)}this.expanded?this.collapse(e):this.expand(e),e&&(n.appendChild(t),n.scrollTop=i)},i.onRemove=function(e){if(!Array.isArray(e))return i.onRemove([e]);if(e&&e.length>0){var t=e[0],n=t.parent,o=t.editor,r=t.getIndex();o.highlighter.unhighlight();var s=o.getDomSelection();i.blurNodes(e);var a=o.getDomSelection();e.forEach(function(e){e.parent._remove(e)}),o._onAction("removeNodes",{nodes:e.slice(0),parent:n,index:r,oldSelection:s,newSelection:a})}},i.onDuplicate=function(e){if(!Array.isArray(e))return i.onDuplicate([e]);if(e&&e.length>0){var t=e[e.length-1],n=t.parent,o=t.editor;o.deselect(o.multiselection.nodes);var r=o.getDomSelection(),s=t,a=e.map(function(e){var t=e.clone();return n.insertAfter(t,s),s=t,t});1===e.length?a[0].focus():o.select(a);var l=o.getDomSelection();o._onAction("duplicateNodes",{afterNode:t,nodes:a,parent:n,oldSelection:r,newSelection:l})}},i.prototype._onInsertBefore=function(e,t,n){var o=this.editor.getDomSelection(),r=new i(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:n});r.expand(!0),this.parent.insertBefore(r,this),this.editor.highlighter.unhighlight(),r.focus("field");var s=this.editor.getDomSelection();this.editor._onAction("insertBeforeNodes",{nodes:[r],beforeNode:this,parent:this.parent,oldSelection:o,newSelection:s})},i.prototype._onInsertAfter=function(e,t,n){var o=this.editor.getDomSelection(),r=new i(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:n});r.expand(!0),this.parent.insertAfter(r,this),this.editor.highlighter.unhighlight(),r.focus("field");var s=this.editor.getDomSelection();this.editor._onAction("insertAfterNodes",{nodes:[r],afterNode:this,parent:this.parent,oldSelection:o,newSelection:s})},i.prototype._onAppend=function(e,t,n){var o=this.editor.getDomSelection(),r=new i(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:n});r.expand(!0),this.parent.appendChild(r),this.editor.highlighter.unhighlight(),r.focus("field");var s=this.editor.getDomSelection();this.editor._onAction("appendNodes",{nodes:[r],parent:this.parent,oldSelection:o,newSelection:s})},i.prototype._onChangeType=function(e){var t=this.type;if(e!=t){var n=this.editor.getDomSelection();this.changeType(e);var i=this.editor.getDomSelection();this.editor._onAction("changeType",{node:this,oldType:t,newType:e,oldSelection:n,newSelection:i})}},i.prototype.sort=function(e,t){if(this._hasChilds()){this.hideChilds();var n=this.childs;this.childs=this.childs.concat();var i="desc"===t?-1:1;"object"===this.type?this.childs.sort(function(e,t){return i*o(e.field,t.field)}):this.childs.sort(function(t,n){var r=t.getNestedChild(e),s=n.getNestedChild(e);if(!r)return i;if(!s)return-i;var a=r.value,l=s.value;return"string"!=typeof a&&"string"!=typeof l?a>l?i:a0){var e={};return this.childs.forEach(function(t){t._getSortablePaths(e,"")}),Object.keys(e).sort()}return["."]}return"object"===this.type?["."]:[]},i.prototype._getSortablePaths=function(e,t){"array"===this.type||("object"===this.type?this.childs.forEach(function(n){if("object"===n.type)n._getSortablePaths(e,t+"."+n.field);else if("array"===n.type);else{var i=t+"."+n.field;e[i]=!0}}):e[t+"."]=!0)},i.prototype.getAppendDom=function(){return this.append||(this.append=new h(this.editor),this.append.setParent(this)),this.append.getDom()},i.prototype.getShowMoreDom=function(){return this.showMore||(this.showMore=new u(this.editor,this)),this.showMore.getDom()},i.getNodeFromTarget=function(e){for(;e;){if(e.node)return e.node;e=e.parentNode}},i.blurNodes=function(e){if(!Array.isArray(e))return void i.blurNodes([e]);var t=e[0],n=t.parent,o=t.getIndex();n.childs[o+e.length]?n.childs[o+e.length].focus():n.childs[o-1]?n.childs[o-1].focus():n.focus()},i.prototype.nextSibling=function(){var e=this.parent.childs.indexOf(this);return this.parent.childs[e+1]||this.parent.append},i.prototype._previousNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var n=t;do{n=n.previousSibling,e=i.getNodeFromTarget(n)}while(n&&e&&e instanceof h&&!e.isVisible())}return e},i.prototype._nextNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var n=t;do{n=n.nextSibling,e=i.getNodeFromTarget(n)}while(n&&e&&e instanceof h&&!e.isVisible())}return e},i.prototype._firstNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var n=t.parentNode.firstChild;e=i.getNodeFromTarget(n)}return e},i.prototype._lastNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var n=t.parentNode.lastChild;for(e=i.getNodeFromTarget(n);n&&e&&!e.isVisible();)n=n.previousSibling,e=i.getNodeFromTarget(n)}return e},i.prototype._previousElement=function(e){var t=this.dom;switch(e){case t.value:if(this.fieldEditable)return t.field;case t.field:if(this._hasChilds())return t.expand;case t.expand:return t.menu;case t.menu:if(t.drag)return t.drag;default:return null}},i.prototype._nextElement=function(e){var t=this.dom;switch(e){case t.drag:return t.menu;case t.menu:if(this._hasChilds())return t.expand;case t.expand:if(this.fieldEditable)return t.field;case t.field:if(!this._hasChilds())return t.value;default:return null}},i.prototype._getElementName=function(e){var t=this.dom;for(var n in t)if(t.hasOwnProperty(n)&&t[n]==e)return n;return null},i.prototype._hasChilds=function(){return"array"==this.type||"object"==this.type},i.TYPE_TITLES={auto:d("autoType"),object:d("objectType"),array:d("arrayType"),string:d("stringType")},i.prototype.addTemplates=function(e,t){var n=this,i=n.editor.options.templates;if(null!=i){i.length&&e.push({type:"separator"});var o=function(e,t){n._onAppend(e,t)},r=function(e,t){n._onInsertBefore(e,t)};i.forEach(function(n){e.push({text:n.text,className:n.className||"jsoneditor-type-object",title:n.title,click:t?o.bind(this,n.field,n.value):r.bind(this,n.field,n.value)})})}},i.prototype.showContextMenu=function(e,t){var n=this,o=i.TYPE_TITLES,r=[];if(this.editable.value&&r.push({text:d("type"),title:d("typeTitle"),className:"jsoneditor-type-"+this.type,submenu:[{text:d("auto"),className:"jsoneditor-type-auto"+("auto"==this.type?" jsoneditor-selected":""),title:o.auto,click:function(){n._onChangeType("auto")}},{text:d("array"),className:"jsoneditor-type-array"+("array"==this.type?" jsoneditor-selected":""),title:o.array,click:function(){n._onChangeType("array")}},{text:d("object"),className:"jsoneditor-type-object"+("object"==this.type?" jsoneditor-selected":""),title:o.object,click:function(){n._onChangeType("object")}},{text:d("string"),className:"jsoneditor-type-string"+("string"==this.type?" jsoneditor-selected":""),title:o.string,click:function(){n._onChangeType("string")}}]}),this._hasChilds()&&r.push({text:d("sort"),title:d("sortTitle")+this.type,className:"jsoneditor-sort-asc",click:function(){n._showSortModal()}}),this.parent&&this.parent._hasChilds()){r.length&&r.push({type:"separator"});var a=n.parent.childs;if(n==a[a.length-1]){var l=[{text:d("auto"),className:"jsoneditor-type-auto",title:o.auto,click:function(){n._onAppend("","","auto")}},{text:d("array"),className:"jsoneditor-type-array",title:o.array,click:function(){n._onAppend("",[])}},{text:d("object"),className:"jsoneditor-type-object",title:o.object,click:function(){n._onAppend("",{})}},{text:d("string"),className:"jsoneditor-type-string",title:o.string,click:function(){n._onAppend("","","string")}}];n.addTemplates(l,!0),r.push({text:d("appendText"),title:d("appendTitle"),submenuTitle:d("appendSubmenuTitle"),className:"jsoneditor-append",click:function(){n._onAppend("","","auto")},submenu:l})}var c=[{text:d("auto"),className:"jsoneditor-type-auto",title:o.auto,click:function(){n._onInsertBefore("","","auto")}},{text:d("array"),className:"jsoneditor-type-array",title:o.array,click:function(){n._onInsertBefore("",[])}},{text:d("object"),className:"jsoneditor-type-object",title:o.object,click:function(){n._onInsertBefore("",{})}},{text:d("string"),className:"jsoneditor-type-string",title:o.string,click:function(){n._onInsertBefore("","","string")}}];n.addTemplates(c,!1),r.push({text:d("insert"),title:d("insertTitle"),submenuTitle:d("insertSub"),className:"jsoneditor-insert",click:function(){n._onInsertBefore("","","auto")},submenu:c}),this.editable.field&&(r.push({text:d("duplicateText"),title:d("duplicateField"),className:"jsoneditor-duplicate",click:function(){i.onDuplicate(n)}}),r.push({text:d("removeText"),title:d("removeField"),className:"jsoneditor-remove",click:function(){i.onRemove(n)}}))}new s(r,{close:t}).show(e,this.editor.content)},i.prototype._showSortModal=function(){var e=this,t='
'+d("sort")+"
"+d("sortFieldLabel")+'
'+d("sortDirectionLabel")+'
';r({parent:this.editor.frame,content:t,overlayClass:"jsoneditor-modal-overlay",modalClass:"jsoneditor-modal"}).afterCreate(function(t){function n(e){s.value=e,s.className="jsoneditor-button-group jsoneditor-button-group-value-"+s.value}var i=t.modalElem().querySelector("form"),o=t.modalElem().querySelector("#ok"),r=t.modalElem().querySelector("#field"),s=t.modalElem().querySelector("#direction"),a=e.getSortablePaths().sort();a.forEach(function(e){var t=document.createElement("option");t.text=e,t.value=e,r.appendChild(t)}),r.value=e.sortedBy?e.sortedBy.path:a[0],n(e.sortedBy?e.sortedBy.direction:"asc"),s.onclick=function(e){n(e.target.getAttribute("data-value"))},o.onclick=function(n){n.preventDefault(),n.stopPropagation(),t.close();var i=r.value,o="."===i?[]:i.split(".").slice(1);e.sortedBy={path:i,direction:s.value},e.sort(o,s.value)},i&&(i.onsubmit=o.onclick)}).afterClose(function(e){e.destroy()}).show()},i.prototype._getType=function(e){return e instanceof Array?"array":e instanceof Object?"object":"string"==typeof e&&"string"!=typeof this._stringCast(e)?"string":"auto"},i.prototype._stringCast=function(e){var t=e.toLowerCase(),n=Number(e),i=parseFloat(e);return""==e?"":"null"==t?null:"true"==t||"false"!=t&&(isNaN(n)||isNaN(i)?e:n)},i.prototype._escapeHTML=function(e){if("string"!=typeof e)return String(e);var t=String(e).replace(/&/g,"&").replace(//g,">").replace(/ /g,"  ").replace(/^ /," ").replace(/ $/," "),n=JSON.stringify(t),i=n.substring(1,n.length-1);return!0===this.editor.options.escapeUnicode&&(i=c.escapeUnicodeChars(i)),i},i.prototype._unescapeHTML=function(e){var t='"'+this._escapeJSON(e)+'"';return c.parse(t).replace(/</g,"<").replace(/>/g,">").replace(/ |\u00A0/g," ").replace(/&/g,"&")},i.prototype._escapeJSON=function(e){for(var t="",n=0;nf)return 1}for(var g=0,v=Math.max(u.length,p.length);go)return 1}return 0}},function(e,t,n){var i,o,r;!function(n,s){"use strict";o=[],i=s,void 0!==(r="function"==typeof i?i.apply(t,o):i)&&(e.exports=r)}(0,function(){"use strict";function e(e){return"object"==typeof Node?e instanceof Node:e&&"object"==typeof e&&"number"==typeof e.nodeType}function t(e){return"string"==typeof e}function n(){var e=[];return{watch:e.push.bind(e),trigger:function(t,n){for(var i=!0,o={detail:n,preventDefault:function(){i=!1}},r=0;rthis.parent.visibleChilds},t.prototype.onEvent=function(e){"keydown"===e.type&&this.onKeyDown(e)},t}var o=n(8).translate;e.exports=i},function(e,t,n){"use strict";function i(e,t,n,i){for(var r={code:{text:"Code",title:"Switch to code highlighter",click:function(){i("code")}},form:{text:"Form",title:"Switch to form editor",click:function(){i("form")}},text:{text:"Text",title:"Switch to plain text editor",click:function(){i("text")}},tree:{text:"Tree",title:"Switch to tree editor",click:function(){i("tree")}},view:{text:"View",title:"Switch to tree view",click:function(){i("view")}}},s=[],a=0;a/g,">"),a.getBoundingClientRect().right}e=e||{},e.confirmKeys=e.confirmKeys||[39,35,9],e.caseSensitive=e.caseSensitive||!1;var i="",o="",r=document.createElement("div");r.style.position="relative",r.style.outline="0",r.style.border="0",r.style.margin="0",r.style.padding="0";var s=document.createElement("div");s.className="autocomplete dropdown",s.style.position="absolute",s.style.visibility="hidden";var a,l,c={onArrowDown:function(){},onArrowUp:function(){},onEnter:function(){},onTab:function(){},startFrom:0,options:[],element:null,elementHint:null,elementStyle:null,wrapper:r,show:function(e,t,n){this.startFrom=t,this.wrapper.remove(),this.elementHint&&(this.elementHint.remove(),this.elementHint=null),""==i&&(i=window.getComputedStyle(e).getPropertyValue("font-size")),""==o&&(o=window.getComputedStyle(e).getPropertyValue("font-family"));e.getBoundingClientRect().right,e.getBoundingClientRect().left;s.style.marginLeft="0",s.style.marginTop=e.getBoundingClientRect().height+"px",this.options=n,this.element!=e&&(this.element=e,this.elementStyle={zIndex:this.element.style.zIndex,position:this.element.style.position,backgroundColor:this.element.style.backgroundColor,borderColor:this.element.style.borderColor}),this.element.style.zIndex=3,this.element.style.position="relative",this.element.style.backgroundColor="transparent",this.element.style.borderColor="transparent",this.elementHint=e.cloneNode(),this.elementHint.className="autocomplete hint",this.elementHint.style.zIndex=2,this.elementHint.style.position="absolute",this.elementHint.onfocus=function(){this.element.focus()}.bind(this),this.element.addEventListener&&(this.element.removeEventListener("keydown",h),this.element.addEventListener("keydown",h,!1),this.element.removeEventListener("blur",u),this.element.addEventListener("blur",u,!1)),r.appendChild(this.elementHint),r.appendChild(s),e.parentElement.appendChild(r),this.repaint(e)},setText:function(e){this.element.innerText=e},getText:function(){return this.element.innerText},hideDropDown:function(){this.wrapper.remove(),this.elementHint&&(this.elementHint.remove(),this.elementHint=null,d.hide(),this.element.style.zIndex=this.elementStyle.zIndex,this.element.style.position=this.elementStyle.position,this.element.style.backgroundColor=this.elementStyle.backgroundColor,this.element.style.borderColor=this.elementStyle.borderColor)},repaint:function(t){var i=t.innerText;i=i.replace("\n","");var o=(this.startFrom,this.options,this.options.length),r=i.substring(this.startFrom);l=i.substring(0,this.startFrom);for(var a=0;a"+r[m].substring(n.length)+"",i.push(f),t.appendChild(f)}0!==i.length&&(1===i.length&&(n.toLowerCase()===i[0].__hint.toLowerCase()&&!e.caseSensitive||n===i[0].__hint&&e.caseSensitive)||i.length<2||(c.highlight(0),u>3*p?(t.style.maxHeight=u+"px",t.style.top="",t.style.bottom="100%"):(t.style.top="100%",t.style.bottom="",t.style.maxHeight=p+"px"),t.style.visibility="visible"))},highlight:function(e){-1!=r&&i[r]&&(i[r].className="item"),i[e].className="item hover",r=e},move:function(e){return"hidden"===t.style.visibility?"":o+e===-1||o+e===i.length?i[o].__hint:(o+=e,c.highlight(o),i[o].__hint)},onmouseselection:function(){}};return c}(s,c),h=function(n){n=n||window.event;var i=n.keyCode;if(null!=this.elementHint&&33!=i&&34!=i){if(27==i)return c.hideDropDown(),c.element.focus(),n.preventDefault(),void n.stopPropagation();var o=this.element.innerText;o=o.replace("\n","");this.startFrom;if(e.confirmKeys.indexOf(i)>=0)return 9==i&&0==this.elementHint.innerText.length&&c.onTab(),void(this.elementHint.innerText.length>0&&this.element.innerText!=this.elementHint.realInnerText&&(this.element.innerText=this.elementHint.realInnerText,c.hideDropDown(),t(this.element),9==i&&(c.element.focus(),n.preventDefault(),n.stopPropagation())));if(13!=i){if(40==i){var r=o.substring(this.startFrom),a=d.move(1);return""==a&&c.onArrowDown(),this.elementHint.innerText=l+r+a.substring(r.length),this.elementHint.realInnerText=l+a,n.preventDefault(),void n.stopPropagation()}if(38==i){var r=o.substring(this.startFrom),a=d.move(-1);return""==a&&c.onArrowUp(),this.elementHint.innerText=l+r+a.substring(r.length),this.elementHint.realInnerText=l+a,n.preventDefault(),void n.stopPropagation()}}else if(0==this.elementHint.innerText.length)c.onEnter();else{var h="hidden"==s.style.visibility;if(d.hide(),h)return c.hideDropDown(),c.element.focus(),void c.onEnter();this.element.innerText=this.elementHint.realInnerText,c.hideDropDown(),t(this.element),n.preventDefault(),n.stopPropagation()}}}.bind(c),u=function(e){c.hideDropDown()}.bind(c);return d.onmouseselection=function(e,n){n.element.innerText=n.elementHint.innerText=l+e,n.hideDropDown(),window.setTimeout(function(){n.element.focus(),t(n.element)},1)},c}e.exports=n},function(e,t,n){"use strict";var i=n(18),o=n(15),r=n(4),s={};s.create=function(e,t){t=t||{},void 0===t.statusBar&&(t.statusBar=!0),this.options=t,t.indentation?this.indentation=Number(t.indentation):this.indentation=2;var s=t.ace?t.ace:i;if(this.mode="code"==t.mode?"code":"text","code"==this.mode&&void 0===s&&(this.mode="text",console.warn("Failed to load Ace editor, falling back to plain text mode. Please use a JSONEditor bundle including Ace, or pass Ace as via the configuration option `ace`.")),this.theme=t.theme||"ace/theme/jsoneditor","ace/theme/jsoneditor"===this.theme&&s)try{n(22)}catch(e){console.error(e)}t.onTextSelectionChange&&this.onTextSelectionChange(t.onTextSelectionChange);var a=this;this.container=e,this.dom={},this.aceEditor=void 0,this.textarea=void 0,this.validateSchema=null,this._debouncedValidate=r.debounce(this.validate.bind(this),this.DEBOUNCE_INTERVAL),this.width=e.clientWidth,this.height=e.clientHeight,this.frame=document.createElement("div"),this.frame.className="jsoneditor jsoneditor-mode-"+this.options.mode,this.frame.onclick=function(e){e.preventDefault()},this.frame.onkeydown=function(e){a._onKeyDown(e)},this.menu=document.createElement("div"),this.menu.className="jsoneditor-menu",this.frame.appendChild(this.menu);var l=document.createElement("button");l.type="button",l.className="jsoneditor-format",l.title="Format JSON data, with proper indentation and line feeds (Ctrl+\\)",this.menu.appendChild(l),l.onclick=function(){try{a.format(),a._onChange()}catch(e){a._onError(e)}};var c=document.createElement("button");c.type="button",c.className="jsoneditor-compact",c.title="Compact JSON data, remove all whitespaces (Ctrl+Shift+\\)",this.menu.appendChild(c),c.onclick=function(){try{a.compact(),a._onChange()}catch(e){a._onError(e)}};var d=document.createElement("button");d.type="button",d.className="jsoneditor-repair",d.title="Repair JSON: fix quotes and escape characters, remove comments and JSONP notation, turn JavaScript objects into JSON.",this.menu.appendChild(d),d.onclick=function(){try{a.repair(),a._onChange()}catch(e){a._onError(e)}},this.options&&this.options.modes&&this.options.modes.length&&(this.modeSwitcher=new o(this.menu,this.options.modes,this.options.mode,function(e){a.setMode(e),a.modeSwitcher.focus()}));var h={},u=this.options.onEditable&&typeof("function"===this.options.onEditable)&&!this.options.onEditable(h);if(this.content=document.createElement("div"),this.content.className="jsoneditor-outer",this.frame.appendChild(this.content),this.container.appendChild(this.frame),"code"==this.mode){this.editorDom=document.createElement("div"),this.editorDom.style.height="100%",this.editorDom.style.width="100%",this.content.appendChild(this.editorDom);var p=s.edit(this.editorDom);p.$blockScrolling=1/0,p.setTheme(this.theme),p.setOptions({readOnly:u}),p.setShowPrintMargin(!1),p.setFontSize(13),p.getSession().setMode("ace/mode/json"),p.getSession().setTabSize(this.indentation),p.getSession().setUseSoftTabs(!0),p.getSession().setUseWrapMode(!0),p.commands.bindKey("Ctrl-L",null),p.commands.bindKey("Command-L",null),this.aceEditor=p,this.hasOwnProperty("editor")||Object.defineProperty(this,"editor",{get:function(){return console.warn('Property "editor" has been renamed to "aceEditor".'),a.aceEditor},set:function(e){console.warn('Property "editor" has been renamed to "aceEditor".'),a.aceEditor=e}});var m=document.createElement("a");m.appendChild(document.createTextNode("powered by ace")),m.href="http://ace.ajax.org",m.target="_blank",m.className="jsoneditor-poweredBy",m.onclick=function(){window.open(m.href,m.target)},this.menu.appendChild(m),p.on("change",this._onChange.bind(this)),p.on("changeSelection",this._onSelect.bind(this))}else{var f=document.createElement("textarea");f.className="jsoneditor-text",f.spellcheck=!1,this.content.appendChild(f),this.textarea=f,this.textarea.readOnly=u,null===this.textarea.oninput?this.textarea.oninput=this._onChange.bind(this):this.textarea.onchange=this._onChange.bind(this),f.onselect=this._onSelect.bind(this),f.onmousedown=this._onMouseDown.bind(this),f.onblur=this._onBlur.bind(this)}var g=document.createElement("div");if(g.className="validation-errors-container",this.dom.validationErrorsContainer=g,this.frame.appendChild(g),t.statusBar){r.addClassName(this.content,"has-status-bar"),this.curserInfoElements={};var v=document.createElement("div");this.dom.statusBar=v,v.className="jsoneditor-statusbar",this.frame.appendChild(v);var y=document.createElement("span");y.className="jsoneditor-curserinfo-label",y.innerText="Ln:";var b=document.createElement("span");b.className="jsoneditor-curserinfo-val",b.innerText="1",v.appendChild(y),v.appendChild(b);var w=document.createElement("span");w.className="jsoneditor-curserinfo-label",w.innerText="Col:";var x=document.createElement("span");x.className="jsoneditor-curserinfo-val",x.innerText="1",v.appendChild(w),v.appendChild(x),this.curserInfoElements.colVal=x,this.curserInfoElements.lnVal=b;var _=document.createElement("span");_.className="jsoneditor-curserinfo-label",_.innerText="characters selected",_.style.display="none";var C=document.createElement("span");C.className="jsoneditor-curserinfo-count",C.innerText="0",C.style.display="none",this.curserInfoElements.countLabel=_,this.curserInfoElements.countVal=C,v.appendChild(C),v.appendChild(_)}this.setSchema(this.options.schema,this.options.schemaRefs)},s._onChange=function(){if(this._debouncedValidate(),this.options.onChange)try{this.options.onChange()}catch(e){console.error("Error in onChange callback: ",e)}},s._onSelect=function(){this._updateCursorInfo(),this._emitSelectionChange()},s._onKeyDown=function(e){var t=e.which||e.keyCode,n=!1;220==t&&e.ctrlKey&&(e.shiftKey?(this.compact(),this._onChange()):(this.format(),this._onChange()),n=!0),n&&(e.preventDefault(), +e.stopPropagation()),this._updateCursorInfo(),this._emitSelectionChange()},s._onMouseDown=function(e){this._updateCursorInfo(),this._emitSelectionChange()},s._onBlur=function(e){this._updateCursorInfo(),this._emitSelectionChange()},s._updateCursorInfo=function(){function e(){o.curserInfoElements.countVal.innerText!==i&&(o.curserInfoElements.countVal.innerText=i,o.curserInfoElements.countVal.style.display=i?"inline":"none",o.curserInfoElements.countLabel.style.display=i?"inline":"none"),o.curserInfoElements.lnVal.innerText=t,o.curserInfoElements.colVal.innerText=n}var t,n,i,o=this;if(this.textarea)setTimeout(function(){var s=r.getInputSelection(o.textarea);s.startIndex!==s.endIndex&&(i=s.endIndex-s.startIndex),i&&o.cursorInfo&&o.cursorInfo.line===s.end.row&&o.cursorInfo.column===s.end.column?(t=s.start.row,n=s.start.column):(t=s.end.row,n=s.end.column),o.cursorInfo={line:t,column:n,count:i},o.options.statusBar&&e()},0);else if(this.aceEditor&&this.curserInfoElements){var s=this.aceEditor.getCursorPosition(),a=this.aceEditor.getSelectedText();t=s.row+1,n=s.column+1,i=a.length,o.cursorInfo={line:t,column:n,count:i},this.options.statusBar&&e()}},s._emitSelectionChange=function(){if(this._selectionChangedHandler){var e=this.getTextSelection();this._selectionChangedHandler(e.start,e.end,e.text)}},s.destroy=function(){this.aceEditor&&(this.aceEditor.destroy(),this.aceEditor=null),this.frame&&this.container&&this.frame.parentNode==this.container&&this.container.removeChild(this.frame),this.modeSwitcher&&(this.modeSwitcher.destroy(),this.modeSwitcher=null),this.textarea=null,this._debouncedValidate=null},s.compact=function(){var e=this.get(),t=JSON.stringify(e);this.setText(t)},s.format=function(){var e=this.get(),t=JSON.stringify(e,null,this.indentation);this.setText(t)},s.repair=function(){var e=this.getText(),t=r.sanitize(e);this.setText(t)},s.focus=function(){this.textarea&&this.textarea.focus(),this.aceEditor&&this.aceEditor.focus()},s.resize=function(){if(this.aceEditor){this.aceEditor.resize(!1)}},s.set=function(e){this.setText(JSON.stringify(e,null,this.indentation))},s.get=function(){var e,t=this.getText();try{e=r.parse(t)}catch(n){t=r.sanitize(t),e=r.parse(t)}return e},s.getText=function(){return this.textarea?this.textarea.value:this.aceEditor?this.aceEditor.getValue():""},s.setText=function(e){var t;if(t=!0===this.options.escapeUnicode?r.escapeUnicodeChars(e):e,this.textarea&&(this.textarea.value=t),this.aceEditor){var n=this.options.onChange;this.options.onChange=null,this.aceEditor.setValue(t,-1),this.options.onChange=n}this.validate()},s.validate=function(){this.dom.validationErrors&&(this.dom.validationErrors.parentNode.removeChild(this.dom.validationErrors),this.dom.validationErrors=null,this.content.style.marginBottom="",this.content.style.paddingBottom="");var e,t=!1,n=[];try{e=this.get(),t=!0}catch(e){}if(t&&this.validateSchema){this.validateSchema(e)||(n=this.validateSchema.errors.map(function(e){return r.improveSchemaError(e)}))}if(n.length>0){if(n.length>3){n=n.slice(0,3);var i=this.validateSchema.errors.length-3;n.push("("+i+" more errors...)")}var o=document.createElement("div");o.innerHTML=''+n.map(function(e){return''+("string"==typeof e?'":"")+""}).join("")+"
'+e+"
"+e.dataPath+""+e.message+"
",this.dom.validationErrors=o,this.dom.validationErrorsContainer.appendChild(o);var s=o.clientHeight+(this.dom.statusBar?this.dom.statusBar.clientHeight:0);this.content.style.marginBottom=-s+"px",this.content.style.paddingBottom=s+"px"}if(this.aceEditor){this.aceEditor.resize(!1)}},s.getTextSelection=function(){var e={};if(this.textarea){var t=r.getInputSelection(this.textarea);return this.cursorInfo&&this.cursorInfo.line===t.end.row&&this.cursorInfo.column===t.end.column?(e.start=t.end,e.end=t.start):e=t,{start:e.start,end:e.end,text:this.textarea.value.substring(t.startIndex,t.endIndex)}}if(this.aceEditor){var n=this.aceEditor.getSelection(),i=this.aceEditor.getSelectedText(),o=n.getRange(),s=n.getSelectionLead();return s.row===o.end.row&&s.column===o.end.column?e=o:(e.start=o.end,e.end=o.start),{start:{row:e.start.row+1,column:e.start.column+1},end:{row:e.end.row+1,column:e.end.column+1},text:i}}},s.onTextSelectionChange=function(e){"function"==typeof e&&(this._selectionChangedHandler=r.debounce(e,this.DEBOUNCE_INTERVAL))},s.setTextSelection=function(e,t){if(e&&t)if(this.textarea){var n=r.getIndexForPosition(this.textarea,e.row,e.column),i=r.getIndexForPosition(this.textarea,t.row,t.column);if(n>-1&&i>-1)if(this.textarea.setSelectionRange)this.textarea.focus(),this.textarea.setSelectionRange(n,i);else if(this.textarea.createTextRange){var o=this.textarea.createTextRange();o.collapse(!0),o.moveEnd("character",i),o.moveStart("character",n),o.select()}}else if(this.aceEditor){var o={start:{row:e.row-1,column:e.column-1},end:{row:t.row-1,column:t.column-1}};this.aceEditor.selection.setRange(o)}},e.exports=[{mode:"text",mixin:s,data:"text",load:s.format},{mode:"code",mixin:s,data:"text",load:s.format}]},function(e,t,n){var i;if(window.ace)i=window.ace;else try{i=n(!function(){var e=new Error('Cannot find module "brace"');throw e.code="MODULE_NOT_FOUND",e}()),n(19),n(21)}catch(e){}e.exports=i},function(e,t,n){ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var i=e("../lib/oop"),o=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"text",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]}};i.inherits(r,o),t.JsonHighlightRules=r}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var i=e("../range").Range,o=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t),o=n.match(/^(\s*\})/);if(!o)return 0;var r=o[1].length,s=e.findMatchingBracket({row:t,column:r});if(!s||s.row==t)return 0;var a=this.$getIndent(e.getLine(s.row));e.replace(new i(t,0,t,r-1),a)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(o.prototype),t.MatchingBraceOutdent=o}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var i=e("../../lib/oop"),o=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};i.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var i=e.getLine(n);if(this.singleLineBlockCommentRe.test(i)&&!this.startRegionRe.test(i)&&!this.tripleStarBlockCommentRe.test(i))return"";var o=this._getFoldWidgetBase(e,t,n);return!o&&this.startRegionRe.test(i)?"start":o},this.getFoldWidgetRange=function(e,t,n,i){var o=e.getLine(n);if(this.startRegionRe.test(o))return this.getCommentRegionBlock(e,o,n);var r=o.match(this.foldingStartMarker);if(r){var s=r.index;if(r[1])return this.openingBracketBlock(e,r[1],n,s);var a=e.getCommentFoldRange(n,s+r[0].length,1);return a&&!a.isMultiLine()&&(i?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}if("markbegin"!==t){var r=o.match(this.foldingStopMarker);if(r){var s=r.index+r[0].length;return r[1]?this.closingBracketBlock(e,r[1],n,s):e.getCommentFoldRange(n,s,-1)}}},this.getSectionRange=function(e,t){var n=e.getLine(t),i=n.search(/\S/),r=t,s=n.length;t+=1;for(var a=t,l=e.getLength();++tc)break;var d=this.getFoldWidgetRange(e,"all",t);if(d){if(d.start.row<=r)break;if(d.isMultiLine())t=d.end.row;else if(i==c)break}a=t}}return new o(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var i=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new o(s,i,d,t.length)}}.call(s.prototype)}),ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/worker/worker_client"],function(e,t,i){"use strict";var o=e("../lib/oop"),r=e("./text").Mode,s=e("./json_highlight_rules").JsonHighlightRules,a=e("./matching_brace_outdent").MatchingBraceOutdent,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,d=e("../worker/worker_client").WorkerClient,h=function(){this.HighlightRules=s,this.$outdent=new a,this.$behaviour=new l,this.foldingRules=new c};o.inherits(h,r),function(){this.getNextLineIndent=function(e,t,n){var i=this.$getIndent(t);if("start"==e){t.match(/^.*[\{\(\[]\s*$/)&&(i+=n)}return i},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new d(["ace"],n(20),"JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/json"}.call(h.prototype),t.Mode=h})},function(e,t){e.exports.id="ace/mode/json_worker",e.exports.src='"no use strict";!function(window){function resolveModuleId(id,paths){for(var testPath=id,tail="";testPath;){var alias=paths[testPath];if("string"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\/*$/,"/")+(tail||alias.main||alias.name);if(alias===!1)return"";var i=testPath.lastIndexOf("/");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:"error",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf("!")){var chunks=moduleName.split("!");return window.normalizeModule(parentId,chunks[0])+"!"+window.normalizeModule(parentId,chunks[1])}if("."==moduleName.charAt(0)){var base=parentId.split("/").slice(0,-1).join("/");for(moduleName=(base?base+"/":"")+moduleName;-1!==moduleName.indexOf(".")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\.\\//,"").replace(/\\/\\.\\//,"/").replace(/[^\\/]+\\/\\.\\.\\//,"")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error("worker.js acequire() accepts only (parentId, id) as arguments");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log("unable to load "+id);var path=resolveModuleId(id,window.acequire.tlns);return".js"!=path.slice(-3)&&(path+=".js"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,"string"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),"function"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=["require","exports","module"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case"require":return req;case"exports":return module.exports;case"module":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire("ace/lib/event_emitter").EventEmitter,oop=window.acequire("ace/lib/oop"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:"call",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:"event",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error("Unknown command:"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire("ace/lib/es5-shim"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}}(this),ace.define("ace/lib/oop",["require","exports","module"],function(acequire,exports){"use strict";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define("ace/range",["require","exports","module"],function(acequire,exports){"use strict";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){"object"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){"object"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define("ace/apply_delta",["require","exports","module"],function(acequire,exports){"use strict";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||"";switch(delta.action){case"insert":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case"remove":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(acequire,exports){"use strict";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){"object"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?"unshift":"push"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),EventEmitter=acequire("./lib/event_emitter").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.columnthis.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal("change",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),applyDelta=acequire("./apply_delta").applyDelta,EventEmitter=acequire("./lib/event_emitter").EventEmitter,Range=acequire("./range").Range,Anchor=acequire("./anchor").Anchor,Document=function(textOrLines){this.$lines=[""],0===textOrLines.length?this.$lines=[""]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0==="aaa".split(/a/).length?function(text){return text.replace(/\\r\\n|\\r/g,"\\n").split("\\n")}:function(text){return text.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=match?match[1]:"\\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\\r\\n";case"unix":return"\\n";default:return this.$autoNewLine||"\\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return"\\r\\n"==text||"\\r"==text||"\\n"==text},this.getLine=function(row){return this.$lines[row]||""},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||"").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, [\'\', \'\']) instead."),this.insertMergedLines(position,["",""])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:"insert",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([""]),column=0):(lines=[""].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:"insert",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:"remove",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:"remove",lines:["",""]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert="insert"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal("change",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(""),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:"insert"==delta.action?"remove":"insert",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define("ace/lib/lang",["require","exports","module"],function(acequire,exports){"use strict";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split("").reverse().join("")},exports.stringRepeat=function(string,count){for(var result="";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\s\\s*/,trimEndRegexp=/\\s\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,"")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,"")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&"object"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if("object"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if("[object Object]"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,"\\\\$1")},exports.escapeHTML=function(str){return str.replace(/&/g,"&").replace(/"/g,""").replace(/\'/g,"'").replace(/i;i+=2){if(Array.isArray(data[i+1]))var d={action:"insert",start:data[i],lines:data[i+1]};else var d={action:"remove",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define("ace/mode/json/json_parse",["require","exports","module"],function(){"use strict";var at,ch,text,value,escapee={\'"\':\'"\',"\\\\":"\\\\","/":"/",b:"\\b",f:"\\f",n:"\\n",r:"\\r",t:"\t"},error=function(m){throw{name:"SyntaxError",message:m,at:at,text:text}},next=function(c){return c&&c!==ch&&error("Expected \'"+c+"\' instead of \'"+ch+"\'"),ch=text.charAt(at),at+=1,ch},number=function(){var number,string="";for("-"===ch&&(string="-",next("-"));ch>="0"&&"9">=ch;)string+=ch,next();if("."===ch)for(string+=".";next()&&ch>="0"&&"9">=ch;)string+=ch;if("e"===ch||"E"===ch)for(string+=ch,next(),("-"===ch||"+"===ch)&&(string+=ch,next());ch>="0"&&"9">=ch;)string+=ch,next();return number=+string,isNaN(number)?(error("Bad number"),void 0):number},string=function(){var hex,i,uffff,string="";if(\'"\'===ch)for(;next();){if(\'"\'===ch)return next(),string;if("\\\\"===ch)if(next(),"u"===ch){for(uffff=0,i=0;4>i&&(hex=parseInt(next(),16),isFinite(hex));i+=1)uffff=16*uffff+hex;string+=String.fromCharCode(uffff)}else{if("string"!=typeof escapee[ch])break;string+=escapee[ch]}else string+=ch}error("Bad string")},white=function(){for(;ch&&" ">=ch;)next()},word=function(){switch(ch){case"t":return next("t"),next("r"),next("u"),next("e"),!0;case"f":return next("f"),next("a"),next("l"),next("s"),next("e"),!1;case"n":return next("n"),next("u"),next("l"),next("l"),null}error("Unexpected \'"+ch+"\'")},array=function(){var array=[];if("["===ch){if(next("["),white(),"]"===ch)return next("]"),array;for(;ch;){if(array.push(value()),white(),"]"===ch)return next("]"),array;next(","),white()}}error("Bad array")},object=function(){var key,object={};if("{"===ch){if(next("{"),white(),"}"===ch)return next("}"),object;for(;ch;){if(key=string(),white(),next(":"),Object.hasOwnProperty.call(object,key)&&error(\'Duplicate key "\'+key+\'"\'),object[key]=value(),white(),"}"===ch)return next("}"),object;next(","),white()}}error("Bad object")};return value=function(){switch(white(),ch){case"{":return object();case"[":return array();case\'"\':return string();case"-":return number();default:return ch>="0"&&"9">=ch?number():word()}},function(source,reviver){var result;return text=source,at=0,ch=" ",result=value(),white(),ch&&error("Syntax error"),"function"==typeof reviver?function walk(holder,key){var k,v,value=holder[key];if(value&&"object"==typeof value)for(k in value)Object.hasOwnProperty.call(value,k)&&(v=walk(value,k),void 0!==v?value[k]=v:delete value[k]);return reviver.call(holder,key,value)}({"":result},""):result}}),ace.define("ace/mode/json_worker",["require","exports","module","ace/lib/oop","ace/worker/mirror","ace/mode/json/json_parse"],function(acequire,exports){"use strict";var oop=acequire("../lib/oop"),Mirror=acequire("../worker/mirror").Mirror,parse=acequire("./json/json_parse"),JsonWorker=exports.JsonWorker=function(sender){Mirror.call(this,sender),this.setTimeout(200)};oop.inherits(JsonWorker,Mirror),function(){this.onUpdate=function(){var value=this.doc.getValue(),errors=[];try{value&&parse(value)}catch(e){var pos=this.doc.indexToPosition(e.at-1);errors.push({row:pos.row,column:pos.column,text:e.message,type:"error"})}this.sender.emit("annotate",errors)}}.call(JsonWorker.prototype)}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,"sentinel",{}),"sentinel"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if("function"!=typeof target)throw new TypeError("Function.prototype.bind called on incompatible "+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,"__defineGetter__"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,"XXX"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0\n}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return"[object Array]"==_toString(obj)});var boxedString=Object("a"),splitString="a"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,thisp=arguments[1],i=-1,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=[],thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError("reduce of empty array with no initial value")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError("reduceRight of empty array with no initial value")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(object,property){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if("object"!=typeof prototype)throw new TypeError("typeof prototype["+typeof prototype+"] != \'object\'");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom="undefined"==typeof document||doesDefinePropertyWork(document.createElement("div"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR="Property description must be an object: ",ERR_NON_OBJECT_TARGET="Object.defineProperty called on non-object: ",ERR_ACCESSORS_NOT_SUPPORTED="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(object,property,descriptor){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if("object"!=typeof descriptor&&"function"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,"value"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,"get")&&defineGetter(object,property,descriptor.get),owns(descriptor,"set")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return"function"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name="";owns(object,name);)name+="?";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError("Object.keys called on a non-object");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws="\t\\n\v\\f\\r   ᠎              \\u2028\\u2029\ufeff";if(!String.prototype.trim||ws.trim()){ws="["+ws+"]";var trimBeginRegexp=RegExp("^"+ws+ws+"*"),trimEndRegexp=RegExp(ws+ws+"*$");String.prototype.trim=function(){return(this+"").replace(trimBeginRegexp,"").replace(trimEndRegexp,"")}}var toObject=function(o){if(null==o)throw new TypeError("can\'t convert "+o+" to object");return Object(o)}});'},function(e,t){ace.define("ace/ext/searchbox",["require","exports","module","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/keyboard/hash_handler","ace/lib/keys"],function(e,t,n){"use strict";var i=e("../lib/dom"),o=e("../lib/lang"),r=e("../lib/event"),s=e("../keyboard/hash_handler").HashHandler,a=e("../lib/keys");i.importCssString('\t.ace_search {\tbackground-color: #ddd;\tcolor: #666;\tborder: 1px solid #cbcbcb;\tborder-top: 0 none;\toverflow: hidden;\tmargin: 0;\tpadding: 4px 6px 0 4px;\tposition: absolute;\ttop: 0;\tz-index: 99;\twhite-space: normal;\t}\t.ace_search.left {\tborder-left: 0 none;\tborder-radius: 0px 0px 5px 0px;\tleft: 0;\t}\t.ace_search.right {\tborder-radius: 0px 0px 0px 5px;\tborder-right: 0 none;\tright: 0;\t}\t.ace_search_form, .ace_replace_form {\tmargin: 0 20px 4px 0;\toverflow: hidden;\tline-height: 1.9;\t}\t.ace_replace_form {\tmargin-right: 0;\t}\t.ace_search_form.ace_nomatch {\toutline: 1px solid red;\t}\t.ace_search_field {\tborder-radius: 3px 0 0 3px;\tbackground-color: white;\tcolor: black;\tborder: 1px solid #cbcbcb;\tborder-right: 0 none;\tbox-sizing: border-box!important;\toutline: 0;\tpadding: 0;\tfont-size: inherit;\tmargin: 0;\tline-height: inherit;\tpadding: 0 6px;\tmin-width: 17em;\tvertical-align: top;\t}\t.ace_searchbtn {\tborder: 1px solid #cbcbcb;\tline-height: inherit;\tdisplay: inline-block;\tpadding: 0 6px;\tbackground: #fff;\tborder-right: 0 none;\tborder-left: 1px solid #dcdcdc;\tcursor: pointer;\tmargin: 0;\tposition: relative;\tbox-sizing: content-box!important;\tcolor: #666;\t}\t.ace_searchbtn:last-child {\tborder-radius: 0 3px 3px 0;\tborder-right: 1px solid #cbcbcb;\t}\t.ace_searchbtn:disabled {\tbackground: none;\tcursor: default;\t}\t.ace_searchbtn:hover {\tbackground-color: #eef1f6;\t}\t.ace_searchbtn.prev, .ace_searchbtn.next {\tpadding: 0px 0.7em\t}\t.ace_searchbtn.prev:after, .ace_searchbtn.next:after {\tcontent: "";\tborder: solid 2px #888;\twidth: 0.5em;\theight: 0.5em;\tborder-width: 2px 0 0 2px;\tdisplay:inline-block;\ttransform: rotate(-45deg);\t}\t.ace_searchbtn.next:after {\tborder-width: 0 2px 2px 0 ;\t}\t.ace_searchbtn_close {\tbackground: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\tborder-radius: 50%;\tborder: 0 none;\tcolor: #656565;\tcursor: pointer;\tfont: 16px/16px Arial;\tpadding: 0;\theight: 14px;\twidth: 14px;\ttop: 9px;\tright: 7px;\tposition: absolute;\t}\t.ace_searchbtn_close:hover {\tbackground-color: #656565;\tbackground-position: 50% 100%;\tcolor: white;\t}\t.ace_button {\tmargin-left: 2px;\tcursor: pointer;\t-webkit-user-select: none;\t-moz-user-select: none;\t-o-user-select: none;\t-ms-user-select: none;\tuser-select: none;\toverflow: hidden;\topacity: 0.7;\tborder: 1px solid rgba(100,100,100,0.23);\tpadding: 1px;\tbox-sizing: border-box!important;\tcolor: black;\t}\t.ace_button:hover {\tbackground-color: #eee;\topacity:1;\t}\t.ace_button:active {\tbackground-color: #ddd;\t}\t.ace_button.checked {\tborder-color: #3399ff;\topacity:1;\t}\t.ace_search_options{\tmargin-bottom: 3px;\ttext-align: right;\t-webkit-user-select: none;\t-moz-user-select: none;\t-o-user-select: none;\t-ms-user-select: none;\tuser-select: none;\tclear: both;\t}\t.ace_search_counter {\tfloat: left;\tfont-family: arial;\tpadding: 0 8px;\t}',"ace_searchbox");var l=''.replace(/> +/g,">"),c=function(e,t,n){var o=i.createElement("div");o.innerHTML=l,this.element=o.firstChild,this.setSession=this.setSession.bind(this),this.$init(),this.setEditor(e)};(function(){this.setEditor=function(e){e.searchBox=this,e.renderer.scroller.appendChild(this.element),this.editor=e},this.setSession=function(e){this.searchRange=null,this.$syncOptions(!0)},this.$initElements=function(e){this.searchBox=e.querySelector(".ace_search_form"),this.replaceBox=e.querySelector(".ace_replace_form"),this.searchOption=e.querySelector("[action=searchInSelection]"),this.replaceOption=e.querySelector("[action=toggleReplace]"),this.regExpOption=e.querySelector("[action=toggleRegexpMode]"),this.caseSensitiveOption=e.querySelector("[action=toggleCaseSensitive]"),this.wholeWordOption=e.querySelector("[action=toggleWholeWords]"),this.searchInput=this.searchBox.querySelector(".ace_search_field"),this.replaceInput=this.replaceBox.querySelector(".ace_search_field"),this.searchCounter=e.querySelector(".ace_search_counter")},this.$init=function(){var e=this.element;this.$initElements(e);var t=this;r.addListener(e,"mousedown",function(e){setTimeout(function(){t.activeInput.focus()},0),r.stopPropagation(e)}),r.addListener(e,"click",function(e){var n=e.target||e.srcElement,i=n.getAttribute("action");i&&t[i]?t[i]():t.$searchBarKb.commands[i]&&t.$searchBarKb.commands[i].exec(t),r.stopPropagation(e)}),r.addCommandKeyListener(e,function(e,n,i){var o=a.keyCodeToString(i),s=t.$searchBarKb.findKeyCommand(n,o);s&&s.exec&&(s.exec(t),r.stopEvent(e))}),this.$onChange=o.delayedCall(function(){t.find(!1,!1)}),r.addListener(this.searchInput,"input",function(){t.$onChange.schedule(20)}),r.addListener(this.searchInput,"focus",function(){t.activeInput=t.searchInput,t.searchInput.value&&t.highlight()}),r.addListener(this.replaceInput,"focus",function(){t.activeInput=t.replaceInput,t.searchInput.value&&t.highlight()})},this.$closeSearchBarKb=new s([{bindKey:"Esc",name:"closeSearchBar",exec:function(e){e.searchBox.hide()}}]),this.$searchBarKb=new s,this.$searchBarKb.bindKeys({"Ctrl-f|Command-f":function(e){var t=e.isReplace=!e.isReplace;e.replaceBox.style.display=t?"":"none",e.replaceOption.checked=!1,e.$syncOptions(),e.searchInput.focus()},"Ctrl-H|Command-Option-F":function(e){e.replaceOption.checked=!0,e.$syncOptions(),e.replaceInput.focus()},"Ctrl-G|Command-G":function(e){e.findNext()},"Ctrl-Shift-G|Command-Shift-G":function(e){e.findPrev()},esc:function(e){setTimeout(function(){e.hide()})},Return:function(e){e.activeInput==e.replaceInput&&e.replace(),e.findNext()},"Shift-Return":function(e){e.activeInput==e.replaceInput&&e.replace(),e.findPrev()},"Alt-Return":function(e){e.activeInput==e.replaceInput&&e.replaceAll(),e.findAll()},Tab:function(e){(e.activeInput==e.replaceInput?e.searchInput:e.replaceInput).focus()}}),this.$searchBarKb.addCommands([{name:"toggleRegexpMode",bindKey:{win:"Alt-R|Alt-/",mac:"Ctrl-Alt-R|Ctrl-Alt-/"},exec:function(e){e.regExpOption.checked=!e.regExpOption.checked,e.$syncOptions()}},{name:"toggleCaseSensitive",bindKey:{win:"Alt-C|Alt-I",mac:"Ctrl-Alt-R|Ctrl-Alt-I"},exec:function(e){e.caseSensitiveOption.checked=!e.caseSensitiveOption.checked,e.$syncOptions()}},{name:"toggleWholeWords",bindKey:{win:"Alt-B|Alt-W",mac:"Ctrl-Alt-B|Ctrl-Alt-W"},exec:function(e){e.wholeWordOption.checked=!e.wholeWordOption.checked,e.$syncOptions()}},{name:"toggleReplace",exec:function(e){e.replaceOption.checked=!e.replaceOption.checked,e.$syncOptions()}},{name:"searchInSelection",exec:function(e){e.searchOption.checked=!e.searchRange,e.setSearchRange(e.searchOption.checked&&e.editor.getSelectionRange()),e.$syncOptions()}}]),this.setSearchRange=function(e){this.searchRange=e,e?this.searchRangeMarker=this.editor.session.addMarker(e,"ace_active-line"):this.searchRangeMarker&&(this.editor.session.removeMarker(this.searchRangeMarker),this.searchRangeMarker=null)},this.$syncOptions=function(e){i.setCssClass(this.replaceOption,"checked",this.searchRange),i.setCssClass(this.searchOption,"checked",this.searchOption.checked),this.replaceOption.textContent=this.replaceOption.checked?"-":"+",i.setCssClass(this.regExpOption,"checked",this.regExpOption.checked),i.setCssClass(this.wholeWordOption,"checked",this.wholeWordOption.checked),i.setCssClass(this.caseSensitiveOption,"checked",this.caseSensitiveOption.checked),this.replaceBox.style.display=this.replaceOption.checked?"":"none",this.find(!1,!1,e)},this.highlight=function(e){this.editor.session.highlight(e||this.editor.$search.$options.re),this.editor.renderer.updateBackMarkers()},this.find=function(e,t,n){var o=this.editor.find(this.searchInput.value,{skipCurrent:e,backwards:t,wrap:!0,regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked,preventScroll:n,range:this.searchRange}),r=!o&&this.searchInput.value;i.setCssClass(this.searchBox,"ace_nomatch",r),this.editor._emit("findSearchBox",{match:!r}),this.highlight(),this.updateCounter()},this.updateCounter=function(){var e=this.editor,t=e.$search.$options.re,n=0,i=0;if(t){var o=this.searchRange?e.session.getTextRange(this.searchRange):e.getValue(),r=e.session.doc.positionToIndex(e.selection.anchor);this.searchRange&&(r-=e.session.doc.positionToIndex(this.searchRange.start));for(var s,a=t.lastIndex=0;(s=t.exec(o))&&(n++,a=s.index,a<=r&&i++,!(n>999))&&(s[0]||(t.lastIndex=a+=1,!(a>=o.length))););}this.searchCounter.textContent=i+" of "+(n>999?"999+":n)},this.findNext=function(){this.find(!0,!1)},this.findPrev=function(){this.find(!0,!0)},this.findAll=function(){ +var e=this.editor.findAll(this.searchInput.value,{regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked}),t=!e&&this.searchInput.value;i.setCssClass(this.searchBox,"ace_nomatch",t),this.editor._emit("findSearchBox",{match:!t}),this.highlight(),this.hide()},this.replace=function(){this.editor.getReadOnly()||this.editor.replace(this.replaceInput.value)},this.replaceAndFindNext=function(){this.editor.getReadOnly()||(this.editor.replace(this.replaceInput.value),this.findNext())},this.replaceAll=function(){this.editor.getReadOnly()||this.editor.replaceAll(this.replaceInput.value)},this.hide=function(){this.active=!1,this.setSearchRange(null),this.editor.off("changeSession",this.setSession),this.element.style.display="none",this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb),this.editor.focus()},this.show=function(e,t){this.active=!0,this.editor.on("changeSession",this.setSession),this.element.style.display="",this.replaceOption.checked=t,e&&(this.searchInput.value=e),this.searchInput.focus(),this.searchInput.select(),this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb),this.$syncOptions(!0)},this.isFocused=function(){var e=document.activeElement;return e==this.searchInput||e==this.replaceInput}}).call(c.prototype),t.SearchBox=c,t.Search=function(e,t){(e.searchBox||new c(e)).show(e.session.getTextRange(),t)}}),function(){ace.acequire(["ace/ext/searchbox"],function(){})}()},function(e,t){ace.define("ace/theme/jsoneditor",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!1,t.cssClass="ace-jsoneditor",t.cssText='.ace-jsoneditor .ace_gutter {\tbackground: #ebebeb;\tcolor: #333\t}\t\t.ace-jsoneditor.ace_editor {\tfont-family: "dejavu sans mono", "droid sans mono", consolas, monaco, "lucida console", "courier new", courier, monospace, sans-serif;\tline-height: 1.3;\tbackground-color: #fff;\t}\t.ace-jsoneditor .ace_print-margin {\twidth: 1px;\tbackground: #e8e8e8\t}\t.ace-jsoneditor .ace_scroller {\tbackground-color: #FFFFFF\t}\t.ace-jsoneditor .ace_text-layer {\tcolor: gray\t}\t.ace-jsoneditor .ace_variable {\tcolor: #1a1a1a\t}\t.ace-jsoneditor .ace_cursor {\tborder-left: 2px solid #000000\t}\t.ace-jsoneditor .ace_overwrite-cursors .ace_cursor {\tborder-left: 0px;\tborder-bottom: 1px solid #000000\t}\t.ace-jsoneditor .ace_marker-layer .ace_selection {\tbackground: lightgray\t}\t.ace-jsoneditor.ace_multiselect .ace_selection.ace_start {\tbox-shadow: 0 0 3px 0px #FFFFFF;\tborder-radius: 2px\t}\t.ace-jsoneditor .ace_marker-layer .ace_step {\tbackground: rgb(255, 255, 0)\t}\t.ace-jsoneditor .ace_marker-layer .ace_bracket {\tmargin: -1px 0 0 -1px;\tborder: 1px solid #BFBFBF\t}\t.ace-jsoneditor .ace_marker-layer .ace_active-line {\tbackground: #FFFBD1\t}\t.ace-jsoneditor .ace_gutter-active-line {\tbackground-color : #dcdcdc\t}\t.ace-jsoneditor .ace_marker-layer .ace_selected-word {\tborder: 1px solid lightgray\t}\t.ace-jsoneditor .ace_invisible {\tcolor: #BFBFBF\t}\t.ace-jsoneditor .ace_keyword,\t.ace-jsoneditor .ace_meta,\t.ace-jsoneditor .ace_support.ace_constant.ace_property-value {\tcolor: #AF956F\t}\t.ace-jsoneditor .ace_keyword.ace_operator {\tcolor: #484848\t}\t.ace-jsoneditor .ace_keyword.ace_other.ace_unit {\tcolor: #96DC5F\t}\t.ace-jsoneditor .ace_constant.ace_language {\tcolor: darkorange\t}\t.ace-jsoneditor .ace_constant.ace_numeric {\tcolor: red\t}\t.ace-jsoneditor .ace_constant.ace_character.ace_entity {\tcolor: #BF78CC\t}\t.ace-jsoneditor .ace_invalid {\tcolor: #FFFFFF;\tbackground-color: #FF002A;\t}\t.ace-jsoneditor .ace_fold {\tbackground-color: #AF956F;\tborder-color: #000000\t}\t.ace-jsoneditor .ace_storage,\t.ace-jsoneditor .ace_support.ace_class,\t.ace-jsoneditor .ace_support.ace_function,\t.ace-jsoneditor .ace_support.ace_other,\t.ace-jsoneditor .ace_support.ace_type {\tcolor: #C52727\t}\t.ace-jsoneditor .ace_string {\tcolor: green\t}\t.ace-jsoneditor .ace_comment {\tcolor: #BCC8BA\t}\t.ace-jsoneditor .ace_entity.ace_name.ace_tag,\t.ace-jsoneditor .ace_entity.ace_other.ace_attribute-name {\tcolor: #606060\t}\t.ace-jsoneditor .ace_markup.ace_underline {\ttext-decoration: underline\t}\t.ace-jsoneditor .ace_indent-guide {\tbackground: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y\t}',e("../lib/dom").importCssString(t.cssText,t.cssClass)})}])}); //# sourceMappingURL=jsoneditor-minimalist.map \ No newline at end of file diff --git a/dist/jsoneditor.css b/dist/jsoneditor.css index 3184f9f..3b3d135 100644 --- a/dist/jsoneditor.css +++ b/dist/jsoneditor.css @@ -783,6 +783,139 @@ div.jsoneditor-contextmenu button.jsoneditor-type-modes > div.jsoneditor-icon { background-image: none; width: 6px; } + +/* pico modal styling */ + +.jsoneditor-modal-overlay { + position: absolute !important; + background: rgb(1,1,1) !important; + opacity: 0.3 !important; +} + +.jsoneditor-modal { + position: absolute !important; + max-width: 100% !important; + border-radius: 2px !important; + padding: 45px 15px 15px 15px !important; + box-shadow: 2px 2px 12px rgba(128, 128, 128, 0.3) !important; +} + +.jsoneditor-modal .pico-modal-header { + position: absolute; + box-sizing: border-box; + top: 0; + left: 0; + width: 100%; + padding: 0 10px; + height: 30px; + line-height: 30px; + font-family: arial, sans-serif; + font-size: 11pt; + background: #3883fa; + color: white; +} + +.jsoneditor-modal table td { + padding: 5px 0; + padding-right: 20px; + text-align: left; + vertical-align: middle; + font-size: 10pt; + font-family: arial, sans-serif; + color: #4d4d4d; +} + + + +.jsoneditor-modal table td.jsoneditor-modal-input { + text-align: right; + padding-right: 0; + white-space: nowrap; +} + +.jsoneditor-modal table td.jsoneditor-modal-actions { + padding-top: 15px; +} + +.jsoneditor-modal .pico-close { + background: none !important; + font-size: 24px !important; + top: 7px !important; + right: 7px !important; + color: white; +} + +.jsoneditor-modal select, +.jsoneditor-modal input { + background: #f5f5f5; + border: 1px solid #d3d3d3; + color: #4d4d4d; + border-radius: 3px; + cursor: pointer; +} + +.jsoneditor-modal .jsoneditor-select-wrapper { + position: relative; +} + +.jsoneditor-modal .jsoneditor-select-wrapper:after { + content: ""; + width: 0; + height: 0; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + border-top: 6px solid #666; + position: absolute; + right: 8px; + top: 10px; + pointer-events: none; +} + +.jsoneditor-modal select { + padding: 3px 24px 3px 10px; + width: 100%; + max-width: 300px; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + text-indent: 0; + text-overflow: ""; + font-size: inherit; + line-height: inherit; +} + +.jsoneditor-modal select::-ms-expand { + display: none; +} + +.jsoneditor-modal .jsoneditor-button-group input { + padding: 4px 10px; + margin: 0; + border-radius: 0; + border-left-style: none; +} + +.jsoneditor-modal .jsoneditor-button-group input.jsoneditor-button-first { + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; + border-left-style: solid; +} + +.jsoneditor-modal .jsoneditor-button-group input.jsoneditor-button-last { + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; +} + +.jsoneditor-modal .jsoneditor-button-group.jsoneditor-button-group-value-asc input.jsoneditor-button-asc, +.jsoneditor-modal .jsoneditor-button-group.jsoneditor-button-group-value-desc input.jsoneditor-button-desc { + background: #3883fa; + border-color: #3883fa; + color: white; +} + +.jsoneditor-modal input { + padding: 4px 20px; +} div.jsoneditor-menu { width: 100%; height: 35px; @@ -1075,12 +1208,7 @@ div.jsoneditor-navigation-bar { box-sizing: border-box; color: #808080; background-color: #ebebeb; + overflow: hidden; + font-family: arial, sans-serif; font-size: 10pt; -} - -div.jsoneditor-navigation-bar.nav-bar-empty:after { - content: 'Select a node ...'; - color: rgba(104, 104, 91, 0.56); - position: absolute; - margin-left: 5px; } \ No newline at end of file diff --git a/dist/jsoneditor.js b/dist/jsoneditor.js index f775f1d..af4aa0b 100644 --- a/dist/jsoneditor.js +++ b/dist/jsoneditor.js @@ -24,8 +24,8 @@ * Copyright (c) 2011-2017 Jos de Jong, http://jsoneditoronline.org * * @author Jos de Jong, - * @version 5.16.0 - * @date 2018-05-23 + * @version 5.17.0 + * @date 2018-06-03 */ (function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') @@ -94,7 +94,7 @@ return /******/ (function(modules) { // webpackBootstrap } var treemode = __webpack_require__(51); - var textmode = __webpack_require__(66); + var textmode = __webpack_require__(67); var util = __webpack_require__(54); /** @@ -8050,9 +8050,9 @@ return /******/ (function(modules) { // webpackBootstrap var ContextMenu = __webpack_require__(57); var TreePath = __webpack_require__(59); var Node = __webpack_require__(60); - var ModeSwitcher = __webpack_require__(64); + var ModeSwitcher = __webpack_require__(65); var util = __webpack_require__(54); - var autocomplete = __webpack_require__(65); + var autocomplete = __webpack_require__(66); var translate = __webpack_require__(58).translate; var setLanguages = __webpack_require__(58).setLanguages; var setLanguage = __webpack_require__(58).setLanguage; @@ -8339,6 +8339,10 @@ return /******/ (function(modules) { // webpackBootstrap this.tbody.removeChild(this.node.getDom()); delete this.node; } + + if (this.treePath) { + this.treePath.reset(); + } }; /** @@ -9771,15 +9775,15 @@ return /******/ (function(modules) { // webpackBootstrap 'undo': function (params) { var node = params.node; node.hideChilds(); - node.sort = params.oldSort; node.childs = params.oldChilds; + node._updateDomIndexes(); node.showChilds(); }, 'redo': function (params) { var node = params.node; node.hideChilds(); - node.sort = params.newSort; node.childs = params.newChilds; + node._updateDomIndexes(); node.showChilds(); } } @@ -12156,15 +12160,24 @@ return /******/ (function(modules) { // webpackBootstrap 'insertTitle': 'Insert a new field with type \'auto\' before this field (Ctrl+Ins)', 'insertSub': 'Select the type of the field to be inserted', 'object': 'Object', + 'ok': 'Ok', 'redo': 'Redo (Ctrl+Shift+Z)', 'removeText': 'Remove', 'removeTitle': 'Remove selected fields (Ctrl+Del)', 'removeField': 'Remove this field (Ctrl+Del)', + 'selectANode': 'Select a node...', 'showAll': 'show all', 'showMore': 'show more', 'showMoreStatus': 'displaying ${visibleChilds} of ${totalChilds} items.', 'sort': 'Sort', 'sortTitle': 'Sort the childs of this ', + 'sortFieldLabel': 'Field:', + 'sortDirectionLabel': 'Direction:', + 'sortFieldTitle': 'Select the nested field by which to sort the array or object', + 'sortAscending': 'Ascending', + 'sortAscendingTitle': 'Sort the selected field in ascending order', + 'sortDescending': 'Descending', + 'sortDescendingTitle': 'Sort the selected field in descending order', 'string': 'String', 'type': 'Type', 'typeTitle': 'Change the type of this field', @@ -12208,10 +12221,13 @@ return /******/ (function(modules) { // webpackBootstrap 'insertTitle': 'Inserir um novo campo do tipo \'auto\' antes deste campo (Ctrl+Ins)', 'insertSub': 'Selecionar o tipo de campo a ser inserido', 'object': 'Objeto', + 'ok': 'Ok', 'redo': 'Refazer (Ctrl+Shift+Z)', 'removeText': 'Remover', 'removeTitle': 'Remover campos selecionados (Ctrl+Del)', 'removeField': 'Remover este campo (Ctrl+Del)', + // TODO: correctly translate selectNode + 'selectNode': 'Select a node...', // TODO: correctly translate showAll 'showAll': 'mostre tudo', // TODO: correctly translate showMore @@ -12220,6 +12236,20 @@ return /******/ (function(modules) { // webpackBootstrap 'showMoreStatus': 'exibindo ${visibleChilds} de ${totalChilds} itens.', 'sort': 'Organizar', 'sortTitle': 'Organizar os filhos deste ', + // TODO: correctly translate sortFieldLabel + 'sortFieldLabel': 'Field:', + // TODO: correctly translate sortDirectionLabel + 'sortDirectionLabel': 'Direction:', + // TODO: correctly translate sortFieldTitle + 'sortFieldTitle': 'Select the nested field by which to sort the array or object', + // TODO: correctly translate sortAscending + 'sortAscending': 'Ascending', + // TODO: correctly translate sortAscendingTitle + 'sortAscendingTitle': 'Sort the selected field in ascending order', + // TODO: correctly translate sortDescending + 'sortDescending': 'Descending', + // TODO: correctly translate sortDescendingTitle + 'sortDescendingTitle': 'Sort the selected field in descending order', 'string': 'Texto', 'type': 'Tipo', 'typeTitle': 'Mudar o tipo deste campo', @@ -12302,6 +12332,7 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; var ContextMenu = __webpack_require__(57); + var translate = __webpack_require__(58).translate; /** * Creates a component that visualize path selection in tree based editors @@ -12315,23 +12346,25 @@ return /******/ (function(modules) { // webpackBootstrap container.appendChild(this.path); this.reset(); } - }; + } /** * Reset component to initial status */ TreePath.prototype.reset = function () { - this.path.innerHTML = ''; - } + this.path.innerHTML = translate('selectNode'); + }; /** * Renders the component UI according to a given path objects - * @param {Array} pathObjs a list of path objects + * @param {Array<{name: String, childs: Array}>} pathObjs a list of path objects * */ TreePath.prototype.setPath = function (pathObjs) { var me = this; - this.reset(); + + this.path.innerHTML = ''; + if (pathObjs && pathObjs.length) { pathObjs.forEach(function (pathObj, idx) { var pathEl = document.createElement('span'); @@ -12376,13 +12409,13 @@ return /******/ (function(modules) { // webpackBootstrap if (this.selectionCallback) { this.selectionCallback(pathObj); } - }; + } function _onContextMenuItemClick(pathObj, selection) { if (this.contextMenuCallback) { this.contextMenuCallback(pathObj, selection); } - }; + } }; /** @@ -12414,9 +12447,10 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; var naturalSort = __webpack_require__(61); + var picoModal = __webpack_require__(62); var ContextMenu = __webpack_require__(57); - var appendNodeFactory = __webpack_require__(62); - var showMoreNodeFactory = __webpack_require__(63); + var appendNodeFactory = __webpack_require__(63); + var showMoreNodeFactory = __webpack_require__(64); var util = __webpack_require__(54); var translate = __webpack_require__(58).translate; @@ -12802,7 +12836,7 @@ return /******/ (function(modules) { // webpackBootstrap // sort object keys if (this.editor.options.sortObjectKeys === true) { - this.sort('asc'); + this.sort([], 'asc'); } } else { @@ -15509,29 +15543,52 @@ return /******/ (function(modules) { // webpackBootstrap /** * Sort the child's of the node. Only applicable when the node has type 'object' * or 'array'. + * @param {String[]} path Path of the child value to be compared * @param {String} direction Sorting direction. Available values: "asc", "desc" * @private */ - Node.prototype.sort = function (direction) { + Node.prototype.sort = function (path, direction) { if (!this._hasChilds()) { return; } - var order = (direction == 'desc') ? -1 : 1; - var prop = (this.type == 'array') ? 'value': 'field'; - this.hideChilds(); + this.hideChilds(); // sorting is faster when the childs are not attached to the dom + // copy the childs array (the old one will be kept for an undo action var oldChilds = this.childs; - var oldSortOrder = this.sortOrder; - - // copy the array (the old one will be kept for an undo action this.childs = this.childs.concat(); - // sort the arrays - this.childs.sort(function (a, b) { - return order * naturalSort(a[prop], b[prop]); - }); - this.sortOrder = (order == 1) ? 'asc' : 'desc'; + // sort the childs array + var order = (direction === 'desc') ? -1 : 1; + + if (this.type === 'object') { + this.childs.sort(function (a, b) { + return order * naturalSort(a.field, b.field); + }); + } + else { // this.type === 'array' + this.childs.sort(function (a, b) { + var nodeA = a.getNestedChild(path); + var nodeB = b.getNestedChild(path); + + if (!nodeA) { + return order; + } + if (!nodeB) { + return -order; + } + + var valueA = nodeA.value; + var valueB = nodeB.value; + + if (typeof valueA !== 'string' && typeof valueB !== 'string') { + // both values are a number, boolean, or null -> use simple, fast sorting + return valueA > valueB ? order : valueA < valueB ? -order : 0; + } + + return order * naturalSort(valueA, valueB); + }); + } // update the index numbering this._updateDomIndexes(); @@ -15539,14 +15596,101 @@ return /******/ (function(modules) { // webpackBootstrap this.editor._onAction('sort', { node: this, oldChilds: oldChilds, - oldSort: oldSortOrder, - newChilds: this.childs, - newSort: this.sortOrder + newChilds: this.childs }); this.showChilds(); }; + /** + * Get a nested child given a path with properties + * @param {String[]} path + * @returns {Node} + */ + Node.prototype.getNestedChild = function (path) { + var i = 0; + var child = this; + + while (child && i < path.length) { + child = child.findChildByProperty(path[i]); + i++; + } + + return child; + }; + + /** + * Find a child by property name + * @param {string} prop + * @return {Node | undefined} Returns the child node when found, or undefined otherwise + */ + Node.prototype.findChildByProperty = function(prop) { + if (this.type !== 'object') { + return undefined; + } + + return this.childs.find(function (child) { + return child.field === prop; + }); + }; + + /** + * Get the paths of the sortable child paths of this node + * @return {string[]} + */ + Node.prototype.getSortablePaths = function () { + if (this.type === 'array') { + if (this.childs.length > 0) { + // sort on any of the property paths of nested objects + var pathsMap = {}; + this.childs.forEach(function (child) { + child._getSortablePaths(pathsMap, ''); + }); + + return Object.keys(pathsMap).sort(); + } + else { + // empty array, you can sort though it doesn't do anything + return [ '.' ]; + } + } + + if (this.type === 'object') { + // sort the object by its properties + return [ '.' ]; + } + + return []; + }; + + /** + * Get the paths of the sortable child paths of this node + * @param {Object} pathsMap + * @param {string} rootPath + */ + Node.prototype._getSortablePaths = function (pathsMap, rootPath) { + if (this.type === 'array') { + // not sortable + } + else if (this.type === 'object') { + this.childs.forEach(function (child) { + if (child.type === 'object') { + child._getSortablePaths(pathsMap, rootPath + '.' + child.field); + } + else if (child.type === 'array') { + // not sortable + } + else { // type === 'auto' or type === 'string' + var path = rootPath + '.' + child.field; + pathsMap[path] = true; + } + }); + } + else { + pathsMap[rootPath + '.'] = true; + } + }; + /** * Create a table row with an append button. * @return {HTMLElement | undefined} tr with the AppendNode contents @@ -15883,32 +16027,13 @@ return /******/ (function(modules) { // webpackBootstrap } if (this._hasChilds()) { - var direction = ((this.sortOrder == 'asc') ? 'desc': 'asc'); items.push({ text: translate('sort'), title: translate('sortTitle') + this.type, - className: 'jsoneditor-sort-' + direction, + className: 'jsoneditor-sort-asc', click: function () { - node.sort(direction); - }, - submenu: [ - { - text: translate('ascending'), - className: 'jsoneditor-sort-asc', - title: translate('ascendingTitle' , {type: this.type}), - click: function () { - node.sort('asc'); - } - }, - { - text: translate('descending'), - className: 'jsoneditor-sort-desc', - title: translate('descendingTitle' , {type: this.type}), - click: function () { - node.sort('desc'); - } - } - ] + node._showSortModal() + } }); } @@ -16046,6 +16171,114 @@ return /******/ (function(modules) { // webpackBootstrap menu.show(anchor, this.editor.content); }; + /** + * Show advanced sorting modal + * @private + */ + Node.prototype._showSortModal = function () { + var node = this; + + var content = '
' + + '
' + translate('sort') + '
' + + '
' + + '' + + '' + + '' + + ' ' + + ' ' + + '' + + '' + + ' ' + + ' ' + + '' + + '' + + '' + + '' + + '' + + '
' + translate('sortFieldLabel') + ' ' + + '
' + + ' ' + + '
' + + '
' + translate('sortDirectionLabel') + ' ' + + '
' + + '' + + '' + + '
' + + '
' + + ' ' + + '
' + + '
' + + '
'; + + picoModal({ + parent: this.editor.frame, + content: content, + overlayClass: 'jsoneditor-modal-overlay', + modalClass: 'jsoneditor-modal' + }) + .afterCreate(function (modal) { + var form = modal.modalElem().querySelector('form'); + var ok = modal.modalElem().querySelector('#ok'); + var field = modal.modalElem().querySelector('#field'); + var direction = modal.modalElem().querySelector('#direction'); + + var paths = node.getSortablePaths().sort(); + + paths.forEach(function (path) { + var option = document.createElement('option'); + option.text = path; + option.value = path; + field.appendChild(option); + }); + + function setDirection(value) { + direction.value = value; + direction.className = 'jsoneditor-button-group jsoneditor-button-group-value-' + direction.value; + } + + field.value = node.sortedBy ? node.sortedBy.path : paths[0]; + setDirection(node.sortedBy ? node.sortedBy.direction : 'asc'); + + direction.onclick = function (event) { + setDirection(event.target.getAttribute('data-value')); + }; + + ok.onclick = function (event) { + event.preventDefault(); + event.stopPropagation(); + + modal.close(); + + var path = field.value; + var pathArray = (path === '.') ? [] : path.split('.').slice(1); + + node.sortedBy = { + path: path, + direction: direction.value + }; + + node.sort(pathArray, direction.value) + }; + + if (form) { // form is not available when JSONEditor is created inside a form + form.onsubmit = ok.onclick; + } + }) + .afterClose(function (modal) { + modal.destroy(); + }) + .show(); + }; + /** * get the type of a value * @param {*} value @@ -16244,6 +16477,615 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, /* 62 */ +/***/ function(module, exports, __webpack_require__) { + + var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/** + * 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. + */ + + (function (root, factory) { + "use strict"; + + if (true) { + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); + } + else if (typeof module === 'object' && module.exports) { + module.exports = factory(); + } + else { + root.picoModal = factory(); + } + }(this, function () { + + /** + * A self-contained modal library + */ + "use strict"; + + /** Returns whether a value is a dom node */ + function isNode(value) { + if ( typeof Node === "object" ) { + return value instanceof Node; + } + else { + return value && typeof value === "object" && typeof value.nodeType === "number"; + } + } + + /** Returns whether a value is a string */ + function isString(value) { + return typeof value === "string"; + } + + /** + * Generates observable objects that can be watched and triggered + */ + function observable() { + var callbacks = []; + return { + watch: callbacks.push.bind(callbacks), + trigger: function(context, detail) { + + var unprevented = true; + var event = { + detail: detail, + preventDefault: function preventDefault () { + unprevented = false; + } + }; + + for (var i = 0; i < callbacks.length; i++) { + callbacks[i](context, event); + } + + return unprevented; + } + }; + } + + + /** Whether an element is hidden */ + function isHidden ( elem ) { + // @see http://stackoverflow.com/questions/19669786 + return window.getComputedStyle(elem).display === 'none'; + } + + + /** + * A small interface for creating and managing a dom element + */ + function Elem( elem ) { + this.elem = elem; + } + + /** Creates a new div */ + Elem.make = function ( parent, tag ) { + if ( typeof parent === "string" ) { + parent = document.querySelector(parent); + } + var elem = document.createElement(tag || 'div'); + (parent || document.body).appendChild(elem); + return new Elem(elem); + }; + + Elem.prototype = { + + /** Creates a child of this node */ + child: function (tag) { + return Elem.make(this.elem, tag); + }, + + /** Applies a set of styles to an element */ + stylize: function(styles) { + styles = styles || {}; + + if ( typeof styles.opacity !== "undefined" ) { + styles.filter = "alpha(opacity=" + (styles.opacity * 100) + ")"; + } + + for (var prop in styles) { + if (styles.hasOwnProperty(prop)) { + this.elem.style[prop] = styles[prop]; + } + } + + return this; + }, + + /** Adds a class name */ + clazz: function (clazz) { + this.elem.className += " " + clazz; + return this; + }, + + /** Sets the HTML */ + html: function (content) { + if ( isNode(content) ) { + this.elem.appendChild( content ); + } + else { + this.elem.innerHTML = content; + } + return this; + }, + + /** Adds a click handler to this element */ + onClick: function(callback) { + this.elem.addEventListener('click', callback); + return this; + }, + + /** Removes this element from the DOM */ + destroy: function() { + this.elem.parentNode.removeChild(this.elem); + }, + + /** Hides this element */ + hide: function() { + this.elem.style.display = "none"; + }, + + /** Shows this element */ + show: function() { + this.elem.style.display = "block"; + }, + + /** Sets an attribute on this element */ + attr: function ( name, value ) { + if (value !== undefined) { + this.elem.setAttribute(name, value); + } + return this; + }, + + /** Executes a callback on all the ancestors of an element */ + anyAncestor: function ( predicate ) { + var elem = this.elem; + while ( elem ) { + if ( predicate( new Elem(elem) ) ) { + return true; + } + else { + elem = elem.parentNode; + } + } + return false; + }, + + /** Whether this element is visible */ + isVisible: function () { + return !isHidden(this.elem); + } + }; + + + /** Generates the grey-out effect */ + function buildOverlay( getOption, close ) { + return Elem.make( getOption("parent") ) + .clazz("pico-overlay") + .clazz( getOption("overlayClass", "") ) + .stylize({ + display: "none", + position: "fixed", + top: "0px", + left: "0px", + height: "100%", + width: "100%", + zIndex: 10000 + }) + .stylize(getOption('overlayStyles', { + opacity: 0.5, + background: "#000" + })) + .onClick(function () { + if ( getOption('overlayClose', true) ) { + close(); + } + }); + } + + // An auto incrementing ID assigned to each modal + var autoinc = 1; + + /** Builds the content of a modal */ + function buildModal( getOption, close ) { + var width = getOption('width', 'auto'); + if ( typeof width === "number" ) { + width = "" + width + "px"; + } + + var id = getOption("modalId", "pico-" + autoinc++); + + var elem = Elem.make( getOption("parent") ) + .clazz("pico-content") + .clazz( getOption("modalClass", "") ) + .stylize({ + display: 'none', + position: 'fixed', + zIndex: 10001, + left: "50%", + top: "38.1966%", + maxHeight: '90%', + boxSizing: 'border-box', + width: width, + '-ms-transform': 'translate(-50%,-38.1966%)', + '-moz-transform': 'translate(-50%,-38.1966%)', + '-webkit-transform': 'translate(-50%,-38.1966%)', + '-o-transform': 'translate(-50%,-38.1966%)', + transform: 'translate(-50%,-38.1966%)' + }) + .stylize(getOption('modalStyles', { + overflow: 'auto', + backgroundColor: "white", + padding: "20px", + borderRadius: "5px" + })) + .html( getOption('content') ) + .attr("id", id) + .attr("role", "dialog") + .attr("aria-labelledby", getOption("ariaLabelledBy")) + .attr("aria-describedby", getOption("ariaDescribedBy", id)) + .onClick(function (event) { + var isCloseClick = new Elem(event.target).anyAncestor(function (elem) { + return /\bpico-close\b/.test(elem.elem.className); + }); + if ( isCloseClick ) { + close(); + } + }); + + return elem; + } + + /** Builds the close button */ + function buildClose ( elem, getOption ) { + if ( getOption('closeButton', true) ) { + return elem.child('button') + .html( getOption('closeHtml', "×") ) + .clazz("pico-close") + .clazz( getOption("closeClass", "") ) + .stylize( getOption('closeStyles', { + borderRadius: "2px", + border: 0, + padding: 0, + cursor: "pointer", + height: "15px", + width: "15px", + position: "absolute", + top: "5px", + right: "5px", + fontSize: "16px", + textAlign: "center", + lineHeight: "15px", + background: "#CCC" + }) ) + .attr("aria-label", getOption("close-label", "Close")); + } + } + + /** Builds a method that calls a method and returns an element */ + function buildElemAccessor( builder ) { + return function () { + return builder().elem; + }; + } + + + // An observable that is triggered whenever the escape key is pressed + var escapeKey = observable(); + + // An observable that is triggered when the user hits the tab key + var tabKey = observable(); + + /** A global event handler to detect the escape key being pressed */ + document.documentElement.addEventListener('keydown', function onKeyPress (event) { + var keycode = event.which || event.keyCode; + + // If this is the escape key + if ( keycode === 27 ) { + escapeKey.trigger(); + } + + // If this is the tab key + else if ( keycode === 9 ) { + tabKey.trigger(event); + } + }); + + + /** Attaches focus management events */ + function manageFocus ( iface, isEnabled ) { + + /** Whether an element matches a selector */ + function matches ( elem, selector ) { + var fn = elem.msMatchesSelector || elem.webkitMatchesSelector || elem.matches; + return fn.call(elem, selector); + } + + /** + * Returns whether an element is focusable + * @see http://stackoverflow.com/questions/18261595 + */ + function canFocus( elem ) { + if ( + isHidden(elem) || + matches(elem, ":disabled") || + elem.hasAttribute("contenteditable") + ) { + return false; + } + else { + return elem.hasAttribute("tabindex") || + matches(elem, "input,select,textarea,button,a[href],area[href],iframe"); + } + } + + /** Returns the first descendant that can be focused */ + function firstFocusable ( elem ) { + var items = elem.getElementsByTagName("*"); + for (var i = 0; i < items.length; i++) { + if ( canFocus(items[i]) ) { + return items[i]; + } + } + } + + /** Returns the last descendant that can be focused */ + function lastFocusable ( elem ) { + var items = elem.getElementsByTagName("*"); + for (var i = items.length; i--;) { + if ( canFocus(items[i]) ) { + return items[i]; + } + } + } + + // The element focused before the modal opens + var focused; + + // Records the currently focused element so state can be returned + // after the modal closes + iface.beforeShow(function getActiveFocus() { + focused = document.activeElement; + }); + + // Shift focus into the modal + iface.afterShow(function focusModal() { + if ( isEnabled() ) { + var focusable = firstFocusable(iface.modalElem()); + if ( focusable ) { + focusable.focus(); + } + } + }); + + // Restore the previously focused element when the modal closes + iface.afterClose(function returnFocus() { + if ( isEnabled() && focused ) { + focused.focus(); + } + focused = null; + }); + + // Capture tab key presses and loop them within the modal + tabKey.watch(function tabKeyPress (event) { + if ( isEnabled() && iface.isVisible() ) { + var first = firstFocusable(iface.modalElem()); + var last = lastFocusable(iface.modalElem()); + + var from = event.shiftKey ? first : last; + if ( from === document.activeElement ) { + (event.shiftKey ? last : first).focus(); + event.preventDefault(); + } + } + }); + } + + /** Manages setting the 'overflow: hidden' on the body tag */ + function manageBodyOverflow(iface, isEnabled) { + var origOverflow; + var body = new Elem(document.body); + + iface.beforeShow(function () { + // Capture the current values so they can be restored + origOverflow = body.elem.style.overflow; + + if (isEnabled()) { + body.stylize({ overflow: "hidden" }); + } + }); + + iface.afterClose(function () { + body.stylize({ overflow: origOverflow }); + }); + } + + /** + * Displays a modal + */ + return function picoModal(options) { + + if ( isString(options) || isNode(options) ) { + options = { content: options }; + } + + var afterCreateEvent = observable(); + var beforeShowEvent = observable(); + var afterShowEvent = observable(); + var beforeCloseEvent = observable(); + var afterCloseEvent = observable(); + + /** + * Returns a named option if it has been explicitly defined. Otherwise, + * it returns the given default value + */ + function getOption ( opt, defaultValue ) { + var value = options[opt]; + if ( typeof value === "function" ) { + value = value( defaultValue ); + } + return value === undefined ? defaultValue : value; + } + + + // The various DOM elements that constitute the modal + var modalElem = build.bind(window, 'modal'); + var shadowElem = build.bind(window, 'overlay'); + var closeElem = build.bind(window, 'close'); + + // This will eventually contain the modal API returned to the user + var iface; + + + /** Hides this modal */ + function forceClose (detail) { + shadowElem().hide(); + modalElem().hide(); + afterCloseEvent.trigger(iface, detail); + } + + /** Gracefully hides this modal */ + function close (detail) { + if ( beforeCloseEvent.trigger(iface, detail) ) { + forceClose(detail); + } + } + + /** Wraps a method so it returns the modal interface */ + function returnIface ( callback ) { + return function () { + callback.apply(this, arguments); + return iface; + }; + } + + + // The constructed dom nodes + var built; + + /** Builds a method that calls a method and returns an element */ + function build (name, detail) { + if ( !built ) { + var modal = buildModal(getOption, close); + built = { + modal: modal, + overlay: buildOverlay(getOption, close), + close: buildClose(modal, getOption) + }; + afterCreateEvent.trigger(iface, detail); + } + return built[name]; + } + + iface = { + + /** Returns the wrapping modal element */ + modalElem: buildElemAccessor(modalElem), + + /** Returns the close button element */ + closeElem: buildElemAccessor(closeElem), + + /** Returns the overlay element */ + overlayElem: buildElemAccessor(shadowElem), + + /** Builds the dom without showing the modal */ + buildDom: returnIface(build.bind(null, null)), + + /** Returns whether this modal is currently being shown */ + isVisible: function () { + return !!(built && modalElem && modalElem().isVisible()); + }, + + /** Shows this modal */ + show: function (detail) { + if ( beforeShowEvent.trigger(iface, detail) ) { + shadowElem().show(); + closeElem(); + modalElem().show(); + afterShowEvent.trigger(iface, detail); + } + return this; + }, + + /** Hides this modal */ + close: returnIface(close), + + /** + * Force closes this modal. This will not call beforeClose + * events and will just immediately hide the modal + */ + forceClose: returnIface(forceClose), + + /** Destroys this modal */ + destroy: function () { + modalElem().destroy(); + shadowElem().destroy(); + shadowElem = modalElem = closeElem = undefined; + }, + + /** + * Updates the options for this modal. This will only let you + * change options that are re-evaluted regularly, such as + * `overlayClose`. + */ + options: function ( opts ) { + Object.keys(opts).map(function (key) { + options[key] = opts[key]; + }); + }, + + /** Executes after the DOM nodes are created */ + afterCreate: returnIface(afterCreateEvent.watch), + + /** Executes a callback before this modal is closed */ + beforeShow: returnIface(beforeShowEvent.watch), + + /** Executes a callback after this modal is shown */ + afterShow: returnIface(afterShowEvent.watch), + + /** Executes a callback before this modal is closed */ + beforeClose: returnIface(beforeCloseEvent.watch), + + /** Executes a callback after this modal is closed */ + afterClose: returnIface(afterCloseEvent.watch) + }; + + manageFocus(iface, getOption.bind(null, "focus", true)); + + manageBodyOverflow(iface, getOption.bind(null, "bodyOverflow", true)); + + // If a user presses the 'escape' key, close the modal. + escapeKey.watch(function escapeKeyPress () { + if ( getOption("escCloses", true) && iface.isVisible() ) { + iface.close(); + } + }); + + return iface; + }; + + })); + + +/***/ }, +/* 63 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -16482,7 +17324,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 63 */ +/* 64 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -16643,7 +17485,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 64 */ +/* 65 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -16764,7 +17606,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 65 */ +/* 66 */ /***/ function(module, exports) { 'use strict'; @@ -17151,13 +17993,13 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = completely; /***/ }, -/* 66 */ +/* 67 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var ace = __webpack_require__(67); - var ModeSwitcher = __webpack_require__(64); + var ace = __webpack_require__(68); + var ModeSwitcher = __webpack_require__(65); var util = __webpack_require__(54); // create a mixin with the functions for text mode @@ -17227,7 +18069,7 @@ return /******/ (function(modules) { // webpackBootstrap this.theme = options.theme || DEFAULT_THEME; if (this.theme === DEFAULT_THEME && _ace) { try { - __webpack_require__(73); + __webpack_require__(74); } catch (err) { console.error(err); @@ -17973,7 +18815,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 67 */ +/* 68 */ /***/ function(module, exports, __webpack_require__) { var ace @@ -17984,11 +18826,11 @@ return /******/ (function(modules) { // webpackBootstrap else { try { // load brace - ace = __webpack_require__(68); + ace = __webpack_require__(69); // load required Ace plugins - __webpack_require__(70); - __webpack_require__(72); + __webpack_require__(71); + __webpack_require__(73); } catch (err) { // failed to load brace (can be minimalist bundle). @@ -18000,7 +18842,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 68 */ +/* 69 */ /***/ function(module, exports, __webpack_require__) { /* ***** BEGIN LICENSE BLOCK ***** @@ -22183,7 +23025,7 @@ return /******/ (function(modules) { // webpackBootstrap if (!global || !global.document) return; - options.packaged = packaged || acequire.packaged || module.packaged || (global.define && __webpack_require__(69).packaged); + options.packaged = packaged || acequire.packaged || module.packaged || (global.define && __webpack_require__(70).packaged); var scriptOptions = {}; var scriptUrl = ""; @@ -38210,7 +39052,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.acequire = acequire; if (true) - exports.define = __webpack_require__(69); + exports.define = __webpack_require__(70); exports.edit = function(el) { if (typeof el == "string") { var _id = el; @@ -38277,14 +39119,14 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = window.ace.acequire("ace/ace"); /***/ }, -/* 69 */ +/* 70 */ /***/ function(module, exports) { module.exports = function() { throw new Error("define cannot be used indirect"); }; /***/ }, -/* 70 */ +/* 71 */ /***/ function(module, exports, __webpack_require__) { ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(acequire, exports, module) { @@ -38586,7 +39428,7 @@ return /******/ (function(modules) { // webpackBootstrap }; this.createWorker = function(session) { - var worker = new WorkerClient(["ace"], __webpack_require__(71), "JsonWorker"); + var worker = new WorkerClient(["ace"], __webpack_require__(72), "JsonWorker"); worker.attachToDocument(session.getDocument()); worker.on("annotate", function(e) { @@ -38609,14 +39451,14 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 71 */ +/* 72 */ /***/ function(module, exports) { module.exports.id = 'ace/mode/json_worker'; module.exports.src = "\"no use strict\";!function(window){function resolveModuleId(id,paths){for(var testPath=id,tail=\"\";testPath;){var alias=paths[testPath];if(\"string\"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\/*$/,\"/\")+(tail||alias.main||alias.name);if(alias===!1)return\"\";var i=testPath.lastIndexOf(\"/\");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:\"log\",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:\"error\",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf(\"!\")){var chunks=moduleName.split(\"!\");return window.normalizeModule(parentId,chunks[0])+\"!\"+window.normalizeModule(parentId,chunks[1])}if(\".\"==moduleName.charAt(0)){var base=parentId.split(\"/\").slice(0,-1).join(\"/\");for(moduleName=(base?base+\"/\":\"\")+moduleName;-1!==moduleName.indexOf(\".\")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\.\\//,\"\").replace(/\\/\\.\\//,\"/\").replace(/[^\\/]+\\/\\.\\.\\//,\"\")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error(\"worker.js acequire() accepts only (parentId, id) as arguments\");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log(\"unable to load \"+id);var path=resolveModuleId(id,window.acequire.tlns);return\".js\"!=path.slice(-3)&&(path+=\".js\"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,\"string\"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),\"function\"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=[\"require\",\"exports\",\"module\"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case\"require\":return req;case\"exports\":return module.exports;case\"module\":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire(\"ace/lib/event_emitter\").EventEmitter,oop=window.acequire(\"ace/lib/oop\"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:\"call\",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:\"event\",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error(\"Unknown command:\"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire(\"ace/lib/es5-shim\"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}}(this),ace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define(\"ace/range\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return\"Range: [\"+this.start.row+\"/\"+this.start.column+\"] -> [\"+this.end.row+\"/\"+this.end.column+\"]\"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){\"object\"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){\"object\"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||\"\";switch(delta.action){case\"insert\":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case\"remove\":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){\"object\"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?\"unshift\":\"push\"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(acequire,exports){\"use strict\";var oop=acequire(\"./lib/oop\"),EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.columnthis.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal(\"change\",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener(\"change\",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on(\"change\",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"],function(acequire,exports){\"use strict\";var oop=acequire(\"./lib/oop\"),applyDelta=acequire(\"./apply_delta\").applyDelta,EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,Range=acequire(\"./range\").Range,Anchor=acequire(\"./anchor\").Anchor,Document=function(textOrLines){this.$lines=[\"\"],0===textOrLines.length?this.$lines=[\"\"]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0===\"aaa\".split(/a/).length?function(text){return text.replace(/\\r\\n|\\r/g,\"\\n\").split(\"\\n\")}:function(text){return text.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=match?match[1]:\"\\n\",this._signal(\"changeNewLineMode\")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\"windows\":return\"\\r\\n\";case\"unix\":return\"\\n\";default:return this.$autoNewLine||\"\\n\"}},this.$autoNewLine=\"\",this.$newLineMode=\"auto\",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal(\"changeNewLineMode\"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return\"\\r\\n\"==text||\"\\r\"==text||\"\\n\"==text},this.getLine=function(row){return this.$lines[row]||\"\"},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||\"\").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\"),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\"),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\"),this.insertMergedLines(position,[\"\",\"\"])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:\"insert\",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([\"\"]),column=0):(lines=[\"\"].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:\"insert\",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:\"remove\",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:\"remove\",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:\"remove\",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:\"remove\",lines:[\"\",\"\"]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert=\"insert\"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal(\"change\",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(\"\"),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:\"insert\"==delta.action?\"remove\":\"insert\",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split(\"\").reverse().join(\"\")},exports.stringRepeat=function(string,count){for(var result=\"\";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\s\\s*/,trimEndRegexp=/\\s\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,\"\")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,\"\")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&\"object\"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if(\"object\"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if(\"[object Object]\"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,\"\\\\$1\")},exports.escapeHTML=function(str){return str.replace(/&/g,\"&\").replace(/\"/g,\""\").replace(/'/g,\"'\").replace(/i;i+=2){if(Array.isArray(data[i+1]))var d={action:\"insert\",start:data[i],lines:data[i+1]};else var d={action:\"remove\",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define(\"ace/mode/json/json_parse\",[\"require\",\"exports\",\"module\"],function(){\"use strict\";var at,ch,text,value,escapee={'\"':'\"',\"\\\\\":\"\\\\\",\"/\":\"/\",b:\"\\b\",f:\"\\f\",n:\"\\n\",r:\"\\r\",t:\"\t\"},error=function(m){throw{name:\"SyntaxError\",message:m,at:at,text:text}},next=function(c){return c&&c!==ch&&error(\"Expected '\"+c+\"' instead of '\"+ch+\"'\"),ch=text.charAt(at),at+=1,ch},number=function(){var number,string=\"\";for(\"-\"===ch&&(string=\"-\",next(\"-\"));ch>=\"0\"&&\"9\">=ch;)string+=ch,next();if(\".\"===ch)for(string+=\".\";next()&&ch>=\"0\"&&\"9\">=ch;)string+=ch;if(\"e\"===ch||\"E\"===ch)for(string+=ch,next(),(\"-\"===ch||\"+\"===ch)&&(string+=ch,next());ch>=\"0\"&&\"9\">=ch;)string+=ch,next();return number=+string,isNaN(number)?(error(\"Bad number\"),void 0):number},string=function(){var hex,i,uffff,string=\"\";if('\"'===ch)for(;next();){if('\"'===ch)return next(),string;if(\"\\\\\"===ch)if(next(),\"u\"===ch){for(uffff=0,i=0;4>i&&(hex=parseInt(next(),16),isFinite(hex));i+=1)uffff=16*uffff+hex;string+=String.fromCharCode(uffff)}else{if(\"string\"!=typeof escapee[ch])break;string+=escapee[ch]}else string+=ch}error(\"Bad string\")},white=function(){for(;ch&&\" \">=ch;)next()},word=function(){switch(ch){case\"t\":return next(\"t\"),next(\"r\"),next(\"u\"),next(\"e\"),!0;case\"f\":return next(\"f\"),next(\"a\"),next(\"l\"),next(\"s\"),next(\"e\"),!1;case\"n\":return next(\"n\"),next(\"u\"),next(\"l\"),next(\"l\"),null}error(\"Unexpected '\"+ch+\"'\")},array=function(){var array=[];if(\"[\"===ch){if(next(\"[\"),white(),\"]\"===ch)return next(\"]\"),array;for(;ch;){if(array.push(value()),white(),\"]\"===ch)return next(\"]\"),array;next(\",\"),white()}}error(\"Bad array\")},object=function(){var key,object={};if(\"{\"===ch){if(next(\"{\"),white(),\"}\"===ch)return next(\"}\"),object;for(;ch;){if(key=string(),white(),next(\":\"),Object.hasOwnProperty.call(object,key)&&error('Duplicate key \"'+key+'\"'),object[key]=value(),white(),\"}\"===ch)return next(\"}\"),object;next(\",\"),white()}}error(\"Bad object\")};return value=function(){switch(white(),ch){case\"{\":return object();case\"[\":return array();case'\"':return string();case\"-\":return number();default:return ch>=\"0\"&&\"9\">=ch?number():word()}},function(source,reviver){var result;return text=source,at=0,ch=\" \",result=value(),white(),ch&&error(\"Syntax error\"),\"function\"==typeof reviver?function walk(holder,key){var k,v,value=holder[key];if(value&&\"object\"==typeof value)for(k in value)Object.hasOwnProperty.call(value,k)&&(v=walk(value,k),void 0!==v?value[k]=v:delete value[k]);return reviver.call(holder,key,value)}({\"\":result},\"\"):result}}),ace.define(\"ace/mode/json_worker\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/worker/mirror\",\"ace/mode/json/json_parse\"],function(acequire,exports){\"use strict\";var oop=acequire(\"../lib/oop\"),Mirror=acequire(\"../worker/mirror\").Mirror,parse=acequire(\"./json/json_parse\"),JsonWorker=exports.JsonWorker=function(sender){Mirror.call(this,sender),this.setTimeout(200)};oop.inherits(JsonWorker,Mirror),function(){this.onUpdate=function(){var value=this.doc.getValue(),errors=[];try{value&&parse(value)}catch(e){var pos=this.doc.indexToPosition(e.at-1);errors.push({row:pos.row,column:pos.column,text:e.message,type:\"error\"})}this.sender.emit(\"annotate\",errors)}}.call(JsonWorker.prototype)}),ace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,\"sentinel\",{}),\"sentinel\"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if(\"function\"!=typeof target)throw new TypeError(\"Function.prototype.bind called on incompatible \"+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,\"__defineGetter__\"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,\"XXX\"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0\n}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return\"[object Array]\"==_toString(obj)});var boxedString=Object(\"a\"),splitString=\"a\"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,thisp=arguments[1],i=-1,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,result=[],thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");if(!length&&1==arguments.length)throw new TypeError(\"reduce of empty array with no initial value\");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError(\"reduce of empty array with no initial value\")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");if(!length&&1==arguments.length)throw new TypeError(\"reduceRight of empty array with no initial value\");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError(\"reduceRight of empty array with no initial value\")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT=\"Object.getOwnPropertyDescriptor called on a non-object: \";Object.getOwnPropertyDescriptor=function(object,property){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if(\"object\"!=typeof prototype)throw new TypeError(\"typeof prototype[\"+typeof prototype+\"] != 'object'\");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom=\"undefined\"==typeof document||doesDefinePropertyWork(document.createElement(\"div\"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR=\"Property description must be an object: \",ERR_NON_OBJECT_TARGET=\"Object.defineProperty called on non-object: \",ERR_ACCESSORS_NOT_SUPPORTED=\"getters & setters can not be defined on this javascript engine\";Object.defineProperty=function(object,property,descriptor){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if(\"object\"!=typeof descriptor&&\"function\"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,\"value\"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,\"get\")&&defineGetter(object,property,descriptor.get),owns(descriptor,\"set\")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return\"function\"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name=\"\";owns(object,name);)name+=\"?\";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=[\"toString\",\"toLocaleString\",\"valueOf\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"constructor\"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(\"Object.keys called on a non-object\");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws=\"\t\\n\u000b\\f\\r   ᠎              \\u2028\\u2029\";if(!String.prototype.trim||ws.trim()){ws=\"[\"+ws+\"]\";var trimBeginRegexp=RegExp(\"^\"+ws+ws+\"*\"),trimEndRegexp=RegExp(ws+ws+\"*$\");String.prototype.trim=function(){return(this+\"\").replace(trimBeginRegexp,\"\").replace(trimEndRegexp,\"\")}}var toObject=function(o){if(null==o)throw new TypeError(\"can't convert \"+o+\" to object\");return Object(o)}});"; /***/ }, -/* 72 */ +/* 73 */ /***/ function(module, exports) { ace.define("ace/ext/searchbox",["require","exports","module","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/keyboard/hash_handler","ace/lib/keys"], function(acequire, exports, module) { @@ -39129,7 +39971,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 73 */ +/* 74 */ /***/ function(module, exports) { /* ***** BEGIN LICENSE BLOCK ***** diff --git a/dist/jsoneditor.map b/dist/jsoneditor.map index 7572d1c..286772e 100644 --- a/dist/jsoneditor.map +++ b/dist/jsoneditor.map @@ -1 +1 @@ -{"version":3,"sources":["./dist/jsoneditor.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","JSONEditor","container","options","json","Error","ieVersion","util","getInternetExplorerVersion","error","console","warn","onError","change","onChange","editable","onEditable","VALID_OPTIONS","Object","keys","forEach","option","indexOf","arguments","length","_create","Ajv","err","treemode","textmode","modes","prototype","DEBOUNCE_INTERVAL","mode","setMode","destroy","set","get","setText","jsonText","parse","getText","JSON","stringify","setName","name","getName","data","extend","oldMode","config","asText","clear","mixin","create","load","onModeChange","_onError","getMode","setSchema","schema","schemaRefs","ajv","allErrors","verbose","ref","removeSchema","addSchema","validateSchema","compile","validate","refresh","registerMode","i","prop","isArray","reserved","opts","_opts","copy","setLogger","_schemas","_refs","_fragments","_formats","formats","format","schemaUriFormat","_schemaUriFormat","_schemaUriFormatFunc","str","test","_cache","cache","Cache","_loadingSchemas","_compilations","RULES","rules","_getId","chooseGetId","loopRequired","Infinity","errorDataPath","_errorDataPathProperty","undefined","serialize","stableStringify","_metaOpts","getMetaSchemaOptions","addInitialFormats","addDraft6MetaSchema","meta","addMetaSchema","addInitialSchemas","patternGroups","schemaKeyRef","v","getSchema","schemaObj","_addSchema","_compile","valid","$async","async","co","errors","_meta","key","_skipValidation","Array","resolve","normalizeId","checkUnique","skipValidation","throwOrLogError","$schema","defaultMeta","logger","currentUriFormat","uri","message","errorsText","self","META_SCHEMA_ID","keyRef","_getSchemaObj","_getSchemaFragment","res","baseId","compileSchema","SchemaObject","fragment","RegExp","_removeAllSchemas","del","cacheKey","schemas","regex","shouldAddSchema","cached","addUsedSchema","recursiveMeta","willValidate","localRefs","ids","put","callValidate","_validate","result","apply","compiling","currentOpts","refs","refVal","schemaId","_get$Id","_get$IdOrId","$id","separator","dataVar","text","e","dataPath","slice","addFormat","$dataSchema","$data","metaSchema","$dataMetaSchema","META_SUPPORT_DATA","optsSchemas","metaOpts","META_IGNORE_OPTIONS","log","noop","compileAsync","customKeyword","addKeyword","add","getKeyword","removeKeyword","remove","errorClasses","ValidationError","Validation","MissingRefError","MissingRef","compilation","localCompile","_schema","_root","isRoot","sourceCode","validateGenerator","isTop","schemaPath","errSchemaPath","errorPath","resolveRef","usePattern","useDefault","useCustomRule","vars","refValCode","patterns","patternCode","defaults","defaultCode","customRules","customRuleCode","processCode","Function","equal","ucs2length","source","code","url","_refVal","refCode","refIndex","resolvedRef","rootRefId","addLocalRef","localSchema","inlineRef","inlineRefs","replaceLocalRef","removeLocalRef","refId","inline","regexStr","index","patternsHash","value","toQuotedString","valueStr","defaultsHash","rule","parentSchema","it","definition","macro","keyword","checkCompiling","cv","endCompiling","compIndex","splice","arr","statement","resolveSchema","refPath","_getFullPath","getFullPath","resolveRecursive","getJsonPointer","parsedRef","resolveUrl","hash","parts","split","part","unescapeFragment","PREVENT_SCOPE_CHANGE","$ref","limit","checkNoRef","countKeys","item","count","SIMPLE_INLINED","normalize","protocolSeparator","protocol","href","host","path","replace","TRAILING_SLASH_HASH","resolveIds","baseIds","","fullPaths","traverse","allKeys","sch","jsonPtr","rootSchema","parentJsonPtr","parentKeyword","keyIndex","fullPath","escapeFragment","toHash","Url","slashes","auth","port","hostname","search","query","pathname","urlParse","parseQueryString","slashesDenoteHost","isObject","u","urlFormat","obj","isString","urlResolve","relative","urlResolveObject","resolveObject","arg","isNull","isNullOrUndefined","punycode","protocolPattern","portPattern","delims","unwise","concat","autoEscape","nonHostChars","hostEndingChars","unsafeProtocol","javascript","javascript:","hostlessProtocol","slashedProtocol","http","https","ftp","gopher","file","http:","https:","ftp:","gopher:","file:","querystring","TypeError","rest","trim","proto","exec","lowerProto","toLowerCase","substr","match","hostEnd","hec","atSign","lastIndexOf","decodeURIComponent","parseHost","ipv6Hostname","hostparts","l","newpart","j","k","charCodeAt","validParts","notHost","bit","push","unshift","join","domainArray","newOut","s","encode","h","ae","esc","encodeURIComponent","escape","qm","charAt","rel","relPath","shift","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","pop","authInHost","last","hasTrailingSlash","up","isAbsolute","__WEBPACK_AMD_DEFINE_RESULT__","global","type","RangeError","map","array","fn","mapDomain","string","regexSeparators","ucs2decode","extra","output","counter","ucs2encode","stringFromCharCode","basicToDigit","codePoint","base","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","floor","damp","baseMinusTMin","tMax","skew","decode","input","out","basic","oldi","w","t","baseMinusT","inputLength","n","initialN","bias","initialBias","delimiter","maxInt","tMin","handledCPCount","basicLength","q","currentValue","handledCPCountPlusOne","qMinusT","toUnicode","regexPunycode","toASCII","regexNonASCII","freeGlobal","nodeType","overflow","not-basic","invalid-input","Math","String","fromCharCode","version","ucs2","webpackPolyfill","deprecate","paths","children","hasOwnProperty","qs","sep","eq","maxKeys","len","kstr","vstr","x","idx","stringifyPrimitive","isFinite","ks","a","b","arrA","arrB","dateA","Date","dateB","getTime","regexpA","regexpB","toString","o","to","checkDataType","dataType","negate","EQUAL","AND","OK","NOT","checkDataTypes","dataTypes","types","object","null","number","integer","coerceToTypes","optionCoerceTypes","COERCE_TO_TYPES","getProperty","IDENTIFIER","escapeQuotes","SINGLE_QUOTE","varOccurences","matches","varReplace","expr","cleanUpCode","EMPTY_ELSE","EMPTY_IF_NO_ELSE","EMPTY_IF_WITH_ELSE","finalCleanUpCode","ERRORS_REGEXP","REMOVE_ERRORS_ASYNC","RETURN_ASYNC","RETURN_DATA_ASYNC","REMOVE_ERRORS","RETURN_VALID","RETURN_TRUE","ROOTDATA_REGEXP","REMOVE_ROOTDATA","schemaHasRules","schemaHasRulesExcept","exceptKeyword","getPathExpr","currentPath","jsonPointers","isNumber","joinPaths","getPath","escapeJsonPointer","getData","lvl","jsonPointer","JSON_POINTER","RELATIVE_JSON_POINTER","segments","segment","unescapeJsonPointer","pos","_traverse","cb","arrayKeywords","propsKeywords","escapeJsonPtr","keywords","skipKeywords","additionalItems","items","contains","additionalProperties","propertyNames","not","allOf","anyOf","oneOf","definitions","properties","patternProperties","dependencies","enum","const","required","maximum","minimum","exclusiveMaximum","exclusiveMinimum","multipleOf","maxLength","minLength","pattern","maxItems","minItems","uniqueItems","maxProperties","minProperties","validation","missingRef","missingSchema","errorSubclass","Subclass","constructor","cmp","cycles","f","node","aobj","bobj","seen","toJSON","seenIndex","sort","$keyword","$ruleType","$shouldUseGroup","$rulesGroup","$shouldUseRule","$rule","implements","$ruleImplementsSomeKeyword","impl","$refKeywords","all","$es7","yieldAwait","$errorKeyword","$lvl","level","$dataLvl","dataLevel","$schemaPath","$errSchemaPath","$breakOnError","$valid","$$outStack","createErrors","messages","__err","compositeRule","$top","rootId","dataPathArr","$closingBraces1","$closingBraces2","$typeSchema","$typeIsArray","extendRefs","coerceTypes","$coerceToTypes","$method","$dataType","$coerced","$bracesCoercion","arr1","$type","$i","l1","$parentData","$parentDataProperty","v5","arr2","i2","l2","useDefaults","$schemaKeys","arr3","$propertyKey","i3","l3","$sch","default","$passData","arr4","l4","arr5","i5","l5","$code","gen","ctx","args","Promise","reject","onFulfilled","ret","next","onRejected","throw","done","toPromise","isPromise","then","isGeneratorFunction","isGenerator","thunkToPromise","arrayToPromise","objectToPromise","results","promises","promise","displayName","val","wrap","createPromise","__generatorFunction__","date","DATE","month","day","DAYS","time","full","TIME","hour","minute","second","timeZone","date_time","dateTime","DATE_TIME_SEPARATOR","HOSTNAME","NOT_URI_FRAGMENT","URI","Z_ANCHOR","URITEMPLATE","URL","UUID","fast","date-time","uri-reference","uri-template","email","ipv4","ipv6","uuid","json-pointer","relative-json-pointer","ruleModules","ALL","KEYWORDS","TYPES","group","implKeywords","custom","$refCode","$refVal","$message","missingRefs","$it","$nextValid","passContext","__callValidate","$closingBraces","$currentBaseId","$allSchemasEmpty","$errs","every","$wasComposite","$isData","$idx","$dataNxt","$nextData","$nonEmptySchema","$schemaDeps","$propertyDeps","$ownProperties","ownProperties","$property","$deps","$currentErrorPath","$prop","$useData","$propertyPath","$missingProperty","$vSchema","$schemaValue","$unknownFormats","unknownFormats","$allowUnknown","$format","$isObject","$formatType","$formatRef","$additionalItems","$currErrSchemaPath","$isMax","$exclusiveKeyword","$schemaExcl","$isDataExcl","$op","$notOp","$schemaValueExcl","$exclusive","$exclType","$exclIsNumber","$opExpr","$opStr","unicode","multipleOfPrecision","$allErrorsOption","$regexp","$key","$dataProperties","$pProperties","$pPropertyKeys","$aProperties","$someProperties","$noAdditional","$additionalIsSchema","$removeAdditional","removeAdditional","$checkAdditional","$required","$requiredHash","$pgProperties","$pgPropertyKeys","i1","$pProperty","$pgProperty","$additionalProperty","$useDefaults","i4","$hasDefault","arr6","i6","l6","$pgSchema","$pgMin","$pgMax","$limit","$reason","$moreOrLess","$invalidName","$propertySch","$loopRequired","keywordsJsonPointers","metaSchemaRef","callback","loadMetaSchemaOf","_compileAsync","removePromise","added","schemaPromise","loadSchema","_addRule","ruleGroup","rg","$compile","$inline","$macro","$ruleValidate","$validateCode","$definition","$rDef","$validateSchema","$ruleErrs","$ruleErr","$asyncKeyword","statements","def_callRuleValidate","modifying","def_customError","description","title","schemaArray","nonNegativeInteger","nonNegativeIntegerDefault0","simpleTypes","stringArray","examples","Highlighter","History","SearchBox","ContextMenu","TreePath","Node","ModeSwitcher","autocomplete","translate","setLanguages","setLanguage","dom","highlighter","selection","multiselection","nodes","errorNodes","focusTarget","_setOptions","history","_createFrame","_createTable","frame","parentNode","removeChild","_debouncedValidate","searchBox","modeSwitcher","navigationBar","onSelectionChange","debounce","bind","languages","language","content","table","params","field","_setRoot","expand","appendChild","getNodeFromTarget","blur","getValue","sanitizedJsonText","sanitize","updateField","focus","querySelector","menu","collapse","tbody","getDom","expandAll","collapseAll","_onAction","action","_onChange","setError","duplicateErrors","schemaErrors","improveSchemaError","findNode","filter","entry","parentPairs","reduce","findParents","parent","some","pair","child","updateDom","recurse","startAutoScroll","mouseY","me","top","getAbsoluteTop","height","clientHeight","bottom","scrollTop","autoScrollStep","scrollHeight","autoScrollTimer","setInterval","stopAutoScroll","clearTimeout","setDomSelection","select","range","setSelectionOffset","getDomSelection","getSelectionOffset","nodeName","scrollTo","editor","animateTimeout","animateCallback","finalScrollTop","min","max","animate","diff","abs","setTimeout","onEvent","event","_onEvent","document","createElement","className","onclick","target","preventDefault","oninput","onchange","onkeydown","onkeyup","oncut","onpaste","onmousedown","onmouseup","onmouseover","onmouseout","addEventListener","onfocusin","onfocusout","undo","_onUndo","redo","_onRedo","disabled","canUndo","canRedo","navBar","treePath","onSectionSelected","_onTreePathSectionSelected","onContextMenuItemSelected","_onTreePathMenuItemSelected","_onKeyDown","_startDragDistance","_updateDragDistance","_updateTreePath","getNodePath","selected","showContextMenu","hasMoved","deselect","onDragStart","drag","_onMultiSelectStart","pathNodes","_escapeHTML","isNaN","removeClassName","pathObjs","pathObj","childs","childNode","setPath","addClassName","expandTo","selectionObj","find","dragDistanceEvent","initialTarget","initialPageX","pageX","initialPageY","pageY","dragDistance","diffX","diffY","sqrt","start","end","mousemove","window","_onMultiSelect","mouseup","_onMultiSelectEnd","_findTopLevelNodes","firstNode","isDescendantOf","direction","removeEventListener","clearStartAndEnd","selectionChanged","setSelected","_selectionChangedHandler","first","expandPathToNode","getSelection","startPath","endPath","startChild","endChild","startIndex","endIndex","firstIndex","lastIndex","keynum","which","keyCode","altKey","ctrlKey","metaKey","shiftKey","handled","selectContentEditable","previous","jsonElementType","hnode","element","innerText","getOptions","hideDropDown","show","startFrom","stopPropagation","contentOuter","col","colgroupContent","width","anchor","onClose","click","onDuplicate","onRemove","close","selection1","selection2","setSelection","_getNodeIntsncesByRange","startNode","endNode","findNodeByPath","getIndex","current","nextSibling","getNodesByRange","serializableNodes","locked","highlight","setHighlight","_cancelUnhighlight","unhighlight","unhighlightTimer","lock","unlock","actions","editField","oldValue","newValue","editValue","updateValue","changeType","oldType","newType","appendNodes","insertBeforeNodes","insertBefore","beforeNode","insertAfterNodes","afterNode","insertAfter","removeNodes","append","duplicateNodes","moveNodes","oldBeforeNode","moveBefore","newBeforeNode","hideChilds","oldSort","oldChilds","showChilds","newSort","newChilds","timestamp","oldSelection","newSelection","jsonlint","jsonString","jsString","curr","prev","parseString","endQuote","chars","controlChars","\b","\f","\n","\r","\t","pp","specialValues","regexp","escapeUnicodeChars","Number","Boolean","isUrlRegex","isUrl","getAbsoluteLeft","elem","getBoundingClientRect","left","pageXOffset","scrollLeft","pageYOffset","classes","stripFormatting","divElement","childNodes","iMax","style","removeAttribute","attributes","attribute","specified","setEndOfContentEditable","contentEditableElement","createRange","selectNodeContents","removeAllRanges","addRange","sel","getRangeAt","rangeCount","startContainer","endContainer","startOffset","endOffset","firstChild","createTextNode","setStart","setEnd","getInnerText","buffer","flush","nodeValue","hasChildNodes","prevChild","prevName","_ieVersion","rv","navigator","appName","ua","userAgent","parseFloat","$1","isFirefox","listener","useCapture","attachEvent","detachEvent","parsePath","jsonPath","remainder","SyntaxError","substring","enums","more","additionalProperty","insideRect","margin","_margin","right","func","wait","immediate","timeout","context","later","callNow","textDiff","oldText","newText","oldEnd","newEnd","getInputSelection","el","_positionForIndex","textTillIndex","row","column","normalizedValue","textInputRange","endRange","selectionStart","selectionEnd","parentElement","createTextRange","moveToBookmark","getBookmark","compareEndPoints","moveStart","moveEnd","getIndexForPosition","rows","columnCount","Element","polyfill","defineProperty","configurable","enumerable","writable","CharacterData","DocumentType","startsWith","searchString","position","parser","trace","yy","symbols_","JSONString","STRING","JSONNumber","NUMBER","JSONNullLiteral","NULL","JSONBooleanLiteral","TRUE","FALSE","JSONText","JSONValue","EOF","JSONObject","JSONArray","{","}","JSONMemberList","JSONMember",":",",","[","]","JSONElementList","$accept","$end","terminals_","2","4","6","8","10","11","14","17","18","21","22","23","24","productions_","performAction","yytext","yyleng","yylineno","yystate","$$","_$","$0","$","3","5","7","9","12","13","15","16","1","19","20","25","defaultActions","parseError","lex","token","lexer","stack","vstack","lstack","recovering","TERROR","setInput","yylloc","yyloc","symbol","preErrorSymbol","state","r","newState","expected","yyval","errStr","showPosition","line","loc","first_line","last_line","first_column","last_column","_input","_more","_less","matched","conditionStack","ch","unput","less","pastInput","past","upcomingInput","pre","tempMatch","lines","_currentRules","flex","begin","condition","popState","conditions","topState","pushState","yy_","$avoiding_name_collisions","YY_START","INITIAL","inclusive","delay","lastText","tr","td","divInput","tableInput","tbodySearch","refreshSearch","_onDelayedSearch","_onSearch","_onKeyUp","searchNext","searchPrevious","resultIndex","_setActiveResult","activeResult","prevNode","searchFieldActive","searchValueActive","_clearDelay","forceSearch","MAX_SEARCH_RESULTS","resultCount","innerHTML","getRootNode","createMenuItems","list","domItems","li","domItem","button","hide","submenu","divIcon","divText","buttonSubmenu","buttonExpand","submenuTitle","divExpand","_onExpandItem","domSubItems","subItems","ul","eventListeners","focusButton","maxHeight","_getVisibleButtons","buttons","expandedItem","subItem","visibleMenu","contentWindow","showBelow","anchorRect","parentRect","contentRect","leftGap","topGap","anchorHeight","offsetHeight","rootNode","mousedown","_isChildOf","keydown","alreadyVisible","padding","display","childsHeight","targetIndex","prevButton","nextButton","_lang","_locales","_defs","en","auto","appendText","appendTitle","appendSubmenuTitle","appendTitleAuto","ascending","ascendingTitle","actionsMenu","descending","descendingTitle","duplicateKey","duplicateText","duplicateTitle","duplicateField","empty","expandTitle","insert","insertTitle","insertSub","removeText","removeTitle","removeField","showAll","showMore","showMoreStatus","sortTitle","typeTitle","openUrl","validationCannotMove","autoType","objectType","arrayType","stringType","pt-BR","userLang","userLanguage","lang","langFound","assign","reset","_onSegmentClick","selectionCallback","_onContextMenuItemClick","contextMenuCallback","sepEl","pathEl","leftRectPos","offsetWidth","expanded","setField","fieldEditable","setValue","_debouncedOnChangeValue","_onChangeValue","_debouncedOnChangeField","_onChangeField","naturalSort","appendNodeFactory","showMoreNodeFactory","MAX_VISIBLE_CHILDS","visibleChilds","_updateEditability","parents","errorChild","updateError","tdError","tdValue","popover","onfocus","directions","popoverRect","setParent","previousField","getField","_getDomField","childValue","visible","_getType","childField","sortObjectKeys","previousValue","_getDomValue","getLevel","clone","fieldInnerText","valueInnerText","cloneChilds","childClone","getAppendDom","nextTr","_getNextTr","getShowMoreDom","resetVisibleChilds","currentNode","_hasChilds","newTr","appendTr","updateIndexes","trTemp","AppendNode","lastVisibleNode","moveTo","searchField","searchValue","_updateDomField","_updateDomValue","offsetTop","focusElement","elementName","editableDiv","containsNode","_move","clearDom","removedNode","_remove","lastTr","_stringCast","silent","_unescapeHTML","undoDiff","redoDiff","domValue","classNames","checkbox","tdCheckbox","checked","getUTCMilliseconds","tdSelect","valueFieldHTML","visibility","domField","duplicateKeys","tdDrag","domDrag","tdMenu","tdField","tree","_createDomTree","isVisible","lastNode","draggedNode","offsetY","onDrag","onDragEnd","oldCursor","body","cursor","mouseX","trThis","trPrev","trNext","trFirst","trLast","trRoot","nodePrev","nodeNext","topThis","topPrev","topFirst","heightThis","bottomNext","heightNext","moved","previousSibling","diffLevel","round","levelNext","_nextNode","_createDomField","isFirst","domTree","marginLeft","contentEditable","spellcheck","fieldText","_updateSchema","_updateDomIndexes","_findSchema","_findEnum","composite","childSchema","foundSchema","allSchemas","_createDomValue","_createDomExpandButton","borderCollapse","tdExpand","tdSeparator","srcElement","expandable","_onExpand","open","offsetX","onKeyDown","nextNode","nextDom","nextDom2","selectedNodes","_onInsertBefore","_onInsertAfter","_lastNode","_getElementName","homeNode","_firstNode","prevElement","_previousElement","appendDom","nextNode2","_previousNode","nextElement","_nextElement","prevDom","blurNodes","clones","newNode","_onAppend","_onChangeType","order","oldSortOrder","sortOrder","ShowMoreNode","firstDom","lastDom","lastChild","TYPE_TITLES","addTemplates","templates","appendData","insertData","template","titles","appendSubmenu","insertSubmenu","lower","num","numFloat","htmlEscaped","html","escapeUnicode","escapedText","_escapeJSON","escaped","oFxNcL","oFyNcL","re","sre","dre","hre","insensitive","y","xN","yN","xD","parseInt","yD","cLoc","numS","trAppend","tdAppend","domText","paddingLeft","showMoreButton","showAllButton","moreContents","moreText","_getShowMoreText","tdContents","moreTr","totalChilds","onSwitch","availableModes","form","view","currentMode","currentTitle","box","completely","setEndOfContenteditable","moveToElementText","calculateWidthForText","spacer","outline","border","whiteSpace","fontSize","fontFamily","fontWeight","confirmKeys","caseSensitive","wrapper","dropDown","leftSide","rs","onArrowDown","onArrowUp","onEnter","onTab","elementHint","elementStyle","startPos","getComputedStyle","getPropertyValue","marginTop","zIndex","backgroundColor","borderColor","cloneNode","keyDownHandler","onBlurHandler","repaint","dropDownController","optionsLength","opt","realInnerText","clientWidth","ix","oldIndex","onMouseOver","onMouseOut","onMouseDown","onmouseselection","__hint","vph","innerHeight","documentElement","rect","distanceToTop","distanceToBottom","divRow","move","step","wasDropDownHidden","ace","statusBar","indentation","_ace","theme","onTextSelectionChange","aceEditor","textarea","buttonFormat","buttonCompact","compact","buttonRepair","repair","emptyNode","isReadOnly","editorDom","edit","$blockScrolling","setTheme","setOptions","readOnly","setShowPrintMargin","setFontSize","getSession","setTabSize","setUseSoftTabs","setUseWrapMode","commands","bindKey","poweredBy","on","_onSelect","onselect","_onMouseDown","onblur","_onBlur","validationErrorsContainer","curserInfoElements","lnLabel","lnVal","colLabel","colVal","countLabel","countVal","_updateCursorInfo","_emitSelectionChange","updateDisplay","selectionRange","cursorInfo","curserPos","getCursorPosition","selectedText","getSelectedText","currentSelection","getTextSelection","sanitizedText","resize","originalOnChange","validationErrors","marginBottom","paddingBottom","doValidate","hidden","aceSelection","getRange","lead","getSelectionLead","setTextSelection","endPos","setSelectionRange","setRange","deps","payload","original","payloads","_acequire","parentId","lookup","dep","acequire","packagedModule","normalizeModule","moduleName","chunks","mod","packaged","ns","getNativeFlags","ignoreCase","multiline","extended","sticky","from","real","compliantExecNpcg","compliantLastIndexIncrement","r2","_xregexp","captureNames","Empty","doesDefinePropertyWork","exception","toInteger","that","bound","defineGetter","defineSetter","lookupGetter","lookupSetter","supportsAccessors","prototypeOfArray","prototypeOfObject","_toString","owns","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__","makeArray","lengthBefore","array_splice","deleteCount","removeCount","removed","tailOldPos","tailNewPos","tailCount","lengthAfterRemove","boxedString","splitString","fun","toObject","thisp","reduceRight","sought","getPrototypeOf","__proto__","getOwnPropertyDescriptor","property","descriptor","getter","setter","getOwnPropertyNames","createEmpty","propertyIsEnumerable","isPrototypeOf","toLocaleString","valueOf","Type","defineProperties","definePropertyWorksOnObject","definePropertyWorksOnDom","definePropertyFallback","seal","freeze","freezeObject","preventExtensions","isSealed","isFrozen","isExtensible","returnValue","hasDontEnumBug","dontEnums","dontEnumsLength","ii","dontEnum","now","ws","trimBeginRegexp","trimEndRegexp","getDocumentHead","doc","head","getElementsByTagName","tag","createElementNS","hasCssClass","addCssClass","removeCssClass","toggleCssClass","setCssClass","include","hasCssString","sheets","createStyleSheet","styleSheets","owningElement","importCssString","cssText","importCssStylsheet","link","getInnerWidth","computedStyle","getInnerHeight","scrollbarWidth","inner","minWidth","outer","noScrollbar","withScrollbar","getPageScrollTop","getPageScrollLeft","currentStyle","setInnerHtml","innerHtml","replaceChild","setInnerText","textContent","getParentWindow","defaultView","parentWindow","inherits","ctor","superCtor","super_","implement","oop","Keys","MODIFIER_KEYS","224","KEY_MODS","ctrl","alt","super","command","cmd","FUNCTION_KEYS","27","32","33","34","35","36","37","38","39","40","44","45","46","96","97","98","99","100","101","102","103","104","105","-13","112","113","114","115","116","117","118","119","120","121","122","123","144","145","PRINTABLE_KEYS","48","49","50","51","52","53","54","55","56","57","59","61","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","87","88","89","90","107","109","110","186","187","188","189","190","191","192","219","220","221","222","111","106","enter","mods","pow","keyCodeToString","keyString","OS","LINUX","MAC","WINDOWS","getOS","isMac","isLinux","os","platform","isWin","isIE","isOldIE","isGecko","isMozilla","Controllers","controllers","product","isOldGecko","isOpera","opera","isWebKit","isChrome","isAIR","isIPad","isChromeOS","isIOS","MSStream","normalizeCommandKeys","hashId","getModifierHash","useragent","pressedKeys","getModifierState","altGr","location","keyLocation","ts","timeStamp","dt","defaultPrevented","resetPressedKeys","addListener","_wrapper","removeListener","stopEvent","cancelBubble","getButton","capture","eventHandler","releaseCaptureHandler","onMouseUp","addTouchMoveListener","startx","starty","touches","touchObj","clientX","clientY","wheelX","wheelY","addMouseWheelListener","wheelDeltaX","wheelDeltaY","wheelDelta","deltaMode","DOM_DELTA_PIXEL","deltaX","deltaY","DOM_DELTA_LINE","DOM_DELTA_PAGE","axis","HORIZONTAL_AXIS","detail","addMultiMouseDownListener","elements","timeouts","callbackName","onMousedown","clicks","isNewClick","startX","startY","timer","_clicks","eventNames","onDblclick","getModifierString","addCommandKeyListener","lastKeyDownKeyCode","lastDefaultPrevented","postMessage","nextTick","win","nextFrame","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","oRequestAnimationFrame","stringReverse","reverse","stringRepeat","stringTrimLeft","stringTrimRight","copyObject","copyArray","deepCopy","arrayToMap","createMap","props","arrayRemove","escapeRegExp","escapeHTML","getMatchOffsets","regExp","offset","deferredCall","fcn","deferred","cancel","schedule","isPending","delayedCall","defaultTimeout","_self","KEYS","MODS","BROKEN_SETDATA","USE_IE_MIME_TYPE","TextInput","resetSelection","isEmpty","inComposition","inputHandler","resetValue","PLACEHOLDER","syncValue","onContextMenuClose","closeTimeout","tempStyle","renderer","$keepTextAreaAtCursor","$moveTextAreaToCursor","isTouchPad","setAttribute","opacity","copied","cut","pasted","isSelectionEmpty","isFocused","activeElement","onBlur","onFocus","syncSelection","isAllSelected","onSelect","selectAll","setInputHandler","getInputHandler","afterContextMenu","sendText","onPaste","execCommand","onTextInput","onInput","handleClipboardData","forceIEMime","clipboardData","mime","setData","doCopy","isCut","getCopyText","onCut","onCopy","onCommandKey","onCompositionStart","$readOnly","session","$undoManager","onCompositionUpdate","onCompositionEnd","markUndoGroup","clearSelection","lastValue","syncComposition","getElement","setReadOnly","onContextMenu","_emit","domEvent","moveToMouse","bringToFront","borderTopWidth","borderLeftWidth","maxTop","textInput","scroller","typingResetTimeout","typing","detectArrowKeys","home","down","TextInputIOS","DefaultHandlers","mouseHandler","$clickSelection","setDefaultHandler","onDoubleClick","onTripleClick","onQuadClick","onMouseWheel","onTouchMove","selectByLines","extendSelectionBy","selectByWords","calcDistance","ax","ay","bx","by","calcRangeOrientation","ev","inSelection","getDocumentPosition","mousedownEvent","getSelectionRange","selectionEmpty","moveToPosition","$focusTimout","inMultiSelectMode","captureMouse","startSelect","setState","waitForClickSelection","screenToTextCoordinates","getShiftKey","selectToPosition","setCapture","setStyle","comparePoint","orientedRange","setSelectionAnchor","scrollCursorIntoView","unitName","cmpStart","cmpEnd","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","unsetStyle","releaseCapture","focusWait","distance","getBracketRange","getWordRange","isMultiLine","getLineRange","getAccelKey","$lastScroll","vx","vy","allowed","prevScroll","canScroll","isScrollableBy","speed","isSlower","scrollBy","stop","Tooltip","isOpen","$element","$parentNode","$init","setHtml","setPosition","setClassName","getHeight","getWidth","GutterHandler","showTooltip","mouseEvent","annotation","gutter","$annotations","hideTooltip","getLength","screenRow","pixelToScreenCoordinates","$pos","documentToScreenRow","tooltipAnnotation","tooltip","_signal","$tooltipFollowsMouse","moveTooltip","gutterElement","tooltipTimeout","$gutterLayer","GutterTooltip","getRegion","selectTo","isMousePressed","$gutter","windowWidth","innerWidth","windowHeight","MouseEvent","$inSelection","propagationStopped","DragdropHandler","prevCursor","vMovement","hMovement","cursorMovedTime","moveCursorToPosition","cursorPointOnCaretMoved","SCROLL_CURSOR_HYSTERESIS","SCROLL_CURSOR_DELAY","autoScroll","lineHeight","layerConfig","characterWidth","editorRect","offsets","nearestXOffset","nearestYOffset","scrollCursor","vScroll","hScroll","autoScrollStartTime","AUTOSCROLL_DELAY","onDragInterval","dragCursor","addDragMarker","toOrientedRange","dragSelectionMarker","addMarker","getSelectionStyle","$cursorLayer","setBlinking","clearInterval","timerId","onMouseMove","clearDragMarker","removeMarker","fromOrientedRange","isInternal","getReadOnly","onMouseMoveTimer","canAccept","dataTransfer","getDropEffect","copyAllowed","moveAllowed","copyModifierState","effectAllowed","dropEffect","blankImage","src","dragOperation","mouseTarget","cancelDrag","draggable","setDragImage","clearData","getTextRange","setCursorStyle","onDragEnter","onDragOver","onDragLeave","onDrop","moveText","dropData","dragWait","getDragDelay","startDrag","dragWaitEnd","dragReadyEnd","cursorStyle","onMouseDrag","dragDrop","$dragEnabled","eventTarget","unselectable","xhr","XMLHttpRequest","onreadystatechange","readyState","responseText","send","loadScript","onload","_","isAbort","qualifyURL","EventEmitter","_dispatchEvent","eventName","_eventRegistry","_defaultHandlers","listeners","defaultHandler","once","newCallback","handlers","_disabled_","old","removeDefaultHandler","capturing","off","removeAllListeners","reportError","msg","optionsProvider","optList","setOption","optionNames","$options","getOption","forwardTo","handlesSet","AppConfig","$defaultOptions","defineOptions","initialValue","resetOptions","setDefaultValue","setDefaultValues","optionHash","init","scriptOptions","scriptUrl","currentScript","_currentScript","currentDocument","ownerDocument","scripts","script","getAttribute","attr","deHyphenate","basePath","workerPath","modePath","themePath","m1","toUpperCase","net","suffix","$moduleUrls","moduleUrl","component","setModuleUrl","subst","$loading","loadModule","onLoad","moduleType","afterLoad","DefaultGutterHandler","MouseHandler","focusEditor","hasFocus","getMouseEventTarget","onMouseEvent","scrollBarV","scrollBarH","gutterEl","$dragDelay","character","insideStart","$scrollSpeed","mouseMoveHandler","releaseMouse","$mouseMoved","onCaptureEnd","onCaptureInterval","$onCaptureMouseMove","cancelContextMenu","scrollSpeed","dragDelay","dragEnabled","focusTimout","tooltipFollowsMouse","FoldHandler","fold","getFoldAt","removeFold","expandFold","foldWidgets","onFoldWidgetClick","getParentFoldRangeData","firstRange","getLine","addFold","keyUtil","KeyBinding","$editor","$handlers","kb","removeKeyboardHandler","$defaultHandler","addKeyboardHandler","setKeyboardHandler","handleKeyboard","attach","detach","getKeyboardHandler","getStatusText","$callKeyboardHandlers","toExecute","success","passEvent","_computeLevels","levels","charTypes","impTab","dir","impTab_RTL","impTab_LTR","prevState","newClass","newLevel","condPos","_getCharacterType","hiLevel","lastArabic","hasUBAT_AL","hasUBAT_B","hasUBAT_S","_getCharClass","B","S","WS","_invertLevel","lev","_array","RTL","lo","hi","tmp","wType","nType","cType","L","R","ON","AN","EN","AL","CS","ES","ET","NSM","rtlCandidate","LRE","RLE","LRO","RLO","PDF","BN","uc","UnicodeTBL00","UnicodeTBL20","ON_R","R_H","DOT","doBidiReorder","textCharTypes","isRtl","logicalFromVisual","bidiLevels","hasBidiCharacters","getVisualFromLogicalIdx","logIdx","rowMap","bidiUtil","bidiRE","BidiHandler","bidiMap","currentRow","charWidths","EOL","showInvisibles","isRtlDir","wrapIndent","isLastRow","seenBidi","isBidiRow","docRow","splitIndex","updateRowLine","updateBidiMap","getDocumentRow","rowCache","$screenRowCache","$getRowCacheIndex","$docRowCache","getSplitIndex","currentIndex","prevIndex","$useWrapMode","splits","$wrapData","indent","size","isFullWidth","getScreenTabSize","endOfLine","markAsDirty","updateCharacterWidths","fontMetrics","$characterSize","bidiCharWidth","$measureCharWidth","getShowInvisibles","setShowInvisibles","setEolChar","eolChar","setTextDir","getPosLeft","visualIdx","getSelections","startCol","endCol","selections","selColMin","selColMax","isSelected","isSelectedPrev","visIdx","offsetToCol","posX","logicalIdx","charWidth","comparePoints","p1","p2","Range","startRow","startColumn","endRow","endColumn","isEqual","compare","compareRange","containsRange","intersects","isEnd","isStart","inside","insideEnd","compareStart","compareEnd","compareInside","clipRows","firstRow","lastRow","fromPoints","collapseRows","toScreenRange","screenPosStart","documentToScreenPosition","screenPosEnd","moveBy","Selection","getDocument","selectionLead","createAnchor","selectionAnchor","$isEmpty","$keepDesiredColumnOnChange","$desiredColumn","getCursor","getPosition","getSelectionAnchor","shiftSelection","columns","moveCursorTo","isBackwards","$moveSelection","mover","selectUp","moveCursorUp","selectDown","moveCursorDown","selectRight","moveCursorRight","selectLeft","moveCursorLeft","selectLineStart","moveCursorLineStart","selectLineEnd","moveCursorLineEnd","selectFileEnd","moveCursorFileEnd","selectFileStart","moveCursorFileStart","selectWordRight","moveCursorWordRight","selectWordLeft","moveCursorWordLeft","selectWord","selectAWord","getAWordRange","excludeLastChar","rowEnd","rowStart","foldLine","getFoldLine","selectLine","moveCursorBy","wouldMoveIntoSoftTab","tabSize","isTabStop","getTabSize","getNavigateWithinSoftTabs","firstColumnPosition","screenToDocumentPosition","beforeCursor","getDisplayLine","leadingSpace","$useEmacsStyleLineStart","lineEnd","getDocumentLastRowColumnPosition","textEnd","moveCursorLongWordRight","rightOfCursor","nonTokenRe","tokenRe","moveCursorLongWordLeft","getFoldStringAt","leftOfCursor","$shortWordEndIndex","whitespaceRe","moveCursorShortWordRight","moveCursorShortWordLeft","$selectLongWords","screenPos","$bidiHandler","docPos","lineWidgets","keepDesiredColumn","moveCursorToScreen","desiredColumn","getRangeOfMovements","ranges","r1","fromJSON","rangeList","toSingleRange","MAX_TOKEN_COUNT","Tokenizer","states","regExps","matchMappings","ruleRegExps","matchTotal","mapping","defaultToken","splitterRurles","caseInsensitive","adjustedregex","matchcount","groupCount","tokenArray","onMatch","$arrayTokens","$applyToken","removeCapturingGroups","splitRegex","createSplitterRegexp","$setMaxTokenCount","values","tokens","inChClass","lastCapture","parenOpen","parenClose","square","getLineTokens","startState","currentState","matchAttempts","skipped","consumeLineEnd","merge","TextHighlightRules","$rules","addRules","prefix","nextState","getRules","embedRules","HighlightRules","escapeRules","$embeds","getEmbeds","normalizeRules","processState","processed","toInsert","stateName","includeName","noEscape","keywordMap","createKeywordMapper","splitChar","$keywordList","getKeywords","$keywords","Behaviour","$behaviours","addBehaviours","behaviours","inherit","getBehaviours","TokenIterator","initialRow","initialColumn","$session","$row","$rowTokens","getTokens","getTokenAt","$tokenIndex","stepBackward","stepForward","rowCount","getCurrentToken","getCurrentTokenRow","getCurrentTokenColumn","rowTokens","tokenIndex","getCurrentTokenPosition","getCurrentTokenRange","SAFE_INSERT_IN_TOKENS","SAFE_INSERT_BEFORE_TOKENS","contextCache","defaultQuotes","\"","'","initContext","multiSelect","autoInsertedBrackets","autoInsertedRow","autoInsertedLineEnd","maybeInsertedBrackets","maybeInsertedRow","maybeInsertedLineStart","maybeInsertedLineEnd","getWrapped","opening","closing","rowDiff","CstyleBehaviour","getWrapBehavioursEnabled","isSaneInsertion","braces","recordAutoInsert","recordMaybeInsert","rightChar","matching","$findOpeningBracket","isAutoInsertedClosing","popAutoInsertedClosing","isMaybeInsertedClosing","clearMaybeInsertedClosing","openBracePos","findMatchingBracket","next_indent","$getIndent","getTabString","quotes","$mode","$quotes","lineCommentStart","quote","leftChar","rightToken","stringBefore","stringAfter","wordRe","isWordBefore","isWordAfter","iterator","$matchTokenType","iterator2","bracket","packages","pack","Ll","Lu","Lt","Lm","Lo","M","Mn","Mc","Me","N","Nd","Nl","No","P","Pd","Ps","Pe","Pi","Pf","Pc","Po","Sm","Sc","Sk","So","Z","Zs","Zl","Zp","C","Cc","Cf","Co","Cs","Cn","Mode","$defaultBehaviour","getTokenizer","$tokenizer","$highlightRules","$highlightRuleConfig","blockComment","toggleCommentLines","iter","ignoreBlankLines","shouldRemove","minIndent","insertAtTabStop","regexpStart","getUseSoftTabs","uncomment","shouldInsertSpace","removeInLine","commentWithSpace","comment","insertInLine","testRemove","before","after","spaces","lineCommentEnd","regexpEnd","minEmptyLength","toggleBlockComment","colDiff","initialRange","startRange","getNextLineIndent","tab","checkOutdent","autoOutdent","createWorker","createModeDelegates","$modes","delegations","scope","functionName","$delegator","method","transformAction","param","$behaviour","completionKeywords","ruleItr","aLength","$createKeywordList","getCompletions","word","score","applyDelta","docLines","doNotValidate","Anchor","$onChange","$pointsInOrder","point1","point2","equalPointsInOrder","bColIsAfter","$getTransformedPoint","point","moveIfEqual","deltaIsInsert","deltaRowShift","deltaColShift","deltaStart","deltaEnd","$clipPositionToDocument","$insertRight","noClip","Document","textOrLines","$lines","insertMergedLines","getAllLines","getNewLineCharacter","$split","$detectNewLine","$autoNewLine","$newLineMode","setNewLineMode","newLineMode","getNewLineMode","isNewLine","getLines","getLinesForRange","insertLines","insertFullLines","removeLines","removeFullLines","insertNewLine","clippedPos","clonePos","$clipPosition","deleteFirstNewLine","deleteLastNewLine","deletedLines","removeNewLine","applyDeltas","deltas","revertDeltas","revertDelta","isInsert","$splitAndapplyLargeDelta","MAX","chunk","indexToPosition","newlineLength","positionToIndex","BackgroundTokenizer","tokenizer","running","currentLine","$worker","workerStart","endLine","startLine","processedLines","$tokenizeRow","fireUpdateEvent","setTokenizer","setDocument","scheduleStart","$updateOnChange","getState","SearchHighlight","clazz","setRegexp","MAX_RANGES","update","markerLayer","drawSingleLineMarker","FoldLine","foldData","folds","setFoldLine","shiftRow","sameRow","containsRow","walk","lastEnd","isNewRow","placeholder","getNextFoldTo","kind","addRemoveChars","foldBefore","newFoldLine","foldLineNext","idxToPosition","lastFoldEndColumn","RangeList","pointIndex","excludeEdges","addList","substractPoint","containsPoint","rangeAtPoint","clipped","removeAll","lineDif","consumePoint","consumeRange","restorePoint","restoreRange","Fold","subFolds","subFold","collapseChildren","addSubFold","afterStart","Folding","side","getFoldsInRange","foldLines","$foldData","foundFolds","getFoldsInRangeList","getAllFolds","lastFold","startFoldLine","getNextFoldLine","getFoldedRowCount","$addFoldLine","$clipRangeToDocument","startFold","endFold","removeFolds","$updateWrapData","$updateRowLengthCache","$modified","addFolds","$updating","cloneFolds","foldAll","expandFolds","unfold","expandInner","isRowFolded","startFoldRow","getRowFoldEnd","getRowFoldStart","getFoldDisplayLine","textLine","lastColumn","$cloneFoldData","fd","toggleFold","tryToUnfold","bracketPos","getCommentFoldRange","depth","getFoldWidget","getFoldWidgetRange","$foldStyles","manual","markbegin","markbeginend","$foldStyle","setFoldStyle","$foldMode","$setFolding","foldMode","$updateFoldWidgets","$tokenizerUpdateFoldWidgets","updateFoldWidgets","tokenizerUpdateFoldWidgets","ignoreCurrent","fw","siblings","$toggleFoldWidget","toggleFoldWidget","toggleParent","BracketMatch","chr","charBeforeCursor","$findClosingBracket","$brackets",")","(","typeRe","openBracket","valueIndex","closingBracket","valueLength","TextMode","EditSession","$breakpoints","$decorations","$frontMarkers","$backMarkers","$markerId","$undoSelect","$uid","onChangeFold","bgTokenizer","resetCaches","$resetRowCache","cacheArray","low","mid","$rowLengthCache","removedFolds","$updateInternalDataOnChange","$fromUndo","ignore","$deltasDoc","$deltasFold","$informUndoManager","$deltas","setUndoManager","getUndoManager","undoManager","$syncInformUndoManager","execute","mergeUndoDeltas","$defaultUndoManager","$useSoftTabs","$indentWithTabs","$tabSize","setNavigateWithinSoftTabs","navigateWithinSoftTabs","$navigateWithinSoftTabs","$overwrite","setOverwrite","overwrite","getOverwrite","toggleOverwrite","addGutterDecoration","removeGutterDecoration","getBreakpoints","setBreakpoints","clearBreakpoints","setBreakpoint","clearBreakpoint","inFront","marker","addDynamicMarker","markerId","markers","getMarkers","$searchHighlight","highlightLines","setAnnotations","annotations","getAnnotations","clearAnnotations","inToken","wordRange","setUseWorker","useWorker","getUseWorker","$useWorker","onReloadTokenizer","$modeId","$onChangeMode","$isPlaceholder","$stopWorker","$startWorker","attachToSession","wrapMethod","$wrapMethod","foldingRules","terminate","$scrollTop","setScrollTop","getScrollTop","$scrollLeft","setScrollLeft","getScrollLeft","getScreenWidth","$computeWidth","getLineWidgetMaxWidth","screenWidth","lineWidgetsWidth","lineWidgetWidth","force","$wrapLimit","longestScreenLine","foldIndex","foldStart","$getStringScreenWidth","undoChanges","dontSelect","lastUndoRange","$getUndoSelection","foldDelta","redoChanges","setUndoSelect","enable","isUndo","fromRange","toPosition","toRange","collDiff","oldStart","newStart","indentRows","indentString","outdentRows","rowRange","deleteRange","$moveLines","$clipRowToDocument","MAX_VALUE","moveLinesUp","moveLinesDown","duplicateLines","$clipColumnToRow","$wrapLimitRange","useWrapMode","getUseWrapMode","setWrapLimitRange","adjustWrapLimit","desiredLimit","$printMargin","limits","wrapLimit","$constrainWrapLimit","getWrapLimit","setWrapLimit","getWrapLimitRange","foldLineBefore","wrapData","walkTokens","$getDisplayTokens","PLACEHOLDER_START","PLACEHOLDER_BODY","$computeWrapSplits","SPACE","TAB","TAB_SPACE","getWrapIndent","maxIndent","indentedSoftWrap","isCode","addSplit","displayed","lastSplit","lastDocSplit","displayLength","$wrapAsCode","$indentedSoftWrap","minSplit","maxScreenColumn","screenColumn","getRowLength","getRowLineCount","getRowWrapIndent","getScreenLastRowColumn","documentToScreenColumn","getDocumentLastRowColumn","docColumn","getRowSplitData","screenToDocumentRow","screenToDocumentColumn","rowLength","doCache","maxRow","foldStartRow","wrapRow","screenRowOffset","getScreenLength","screenRows","$getWidgetScreenLength","$setFontMetrics","fm","$enableVarChar","getCharacterWidth","$wrap","firstLineNumber","useSoftTabs","addWordBoundary","needle","wordBoundary","Search","$matchIterator","sr","sc","er","ec","skipCurrent","findAll","$assembleRegExp","$isMultiLine","prevRange","replacement","preserveCase","$disableFakeMultiline","wholeWord","modifier","$assembleMultilineRegExp","backwards","forEachInLine","HashHandler","commandKeyBinding","addCommands","$singleCommand","MultiHashHandler","isDefault","addCommand","removeCommand","_buildKeyHash","keepCommand","ckb","keyId","cmdGroup","keyPart","chain","binding","parseKeys","_addCommandToBinding","other","otherPos","removeCommands","bindKeys","keyList","findKeyCommand","$keyChain","CommandManager","byName","isAvailable","toggleRecording","$inReplay","recording","$addCommandToMacro","oldMacro","replay","trimMacro","mac","showSettingsMenu","showErrorMarker","scrollIntoView","centerSelection","prompt","gotoLine","multiSelectAction","getAllRanges","findNext","findPrevious","aceCommandGroup","navigateFileStart","navigateUp","times","navigateFileEnd","navigateDown","navigateWordLeft","navigateLineStart","navigateLeft","navigateWordRight","navigateLineEnd","navigateRight","selectPageDown","scrollPageDown","gotoPageDown","selectPageUp","scrollPageUp","gotoPageUp","jumpToMatching","$handlePaste","duplicateSelection","sortLines","modifyNumber","copyLinesUp","copyLinesDown","removeToLineStart","removeToLineEnd","removeWordLeft","removeWordRight","blockOutdent","blockIndent","splitLine","transposeLetters","transposeSelections","firstLineEndCol","selectedCount","insertLine","curLine","newRanges","exitMultiSelectMode","defaultCommands","Editor","getContainerElement","getTextAreaContainer","$mouseHandler","keyBinding","$search","$historyTracker","$initOperationListeners","_$emitInputEvent","setSession","startOperation","endOperation","$opResetTimer","curOp","docChanged","prevOp","commadEvent","previousCommand","scrollSelectionIntoView","animateScrolling","$mergeableCommands","$mergeUndoDeltas","mergeableCommands","shouldMerge","mergeNextCommand","sequenceStartTime","keyboardHandler","$keybindingId","handler","oldSession","$onDocumentChange","$onTokenizerUpdate","$onChangeTabSize","$onChangeWrapLimit","$onChangeWrapMode","$onChangeFold","$onChangeFrontMarker","$onChangeBackMarker","$onChangeBreakpoint","$onChangeAnnotation","$onCursorChange","$onScrollTopChange","$onScrollLeftChange","$onSelectionChange","onDocumentChange","onChangeMode","onTokenizerUpdate","onChangeTabSize","onChangeWrapLimit","onChangeWrapMode","onChangeFrontMarker","onChangeBackMarker","onChangeBreakpoint","onChangeAnnotation","onCursorChange","onScrollTopChange","onScrollLeftChange","updateFull","oldEditor","cursorPos","onResize","getTheme","getFontSize","$highlightBrackets","$bracketHighlight","$highlightPending","getMatching","$highlightTags","$highlightTagPending","$tagHighlight","prevToken","sbm","$isFocused","showCursor","visualizeFocus","hideCursor","visualizeBlur","$cursorChange","updateCursor","updateLines","$updateHighlightActiveLine","scrollToY","scrollToX","$highlightActiveLine","$selectionStyle","$maxLines","$minLines","$highlightLineMarker","$selectionMarker","$highlightSelectedWord","$getSelectionHighLightRegexp","startOuter","endOuter","lineCols","updateFrontMarkers","updateBackMarkers","updateBreakpoints","updateText","inVirtualSelectionMode","getBehavioursEnabled","transform","$mergeNextCommand","d","lineState","shouldOutdent","lineIndent","setScrollSpeed","getScrollSpeed","setDragDelay","setSelectionStyle","setHighlightActiveLine","shouldHighlight","getHighlightActiveLine","setHighlightGutterLine","getHighlightGutterLine","setHighlightSelectedWord","getHighlightSelectedWord","setAnimatedScroll","shouldAnimate","getAnimatedScroll","setDisplayIndentGuides","getDisplayIndentGuides","showPrintMargin","getShowPrintMargin","setPrintMarginColumn","getPrintMarginColumn","setBehavioursEnabled","enabled","setWrapBehavioursEnabled","setShowFoldWidgets","getShowFoldWidgets","setFadeFoldWidgets","fade","getFadeFoldWidgets","new_range","swap","originalRange","$getSelectedRows","getNumberAt","_numberRx","amount","charRange","nr","fp","decimals","nnr","toFixed","replaceRange","endPoint","totalDiff","rangeIndex","subRows","showComposition","setCompositionText","hideComposition","getFirstVisibleRow","getLastVisibleRow","isRowVisible","isRowFullyVisible","getFirstFullyVisibleRow","getLastFullyVisibleRow","$getVisibleRowCount","getScrollBottomRow","getScrollTopRow","$moveByPage","scrollToRow","scrollToLine","center","alignCursor","getCursorPositionScreen","matchType","bracketType","found","brackets","lineNumber","navigateTo","replaced","$tryReplace","replaceAll","getLastSearchOptions","newRange","preventScroll","revealRange","setAutoScrollEditorIntoView","shouldScroll","$scrollAnchor","scrollAnchor","onChangeSelection","onBeforeRender","onAfterRender","$pixelPos","$resetCursorStyle","$cursorStyle","cursorLayer","setSmoothBlinking","isBlinking","selectionStyle","highlightActiveLine","highlightSelectedWord","behavioursEnabled","wrapBehavioursEnabled","autoScrollEditorIntoView","keybindingId","hScrollBarAlwaysVisible","vScrollBarAlwaysVisible","highlightGutterLine","animatedScroll","printMarginColumn","printMargin","fadeFoldWidgets","showFoldWidgets","showLineNumbers","showGutter","displayIndentGuides","maxLines","minLines","scrollPastEnd","fixedWidthGutter","foldStyle","UndoManager","$serializeDelta","$deserializeDelta","cloneDeltaSetsObj","deltaSets_old","fnGetModifiedDelta","deltaSets_new","deltaSet_old","deltaSet_new","delta_old","deltaSets","$doc","hasUndo","dirtyCounter","$undoStack","$redoStack","NaN","undoSelectionRange","redoSelectionRange","$deserializeDeltas","hasRedo","markClean","isClean","$serializeDeltas","Gutter","parentEl","$showFoldWidgets","gutterWidth","$updateAnnotations","$cells","rowInfo","annoText","gutterOffset","breakpoints","decorations","$firstLineNumber","lastLineNumber","gutterRenderer","$renderer","cell","textNode","foldWidget","minHeight","$fixedWidth","$padding","$computePadding","ceil","$showLineNumbers","setShowLineNumbers","getShowLineNumbers","paddingRight","Marker","getBorderClass","tl","br","bl","setPadding","setMarkers","$getTop","drawFullLineMarker","drawScreenLineMarker","drawTextMarker","drawMultiLineMarker","drawBidiSingleLineMarker","firstRowScreen","stringBuilder","extraStyle","clazzModified","lineRange","range1","radiusClass","extraLength","Text","$updateEolChar","EOF_CHAR","EOL_CHAR_LF","EOL_CHAR_CRLF","EOL_CHAR","TAB_CHAR","SPACE_CHAR","getLineHeight","$fontMetrics","measure","$pollSizeChanges","checkForSizeChanges","$pollSizeChangesTimer","$computeTabString","$tabStrings","tabStr","$indentGuideRe","spaceClass","tabClass","spaceContent","tabContent","scrollLines","lineElements","lineElementsIdx","lineElement","$renderLine","$useLineGroups","oldConfig","$renderLinesFragment","createDocumentFragment","$textToken","rparen","lparen","$renderToken","replaceFunc","tabIdx","idx4","classToUse","space","renderIndentGuide","cols","$renderWrappedLine","onlyContents","splitChars","$renderSimpleLine","$getFoldLineTokens","addTokens","renderTokens","$measureNode","isIE8","Cursor","blinkInterval","smoothBlinking","cursors","addCursor","$updateCursors","$updateVisibility","$updateOpacity","blinking","restartTimer","setBlinkInterval","removeCursor","intervalId","timeoutId","blink","getPixelPosition","onScreen","$selectionMarkers","cursorIndex","pixelPos","drawCursor","$setOverwrite","ScrollBar","classSuffix","setVisible","skipEvent","onScroll","coeff","VScrollBar","$scrollbarWidth","$minWidth","setHeight","setInnerHeight","setScrollHeight","HScrollBar","setWidth","setInnerWidth","setScrollWidth","ScrollBarV","ScrollBarH","RenderLoop","onRender","pending","changes","CHAR_COUNT","FontMetrics","$setMeasureNodeStyles","$main","$testFractionalRect","font","$measureSizes","boldSize","charSizes","allowBoldFonts","setPolling","GutterLayer","MarkerLayer","TextLayer","CursorLayer","VirtualRenderer","onGutterResize","$markerBack","textLayer","$textLayer","canvas","$markerFront","$horizScroll","$vScroll","scrollBar","$scrollAnimation","scrollMargin","updateCharacterSize","$size","scrollerHeight","scrollerWidth","$dirty","$loop","$renderChanges","CHANGE_FULL","CHANGE_CURSOR","CHANGE_MARKER","CHANGE_GUTTER","CHANGE_SCROLL","CHANGE_LINES","CHANGE_TEXT","CHANGE_SIZE","CHANGE_MARKER_BACK","CHANGE_MARKER_FRONT","CHANGE_H_SCROLL","$allowBoldFonts","$updatePrintMargin","onChangeNewLineMode","$changedLines","updateFontSize","$changes","$updateSizeAsync","resizing","scrollWidth","$updateCachedSize","$extraHeight","oldSize","$showGutter","$computeLayerConfig","availableWidth","$showPrintMargin","$printMarginColumn","$animatedScroll","getShowGutter","setShowGutter","$updateGutterLineHighlight","$gutterLineHighlight","$printMarginEl","containerEl","posTop","posLeft","$composition","setScrollMargin","sm","getHScrollBarAlwaysVisible","$hScrollBarAlwaysVisible","setHScrollBarAlwaysVisible","alwaysVisible","getVScrollBarAlwaysVisible","$vScrollBarAlwaysVisible","setVScrollBarAlwaysVisible","$updateScrollBarV","$scrollPastEnd","$updateScrollBarH","$frozen","unfreeze","st","$highlightGutterLine","$updateLines","$autosize","desiredHeight","$maxPixelHeight","$gutterWidth","hideScrollbars","screenLines","longestLine","$getLongestLine","horizScroll","hScrollChanged","vScrollBefore","vScrollChanged","firstRowHeight","lineCount","charCount","$viewMargin","topMargin","bottomMargin","alignment","STEPS","$calcSteps","fromValue","toValue","steps","x_min","dx","initialScroll","oldSteps","$timer","canvasPos","textToScreenCoordinates","keepTextAreaAtCursor","$themeId","cssClass","$theme","isDark","setMouseCursor","maxPixelHeight","$workerBlob","workerUrl","Blob","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","blobBuilder","getBlob","blob","webkitURL","blobURL","createObjectURL","Worker","WorkerClient","topLevelNamespaces","classname","importScripts","$sendDeltaQueue","changeListener","onMessage","nameToUrl","toUrl","normalizePath","$normalizePath","tlns","callbackId","callbacks","onmessage","deltaQueue","emit","ex","attachToDocument","UIWorkerClient","messageBuffer","main","emitSync","sender","processNext","setEmitSync","Main","PlaceHolder","others","mainClass","othersClass","$onUpdate","onUpdate","$others","undoStack","$undostack","$undoStackDepth","setup","selectionBefore","showOtherMarkers","othersActive","hideOtherMarkers","updateAnchors","lengthDiff","inMainRange","distanceFromStart","newPos","updateMarkers","updateMarker","undosRequired","isSamePoint","accel","selectionMode","isMultiSelect","onMouseSelection","screenAnchor","screenCursor","$enableJumpToDef","$blockSelectEnabled","addSelectionMarker","oldRange","removeSelectionMarker","tmpSel","rectSel","blockSelect","newCursor","removeSelectionMarkers","rectangularRangeBlock","updateSelectionMarkers","onMouseSelectionEnd","onSelectionInterval","selectMoreLines","selectMore","splitIntoLines","alignCursors","multiSelectCommands","MultiSelect","$multiselectOnSessionChange","$onAddRange","$onRemoveRange","$onMultiSelect","$onSingleSelect","onSessionChange","$checkMultiselectChange","addAltCursorListeners","altCursor","altDown","getSelectionMarkers","$blockChangeEvents","mergeOverlappingRanges","lastRange","$initRangeList","toggleBlockSelection","includeEmptyLines","xBackwards","startOffsetX","endOffsetX","yBackwards","docEnd","selectionMarkerCount","markerList","$onMultiSelectExec","inVirtualMode","forEachSelection","keepOrder","$byLines","reg","cmdResult","anim","buf","nl","additive","skip","screenLead","toRemove","words","stopAtFirst","sameRowRanges","maxCol","minSpace","spaceOffsets","spaceOffset","fr","lr","guessRange","$reAlignText","forceLeft","alignLeft","startW","textW","endW","alignRight","unAlign","isLeftAligned","isRightAligned","enableMultiselect","enableBlockSelect","FoldMode","foldingStartMarker","foldingStopMarker","indentationBlock","startLevel","openingBracketBlock","closingBracketBlock","LineWidgets","widgetManager","updateOnChange","renderWidgets","measureWidgets","_changedWidgets","$onChangeEditor","updateOnFold","_inDocument","removeLineWidget","$updateRows","noWidgets","$oldWidget","addLineWidget","coverGutter","pixelHeight","$fold","onWidgetChanged","w1","getWidgetsAtRow","changedWidgets","fixedWidth","coverLine","fullWidth","binarySearch","comparator","findAnnotations","oldWidget","gutterAnno","arrow","Renderer","_id","getElementById","env","tagName","oldNode","createEditSession","JsonHighlightRules","MatchingBraceOutdent","BaseFoldMode","commentRegex","singleLineBlockCommentRe","tripleStarBlockCommentRe","startRegionRe","_getFoldWidgetBase","forceMultiline","getCommentRegionBlock","getSectionRange","startIndent","subRange","CStyleFoldMode","$outdent","worker","showReplaceForm","div","setEditor","searchRange","$syncOptions","$initElements","sb","replaceBox","searchOption","replaceOption","regExpOption","caseSensitiveOption","wholeWordOption","searchInput","replaceInput","searchCounter","_this","activeInput","$searchBarKb","$closeSearchBarKb","Ctrl-f|Command-f","isReplace","Ctrl-H|Command-Option-F","Ctrl-G|Command-G","Ctrl-Shift-G|Command-Shift-G","findPrev","Return","Shift-Return","Alt-Return","Tab","setSearchRange","searchRangeMarker","noMatch","updateCounter","MAX_COUNT","replaceAndFindNext","active"],"mappings":"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","file":"jsoneditor"} \ No newline at end of file +{"version":3,"sources":["./dist/jsoneditor.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","JSONEditor","container","options","json","Error","ieVersion","util","getInternetExplorerVersion","error","console","warn","onError","change","onChange","editable","onEditable","VALID_OPTIONS","Object","keys","forEach","option","indexOf","arguments","length","_create","Ajv","err","treemode","textmode","modes","prototype","DEBOUNCE_INTERVAL","mode","setMode","destroy","set","get","setText","jsonText","parse","getText","JSON","stringify","setName","name","getName","data","extend","oldMode","config","asText","clear","mixin","create","load","onModeChange","_onError","getMode","setSchema","schema","schemaRefs","ajv","allErrors","verbose","ref","removeSchema","addSchema","validateSchema","compile","validate","refresh","registerMode","i","prop","isArray","reserved","opts","_opts","copy","setLogger","_schemas","_refs","_fragments","_formats","formats","format","schemaUriFormat","_schemaUriFormat","_schemaUriFormatFunc","str","test","_cache","cache","Cache","_loadingSchemas","_compilations","RULES","rules","_getId","chooseGetId","loopRequired","Infinity","errorDataPath","_errorDataPathProperty","undefined","serialize","stableStringify","_metaOpts","getMetaSchemaOptions","addInitialFormats","addDraft6MetaSchema","meta","addMetaSchema","addInitialSchemas","patternGroups","schemaKeyRef","v","getSchema","schemaObj","_addSchema","_compile","valid","$async","async","co","errors","_meta","key","_skipValidation","Array","resolve","normalizeId","checkUnique","skipValidation","throwOrLogError","$schema","defaultMeta","logger","currentUriFormat","uri","message","errorsText","self","META_SCHEMA_ID","keyRef","_getSchemaObj","_getSchemaFragment","res","baseId","compileSchema","SchemaObject","fragment","RegExp","_removeAllSchemas","del","cacheKey","schemas","regex","shouldAddSchema","cached","addUsedSchema","recursiveMeta","willValidate","localRefs","ids","put","callValidate","_validate","result","apply","compiling","currentOpts","refs","refVal","schemaId","_get$Id","_get$IdOrId","$id","separator","dataVar","text","e","dataPath","slice","addFormat","$dataSchema","$data","metaSchema","$dataMetaSchema","META_SUPPORT_DATA","optsSchemas","metaOpts","META_IGNORE_OPTIONS","log","noop","compileAsync","customKeyword","addKeyword","add","getKeyword","removeKeyword","remove","errorClasses","ValidationError","Validation","MissingRefError","MissingRef","compilation","localCompile","_schema","_root","isRoot","sourceCode","validateGenerator","isTop","schemaPath","errSchemaPath","errorPath","resolveRef","usePattern","useDefault","useCustomRule","vars","refValCode","patterns","patternCode","defaults","defaultCode","customRules","customRuleCode","processCode","Function","equal","ucs2length","source","code","url","_refVal","refCode","refIndex","resolvedRef","rootRefId","addLocalRef","localSchema","inlineRef","inlineRefs","replaceLocalRef","removeLocalRef","refId","inline","regexStr","index","patternsHash","value","toQuotedString","valueStr","defaultsHash","rule","parentSchema","it","definition","macro","keyword","checkCompiling","cv","endCompiling","compIndex","splice","arr","statement","resolveSchema","refPath","_getFullPath","getFullPath","resolveRecursive","getJsonPointer","parsedRef","resolveUrl","hash","parts","split","part","unescapeFragment","PREVENT_SCOPE_CHANGE","$ref","limit","checkNoRef","countKeys","item","count","SIMPLE_INLINED","normalize","protocolSeparator","protocol","href","host","path","replace","TRAILING_SLASH_HASH","resolveIds","baseIds","","fullPaths","traverse","allKeys","sch","jsonPtr","rootSchema","parentJsonPtr","parentKeyword","keyIndex","fullPath","escapeFragment","toHash","Url","slashes","auth","port","hostname","search","query","pathname","urlParse","parseQueryString","slashesDenoteHost","isObject","u","urlFormat","obj","isString","urlResolve","relative","urlResolveObject","resolveObject","arg","isNull","isNullOrUndefined","punycode","protocolPattern","portPattern","delims","unwise","concat","autoEscape","nonHostChars","hostEndingChars","unsafeProtocol","javascript","javascript:","hostlessProtocol","slashedProtocol","http","https","ftp","gopher","file","http:","https:","ftp:","gopher:","file:","querystring","TypeError","rest","trim","proto","exec","lowerProto","toLowerCase","substr","match","hostEnd","hec","atSign","lastIndexOf","decodeURIComponent","parseHost","ipv6Hostname","hostparts","l","newpart","j","k","charCodeAt","validParts","notHost","bit","push","unshift","join","domainArray","newOut","s","encode","h","ae","esc","encodeURIComponent","escape","qm","charAt","rel","relPath","shift","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","pop","authInHost","last","hasTrailingSlash","up","isAbsolute","__WEBPACK_AMD_DEFINE_RESULT__","global","type","RangeError","map","array","fn","mapDomain","string","regexSeparators","ucs2decode","extra","output","counter","ucs2encode","stringFromCharCode","basicToDigit","codePoint","base","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","floor","damp","baseMinusTMin","tMax","skew","decode","input","out","basic","oldi","w","t","baseMinusT","inputLength","n","initialN","bias","initialBias","delimiter","maxInt","tMin","handledCPCount","basicLength","q","currentValue","handledCPCountPlusOne","qMinusT","toUnicode","regexPunycode","toASCII","regexNonASCII","freeGlobal","nodeType","overflow","not-basic","invalid-input","Math","String","fromCharCode","version","ucs2","webpackPolyfill","deprecate","paths","children","hasOwnProperty","qs","sep","eq","maxKeys","len","kstr","vstr","x","idx","stringifyPrimitive","isFinite","ks","a","b","arrA","arrB","dateA","Date","dateB","getTime","regexpA","regexpB","toString","o","to","checkDataType","dataType","negate","EQUAL","AND","OK","NOT","checkDataTypes","dataTypes","types","object","null","number","integer","coerceToTypes","optionCoerceTypes","COERCE_TO_TYPES","getProperty","IDENTIFIER","escapeQuotes","SINGLE_QUOTE","varOccurences","matches","varReplace","expr","cleanUpCode","EMPTY_ELSE","EMPTY_IF_NO_ELSE","EMPTY_IF_WITH_ELSE","finalCleanUpCode","ERRORS_REGEXP","REMOVE_ERRORS_ASYNC","RETURN_ASYNC","RETURN_DATA_ASYNC","REMOVE_ERRORS","RETURN_VALID","RETURN_TRUE","ROOTDATA_REGEXP","REMOVE_ROOTDATA","schemaHasRules","schemaHasRulesExcept","exceptKeyword","getPathExpr","currentPath","jsonPointers","isNumber","joinPaths","getPath","escapeJsonPointer","getData","lvl","jsonPointer","JSON_POINTER","RELATIVE_JSON_POINTER","segments","segment","unescapeJsonPointer","pos","_traverse","cb","arrayKeywords","propsKeywords","escapeJsonPtr","keywords","skipKeywords","additionalItems","items","contains","additionalProperties","propertyNames","not","allOf","anyOf","oneOf","definitions","properties","patternProperties","dependencies","enum","const","required","maximum","minimum","exclusiveMaximum","exclusiveMinimum","multipleOf","maxLength","minLength","pattern","maxItems","minItems","uniqueItems","maxProperties","minProperties","validation","missingRef","missingSchema","errorSubclass","Subclass","constructor","cmp","cycles","f","node","aobj","bobj","seen","toJSON","seenIndex","sort","$keyword","$ruleType","$shouldUseGroup","$rulesGroup","$shouldUseRule","$rule","implements","$ruleImplementsSomeKeyword","impl","$refKeywords","all","$es7","yieldAwait","$errorKeyword","$lvl","level","$dataLvl","dataLevel","$schemaPath","$errSchemaPath","$breakOnError","$valid","$$outStack","createErrors","messages","__err","compositeRule","$top","rootId","dataPathArr","$closingBraces1","$closingBraces2","$typeSchema","$typeIsArray","extendRefs","coerceTypes","$coerceToTypes","$method","$dataType","$coerced","$bracesCoercion","arr1","$type","$i","l1","$parentData","$parentDataProperty","v5","arr2","i2","l2","useDefaults","$schemaKeys","arr3","$propertyKey","i3","l3","$sch","default","$passData","arr4","l4","arr5","i5","l5","$code","gen","ctx","args","Promise","reject","onFulfilled","ret","next","onRejected","throw","done","toPromise","isPromise","then","isGeneratorFunction","isGenerator","thunkToPromise","arrayToPromise","objectToPromise","results","promises","promise","displayName","val","wrap","createPromise","__generatorFunction__","date","DATE","month","day","DAYS","time","full","TIME","hour","minute","second","timeZone","date_time","dateTime","DATE_TIME_SEPARATOR","HOSTNAME","NOT_URI_FRAGMENT","URI","Z_ANCHOR","URITEMPLATE","URL","UUID","fast","date-time","uri-reference","uri-template","email","ipv4","ipv6","uuid","json-pointer","relative-json-pointer","ruleModules","ALL","KEYWORDS","TYPES","group","implKeywords","custom","$refCode","$refVal","$message","missingRefs","$it","$nextValid","passContext","__callValidate","$closingBraces","$currentBaseId","$allSchemasEmpty","$errs","every","$wasComposite","$isData","$idx","$dataNxt","$nextData","$nonEmptySchema","$schemaDeps","$propertyDeps","$ownProperties","ownProperties","$property","$deps","$currentErrorPath","$prop","$useData","$propertyPath","$missingProperty","$vSchema","$schemaValue","$unknownFormats","unknownFormats","$allowUnknown","$format","$isObject","$formatType","$formatRef","$additionalItems","$currErrSchemaPath","$isMax","$exclusiveKeyword","$schemaExcl","$isDataExcl","$op","$notOp","$schemaValueExcl","$exclusive","$exclType","$exclIsNumber","$opExpr","$opStr","unicode","multipleOfPrecision","$allErrorsOption","$regexp","$key","$dataProperties","$pProperties","$pPropertyKeys","$aProperties","$someProperties","$noAdditional","$additionalIsSchema","$removeAdditional","removeAdditional","$checkAdditional","$required","$requiredHash","$pgProperties","$pgPropertyKeys","i1","$pProperty","$pgProperty","$additionalProperty","$useDefaults","i4","$hasDefault","arr6","i6","l6","$pgSchema","$pgMin","$pgMax","$limit","$reason","$moreOrLess","$invalidName","$propertySch","$loopRequired","keywordsJsonPointers","metaSchemaRef","callback","loadMetaSchemaOf","_compileAsync","removePromise","added","schemaPromise","loadSchema","_addRule","ruleGroup","rg","$compile","$inline","$macro","$ruleValidate","$validateCode","$definition","$rDef","$validateSchema","$ruleErrs","$ruleErr","$asyncKeyword","statements","def_callRuleValidate","modifying","def_customError","description","title","schemaArray","nonNegativeInteger","nonNegativeIntegerDefault0","simpleTypes","stringArray","examples","Highlighter","History","SearchBox","ContextMenu","TreePath","Node","ModeSwitcher","autocomplete","translate","setLanguages","setLanguage","dom","highlighter","selection","multiselection","nodes","errorNodes","focusTarget","_setOptions","history","_createFrame","_createTable","frame","parentNode","removeChild","_debouncedValidate","searchBox","modeSwitcher","navigationBar","onSelectionChange","debounce","bind","languages","language","content","table","params","field","_setRoot","expand","appendChild","getNodeFromTarget","blur","getValue","sanitizedJsonText","sanitize","updateField","focus","querySelector","menu","collapse","tbody","getDom","treePath","reset","expandAll","collapseAll","_onAction","action","_onChange","setError","duplicateErrors","schemaErrors","improveSchemaError","findNode","filter","entry","parentPairs","reduce","findParents","parent","some","pair","child","updateDom","recurse","startAutoScroll","mouseY","me","top","getAbsoluteTop","height","clientHeight","bottom","scrollTop","autoScrollStep","scrollHeight","autoScrollTimer","setInterval","stopAutoScroll","clearTimeout","setDomSelection","select","range","setSelectionOffset","getDomSelection","getSelectionOffset","nodeName","scrollTo","editor","animateTimeout","animateCallback","finalScrollTop","min","max","animate","diff","abs","setTimeout","onEvent","event","_onEvent","document","createElement","className","onclick","target","preventDefault","oninput","onchange","onkeydown","onkeyup","oncut","onpaste","onmousedown","onmouseup","onmouseover","onmouseout","addEventListener","onfocusin","onfocusout","undo","_onUndo","redo","_onRedo","disabled","canUndo","canRedo","navBar","onSectionSelected","_onTreePathSectionSelected","onContextMenuItemSelected","_onTreePathMenuItemSelected","_onKeyDown","_startDragDistance","_updateDragDistance","_updateTreePath","getNodePath","selected","showContextMenu","hasMoved","deselect","onDragStart","drag","_onMultiSelectStart","pathNodes","_escapeHTML","isNaN","removeClassName","pathObjs","pathObj","childs","childNode","setPath","addClassName","expandTo","selectionObj","find","dragDistanceEvent","initialTarget","initialPageX","pageX","initialPageY","pageY","dragDistance","diffX","diffY","sqrt","start","end","mousemove","window","_onMultiSelect","mouseup","_onMultiSelectEnd","_findTopLevelNodes","firstNode","isDescendantOf","direction","removeEventListener","clearStartAndEnd","selectionChanged","setSelected","_selectionChangedHandler","first","expandPathToNode","getSelection","startPath","endPath","startChild","endChild","startIndex","endIndex","firstIndex","lastIndex","keynum","which","keyCode","altKey","ctrlKey","metaKey","shiftKey","handled","selectContentEditable","previous","jsonElementType","hnode","element","innerText","getOptions","hideDropDown","show","startFrom","stopPropagation","contentOuter","col","colgroupContent","width","anchor","onClose","click","onDuplicate","onRemove","close","selection1","selection2","setSelection","_getNodeIntsncesByRange","startNode","endNode","findNodeByPath","getIndex","current","nextSibling","getNodesByRange","serializableNodes","locked","highlight","setHighlight","_cancelUnhighlight","unhighlight","unhighlightTimer","lock","unlock","actions","editField","oldValue","newValue","editValue","updateValue","changeType","oldType","newType","appendNodes","insertBeforeNodes","insertBefore","beforeNode","insertAfterNodes","afterNode","insertAfter","removeNodes","append","duplicateNodes","moveNodes","oldBeforeNode","moveBefore","newBeforeNode","hideChilds","oldChilds","_updateDomIndexes","showChilds","newChilds","timestamp","oldSelection","newSelection","jsonlint","jsonString","jsString","curr","prev","parseString","endQuote","chars","controlChars","\b","\f","\n","\r","\t","pp","specialValues","regexp","escapeUnicodeChars","Number","Boolean","isUrlRegex","isUrl","getAbsoluteLeft","elem","getBoundingClientRect","left","pageXOffset","scrollLeft","pageYOffset","classes","stripFormatting","divElement","childNodes","iMax","style","removeAttribute","attributes","attribute","specified","setEndOfContentEditable","contentEditableElement","createRange","selectNodeContents","removeAllRanges","addRange","sel","getRangeAt","rangeCount","startContainer","endContainer","startOffset","endOffset","firstChild","createTextNode","setStart","setEnd","getInnerText","buffer","flush","nodeValue","hasChildNodes","prevChild","prevName","_ieVersion","rv","navigator","appName","ua","userAgent","parseFloat","$1","isFirefox","listener","useCapture","attachEvent","detachEvent","parsePath","jsonPath","remainder","SyntaxError","substring","enums","more","additionalProperty","insideRect","margin","_margin","right","func","wait","immediate","timeout","context","later","callNow","textDiff","oldText","newText","oldEnd","newEnd","getInputSelection","el","_positionForIndex","textTillIndex","row","column","normalizedValue","textInputRange","endRange","selectionStart","selectionEnd","parentElement","createTextRange","moveToBookmark","getBookmark","compareEndPoints","moveStart","moveEnd","getIndexForPosition","rows","columnCount","Element","polyfill","defineProperty","configurable","enumerable","writable","CharacterData","DocumentType","startsWith","searchString","position","parser","trace","yy","symbols_","JSONString","STRING","JSONNumber","NUMBER","JSONNullLiteral","NULL","JSONBooleanLiteral","TRUE","FALSE","JSONText","JSONValue","EOF","JSONObject","JSONArray","{","}","JSONMemberList","JSONMember",":",",","[","]","JSONElementList","$accept","$end","terminals_","2","4","6","8","10","11","14","17","18","21","22","23","24","productions_","performAction","yytext","yyleng","yylineno","yystate","$$","_$","$0","$","3","5","7","9","12","13","15","16","1","19","20","25","defaultActions","parseError","lex","token","lexer","stack","vstack","lstack","recovering","TERROR","setInput","yylloc","yyloc","symbol","preErrorSymbol","state","r","newState","expected","yyval","errStr","showPosition","line","loc","first_line","last_line","first_column","last_column","_input","_more","_less","matched","conditionStack","ch","unput","less","pastInput","past","upcomingInput","pre","tempMatch","lines","_currentRules","flex","begin","condition","popState","conditions","topState","pushState","yy_","$avoiding_name_collisions","YY_START","INITIAL","inclusive","delay","lastText","tr","td","divInput","tableInput","tbodySearch","refreshSearch","_onDelayedSearch","_onSearch","_onKeyUp","searchNext","searchPrevious","resultIndex","_setActiveResult","activeResult","prevNode","searchFieldActive","searchValueActive","_clearDelay","forceSearch","MAX_SEARCH_RESULTS","resultCount","innerHTML","getRootNode","createMenuItems","list","domItems","li","domItem","button","hide","submenu","divIcon","divText","buttonSubmenu","buttonExpand","submenuTitle","divExpand","_onExpandItem","domSubItems","subItems","ul","eventListeners","focusButton","maxHeight","_getVisibleButtons","buttons","expandedItem","subItem","visibleMenu","contentWindow","showBelow","anchorRect","parentRect","contentRect","leftGap","topGap","anchorHeight","offsetHeight","rootNode","mousedown","_isChildOf","keydown","alreadyVisible","padding","display","childsHeight","targetIndex","prevButton","nextButton","_lang","_locales","_defs","en","auto","appendText","appendTitle","appendSubmenuTitle","appendTitleAuto","ascending","ascendingTitle","actionsMenu","descending","descendingTitle","duplicateKey","duplicateText","duplicateTitle","duplicateField","empty","expandTitle","insert","insertTitle","insertSub","ok","removeText","removeTitle","removeField","selectANode","showAll","showMore","showMoreStatus","sortTitle","sortFieldLabel","sortDirectionLabel","sortFieldTitle","sortAscending","sortAscendingTitle","sortDescending","sortDescendingTitle","typeTitle","openUrl","validationCannotMove","autoType","objectType","arrayType","stringType","pt-BR","selectNode","userLang","userLanguage","lang","langFound","assign","_onSegmentClick","selectionCallback","_onContextMenuItemClick","contextMenuCallback","sepEl","pathEl","leftRectPos","offsetWidth","expanded","setField","fieldEditable","setValue","_debouncedOnChangeValue","_onChangeValue","_debouncedOnChangeField","_onChangeField","naturalSort","picoModal","appendNodeFactory","showMoreNodeFactory","MAX_VISIBLE_CHILDS","visibleChilds","_updateEditability","parents","errorChild","updateError","tdError","tdValue","popover","onfocus","directions","popoverRect","setParent","previousField","getField","_getDomField","childValue","visible","_getType","childField","sortObjectKeys","previousValue","_getDomValue","getLevel","clone","fieldInnerText","valueInnerText","cloneChilds","childClone","getAppendDom","nextTr","_getNextTr","getShowMoreDom","resetVisibleChilds","currentNode","_hasChilds","newTr","appendTr","updateIndexes","trTemp","AppendNode","lastVisibleNode","moveTo","searchField","searchValue","_updateDomField","_updateDomValue","offsetTop","focusElement","elementName","editableDiv","containsNode","_move","clearDom","removedNode","_remove","lastTr","_stringCast","silent","_unescapeHTML","undoDiff","redoDiff","domValue","classNames","checkbox","tdCheckbox","checked","getUTCMilliseconds","tdSelect","valueFieldHTML","visibility","domField","duplicateKeys","tdDrag","domDrag","tdMenu","tdField","tree","_createDomTree","isVisible","lastNode","draggedNode","offsetY","onDrag","onDragEnd","oldCursor","body","cursor","mouseX","trThis","trPrev","trNext","trFirst","trLast","trRoot","nodePrev","nodeNext","topThis","topPrev","topFirst","heightThis","bottomNext","heightNext","moved","previousSibling","diffLevel","round","levelNext","_nextNode","_createDomField","isFirst","domTree","marginLeft","contentEditable","spellcheck","fieldText","_updateSchema","_findSchema","_findEnum","composite","childSchema","foundSchema","allSchemas","_createDomValue","_createDomExpandButton","borderCollapse","tdExpand","tdSeparator","srcElement","expandable","_onExpand","open","offsetX","onKeyDown","nextNode","nextDom","nextDom2","selectedNodes","_onInsertBefore","_onInsertAfter","_lastNode","_getElementName","homeNode","_firstNode","prevElement","_previousElement","appendDom","nextNode2","_previousNode","nextElement","_nextElement","prevDom","blurNodes","clones","newNode","_onAppend","_onChangeType","order","nodeA","getNestedChild","nodeB","valueA","valueB","findChildByProperty","getSortablePaths","pathsMap","_getSortablePaths","rootPath","ShowMoreNode","firstDom","lastDom","lastChild","TYPE_TITLES","addTemplates","templates","appendData","insertData","template","titles","_showSortModal","appendSubmenu","insertSubmenu","overlayClass","modalClass","afterCreate","modal","setDirection","form","modalElem","sortedBy","getAttribute","pathArray","onsubmit","afterClose","lower","num","numFloat","htmlEscaped","html","escapeUnicode","escapedText","_escapeJSON","escaped","oFxNcL","oFyNcL","re","sre","dre","hre","insensitive","y","xN","yN","xD","parseInt","yD","cLoc","numS","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","isNode","observable","callbacks","watch","trigger","detail","unprevented","isHidden","getComputedStyle","Elem","buildOverlay","getOption","make","clazz","stylize","zIndex","opacity","background","onClick","buildModal","autoinc","boxSizing","-ms-transform","-moz-transform","-webkit-transform","-o-transform","transform","backgroundColor","borderRadius","attr","anyAncestor","buildClose","border","fontSize","textAlign","lineHeight","buildElemAccessor","builder","manageFocus","iface","isEnabled","selector","msMatchesSelector","webkitMatchesSelector","canFocus","hasAttribute","firstFocusable","getElementsByTagName","lastFocusable","focused","beforeShow","activeElement","afterShow","focusable","tabKey","manageBodyOverflow","origOverflow","tag","styles","setAttribute","predicate","escapeKey","documentElement","keycode","opt","defaultValue","forceClose","shadowElem","afterCloseEvent","beforeCloseEvent","returnIface","build","built","overlay","afterCreateEvent","beforeShowEvent","afterShowEvent","closeElem","overlayElem","buildDom","beforeClose","trAppend","tdAppend","domText","paddingLeft","showMoreButton","showAllButton","moreContents","moreText","_getShowMoreText","tdContents","moreTr","totalChilds","onSwitch","availableModes","view","currentMode","currentTitle","box","completely","setEndOfContenteditable","moveToElementText","calculateWidthForText","spacer","outline","whiteSpace","fontFamily","fontWeight","confirmKeys","caseSensitive","wrapper","dropDown","leftSide","rs","onArrowDown","onArrowUp","onEnter","onTab","elementHint","elementStyle","startPos","getPropertyValue","marginTop","borderColor","cloneNode","keyDownHandler","onBlurHandler","repaint","dropDownController","optionsLength","realInnerText","clientWidth","ix","oldIndex","onMouseOver","onMouseOut","onMouseDown","onmouseselection","__hint","vph","innerHeight","rect","distanceToTop","distanceToBottom","divRow","move","step","wasDropDownHidden","ace","statusBar","indentation","_ace","theme","onTextSelectionChange","aceEditor","textarea","buttonFormat","buttonCompact","compact","buttonRepair","repair","emptyNode","isReadOnly","editorDom","edit","$blockScrolling","setTheme","setOptions","readOnly","setShowPrintMargin","setFontSize","getSession","setTabSize","setUseSoftTabs","setUseWrapMode","commands","bindKey","poweredBy","on","_onSelect","onselect","_onMouseDown","onblur","_onBlur","validationErrorsContainer","curserInfoElements","lnLabel","lnVal","colLabel","colVal","countLabel","countVal","_updateCursorInfo","_emitSelectionChange","updateDisplay","selectionRange","cursorInfo","curserPos","getCursorPosition","selectedText","getSelectedText","currentSelection","getTextSelection","sanitizedText","resize","originalOnChange","validationErrors","marginBottom","paddingBottom","doValidate","hidden","aceSelection","getRange","lead","getSelectionLead","setTextSelection","endPos","setSelectionRange","setRange","deps","payload","original","payloads","_acequire","parentId","lookup","dep","acequire","packagedModule","normalizeModule","moduleName","chunks","mod","packaged","ns","getNativeFlags","ignoreCase","multiline","extended","sticky","from","real","compliantExecNpcg","compliantLastIndexIncrement","r2","_xregexp","captureNames","Empty","doesDefinePropertyWork","exception","toInteger","that","bound","defineGetter","defineSetter","lookupGetter","lookupSetter","supportsAccessors","prototypeOfArray","prototypeOfObject","_toString","owns","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__","makeArray","lengthBefore","array_splice","deleteCount","removeCount","removed","tailOldPos","tailNewPos","tailCount","lengthAfterRemove","boxedString","splitString","fun","toObject","thisp","reduceRight","sought","getPrototypeOf","__proto__","getOwnPropertyDescriptor","property","descriptor","getter","setter","getOwnPropertyNames","createEmpty","propertyIsEnumerable","isPrototypeOf","toLocaleString","valueOf","Type","defineProperties","definePropertyWorksOnObject","definePropertyWorksOnDom","definePropertyFallback","seal","freeze","freezeObject","preventExtensions","isSealed","isFrozen","isExtensible","returnValue","hasDontEnumBug","dontEnums","dontEnumsLength","ii","dontEnum","now","ws","trimBeginRegexp","trimEndRegexp","getDocumentHead","doc","head","createElementNS","hasCssClass","addCssClass","removeCssClass","toggleCssClass","setCssClass","include","hasCssString","sheets","createStyleSheet","styleSheets","owningElement","importCssString","cssText","importCssStylsheet","link","getInnerWidth","computedStyle","getInnerHeight","scrollbarWidth","inner","minWidth","outer","noScrollbar","withScrollbar","getPageScrollTop","getPageScrollLeft","currentStyle","setInnerHtml","innerHtml","replaceChild","setInnerText","textContent","getParentWindow","defaultView","parentWindow","inherits","ctor","superCtor","super_","implement","oop","Keys","MODIFIER_KEYS","224","KEY_MODS","ctrl","alt","super","command","cmd","FUNCTION_KEYS","27","32","33","34","35","36","37","38","39","40","44","45","46","96","97","98","99","100","101","102","103","104","105","-13","112","113","114","115","116","117","118","119","120","121","122","123","144","145","PRINTABLE_KEYS","48","49","50","51","52","53","54","55","56","57","59","61","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","87","88","89","90","107","109","110","186","187","188","189","190","191","192","219","220","221","222","111","106","enter","mods","pow","keyCodeToString","keyString","OS","LINUX","MAC","WINDOWS","getOS","isMac","isLinux","os","platform","isWin","isIE","isOldIE","isGecko","isMozilla","Controllers","controllers","product","isOldGecko","isOpera","opera","isWebKit","isChrome","isAIR","isIPad","isChromeOS","isIOS","MSStream","normalizeCommandKeys","hashId","getModifierHash","useragent","pressedKeys","getModifierState","altGr","location","keyLocation","ts","timeStamp","dt","defaultPrevented","resetPressedKeys","addListener","_wrapper","removeListener","stopEvent","cancelBubble","getButton","capture","eventHandler","releaseCaptureHandler","onMouseUp","addTouchMoveListener","startx","starty","touches","touchObj","clientX","clientY","wheelX","wheelY","addMouseWheelListener","wheelDeltaX","wheelDeltaY","wheelDelta","deltaMode","DOM_DELTA_PIXEL","deltaX","deltaY","DOM_DELTA_LINE","DOM_DELTA_PAGE","axis","HORIZONTAL_AXIS","addMultiMouseDownListener","elements","timeouts","callbackName","onMousedown","clicks","isNewClick","startX","startY","timer","_clicks","eventNames","onDblclick","getModifierString","addCommandKeyListener","lastKeyDownKeyCode","lastDefaultPrevented","postMessage","nextTick","win","nextFrame","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","oRequestAnimationFrame","stringReverse","reverse","stringRepeat","stringTrimLeft","stringTrimRight","copyObject","copyArray","deepCopy","arrayToMap","createMap","props","arrayRemove","escapeRegExp","escapeHTML","getMatchOffsets","regExp","offset","deferredCall","fcn","deferred","cancel","schedule","isPending","delayedCall","defaultTimeout","_self","KEYS","MODS","BROKEN_SETDATA","USE_IE_MIME_TYPE","TextInput","resetSelection","isEmpty","inComposition","inputHandler","resetValue","PLACEHOLDER","syncValue","onContextMenuClose","closeTimeout","tempStyle","renderer","$keepTextAreaAtCursor","$moveTextAreaToCursor","isTouchPad","copied","cut","pasted","isSelectionEmpty","isFocused","onBlur","onFocus","syncSelection","isAllSelected","onSelect","selectAll","setInputHandler","getInputHandler","afterContextMenu","sendText","onPaste","execCommand","onTextInput","onInput","handleClipboardData","forceIEMime","clipboardData","mime","setData","doCopy","isCut","getCopyText","onCut","onCopy","onCommandKey","onCompositionStart","$readOnly","session","$undoManager","onCompositionUpdate","onCompositionEnd","markUndoGroup","clearSelection","lastValue","syncComposition","getElement","setReadOnly","onContextMenu","_emit","domEvent","moveToMouse","bringToFront","borderTopWidth","borderLeftWidth","maxTop","textInput","scroller","typingResetTimeout","typing","detectArrowKeys","home","down","TextInputIOS","DefaultHandlers","mouseHandler","$clickSelection","setDefaultHandler","onDoubleClick","onTripleClick","onQuadClick","onMouseWheel","onTouchMove","selectByLines","extendSelectionBy","selectByWords","calcDistance","ax","ay","bx","by","calcRangeOrientation","ev","inSelection","getDocumentPosition","mousedownEvent","getSelectionRange","selectionEmpty","moveToPosition","$focusTimout","inMultiSelectMode","captureMouse","startSelect","setState","waitForClickSelection","screenToTextCoordinates","getShiftKey","selectToPosition","setCapture","setStyle","comparePoint","orientedRange","setSelectionAnchor","scrollCursorIntoView","unitName","cmpStart","cmpEnd","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","unsetStyle","releaseCapture","focusWait","distance","getBracketRange","getWordRange","isMultiLine","getLineRange","getAccelKey","$lastScroll","vx","vy","allowed","prevScroll","canScroll","isScrollableBy","speed","isSlower","scrollBy","stop","Tooltip","isOpen","$element","$parentNode","$init","setHtml","setPosition","setClassName","getHeight","getWidth","GutterHandler","showTooltip","mouseEvent","annotation","gutter","$annotations","hideTooltip","getLength","screenRow","pixelToScreenCoordinates","$pos","documentToScreenRow","tooltipAnnotation","tooltip","_signal","$tooltipFollowsMouse","moveTooltip","gutterElement","tooltipTimeout","$gutterLayer","GutterTooltip","getRegion","selectTo","isMousePressed","$gutter","windowWidth","innerWidth","windowHeight","MouseEvent","$inSelection","propagationStopped","DragdropHandler","prevCursor","vMovement","hMovement","cursorMovedTime","moveCursorToPosition","cursorPointOnCaretMoved","SCROLL_CURSOR_HYSTERESIS","SCROLL_CURSOR_DELAY","autoScroll","layerConfig","characterWidth","editorRect","offsets","nearestXOffset","nearestYOffset","scrollCursor","vScroll","hScroll","autoScrollStartTime","AUTOSCROLL_DELAY","onDragInterval","dragCursor","addDragMarker","toOrientedRange","dragSelectionMarker","addMarker","getSelectionStyle","$cursorLayer","setBlinking","clearInterval","timerId","onMouseMove","clearDragMarker","removeMarker","fromOrientedRange","isInternal","getReadOnly","onMouseMoveTimer","canAccept","dataTransfer","getDropEffect","copyAllowed","moveAllowed","copyModifierState","effectAllowed","dropEffect","blankImage","src","dragOperation","mouseTarget","cancelDrag","draggable","setDragImage","clearData","getTextRange","setCursorStyle","onDragEnter","onDragOver","onDragLeave","onDrop","moveText","dropData","dragWait","getDragDelay","startDrag","dragWaitEnd","dragReadyEnd","cursorStyle","onMouseDrag","dragDrop","$dragEnabled","eventTarget","unselectable","xhr","XMLHttpRequest","onreadystatechange","readyState","responseText","send","loadScript","onload","_","isAbort","qualifyURL","EventEmitter","_dispatchEvent","eventName","_eventRegistry","_defaultHandlers","listeners","defaultHandler","once","newCallback","handlers","_disabled_","old","removeDefaultHandler","capturing","off","removeAllListeners","reportError","msg","optionsProvider","optList","setOption","optionNames","$options","forwardTo","handlesSet","AppConfig","$defaultOptions","defineOptions","initialValue","resetOptions","setDefaultValue","setDefaultValues","optionHash","init","scriptOptions","scriptUrl","currentScript","_currentScript","currentDocument","ownerDocument","scripts","script","deHyphenate","basePath","workerPath","modePath","themePath","m1","toUpperCase","net","suffix","$moduleUrls","moduleUrl","component","setModuleUrl","subst","$loading","loadModule","onLoad","moduleType","afterLoad","DefaultGutterHandler","MouseHandler","focusEditor","hasFocus","getMouseEventTarget","onMouseEvent","scrollBarV","scrollBarH","gutterEl","$dragDelay","character","insideStart","$scrollSpeed","mouseMoveHandler","releaseMouse","$mouseMoved","onCaptureEnd","onCaptureInterval","$onCaptureMouseMove","cancelContextMenu","scrollSpeed","dragDelay","dragEnabled","focusTimout","tooltipFollowsMouse","FoldHandler","fold","getFoldAt","removeFold","expandFold","foldWidgets","onFoldWidgetClick","getParentFoldRangeData","firstRange","getLine","addFold","keyUtil","KeyBinding","$editor","$handlers","kb","removeKeyboardHandler","$defaultHandler","addKeyboardHandler","setKeyboardHandler","handleKeyboard","attach","detach","getKeyboardHandler","getStatusText","$callKeyboardHandlers","toExecute","success","passEvent","_computeLevels","levels","charTypes","impTab","dir","impTab_RTL","impTab_LTR","prevState","newClass","newLevel","condPos","_getCharacterType","hiLevel","lastArabic","hasUBAT_AL","hasUBAT_B","hasUBAT_S","_getCharClass","B","S","WS","_invertLevel","lev","_array","RTL","lo","hi","tmp","wType","nType","cType","L","R","ON","AN","EN","AL","CS","ES","ET","NSM","rtlCandidate","LRE","RLE","LRO","RLO","PDF","BN","uc","UnicodeTBL00","UnicodeTBL20","ON_R","R_H","DOT","doBidiReorder","textCharTypes","isRtl","logicalFromVisual","bidiLevels","hasBidiCharacters","getVisualFromLogicalIdx","logIdx","rowMap","bidiUtil","bidiRE","BidiHandler","bidiMap","currentRow","charWidths","EOL","showInvisibles","isRtlDir","wrapIndent","isLastRow","seenBidi","isBidiRow","docRow","splitIndex","updateRowLine","updateBidiMap","getDocumentRow","rowCache","$screenRowCache","$getRowCacheIndex","$docRowCache","getSplitIndex","currentIndex","prevIndex","$useWrapMode","splits","$wrapData","indent","size","isFullWidth","getScreenTabSize","endOfLine","markAsDirty","updateCharacterWidths","fontMetrics","$characterSize","bidiCharWidth","$measureCharWidth","getShowInvisibles","setShowInvisibles","setEolChar","eolChar","setTextDir","getPosLeft","visualIdx","getSelections","startCol","endCol","selections","selColMin","selColMax","isSelected","isSelectedPrev","visIdx","offsetToCol","posX","logicalIdx","charWidth","comparePoints","p1","p2","Range","startRow","startColumn","endRow","endColumn","isEqual","compare","compareRange","containsRange","intersects","isEnd","isStart","inside","insideEnd","compareStart","compareEnd","compareInside","clipRows","firstRow","lastRow","fromPoints","collapseRows","toScreenRange","screenPosStart","documentToScreenPosition","screenPosEnd","moveBy","Selection","getDocument","selectionLead","createAnchor","selectionAnchor","$isEmpty","$keepDesiredColumnOnChange","$desiredColumn","getCursor","getPosition","getSelectionAnchor","shiftSelection","columns","moveCursorTo","isBackwards","$moveSelection","mover","selectUp","moveCursorUp","selectDown","moveCursorDown","selectRight","moveCursorRight","selectLeft","moveCursorLeft","selectLineStart","moveCursorLineStart","selectLineEnd","moveCursorLineEnd","selectFileEnd","moveCursorFileEnd","selectFileStart","moveCursorFileStart","selectWordRight","moveCursorWordRight","selectWordLeft","moveCursorWordLeft","selectWord","selectAWord","getAWordRange","excludeLastChar","rowEnd","rowStart","foldLine","getFoldLine","selectLine","moveCursorBy","wouldMoveIntoSoftTab","tabSize","isTabStop","getTabSize","getNavigateWithinSoftTabs","firstColumnPosition","screenToDocumentPosition","beforeCursor","getDisplayLine","leadingSpace","$useEmacsStyleLineStart","lineEnd","getDocumentLastRowColumnPosition","textEnd","moveCursorLongWordRight","rightOfCursor","nonTokenRe","tokenRe","moveCursorLongWordLeft","getFoldStringAt","leftOfCursor","$shortWordEndIndex","whitespaceRe","moveCursorShortWordRight","moveCursorShortWordLeft","$selectLongWords","screenPos","$bidiHandler","docPos","lineWidgets","keepDesiredColumn","moveCursorToScreen","desiredColumn","getRangeOfMovements","ranges","r1","fromJSON","rangeList","toSingleRange","MAX_TOKEN_COUNT","Tokenizer","states","regExps","matchMappings","ruleRegExps","matchTotal","mapping","defaultToken","splitterRurles","caseInsensitive","adjustedregex","matchcount","groupCount","tokenArray","onMatch","$arrayTokens","$applyToken","removeCapturingGroups","splitRegex","createSplitterRegexp","$setMaxTokenCount","values","tokens","inChClass","lastCapture","parenOpen","parenClose","square","getLineTokens","startState","currentState","matchAttempts","skipped","consumeLineEnd","merge","TextHighlightRules","$rules","addRules","prefix","nextState","getRules","embedRules","HighlightRules","escapeRules","$embeds","getEmbeds","normalizeRules","processState","processed","toInsert","stateName","includeName","noEscape","keywordMap","createKeywordMapper","splitChar","$keywordList","getKeywords","$keywords","Behaviour","$behaviours","addBehaviours","behaviours","inherit","getBehaviours","TokenIterator","initialRow","initialColumn","$session","$row","$rowTokens","getTokens","getTokenAt","$tokenIndex","stepBackward","stepForward","rowCount","getCurrentToken","getCurrentTokenRow","getCurrentTokenColumn","rowTokens","tokenIndex","getCurrentTokenPosition","getCurrentTokenRange","SAFE_INSERT_IN_TOKENS","SAFE_INSERT_BEFORE_TOKENS","contextCache","defaultQuotes","\"","'","initContext","multiSelect","autoInsertedBrackets","autoInsertedRow","autoInsertedLineEnd","maybeInsertedBrackets","maybeInsertedRow","maybeInsertedLineStart","maybeInsertedLineEnd","getWrapped","opening","closing","rowDiff","CstyleBehaviour","getWrapBehavioursEnabled","isSaneInsertion","braces","recordAutoInsert","recordMaybeInsert","rightChar","matching","$findOpeningBracket","isAutoInsertedClosing","popAutoInsertedClosing","isMaybeInsertedClosing","clearMaybeInsertedClosing","openBracePos","findMatchingBracket","next_indent","$getIndent","getTabString","quotes","$mode","$quotes","lineCommentStart","quote","leftChar","rightToken","stringBefore","stringAfter","wordRe","isWordBefore","isWordAfter","iterator","$matchTokenType","iterator2","bracket","packages","pack","Ll","Lu","Lt","Lm","Lo","M","Mn","Mc","Me","N","Nd","Nl","No","P","Pd","Ps","Pe","Pi","Pf","Pc","Po","Sm","Sc","Sk","So","Z","Zs","Zl","Zp","C","Cc","Cf","Co","Cs","Cn","Mode","$defaultBehaviour","getTokenizer","$tokenizer","$highlightRules","$highlightRuleConfig","blockComment","toggleCommentLines","iter","ignoreBlankLines","shouldRemove","minIndent","insertAtTabStop","regexpStart","getUseSoftTabs","uncomment","shouldInsertSpace","removeInLine","commentWithSpace","comment","insertInLine","testRemove","before","after","spaces","lineCommentEnd","regexpEnd","minEmptyLength","toggleBlockComment","colDiff","initialRange","startRange","getNextLineIndent","tab","checkOutdent","autoOutdent","createWorker","createModeDelegates","$modes","delegations","scope","functionName","$delegator","method","transformAction","param","$behaviour","completionKeywords","ruleItr","aLength","$createKeywordList","getCompletions","word","score","applyDelta","docLines","doNotValidate","Anchor","$onChange","$pointsInOrder","point1","point2","equalPointsInOrder","bColIsAfter","$getTransformedPoint","point","moveIfEqual","deltaIsInsert","deltaRowShift","deltaColShift","deltaStart","deltaEnd","$clipPositionToDocument","$insertRight","noClip","Document","textOrLines","$lines","insertMergedLines","getAllLines","getNewLineCharacter","$split","$detectNewLine","$autoNewLine","$newLineMode","setNewLineMode","newLineMode","getNewLineMode","isNewLine","getLines","getLinesForRange","insertLines","insertFullLines","removeLines","removeFullLines","insertNewLine","clippedPos","clonePos","$clipPosition","deleteFirstNewLine","deleteLastNewLine","deletedLines","removeNewLine","applyDeltas","deltas","revertDeltas","revertDelta","isInsert","$splitAndapplyLargeDelta","MAX","chunk","indexToPosition","newlineLength","positionToIndex","BackgroundTokenizer","tokenizer","running","currentLine","$worker","workerStart","endLine","startLine","processedLines","$tokenizeRow","fireUpdateEvent","setTokenizer","setDocument","scheduleStart","$updateOnChange","getState","SearchHighlight","setRegexp","MAX_RANGES","update","markerLayer","drawSingleLineMarker","FoldLine","foldData","folds","setFoldLine","shiftRow","sameRow","containsRow","walk","lastEnd","isNewRow","placeholder","getNextFoldTo","kind","addRemoveChars","foldBefore","newFoldLine","foldLineNext","idxToPosition","lastFoldEndColumn","RangeList","pointIndex","excludeEdges","addList","substractPoint","containsPoint","rangeAtPoint","clipped","removeAll","lineDif","consumePoint","consumeRange","restorePoint","restoreRange","Fold","subFolds","subFold","collapseChildren","addSubFold","afterStart","Folding","side","getFoldsInRange","foldLines","$foldData","foundFolds","getFoldsInRangeList","getAllFolds","lastFold","startFoldLine","getNextFoldLine","getFoldedRowCount","$addFoldLine","$clipRangeToDocument","startFold","endFold","removeFolds","$updateWrapData","$updateRowLengthCache","$modified","addFolds","$updating","cloneFolds","foldAll","expandFolds","unfold","expandInner","isRowFolded","startFoldRow","getRowFoldEnd","getRowFoldStart","getFoldDisplayLine","textLine","lastColumn","$cloneFoldData","fd","toggleFold","tryToUnfold","bracketPos","getCommentFoldRange","depth","getFoldWidget","getFoldWidgetRange","$foldStyles","manual","markbegin","markbeginend","$foldStyle","setFoldStyle","$foldMode","$setFolding","foldMode","$updateFoldWidgets","$tokenizerUpdateFoldWidgets","updateFoldWidgets","tokenizerUpdateFoldWidgets","ignoreCurrent","fw","siblings","$toggleFoldWidget","toggleFoldWidget","toggleParent","BracketMatch","chr","charBeforeCursor","$findClosingBracket","$brackets",")","(","typeRe","openBracket","valueIndex","closingBracket","valueLength","TextMode","EditSession","$breakpoints","$decorations","$frontMarkers","$backMarkers","$markerId","$undoSelect","$uid","onChangeFold","bgTokenizer","resetCaches","$resetRowCache","cacheArray","low","mid","$rowLengthCache","removedFolds","$updateInternalDataOnChange","$fromUndo","ignore","$deltasDoc","$deltasFold","$informUndoManager","$deltas","setUndoManager","getUndoManager","undoManager","$syncInformUndoManager","execute","mergeUndoDeltas","$defaultUndoManager","$useSoftTabs","$indentWithTabs","$tabSize","setNavigateWithinSoftTabs","navigateWithinSoftTabs","$navigateWithinSoftTabs","$overwrite","setOverwrite","overwrite","getOverwrite","toggleOverwrite","addGutterDecoration","removeGutterDecoration","getBreakpoints","setBreakpoints","clearBreakpoints","setBreakpoint","clearBreakpoint","inFront","marker","addDynamicMarker","markerId","markers","getMarkers","$searchHighlight","highlightLines","setAnnotations","annotations","getAnnotations","clearAnnotations","inToken","wordRange","setUseWorker","useWorker","getUseWorker","$useWorker","onReloadTokenizer","$modeId","$onChangeMode","$isPlaceholder","$stopWorker","$startWorker","attachToSession","wrapMethod","$wrapMethod","foldingRules","terminate","$scrollTop","setScrollTop","getScrollTop","$scrollLeft","setScrollLeft","getScrollLeft","getScreenWidth","$computeWidth","getLineWidgetMaxWidth","screenWidth","lineWidgetsWidth","lineWidgetWidth","force","$wrapLimit","longestScreenLine","foldIndex","foldStart","$getStringScreenWidth","undoChanges","dontSelect","lastUndoRange","$getUndoSelection","foldDelta","redoChanges","setUndoSelect","enable","isUndo","fromRange","toPosition","toRange","collDiff","oldStart","newStart","indentRows","indentString","outdentRows","rowRange","deleteRange","$moveLines","$clipRowToDocument","MAX_VALUE","moveLinesUp","moveLinesDown","duplicateLines","$clipColumnToRow","$wrapLimitRange","useWrapMode","getUseWrapMode","setWrapLimitRange","adjustWrapLimit","desiredLimit","$printMargin","limits","wrapLimit","$constrainWrapLimit","getWrapLimit","setWrapLimit","getWrapLimitRange","foldLineBefore","wrapData","walkTokens","$getDisplayTokens","PLACEHOLDER_START","PLACEHOLDER_BODY","$computeWrapSplits","SPACE","TAB","TAB_SPACE","getWrapIndent","maxIndent","indentedSoftWrap","isCode","addSplit","displayed","lastSplit","lastDocSplit","displayLength","$wrapAsCode","$indentedSoftWrap","minSplit","maxScreenColumn","screenColumn","getRowLength","getRowLineCount","getRowWrapIndent","getScreenLastRowColumn","documentToScreenColumn","getDocumentLastRowColumn","docColumn","getRowSplitData","screenToDocumentRow","screenToDocumentColumn","rowLength","doCache","maxRow","foldStartRow","wrapRow","screenRowOffset","getScreenLength","screenRows","$getWidgetScreenLength","$setFontMetrics","fm","$enableVarChar","getCharacterWidth","$wrap","firstLineNumber","useSoftTabs","addWordBoundary","needle","wordBoundary","Search","$matchIterator","sr","sc","er","ec","skipCurrent","findAll","$assembleRegExp","$isMultiLine","prevRange","replacement","preserveCase","$disableFakeMultiline","wholeWord","modifier","$assembleMultilineRegExp","backwards","forEachInLine","HashHandler","commandKeyBinding","addCommands","$singleCommand","MultiHashHandler","isDefault","addCommand","removeCommand","_buildKeyHash","keepCommand","ckb","keyId","cmdGroup","keyPart","chain","binding","parseKeys","_addCommandToBinding","other","otherPos","removeCommands","bindKeys","keyList","findKeyCommand","$keyChain","CommandManager","byName","isAvailable","toggleRecording","$inReplay","recording","$addCommandToMacro","oldMacro","replay","trimMacro","mac","showSettingsMenu","showErrorMarker","scrollIntoView","centerSelection","prompt","gotoLine","multiSelectAction","getAllRanges","findNext","findPrevious","aceCommandGroup","navigateFileStart","navigateUp","times","navigateFileEnd","navigateDown","navigateWordLeft","navigateLineStart","navigateLeft","navigateWordRight","navigateLineEnd","navigateRight","selectPageDown","scrollPageDown","gotoPageDown","selectPageUp","scrollPageUp","gotoPageUp","jumpToMatching","$handlePaste","duplicateSelection","sortLines","modifyNumber","copyLinesUp","copyLinesDown","removeToLineStart","removeToLineEnd","removeWordLeft","removeWordRight","blockOutdent","blockIndent","splitLine","transposeLetters","transposeSelections","firstLineEndCol","selectedCount","insertLine","curLine","newRanges","exitMultiSelectMode","defaultCommands","Editor","getContainerElement","getTextAreaContainer","$mouseHandler","keyBinding","$search","$historyTracker","$initOperationListeners","_$emitInputEvent","setSession","startOperation","endOperation","$opResetTimer","curOp","docChanged","prevOp","commadEvent","previousCommand","scrollSelectionIntoView","animateScrolling","$mergeableCommands","$mergeUndoDeltas","mergeableCommands","shouldMerge","mergeNextCommand","sequenceStartTime","keyboardHandler","$keybindingId","handler","oldSession","$onDocumentChange","$onTokenizerUpdate","$onChangeTabSize","$onChangeWrapLimit","$onChangeWrapMode","$onChangeFold","$onChangeFrontMarker","$onChangeBackMarker","$onChangeBreakpoint","$onChangeAnnotation","$onCursorChange","$onScrollTopChange","$onScrollLeftChange","$onSelectionChange","onDocumentChange","onChangeMode","onTokenizerUpdate","onChangeTabSize","onChangeWrapLimit","onChangeWrapMode","onChangeFrontMarker","onChangeBackMarker","onChangeBreakpoint","onChangeAnnotation","onCursorChange","onScrollTopChange","onScrollLeftChange","updateFull","oldEditor","cursorPos","onResize","getTheme","getFontSize","$highlightBrackets","$bracketHighlight","$highlightPending","getMatching","$highlightTags","$highlightTagPending","$tagHighlight","prevToken","sbm","$isFocused","showCursor","visualizeFocus","hideCursor","visualizeBlur","$cursorChange","updateCursor","updateLines","$updateHighlightActiveLine","scrollToY","scrollToX","$highlightActiveLine","$selectionStyle","$maxLines","$minLines","$highlightLineMarker","$selectionMarker","$highlightSelectedWord","$getSelectionHighLightRegexp","startOuter","endOuter","lineCols","updateFrontMarkers","updateBackMarkers","updateBreakpoints","updateText","inVirtualSelectionMode","getBehavioursEnabled","$mergeNextCommand","d","lineState","shouldOutdent","lineIndent","setScrollSpeed","getScrollSpeed","setDragDelay","setSelectionStyle","setHighlightActiveLine","shouldHighlight","getHighlightActiveLine","setHighlightGutterLine","getHighlightGutterLine","setHighlightSelectedWord","getHighlightSelectedWord","setAnimatedScroll","shouldAnimate","getAnimatedScroll","setDisplayIndentGuides","getDisplayIndentGuides","showPrintMargin","getShowPrintMargin","setPrintMarginColumn","getPrintMarginColumn","setBehavioursEnabled","enabled","setWrapBehavioursEnabled","setShowFoldWidgets","getShowFoldWidgets","setFadeFoldWidgets","fade","getFadeFoldWidgets","new_range","swap","originalRange","$getSelectedRows","getNumberAt","_numberRx","amount","charRange","nr","fp","decimals","nnr","toFixed","replaceRange","endPoint","totalDiff","rangeIndex","subRows","showComposition","setCompositionText","hideComposition","getFirstVisibleRow","getLastVisibleRow","isRowVisible","isRowFullyVisible","getFirstFullyVisibleRow","getLastFullyVisibleRow","$getVisibleRowCount","getScrollBottomRow","getScrollTopRow","$moveByPage","scrollToRow","scrollToLine","center","alignCursor","getCursorPositionScreen","matchType","bracketType","found","brackets","lineNumber","navigateTo","replaced","$tryReplace","replaceAll","getLastSearchOptions","newRange","preventScroll","revealRange","setAutoScrollEditorIntoView","shouldScroll","$scrollAnchor","scrollAnchor","onChangeSelection","onBeforeRender","onAfterRender","$pixelPos","$resetCursorStyle","$cursorStyle","cursorLayer","setSmoothBlinking","isBlinking","selectionStyle","highlightActiveLine","highlightSelectedWord","behavioursEnabled","wrapBehavioursEnabled","autoScrollEditorIntoView","keybindingId","hScrollBarAlwaysVisible","vScrollBarAlwaysVisible","highlightGutterLine","animatedScroll","printMarginColumn","printMargin","fadeFoldWidgets","showFoldWidgets","showLineNumbers","showGutter","displayIndentGuides","maxLines","minLines","scrollPastEnd","fixedWidthGutter","foldStyle","UndoManager","$serializeDelta","$deserializeDelta","cloneDeltaSetsObj","deltaSets_old","fnGetModifiedDelta","deltaSets_new","deltaSet_old","deltaSet_new","delta_old","deltaSets","$doc","hasUndo","dirtyCounter","$undoStack","$redoStack","NaN","undoSelectionRange","redoSelectionRange","$deserializeDeltas","hasRedo","markClean","isClean","$serializeDeltas","Gutter","parentEl","$showFoldWidgets","gutterWidth","$updateAnnotations","$cells","rowInfo","annoText","gutterOffset","breakpoints","decorations","$firstLineNumber","lastLineNumber","gutterRenderer","$renderer","cell","textNode","foldWidget","minHeight","$fixedWidth","$padding","$computePadding","ceil","$showLineNumbers","setShowLineNumbers","getShowLineNumbers","paddingRight","Marker","getBorderClass","tl","br","bl","setPadding","setMarkers","$getTop","drawFullLineMarker","drawScreenLineMarker","drawTextMarker","drawMultiLineMarker","drawBidiSingleLineMarker","firstRowScreen","stringBuilder","extraStyle","clazzModified","lineRange","range1","radiusClass","extraLength","Text","$updateEolChar","EOF_CHAR","EOL_CHAR_LF","EOL_CHAR_CRLF","EOL_CHAR","TAB_CHAR","SPACE_CHAR","getLineHeight","$fontMetrics","measure","$pollSizeChanges","checkForSizeChanges","$pollSizeChangesTimer","$computeTabString","$tabStrings","tabStr","$indentGuideRe","spaceClass","tabClass","spaceContent","tabContent","scrollLines","lineElements","lineElementsIdx","lineElement","$renderLine","$useLineGroups","oldConfig","$renderLinesFragment","createDocumentFragment","$textToken","rparen","lparen","$renderToken","replaceFunc","tabIdx","idx4","classToUse","space","renderIndentGuide","cols","$renderWrappedLine","onlyContents","splitChars","$renderSimpleLine","$getFoldLineTokens","addTokens","renderTokens","$measureNode","isIE8","Cursor","blinkInterval","smoothBlinking","cursors","addCursor","$updateCursors","$updateVisibility","$updateOpacity","blinking","restartTimer","setBlinkInterval","removeCursor","intervalId","timeoutId","blink","getPixelPosition","onScreen","$selectionMarkers","cursorIndex","pixelPos","drawCursor","$setOverwrite","ScrollBar","classSuffix","setVisible","skipEvent","onScroll","coeff","VScrollBar","$scrollbarWidth","$minWidth","setHeight","setInnerHeight","setScrollHeight","HScrollBar","setWidth","setInnerWidth","setScrollWidth","ScrollBarV","ScrollBarH","RenderLoop","onRender","pending","changes","CHAR_COUNT","FontMetrics","$setMeasureNodeStyles","$main","$testFractionalRect","font","$measureSizes","boldSize","charSizes","allowBoldFonts","setPolling","GutterLayer","MarkerLayer","TextLayer","CursorLayer","VirtualRenderer","onGutterResize","$markerBack","textLayer","$textLayer","canvas","$markerFront","$horizScroll","$vScroll","scrollBar","$scrollAnimation","scrollMargin","updateCharacterSize","$size","scrollerHeight","scrollerWidth","$dirty","$loop","$renderChanges","CHANGE_FULL","CHANGE_CURSOR","CHANGE_MARKER","CHANGE_GUTTER","CHANGE_SCROLL","CHANGE_LINES","CHANGE_TEXT","CHANGE_SIZE","CHANGE_MARKER_BACK","CHANGE_MARKER_FRONT","CHANGE_H_SCROLL","$allowBoldFonts","$updatePrintMargin","onChangeNewLineMode","$changedLines","updateFontSize","$changes","$updateSizeAsync","resizing","scrollWidth","$updateCachedSize","$extraHeight","oldSize","$showGutter","$computeLayerConfig","availableWidth","$showPrintMargin","$printMarginColumn","$animatedScroll","getShowGutter","setShowGutter","$updateGutterLineHighlight","$gutterLineHighlight","$printMarginEl","containerEl","posTop","posLeft","$composition","setScrollMargin","sm","getHScrollBarAlwaysVisible","$hScrollBarAlwaysVisible","setHScrollBarAlwaysVisible","alwaysVisible","getVScrollBarAlwaysVisible","$vScrollBarAlwaysVisible","setVScrollBarAlwaysVisible","$updateScrollBarV","$scrollPastEnd","$updateScrollBarH","$frozen","unfreeze","st","$highlightGutterLine","$updateLines","$autosize","desiredHeight","$maxPixelHeight","$gutterWidth","hideScrollbars","screenLines","longestLine","$getLongestLine","horizScroll","hScrollChanged","vScrollBefore","vScrollChanged","firstRowHeight","lineCount","charCount","$viewMargin","topMargin","bottomMargin","alignment","STEPS","$calcSteps","fromValue","toValue","steps","x_min","dx","initialScroll","oldSteps","$timer","canvasPos","textToScreenCoordinates","keepTextAreaAtCursor","$themeId","cssClass","$theme","isDark","setMouseCursor","maxPixelHeight","$workerBlob","workerUrl","Blob","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","blobBuilder","getBlob","blob","webkitURL","blobURL","createObjectURL","Worker","WorkerClient","topLevelNamespaces","classname","importScripts","$sendDeltaQueue","changeListener","onMessage","nameToUrl","toUrl","normalizePath","$normalizePath","tlns","callbackId","onmessage","deltaQueue","emit","ex","attachToDocument","UIWorkerClient","messageBuffer","main","emitSync","sender","processNext","setEmitSync","Main","PlaceHolder","others","mainClass","othersClass","$onUpdate","onUpdate","$others","undoStack","$undostack","$undoStackDepth","setup","selectionBefore","showOtherMarkers","othersActive","hideOtherMarkers","updateAnchors","lengthDiff","inMainRange","distanceFromStart","newPos","updateMarkers","updateMarker","undosRequired","isSamePoint","accel","selectionMode","isMultiSelect","onMouseSelection","screenAnchor","screenCursor","$enableJumpToDef","$blockSelectEnabled","addSelectionMarker","oldRange","removeSelectionMarker","tmpSel","rectSel","blockSelect","newCursor","removeSelectionMarkers","rectangularRangeBlock","updateSelectionMarkers","onMouseSelectionEnd","onSelectionInterval","selectMoreLines","selectMore","splitIntoLines","alignCursors","multiSelectCommands","MultiSelect","$multiselectOnSessionChange","$onAddRange","$onRemoveRange","$onMultiSelect","$onSingleSelect","onSessionChange","$checkMultiselectChange","addAltCursorListeners","altCursor","altDown","getSelectionMarkers","$blockChangeEvents","mergeOverlappingRanges","lastRange","$initRangeList","toggleBlockSelection","includeEmptyLines","xBackwards","startOffsetX","endOffsetX","yBackwards","docEnd","selectionMarkerCount","markerList","$onMultiSelectExec","inVirtualMode","forEachSelection","keepOrder","$byLines","reg","cmdResult","anim","buf","nl","additive","skip","screenLead","toRemove","words","stopAtFirst","sameRowRanges","maxCol","minSpace","spaceOffsets","spaceOffset","fr","lr","guessRange","$reAlignText","forceLeft","alignLeft","startW","textW","endW","alignRight","unAlign","isLeftAligned","isRightAligned","enableMultiselect","enableBlockSelect","FoldMode","foldingStartMarker","foldingStopMarker","indentationBlock","startLevel","openingBracketBlock","closingBracketBlock","LineWidgets","widgetManager","updateOnChange","renderWidgets","measureWidgets","_changedWidgets","$onChangeEditor","updateOnFold","_inDocument","removeLineWidget","$updateRows","noWidgets","$oldWidget","addLineWidget","coverGutter","pixelHeight","$fold","onWidgetChanged","w1","getWidgetsAtRow","changedWidgets","fixedWidth","coverLine","fullWidth","binarySearch","comparator","findAnnotations","oldWidget","gutterAnno","arrow","Renderer","_id","getElementById","env","tagName","oldNode","createEditSession","JsonHighlightRules","MatchingBraceOutdent","BaseFoldMode","commentRegex","singleLineBlockCommentRe","tripleStarBlockCommentRe","startRegionRe","_getFoldWidgetBase","forceMultiline","getCommentRegionBlock","getSectionRange","startIndent","subRange","CStyleFoldMode","$outdent","worker","showReplaceForm","div","setEditor","searchRange","$syncOptions","$initElements","sb","replaceBox","searchOption","replaceOption","regExpOption","caseSensitiveOption","wholeWordOption","searchInput","replaceInput","searchCounter","_this","activeInput","$searchBarKb","$closeSearchBarKb","Ctrl-f|Command-f","isReplace","Ctrl-H|Command-Option-F","Ctrl-G|Command-G","Ctrl-Shift-G|Command-Shift-G","findPrev","Return","Shift-Return","Alt-Return","Tab","setSearchRange","searchRangeMarker","noMatch","updateCounter","MAX_COUNT","replaceAndFindNext","active"],"mappings":"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","file":"jsoneditor"} \ No newline at end of file diff --git a/dist/jsoneditor.min.css b/dist/jsoneditor.min.css index ef64daf..6c89062 100644 --- a/dist/jsoneditor.min.css +++ b/dist/jsoneditor.min.css @@ -1 +1 @@ -div.jsoneditor .jsoneditor-search input{height:auto;border:inherit}div.jsoneditor .jsoneditor-search input:focus{border:none!important;box-shadow:none!important}div.jsoneditor table{border-collapse:collapse;width:auto}div.jsoneditor td,div.jsoneditor th{padding:0;display:table-cell;text-align:left;vertical-align:inherit;border-radius:inherit}div.jsoneditor-field,div.jsoneditor-readonly,div.jsoneditor-value{border:1px solid transparent;min-height:16px;min-width:32px;padding:2px;margin:1px;word-wrap:break-word;float:left}div.jsoneditor-field p,div.jsoneditor-value p{margin:0}div.jsoneditor-value{word-break:break-word}div.jsoneditor-readonly{min-width:16px;color:grey}div.jsoneditor-empty{border-color:#d3d3d3;border-style:dashed;border-radius:2px}div.jsoneditor-field.jsoneditor-empty::after,div.jsoneditor-value.jsoneditor-empty::after{pointer-events:none;color:#d3d3d3;font-size:8pt}div.jsoneditor-field.jsoneditor-empty::after{content:"field"}div.jsoneditor-value.jsoneditor-empty::after{content:"value"}a.jsoneditor-value.jsoneditor-url,div.jsoneditor-value.jsoneditor-url{color:green;text-decoration:underline}a.jsoneditor-value.jsoneditor-url{display:inline-block;padding:2px;margin:2px}a.jsoneditor-value.jsoneditor-url:focus,a.jsoneditor-value.jsoneditor-url:hover{color:#ee422e}div.jsoneditor td.jsoneditor-separator{padding:3px 0;vertical-align:top;color:grey}div.jsoneditor-field.jsoneditor-highlight,div.jsoneditor-field[contenteditable=true]:focus,div.jsoneditor-field[contenteditable=true]:hover,div.jsoneditor-value.jsoneditor-highlight,div.jsoneditor-value[contenteditable=true]:focus,div.jsoneditor-value[contenteditable=true]:hover{background-color:#ffffab;border:1px solid #ff0;border-radius:2px}div.jsoneditor-field.jsoneditor-highlight-active,div.jsoneditor-field.jsoneditor-highlight-active:focus,div.jsoneditor-field.jsoneditor-highlight-active:hover,div.jsoneditor-value.jsoneditor-highlight-active,div.jsoneditor-value.jsoneditor-highlight-active:focus,div.jsoneditor-value.jsoneditor-highlight-active:hover{background-color:#fe0;border:1px solid #ffc700;border-radius:2px}div.jsoneditor-value.jsoneditor-string{color:green}div.jsoneditor-value.jsoneditor-array,div.jsoneditor-value.jsoneditor-object{min-width:16px;color:grey}div.jsoneditor-value.jsoneditor-number{color:#ee422e}div.jsoneditor-value.jsoneditor-boolean{color:#ff8c00}div.jsoneditor-value.jsoneditor-null{color:#004ed0}div.jsoneditor-value.jsoneditor-invalid{color:#000}div.jsoneditor-tree button{width:24px;height:24px;padding:0;margin:0;border:none;cursor:pointer;background:transparent url(img/jsoneditor-icons.svg)}div.jsoneditor-mode-form tr.jsoneditor-expandable td.jsoneditor-tree,div.jsoneditor-mode-view tr.jsoneditor-expandable td.jsoneditor-tree{cursor:pointer}div.jsoneditor-tree button.jsoneditor-collapsed{background-position:0 -48px}div.jsoneditor-tree button.jsoneditor-expanded{background-position:0 -72px}div.jsoneditor-tree button.jsoneditor-contextmenu{background-position:-48px -72px}div.jsoneditor-tree button.jsoneditor-contextmenu.jsoneditor-selected,div.jsoneditor-tree button.jsoneditor-contextmenu:focus,div.jsoneditor-tree button.jsoneditor-contextmenu:hover,tr.jsoneditor-selected.jsoneditor-first button.jsoneditor-contextmenu{background-position:-48px -48px}div.jsoneditor-tree :focus{outline:0}div.jsoneditor-tree button:focus{background-color:#f5f5f5;outline:#e5e5e5 solid 1px}div.jsoneditor-tree button.jsoneditor-invisible{visibility:hidden;background:0 0}div.jsoneditor-tree div.jsoneditor-show-more{display:inline-block;padding:3px 4px;margin:2px 0;background-color:#e5e5e5;border-radius:3px;color:grey;font-family:arial,sans-serif;font-size:10pt}div.jsoneditor-tree div.jsoneditor-show-more a{display:inline-block;color:grey}div.jsoneditor-tree div.jsoneditor-show-more a:focus,div.jsoneditor-tree div.jsoneditor-show-more a:hover{color:#ee422e}div.jsoneditor{color:#1a1a1a;border:1px solid #3883fa;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:100%;position:relative;padding:0;line-height:100%}div.jsoneditor-tree table.jsoneditor-tree{border-collapse:collapse;border-spacing:0;width:100%;margin:0}div.jsoneditor-outer{position:static;width:100%;height:100%;margin:-35px 0 0 0;padding:35px 0 0 0;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}div.jsoneditor-outer.has-nav-bar{margin:-61px 0 0 0;padding:61px 0 0 0}div.jsoneditor-outer.has-status-bar{margin:-35px 0 -26px 0;padding:35px 0 26px 0}.ace-jsoneditor,textarea.jsoneditor-text{min-height:150px}div.jsoneditor-tree{width:100%;height:100%;position:relative;overflow:auto}textarea.jsoneditor-text{width:100%;height:100%;margin:0;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;outline-width:0;border:none;background-color:#fff;resize:none}tr.jsoneditor-highlight,tr.jsoneditor-selected{background-color:#d3d3d3}tr.jsoneditor-selected button.jsoneditor-contextmenu,tr.jsoneditor-selected button.jsoneditor-dragarea{visibility:hidden}tr.jsoneditor-selected.jsoneditor-first button.jsoneditor-contextmenu,tr.jsoneditor-selected.jsoneditor-first button.jsoneditor-dragarea{visibility:visible}div.jsoneditor-tree button.jsoneditor-dragarea{background:url(img/jsoneditor-icons.svg) -72px -72px;cursor:move}div.jsoneditor-tree button.jsoneditor-dragarea:focus,div.jsoneditor-tree button.jsoneditor-dragarea:hover,tr.jsoneditor-selected.jsoneditor-first button.jsoneditor-dragarea{background-position:-72px -48px}div.jsoneditor td,div.jsoneditor th,div.jsoneditor tr{padding:0;margin:0}div.jsoneditor td{vertical-align:top}div.jsoneditor td.jsoneditor-tree{vertical-align:top}.jsoneditor-schema-error,div.jsoneditor td,div.jsoneditor textarea,div.jsoneditor th,div.jsoneditor-field,div.jsoneditor-value{font-family:"dejavu sans mono","droid sans mono",consolas,monaco,"lucida console","courier new",courier,monospace,sans-serif;font-size:10pt;color:#1a1a1a}.jsoneditor-schema-error{cursor:default;display:inline-block;height:24px;line-height:24px;position:relative;text-align:center;width:24px}div.jsoneditor-tree .jsoneditor-schema-error{width:24px;height:24px;padding:0;margin:0 4px 0 0;background:url(img/jsoneditor-icons.svg) -168px -48px}.jsoneditor-schema-error .jsoneditor-popover{background-color:#4c4c4c;border-radius:3px;box-shadow:0 0 5px rgba(0,0,0,.4);color:#fff;display:none;padding:7px 10px;position:absolute;width:200px;z-index:4}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-above{bottom:32px;left:-98px}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-below{top:32px;left:-98px}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-left{top:-7px;right:32px}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-right{top:-7px;left:32px}.jsoneditor-schema-error .jsoneditor-popover:before{border-right:7px solid transparent;border-left:7px solid transparent;content:'';display:block;left:50%;margin-left:-7px;position:absolute}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-above:before{border-top:7px solid #4c4c4c;bottom:-7px}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-below:before{border-bottom:7px solid #4c4c4c;top:-7px}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-left:before{border-left:7px solid #4c4c4c;border-top:7px solid transparent;border-bottom:7px solid transparent;content:'';top:19px;right:-14px;left:inherit;margin-left:inherit;margin-top:-7px;position:absolute}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-right:before{border-right:7px solid #4c4c4c;border-top:7px solid transparent;border-bottom:7px solid transparent;content:'';top:19px;left:-14px;margin-left:inherit;margin-top:-7px;position:absolute}.jsoneditor-schema-error:focus .jsoneditor-popover,.jsoneditor-schema-error:hover .jsoneditor-popover{display:block;-webkit-animation:fade-in .3s linear 1,move-up .3s linear 1;-moz-animation:fade-in .3s linear 1,move-up .3s linear 1;-ms-animation:fade-in .3s linear 1,move-up .3s linear 1}@-webkit-keyframes fade-in{from{opacity:0}to{opacity:1}}@-moz-keyframes fade-in{from{opacity:0}to{opacity:1}}@-ms-keyframes fade-in{from{opacity:0}to{opacity:1}}.jsoneditor .jsoneditor-text-errors{width:100%;border-collapse:collapse;background-color:#ffef8b;border-top:1px solid gold}.jsoneditor .jsoneditor-text-errors td{padding:3px 6px;vertical-align:middle}.jsoneditor-text-errors .jsoneditor-schema-error{border:none;width:24px;height:24px;padding:0;margin:0 4px 0 0;background:url(img/jsoneditor-icons.svg) -168px -48px}div.jsoneditor-contextmenu-root{position:relative;width:0;height:0}div.jsoneditor-contextmenu{position:absolute;box-sizing:content-box;z-index:99999}div.jsoneditor-contextmenu li,div.jsoneditor-contextmenu ul{box-sizing:content-box;position:relative}div.jsoneditor-contextmenu ul{position:relative;left:0;top:0;width:128px;background:#fff;border:1px solid #d3d3d3;box-shadow:2px 2px 12px rgba(128,128,128,.3);list-style:none;margin:0;padding:0}div.jsoneditor-contextmenu ul li button{position:relative;padding:0 4px 0 0;margin:0;width:128px;height:auto;border:none;cursor:pointer;color:#4d4d4d;background:0 0;font-size:10pt;font-family:arial,sans-serif;box-sizing:border-box;text-align:left}div.jsoneditor-contextmenu ul li button::-moz-focus-inner{padding:0;border:0}div.jsoneditor-contextmenu ul li button:focus,div.jsoneditor-contextmenu ul li button:hover{color:#1a1a1a;background-color:#f5f5f5;outline:0}div.jsoneditor-contextmenu ul li button.jsoneditor-default{width:96px}div.jsoneditor-contextmenu ul li button.jsoneditor-expand{float:right;width:32px;height:24px;border-left:1px solid #e5e5e5}div.jsoneditor-contextmenu div.jsoneditor-icon{position:absolute;top:0;left:0;width:24px;height:24px;border:none;padding:0;margin:0;background-image:url(img/jsoneditor-icons.svg)}div.jsoneditor-contextmenu ul li ul div.jsoneditor-icon{margin-left:24px}div.jsoneditor-contextmenu div.jsoneditor-text{padding:4px 0 4px 24px;word-wrap:break-word}div.jsoneditor-contextmenu div.jsoneditor-text.jsoneditor-right-margin{padding-right:24px}div.jsoneditor-contextmenu ul li button div.jsoneditor-expand{position:absolute;top:0;right:0;width:24px;height:24px;padding:0;margin:0 4px 0 0;background:url(img/jsoneditor-icons.svg) 0 -72px;opacity:.4}div.jsoneditor-contextmenu ul li button.jsoneditor-expand:focus div.jsoneditor-expand,div.jsoneditor-contextmenu ul li button.jsoneditor-expand:hover div.jsoneditor-expand,div.jsoneditor-contextmenu ul li button:focus div.jsoneditor-expand,div.jsoneditor-contextmenu ul li button:hover div.jsoneditor-expand,div.jsoneditor-contextmenu ul li.jsoneditor-selected div.jsoneditor-expand{opacity:1}div.jsoneditor-contextmenu div.jsoneditor-separator{height:0;border-top:1px solid #e5e5e5;padding-top:5px;margin-top:5px}div.jsoneditor-contextmenu button.jsoneditor-remove>div.jsoneditor-icon{background-position:-24px -24px}div.jsoneditor-contextmenu button.jsoneditor-remove:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-remove:hover>div.jsoneditor-icon{background-position:-24px 0}div.jsoneditor-contextmenu button.jsoneditor-append>div.jsoneditor-icon{background-position:0 -24px}div.jsoneditor-contextmenu button.jsoneditor-append:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-append:hover>div.jsoneditor-icon{background-position:0 0}div.jsoneditor-contextmenu button.jsoneditor-insert>div.jsoneditor-icon{background-position:0 -24px}div.jsoneditor-contextmenu button.jsoneditor-insert:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-insert:hover>div.jsoneditor-icon{background-position:0 0}div.jsoneditor-contextmenu button.jsoneditor-duplicate>div.jsoneditor-icon{background-position:-48px -24px}div.jsoneditor-contextmenu button.jsoneditor-duplicate:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-duplicate:hover>div.jsoneditor-icon{background-position:-48px 0}div.jsoneditor-contextmenu button.jsoneditor-sort-asc>div.jsoneditor-icon{background-position:-168px -24px}div.jsoneditor-contextmenu button.jsoneditor-sort-asc:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-sort-asc:hover>div.jsoneditor-icon{background-position:-168px 0}div.jsoneditor-contextmenu button.jsoneditor-sort-desc>div.jsoneditor-icon{background-position:-192px -24px}div.jsoneditor-contextmenu button.jsoneditor-sort-desc:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-sort-desc:hover>div.jsoneditor-icon{background-position:-192px 0}div.jsoneditor-contextmenu ul li button.jsoneditor-selected,div.jsoneditor-contextmenu ul li button.jsoneditor-selected:focus,div.jsoneditor-contextmenu ul li button.jsoneditor-selected:hover{color:#fff;background-color:#ee422e}div.jsoneditor-contextmenu ul li{overflow:hidden}div.jsoneditor-contextmenu ul li ul{display:none;position:relative;left:-10px;top:0;border:none;box-shadow:inset 0 0 10px rgba(128,128,128,.5);padding:0 10px;-webkit-transition:all .3s ease-out;-moz-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}div.jsoneditor-contextmenu ul li ul li button{padding-left:24px;animation:all ease-in-out 1s}div.jsoneditor-contextmenu ul li ul li button:focus,div.jsoneditor-contextmenu ul li ul li button:hover{background-color:#f5f5f5}div.jsoneditor-contextmenu button.jsoneditor-type-string>div.jsoneditor-icon{background-position:-144px -24px}div.jsoneditor-contextmenu button.jsoneditor-type-string.jsoneditor-selected>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-string:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-string:hover>div.jsoneditor-icon{background-position:-144px 0}div.jsoneditor-contextmenu button.jsoneditor-type-auto>div.jsoneditor-icon{background-position:-120px -24px}div.jsoneditor-contextmenu button.jsoneditor-type-auto.jsoneditor-selected>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-auto:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-auto:hover>div.jsoneditor-icon{background-position:-120px 0}div.jsoneditor-contextmenu button.jsoneditor-type-object>div.jsoneditor-icon{background-position:-72px -24px}div.jsoneditor-contextmenu button.jsoneditor-type-object.jsoneditor-selected>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-object:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-object:hover>div.jsoneditor-icon{background-position:-72px 0}div.jsoneditor-contextmenu button.jsoneditor-type-array>div.jsoneditor-icon{background-position:-96px -24px}div.jsoneditor-contextmenu button.jsoneditor-type-array.jsoneditor-selected>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-array:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-array:hover>div.jsoneditor-icon{background-position:-96px 0}div.jsoneditor-contextmenu button.jsoneditor-type-modes>div.jsoneditor-icon{background-image:none;width:6px}div.jsoneditor-menu{width:100%;height:35px;padding:2px;margin:0;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;color:#fff;background-color:#3883fa;border-bottom:1px solid #3883fa}div.jsoneditor-menu>button,div.jsoneditor-menu>div.jsoneditor-modes>button{width:26px;height:26px;margin:2px;padding:0;border-radius:2px;border:1px solid transparent;background:transparent url(img/jsoneditor-icons.svg);color:#fff;opacity:.8;font-family:arial,sans-serif;font-size:10pt;float:left}div.jsoneditor-menu>button:hover,div.jsoneditor-menu>div.jsoneditor-modes>button:hover{background-color:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.4)}div.jsoneditor-menu>button:active,div.jsoneditor-menu>button:focus,div.jsoneditor-menu>div.jsoneditor-modes>button:active,div.jsoneditor-menu>div.jsoneditor-modes>button:focus{background-color:rgba(255,255,255,.3)}div.jsoneditor-menu>button:disabled,div.jsoneditor-menu>div.jsoneditor-modes>button:disabled{opacity:.5}div.jsoneditor-menu>button.jsoneditor-collapse-all{background-position:0 -96px}div.jsoneditor-menu>button.jsoneditor-expand-all{background-position:0 -120px}div.jsoneditor-menu>button.jsoneditor-undo{background-position:-24px -96px}div.jsoneditor-menu>button.jsoneditor-undo:disabled{background-position:-24px -120px}div.jsoneditor-menu>button.jsoneditor-redo{background-position:-48px -96px}div.jsoneditor-menu>button.jsoneditor-redo:disabled{background-position:-48px -120px}div.jsoneditor-menu>button.jsoneditor-compact{background-position:-72px -96px}div.jsoneditor-menu>button.jsoneditor-format{background-position:-72px -120px}div.jsoneditor-menu>button.jsoneditor-repair{background-position:-96px -96px}div.jsoneditor-menu>div.jsoneditor-modes{display:inline-block;float:left}div.jsoneditor-menu>div.jsoneditor-modes>button{background-image:none;width:auto;padding-left:6px;padding-right:6px}div.jsoneditor-menu>button.jsoneditor-separator,div.jsoneditor-menu>div.jsoneditor-modes>button.jsoneditor-separator{margin-left:10px}div.jsoneditor-menu a{font-family:arial,sans-serif;font-size:10pt;color:#fff;opacity:.8;vertical-align:middle}div.jsoneditor-menu a:hover{opacity:1}div.jsoneditor-menu a.jsoneditor-poweredBy{font-size:8pt;position:absolute;right:0;top:0;padding:10px}table.jsoneditor-search div.jsoneditor-results,table.jsoneditor-search input{font-family:arial,sans-serif;font-size:10pt;color:#1a1a1a;background:0 0}table.jsoneditor-search div.jsoneditor-results{color:#fff;padding-right:5px;line-height:24px}table.jsoneditor-search{position:absolute;right:4px;top:4px;border-collapse:collapse;border-spacing:0}table.jsoneditor-search div.jsoneditor-frame{border:1px solid transparent;background-color:#fff;padding:0 2px;margin:0}table.jsoneditor-search div.jsoneditor-frame table{border-collapse:collapse}table.jsoneditor-search input{width:120px;border:none;outline:0;margin:1px;line-height:20px}table.jsoneditor-search button{width:16px;height:24px;padding:0;margin:0;border:none;background:url(img/jsoneditor-icons.svg);vertical-align:top}table.jsoneditor-search button:hover{background-color:transparent}table.jsoneditor-search button.jsoneditor-refresh{width:18px;background-position:-99px -73px}table.jsoneditor-search button.jsoneditor-next{cursor:pointer;background-position:-124px -73px}table.jsoneditor-search button.jsoneditor-next:hover{background-position:-124px -49px}table.jsoneditor-search button.jsoneditor-previous{cursor:pointer;background-position:-148px -73px;margin-right:2px}table.jsoneditor-search button.jsoneditor-previous:hover{background-position:-148px -49px}div.jsoneditor div.autocomplete.dropdown{position:absolute;background:#fff;box-shadow:2px 2px 12px rgba(128,128,128,.3);border:1px solid #d3d3d3;z-index:100;overflow-x:hidden;overflow-y:auto;cursor:default;margin:0;padding-left:2pt;padding-right:5pt;text-align:left;outline:0;font-family:"dejavu sans mono","droid sans mono",consolas,monaco,"lucida console","courier new",courier,monospace,sans-serif;font-size:10pt}div.jsoneditor div.autocomplete.dropdown .item{color:#333}div.jsoneditor div.autocomplete.dropdown .item.hover{background-color:#ddd}div.jsoneditor div.autocomplete.hint{color:#aaa;top:4px;left:4px}div.jsoneditor-treepath{padding:0 5px;overflow:hidden}div.jsoneditor-treepath div.jsoneditor-contextmenu-root{position:absolute;left:0}div.jsoneditor-treepath span.jsoneditor-treepath-element{margin:1px;font-family:arial,sans-serif;font-size:10pt}div.jsoneditor-treepath span.jsoneditor-treepath-seperator{margin:2px;font-size:9pt;font-family:arial,sans-serif}div.jsoneditor-treepath span.jsoneditor-treepath-element:hover,div.jsoneditor-treepath span.jsoneditor-treepath-seperator:hover{cursor:pointer;text-decoration:underline}div.jsoneditor-statusbar{line-height:26px;height:26px;margin-top:-1px;color:grey;background-color:#ebebeb;border-top:1px solid #d3d3d3;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:10pt}div.jsoneditor-statusbar>.jsoneditor-curserinfo-label{margin:0 2px 0 4px}div.jsoneditor-statusbar>.jsoneditor-curserinfo-val{margin-right:12px}div.jsoneditor-statusbar>.jsoneditor-curserinfo-count{margin-left:4px}div.jsoneditor-navigation-bar{width:100%;height:26px;line-height:26px;padding:0;margin:0;border-bottom:1px solid #d3d3d3;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;color:grey;background-color:#ebebeb;font-size:10pt}div.jsoneditor-navigation-bar.nav-bar-empty:after{content:'Select a node ...';color:rgba(104,104,91,.56);position:absolute;margin-left:5px} \ No newline at end of file +div.jsoneditor .jsoneditor-search input{height:auto;border:inherit}div.jsoneditor .jsoneditor-search input:focus{border:none!important;box-shadow:none!important}div.jsoneditor table{border-collapse:collapse;width:auto}div.jsoneditor td,div.jsoneditor th{padding:0;display:table-cell;text-align:left;vertical-align:inherit;border-radius:inherit}div.jsoneditor-field,div.jsoneditor-readonly,div.jsoneditor-value{border:1px solid transparent;min-height:16px;min-width:32px;padding:2px;margin:1px;word-wrap:break-word;float:left}div.jsoneditor-field p,div.jsoneditor-value p{margin:0}div.jsoneditor-value{word-break:break-word}div.jsoneditor-readonly{min-width:16px;color:grey}div.jsoneditor-empty{border-color:#d3d3d3;border-style:dashed;border-radius:2px}div.jsoneditor-field.jsoneditor-empty::after,div.jsoneditor-value.jsoneditor-empty::after{pointer-events:none;color:#d3d3d3;font-size:8pt}div.jsoneditor-field.jsoneditor-empty::after{content:"field"}div.jsoneditor-value.jsoneditor-empty::after{content:"value"}a.jsoneditor-value.jsoneditor-url,div.jsoneditor-value.jsoneditor-url{color:green;text-decoration:underline}a.jsoneditor-value.jsoneditor-url{display:inline-block;padding:2px;margin:2px}a.jsoneditor-value.jsoneditor-url:focus,a.jsoneditor-value.jsoneditor-url:hover{color:#ee422e}div.jsoneditor td.jsoneditor-separator{padding:3px 0;vertical-align:top;color:grey}div.jsoneditor-field.jsoneditor-highlight,div.jsoneditor-field[contenteditable=true]:focus,div.jsoneditor-field[contenteditable=true]:hover,div.jsoneditor-value.jsoneditor-highlight,div.jsoneditor-value[contenteditable=true]:focus,div.jsoneditor-value[contenteditable=true]:hover{background-color:#ffffab;border:1px solid #ff0;border-radius:2px}div.jsoneditor-field.jsoneditor-highlight-active,div.jsoneditor-field.jsoneditor-highlight-active:focus,div.jsoneditor-field.jsoneditor-highlight-active:hover,div.jsoneditor-value.jsoneditor-highlight-active,div.jsoneditor-value.jsoneditor-highlight-active:focus,div.jsoneditor-value.jsoneditor-highlight-active:hover{background-color:#fe0;border:1px solid #ffc700;border-radius:2px}div.jsoneditor-value.jsoneditor-string{color:green}div.jsoneditor-value.jsoneditor-array,div.jsoneditor-value.jsoneditor-object{min-width:16px;color:grey}div.jsoneditor-value.jsoneditor-number{color:#ee422e}div.jsoneditor-value.jsoneditor-boolean{color:#ff8c00}div.jsoneditor-value.jsoneditor-null{color:#004ed0}div.jsoneditor-value.jsoneditor-invalid{color:#000}div.jsoneditor-tree button{width:24px;height:24px;padding:0;margin:0;border:none;cursor:pointer;background:transparent url(img/jsoneditor-icons.svg)}div.jsoneditor-mode-form tr.jsoneditor-expandable td.jsoneditor-tree,div.jsoneditor-mode-view tr.jsoneditor-expandable td.jsoneditor-tree{cursor:pointer}div.jsoneditor-tree button.jsoneditor-collapsed{background-position:0 -48px}div.jsoneditor-tree button.jsoneditor-expanded{background-position:0 -72px}div.jsoneditor-tree button.jsoneditor-contextmenu{background-position:-48px -72px}div.jsoneditor-tree button.jsoneditor-contextmenu.jsoneditor-selected,div.jsoneditor-tree button.jsoneditor-contextmenu:focus,div.jsoneditor-tree button.jsoneditor-contextmenu:hover,tr.jsoneditor-selected.jsoneditor-first button.jsoneditor-contextmenu{background-position:-48px -48px}div.jsoneditor-tree :focus{outline:0}div.jsoneditor-tree button:focus{background-color:#f5f5f5;outline:#e5e5e5 solid 1px}div.jsoneditor-tree button.jsoneditor-invisible{visibility:hidden;background:0 0}div.jsoneditor-tree div.jsoneditor-show-more{display:inline-block;padding:3px 4px;margin:2px 0;background-color:#e5e5e5;border-radius:3px;color:grey;font-family:arial,sans-serif;font-size:10pt}div.jsoneditor-tree div.jsoneditor-show-more a{display:inline-block;color:grey}div.jsoneditor-tree div.jsoneditor-show-more a:focus,div.jsoneditor-tree div.jsoneditor-show-more a:hover{color:#ee422e}div.jsoneditor{color:#1a1a1a;border:1px solid #3883fa;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:100%;position:relative;padding:0;line-height:100%}div.jsoneditor-tree table.jsoneditor-tree{border-collapse:collapse;border-spacing:0;width:100%;margin:0}div.jsoneditor-outer{position:static;width:100%;height:100%;margin:-35px 0 0 0;padding:35px 0 0 0;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}div.jsoneditor-outer.has-nav-bar{margin:-61px 0 0 0;padding:61px 0 0 0}div.jsoneditor-outer.has-status-bar{margin:-35px 0 -26px 0;padding:35px 0 26px 0}.ace-jsoneditor,textarea.jsoneditor-text{min-height:150px}div.jsoneditor-tree{width:100%;height:100%;position:relative;overflow:auto}textarea.jsoneditor-text{width:100%;height:100%;margin:0;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;outline-width:0;border:none;background-color:#fff;resize:none}tr.jsoneditor-highlight,tr.jsoneditor-selected{background-color:#d3d3d3}tr.jsoneditor-selected button.jsoneditor-contextmenu,tr.jsoneditor-selected button.jsoneditor-dragarea{visibility:hidden}tr.jsoneditor-selected.jsoneditor-first button.jsoneditor-contextmenu,tr.jsoneditor-selected.jsoneditor-first button.jsoneditor-dragarea{visibility:visible}div.jsoneditor-tree button.jsoneditor-dragarea{background:url(img/jsoneditor-icons.svg) -72px -72px;cursor:move}div.jsoneditor-tree button.jsoneditor-dragarea:focus,div.jsoneditor-tree button.jsoneditor-dragarea:hover,tr.jsoneditor-selected.jsoneditor-first button.jsoneditor-dragarea{background-position:-72px -48px}div.jsoneditor td,div.jsoneditor th,div.jsoneditor tr{padding:0;margin:0}div.jsoneditor td{vertical-align:top}div.jsoneditor td.jsoneditor-tree{vertical-align:top}.jsoneditor-schema-error,div.jsoneditor td,div.jsoneditor textarea,div.jsoneditor th,div.jsoneditor-field,div.jsoneditor-value{font-family:"dejavu sans mono","droid sans mono",consolas,monaco,"lucida console","courier new",courier,monospace,sans-serif;font-size:10pt;color:#1a1a1a}.jsoneditor-schema-error{cursor:default;display:inline-block;height:24px;line-height:24px;position:relative;text-align:center;width:24px}div.jsoneditor-tree .jsoneditor-schema-error{width:24px;height:24px;padding:0;margin:0 4px 0 0;background:url(img/jsoneditor-icons.svg) -168px -48px}.jsoneditor-schema-error .jsoneditor-popover{background-color:#4c4c4c;border-radius:3px;box-shadow:0 0 5px rgba(0,0,0,.4);color:#fff;display:none;padding:7px 10px;position:absolute;width:200px;z-index:4}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-above{bottom:32px;left:-98px}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-below{top:32px;left:-98px}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-left{top:-7px;right:32px}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-right{top:-7px;left:32px}.jsoneditor-schema-error .jsoneditor-popover:before{border-right:7px solid transparent;border-left:7px solid transparent;content:'';display:block;left:50%;margin-left:-7px;position:absolute}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-above:before{border-top:7px solid #4c4c4c;bottom:-7px}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-below:before{border-bottom:7px solid #4c4c4c;top:-7px}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-left:before{border-left:7px solid #4c4c4c;border-top:7px solid transparent;border-bottom:7px solid transparent;content:'';top:19px;right:-14px;left:inherit;margin-left:inherit;margin-top:-7px;position:absolute}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-right:before{border-right:7px solid #4c4c4c;border-top:7px solid transparent;border-bottom:7px solid transparent;content:'';top:19px;left:-14px;margin-left:inherit;margin-top:-7px;position:absolute}.jsoneditor-schema-error:focus .jsoneditor-popover,.jsoneditor-schema-error:hover .jsoneditor-popover{display:block;-webkit-animation:fade-in .3s linear 1,move-up .3s linear 1;-moz-animation:fade-in .3s linear 1,move-up .3s linear 1;-ms-animation:fade-in .3s linear 1,move-up .3s linear 1}@-webkit-keyframes fade-in{from{opacity:0}to{opacity:1}}@-moz-keyframes fade-in{from{opacity:0}to{opacity:1}}@-ms-keyframes fade-in{from{opacity:0}to{opacity:1}}.jsoneditor .jsoneditor-text-errors{width:100%;border-collapse:collapse;background-color:#ffef8b;border-top:1px solid gold}.jsoneditor .jsoneditor-text-errors td{padding:3px 6px;vertical-align:middle}.jsoneditor-text-errors .jsoneditor-schema-error{border:none;width:24px;height:24px;padding:0;margin:0 4px 0 0;background:url(img/jsoneditor-icons.svg) -168px -48px}div.jsoneditor-contextmenu-root{position:relative;width:0;height:0}div.jsoneditor-contextmenu{position:absolute;box-sizing:content-box;z-index:99999}div.jsoneditor-contextmenu li,div.jsoneditor-contextmenu ul{box-sizing:content-box;position:relative}div.jsoneditor-contextmenu ul{position:relative;left:0;top:0;width:128px;background:#fff;border:1px solid #d3d3d3;box-shadow:2px 2px 12px rgba(128,128,128,.3);list-style:none;margin:0;padding:0}div.jsoneditor-contextmenu ul li button{position:relative;padding:0 4px 0 0;margin:0;width:128px;height:auto;border:none;cursor:pointer;color:#4d4d4d;background:0 0;font-size:10pt;font-family:arial,sans-serif;box-sizing:border-box;text-align:left}div.jsoneditor-contextmenu ul li button::-moz-focus-inner{padding:0;border:0}div.jsoneditor-contextmenu ul li button:focus,div.jsoneditor-contextmenu ul li button:hover{color:#1a1a1a;background-color:#f5f5f5;outline:0}div.jsoneditor-contextmenu ul li button.jsoneditor-default{width:96px}div.jsoneditor-contextmenu ul li button.jsoneditor-expand{float:right;width:32px;height:24px;border-left:1px solid #e5e5e5}div.jsoneditor-contextmenu div.jsoneditor-icon{position:absolute;top:0;left:0;width:24px;height:24px;border:none;padding:0;margin:0;background-image:url(img/jsoneditor-icons.svg)}div.jsoneditor-contextmenu ul li ul div.jsoneditor-icon{margin-left:24px}div.jsoneditor-contextmenu div.jsoneditor-text{padding:4px 0 4px 24px;word-wrap:break-word}div.jsoneditor-contextmenu div.jsoneditor-text.jsoneditor-right-margin{padding-right:24px}div.jsoneditor-contextmenu ul li button div.jsoneditor-expand{position:absolute;top:0;right:0;width:24px;height:24px;padding:0;margin:0 4px 0 0;background:url(img/jsoneditor-icons.svg) 0 -72px;opacity:.4}div.jsoneditor-contextmenu ul li button.jsoneditor-expand:focus div.jsoneditor-expand,div.jsoneditor-contextmenu ul li button.jsoneditor-expand:hover div.jsoneditor-expand,div.jsoneditor-contextmenu ul li button:focus div.jsoneditor-expand,div.jsoneditor-contextmenu ul li button:hover div.jsoneditor-expand,div.jsoneditor-contextmenu ul li.jsoneditor-selected div.jsoneditor-expand{opacity:1}div.jsoneditor-contextmenu div.jsoneditor-separator{height:0;border-top:1px solid #e5e5e5;padding-top:5px;margin-top:5px}div.jsoneditor-contextmenu button.jsoneditor-remove>div.jsoneditor-icon{background-position:-24px -24px}div.jsoneditor-contextmenu button.jsoneditor-remove:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-remove:hover>div.jsoneditor-icon{background-position:-24px 0}div.jsoneditor-contextmenu button.jsoneditor-append>div.jsoneditor-icon{background-position:0 -24px}div.jsoneditor-contextmenu button.jsoneditor-append:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-append:hover>div.jsoneditor-icon{background-position:0 0}div.jsoneditor-contextmenu button.jsoneditor-insert>div.jsoneditor-icon{background-position:0 -24px}div.jsoneditor-contextmenu button.jsoneditor-insert:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-insert:hover>div.jsoneditor-icon{background-position:0 0}div.jsoneditor-contextmenu button.jsoneditor-duplicate>div.jsoneditor-icon{background-position:-48px -24px}div.jsoneditor-contextmenu button.jsoneditor-duplicate:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-duplicate:hover>div.jsoneditor-icon{background-position:-48px 0}div.jsoneditor-contextmenu button.jsoneditor-sort-asc>div.jsoneditor-icon{background-position:-168px -24px}div.jsoneditor-contextmenu button.jsoneditor-sort-asc:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-sort-asc:hover>div.jsoneditor-icon{background-position:-168px 0}div.jsoneditor-contextmenu button.jsoneditor-sort-desc>div.jsoneditor-icon{background-position:-192px -24px}div.jsoneditor-contextmenu button.jsoneditor-sort-desc:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-sort-desc:hover>div.jsoneditor-icon{background-position:-192px 0}div.jsoneditor-contextmenu ul li button.jsoneditor-selected,div.jsoneditor-contextmenu ul li button.jsoneditor-selected:focus,div.jsoneditor-contextmenu ul li button.jsoneditor-selected:hover{color:#fff;background-color:#ee422e}div.jsoneditor-contextmenu ul li{overflow:hidden}div.jsoneditor-contextmenu ul li ul{display:none;position:relative;left:-10px;top:0;border:none;box-shadow:inset 0 0 10px rgba(128,128,128,.5);padding:0 10px;-webkit-transition:all .3s ease-out;-moz-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}div.jsoneditor-contextmenu ul li ul li button{padding-left:24px;animation:all ease-in-out 1s}div.jsoneditor-contextmenu ul li ul li button:focus,div.jsoneditor-contextmenu ul li ul li button:hover{background-color:#f5f5f5}div.jsoneditor-contextmenu button.jsoneditor-type-string>div.jsoneditor-icon{background-position:-144px -24px}div.jsoneditor-contextmenu button.jsoneditor-type-string.jsoneditor-selected>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-string:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-string:hover>div.jsoneditor-icon{background-position:-144px 0}div.jsoneditor-contextmenu button.jsoneditor-type-auto>div.jsoneditor-icon{background-position:-120px -24px}div.jsoneditor-contextmenu button.jsoneditor-type-auto.jsoneditor-selected>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-auto:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-auto:hover>div.jsoneditor-icon{background-position:-120px 0}div.jsoneditor-contextmenu button.jsoneditor-type-object>div.jsoneditor-icon{background-position:-72px -24px}div.jsoneditor-contextmenu button.jsoneditor-type-object.jsoneditor-selected>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-object:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-object:hover>div.jsoneditor-icon{background-position:-72px 0}div.jsoneditor-contextmenu button.jsoneditor-type-array>div.jsoneditor-icon{background-position:-96px -24px}div.jsoneditor-contextmenu button.jsoneditor-type-array.jsoneditor-selected>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-array:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-array:hover>div.jsoneditor-icon{background-position:-96px 0}div.jsoneditor-contextmenu button.jsoneditor-type-modes>div.jsoneditor-icon{background-image:none;width:6px}.jsoneditor-modal-overlay{position:absolute!important;background:#010101!important;opacity:.3!important}.jsoneditor-modal{position:absolute!important;max-width:100%!important;border-radius:2px!important;padding:45px 15px 15px 15px!important;box-shadow:2px 2px 12px rgba(128,128,128,.3)!important}.jsoneditor-modal .pico-modal-header{position:absolute;box-sizing:border-box;top:0;left:0;width:100%;padding:0 10px;height:30px;line-height:30px;font-family:arial,sans-serif;font-size:11pt;background:#3883fa;color:#fff}.jsoneditor-modal table td{padding:5px 0;padding-right:20px;text-align:left;vertical-align:middle;font-size:10pt;font-family:arial,sans-serif;color:#4d4d4d}.jsoneditor-modal table td.jsoneditor-modal-input{text-align:right;padding-right:0;white-space:nowrap}.jsoneditor-modal table td.jsoneditor-modal-actions{padding-top:15px}.jsoneditor-modal .pico-close{background:0 0!important;font-size:24px!important;top:7px!important;right:7px!important;color:#fff}.jsoneditor-modal input,.jsoneditor-modal select{background:#f5f5f5;border:1px solid #d3d3d3;color:#4d4d4d;border-radius:3px;cursor:pointer}.jsoneditor-modal .jsoneditor-select-wrapper{position:relative}.jsoneditor-modal .jsoneditor-select-wrapper:after{content:"";width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid #666;position:absolute;right:8px;top:10px;pointer-events:none}.jsoneditor-modal select{padding:3px 24px 3px 10px;width:100%;max-width:300px;-webkit-appearance:none;-moz-appearance:none;appearance:none;text-indent:0;text-overflow:"";font-size:inherit;line-height:inherit}.jsoneditor-modal select::-ms-expand{display:none}.jsoneditor-modal .jsoneditor-button-group input{padding:4px 10px;margin:0;border-radius:0;border-left-style:none}.jsoneditor-modal .jsoneditor-button-group input.jsoneditor-button-first{border-top-left-radius:3px;border-bottom-left-radius:3px;border-left-style:solid}.jsoneditor-modal .jsoneditor-button-group input.jsoneditor-button-last{border-top-right-radius:3px;border-bottom-right-radius:3px}.jsoneditor-modal .jsoneditor-button-group.jsoneditor-button-group-value-asc input.jsoneditor-button-asc,.jsoneditor-modal .jsoneditor-button-group.jsoneditor-button-group-value-desc input.jsoneditor-button-desc{background:#3883fa;border-color:#3883fa;color:#fff}.jsoneditor-modal input{padding:4px 20px}div.jsoneditor-menu{width:100%;height:35px;padding:2px;margin:0;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;color:#fff;background-color:#3883fa;border-bottom:1px solid #3883fa}div.jsoneditor-menu>button,div.jsoneditor-menu>div.jsoneditor-modes>button{width:26px;height:26px;margin:2px;padding:0;border-radius:2px;border:1px solid transparent;background:transparent url(img/jsoneditor-icons.svg);color:#fff;opacity:.8;font-family:arial,sans-serif;font-size:10pt;float:left}div.jsoneditor-menu>button:hover,div.jsoneditor-menu>div.jsoneditor-modes>button:hover{background-color:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.4)}div.jsoneditor-menu>button:active,div.jsoneditor-menu>button:focus,div.jsoneditor-menu>div.jsoneditor-modes>button:active,div.jsoneditor-menu>div.jsoneditor-modes>button:focus{background-color:rgba(255,255,255,.3)}div.jsoneditor-menu>button:disabled,div.jsoneditor-menu>div.jsoneditor-modes>button:disabled{opacity:.5}div.jsoneditor-menu>button.jsoneditor-collapse-all{background-position:0 -96px}div.jsoneditor-menu>button.jsoneditor-expand-all{background-position:0 -120px}div.jsoneditor-menu>button.jsoneditor-undo{background-position:-24px -96px}div.jsoneditor-menu>button.jsoneditor-undo:disabled{background-position:-24px -120px}div.jsoneditor-menu>button.jsoneditor-redo{background-position:-48px -96px}div.jsoneditor-menu>button.jsoneditor-redo:disabled{background-position:-48px -120px}div.jsoneditor-menu>button.jsoneditor-compact{background-position:-72px -96px}div.jsoneditor-menu>button.jsoneditor-format{background-position:-72px -120px}div.jsoneditor-menu>button.jsoneditor-repair{background-position:-96px -96px}div.jsoneditor-menu>div.jsoneditor-modes{display:inline-block;float:left}div.jsoneditor-menu>div.jsoneditor-modes>button{background-image:none;width:auto;padding-left:6px;padding-right:6px}div.jsoneditor-menu>button.jsoneditor-separator,div.jsoneditor-menu>div.jsoneditor-modes>button.jsoneditor-separator{margin-left:10px}div.jsoneditor-menu a{font-family:arial,sans-serif;font-size:10pt;color:#fff;opacity:.8;vertical-align:middle}div.jsoneditor-menu a:hover{opacity:1}div.jsoneditor-menu a.jsoneditor-poweredBy{font-size:8pt;position:absolute;right:0;top:0;padding:10px}table.jsoneditor-search div.jsoneditor-results,table.jsoneditor-search input{font-family:arial,sans-serif;font-size:10pt;color:#1a1a1a;background:0 0}table.jsoneditor-search div.jsoneditor-results{color:#fff;padding-right:5px;line-height:24px}table.jsoneditor-search{position:absolute;right:4px;top:4px;border-collapse:collapse;border-spacing:0}table.jsoneditor-search div.jsoneditor-frame{border:1px solid transparent;background-color:#fff;padding:0 2px;margin:0}table.jsoneditor-search div.jsoneditor-frame table{border-collapse:collapse}table.jsoneditor-search input{width:120px;border:none;outline:0;margin:1px;line-height:20px}table.jsoneditor-search button{width:16px;height:24px;padding:0;margin:0;border:none;background:url(img/jsoneditor-icons.svg);vertical-align:top}table.jsoneditor-search button:hover{background-color:transparent}table.jsoneditor-search button.jsoneditor-refresh{width:18px;background-position:-99px -73px}table.jsoneditor-search button.jsoneditor-next{cursor:pointer;background-position:-124px -73px}table.jsoneditor-search button.jsoneditor-next:hover{background-position:-124px -49px}table.jsoneditor-search button.jsoneditor-previous{cursor:pointer;background-position:-148px -73px;margin-right:2px}table.jsoneditor-search button.jsoneditor-previous:hover{background-position:-148px -49px}div.jsoneditor div.autocomplete.dropdown{position:absolute;background:#fff;box-shadow:2px 2px 12px rgba(128,128,128,.3);border:1px solid #d3d3d3;z-index:100;overflow-x:hidden;overflow-y:auto;cursor:default;margin:0;padding-left:2pt;padding-right:5pt;text-align:left;outline:0;font-family:"dejavu sans mono","droid sans mono",consolas,monaco,"lucida console","courier new",courier,monospace,sans-serif;font-size:10pt}div.jsoneditor div.autocomplete.dropdown .item{color:#333}div.jsoneditor div.autocomplete.dropdown .item.hover{background-color:#ddd}div.jsoneditor div.autocomplete.hint{color:#aaa;top:4px;left:4px}div.jsoneditor-treepath{padding:0 5px;overflow:hidden}div.jsoneditor-treepath div.jsoneditor-contextmenu-root{position:absolute;left:0}div.jsoneditor-treepath span.jsoneditor-treepath-element{margin:1px;font-family:arial,sans-serif;font-size:10pt}div.jsoneditor-treepath span.jsoneditor-treepath-seperator{margin:2px;font-size:9pt;font-family:arial,sans-serif}div.jsoneditor-treepath span.jsoneditor-treepath-element:hover,div.jsoneditor-treepath span.jsoneditor-treepath-seperator:hover{cursor:pointer;text-decoration:underline}div.jsoneditor-statusbar{line-height:26px;height:26px;margin-top:-1px;color:grey;background-color:#ebebeb;border-top:1px solid #d3d3d3;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:10pt}div.jsoneditor-statusbar>.jsoneditor-curserinfo-label{margin:0 2px 0 4px}div.jsoneditor-statusbar>.jsoneditor-curserinfo-val{margin-right:12px}div.jsoneditor-statusbar>.jsoneditor-curserinfo-count{margin-left:4px}div.jsoneditor-navigation-bar{width:100%;height:26px;line-height:26px;padding:0;margin:0;border-bottom:1px solid #d3d3d3;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;color:grey;background-color:#ebebeb;overflow:hidden;font-family:arial,sans-serif;font-size:10pt} \ No newline at end of file diff --git a/dist/jsoneditor.min.js b/dist/jsoneditor.min.js index 06cb8a1..c991043 100644 --- a/dist/jsoneditor.min.js +++ b/dist/jsoneditor.min.js @@ -24,18 +24,18 @@ * Copyright (c) 2011-2017 Jos de Jong, http://jsoneditoronline.org * * @author Jos de Jong, - * @version 5.16.0 - * @date 2018-05-23 + * @version 5.17.0 + * @date 2018-06-03 */ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.JSONEditor=t():e.JSONEditor=t()}(this,function(){return function(e){function t(n){if(i[n])return i[n].exports;var r=i[n]={exports:{},id:n,loaded:!1};return e[n].call(r.exports,r,r.exports,t),r.loaded=!0,r.exports}var i={};return t.m=e,t.c=i,t.p="",t(0)}([function(e,t,i){"use strict";function n(e,t,i){if(!(this instanceof n))throw new Error('JSONEditor constructor called without "new".');var r=a.getInternetExplorerVersion();if(-1!=r&&r<9)throw new Error("Unsupported browser, IE9 or newer required. Please install the newest version of your browser.");if(t&&(t.error&&(console.warn('Option "error" has been renamed to "onError"'),t.onError=t.error,delete t.error),t.change&&(console.warn('Option "change" has been renamed to "onChange"'),t.onChange=t.change,delete t.change),t.editable&&(console.warn('Option "editable" has been renamed to "onEditable"'),t.onEditable=t.editable,delete t.editable),t)){var o=["ajv","schema","schemaRefs","templates","ace","theme","autocomplete","onChange","onEditable","onError","onModeChange","onSelectionChange","onTextSelectionChange","escapeUnicode","history","search","mode","modes","name","indentation","sortObjectKeys","navigationBar","statusBar","languages","language"];Object.keys(t).forEach(function(e){-1===o.indexOf(e)&&console.warn('Unknown option "'+e+'". This option will be ignored')})}arguments.length&&this._create(e,t,i)}var r;try{r=i(1)}catch(e){}var o=i(51),s=i(66),a=i(54);n.modes={},n.prototype.DEBOUNCE_INTERVAL=150,n.prototype._create=function(e,t,i){this.container=e,this.options=t||{},this.json=i||{};var n=this.options.mode||this.options.modes&&this.options.modes[0]||"tree";this.setMode(n)},n.prototype.destroy=function(){},n.prototype.set=function(e){this.json=e},n.prototype.get=function(){return this.json},n.prototype.setText=function(e){this.json=a.parse(e)},n.prototype.getText=function(){return JSON.stringify(this.json)},n.prototype.setName=function(e){this.options||(this.options={}),this.options.name=e},n.prototype.getName=function(){return this.options&&this.options.name},n.prototype.setMode=function(e){var t,i,r=this.container,o=a.extend({},this.options),s=o.mode;o.mode=e;var l=n.modes[e];if(!l)throw new Error('Unknown mode "'+o.mode+'"');try{var c="text"==l.data;if(i=this.getName(),t=this[c?"getText":"get"](),this.destroy(),a.clear(this),a.extend(this,l.mixin),this.create(r,o),this.setName(i),this[c?"setText":"set"](t),"function"==typeof l.load)try{l.load.call(this)}catch(e){console.error(e)}if("function"==typeof o.onModeChange&&e!==s)try{o.onModeChange(e,s)}catch(e){console.error(e)}}catch(e){this._onError(e)}},n.prototype.getMode=function(){return this.options.mode},n.prototype._onError=function(e){if(!this.options||"function"!=typeof this.options.onError)throw e;this.options.onError(e)},n.prototype.setSchema=function(e,t){if(e){var i;try{i=this.options.ajv||r({allErrors:!0,verbose:!0})}catch(e){console.warn("Failed to create an instance of Ajv, JSON Schema validation is not available. Please use a JSONEditor bundle including Ajv, or pass an instance of Ajv as via the configuration option `ajv`.")}if(i){if(t){for(var n in t)i.removeSchema(n),t[n]&&i.addSchema(t[n],n);this.options.schemaRefs=t}this.validateSchema=i.compile(e),this.options.schema=e,this.validate()}this.refresh()}else this.validateSchema=null,this.options.schema=null,this.options.schemaRefs=null,this.validate(),this.refresh()},n.prototype.validate=function(){},n.prototype.refresh=function(){},n.registerMode=function(e){var t,i;if(a.isArray(e))for(t=0;t=0?{index:n,compiling:!0}:(n=this._compilations.length,this._compilations[n]={schema:e,root:t,baseId:i},{index:n,compiling:!1})}function o(e,t,i){var n=s.call(this,e,t,i);n>=0&&this._compilations.splice(n,1)}function s(e,t,i){for(var n=0;n",'"',"`"," ","\r","\n","\t"],g=["{","}","|","\\","^","`"].concat(m),v=["'"].concat(g),w=["%","/","?",";","#"].concat(v),y=["/","?","#"],A={javascript:!0,"javascript:":!0},C={javascript:!0,"javascript:":!0},E={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},b=i(7);n.prototype.parse=function(e,t,i){if(!l(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var n=e;n=n.trim();var r=f.exec(n);if(r){r=r[0];var o=r.toLowerCase();this.protocol=o,n=n.substr(r.length)}if(i||r||n.match(/^\/\/[^@\/]+@[^@\/]+/)){var s="//"===n.substr(0,2);!s||r&&C[r]||(n=n.substr(2),this.slashes=!0)}if(!C[r]&&(s||r&&!E[r])){for(var a=-1,c=0;c127?S+="x":S+=x[$];if(!S.match(/^[a-z0-9A-Z_-]{0,63}$/)){var k=g.slice(0,c),B=g.slice(c+1),_=x.match(/^([a-z0-9A-Z_-]{0,63})(.*)$/);_&&(k.push(_[1]),B.unshift(_[2])),B.length&&(n="/"+B.join(".")+n),this.hostname=k.join(".");break}}}if(this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),!m){for(var L=this.hostname.split("."),R=[],c=0;c0)&&i.host.split("@");g&&(i.auth=g.shift(),i.host=i.hostname=g.shift())}return i.search=e.search,i.query=e.query,h(i.pathname)&&h(i.search)||(i.path=(i.pathname?i.pathname:"")+(i.search?i.search:"")),i.href=i.format(),i}if(!p.length)return i.pathname=null,i.search?i.path="/"+i.search:i.path=null,i.href=i.format(),i;for(var v=p.slice(-1)[0],w=(i.host||e.host)&&("."===v||".."===v)||""===v,y=0,A=p.length;A>=0;A--)v=p[A],"."==v?p.splice(A,1):".."===v?(p.splice(A,1),y++):y&&(p.splice(A,1),y--);if(!u&&!f)for(;y--;y)p.unshift("..");!u||""===p[0]||p[0]&&"/"===p[0].charAt(0)||p.unshift(""),w&&"/"!==p.join("/").substr(-1)&&p.push("");var b=""===p[0]||p[0]&&"/"===p[0].charAt(0);if(m){i.hostname=i.host=b?"":p.length?p.shift():"";var g=!!(i.host&&i.host.indexOf("@")>0)&&i.host.split("@");g&&(i.auth=g.shift(),i.host=i.hostname=g.shift())}return u=u||i.host&&p.length,u&&!b&&p.unshift(""),p.length?i.pathname=p.join("/"):(i.pathname=null,i.path=null),h(i.pathname)&&h(i.search)||(i.path=(i.pathname?i.pathname:"")+(i.search?i.search:"")),i.auth=e.auth||i.auth,i.slashes=i.slashes||e.slashes,i.href=i.format(),i},n.prototype.parseHost=function(){var e=this.host,t=p.exec(e);t&&(t=t[0],":"!==t&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},function(e,t,i){var n;(function(e,r){!function(o){function s(e){throw RangeError(L[e])}function a(e,t){for(var i=e.length,n=[];i--;)n[i]=t(e[i]);return n}function l(e,t){var i=e.split("@"),n="";return i.length>1&&(n=i[0]+"@",e=i[1]),e=e.replace(_,"."),n+a(e.split("."),t).join(".")}function c(e){for(var t,i,n=[],r=0,o=e.length;r=55296&&t<=56319&&r65535&&(e-=65536,t+=P(e>>>10&1023|55296),e=56320|1023&e),t+=P(e)}).join("")}function d(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:C}function u(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function f(e,t,i){var n=0;for(e=i?T(e/x):e>>1,e+=T(e/t);e>R*b>>1;n+=C)e=T(e/R);return T(n+(R+1)*e/(e+F))}function p(e){var t,i,n,r,o,a,l,c,u,p,m=[],g=e.length,v=0,w=$,y=S;for(i=e.lastIndexOf(D),i<0&&(i=0),n=0;n=128&&s("not-basic"),m.push(e.charCodeAt(n));for(r=i>0?i+1:0;r=g&&s("invalid-input"),c=d(e.charCodeAt(r++)),(c>=C||c>T((A-v)/a))&&s("overflow"),v+=c*a,u=l<=y?E:l>=y+b?b:l-y,!(cT(A/p)&&s("overflow"),a*=p;t=m.length+1,y=f(v-o,t,0==o),T(v/t)>A-w&&s("overflow"),w+=T(v/t),v%=t,m.splice(v++,0,w)}return h(m)}function m(e){var t,i,n,r,o,a,l,h,d,p,m,g,v,w,y,F=[];for(e=c(e),g=e.length,t=$,i=0,o=S,a=0;a=t&&mT((A-i)/v)&&s("overflow"),i+=(l-t)*v,t=l,a=0;aA&&s("overflow"),m==t){for(h=i,d=C;p=d<=o?E:d>=o+b?b:d-o,!(h= 0x80 (not a basic code point)","invalid-input":"Invalid input"},R=C-E,T=Math.floor,P=String.fromCharCode;y={version:"1.3.2",ucs2:{decode:c,encode:h},decode:p,encode:m,toASCII:v,toUnicode:g},void 0!==(n=function(){return y}.call(t,i,t,e))&&(e.exports=n)}()}).call(t,i(6)(e),function(){return this}())},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children=[],e.webpackPolyfill=1),e}},function(e,t,i){"use strict";t.decode=t.parse=i(8),t.encode=t.stringify=i(9)},function(e,t){"use strict";function i(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,t,n,r){t=t||"&",n=n||"=";var o={};if("string"!=typeof e||0===e.length)return o;e=e.split(t);var s=1e3;r&&"number"==typeof r.maxKeys&&(s=r.maxKeys);var a=e.length;s>0&&a>s&&(a=s);for(var l=0;l=0?(c=f.substr(0,p),h=f.substr(p+1)):(c=f,h=""),d=decodeURIComponent(c),u=decodeURIComponent(h),i(o,d)?Array.isArray(o[d])?o[d].push(u):o[d]=[o[d],u]:o[d]=u}return o}},function(e,t){"use strict";var i=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,t,n,r){return t=t||"&",n=n||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map(function(r){var o=encodeURIComponent(i(r))+n;return Array.isArray(e[r])?e[r].map(function(e){return o+encodeURIComponent(i(e))}).join(t):o+encodeURIComponent(i(e[r]))}).join(t):r?encodeURIComponent(i(r))+n+encodeURIComponent(i(e)):""}},function(e,t){"use strict";e.exports=function e(t,i){if(t===i)return!0;var n,r=Array.isArray(t),o=Array.isArray(i);if(r&&o){if(t.length!=i.length)return!1;for(n=0;n=t)throw new Error("Cannot access property/index "+n+" levels up, current level is "+t);return i[t-n]}if(n>t)throw new Error("Cannot access data "+n+" levels up, current level is "+t);if(o="data"+(t-n||""),!r)return o}for(var a=o,c=r.split("/"),h=0;h=55296&&t<=56319&&r2&&(t=d.call(arguments,1)),i(t)})})}function o(e){return Promise.all(e.map(n,this))}function s(e){for(var t=new e.constructor,i=Object.keys(e),r=[],o=0;o=1&&i<=12&&n>=1&&n<=u[i]}function o(e,t){var i=e.match(f);if(!i)return!1;var n=i[1],r=i[2],o=i[3],s=i[5];return n<=23&&r<=59&&o<=59&&(!t||s)}function s(e){var t=e.split(A);return 2==t.length&&r(t[0])&&o(t[1],!0)}function a(e){return e.length<=255&&p.test(e)}function l(e){return C.test(e)&&m.test(e)}function c(e){if(E.test(e))return!1;try{return new RegExp(e),!0}catch(e){return!1}}var h=i(11),d=/^\d\d\d\d-(\d\d)-(\d\d)$/,u=[0,31,29,31,30,31,30,31,31,30,31,30,31],f=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d:\d\d)?$/i,p=/^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*$/i,m=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@\/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@\/?]|%[0-9a-f]{2})*)?$/i,g=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#.\/;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,v=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i,w=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,y=/^(?:\/(?:[^~\/]|~0|~1)*)*$|^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;e.exports=n,n.fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^[0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?(?:z|[+-]\d\d:\d\d)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s][0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?(?:z|[+-]\d\d:\d\d)$/i,uri:/^(?:[a-z][a-z0-9+-.]*)(?::|\/)\/?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+-.]*:)?\/\/)?[^\s]*$/i,"uri-template":g,url:v,email:/^[a-z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:p,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:c,uuid:w,"json-pointer":y,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~\/]|~0|~1)*)*)$/},n.full={date:r,time:o,"date-time":s,uri:l,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@\/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@\/?]|%[0-9a-f]{2})*)?$/i,"uri-template":g,url:v,email:/^[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&''*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:a,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:c,uuid:w,"json-pointer":y,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~\/]|~0|~1)*)*)$/};var A=/t|\s/i,C=/\/|:/,E=/[^\\]\\Z/},function(e,t,i){"use strict";var n=i(22),r=i(11).toHash;e.exports=function(){var e=[{type:"number",rules:[{maximum:["exclusiveMaximum"]},{minimum:["exclusiveMinimum"]},"multipleOf","format"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","uniqueItems","contains","items"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","propertyNames",{properties:["additionalProperties","patternProperties"]}]},{rules:["$ref","const","enum","not","anyOf","oneOf","allOf"]}],t=["type"],i=["additionalItems","$schema","$id","id","title","description","default","definitions"],o=["number","integer","string","array","object","boolean","null"];return e.all=r(t),e.types=r(o),e.forEach(function(i){i.rules=i.rules.map(function(i){var r;if("object"==typeof i){var o=Object.keys(i)[0];r=i[o],i=o,r.forEach(function(i){t.push(i),e.all[i]=!0})}return t.push(i),e.all[i]={keyword:i,code:n[i],implements:r}}),i.type&&(e.types[i.type]=i)}),e.keywords=r(t.concat(i)),e.custom={},e}},function(e,t,i){"use strict";e.exports={$ref:i(23),allOf:i(24),anyOf:i(25),const:i(26),contains:i(27),dependencies:i(28),enum:i(29),format:i(30),items:i(31),maximum:i(32),minimum:i(32),maxItems:i(33),minItems:i(33),maxLength:i(34),minLength:i(34),maxProperties:i(35),minProperties:i(35),multipleOf:i(36),not:i(37),oneOf:i(38),pattern:i(39),properties:i(40),propertyNames:i(41),required:i(42),uniqueItems:i(43),validate:i(17)}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,o=" ",s=e.level,a=e.dataLevel,l=e.schema[t],c=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,d="data"+(a||""),u="valid"+s;if("#"==l||"#/"==l)e.isRoot?(n=e.async,r="validate"):(n=!0===e.root.schema.$async,r="root.refVal[0]");else{var f=e.resolveRef(e.baseId,l,e.isRoot);if(void 0===f){var p=e.MissingRefError.message(e.baseId,l);if("fail"==e.opts.missingRefs){e.logger.error(p);var m=m||[];m.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { ref: '"+e.util.escapeQuotes(l)+"' } ",!1!==e.opts.messages&&(o+=" , message: 'can\\'t resolve reference "+e.util.escapeQuotes(l)+"' "),e.opts.verbose&&(o+=" , schema: "+e.util.toQuotedString(l)+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),o+=" } "):o+=" {} ";var g=o;o=m.pop(),!e.compositeRule&&h?e.async?o+=" throw new ValidationError(["+g+"]); ":o+=" validate.errors = ["+g+"]; return false; ":o+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",h&&(o+=" if (false) { ")}else{if("ignore"!=e.opts.missingRefs)throw new e.MissingRefError(e.baseId,l,p);e.logger.warn(p),h&&(o+=" if (true) { ")}}else if(f.inline){var v=e.util.copy(e);v.level++;var w="valid"+v.level;v.schema=f.schema,v.schemaPath="",v.errSchemaPath=l;var y=e.validate(v).replace(/validate\.schema/g,f.code);o+=" "+y+" ",h&&(o+=" if ("+w+") { ")}else n=!0===f.$async,r=f.code}if(r){var m=m||[];m.push(o),o="",e.opts.passContext?o+=" "+r+".call(this, ":o+=" "+r+"( ",o+=" "+d+", (dataPath || '')",'""'!=e.errorPath&&(o+=" + "+e.errorPath);o+=" , "+(a?"data"+(a-1||""):"parentData")+" , "+(a?e.dataPathArr[a]:"parentDataProperty")+", rootData) ";var A=o;if(o=m.pop(),n){if(!e.async)throw new Error("async schema referenced by sync schema");h&&(o+=" var "+u+"; "),o+=" try { "+e.yieldAwait+" "+A+"; ",h&&(o+=" "+u+" = true; "),o+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",h&&(o+=" "+u+" = false; "),o+=" } ",h&&(o+=" if ("+u+") { ")}else o+=" if (!"+A+") { if (vErrors === null) vErrors = "+r+".errors; else vErrors = vErrors.concat("+r+".errors); errors = vErrors.length; } ",h&&(o+=" else { ")}return o}},function(e,t){"use strict";e.exports=function(e,t,i){var n=" ",r=e.schema[t],o=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,a=!e.opts.allErrors,l=e.util.copy(e),c="";l.level++;var h="valid"+l.level,d=l.baseId,u=!0,f=r;if(f)for(var p,m=-1,g=f.length-1;m=0)return c&&(n+=" if (true) { "),n;throw new Error('unknown format "'+s+'" is used in schema at path "'+e.errSchemaPath+'"')}var g="object"==typeof m&&!(m instanceof RegExp)&&m.validate,v=g&&m.type||"string";if(g){var w=!0===m.async;m=m.validate}if(v!=i)return c&&(n+=" if (true) { "),n;if(w){if(!e.async)throw new Error("async format in sync schema");var y="formats"+e.util.getProperty(s)+".validate";n+=" if (!("+e.yieldAwait+" "+y+"("+h+"))) { "}else{n+=" if (! ";var y="formats"+e.util.getProperty(s);g&&(y+=".validate"),n+="function"==typeof m?" "+y+"("+h+") ":" "+y+".test("+h+") ",n+=") { "}}var A=A||[];A.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'format' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { format: ",n+=u?""+d:""+e.util.toQuotedString(s),n+=" } ",!1!==e.opts.messages&&(n+=" , message: 'should match format \"",n+=u?"' + "+d+" + '":""+e.util.escapeQuotes(s),n+="\"' "),e.opts.verbose&&(n+=" , schema: ",n+=u?"validate.schema"+a:""+e.util.toQuotedString(s),n+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var C=n;return n=A.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+C+"]); ":n+=" validate.errors = ["+C+"]; return false; ":n+=" var err = "+C+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",c&&(n+=" else { "),n}},function(e,t){"use strict";e.exports=function(e,t,i){var n=" ",r=e.level,o=e.dataLevel,s=e.schema[t],a=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,h="data"+(o||""),d="valid"+r,u="errs__"+r,f=e.util.copy(e),p="";f.level++;var m="valid"+f.level,g="i"+r,v=f.dataLevel=e.dataLevel+1,w="data"+v,y=e.baseId;if(n+="var "+u+" = errors;var "+d+";",Array.isArray(s)){var A=e.schema.additionalItems;if(!1===A){n+=" "+d+" = "+h+".length <= "+s.length+"; ";var C=l;l=e.errSchemaPath+"/additionalItems",n+=" if (!"+d+") { ";var E=E||[];E.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { limit: "+s.length+" } ",!1!==e.opts.messages&&(n+=" , message: 'should NOT have more than "+s.length+" items' "),e.opts.verbose&&(n+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var b=n;n=E.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+b+"]); ":n+=" validate.errors = ["+b+"]; return false; ":n+=" var err = "+b+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",l=C,c&&(p+="}",n+=" else { ")}var F=s;if(F)for(var x,S=-1,$=F.length-1;S<$;)if(x=F[S+=1],e.util.schemaHasRules(x,e.RULES.all)){n+=" "+m+" = true; if ("+h+".length > "+S+") { ";var D=h+"["+S+"]";f.schema=x,f.schemaPath=a+"["+S+"]",f.errSchemaPath=l+"/"+S,f.errorPath=e.util.getPathExpr(e.errorPath,S,e.opts.jsonPointers,!0),f.dataPathArr[v]=S;var k=e.validate(f);f.baseId=y,e.util.varOccurences(k,w)<2?n+=" "+e.util.varReplace(k,w,D)+" ":n+=" var "+w+" = "+D+"; "+k+" ",n+=" } ",c&&(n+=" if ("+m+") { ",p+="}")}if("object"==typeof A&&e.util.schemaHasRules(A,e.RULES.all)){f.schema=A,f.schemaPath=e.schemaPath+".additionalItems",f.errSchemaPath=e.errSchemaPath+"/additionalItems",n+=" "+m+" = true; if ("+h+".length > "+s.length+") { for (var "+g+" = "+s.length+"; "+g+" < "+h+".length; "+g+"++) { ",f.errorPath=e.util.getPathExpr(e.errorPath,g,e.opts.jsonPointers,!0);var D=h+"["+g+"]";f.dataPathArr[v]=g;var k=e.validate(f);f.baseId=y,e.util.varOccurences(k,w)<2?n+=" "+e.util.varReplace(k,w,D)+" ":n+=" var "+w+" = "+D+"; "+k+" ",c&&(n+=" if (!"+m+") break; "),n+=" } } ",c&&(n+=" if ("+m+") { ",p+="}")}}else if(e.util.schemaHasRules(s,e.RULES.all)){f.schema=s,f.schemaPath=a,f.errSchemaPath=l,n+=" for (var "+g+" = 0; "+g+" < "+h+".length; "+g+"++) { ",f.errorPath=e.util.getPathExpr(e.errorPath,g,e.opts.jsonPointers,!0);var D=h+"["+g+"]";f.dataPathArr[v]=g;var k=e.validate(f);f.baseId=y,e.util.varOccurences(k,w)<2?n+=" "+e.util.varReplace(k,w,D)+" ":n+=" var "+w+" = "+D+"; "+k+" ",c&&(n+=" if (!"+m+") break; "),n+=" }"}return c&&(n+=" "+p+" if ("+u+" == errors) {"),n=e.util.cleanUpCode(n)}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,o=" ",s=e.level,a=e.dataLevel,l=e.schema[t],c=e.schemaPath+e.util.getProperty(t),h=e.errSchemaPath+"/"+t,d=!e.opts.allErrors,u="data"+(a||""),f=e.opts.$data&&l&&l.$data;f?(o+=" var schema"+s+" = "+e.util.getData(l.$data,a,e.dataPathArr)+"; ",r="schema"+s):r=l;var p="maximum"==t,m=p?"exclusiveMaximum":"exclusiveMinimum",g=e.schema[m],v=e.opts.$data&&g&&g.$data,w=p?"<":">",y=p?">":"<",n=void 0;if(v){var A=e.util.getData(g.$data,a,e.dataPathArr),C="exclusive"+s,E="exclType"+s,b="exclIsNumber"+s,F="op"+s,x="' + "+F+" + '";o+=" var schemaExcl"+s+" = "+A+"; ",A="schemaExcl"+s,o+=" var "+C+"; var "+E+" = typeof "+A+"; if ("+E+" != 'boolean' && "+E+" != 'undefined' && "+E+" != 'number') { ";var n=m,S=S||[];S.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(n||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: {} ",!1!==e.opts.messages&&(o+=" , message: '"+m+" should be boolean' "),e.opts.verbose&&(o+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),o+=" } "):o+=" {} ";var $=o;o=S.pop(),!e.compositeRule&&d?e.async?o+=" throw new ValidationError(["+$+"]); ":o+=" validate.errors = ["+$+"]; return false; ":o+=" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",o+=" } else if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),o+=" "+E+" == 'number' ? ( ("+C+" = "+r+" === undefined || "+A+" "+w+"= "+r+") ? "+u+" "+y+"= "+A+" : "+u+" "+y+" "+r+" ) : ( ("+C+" = "+A+" === true) ? "+u+" "+y+"= "+r+" : "+u+" "+y+" "+r+" ) || "+u+" !== "+u+") { var op"+s+" = "+C+" ? '"+w+"' : '"+w+"=';"}else{var b="number"==typeof g,x=w;if(b&&f){var F="'"+x+"'";o+=" if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),o+=" ( "+r+" === undefined || "+g+" "+w+"= "+r+" ? "+u+" "+y+"= "+g+" : "+u+" "+y+" "+r+" ) || "+u+" !== "+u+") { "}else{b&&void 0===l?(C=!0,n=m,h=e.errSchemaPath+"/"+m,r=g,y+="="):(b&&(r=Math[p?"min":"max"](g,l)),g===(!b||r)?(C=!0,n=m,h=e.errSchemaPath+"/"+m,y+="="):(C=!1,x+="="));var F="'"+x+"'";o+=" if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),o+=" "+u+" "+y+" "+r+" || "+u+" !== "+u+") { "}}n=n||t;var S=S||[];S.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(n||"_limit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { comparison: "+F+", limit: "+r+", exclusive: "+C+" } ",!1!==e.opts.messages&&(o+=" , message: 'should be "+x+" ",o+=f?"' + "+r:r+"'"),e.opts.verbose&&(o+=" , schema: ",o+=f?"validate.schema"+c:""+l,o+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),o+=" } "):o+=" {} ";var $=o;return o=S.pop(),!e.compositeRule&&d?e.async?o+=" throw new ValidationError(["+$+"]); ":o+=" validate.errors = ["+$+"]; return false; ":o+=" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",o+=" } ",d&&(o+=" else { "),o}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,o=" ",s=e.level,a=e.dataLevel,l=e.schema[t],c=e.schemaPath+e.util.getProperty(t),h=e.errSchemaPath+"/"+t,d=!e.opts.allErrors,u="data"+(a||""),f=e.opts.$data&&l&&l.$data;f?(o+=" var schema"+s+" = "+e.util.getData(l.$data,a,e.dataPathArr)+"; ",r="schema"+s):r=l;var p="maxItems"==t?">":"<";o+="if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),o+=" "+u+".length "+p+" "+r+") { ";var n=t,m=m||[];m.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(n||"_limitItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { limit: "+r+" } ",!1!==e.opts.messages&&(o+=" , message: 'should NOT have ",o+="maxItems"==t?"more":"less",o+=" than ",o+=f?"' + "+r+" + '":""+l,o+=" items' "),e.opts.verbose&&(o+=" , schema: ",o+=f?"validate.schema"+c:""+l,o+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),o+=" } "):o+=" {} ";var g=o;return o=m.pop(),!e.compositeRule&&d?e.async?o+=" throw new ValidationError(["+g+"]); ":o+=" validate.errors = ["+g+"]; return false; ":o+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",o+="} ",d&&(o+=" else { "),o}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,o=" ",s=e.level,a=e.dataLevel,l=e.schema[t],c=e.schemaPath+e.util.getProperty(t),h=e.errSchemaPath+"/"+t,d=!e.opts.allErrors,u="data"+(a||""),f=e.opts.$data&&l&&l.$data;f?(o+=" var schema"+s+" = "+e.util.getData(l.$data,a,e.dataPathArr)+"; ",r="schema"+s):r=l;var p="maxLength"==t?">":"<";o+="if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),!1===e.opts.unicode?o+=" "+u+".length ":o+=" ucs2length("+u+") ",o+=" "+p+" "+r+") { ";var n=t,m=m||[];m.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(n||"_limitLength")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { limit: "+r+" } ",!1!==e.opts.messages&&(o+=" , message: 'should NOT be ",o+="maxLength"==t?"longer":"shorter",o+=" than ",o+=f?"' + "+r+" + '":""+l,o+=" characters' "),e.opts.verbose&&(o+=" , schema: ",o+=f?"validate.schema"+c:""+l,o+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),o+=" } "):o+=" {} ";var g=o;return o=m.pop(),!e.compositeRule&&d?e.async?o+=" throw new ValidationError(["+g+"]); ":o+=" validate.errors = ["+g+"]; return false; ":o+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",o+="} ",d&&(o+=" else { "),o}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,o=" ",s=e.level,a=e.dataLevel,l=e.schema[t],c=e.schemaPath+e.util.getProperty(t),h=e.errSchemaPath+"/"+t,d=!e.opts.allErrors,u="data"+(a||""),f=e.opts.$data&&l&&l.$data;f?(o+=" var schema"+s+" = "+e.util.getData(l.$data,a,e.dataPathArr)+"; ",r="schema"+s):r=l;var p="maxProperties"==t?">":"<";o+="if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),o+=" Object.keys("+u+").length "+p+" "+r+") { ";var n=t,m=m||[];m.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(n||"_limitProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { limit: "+r+" } ",!1!==e.opts.messages&&(o+=" , message: 'should NOT have ",o+="maxProperties"==t?"more":"less",o+=" than ",o+=f?"' + "+r+" + '":""+l,o+=" properties' "),e.opts.verbose&&(o+=" , schema: ",o+=f?"validate.schema"+c:""+l,o+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),o+=" } "):o+=" {} ";var g=o;return o=m.pop(),!e.compositeRule&&d?e.async?o+=" throw new ValidationError(["+g+"]); ":o+=" validate.errors = ["+g+"]; return false; ":o+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",o+="} ",d&&(o+=" else { "),o}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r=" ",o=e.level,s=e.dataLevel,a=e.schema[t],l=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,d="data"+(s||""),u=e.opts.$data&&a&&a.$data;u?(r+=" var schema"+o+" = "+e.util.getData(a.$data,s,e.dataPathArr)+"; ",n="schema"+o):n=a,r+="var division"+o+";if (",u&&(r+=" "+n+" !== undefined && ( typeof "+n+" != 'number' || "),r+=" (division"+o+" = "+d+" / "+n+", ",e.opts.multipleOfPrecision?r+=" Math.abs(Math.round(division"+o+") - division"+o+") > 1e-"+e.opts.multipleOfPrecision+" ":r+=" division"+o+" !== parseInt(division"+o+") ",r+=" ) ",u&&(r+=" ) "),r+=" ) { ";var f=f||[];f.push(r),r="",!1!==e.createErrors?(r+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { multipleOf: "+n+" } ",!1!==e.opts.messages&&(r+=" , message: 'should be multiple of ",r+=u?"' + "+n:n+"'"),e.opts.verbose&&(r+=" , schema: ",r+=u?"validate.schema"+l:""+a,r+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),r+=" } "):r+=" {} ";var p=r;return r=f.pop(),!e.compositeRule&&h?e.async?r+=" throw new ValidationError(["+p+"]); ":r+=" validate.errors = ["+p+"]; return false; ":r+=" var err = "+p+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+="} ",h&&(r+=" else { "),r}},function(e,t){"use strict";e.exports=function(e,t,i){var n=" ",r=e.level,o=e.dataLevel,s=e.schema[t],a=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,h="data"+(o||""),d="errs__"+r,u=e.util.copy(e);u.level++;var f="valid"+u.level;if(e.util.schemaHasRules(s,e.RULES.all)){u.schema=s,u.schemaPath=a,u.errSchemaPath=l,n+=" var "+d+" = errors; ";var p=e.compositeRule;e.compositeRule=u.compositeRule=!0,u.createErrors=!1;var m;u.opts.allErrors&&(m=u.opts.allErrors,u.opts.allErrors=!1),n+=" "+e.validate(u)+" ",u.createErrors=!0,m&&(u.opts.allErrors=m),e.compositeRule=u.compositeRule=p,n+=" if ("+f+") { ";var g=g||[];g.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",!1!==e.opts.messages&&(n+=" , message: 'should NOT be valid' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var v=n;n=g.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+v+"]); ":n+=" validate.errors = ["+v+"]; return false; ":n+=" var err = "+v+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else { errors = "+d+"; if (vErrors !== null) { if ("+d+") vErrors.length = "+d+"; else vErrors = null; } ",e.opts.allErrors&&(n+=" } ")}else n+=" var err = ",!1!==e.createErrors?(n+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",!1!==e.opts.messages&&(n+=" , message: 'should NOT be valid' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",c&&(n+=" if (false) { ");return n}},function(e,t){"use strict";e.exports=function(e,t,i){var n=" ",r=e.level,o=e.dataLevel,s=e.schema[t],a=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,h="data"+(o||""),d="valid"+r,u="errs__"+r,f=e.util.copy(e),p="";f.level++;var m="valid"+f.level;n+="var "+u+" = errors;var prevValid"+r+" = false;var "+d+" = false;";var g=f.baseId,v=e.compositeRule;e.compositeRule=f.compositeRule=!0;var w=s;if(w)for(var y,A=-1,C=w.length-1;A5)n+=" || validate.schema"+a+"["+g+"] ";else{var M=C;if(M)for(var O,I=-1,N=M.length-1;I= "+ve+"; ",l=e.errSchemaPath+"/patternGroups/minimum",n+=" if (!"+d+") { ";var X=X||[];X.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'patternGroups' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { reason: '"+Ae+"', limit: "+ye+", pattern: '"+e.util.escapeQuotes(U)+"' } ",!1!==e.opts.messages&&(n+=" , message: 'should NOT have "+Ce+" than "+ye+' properties matching pattern "'+e.util.escapeQuotes(U)+"\"' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var J=n;n=X.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+J+"]); ":n+=" validate.errors = ["+J+"]; return false; ":n+=" var err = "+J+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",void 0!==we&&(n+=" else ")}if(void 0!==we){var ye=we,Ae="maximum",Ce="more";n+=" "+d+" = pgPropCount"+r+" <= "+we+"; ",l=e.errSchemaPath+"/patternGroups/maximum",n+=" if (!"+d+") { ";var X=X||[];X.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'patternGroups' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { reason: '"+Ae+"', limit: "+ye+", pattern: '"+e.util.escapeQuotes(U)+"' } ",!1!==e.opts.messages&&(n+=" , message: 'should NOT have "+Ce+" than "+ye+' properties matching pattern "'+e.util.escapeQuotes(U)+"\"' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var J=n;n=X.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+J+"]); ":n+=" validate.errors = ["+J+"]; return false; ":n+=" var err = "+J+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } "}l=Q,c&&(n+=" if ("+d+") { ",p+="}")}}}}return c&&(n+=" "+p+" if ("+u+" == errors) {"),n=e.util.cleanUpCode(n)}},function(e,t){"use strict";e.exports=function(e,t,i){var n=" ",r=e.level,o=e.dataLevel,s=e.schema[t],a=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,h="data"+(o||""),d="errs__"+r,u=e.util.copy(e);u.level++;var f="valid"+u.level;if(e.util.schemaHasRules(s,e.RULES.all)){u.schema=s,u.schemaPath=a,u.errSchemaPath=l;var p="key"+r,m="idx"+r,g="i"+r,v="' + "+p+" + '",w=u.dataLevel=e.dataLevel+1,y="data"+w,A="dataProperties"+r,C=e.opts.ownProperties,E=e.baseId;n+=" var "+d+" = errors; ",C&&(n+=" var "+A+" = undefined; "),n+=C?" "+A+" = "+A+" || Object.keys("+h+"); for (var "+m+"=0; "+m+"<"+A+".length; "+m+"++) { var "+p+" = "+A+"["+m+"]; ":" for (var "+p+" in "+h+") { ",n+=" var startErrs"+r+" = errors; ";var b=p,F=e.compositeRule;e.compositeRule=u.compositeRule=!0;var x=e.validate(u);u.baseId=E,e.util.varOccurences(x,y)<2?n+=" "+e.util.varReplace(x,y,b)+" ":n+=" var "+y+" = "+b+"; "+x+" ",e.compositeRule=u.compositeRule=F,n+=" if (!"+f+") { for (var "+g+"=startErrs"+r+"; "+g+"=e.opts.loopRequired,E=e.opts.ownProperties;if(c)if(n+=" var missing"+r+"; ",C){u||(n+=" var "+f+" = validate.schema"+a+"; ");var b="i"+r,F="schema"+r+"["+b+"]",x="' + "+F+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(A,F,e.opts.jsonPointers)),n+=" var "+d+" = true; ",u&&(n+=" if (schema"+r+" === undefined) "+d+" = true; else if (!Array.isArray(schema"+r+")) "+d+" = false; else {"),n+=" for (var "+b+" = 0; "+b+" < "+f+".length; "+b+"++) { "+d+" = "+h+"["+f+"["+b+"]] !== undefined ",E&&(n+=" && Object.prototype.hasOwnProperty.call("+h+", "+f+"["+b+"]) "),n+="; if (!"+d+") break; } ",u&&(n+=" } "),n+=" if (!"+d+") { ";var S=S||[];S.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { missingProperty: '"+x+"' } ",!1!==e.opts.messages&&(n+=" , message: '",e.opts._errorDataPathProperty?n+="is a required property":n+="should have required property \\'"+x+"\\'",n+="' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var $=n;n=S.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+$+"]); ":n+=" validate.errors = ["+$+"]; return false; ":n+=" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else { "}else{n+=" if ( ";var D=p;if(D)for(var k,b=-1,B=D.length-1;b 1) { var i = "+d+".length, j; outer: for (;i--;) { for (j = i; j--;) { if (equal("+d+"[i], "+d+"[j])) { "+u+" = false; break outer; } } } } ",f&&(r+=" } "),r+=" if (!"+u+") { ";var p=p||[];p.push(r),r="",!1!==e.createErrors?(r+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { i: i, j: j } ",!1!==e.opts.messages&&(r+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),e.opts.verbose&&(r+=" , schema: ",r+=f?"validate.schema"+l:""+a,r+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),r+=" } "):r+=" {} ";var m=r;r=p.pop(),!e.compositeRule&&h?e.async?r+=" throw new ValidationError(["+m+"]); ":r+=" validate.errors = ["+m+"]; return false; ":r+=" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+=" } ",h&&(r+=" else { ")}else h&&(r+=" if (true) { ");return r}},function(e,t){"use strict";var i=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","enum","format","const"];e.exports=function(e,t){for(var n=0;n0?this.autoScrollStep=(n+24-e)/3:e>o-24&&r+i.scrollTop3?(i.scrollTop+=r/3,n.animateCallback=t,n.animateTimeout=setTimeout(a,50)):(t&&t(!0),i.scrollTop=s,delete n.animateTimeout,delete n.animateCallback)};a()}else t&&t(!1)},m._createFrame=function(){function e(e){t._onEvent&&t._onEvent(e)}this.frame=document.createElement("div"),this.frame.className="jsoneditor jsoneditor-mode-"+this.options.mode,this.container.appendChild(this.frame);var t=this;this.frame.onclick=function(t){var i=t.target;e(t),"BUTTON"==i.nodeName&&t.preventDefault()},this.frame.oninput=e,this.frame.onchange=e,this.frame.onkeydown=e,this.frame.onkeyup=e,this.frame.oncut=e,this.frame.onpaste=e,this.frame.onmousedown=e,this.frame.onmouseup=e,this.frame.onmouseover=e,this.frame.onmouseout=e,h.addEventListener(this.frame,"focus",e,!0),h.addEventListener(this.frame,"blur",e,!0),this.frame.onfocusin=e,this.frame.onfocusout=e,this.menu=document.createElement("div"),this.menu.className="jsoneditor-menu",this.frame.appendChild(this.menu);var i=document.createElement("button");i.type="button",i.className="jsoneditor-expand-all",i.title=u("expandAll"),i.onclick=function(){t.expandAll()},this.menu.appendChild(i);var n=document.createElement("button");if(n.type="button",n.title=u("collapseAll"),n.className="jsoneditor-collapse-all",n.onclick=function(){t.collapseAll()},this.menu.appendChild(n),this.history){var r=document.createElement("button");r.type="button",r.className="jsoneditor-undo jsoneditor-separator",r.title=u("undo"),r.onclick=function(){t._onUndo()},this.menu.appendChild(r),this.dom.undo=r;var s=document.createElement("button");s.type="button",s.className="jsoneditor-redo",s.title=u("redo"),s.onclick=function(){t._onRedo()},this.menu.appendChild(s),this.dom.redo=s,this.history.onChange=function(){r.disabled=!t.history.canUndo(),s.disabled=!t.history.canRedo()},this.history.onChange()}if(this.options&&this.options.modes&&this.options.modes.length){var l=this;this.modeSwitcher=new c(this.menu,this.options.modes,this.options.mode,function(e){l.modeSwitcher.destroy(),l.setMode(e),l.modeSwitcher.focus()})}this.options.search&&(this.searchBox=new o(this,this.menu)),this.options.navigationBar&&(this.navBar=document.createElement("div"),this.navBar.className="jsoneditor-navigation-bar nav-bar-empty",this.frame.appendChild(this.navBar),this.treePath=new a(this.navBar),this.treePath.onSectionSelected(this._onTreePathSectionSelected.bind(this)),this.treePath.onContextMenuItemSelected(this._onTreePathMenuItemSelected.bind(this)))},m._onUndo=function(){this.history&&(this.history.undo(),this._onChange())},m._onRedo=function(){this.history&&(this.history.redo(),this._onChange())},m._onEvent=function(e){"keydown"===e.type&&this._onKeyDown(e),"focus"===e.type&&(this.focusTarget=e.target),"mousedown"===e.type&&this._startDragDistance(e),"mousemove"!==e.type&&"mouseup"!==e.type&&"click"!==e.type||this._updateDragDistance(e);var t=l.getNodeFromTarget(e.target);if(t&&this.options&&this.options.navigationBar&&t&&("keydown"===e.type||"mousedown"===e.type)){var i=this;setTimeout(function(){i._updateTreePath(t.getNodePath())})}if(t&&t.selected){if("click"===e.type){if(e.target===t.dom.menu)return void this.showContextMenu(e.target);e.hasMoved||this.deselect()}"mousedown"===e.type&&l.onDragStart(this.multiselection.nodes,e)}else"mousedown"===e.type&&(this.deselect(),t&&e.target===t.dom.drag?l.onDragStart(t,e):(!t||e.target!==t.dom.field&&e.target!==t.dom.value&&e.target!==t.dom.select)&&this._onMultiSelectStart(e));t&&t.onEvent(e)},m._updateTreePath=function(e){function t(e){return void 0!==e.field?e._escapeHTML(e.field):isNaN(e.index)?e.type:e.index}if(e&&e.length){h.removeClassName(this.navBar,"nav-bar-empty");var i=[];e.forEach(function(e){var n={name:t(e),node:e,children:[]};e.childs&&e.childs.length&&e.childs.forEach(function(e){n.children.push({name:t(e),node:e})}),i.push(n)}),this.treePath.setPath(i)}else h.addClassName(this.navBar,"nav-bar-empty")},m._onTreePathSectionSelected=function(e){e&&e.node&&(e.node.expandTo(),e.node.focus())},m._onTreePathMenuItemSelected=function(e,t){if(e&&e.children.length){var i=e.children.find(function(e){return e.name===t});i&&i.node&&(this._updateTreePath(i.node.getNodePath()),i.node.expandTo(),i.node.focus())}},m._startDragDistance=function(e){this.dragDistanceEvent={initialTarget:e.target,initialPageX:e.pageX,initialPageY:e.pageY,dragDistance:0,hasMoved:!1}},m._updateDragDistance=function(e){this.dragDistanceEvent||this._startDragDistance(e);var t=e.pageX-this.dragDistanceEvent.initialPageX,i=e.pageY-this.dragDistanceEvent.initialPageY;return this.dragDistanceEvent.dragDistance=Math.sqrt(t*t+i*i),this.dragDistanceEvent.hasMoved=this.dragDistanceEvent.hasMoved||this.dragDistanceEvent.dragDistance>10,e.dragDistance=this.dragDistanceEvent.dragDistance,e.hasMoved=this.dragDistanceEvent.hasMoved,e.dragDistance},m._onMultiSelectStart=function(e){var t=l.getNodeFromTarget(e.target);if("tree"===this.options.mode&&void 0===this.options.onEditable){this.multiselection={start:t||null,end:null,nodes:[]},this._startDragDistance(e);var i=this;this.mousemove||(this.mousemove=h.addEventListener(window,"mousemove",function(e){i._onMultiSelect(e)})),this.mouseup||(this.mouseup=h.addEventListener(window,"mouseup",function(e){i._onMultiSelectEnd(e)}))}}, -m._onMultiSelect=function(e){if(e.preventDefault(),this._updateDragDistance(e),e.hasMoved){var t=l.getNodeFromTarget(e.target);t&&(null==this.multiselection.start&&(this.multiselection.start=t),this.multiselection.end=t),this.deselect();var i=this.multiselection.start,n=this.multiselection.end||this.multiselection.start;if(i&&n){if(this.multiselection.nodes=this._findTopLevelNodes(i,n),this.multiselection.nodes&&this.multiselection.nodes.length){var r=this.multiselection.nodes[0];this.multiselection.start===r||this.multiselection.start.isDescendantOf(r)?this.multiselection.direction="down":this.multiselection.direction="up"}this.select(this.multiselection.nodes)}}},m._onMultiSelectEnd=function(e){this.multiselection.nodes[0]&&this.multiselection.nodes[0].dom.menu.focus(),this.multiselection.start=null,this.multiselection.end=null,this.mousemove&&(h.removeEventListener(window,"mousemove",this.mousemove),delete this.mousemove),this.mouseup&&(h.removeEventListener(window,"mouseup",this.mouseup),delete this.mouseup)},m.deselect=function(e){var t=!!this.multiselection.nodes.length;this.multiselection.nodes.forEach(function(e){e.setSelected(!1)}),this.multiselection.nodes=[],e&&(this.multiselection.start=null,this.multiselection.end=null),t&&this._selectionChangedHandler&&this._selectionChangedHandler()},m.select=function(e){if(!Array.isArray(e))return this.select([e]);if(e){this.deselect(),this.multiselection.nodes=e.slice(0);var t=e[0];if(e.forEach(function(e){e.expandPathToNode(),e.setSelected(!0,e===t)}),this._selectionChangedHandler){var i=this.getSelection();this._selectionChangedHandler(i.start,i.end)}}},m._findTopLevelNodes=function(e,t){for(var i=e.getNodePath(),n=t.getNodePath(),r=0;r=0&&(c="value"),e.target.className.indexOf("jsoneditor-field")>=0&&(c="field");var d=l.getNodeFromTarget(e.target);setTimeout(function(e,t){if(t.innerText.length>0){var i=this.options.autocomplete.getOptions(t.innerText,e.getPath(),c,e.editor);null===i?this.autocomplete.hideDropDown():"function"==typeof i.then?i.then(function(e){null===e?this.autocomplete.hideDropDown():e.options?this.autocomplete.show(t,e.startFrom,e.options):this.autocomplete.show(t,0,e)}.bind(this)):i.options?this.autocomplete.show(t,i.startFrom,i.options):this.autocomplete.show(t,0,i)}else this.autocomplete.hideDropDown()}.bind(this,d,e.target),50)}s&&(e.preventDefault(),e.stopPropagation())},m._createTable=function(){var e=document.createElement("div");e.className="jsoneditor-outer",this.options.navigationBar&&h.addClassName(e,"has-nav-bar"),this.contentOuter=e,this.content=document.createElement("div"),this.content.className="jsoneditor-tree",e.appendChild(this.content),this.table=document.createElement("table"),this.table.className="jsoneditor-tree",this.content.appendChild(this.table);var t;this.colgroupContent=document.createElement("colgroup"),"tree"===this.options.mode&&(t=document.createElement("col"),t.width="24px",this.colgroupContent.appendChild(t)),t=document.createElement("col"),t.width="24px",this.colgroupContent.appendChild(t),t=document.createElement("col"),this.colgroupContent.appendChild(t),this.table.appendChild(this.colgroupContent),this.tbody=document.createElement("tbody"),this.table.appendChild(this.tbody),this.frame.appendChild(e)},m.showContextMenu=function(e,t){var i=[],n=this;i.push({text:u("duplicateText"),title:u("duplicateTitle"),className:"jsoneditor-duplicate",click:function(){l.onDuplicate(n.multiselection.nodes)}}),i.push({text:u("remove"),title:u("removeTitle"),className:"jsoneditor-remove",click:function(){l.onRemove(n.multiselection.nodes)}}),new s(i,{close:t}).show(e,this.content)},m.getSelection=function(){var e={start:null,end:null};if(this.multiselection.nodes&&this.multiselection.nodes.length&&this.multiselection.nodes.length){var t=this.multiselection.nodes[0],i=this.multiselection.nodes[this.multiselection.nodes.length-1];"down"===this.multiselection.direction?(e.start=t.serialize(),e.end=i.serialize()):(e.start=i.serialize(),e.end=t.serialize())}return e},m.onSelectionChange=function(e){"function"==typeof e&&(this._selectionChangedHandler=h.debounce(e,this.DEBOUNCE_INTERVAL))},m.setSelection=function(e,t){e&&e.dom&&e.range&&(console.warn("setSelection/getSelection usage for text selection is depracated and should not be used, see documantaion for supported selection options"),this.setDomSelection(e));var i=this._getNodeIntsncesByRange(e,t);i.forEach(function(e){e.expandTo()}),this.select(i)},m._getNodeIntsncesByRange=function(e,t){var i,n;e&&e.path&&(i=this.node.findNodeByPath(e.path),t&&t.path&&(n=this.node.findNodeByPath(t.path)));var r=[];if(i instanceof l)if(n instanceof l&&n!==i)if(i.parent===n.parent){var e,t;i.getIndex()=0},n.prototype.canRedo=function(){return this.index=" "&&c<=" "||" "===c||" "===c||" "===c?(o.push(" "),s++):"'"===c?r("'"):'"'===c?r('"'):"`"===c?r("´"):"‘"===c?r("’"):"“"===c?r("”"):/[a-zA-Z_$]/.test(c)&&-1!==["{",","].indexOf(function(){for(var e=o.length-1;e>=0;){var t=o[e];if(" "!==t&&"\n"!==t&&"\r"!==t&&"\t"!==t)return t;e--}return""}())?function(){for(var e=["null","true","false"],i="",n=t(),r=/[a-zA-Z_$\d]/;r.test(n);)i+=n,s++,n=t();-1===e.indexOf(i)?o.push('"'+i+'"'):o.push(i)}():(o.push(c),s++)}return o.join("")},t.escapeUnicodeChars=function(e){return e.replace(/[\u007F-\uFFFF]/g,function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})},t.validate=function(e){void 0!==n?n.parse(e):JSON.parse(e)},t.extend=function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);return e},t.clear=function(e){for(var t in e)e.hasOwnProperty(t)&&delete e[t];return e},t.type=function(e){return null===e?"null":void 0===e?"undefined":e instanceof Number||"number"==typeof e?"number":e instanceof String||"string"==typeof e?"string":e instanceof Boolean||"boolean"==typeof e?"boolean":e instanceof RegExp||"regexp"==typeof e?"regexp":t.isArray(e)?"array":"object"};var r=/^https?:\/\/\S+$/;t.isUrl=function(e){return("string"==typeof e||e instanceof String)&&r.test(e)},t.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)},t.getAbsoluteLeft=function(e){return e.getBoundingClientRect().left+window.pageXOffset||document.scrollLeft||0},t.getAbsoluteTop=function(e){return e.getBoundingClientRect().top+window.pageYOffset||document.scrollTop||0},t.addClassName=function(e,t){var i=e.className.split(" ");-1==i.indexOf(t)&&(i.push(t),e.className=i.join(" "))},t.removeClassName=function(e,t){var i=e.className.split(" "),n=i.indexOf(t);-1!=n&&(i.splice(n,1),e.className=i.join(" "))},t.stripFormatting=function(e){for(var i=e.childNodes,n=0,r=i.length;n=0;a--){var l=s[a];!0===l.specified&&o.removeAttribute(l.name)}t.stripFormatting(o)}},t.setEndOfContentEditable=function(e){var t,i;document.createRange&&(t=document.createRange(),t.selectNodeContents(e),t.collapse(!1),i=window.getSelection(),i.removeAllRanges(),i.addRange(t))},t.selectContentEditable=function(e){if(e&&"DIV"==e.nodeName){var t,i;window.getSelection&&document.createRange&&(i=document.createRange(),i.selectNodeContents(e),t=window.getSelection(),t.removeAllRanges(),t.addRange(i))}},t.getSelection=function(){if(window.getSelection){var e=window.getSelection();if(e.getRangeAt&&e.rangeCount)return e.getRangeAt(0)}return null},t.setSelection=function(e){if(e&&window.getSelection){var t=window.getSelection();t.removeAllRanges(),t.addRange(e)}},t.getSelectionOffset=function(){var e=t.getSelection();return e&&"startOffset"in e&&"endOffset"in e&&e.startContainer&&e.startContainer==e.endContainer?{startOffset:e.startOffset,endOffset:e.endOffset,container:e.startContainer.parentNode}:null},t.setSelectionOffset=function(e){if(document.createRange&&window.getSelection){if(window.getSelection()){var i=document.createRange();e.container.firstChild||e.container.appendChild(document.createTextNode("")),i.setStart(e.container.firstChild,e.startOffset),i.setEnd(e.container.firstChild,e.endOffset),t.setSelection(i)}}},t.getInnerText=function(e,i){if(void 0==i&&(i={text:"",flush:function(){var e=this.text;return this.text="",e},set:function(e){this.text=e}}),e.nodeValue)return i.flush()+e.nodeValue;if(e.hasChildNodes()){for(var n=e.childNodes,r="",o=0,s=n.length;o5){var i=["("+(t.length-5)+" more...)"];t=t.slice(0,5),t.push(i)}e.message="should be equal to one of: "+t.join(", ")}}return"additionalProperties"===e.keyword&&(e.message="should NOT have additional property: "+e.params.additionalProperty),e},t.insideRect=function(e,t,i){var n=void 0!==i?i:0;return t.left-n>=e.left&&t.right+n<=e.right&&t.top-n>=e.top&&t.bottom+n<=e.bottom},t.debounce=function(e,t,i){var n;return function(){var r=this,o=arguments,s=function(){n=null,i||e.apply(r,o)},a=i&&!n;clearTimeout(n),n=setTimeout(s,t),a&&e.apply(r,o)}},t.textDiff=function(e,t){for(var i=t.length,n=0,r=e.length,o=t.length;t.charAt(n)===e.charAt(n)&&nn&&r>0;)o--,r--;return{start:n,end:o}},t.getInputSelection=function(e){function t(t){var i=e.value.substring(0,t);return{row:(i.match(/\n/g)||[]).length+1,column:i.length-i.lastIndexOf("\n")}}var i,n,r,o,s,a=0,l=0;return"number"==typeof e.selectionStart&&"number"==typeof e.selectionEnd?(a=e.selectionStart,l=e.selectionEnd):(n=document.selection.createRange())&&n.parentElement()==e&&(o=e.value.length,i=e.value.replace(/\r\n/g,"\n"),r=e.createTextRange(),r.moveToBookmark(n.getBookmark()),s=e.createTextRange(),s.collapse(!1),r.compareEndPoints("StartToEnd",s)>-1?a=l=o:(a=-r.moveStart("character",-o),a+=i.slice(0,a).split("\n").length-1,r.compareEndPoints("EndToEnd",s)>-1?l=o:(l=-r.moveEnd("character",-o),l+=i.slice(0,l).split("\n").length-1))),{startIndex:a,endIndex:l,start:t(a),end:t(l)}},t.getIndexForPosition=function(e,t,i){var n=e.value||"";if(t>0&&i>0){var r=n.split("\n",t);t=Math.min(r.length,t),i=Math.min(r[t-1].length,i-1);var o=1==t?i:i+1;return r.slice(0,t-1).join("\n").length+o}return-1},"undefined"!=typeof Element&&function(){function e(e){e.hasOwnProperty("remove")||Object.defineProperty(e,"remove",{configurable:!0,enumerable:!0,writable:!0,value:function(){null!=this.parentNode&&this.parentNode.removeChild(this)}})}"undefined"!=typeof Element&&e(Element.prototype),"undefined"!=typeof CharacterData&&e(CharacterData.prototype),"undefined"!=typeof DocumentType&&e(DocumentType.prototype)}(),String.prototype.startsWith||(String.prototype.startsWith=function(e,t){return t=t||0,this.substr(t,e.length)===e}),Array.prototype.find||(Array.prototype.find=function(e){for(var t=0;t2&&C.push("'"+this.terminals_[w]+"'");var b="";b=this.lexer.showPosition?"Parse error on line "+(l+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+C.join(", ")+", got '"+this.terminals_[f]+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==f?"end of input":"'"+(this.terminals_[f]||f)+"'"),this.parseError(b,{text:this.lexer.match,token:this.terminals_[f]||f,line:this.lexer.yylineno,loc:u,expected:C})}if(3==h){if(1==f)throw new Error(b||"Parsing halted.");c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,u=this.lexer.yylloc,f=t()}for(;;){if(d.toString()in s[m])break;if(0==m)throw new Error(b||"Parsing halted.");!function(e){n.length=n.length-2*e,r.length=r.length-e,o.length=o.length-e}(1),m=n[n.length-1]}p=f,f=d,m=n[n.length-1],g=s[m]&&s[m][d],h=3}if(g[0]instanceof Array&&g.length>1)throw new Error("Parse Error: multiple actions possible at state: "+m+", token: "+f);switch(g[0]){case 1:n.push(f),r.push(this.lexer.yytext),o.push(this.lexer.yylloc),n.push(g[1]),f=null,p?(f=p,p=null):(c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,u=this.lexer.yylloc,h>0&&h--);break;case 2:if(y=this.productions_[g[1]][1],E.$=r[r.length-y],E._$={first_line:o[o.length-(y||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(y||1)].first_column,last_column:o[o.length-1].last_column},void 0!==(v=this.performAction.call(E,a,c,l,this.yy,g[1],r,o)))return v;y&&(n=n.slice(0,-1*y*2),r=r.slice(0,-1*y),o=o.slice(0,-1*y)),n.push(this.productions_[g[1]][0]),r.push(E.$),o.push(E._$),A=s[n[n.length-2]][n[n.length-1]],n.push(A);break;case 3:return!0}}return!0}},t=function(){var e={EOF:1,parseError:function(e,t){if(!this.yy.parseError)throw new Error(e);this.yy.parseError(e,t)},setInput:function(e){return this._input=e,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.match+=e,this.matched+=e,e.match(/\n/)&&this.yylineno++,this._input=this._input.slice(1),e},unput:function(e){return this._input=e+this._input,this},more:function(){return this._more=!0,this},less:function(e){this._input=this.match.slice(e)+this._input},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var e,t,i,n,r;this._more||(this.yytext="",this.match="");for(var o=this._currentRules(),s=0;st[0].length)||(t=i,n=s,this.options.flex));s++);return t?(r=t[0].match(/\n.*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-1:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.yyleng=this.yytext.length,this._more=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],e=this.performAction.call(this,this.yy,this,o[n],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e||void 0):""===this._input?this.EOF:void this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var e=this.next();return void 0!==e?e:this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(e){this.begin(e)}};return e.options={},e.performAction=function(e,t,i,n){switch(i){case 0:break;case 1:return 6;case 2:return t.yytext=t.yytext.substr(1,t.yyleng-2),4;case 3:return 17;case 4:return 18;case 5:return 23;case 6:return 24;case 7:return 22;case 8:return 21;case 9:return 10;case 10:return 11;case 11:return 8;case 12:return 14;case 13:return"INVALID"}},e.rules=[/^(?:\s+)/,/^(?:(-?([0-9]|[1-9][0-9]+))(\.[0-9]+)?([eE][-+]?[0-9]+)?\b)/,/^(?:"(?:\\[\\"bfnrt\/]|\\u[a-fA-F0-9]{4}|[^\\\0-\x09\x0a-\x1f"])*")/,/^(?:\{)/,/^(?:\})/,/^(?:\[)/,/^(?:\])/,/^(?:,)/,/^(?::)/,/^(?:true\b)/,/^(?:false\b)/,/^(?:null\b)/,/^(?:$)/,/^(?:.)/],e.conditions={INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],inclusive:!0}},e}();return e.lexer=t,e}();t.parser=n,t.parse=n.parse.bind(n)},function(e,t){"use strict";function i(e,t){var i=this;this.editor=e,this.timeout=void 0,this.delay=200,this.lastText=void 0,this.dom={},this.dom.container=t;var n=document.createElement("table");this.dom.table=n,n.className="jsoneditor-search",t.appendChild(n);var r=document.createElement("tbody");this.dom.tbody=r,n.appendChild(r);var o=document.createElement("tr");r.appendChild(o);var s=document.createElement("td");o.appendChild(s);var a=document.createElement("div");this.dom.results=a,a.className="jsoneditor-results",s.appendChild(a),s=document.createElement("td"),o.appendChild(s);var l=document.createElement("div");this.dom.input=l,l.className="jsoneditor-frame",l.title="Search fields and values",s.appendChild(l);var c=document.createElement("table");l.appendChild(c);var h=document.createElement("tbody");c.appendChild(h),o=document.createElement("tr"),h.appendChild(o);var d=document.createElement("button");d.type="button",d.className="jsoneditor-refresh",s=document.createElement("td"),s.appendChild(d),o.appendChild(s);var u=document.createElement("input");this.dom.search=u,u.oninput=function(e){i._onDelayedSearch(e)},u.onchange=function(e){i._onSearch()},u.onkeydown=function(e){i._onKeyDown(e)},u.onkeyup=function(e){i._onKeyUp(e)},d.onclick=function(e){u.select()},s=document.createElement("td"),s.appendChild(u),o.appendChild(s);var f=document.createElement("button");f.type="button",f.title="Next result (Enter)",f.className="jsoneditor-next",f.onclick=function(){i.next()},s=document.createElement("td"),s.appendChild(f),o.appendChild(s);var p=document.createElement("button");p.type="button",p.title="Previous result (Shift+Enter)",p.className="jsoneditor-previous",p.onclick=function(){i.previous()},s=document.createElement("td"),s.appendChild(p),o.appendChild(s)}i.prototype.next=function(e){if(void 0!=this.results){var t=void 0!=this.resultIndex?this.resultIndex+1:0;t>this.results.length-1&&(t=0),this._setActiveResult(t,e)}},i.prototype.previous=function(e){if(void 0!=this.results){var t=this.results.length-1,i=void 0!=this.resultIndex?this.resultIndex-1:t;i<0&&(i=t),this._setActiveResult(i,e)}},i.prototype._setActiveResult=function(e,t){if(this.activeResult){var i=this.activeResult.node;"field"==this.activeResult.elem?delete i.searchFieldActive:delete i.searchValueActive,i.updateDom()}if(!this.results||!this.results[e])return this.resultIndex=void 0,void(this.activeResult=void 0);this.resultIndex=e;var n=this.results[this.resultIndex].node,r=this.results[this.resultIndex].elem;"field"==r?n.searchFieldActive=!0:n.searchValueActive=!0,this.activeResult=this.results[this.resultIndex],n.updateDom(),n.scrollTo(function(){t&&n.focus(r)})},i.prototype._clearDelay=function(){void 0!=this.timeout&&(clearTimeout(this.timeout),delete this.timeout)},i.prototype._onDelayedSearch=function(e){this._clearDelay();var t=this;this.timeout=setTimeout(function(e){t._onSearch()},this.delay)},i.prototype._onSearch=function(e){this._clearDelay();var t=this.dom.search.value,i=t.length>0?t:void 0;if(i!==this.lastText||e){this.lastText=i,this.results=this.editor.search(i);var n=this.results[0]?this.results[0].node.MAX_SEARCH_RESULTS:1/0;if(this._setActiveResult(0,!1),void 0!==i){var r=this.results.length;this.dom.results.innerHTML=0===r?"no results":1===r?"1 result":r>n?n+"+ results":r+" results"}else this.dom.results.innerHTML=""}},i.prototype._onKeyDown=function(e){var t=e.which;27==t?(this.dom.search.value="",this._onSearch(),e.preventDefault(),e.stopPropagation()):13==t&&(e.ctrlKey?this._onSearch(!0):e.shiftKey?this.previous():this.next(),e.preventDefault(),e.stopPropagation())},i.prototype._onKeyUp=function(e){var t=e.keyCode;27!=t&&13!=t&&this._onDelayedSearch(e)},i.prototype.clear=function(){this.dom.search.value="",this._onSearch()},i.prototype.destroy=function(){this.editor=null,this.dom.container.removeChild(this.dom.table),this.dom=null,this.results=null,this.activeResult=null,this._clearDelay()},e.exports=i},function(e,t,i){"use strict";function n(e){return e.getRootNode&&e.getRootNode()||window}function r(e,t){function i(e,t,r){r.forEach(function(r){if("separator"==r.type){var o=document.createElement("div");o.className="jsoneditor-separator",l=document.createElement("li"),l.appendChild(o),e.appendChild(l)}else{var a={},l=document.createElement("li");e.appendChild(l);var c=document.createElement("button");if(c.type="button",c.className=r.className,a.button=c,r.title&&(c.title=r.title),r.click&&(c.onclick=function(e){e.preventDefault(),n.hide(),r.click()}),l.appendChild(c),r.submenu){var h=document.createElement("div");h.className="jsoneditor-icon",c.appendChild(h);var d=document.createElement("div");d.className="jsoneditor-text"+(r.click?"":" jsoneditor-right-margin"),d.appendChild(document.createTextNode(r.text)),c.appendChild(d);var u;if(r.click){c.className+=" jsoneditor-default";var f=document.createElement("button");f.type="button",a.buttonExpand=f,f.className="jsoneditor-expand",f.innerHTML='
',l.appendChild(f),r.submenuTitle&&(f.title=r.submenuTitle),u=f}else{var p=document.createElement("div");p.className="jsoneditor-expand",c.appendChild(p),u=c}u.onclick=function(e){e.preventDefault(),n._onExpandItem(a),u.focus()};var m=[];a.subItems=m;var g=document.createElement("ul");a.ul=g,g.className="jsoneditor-menu",g.style.height="0",l.appendChild(g),i(g,m,r.submenu)}else c.innerHTML='
'+s(r.text)+"
";t.push(a)}})}this.dom={};var n=this,r=this.dom;this.anchor=void 0,this.items=e,this.eventListeners={},this.selection=void 0,this.onClose=t?t.close:void 0;var o=document.createElement("div");o.className="jsoneditor-contextmenu-root",r.root=o;var a=document.createElement("div");a.className="jsoneditor-contextmenu",r.menu=a,o.appendChild(a);var l=document.createElement("ul");l.className="jsoneditor-menu",a.appendChild(l),r.list=l,r.items=[];var c=document.createElement("button");c.type="button",r.focusButton=c;var h=document.createElement("li");h.style.overflow="hidden",h.style.height="0",h.appendChild(c),l.appendChild(h),i(l,this.dom.items,e),this.maxHeight=0,e.forEach(function(t){var i=24*(e.length+(t.submenu?t.submenu.length:0));n.maxHeight=Math.max(n.maxHeight,i)})}var o=i(54),s=i(58).translate;r.prototype._getVisibleButtons=function(){var e=[],t=this;return this.dom.items.forEach(function(i){e.push(i.button),i.buttonExpand&&e.push(i.buttonExpand),i.subItems&&i==t.expandedItem&&i.subItems.forEach(function(t){e.push(t.button),t.buttonExpand&&e.push(t.buttonExpand)})}),e},r.visibleMenu=void 0,r.prototype.show=function(e,t){this.hide();var i=!0,s=e.parentNode,a=e.getBoundingClientRect(),l=s.getBoundingClientRect();if(t){var c=t.getBoundingClientRect();a.bottom+this.maxHeightc.top&&(i=!1)}var h=a.left-l.left,d=a.top-l.top;if(i){var u=e.offsetHeight;this.dom.menu.style.left=h+"px",this.dom.menu.style.top=d+u+"px",this.dom.menu.style.bottom=""}else this.dom.menu.style.left=h+"px",this.dom.menu.style.top=d+"px",this.dom.menu.style.bottom="0px";this.rootNode=n(e),s.insertBefore(this.dom.root,s.firstChild);var f=this,p=this.dom.list;this.eventListeners.mousedown=o.addEventListener(this.rootNode,"mousedown",function(e){var t=e.target;t==p||f._isChildOf(t,p)||(f.hide(),e.stopPropagation(),e.preventDefault())}),this.eventListeners.keydown=o.addEventListener(this.rootNode,"keydown",function(e){f._onKeyDown(e)}),this.selection=o.getSelection(),this.anchor=e,setTimeout(function(){f.dom.focusButton.focus()},0),r.visibleMenu&&r.visibleMenu.hide(),r.visibleMenu=this},r.prototype.hide=function(){this.dom.root.parentNode&&(this.dom.root.parentNode.removeChild(this.dom.root),this.onClose&&this.onClose());for(var e in this.eventListeners)if(this.eventListeners.hasOwnProperty(e)){var t=this.eventListeners[e];t&&o.removeEventListener(this.rootNode,e,t),delete this.eventListeners[e]}r.visibleMenu==this&&(r.visibleMenu=void 0)},r.prototype._onExpandItem=function(e){var t=this,i=e==this.expandedItem,n=this.expandedItem;if(n&&(n.ul.style.height="0",n.ul.style.padding="",setTimeout(function(){t.expandedItem!=n&&(n.ul.style.display="",o.removeClassName(n.ul.parentNode,"jsoneditor-selected"))},300),this.expandedItem=void 0),!i){var r=e.ul;r.style.display="block";r.clientHeight;setTimeout(function(){if(t.expandedItem==e){for(var i=0,n=0;n0;){var n=t.shift();if("number"==typeof n){if("array"!==i.type)throw new Error("Cannot get child node at index "+n+": node is no array");i=i.childs[n]}else{if("object"!==i.type)throw new Error("Cannot get child node "+n+": node is no object");i=i.childs.filter(function(e){return e.field===n})[0]}}return i},n.prototype.findParents=function(){for(var e=[],t=this.parent;t;)e.unshift(t),t=t.parent;return e},n.prototype.setError=function(e,t){this.error=e,this.errorChild=t,this.dom&&this.dom.tr&&this.updateError()},n.prototype.updateError=function(){var e=this.error,t=this.dom.tdError;if(e&&this.dom&&this.dom.tr&&!t){t||(t=document.createElement("td"),this.dom.tdError=t,this.dom.tdValue.parentNode.appendChild(t));var i=document.createElement("div");i.className="jsoneditor-popover jsoneditor-right",i.appendChild(document.createTextNode(e.message));var n=document.createElement("button");n.type="button",n.className="jsoneditor-schema-error",n.appendChild(i),n.onmouseover=n.onfocus=function(){for(var e=["right","above","below","left"],t=0;tthis.visibleChilds){var r=this.childs[this.visibleChilds-1];this.insertBefore(e,r)}else this.appendChild(e);else this.insertBefore(e,t);i&&i.removeChild(n)}},n.prototype.moveTo=function(e,t){if(e.parent==this){this.childs.indexOf(e)0&&(e=this.childs.filter(function(e){return-1!==i.indexOf(e.field)}).map(function(e){return{node:e,error:{message:c("duplicateKey")+' "'+e.field+'"'}}}))}if(this.childs)for(var n=0;n0&&(e=e.concat(o))}return e},n.prototype.clearDom=function(){this.dom={}},n.prototype.getDom=function(){var e=this.dom;if(e.tr)return e.tr;if(this._updateEditability(),e.tr=document.createElement("tr"),e.tr.node=this,"tree"===this.editor.options.mode){var t=document.createElement("td");if(this.editable.field&&this.parent){var i=document.createElement("button");i.type="button",e.drag=i,i.className="jsoneditor-dragarea",i.title=c("drag"),t.appendChild(i)}e.tr.appendChild(t);var n=document.createElement("td"),r=document.createElement("button");r.type="button",e.menu=r,r.className="jsoneditor-contextmenu",r.title=c("actionsMenu"),n.appendChild(e.menu),e.tr.appendChild(n)}var o=document.createElement("td");return e.tr.appendChild(o),e.tree=this._createDomTree(),o.appendChild(e.tree),this.updateDom({updateIndexes:!0}),e.tr},n.prototype.isVisible=function(){return this.dom&&this.dom.tr&&this.dom.tr.parentNode||!1},n.onDragStart=function(e,t){if(!Array.isArray(e))return n.onDragStart([e],t);if(0!==e.length){var i=e[0],r=e[e.length-1],o=n.getNodeFromTarget(t.target),s=r.nextSibling(),a=i.editor,c=l.getAbsoluteTop(o.dom.tr)-l.getAbsoluteTop(i.dom.tr);a.mousemove||(a.mousemove=l.addEventListener(window,"mousemove",function(t){n.onDrag(e,t)})),a.mouseup||(a.mouseup=l.addEventListener(window,"mouseup",function(t){n.onDragEnd(e,t)})),a.highlighter.lock(),a.drag={oldCursor:document.body.style.cursor,oldSelection:a.getDomSelection(),oldBeforeNode:s,mouseX:t.pageX,offsetY:c,level:i.getLevel()},document.body.style.cursor="move",t.preventDefault()}},n.onDrag=function(e,t){if(!Array.isArray(e))return n.onDrag([e],t);if(0!==e.length){var i,r,o,s,a,c,d,u,f,p,m,g,v,w,y=e[0].editor,A=t.pageY-y.drag.offsetY,C=t.pageX,E=!1,b=e[0];if(i=b.dom.tr,f=l.getAbsoluteTop(i),g=i.offsetHeight,Ap+g&&(d=void 0)),d&&(e.forEach(function(e){d.parent.moveBefore(e,d)}),E=!0)}else{var F=e[e.length-1];if(a=F.expanded&&F.append?F.append.getDom():F.dom.tr,s=a?a.nextSibling:void 0){m=l.getAbsoluteTop(s),o=s;do{u=n.getNodeFromTarget(o),o&&(v=o.nextSibling?l.getAbsoluteTop(o.nextSibling):0,w=o?v-m:0,u&&u.parent.childs.length==e.length&&u.parent.childs[e.length-1]==F&&(f+=27),o=o.nextSibling)}while(o&&A>f+w);if(u&&u.parent){var x=C-y.drag.mouseX,S=Math.round(x/24/2),$=y.drag.level+S,D=u.getLevel();for(r=u.dom.tr&&u.dom.tr.previousSibling;D<$&&r;){d=n.getNodeFromTarget(r);if(e.some(function(e){return e===d||d.isDescendantOf(e)}));else{if(!(d instanceof h))break;var k=d.parent.childs;if(k.length==e.length&&k[e.length-1]==F)break;u=n.getNodeFromTarget(r),D=u.getLevel()}r=r.previousSibling}u instanceof h&&!u.isVisible()&&u.parent.showMore.isVisible()&&(u=u._nextNode()),u&&u.dom.tr&&a.nextSibling!=u.dom.tr&&(e.forEach(function(e){u.parent.moveBefore(e,u)}),E=!0)}}}E&&(y.drag.mouseX=C,y.drag.level=b.getLevel()),y.startAutoScroll(A),t.preventDefault()}},n.onDragEnd=function(e,t){if(!Array.isArray(e))return n.onDrag([e],t);if(0!==e.length){var i=e[0],r=i.editor,o=i.parent,s=o.childs.indexOf(i),a=o.childs[s+e.length]||o.append;e[0]&&e[0].dom.menu.focus();var c={nodes:e,oldSelection:r.drag.oldSelection,newSelection:r.getDomSelection(),oldBeforeNode:r.drag.oldBeforeNode,newBeforeNode:a};c.oldBeforeNode!=c.newBeforeNode&&r._onAction("moveNodes",c),document.body.style.cursor=r.drag.oldCursor,r.highlighter.unlock(),e.forEach(function(e){t.target!==e.dom.drag&&t.target!==e.dom.menu&&r.highlighter.unhighlight()}),delete r.drag,r.mousemove&&(l.removeEventListener(window,"mousemove",r.mousemove),delete r.mousemove),r.mouseup&&(l.removeEventListener(window,"mouseup",r.mouseup),delete r.mouseup),r.stopAutoScroll(),t.preventDefault()}},n.prototype.isDescendantOf=function(e){for(var t=this.parent;t;){if(t==e)return!0;t=t.parent}return!1},n.prototype._createDomField=function(){return document.createElement("div")},n.prototype.setHighlight=function(e){this.dom.tr&&(e?l.addClassName(this.dom.tr,"jsoneditor-highlight"):l.removeClassName(this.dom.tr,"jsoneditor-highlight"),this.append&&this.append.setHighlight(e),this.childs&&this.childs.forEach(function(t){ -t.setHighlight(e)}))},n.prototype.setSelected=function(e,t){this.selected=e,this.dom.tr&&(e?l.addClassName(this.dom.tr,"jsoneditor-selected"):l.removeClassName(this.dom.tr,"jsoneditor-selected"),t?l.addClassName(this.dom.tr,"jsoneditor-first"):l.removeClassName(this.dom.tr,"jsoneditor-first"),this.append&&this.append.setSelected(e),this.showMore&&this.showMore.setSelected(e),this.childs&&this.childs.forEach(function(t){t.setSelected(e)}))},n.prototype.updateValue=function(e){this.value=e,this.updateDom()},n.prototype.updateField=function(e){this.field=e,this.updateDom()},n.prototype.updateDom=function(e){var t=this.dom.tree;t&&(t.style.marginLeft=24*this.getLevel()+"px");var i=this.dom.field;if(i){this.fieldEditable?(i.contentEditable=this.editable.field,i.spellcheck=!1,i.className="jsoneditor-field"):i.className="jsoneditor-readonly";var n;n=void 0!=this.index?this.index:void 0!=this.field?this.field:this._hasChilds()?this.type:"",i.innerHTML=this._escapeHTML(n),this._updateSchema()}var r=this.dom.value;if(r){var o=this.childs?this.childs.length:0;"array"==this.type?(r.innerHTML="["+o+"]",l.addClassName(this.dom.tr,"jsoneditor-expandable")):"object"==this.type?(r.innerHTML="{"+o+"}",l.addClassName(this.dom.tr,"jsoneditor-expandable")):(r.innerHTML=this._escapeHTML(this.value),l.removeClassName(this.dom.tr,"jsoneditor-expandable"))}this._updateDomField(),this._updateDomValue(),e&&!0===e.updateIndexes&&this._updateDomIndexes(),e&&!0===e.recurse&&this.childs&&this.childs.forEach(function(t){t.updateDom(e)}),this.error&&this.updateError(),this.append&&this.append.updateDom(),this.showMore&&this.showMore.updateDom()},n.prototype._updateSchema=function(){this.editor&&this.editor.options&&(this.schema=this.editor.options.schema?n._findSchema(this.editor.options.schema,this.getPath()):null,this.schema?this.enum=n._findEnum(this.schema):delete this.enum)},n._findEnum=function(e){if(e.enum)return e.enum;var t=e.oneOf||e.anyOf||e.allOf;if(t){var i=t.filter(function(e){return e.enum});if(i.length>0)return i[0].enum}return null},n._findSchema=function(e,t){var i=e,r=i,o=e.oneOf||e.anyOf||e.allOf;o||(o=[e]);for(var s=0;s0?this.editor.multiselection.nodes:[this],A=y[0],C=y[y.length-1];if(13==u){if(f==this.dom.value)this.editable.value&&!e.ctrlKey||l.isUrl(this.value)&&(window.open(this.value,"_blank"),v=!0);else if(f==this.dom.expand){var E=this._hasChilds();if(E){var b=e.ctrlKey;this._onExpand(b),f.focus(),v=!0}}}else if(68==u)p&&w&&(n.onDuplicate(y),v=!0);else if(69==u)p&&(this._onExpand(m),f.focus(),v=!0);else if(77==u&&w)p&&(this.showContextMenu(f),v=!0);else if(46==u&&w)p&&(n.onRemove(y),v=!0);else if(45==u&&w)p&&!m?(this._onInsertBefore(),v=!0):p&&m&&(this._onInsertAfter(),v=!0);else if(35==u){if(g){var F=this._lastNode();F&&F.focus(n.focusElement||this._getElementName(f)),v=!0}}else if(36==u){if(g){var x=this._firstNode();x&&x.focus(n.focusElement||this._getElementName(f)),v=!0}}else if(37==u){if(g&&!m){var S=this._previousElement(f);S&&this.focus(this._getElementName(S)),v=!0}else if(g&&m&&w){if(C.expanded){var $=C.getAppendDom();r=$?$.nextSibling:void 0}else{var D=C.getDom();r=D.nextSibling}r&&(i=n.getNodeFromTarget(r),o=r.nextSibling,_=n.getNodeFromTarget(o),i&&i instanceof h&&1!=C.parent.childs.length&&_&&_.parent&&(s=this.editor.getDomSelection(),a=C.nextSibling(),y.forEach(function(e){_.parent.moveBefore(e,_)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:y,oldBeforeNode:a,newBeforeNode:_,oldSelection:s,newSelection:this.editor.getDomSelection()})))}}else if(38==u)g&&!m?(t=this._previousNode(),t&&(this.editor.deselect(!0),t.focus(n.focusElement||this._getElementName(f))),v=!0):!g&&p&&m&&w?(t=this._previousNode(),t&&(d=this.editor.multiselection,d.start=d.start||this,d.end=t,c=this.editor._findTopLevelNodes(d.start,d.end),this.editor.select(c),t.focus("field")),v=!0):g&&m&&w&&(t=A._previousNode(),t&&t.parent&&(s=this.editor.getDomSelection(),a=C.nextSibling(),y.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:y,oldBeforeNode:a,newBeforeNode:t,oldSelection:s,newSelection:this.editor.getDomSelection()})),v=!0);else if(39==u){if(g&&!m){var k=this._nextElement(f);k&&this.focus(this._getElementName(k)),v=!0}else if(g&&m&&w){D=A.getDom();var B=D.previousSibling;B&&(t=n.getNodeFromTarget(B))&&t.parent&&!t.isVisible()&&(s=this.editor.getDomSelection(),a=C.nextSibling(),y.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:y,oldBeforeNode:a,newBeforeNode:t,oldSelection:s,newSelection:this.editor.getDomSelection()}))}}else if(40==u)if(g&&!m)i=this._nextNode(),i&&(this.editor.deselect(!0),i.focus(n.focusElement||this._getElementName(f))),v=!0;else if(!g&&p&&m&&w)i=this._nextNode(),i&&(d=this.editor.multiselection,d.start=d.start||this,d.end=i,c=this.editor._findTopLevelNodes(d.start,d.end),this.editor.select(c),i.focus("field")),v=!0;else if(g&&m&&w){i=C.expanded?C.append?C.append._nextNode():void 0:C._nextNode(),i&&!i.isVisible()&&(i=i.parent.showMore),i&&i instanceof h&&(i=C);var _=i&&(i._nextNode()||i.parent.append);_&&_.parent&&(s=this.editor.getDomSelection(),a=C.nextSibling(),y.forEach(function(e){_.parent.moveBefore(e,_)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:y,oldBeforeNode:a,newBeforeNode:_,oldSelection:s,newSelection:this.editor.getDomSelection()})),v=!0}v&&(e.preventDefault(),e.stopPropagation())},n.prototype._onExpand=function(e){if(e){var t=this.dom.tr.parentNode,i=t.parentNode,n=i.scrollTop;i.removeChild(t)}this.expanded?this.collapse(e):this.expand(e),e&&(i.appendChild(t),i.scrollTop=n)},n.onRemove=function(e){if(!Array.isArray(e))return n.onRemove([e]);if(e&&e.length>0){var t=e[0],i=t.parent,r=t.editor,o=t.getIndex();r.highlighter.unhighlight();var s=r.getDomSelection();n.blurNodes(e);var a=r.getDomSelection();e.forEach(function(e){e.parent._remove(e)}),r._onAction("removeNodes",{nodes:e.slice(0),parent:i,index:o,oldSelection:s,newSelection:a})}},n.onDuplicate=function(e){if(!Array.isArray(e))return n.onDuplicate([e]);if(e&&e.length>0){var t=e[e.length-1],i=t.parent,r=t.editor;r.deselect(r.multiselection.nodes);var o=r.getDomSelection(),s=t,a=e.map(function(e){var t=e.clone();return i.insertAfter(t,s),s=t,t});1===e.length?a[0].focus():r.select(a);var l=r.getDomSelection();r._onAction("duplicateNodes",{afterNode:t,nodes:a,parent:i,oldSelection:o,newSelection:l})}},n.prototype._onInsertBefore=function(e,t,i){var r=this.editor.getDomSelection(),o=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});o.expand(!0),this.parent.insertBefore(o,this),this.editor.highlighter.unhighlight(),o.focus("field");var s=this.editor.getDomSelection();this.editor._onAction("insertBeforeNodes",{nodes:[o],beforeNode:this,parent:this.parent,oldSelection:r,newSelection:s})},n.prototype._onInsertAfter=function(e,t,i){var r=this.editor.getDomSelection(),o=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});o.expand(!0),this.parent.insertAfter(o,this),this.editor.highlighter.unhighlight(),o.focus("field");var s=this.editor.getDomSelection();this.editor._onAction("insertAfterNodes",{nodes:[o],afterNode:this,parent:this.parent,oldSelection:r,newSelection:s})},n.prototype._onAppend=function(e,t,i){var r=this.editor.getDomSelection(),o=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});o.expand(!0),this.parent.appendChild(o),this.editor.highlighter.unhighlight(),o.focus("field");var s=this.editor.getDomSelection();this.editor._onAction("appendNodes",{nodes:[o],parent:this.parent,oldSelection:r,newSelection:s})},n.prototype._onChangeType=function(e){var t=this.type;if(e!=t){var i=this.editor.getDomSelection();this.changeType(e);var n=this.editor.getDomSelection();this.editor._onAction("changeType",{node:this,oldType:t,newType:e,oldSelection:i,newSelection:n})}},n.prototype.sort=function(e){if(this._hasChilds()){var t="desc"==e?-1:1,i="array"==this.type?"value":"field";this.hideChilds();var n=this.childs,o=this.sortOrder;this.childs=this.childs.concat(),this.childs.sort(function(e,n){return t*r(e[i],n[i])}),this.sortOrder=1==t?"asc":"desc",this._updateDomIndexes(),this.editor._onAction("sort",{node:this,oldChilds:n,oldSort:o,newChilds:this.childs,newSort:this.sortOrder}),this.showChilds()}},n.prototype.getAppendDom=function(){return this.append||(this.append=new h(this.editor),this.append.setParent(this)),this.append.getDom()},n.prototype.getShowMoreDom=function(){return this.showMore||(this.showMore=new d(this.editor,this)),this.showMore.getDom()},n.getNodeFromTarget=function(e){for(;e;){if(e.node)return e.node;e=e.parentNode}},n.blurNodes=function(e){if(!Array.isArray(e))return void n.blurNodes([e]);var t=e[0],i=t.parent,r=t.getIndex();i.childs[r+e.length]?i.childs[r+e.length].focus():i.childs[r-1]?i.childs[r-1].focus():i.focus()},n.prototype.nextSibling=function(){var e=this.parent.childs.indexOf(this);return this.parent.childs[e+1]||this.parent.append},n.prototype._previousNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t;do{i=i.previousSibling,e=n.getNodeFromTarget(i)}while(i&&e&&e instanceof h&&!e.isVisible())}return e},n.prototype._nextNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t;do{i=i.nextSibling,e=n.getNodeFromTarget(i)}while(i&&e&&e instanceof h&&!e.isVisible())}return e},n.prototype._firstNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t.parentNode.firstChild;e=n.getNodeFromTarget(i)}return e},n.prototype._lastNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t.parentNode.lastChild;for(e=n.getNodeFromTarget(i);i&&e&&!e.isVisible();)i=i.previousSibling,e=n.getNodeFromTarget(i)}return e},n.prototype._previousElement=function(e){var t=this.dom;switch(e){case t.value:if(this.fieldEditable)return t.field;case t.field:if(this._hasChilds())return t.expand;case t.expand:return t.menu;case t.menu:if(t.drag)return t.drag;default:return null}},n.prototype._nextElement=function(e){var t=this.dom;switch(e){case t.drag:return t.menu;case t.menu:if(this._hasChilds())return t.expand;case t.expand:if(this.fieldEditable)return t.field;case t.field:if(!this._hasChilds())return t.value;default:return null}},n.prototype._getElementName=function(e){var t=this.dom;for(var i in t)if(t.hasOwnProperty(i)&&t[i]==e)return i;return null},n.prototype._hasChilds=function(){return"array"==this.type||"object"==this.type},n.TYPE_TITLES={auto:c("autoType"),object:c("objectType"),array:c("arrayType"),string:c("stringType")},n.prototype.addTemplates=function(e,t){var i=this,n=i.editor.options.templates;if(null!=n){n.length&&e.push({type:"separator"});var r=function(e,t){i._onAppend(e,t)},o=function(e,t){i._onInsertBefore(e,t)};n.forEach(function(i){e.push({text:i.text,className:i.className||"jsoneditor-type-object",title:i.title,click:t?r.bind(this,i.field,i.value):o.bind(this,i.field,i.value)})})}},n.prototype.showContextMenu=function(e,t){var i=this,r=n.TYPE_TITLES,s=[];if(this.editable.value&&s.push({text:c("type"),title:c("typeTitle"),className:"jsoneditor-type-"+this.type,submenu:[{text:c("auto"),className:"jsoneditor-type-auto"+("auto"==this.type?" jsoneditor-selected":""),title:r.auto,click:function(){i._onChangeType("auto")}},{text:c("array"),className:"jsoneditor-type-array"+("array"==this.type?" jsoneditor-selected":""),title:r.array,click:function(){i._onChangeType("array")}},{text:c("object"),className:"jsoneditor-type-object"+("object"==this.type?" jsoneditor-selected":""),title:r.object,click:function(){i._onChangeType("object")}},{text:c("string"),className:"jsoneditor-type-string"+("string"==this.type?" jsoneditor-selected":""),title:r.string,click:function(){i._onChangeType("string")}}]}),this._hasChilds()){var a="asc"==this.sortOrder?"desc":"asc";s.push({text:c("sort"),title:c("sortTitle")+this.type,className:"jsoneditor-sort-"+a,click:function(){i.sort(a)},submenu:[{text:c("ascending"),className:"jsoneditor-sort-asc",title:c("ascendingTitle",{type:this.type}),click:function(){i.sort("asc")}},{text:c("descending"),className:"jsoneditor-sort-desc",title:c("descendingTitle",{type:this.type}),click:function(){i.sort("desc")}}]})}if(this.parent&&this.parent._hasChilds()){s.length&&s.push({type:"separator"});var l=i.parent.childs;if(i==l[l.length-1]){var h=[{text:c("auto"),className:"jsoneditor-type-auto",title:r.auto,click:function(){i._onAppend("","","auto")}},{text:c("array"),className:"jsoneditor-type-array",title:r.array,click:function(){i._onAppend("",[])}},{text:c("object"),className:"jsoneditor-type-object",title:r.object,click:function(){i._onAppend("",{})}},{text:c("string"),className:"jsoneditor-type-string",title:r.string,click:function(){i._onAppend("","","string")}}];i.addTemplates(h,!0),s.push({text:c("appendText"),title:c("appendTitle"),submenuTitle:c("appendSubmenuTitle"),className:"jsoneditor-append",click:function(){i._onAppend("","","auto")},submenu:h})}var d=[{text:c("auto"),className:"jsoneditor-type-auto",title:r.auto,click:function(){i._onInsertBefore("","","auto")}},{text:c("array"),className:"jsoneditor-type-array",title:r.array,click:function(){i._onInsertBefore("",[])}},{text:c("object"),className:"jsoneditor-type-object",title:r.object,click:function(){i._onInsertBefore("",{})}},{text:c("string"),className:"jsoneditor-type-string",title:r.string,click:function(){i._onInsertBefore("","","string")}}];i.addTemplates(d,!1),s.push({text:c("insert"),title:c("insertTitle"),submenuTitle:c("insertSub"),className:"jsoneditor-insert",click:function(){i._onInsertBefore("","","auto")},submenu:d}),this.editable.field&&(s.push({text:c("duplicateText"),title:c("duplicateField"),className:"jsoneditor-duplicate",click:function(){n.onDuplicate(i)}}),s.push({text:c("removeText"),title:c("removeField"),className:"jsoneditor-remove",click:function(){n.onRemove(i)}}))}new o(s,{close:t}).show(e,this.editor.content)},n.prototype._getType=function(e){return e instanceof Array?"array":e instanceof Object?"object":"string"==typeof e&&"string"!=typeof this._stringCast(e)?"string":"auto"},n.prototype._stringCast=function(e){var t=e.toLowerCase(),i=Number(e),n=parseFloat(e);return""==e?"":"null"==t?null:"true"==t||"false"!=t&&(isNaN(i)||isNaN(n)?e:i)},n.prototype._escapeHTML=function(e){if("string"!=typeof e)return String(e);var t=String(e).replace(/&/g,"&").replace(//g,">").replace(/ /g,"  ").replace(/^ /," ").replace(/ $/," "),i=JSON.stringify(t),n=i.substring(1,i.length-1);return!0===this.editor.options.escapeUnicode&&(n=l.escapeUnicodeChars(n)),n},n.prototype._unescapeHTML=function(e){var t='"'+this._escapeJSON(e)+'"';return l.parse(t).replace(/</g,"<").replace(/>/g,">").replace(/ |\u00A0/g," ").replace(/&/g,"&")},n.prototype._escapeJSON=function(e){for(var t="",i=0;im)return 1}for(var g=0,v=Math.max(u.length,f.length);gr)return 1}return 0}},function(e,t,i){"use strict";function n(e){function t(e){this.editor=e,this.dom={}}return t.prototype=new e,t.prototype.getDom=function(){var e=this.dom;if(e.tr)return e.tr;this._updateEditability();var t=document.createElement("tr");if(t.className="jsoneditor-append",t.node=this,e.tr=t,"tree"===this.editor.options.mode){e.tdDrag=document.createElement("td");var i=document.createElement("td");e.tdMenu=i;var n=document.createElement("button");n.type="button",n.className="jsoneditor-contextmenu",n.title="Click to open the actions menu (Ctrl+M)",e.menu=n,i.appendChild(e.menu)}var r=document.createElement("td"),o=document.createElement("div");return o.innerHTML="("+s("empty")+")",o.className="jsoneditor-readonly",r.appendChild(o),e.td=r,e.text=o,this.updateDom(),t},t.prototype.updateDom=function(e){var t=this.dom,i=t.td;i&&(i.style.paddingLeft=24*this.getLevel()+26+"px");var n=t.text;n&&(n.innerHTML="("+s("empty")+" "+this.parent.type+")");var r=t.tr;this.isVisible()?t.tr.firstChild||(t.tdDrag&&r.appendChild(t.tdDrag),t.tdMenu&&r.appendChild(t.tdMenu),r.appendChild(i)):t.tr.firstChild&&(t.tdDrag&&r.removeChild(t.tdDrag),t.tdMenu&&r.removeChild(t.tdMenu),r.removeChild(i))},t.prototype.isVisible=function(){return 0==this.parent.childs.length},t.prototype.showContextMenu=function(t,i){var n=this,r=e.TYPE_TITLES,a=[{text:s("auto"),className:"jsoneditor-type-auto",title:r.auto,click:function(){n._onAppend("","","auto")}},{text:s("array"),className:"jsoneditor-type-array",title:r.array,click:function(){n._onAppend("",[])}},{text:s("object"),className:"jsoneditor-type-object",title:r.object,click:function(){n._onAppend("",{})}},{text:s("string"),className:"jsoneditor-type-string",title:r.string,click:function(){n._onAppend("","","string")}}];n.addTemplates(a,!0);var l=[{text:s("appendText"),title:s("appendTitleAuto"),submenuTitle:s("appendSubmenuTitle"),className:"jsoneditor-insert",click:function(){n._onAppend("","","auto")},submenu:a}];new o(l,{close:i}).show(t,this.editor.content)},t.prototype.onEvent=function(e){var t=e.type,i=e.target||e.srcElement,n=this.dom;if(i==n.menu&&("mouseover"==t?this.editor.highlighter.highlight(this.parent):"mouseout"==t&&this.editor.highlighter.unhighlight()),"click"==t&&i==n.menu){var o=this.editor.highlighter;o.highlight(this.parent),o.lock(),r.addClassName(n.menu,"jsoneditor-selected"),this.showContextMenu(n.menu,function(){r.removeClassName(n.menu,"jsoneditor-selected"),o.unlock(),o.unhighlight()})}"keydown"==t&&this.onKeyDown(e)},t}var r=i(54),o=i(57),s=i(58).translate;e.exports=n},function(e,t,i){"use strict";function n(e){function t(e,t){this.editor=e,this.parent=t,this.dom={}}return t.prototype=new e,t.prototype.getDom=function(){if(this.dom.tr)return this.dom.tr;if(this._updateEditability(),!this.dom.tr){var e=this,t=this.parent,i=document.createElement("a");i.appendChild(document.createTextNode(r("showMore"))),i.href="#",i.onclick=function(i){return t.visibleChilds=Math.floor(t.visibleChilds/t.MAX_VISIBLE_CHILDS+1)*t.MAX_VISIBLE_CHILDS,e.updateDom(),t.showChilds(),i.preventDefault(),!1};var n=document.createElement("a");n.appendChild(document.createTextNode(r("showAll"))),n.href="#",n.onclick=function(i){return t.visibleChilds=1/0,e.updateDom(),t.showChilds(),i.preventDefault(),!1};var o=document.createElement("div"),s=document.createTextNode(this._getShowMoreText());o.className="jsoneditor-show-more",o.appendChild(s),o.appendChild(i),o.appendChild(document.createTextNode(". ")),o.appendChild(n),o.appendChild(document.createTextNode(". "));var a=document.createElement("td");a.appendChild(o);var l=document.createElement("tr");l.appendChild(document.createElement("td")),l.appendChild(document.createElement("td")),l.appendChild(a),l.className="jsoneditor-show-more",this.dom.tr=l,this.dom.moreContents=o,this.dom.moreText=s}return this.updateDom(),this.dom.tr},t.prototype.updateDom=function(e){if(this.isVisible()){if(this.dom.tr.node=this.parent.childs[this.parent.visibleChilds],!this.dom.tr.parentNode){var t=this.parent._getNextTr();t&&t.parentNode.insertBefore(this.dom.tr,t)}this.dom.moreText.nodeValue=this._getShowMoreText(),this.dom.moreContents.style.marginLeft=24*(this.getLevel()+1)+"px"}else this.dom.tr&&this.dom.tr.parentNode&&this.dom.tr.parentNode.removeChild(this.dom.tr)},t.prototype._getShowMoreText=function(){return r("showMoreStatus",{visibleChilds:this.parent.visibleChilds,totalChilds:this.parent.childs.length})+" "},t.prototype.isVisible=function(){return this.parent.expanded&&this.parent.childs.length>this.parent.visibleChilds},t.prototype.onEvent=function(e){"keydown"===e.type&&this.onKeyDown(e)},t}var r=i(58).translate;e.exports=n},function(e,t,i){"use strict";function n(e,t,i,n){for(var o={code:{text:"Code",title:"Switch to code highlighter",click:function(){n("code")}},form:{text:"Form",title:"Switch to form editor",click:function(){n("form")}},text:{text:"Text",title:"Switch to plain text editor",click:function(){n("text")}},tree:{text:"Tree",title:"Switch to tree editor",click:function(){n("tree")}},view:{text:"View",title:"Switch to tree view",click:function(){n("view")}}},s=[],a=0;a/g,">"),a.getBoundingClientRect().right}e=e||{},e.confirmKeys=e.confirmKeys||[39,35,9],e.caseSensitive=e.caseSensitive||!1;var n="",r="",o=document.createElement("div");o.style.position="relative",o.style.outline="0",o.style.border="0",o.style.margin="0",o.style.padding="0";var s=document.createElement("div");s.className="autocomplete dropdown",s.style.position="absolute",s.style.visibility="hidden";var a,l,c={onArrowDown:function(){},onArrowUp:function(){},onEnter:function(){},onTab:function(){},startFrom:0,options:[],element:null,elementHint:null,elementStyle:null,wrapper:o,show:function(e,t,i){this.startFrom=t,this.wrapper.remove(),this.elementHint&&(this.elementHint.remove(),this.elementHint=null),""==n&&(n=window.getComputedStyle(e).getPropertyValue("font-size")),""==r&&(r=window.getComputedStyle(e).getPropertyValue("font-family"));e.getBoundingClientRect().right,e.getBoundingClientRect().left;s.style.marginLeft="0",s.style.marginTop=e.getBoundingClientRect().height+"px",this.options=i,this.element!=e&&(this.element=e,this.elementStyle={zIndex:this.element.style.zIndex,position:this.element.style.position,backgroundColor:this.element.style.backgroundColor,borderColor:this.element.style.borderColor}),this.element.style.zIndex=3,this.element.style.position="relative",this.element.style.backgroundColor="transparent",this.element.style.borderColor="transparent",this.elementHint=e.cloneNode(),this.elementHint.className="autocomplete hint",this.elementHint.style.zIndex=2,this.elementHint.style.position="absolute",this.elementHint.onfocus=function(){this.element.focus()}.bind(this),this.element.addEventListener&&(this.element.removeEventListener("keydown",d),this.element.addEventListener("keydown",d,!1),this.element.removeEventListener("blur",u),this.element.addEventListener("blur",u,!1)),o.appendChild(this.elementHint),o.appendChild(s),e.parentElement.appendChild(o),this.repaint(e)},setText:function(e){this.element.innerText=e},getText:function(){return this.element.innerText},hideDropDown:function(){this.wrapper.remove(),this.elementHint&&(this.elementHint.remove(),this.elementHint=null,h.hide(),this.element.style.zIndex=this.elementStyle.zIndex,this.element.style.position=this.elementStyle.position,this.element.style.backgroundColor=this.elementStyle.backgroundColor,this.element.style.borderColor=this.elementStyle.borderColor)},repaint:function(t){var n=t.innerText;n=n.replace("\n","");var r=(this.startFrom,this.options,this.options.length),o=n.substring(this.startFrom);l=n.substring(0,this.startFrom);for(var a=0;a"+o[p].substring(i.length)+"",n.push(m),t.appendChild(m)}0!==n.length&&(1===n.length&&(i.toLowerCase()===n[0].__hint.toLowerCase()&&!e.caseSensitive||i===n[0].__hint&&e.caseSensitive)||n.length<2||(c.highlight(0),u>3*f?(t.style.maxHeight=u+"px",t.style.top="",t.style.bottom="100%"):(t.style.top="100%",t.style.bottom="",t.style.maxHeight=f+"px"),t.style.visibility="visible"))},highlight:function(e){-1!=o&&n[o]&&(n[o].className="item"),n[e].className="item hover",o=e},move:function(e){return"hidden"===t.style.visibility?"":r+e===-1||r+e===n.length?n[r].__hint:(r+=e,c.highlight(r),n[r].__hint)},onmouseselection:function(){}};return c}(s,c),d=function(i){i=i||window.event;var n=i.keyCode;if(null!=this.elementHint&&33!=n&&34!=n){if(27==n)return c.hideDropDown(),c.element.focus(),i.preventDefault(),void i.stopPropagation();var r=this.element.innerText;r=r.replace("\n","");this.startFrom;if(e.confirmKeys.indexOf(n)>=0)return 9==n&&0==this.elementHint.innerText.length&&c.onTab(),void(this.elementHint.innerText.length>0&&this.element.innerText!=this.elementHint.realInnerText&&(this.element.innerText=this.elementHint.realInnerText,c.hideDropDown(),t(this.element),9==n&&(c.element.focus(),i.preventDefault(),i.stopPropagation())));if(13!=n){if(40==n){var o=r.substring(this.startFrom),a=h.move(1);return""==a&&c.onArrowDown(),this.elementHint.innerText=l+o+a.substring(o.length),this.elementHint.realInnerText=l+a,i.preventDefault(),void i.stopPropagation()}if(38==n){var o=r.substring(this.startFrom),a=h.move(-1);return""==a&&c.onArrowUp(),this.elementHint.innerText=l+o+a.substring(o.length),this.elementHint.realInnerText=l+a,i.preventDefault(),void i.stopPropagation()}}else if(0==this.elementHint.innerText.length)c.onEnter();else{var d="hidden"==s.style.visibility;if(h.hide(),d)return c.hideDropDown(),c.element.focus(),void c.onEnter();this.element.innerText=this.elementHint.realInnerText,c.hideDropDown(),t(this.element),i.preventDefault(),i.stopPropagation()}}}.bind(c),u=function(e){c.hideDropDown()}.bind(c);return h.onmouseselection=function(e,i){i.element.innerText=i.elementHint.innerText=l+e,i.hideDropDown(),window.setTimeout(function(){i.element.focus(),t(i.element)},1)},c}e.exports=i},function(e,t,i){"use strict";var n=i(67),r=i(64),o=i(54),s={};s.create=function(e,t){t=t||{},void 0===t.statusBar&&(t.statusBar=!0),this.options=t,t.indentation?this.indentation=Number(t.indentation):this.indentation=2;var s=t.ace?t.ace:n;if(this.mode="code"==t.mode?"code":"text","code"==this.mode&&void 0===s&&(this.mode="text",console.warn("Failed to load Ace editor, falling back to plain text mode. Please use a JSONEditor bundle including Ace, or pass Ace as via the configuration option `ace`.")),this.theme=t.theme||"ace/theme/jsoneditor","ace/theme/jsoneditor"===this.theme&&s)try{i(73)}catch(e){console.error(e)}t.onTextSelectionChange&&this.onTextSelectionChange(t.onTextSelectionChange);var a=this;this.container=e,this.dom={},this.aceEditor=void 0,this.textarea=void 0,this.validateSchema=null,this._debouncedValidate=o.debounce(this.validate.bind(this),this.DEBOUNCE_INTERVAL),this.width=e.clientWidth,this.height=e.clientHeight,this.frame=document.createElement("div"),this.frame.className="jsoneditor jsoneditor-mode-"+this.options.mode,this.frame.onclick=function(e){e.preventDefault()},this.frame.onkeydown=function(e){a._onKeyDown(e)},this.menu=document.createElement("div"),this.menu.className="jsoneditor-menu",this.frame.appendChild(this.menu);var l=document.createElement("button");l.type="button",l.className="jsoneditor-format",l.title="Format JSON data, with proper indentation and line feeds (Ctrl+\\)",this.menu.appendChild(l),l.onclick=function(){try{a.format(),a._onChange()}catch(e){a._onError(e)}};var c=document.createElement("button");c.type="button",c.className="jsoneditor-compact",c.title="Compact JSON data, remove all whitespaces (Ctrl+Shift+\\)",this.menu.appendChild(c),c.onclick=function(){try{a.compact(),a._onChange()}catch(e){a._onError(e)}};var h=document.createElement("button");h.type="button",h.className="jsoneditor-repair",h.title="Repair JSON: fix quotes and escape characters, remove comments and JSONP notation, turn JavaScript objects into JSON.",this.menu.appendChild(h),h.onclick=function(){try{a.repair(),a._onChange()}catch(e){a._onError(e)}},this.options&&this.options.modes&&this.options.modes.length&&(this.modeSwitcher=new r(this.menu,this.options.modes,this.options.mode,function(e){a.setMode(e),a.modeSwitcher.focus()}));var d={},u=this.options.onEditable&&typeof("function"===this.options.onEditable)&&!this.options.onEditable(d);if(this.content=document.createElement("div"),this.content.className="jsoneditor-outer",this.frame.appendChild(this.content),this.container.appendChild(this.frame),"code"==this.mode){this.editorDom=document.createElement("div"),this.editorDom.style.height="100%",this.editorDom.style.width="100%",this.content.appendChild(this.editorDom);var f=s.edit(this.editorDom);f.$blockScrolling=1/0,f.setTheme(this.theme),f.setOptions({readOnly:u}),f.setShowPrintMargin(!1),f.setFontSize(13),f.getSession().setMode("ace/mode/json"),f.getSession().setTabSize(this.indentation),f.getSession().setUseSoftTabs(!0),f.getSession().setUseWrapMode(!0),f.commands.bindKey("Ctrl-L",null),f.commands.bindKey("Command-L",null),this.aceEditor=f,this.hasOwnProperty("editor")||Object.defineProperty(this,"editor",{get:function(){return console.warn('Property "editor" has been renamed to "aceEditor".'),a.aceEditor},set:function(e){console.warn('Property "editor" has been renamed to "aceEditor".'),a.aceEditor=e}});var p=document.createElement("a");p.appendChild(document.createTextNode("powered by ace")),p.href="http://ace.ajax.org",p.target="_blank",p.className="jsoneditor-poweredBy",p.onclick=function(){window.open(p.href,p.target)},this.menu.appendChild(p),f.on("change",this._onChange.bind(this)),f.on("changeSelection",this._onSelect.bind(this))}else{var m=document.createElement("textarea");m.className="jsoneditor-text",m.spellcheck=!1,this.content.appendChild(m),this.textarea=m,this.textarea.readOnly=u,null===this.textarea.oninput?this.textarea.oninput=this._onChange.bind(this):this.textarea.onchange=this._onChange.bind(this),m.onselect=this._onSelect.bind(this),m.onmousedown=this._onMouseDown.bind(this),m.onblur=this._onBlur.bind(this)}var g=document.createElement("div");if(g.className="validation-errors-container",this.dom.validationErrorsContainer=g,this.frame.appendChild(g),t.statusBar){o.addClassName(this.content,"has-status-bar"),this.curserInfoElements={};var v=document.createElement("div");this.dom.statusBar=v,v.className="jsoneditor-statusbar",this.frame.appendChild(v);var w=document.createElement("span");w.className="jsoneditor-curserinfo-label",w.innerText="Ln:";var y=document.createElement("span");y.className="jsoneditor-curserinfo-val",y.innerText="1",v.appendChild(w),v.appendChild(y);var A=document.createElement("span");A.className="jsoneditor-curserinfo-label",A.innerText="Col:";var C=document.createElement("span");C.className="jsoneditor-curserinfo-val",C.innerText="1",v.appendChild(A),v.appendChild(C),this.curserInfoElements.colVal=C,this.curserInfoElements.lnVal=y;var E=document.createElement("span");E.className="jsoneditor-curserinfo-label",E.innerText="characters selected",E.style.display="none";var b=document.createElement("span");b.className="jsoneditor-curserinfo-count",b.innerText="0",b.style.display="none",this.curserInfoElements.countLabel=E,this.curserInfoElements.countVal=b,v.appendChild(b),v.appendChild(E)}this.setSchema(this.options.schema,this.options.schemaRefs)},s._onChange=function(){if(this._debouncedValidate(),this.options.onChange)try{this.options.onChange()}catch(e){console.error("Error in onChange callback: ",e)}},s._onSelect=function(){this._updateCursorInfo(),this._emitSelectionChange()},s._onKeyDown=function(e){var t=e.which||e.keyCode,i=!1;220==t&&e.ctrlKey&&(e.shiftKey?(this.compact(),this._onChange()):(this.format(),this._onChange()),i=!0),i&&(e.preventDefault(),e.stopPropagation()),this._updateCursorInfo(),this._emitSelectionChange()},s._onMouseDown=function(e){this._updateCursorInfo(),this._emitSelectionChange()},s._onBlur=function(e){this._updateCursorInfo(),this._emitSelectionChange()},s._updateCursorInfo=function(){function e(){r.curserInfoElements.countVal.innerText!==n&&(r.curserInfoElements.countVal.innerText=n,r.curserInfoElements.countVal.style.display=n?"inline":"none",r.curserInfoElements.countLabel.style.display=n?"inline":"none"),r.curserInfoElements.lnVal.innerText=t,r.curserInfoElements.colVal.innerText=i}var t,i,n,r=this;if(this.textarea)setTimeout(function(){var s=o.getInputSelection(r.textarea);s.startIndex!==s.endIndex&&(n=s.endIndex-s.startIndex),n&&r.cursorInfo&&r.cursorInfo.line===s.end.row&&r.cursorInfo.column===s.end.column?(t=s.start.row,i=s.start.column):(t=s.end.row,i=s.end.column),r.cursorInfo={line:t,column:i,count:n},r.options.statusBar&&e()},0);else if(this.aceEditor&&this.curserInfoElements){var s=this.aceEditor.getCursorPosition(),a=this.aceEditor.getSelectedText();t=s.row+1,i=s.column+1,n=a.length,r.cursorInfo={line:t,column:i,count:n},this.options.statusBar&&e()}},s._emitSelectionChange=function(){if(this._selectionChangedHandler){var e=this.getTextSelection();this._selectionChangedHandler(e.start,e.end,e.text)}},s.destroy=function(){this.aceEditor&&(this.aceEditor.destroy(),this.aceEditor=null),this.frame&&this.container&&this.frame.parentNode==this.container&&this.container.removeChild(this.frame),this.modeSwitcher&&(this.modeSwitcher.destroy(),this.modeSwitcher=null),this.textarea=null,this._debouncedValidate=null},s.compact=function(){var e=this.get(),t=JSON.stringify(e);this.setText(t)},s.format=function(){var e=this.get(),t=JSON.stringify(e,null,this.indentation);this.setText(t)},s.repair=function(){var e=this.getText(),t=o.sanitize(e);this.setText(t)},s.focus=function(){this.textarea&&this.textarea.focus(),this.aceEditor&&this.aceEditor.focus()},s.resize=function(){if(this.aceEditor){this.aceEditor.resize(!1)}},s.set=function(e){this.setText(JSON.stringify(e,null,this.indentation))},s.get=function(){var e,t=this.getText();try{e=o.parse(t)}catch(i){t=o.sanitize(t),e=o.parse(t)}return e},s.getText=function(){return this.textarea?this.textarea.value:this.aceEditor?this.aceEditor.getValue():""},s.setText=function(e){var t;if(t=!0===this.options.escapeUnicode?o.escapeUnicodeChars(e):e,this.textarea&&(this.textarea.value=t),this.aceEditor){var i=this.options.onChange;this.options.onChange=null,this.aceEditor.setValue(t,-1),this.options.onChange=i}this.validate()},s.validate=function(){this.dom.validationErrors&&(this.dom.validationErrors.parentNode.removeChild(this.dom.validationErrors),this.dom.validationErrors=null,this.content.style.marginBottom="",this.content.style.paddingBottom="");var e,t=!1,i=[];try{e=this.get(),t=!0}catch(e){}if(t&&this.validateSchema){this.validateSchema(e)||(i=this.validateSchema.errors.map(function(e){return o.improveSchemaError(e)}))}if(i.length>0){if(i.length>3){i=i.slice(0,3);var n=this.validateSchema.errors.length-3;i.push("("+n+" more errors...)")}var r=document.createElement("div");r.innerHTML=''+i.map(function(e){return''+("string"==typeof e?'":"")+""}).join("")+"
'+e+"
"+e.dataPath+""+e.message+"
",this.dom.validationErrors=r,this.dom.validationErrorsContainer.appendChild(r);var s=r.clientHeight+(this.dom.statusBar?this.dom.statusBar.clientHeight:0);this.content.style.marginBottom=-s+"px",this.content.style.paddingBottom=s+"px"}if(this.aceEditor){this.aceEditor.resize(!1)}},s.getTextSelection=function(){var e={};if(this.textarea){var t=o.getInputSelection(this.textarea);return this.cursorInfo&&this.cursorInfo.line===t.end.row&&this.cursorInfo.column===t.end.column?(e.start=t.end,e.end=t.start):e=t,{start:e.start,end:e.end,text:this.textarea.value.substring(t.startIndex,t.endIndex)}}if(this.aceEditor){var i=this.aceEditor.getSelection(),n=this.aceEditor.getSelectedText(),r=i.getRange(),s=i.getSelectionLead();return s.row===r.end.row&&s.column===r.end.column?e=r:(e.start=r.end,e.end=r.start),{start:{row:e.start.row+1,column:e.start.column+1},end:{row:e.end.row+1,column:e.end.column+1},text:n}}},s.onTextSelectionChange=function(e){"function"==typeof e&&(this._selectionChangedHandler=o.debounce(e,this.DEBOUNCE_INTERVAL))},s.setTextSelection=function(e,t){if(e&&t)if(this.textarea){var i=o.getIndexForPosition(this.textarea,e.row,e.column),n=o.getIndexForPosition(this.textarea,t.row,t.column);if(i>-1&&n>-1)if(this.textarea.setSelectionRange)this.textarea.focus(),this.textarea.setSelectionRange(i,n);else if(this.textarea.createTextRange){var r=this.textarea.createTextRange();r.collapse(!0),r.moveEnd("character",n),r.moveStart("character",i),r.select()}}else if(this.aceEditor){var r={start:{row:e.row-1,column:e.column-1},end:{row:t.row-1,column:t.column-1}};this.aceEditor.selection.setRange(r)}},e.exports=[{mode:"text",mixin:s,data:"text",load:s.format},{mode:"code",mixin:s,data:"text",load:s.format}]},function(e,t,i){var n;if(window.ace)n=window.ace;else try{n=i(68),i(70),i(72)}catch(e){}e.exports=n},function(e,t,i){!function(){var e=function(){return this}();e||"undefined"==typeof window||(e=window);var t=function(e,i,n){if("string"!=typeof e)return void(t.original?t.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace()));2==arguments.length&&(n=i),t.modules[e]||(t.payloads[e]=n,t.modules[e]=null)};t.modules={},t.payloads={};var i=function(e,t,i){if("string"==typeof t){var r=o(e,t);if(void 0!=r)return i&&i(),r}else if("[object Array]"===Object.prototype.toString.call(t)){for(var s=[],a=0,l=t.length;a1&&r(l,"")>-1&&(i=RegExp(this.source,o.replace.call(n(this),"g","")),o.replace.call(e.slice(l.index),i,function(){for(var e=1;el.index&&this.lastIndex--}return l},a||(RegExp.prototype.test=function(e){var t=o.exec.call(this,e);return t&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--,!!t}))}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(e,t,i){function n(){}function r(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(e){}}function o(e){return e=+e,e!==e?e=0:0!==e&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}Function.prototype.bind||(Function.prototype.bind=function(e){var t=this;if("function"!=typeof t)throw new TypeError("Function.prototype.bind called on incompatible "+t);var i=p.call(arguments,1),r=function(){if(this instanceof r){var n=t.apply(this,i.concat(p.call(arguments)));return Object(n)===n?n:this}return t.apply(e,i.concat(p.call(arguments)))};return t.prototype&&(n.prototype=t.prototype,r.prototype=new n,n.prototype=null),r});var s,a,l,c,h,d=Function.prototype.call,u=Array.prototype,f=Object.prototype,p=u.slice,m=d.bind(f.toString),g=d.bind(f.hasOwnProperty);if((h=g(f,"__defineGetter__"))&&(s=d.bind(f.__defineGetter__),a=d.bind(f.__defineSetter__),l=d.bind(f.__lookupGetter__),c=d.bind(f.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t,i=[];if(i.splice.apply(i,e(20)),i.splice.apply(i,e(26)),t=i.length,i.splice(5,0,"XXX"),i.length,t+1==i.length)return!0}()){var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[void 0===e?0:e,void 0===t?this.length-e:t].concat(p.call(arguments,2))):[]}}else Array.prototype.splice=function(e,t){var i=this.length;e>0?e>i&&(e=i):void 0==e?e=0:e<0&&(e=Math.max(i+e,0)),e+ta)for(d=c;d--;)this[l+d]=this[a+d];if(o&&e===h)this.length=h,this.push.apply(this,r);else for(this.length=h+o,d=0;d>>0;if("[object Function]"!=m(e))throw new TypeError;for(;++r>>0,r=Array(n),o=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var s=0;s>>0,o=[],s=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var a=0;a>>0,r=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var o=0;o>>0,r=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var o=0;o>>0;if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");if(!n&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var r,o=0;if(arguments.length>=2)r=arguments[1];else for(;;){if(o in i){r=i[o++];break}if(++o>=n)throw new TypeError("reduce of empty array with no initial value")}for(;o>>0;if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");if(!n&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var r,o=n-1;if(arguments.length>=2)r=arguments[1];else for(;;){if(o in i){r=i[o--];break}if(--o<0)throw new TypeError("reduceRight of empty array with no initial value")}do{o in this&&(r=e.call(void 0,r,i[o],o,t))}while(o--);return r}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(e){var t=y&&"[object String]"==m(this)?this.split(""):_(this),i=t.length>>>0;if(!i)return-1;var n=0;for(arguments.length>1&&(n=o(arguments[1])),n=n>=0?n:Math.max(0,i+n);n>>0;if(!i)return-1;var n=i-1;for(arguments.length>1&&(n=Math.min(n,o(arguments[1]))),n=n>=0?n:i-Math.abs(n);n>=0;n--)if(n in t&&e===t[n])return n;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(e){return e.__proto__||(e.constructor?e.constructor.prototype:f)}),!Object.getOwnPropertyDescriptor){Object.getOwnPropertyDescriptor=function(e,t){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.getOwnPropertyDescriptor called on a non-object: "+e);if(g(e,t)){var i,n,r;if(i={enumerable:!0,configurable:!0},h){var o=e.__proto__;e.__proto__=f;var n=l(e,t),r=c(e,t);if(e.__proto__=o,n||r)return n&&(i.get=n),r&&(i.set=r),i}return i.value=e[t],i}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(e){return Object.keys(e)}),!Object.create){var A;A=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(e,t){var i;if(null===e)i=A();else{if("object"!=typeof e)throw new TypeError("typeof prototype["+typeof e+"] != 'object'");var n=function(){};n.prototype=e,i=new n,i.__proto__=e}return void 0!==t&&Object.defineProperties(i,t),i}}if(Object.defineProperty){var C=r({}),E="undefined"==typeof document||r(document.createElement("div"));if(!C||!E)var b=Object.defineProperty}if(!Object.defineProperty||b){Object.defineProperty=function(e,t,i){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.defineProperty called on non-object: "+e);if("object"!=typeof i&&"function"!=typeof i||null===i)throw new TypeError("Property description must be an object: "+i);if(b)try{return b.call(Object,e,t,i)}catch(e){}if(g(i,"value"))if(h&&(l(e,t)||c(e,t))){var n=e.__proto__;e.__proto__=f,delete e[t],e[t]=i.value,e.__proto__=n}else e[t]=i.value;else{if(!h)throw new TypeError("getters & setters can not be defined on this javascript engine");g(i,"get")&&s(e,t,i.get),g(i,"set")&&a(e,t,i.set)}return e}}Object.defineProperties||(Object.defineProperties=function(e,t){for(var i in t)g(t,i)&&Object.defineProperty(e,i,t[i]);return e}),Object.seal||(Object.seal=function(e){return e}),Object.freeze||(Object.freeze=function(e){return e});try{Object.freeze(function(){})}catch(e){Object.freeze=function(e){return function(t){return"function"==typeof t?t:e(t)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(e){return e}),Object.isSealed||(Object.isSealed=function(e){return!1}),Object.isFrozen||(Object.isFrozen=function(e){return!1}),Object.isExtensible||(Object.isExtensible=function(e){if(Object(e)===e)throw new TypeError;for(var t="";g(e,t);)t+="?";e[t]=!0;var i=g(e,t);return delete e[t],i}),!Object.keys){var F=!0,x=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],S=x.length;for(var $ in{toString:null})F=!1;Object.keys=function(e){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.keys called on a non-object");var t=[];for(var i in e)g(e,i)&&t.push(i);if(F)for(var n=0,r=S;n=0?parseFloat((r.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((r.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=(window.Controllers||window.controllers)&&"Gecko"===window.navigator.product,t.isOldGecko=t.isGecko&&parseInt((r.match(/rv:(\d+)/)||[])[1],10)<4,t.isOpera=window.opera&&"[object Opera]"==Object.prototype.toString.call(window.opera),t.isWebKit=parseFloat(r.split("WebKit/")[1])||void 0,t.isChrome=parseFloat(r.split(" Chrome/")[1])||void 0,t.isAIR=r.indexOf("AdobeAIR")>=0,t.isIPad=r.indexOf("iPad")>=0,t.isChromeOS=r.indexOf(" CrOS ")>=0,t.isIOS=/iPad|iPhone|iPod/.test(r)&&!window.MSStream,t.isIOS&&(t.isMac=!0)}}),ace.define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,i){"use strict";function n(e,t,i){var n=c(t);if(!s.isMac&&a){if(t.getModifierState&&(t.getModifierState("OS")||t.getModifierState("Win"))&&(n|=8),a.altGr){if(3==(3&n))return;a.altGr=0}if(18===i||17===i){var r="location"in t?t.location:t.keyLocation;if(17===i&&1===r)1==a[i]&&(l=t.timeStamp);else if(18===i&&3===n&&2===r){var h=t.timeStamp-l;h<50&&(a.altGr=!0)}}}if(i in o.MODIFIER_KEYS&&(i=-1),8&n&&i>=91&&i<=93&&(i=-1),!n&&13===i){ -var r="location"in t?t.location:t.keyLocation;if(3===r&&(e(t,n,-i),t.defaultPrevented))return}if(s.isChromeOS&&8&n){if(e(t,n,i),t.defaultPrevented)return;n&=-9}return!!(n||i in o.FUNCTION_KEYS||i in o.PRINTABLE_KEYS)&&e(t,n,i)}function r(){a=Object.create(null)}var o=e("./keys"),s=e("./useragent"),a=null,l=0;t.addListener=function(e,t,i){if(e.addEventListener)return e.addEventListener(t,i,!1);if(e.attachEvent){var n=function(){i.call(e,window.event)};i._wrapper=n,e.attachEvent("on"+t,n)}},t.removeListener=function(e,t,i){if(e.removeEventListener)return e.removeEventListener(t,i,!1);e.detachEvent&&e.detachEvent("on"+t,i._wrapper||i)},t.stopEvent=function(e){return t.stopPropagation(e),t.preventDefault(e),!1},t.stopPropagation=function(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0},t.preventDefault=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1},t.getButton=function(e){return"dblclick"==e.type?0:"contextmenu"==e.type||s.isMac&&e.ctrlKey&&!e.altKey&&!e.shiftKey?2:e.preventDefault?e.button:{1:0,2:2,4:1}[e.button]},t.capture=function(e,i,n){function r(e){i&&i(e),n&&n(e),t.removeListener(document,"mousemove",i,!0),t.removeListener(document,"mouseup",r,!0),t.removeListener(document,"dragstart",r,!0)}return t.addListener(document,"mousemove",i,!0),t.addListener(document,"mouseup",r,!0),t.addListener(document,"dragstart",r,!0),r},t.addTouchMoveListener=function(e,i){var n,r;t.addListener(e,"touchstart",function(e){var t=e.touches,i=t[0];n=i.clientX,r=i.clientY}),t.addListener(e,"touchmove",function(e){var t=e.touches;if(!(t.length>1)){var o=t[0];e.wheelX=n-o.clientX,e.wheelY=r-o.clientY,n=o.clientX,r=o.clientY,i(e)}})},t.addMouseWheelListener=function(e,i){"onmousewheel"in e?t.addListener(e,"mousewheel",function(e){void 0!==e.wheelDeltaX?(e.wheelX=-e.wheelDeltaX/8,e.wheelY=-e.wheelDeltaY/8):(e.wheelX=0,e.wheelY=-e.wheelDelta/8),i(e)}):"onwheel"in e?t.addListener(e,"wheel",function(e){switch(e.deltaMode){case e.DOM_DELTA_PIXEL:e.wheelX=.35*e.deltaX||0,e.wheelY=.35*e.deltaY||0;break;case e.DOM_DELTA_LINE:case e.DOM_DELTA_PAGE:e.wheelX=5*(e.deltaX||0),e.wheelY=5*(e.deltaY||0)}i(e)}):t.addListener(e,"DOMMouseScroll",function(e){e.axis&&e.axis==e.HORIZONTAL_AXIS?(e.wheelX=5*(e.detail||0),e.wheelY=0):(e.wheelX=0,e.wheelY=5*(e.detail||0)),i(e)})},t.addMultiMouseDownListener=function(e,i,n,r){function o(e){if(0!==t.getButton(e)?d=0:e.detail>1?++d>4&&(d=1):d=1,s.isIE){var o=Math.abs(e.clientX-l)>5||Math.abs(e.clientY-c)>5;h&&!o||(d=1),h&&clearTimeout(h),h=setTimeout(function(){h=null},i[d-1]||600),1==d&&(l=e.clientX,c=e.clientY)}if(e._clicks=d,n[r]("mousedown",e),d>4)d=0;else if(d>1)return n[r](u[d],e)}function a(e){d=2,h&&clearTimeout(h),h=setTimeout(function(){h=null},i[d-1]||600),n[r]("mousedown",e),n[r](u[d],e)}var l,c,h,d=0,u={2:"dblclick",3:"tripleclick",4:"quadclick"};Array.isArray(e)||(e=[e]),e.forEach(function(e){t.addListener(e,"mousedown",o),s.isOldIE&&t.addListener(e,"dblclick",a)})};var c=!s.isMac||!s.isOpera||"KeyboardEvent"in window?function(e){return 0|(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0)}:function(e){return 0|(e.metaKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.ctrlKey?8:0)};if(t.getModifierString=function(e){return o.KEY_MODS[c(e)]},t.addCommandKeyListener=function(e,i){var o=t.addListener;if(s.isOldGecko||s.isOpera&&!("KeyboardEvent"in window)){var l=null;o(e,"keydown",function(e){l=e.keyCode}),o(e,"keypress",function(e){return n(i,e,l)})}else{var c=null;o(e,"keydown",function(e){a[e.keyCode]=(a[e.keyCode]||0)+1;var t=n(i,e,e.keyCode);return c=e.defaultPrevented,t}),o(e,"keypress",function(e){c&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),c=null)}),o(e,"keyup",function(e){a[e.keyCode]=null}),a||(r(),o(window,"focus",r))}},"object"==typeof window&&window.postMessage&&!s.isOldIE){t.nextTick=function(e,i){i=i||window;t.addListener(i,"message",function n(r){"zero-timeout-message-1"==r.data&&(t.stopPropagation(r),t.removeListener(i,"message",n),e())}),i.postMessage("zero-timeout-message-1","*")}}t.nextFrame="object"==typeof window&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}}),ace.define("ace/lib/lang",["require","exports","module"],function(e,t,i){"use strict";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split("").reverse().join("")},t.stringRepeat=function(e,t){for(var i="";t>0;)1&t&&(i+=e),(t>>=1)&&(e+=e);return i};t.stringTrimLeft=function(e){return e.replace(/^\s\s*/,"")},t.stringTrimRight=function(e){return e.replace(/\s\s*$/,"")},t.copyObject=function(e){var t={};for(var i in e)t[i]=e[i];return t},t.copyArray=function(e){for(var t=[],i=0,n=e.length;ip.length?e=e.substr(9):e.substr(0,4)==p.substr(0,4)?e=e.substr(4,e.length-p.length+1):e.charAt(e.length-1)==p.charAt(0)&&(e=e.slice(0,-1)),e==p.charAt(0)||e.charAt(e.length-1)==p.charAt(0)&&(e=e.slice(0,-1)),e&&t.onTextInput(e)),m&&(m=!1),$&&($=!1))},k=function(e){if(!w){var t=f.value;D(t),d()}},B=function(e,t,i){var n=e.clipboardData||window.clipboardData;if(n&&!c){var r=h||i?"Text":"text/plain";try{return t?!1!==n.setData(r,t):n.getData(r)}catch(e){if(!i)return B(e,t,!0)}}},_=function(e,o){var s=t.getCopyText();if(!s)return n.preventDefault(e);B(e,s)?(r.isIOS&&(g=o,f.value="\n aa"+s+"a a\n",f.setSelectionRange(4,4+s.length),m={value:s}),o?t.onCut():t.onCopy(),r.isIOS||n.preventDefault(e)):(m=!0,f.value=s,f.select(),setTimeout(function(){m=!1,d(),i(),o?t.onCut():t.onCopy()}))},L=function(e){_(e,!0)},R=function(e){_(e,!1)},T=function(e){var o=B(e);"string"==typeof o?(o&&t.onPaste(o,e),r.isIE&&setTimeout(i),n.preventDefault(e)):(f.value="",v=!0)};n.addCommandKeyListener(f,t.onCommandKey.bind(t)),n.addListener(f,"select",x),n.addListener(f,"input",k),n.addListener(f,"cut",L),n.addListener(f,"copy",R),n.addListener(f,"paste",T);var P=function(e){w||!t.onCompositionStart||t.$readOnly||(w={},w.canUndo=t.session.$undoManager,t.onCompositionStart(),setTimeout(M,0),t.on("mousedown",O),w.canUndo&&!t.selection.isEmpty()&&(t.insert(""),t.session.markUndoGroup(),t.selection.clearSelection()),t.session.markUndoGroup())},M=function(){if(w&&t.onCompositionUpdate&&!t.$readOnly){var e=f.value.replace(/\x01/g,"");if(w.lastValue!==e&&(t.onCompositionUpdate(e),w.lastValue&&t.undo(),w.canUndo&&(w.lastValue=e),w.lastValue)){var i=t.selection.getRange();t.insert(w.lastValue),t.session.markUndoGroup(),w.range=t.selection.getRange(),t.selection.setRange(i),t.selection.clearSelection()}}},O=function(e){if(t.onCompositionEnd&&!t.$readOnly){var i=w;w=!1;var n=setTimeout(function(){n=null;var e=f.value.replace(/\x01/g,"");w||(e==i.lastValue?d():!i.lastValue&&e&&(d(),D(e)))});S=function(e){return n&&clearTimeout(n),(e=e.replace(/\x01/g,""))==i.lastValue?"":(i.lastValue&&n&&t.undo(),e)},t.onCompositionEnd(),t.removeListener("mousedown",O),"compositionend"==e.type&&i.range&&t.selection.setRange(i.range);(!!r.isChrome&&r.isChrome>=53||!!r.isWebKit&&r.isWebKit>=603)&&k()}},I=s.delayedCall(M,50);n.addListener(f,"compositionstart",P),r.isGecko?n.addListener(f,"text",function(){I.schedule()}):(n.addListener(f,"keyup",function(){I.schedule()}),n.addListener(f,"keydown",function(){I.schedule()})),n.addListener(f,"compositionend",O),this.getElement=function(){return f},this.setReadOnly=function(e){f.readOnly=e},this.onContextMenu=function(e){$=!0,i(t.selection.isEmpty()),t._emit("nativecontextmenu",{target:t,domEvent:e}),this.moveToMouse(e,!0)},this.moveToMouse=function(e,i){y||(y=f.style.cssText),f.style.cssText=(i?"z-index:100000;":"")+"height:"+f.style.height+";"+(r.isIE?"opacity:0.1;":"");var s=t.container.getBoundingClientRect(),a=o.computedStyle(t.container),l=s.top+(parseInt(a.borderTopWidth)||0),c=s.left+(parseInt(s.borderLeftWidth)||0),h=s.bottom-l-f.clientHeight-2,d=function(e){f.style.left=e.clientX-c-2+"px",f.style.top=Math.min(e.clientY-l-2,h)+"px"};d(e),"mousedown"==e.type&&(t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=null),clearTimeout(N),r.isWin&&n.capture(t.container,d,u))},this.onContextMenuClose=u;var N,j=function(e){t.textInput.onContextMenu(e),u()};if(n.addListener(f,"mouseup",j),n.addListener(f,"mousedown",function(e){e.preventDefault(),u()}),n.addListener(t.renderer.scroller,"contextmenu",j),n.addListener(f,"contextmenu",j),r.isIOS){var H=null,W=!1;e.addEventListener("keydown",function(e){H&&clearTimeout(H),W=!0}),e.addEventListener("keyup",function(e){H=setTimeout(function(){W=!1},100)});var V=function(e){if(document.activeElement===f&&!W){if(g)return setTimeout(function(){g=!1},100);var i=f.selectionStart,n=f.selectionEnd;if(f.setSelectionRange(4,5),i==n)switch(i){case 0:t.onCommandKey(null,0,a.up);break;case 1:t.onCommandKey(null,0,a.home);break;case 2:t.onCommandKey(null,l.option,a.left);break;case 4:t.onCommandKey(null,0,a.left);break;case 5:t.onCommandKey(null,0,a.right);break;case 7:t.onCommandKey(null,l.option,a.right);break;case 8:t.onCommandKey(null,0,a.end);break;case 9:t.onCommandKey(null,0,a.down)}else{switch(n){case 6:t.onCommandKey(null,l.shift,a.right);break;case 7:t.onCommandKey(null,l.shift|l.option,a.right);break;case 8:t.onCommandKey(null,l.shift,a.end);break;case 9:t.onCommandKey(null,l.shift,a.down)}switch(i){case 0:t.onCommandKey(null,l.shift,a.up);break;case 1:t.onCommandKey(null,l.shift,a.home);break;case 2:t.onCommandKey(null,l.shift|l.option,a.left);break;case 3:t.onCommandKey(null,l.shift,a.left)}}}};document.addEventListener("selectionchange",V),t.on("destroy",function(){document.removeEventListener("selectionchange",V)})}};t.TextInput=d}),ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/keyboard/textinput_ios"],function(e,t,i){"use strict";var n=e("../lib/event"),r=e("../lib/useragent"),o=e("../lib/dom"),s=e("../lib/lang"),a=r.isChrome<18,l=r.isIE,c=e("./textinput_ios").TextInput,h=function(e,t){function i(e){if(!g){if(g=!0,F)var t=0,i=e?0:u.value.length-1;else var t=e?2:1,i=2;try{u.setSelectionRange(t,i)}catch(e){}g=!1}}function h(){g||(u.value=f,r.isWebKit&&C.schedule())}function d(){clearTimeout(O),O=setTimeout(function(){v&&(u.style.cssText=v,v=""),null==t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=!0,t.renderer.$moveTextAreaToCursor())},0)}if(r.isIOS)return c.call(this,e,t);var u=o.createElement("textarea");u.className="ace_text-input",u.setAttribute("wrap","off"),u.setAttribute("autocorrect","off"),u.setAttribute("autocapitalize","off"),u.setAttribute("spellcheck",!1),u.style.opacity="0",e.insertBefore(u,e.firstChild);var f="\u2028\u2028",p=!1,m=!1,g=!1,v="",w=!0;try{var y=document.activeElement===u}catch(e){}n.addListener(u,"blur",function(e){t.onBlur(e),y=!1}),n.addListener(u,"focus",function(e){y=!0,t.onFocus(e),i()}),this.focus=function(){if(v)return u.focus();var e=u.style.top;u.style.position="fixed",u.style.top="0px",u.focus(),setTimeout(function(){u.style.position="","0px"==u.style.top&&(u.style.top=e)},0)},this.blur=function(){u.blur()},this.isFocused=function(){return y};var A=s.delayedCall(function(){y&&i(w)}),C=s.delayedCall(function(){g||(u.value=f,y&&i())});r.isWebKit||t.addEventListener("changeSelection",function(){t.selection.isEmpty()!=w&&(w=!w,A.schedule())}),h(),y&&t.onFocus();var E=function(e){return 0===e.selectionStart&&e.selectionEnd===e.value.length},b=function(e){p?p=!1:E(u)?(t.selectAll(),i()):F&&i(t.selection.isEmpty())},F=null;this.setInputHandler=function(e){F=e},this.getInputHandler=function(){return F};var x=!1,S=function(e){F&&(e=F(e),F=null),m?(i(),e&&t.onPaste(e),m=!1):e==f.charAt(0)?x?t.execCommand("del",{source:"ace"}):t.execCommand("backspace",{source:"ace"}):(e.substring(0,2)==f?e=e.substr(2):e.charAt(0)==f.charAt(0)?e=e.substr(1):e.charAt(e.length-1)==f.charAt(0)&&(e=e.slice(0,-1)),e.charAt(e.length-1)==f.charAt(0)&&(e=e.slice(0,-1)),e&&t.onTextInput(e)),x&&(x=!1)},$=function(e){if(!g){var t=u.value;S(t),h()}},D=function(e,t,i){var n=e.clipboardData||window.clipboardData;if(n&&!a){var r=l||i?"Text":"text/plain";try{return t?!1!==n.setData(r,t):n.getData(r)}catch(e){if(!i)return D(e,t,!0)}}},k=function(e,r){var o=t.getCopyText();if(!o)return n.preventDefault(e);D(e,o)?(r?t.onCut():t.onCopy(),n.preventDefault(e)):(p=!0,u.value=o,u.select(),setTimeout(function(){p=!1,h(),i(),r?t.onCut():t.onCopy()}))},B=function(e){k(e,!0)},_=function(e){k(e,!1)},L=function(e){var o=D(e);"string"==typeof o?(o&&t.onPaste(o,e),r.isIE&&setTimeout(i),n.preventDefault(e)):(u.value="",m=!0)};n.addCommandKeyListener(u,t.onCommandKey.bind(t)),n.addListener(u,"select",b),n.addListener(u,"input",$),n.addListener(u,"cut",B),n.addListener(u,"copy",_),n.addListener(u,"paste",L),"oncut"in u&&"oncopy"in u&&"onpaste"in u||n.addListener(e,"keydown",function(e){if((!r.isMac||e.metaKey)&&e.ctrlKey)switch(e.keyCode){case 67:_(e);break;case 86:L(e);break;case 88:B(e)}});var R=function(e){g||!t.onCompositionStart||t.$readOnly||(g={},g.canUndo=t.session.$undoManager,t.onCompositionStart(),setTimeout(T,0),t.on("mousedown",P),g.canUndo&&!t.selection.isEmpty()&&(t.insert(""),t.session.markUndoGroup(),t.selection.clearSelection()),t.session.markUndoGroup())},T=function(){if(g&&t.onCompositionUpdate&&!t.$readOnly){var e=u.value.replace(/\u2028/g,"");if(g.lastValue!==e&&(t.onCompositionUpdate(e),g.lastValue&&t.undo(),g.canUndo&&(g.lastValue=e),g.lastValue)){var i=t.selection.getRange();t.insert(g.lastValue),t.session.markUndoGroup(),g.range=t.selection.getRange(),t.selection.setRange(i),t.selection.clearSelection()}}},P=function(e){if(t.onCompositionEnd&&!t.$readOnly){var i=g;g=!1;var n=setTimeout(function(){n=null;var e=u.value.replace(/\u2028/g,"");g||(e==i.lastValue?h():!i.lastValue&&e&&(h(),S(e)))});F=function(e){return n&&clearTimeout(n),(e=e.replace(/\u2028/g,""))==i.lastValue?"":(i.lastValue&&n&&t.undo(),e)},t.onCompositionEnd(),t.removeListener("mousedown",P),"compositionend"==e.type&&i.range&&t.selection.setRange(i.range);(!!r.isChrome&&r.isChrome>=53||!!r.isWebKit&&r.isWebKit>=603)&&$()}},M=s.delayedCall(T,50);n.addListener(u,"compositionstart",R),r.isGecko?n.addListener(u,"text",function(){M.schedule()}):(n.addListener(u,"keyup",function(){M.schedule()}),n.addListener(u,"keydown",function(){M.schedule()})),n.addListener(u,"compositionend",P),this.getElement=function(){return u},this.setReadOnly=function(e){u.readOnly=e},this.onContextMenu=function(e){x=!0,i(t.selection.isEmpty()),t._emit("nativecontextmenu",{target:t,domEvent:e}),this.moveToMouse(e,!0)},this.moveToMouse=function(e,i){v||(v=u.style.cssText),u.style.cssText=(i?"z-index:100000;":"")+"height:"+u.style.height+";"+(r.isIE?"opacity:0.1;":"");var s=t.container.getBoundingClientRect(),a=o.computedStyle(t.container),l=s.top+(parseInt(a.borderTopWidth)||0),c=s.left+(parseInt(s.borderLeftWidth)||0),h=s.bottom-l-u.clientHeight-2,f=function(e){u.style.left=e.clientX-c-2+"px",u.style.top=Math.min(e.clientY-l-2,h)+"px"};f(e),"mousedown"==e.type&&(t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=null),clearTimeout(O),r.isWin&&n.capture(t.container,f,d))},this.onContextMenuClose=d;var O,I=function(e){t.textInput.onContextMenu(e),d()};n.addListener(u,"mouseup",I),n.addListener(u,"mousedown",function(e){e.preventDefault(),d()}),n.addListener(t.renderer.scroller,"contextmenu",I),n.addListener(u,"contextmenu",I)};t.TextInput=h}),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,i){"use strict";function n(e){e.$clickSelection=null;var t=e.editor;t.setDefaultHandler("mousedown",this.onMouseDown.bind(e)),t.setDefaultHandler("dblclick",this.onDoubleClick.bind(e)),t.setDefaultHandler("tripleclick",this.onTripleClick.bind(e)),t.setDefaultHandler("quadclick",this.onQuadClick.bind(e)),t.setDefaultHandler("mousewheel",this.onMouseWheel.bind(e)),t.setDefaultHandler("touchmove",this.onTouchMove.bind(e)),["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"].forEach(function(t){e[t]=this[t]},this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}function r(e,t,i,n){return Math.sqrt(Math.pow(i-e,2)+Math.pow(n-t,2))}function o(e,t){if(e.start.row==e.end.row)var i=2*t.column-e.start.column-e.end.column;else if(e.start.row!=e.end.row-1||e.start.column||e.end.column)var i=2*t.row-e.start.row-e.end.row;else var i=t.column-4;return i<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}var s=(e("../lib/dom"),e("../lib/event"),e("../lib/useragent"));(function(){this.onMouseDown=function(e){var t=e.inSelection(),i=e.getDocumentPosition();this.mousedownEvent=e;var n=this.editor,r=e.getButton();if(0!==r){var o=n.getSelectionRange(),a=o.isEmpty();return n.$blockScrolling++,(a||1==r)&&n.selection.moveToPosition(i),n.$blockScrolling--,void(2==r&&(n.textInput.onContextMenu(e.domEvent),s.isMozilla||e.preventDefault()))}return this.mousedownEvent.time=Date.now(),!t||n.isFocused()||(n.focus(),!this.$focusTimout||this.$clickSelection||n.inMultiSelectMode)?(this.captureMouse(e),this.startSelect(i,e.domEvent._clicks>1),e.preventDefault()):(this.setState("focusWait"),void this.captureMouse(e))},this.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var i=this.editor;i.$blockScrolling++,this.mousedownEvent.getShiftKey()?i.selection.selectToPosition(e):t||i.selection.moveToPosition(e),t||this.select(),i.renderer.scroller.setCapture&&i.renderer.scroller.setCapture(),i.setStyle("ace_selecting"),this.setState("select"),i.$blockScrolling--},this.select=function(){var e,t=this.editor,i=t.renderer.screenToTextCoordinates(this.x,this.y);if(t.$blockScrolling++,this.$clickSelection){var n=this.$clickSelection.comparePoint(i);if(-1==n)e=this.$clickSelection.end;else if(1==n)e=this.$clickSelection.start;else{var r=o(this.$clickSelection,i);i=r.cursor,e=r.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(i),t.$blockScrolling--,t.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(e){var t,i=this.editor,n=i.renderer.screenToTextCoordinates(this.x,this.y),r=i.selection[e](n.row,n.column);if(i.$blockScrolling++,this.$clickSelection){var s=this.$clickSelection.comparePoint(r.start),a=this.$clickSelection.comparePoint(r.end);if(-1==s&&a<=0)t=this.$clickSelection.end,r.end.row==n.row&&r.end.column==n.column||(n=r.start);else if(1==a&&s>=0)t=this.$clickSelection.start,r.start.row==n.row&&r.start.column==n.column||(n=r.end);else if(-1==s&&1==a)n=r.end,t=r.start;else{var l=o(this.$clickSelection,n);n=l.cursor,t=l.anchor}i.selection.setSelectionAnchor(t.row,t.column)}i.selection.selectToPosition(n),i.$blockScrolling--,i.renderer.scrollCursorIntoView()},this.selectEnd=this.selectAllEnd=this.selectByWordsEnd=this.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting"),this.editor.renderer.scroller.releaseCapture&&this.editor.renderer.scroller.releaseCapture()},this.focusWait=function(){var e=r(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),t=Date.now();(e>0||t-this.mousedownEvent.time>this.$focusTimout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.onDoubleClick=function(e){var t=e.getDocumentPosition(),i=this.editor,n=i.session,r=n.getBracketRange(t);r?(r.isEmpty()&&(r.start.column--,r.end.column++),this.setState("select")):(r=i.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=r,this.select()},this.onTripleClick=function(e){var t=e.getDocumentPosition(),i=this.editor;this.setState("selectByLines");var n=i.getSelectionRange();n.isMultiLine()&&n.contains(t.row,t.column)?(this.$clickSelection=i.selection.getLineRange(n.start.row),this.$clickSelection.end=i.selection.getLineRange(n.end.row).end):this.$clickSelection=i.selection.getLineRange(t.row),this.select()},this.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("selectAll")},this.onMouseWheel=function(e){if(!e.getAccelKey()){e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var i=this.$lastScroll,n=e.domEvent.timeStamp,r=n-i.t,o=e.wheelX/r,s=e.wheelY/r;r<250&&(o=(o+i.vx)/2,s=(s+i.vy)/2);var a=Math.abs(o/s),l=!1;if(a>=1&&t.renderer.isScrollableBy(e.wheelX*e.speed,0)&&(l=!0),a<=1&&t.renderer.isScrollableBy(0,e.wheelY*e.speed)&&(l=!0),l)i.allowed=n;else if(n-i.allowed<250){var c=Math.abs(o)<=1.1*Math.abs(i.vx)&&Math.abs(s)<=1.1*Math.abs(i.vy);c?(l=!0,i.allowed=n):i.allowed=0}return i.t=n,i.vx=o,i.vy=s,l?(t.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()):void 0}},this.onTouchMove=function(e){this.editor._emit("mousewheel",e)}}).call(n.prototype),t.DefaultHandlers=n}),ace.define("ace/tooltip",["require","exports","module","ace/lib/oop","ace/lib/dom"],function(e,t,i){"use strict";function n(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}var r=(e("./lib/oop"),e("./lib/dom"));(function(){this.$init=function(){return this.$element=r.createElement("div"),this.$element.className="ace_tooltip",this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},this.getElement=function(){return this.$element||this.$init()},this.setText=function(e){r.setInnerText(this.getElement(),e)},this.setHtml=function(e){this.getElement().innerHTML=e},this.setPosition=function(e,t){this.getElement().style.left=e+"px",this.getElement().style.top=t+"px"},this.setClassName=function(e){r.addCssClass(this.getElement(),e)},this.show=function(e,t,i){null!=e&&this.setText(e),null!=t&&null!=i&&this.setPosition(t,i),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},this.hide=function(){this.isOpen&&(this.getElement().style.display="none",this.isOpen=!1)},this.getHeight=function(){return this.getElement().offsetHeight},this.getWidth=function(){return this.getElement().offsetWidth},this.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)}}).call(n.prototype),t.Tooltip=n}),ace.define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event","ace/tooltip"],function(e,t,i){"use strict";function n(e){function t(){var t=d.getDocumentPosition().row,r=l.$annotations[t];if(!r)return i();if(t==s.session.getLength()){var o=s.renderer.pixelToScreenCoordinates(0,d.y).row,a=d.$pos;if(o>s.session.documentToScreenRow(a.row,a.column))return i()}if(u!=r)if(u=r.text.join("
"),c.setHtml(u),c.show(),s._signal("showGutterTooltip",c),s.on("mousewheel",i),e.$tooltipFollowsMouse)n(d);else{var h=d.domEvent.target,f=h.getBoundingClientRect(),p=c.getElement().style;p.left=f.right+"px",p.top=f.bottom+"px"}}function i(){h&&(h=clearTimeout(h)),u&&(c.hide(),u=null,s._signal("hideGutterTooltip",c),s.removeEventListener("mousewheel",i))}function n(e){c.setPosition(e.x,e.y)}var s=e.editor,l=s.renderer.$gutterLayer,c=new r(s.container);e.editor.setDefaultHandler("guttermousedown",function(t){if(s.isFocused()&&0==t.getButton()){if("foldWidgets"!=l.getRegion(t)){var i=t.getDocumentPosition().row,n=s.session.selection;if(t.getShiftKey())n.selectTo(i,0);else{if(2==t.domEvent.detail)return s.selectAll(),t.preventDefault();e.$clickSelection=s.selection.getLineRange(i)}return e.setState("selectByLines"),e.captureMouse(t),t.preventDefault()}}});var h,d,u;e.editor.setDefaultHandler("guttermousemove",function(r){var s=r.domEvent.target||r.domEvent.srcElement;if(o.hasCssClass(s,"ace_fold-widget"))return i();u&&e.$tooltipFollowsMouse&&n(r),d=r,h||(h=setTimeout(function(){h=null,d&&!e.isMousePressed?t():i()},50))}),a.addListener(s.renderer.$gutter,"mouseout",function(e){d=null,u&&!h&&(h=setTimeout(function(){h=null,i()},50))}),s.on("changeSession",i)}function r(e){l.call(this,e)}var o=e("../lib/dom"),s=e("../lib/oop"),a=e("../lib/event"),l=e("../tooltip").Tooltip;s.inherits(r,l),function(){this.setPosition=function(e,t){var i=window.innerWidth||document.documentElement.clientWidth,n=window.innerHeight||document.documentElement.clientHeight,r=this.getWidth(),o=this.getHeight();e+=15,t+=15,e+r>i&&(e-=e+r-i),t+o>n&&(t-=20+o),l.prototype.setPosition.call(this,e,t)}}.call(r.prototype),t.GutterHandler=n}),ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(e,t,i){"use strict";var n=e("../lib/event"),r=e("../lib/useragent"),o=t.MouseEvent=function(e,t){this.domEvent=e,this.editor=t,this.x=this.clientX=e.clientX,this.y=this.clientY=e.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){n.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){n.preventDefault(this.domEvent),this.defaultPrevented=!0},this.stop=function(){this.stopPropagation(),this.preventDefault()},this.getDocumentPosition=function(){return this.$pos?this.$pos:(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY),this.$pos)},this.inSelection=function(){if(null!==this.$inSelection)return this.$inSelection;var e=this.editor,t=e.getSelectionRange();if(t.isEmpty())this.$inSelection=!1;else{var i=this.getDocumentPosition();this.$inSelection=t.contains(i.row,i.column)}return this.$inSelection},this.getButton=function(){return n.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=r.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}).call(o.prototype)}),ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,i){"use strict";function n(e){function t(e,t){var i=Date.now(),n=!t||e.row!=t.row,o=!t||e.column!=t.column;if(!$||n||o)g.$blockScrolling+=1,g.moveCursorToPosition(e),g.$blockScrolling-=1,$=i,D={x:y,y:A};else{r(D.x,D.y,y,A)>h?$=null:i-$>=c&&(g.renderer.scrollCursorIntoView(),$=null)}}function i(e,t){var i=Date.now(),n=g.renderer.layerConfig.lineHeight,r=g.renderer.layerConfig.characterWidth,o=g.renderer.scroller.getBoundingClientRect(),s={x:{left:y-o.left,right:o.right-y},y:{top:A-o.top,bottom:o.bottom-A}},a=Math.min(s.x.left,s.x.right),c=Math.min(s.y.top,s.y.bottom),h={row:e.row,column:e.column};a/r<=2&&(h.column+=s.x.left=l&&g.renderer.scrollCursorIntoView(h):S=i:S=null}function n(){var e=b;b=g.renderer.screenToTextCoordinates(y,A),t(b,e),i(b,e)}function d(){E=g.selection.toOrientedRange(),w=g.session.addMarker(E,"ace_selection",g.getSelectionStyle()),g.clearSelection(),g.isFocused()&&g.renderer.$cursorLayer.setBlinking(!1),clearInterval(C),n(),C=setInterval(n,20),B=0,s.addListener(document,"mousemove",f)}function u(){clearInterval(C),g.session.removeMarker(w),w=null,g.$blockScrolling+=1,g.selection.fromOrientedRange(E),g.$blockScrolling-=1,g.isFocused()&&!x&&g.renderer.$cursorLayer.setBlinking(!g.getReadOnly()),E=null,b=null,B=0,S=null,$=null,s.removeListener(document,"mousemove",f)}function f(){null==_&&(_=setTimeout(function(){null!=_&&w&&u()},20))}function p(e){var t=e.types;return!t||Array.prototype.some.call(t,function(e){return"text/plain"==e||"Text"==e})}function m(e){var t=["copy","copymove","all","uninitialized"],i=["move","copymove","linkmove","all","uninitialized"],n=a.isMac?e.altKey:e.ctrlKey,r="uninitialized";try{r=e.dataTransfer.effectAllowed.toLowerCase()}catch(e){}var o="none";return n&&t.indexOf(r)>=0?o="copy":i.indexOf(r)>=0?o="move":t.indexOf(r)>=0&&(o="copy"),o}var g=e.editor,v=o.createElement("img");v.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",a.isOpera&&(v.style.cssText="width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;"),["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"].forEach(function(t){e[t]=this[t]},this),g.addEventListener("mousedown",this.onMouseDown.bind(e));var w,y,A,C,E,b,F,x,S,$,D,k=g.container,B=0;this.onDragStart=function(e){if(this.cancelDrag||!k.draggable){var t=this;return setTimeout(function(){t.startSelect(),t.captureMouse(e)},0),e.preventDefault()}E=g.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=g.getReadOnly()?"copy":"copyMove",a.isOpera&&(g.container.appendChild(v),v.scrollTop=0),i.setDragImage&&i.setDragImage(v,0,0),a.isOpera&&g.container.removeChild(v),i.clearData(),i.setData("Text",g.session.getTextRange()),x=!0,this.setState("drag")},this.onDragEnd=function(e){if(k.draggable=!1,x=!1,this.setState(null),!g.getReadOnly()){var t=e.dataTransfer.dropEffect;F||"move"!=t||g.session.remove(g.getSelectionRange()),g.renderer.$cursorLayer.setBlinking(!0)}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){if(!g.getReadOnly()&&p(e.dataTransfer))return y=e.clientX,A=e.clientY,w||d(),B++,e.dataTransfer.dropEffect=F=m(e),s.preventDefault(e)},this.onDragOver=function(e){if(!g.getReadOnly()&&p(e.dataTransfer))return y=e.clientX,A=e.clientY,w||(d(),B++),null!==_&&(_=null),e.dataTransfer.dropEffect=F=m(e),s.preventDefault(e)},this.onDragLeave=function(e){if(--B<=0&&w)return u(),F=null,s.preventDefault(e)},this.onDrop=function(e){if(b){var t=e.dataTransfer;if(x)switch(F){case"move":E=E.contains(b.row,b.column)?{start:b,end:b}:g.moveText(E,b);break;case"copy":E=g.moveText(E,b,!0)}else{var i=t.getData("Text");E={start:b,end:g.session.insert(b,i)},g.focus(),F=null}return u(),s.preventDefault(e)}},s.addListener(k,"dragstart",this.onDragStart.bind(e)),s.addListener(k,"dragend",this.onDragEnd.bind(e)),s.addListener(k,"dragenter",this.onDragEnter.bind(e)),s.addListener(k,"dragover",this.onDragOver.bind(e)),s.addListener(k,"dragleave",this.onDragLeave.bind(e)),s.addListener(k,"drop",this.onDrop.bind(e));var _=null}function r(e,t,i,n){return Math.sqrt(Math.pow(i-e,2)+Math.pow(n-t,2))}var o=e("../lib/dom"),s=e("../lib/event"),a=e("../lib/useragent"),l=200,c=200,h=5;(function(){this.dragWait=function(){Date.now()-this.mousedownEvent.time>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){this.editor.container.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly()),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor;e.container.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var t=a.isWin?"default":"move";e.renderer.setCursorStyle(t),this.setState("dragReady")},this.onMouseDrag=function(e){var t=this.editor.container;if(a.isIE&&"dragReady"==this.state){var i=r(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);i>3&&t.dragDrop()}if("dragWait"===this.state){var i=r(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);i>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(e){if(this.$dragEnabled){this.mousedownEvent=e;var t=this.editor,i=e.inSelection(),n=e.getButton();if(1===(e.domEvent.detail||1)&&0===n&&i){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var r=e.domEvent.target||e.domEvent.srcElement;if("unselectable"in r&&(r.unselectable="on"),t.getDragDelay()){if(a.isWebKit){this.cancelDrag=!0;t.container.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}}).call(n.prototype),t.DragdropHandler=n}),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(e,t,i){"use strict";var n=e("./dom");t.get=function(e,t){var i=new XMLHttpRequest;i.open("GET",e,!0),i.onreadystatechange=function(){4===i.readyState&&t(i.responseText)},i.send(null)},t.loadScript=function(e,t){var i=n.getDocumentHead(),r=document.createElement("script");r.src=e,i.appendChild(r),r.onload=r.onreadystatechange=function(e,i){!i&&r.readyState&&"loaded"!=r.readyState&&"complete"!=r.readyState||(r=r.onload=r.onreadystatechange=null,i||t())}},t.qualifyURL=function(e){var t=document.createElement("a");return t.href=e,t.href}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(e,t,i){"use strict";var n={},r=function(){this.propagationStopped=!0},o=function(){this.defaultPrevented=!0};n._emit=n._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var i=this._eventRegistry[e]||[],n=this._defaultHandlers[e];if(i.length||n){"object"==typeof t&&t||(t={}),t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=r),t.preventDefault||(t.preventDefault=o),i=i.slice();for(var s=0;s1&&(r=i[i.length-2]);var s=h[t+"Path"];return null==s?s=h.basePath:"/"==n&&(t=n=""),s&&"/"!=s.slice(-1)&&(s+="/"),s+t+n+r+this.get("suffix")},t.setModuleUrl=function(e,t){return h.$moduleUrls[e]=t},t.$loading={},t.loadModule=function(i,n){var r,o;Array.isArray(i)&&(o=i[0],i=i[1]);try{r=e(i)}catch(e){}if(r&&!t.$loading[i])return n&&n(r);if(t.$loading[i]||(t.$loading[i]=[]),t.$loading[i].push(n),!(t.$loading[i].length>1)){var s=function(){e([i],function(e){t._emit("load.module",{name:i,module:e});var n=t.$loading[i];t.$loading[i]=null,n.forEach(function(t){t&&t(e)})})};if(!t.get("packaged"))return s();a.loadScript(t.moduleUrl(i,o),s)}},r(!0),t.init=r}),ace.define("ace/mouse/mouse_handler",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/mouse/default_handlers","ace/mouse/default_gutter_handler","ace/mouse/mouse_event","ace/mouse/dragdrop_handler","ace/config"],function(e,t,i){"use strict";var n=e("../lib/event"),r=e("../lib/useragent"),o=e("./default_handlers").DefaultHandlers,s=e("./default_gutter_handler").GutterHandler,a=e("./mouse_event").MouseEvent,l=e("./dragdrop_handler").DragdropHandler,c=e("../config"),h=function(e){var t=this;this.editor=e,new o(this),new s(this),new l(this);var i=function(t){(!document.hasFocus||!document.hasFocus()||!e.isFocused()&&document.activeElement==(e.textInput&&e.textInput.getElement()))&&window.focus(),e.focus()},a=e.renderer.getMouseEventTarget();n.addListener(a,"click",this.onMouseEvent.bind(this,"click")),n.addListener(a,"mousemove",this.onMouseMove.bind(this,"mousemove")),n.addMultiMouseDownListener([a,e.renderer.scrollBarV&&e.renderer.scrollBarV.inner,e.renderer.scrollBarH&&e.renderer.scrollBarH.inner,e.textInput&&e.textInput.getElement()].filter(Boolean),[400,300,250],this,"onMouseEvent"),n.addMouseWheelListener(e.container,this.onMouseWheel.bind(this,"mousewheel")),n.addTouchMoveListener(e.container,this.onTouchMove.bind(this,"touchmove"));var c=e.renderer.$gutter;n.addListener(c,"mousedown",this.onMouseEvent.bind(this,"guttermousedown")),n.addListener(c,"click",this.onMouseEvent.bind(this,"gutterclick")),n.addListener(c,"dblclick",this.onMouseEvent.bind(this,"gutterdblclick")),n.addListener(c,"mousemove",this.onMouseEvent.bind(this,"guttermousemove")),n.addListener(a,"mousedown",i),n.addListener(c,"mousedown",i),r.isIE&&e.renderer.scrollBarV&&(n.addListener(e.renderer.scrollBarV.element,"mousedown",i),n.addListener(e.renderer.scrollBarH.element,"mousedown",i)),e.on("mousemove",function(i){if(!t.state&&!t.$dragDelay&&t.$dragEnabled){var n=e.renderer.screenToTextCoordinates(i.x,i.y),r=e.session.selection.getRange(),o=e.renderer;!r.isEmpty()&&r.insideStart(n.row,n.column)?o.setCursorStyle("default"):o.setCursorStyle("")}})};(function(){this.onMouseEvent=function(e,t){this.editor._emit(e,new a(t,this.editor))},this.onMouseMove=function(e,t){var i=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;i&&i.length&&this.editor._emit(e,new a(t,this.editor))},this.onMouseWheel=function(e,t){var i=new a(t,this.editor);i.speed=2*this.$scrollSpeed,i.wheelX=t.wheelX,i.wheelY=t.wheelY,this.editor._emit(e,i)},this.onTouchMove=function(e,t){var i=new a(t,this.editor);i.speed=1,i.wheelX=t.wheelX,i.wheelY=t.wheelY,this.editor._emit(e,i)},this.setState=function(e){this.state=e},this.captureMouse=function(e,t){this.x=e.x,this.y=e.y,this.isMousePressed=!0;var i=this.editor.renderer;i.$keepTextAreaAtCursor&&(i.$keepTextAreaAtCursor=null);var o=this,s=function(e){if(e){if(r.isWebKit&&!e.which&&o.releaseMouse)return o.releaseMouse();o.x=e.clientX,o.y=e.clientY,t&&t(e),o.mouseEvent=new a(e,o.editor),o.$mouseMoved=!0}},l=function(e){clearInterval(h),c(),o[o.state+"End"]&&o[o.state+"End"](e),o.state="",null==i.$keepTextAreaAtCursor&&(i.$keepTextAreaAtCursor=!0,i.$moveTextAreaToCursor()),o.isMousePressed=!1,o.$onCaptureMouseMove=o.releaseMouse=null,e&&o.onMouseEvent("mouseup",e)},c=function(){o[o.state]&&o[o.state](),o.$mouseMoved=!1};if(r.isOldIE&&"dblclick"==e.domEvent.type)return setTimeout(function(){l(e)});o.$onCaptureMouseMove=s,o.releaseMouse=n.capture(this.editor.container,s,l);var h=setInterval(c,20)},this.releaseMouse=null,this.cancelContextMenu=function(){var e=function(t){t&&t.domEvent&&"contextmenu"!=t.domEvent.type||(this.editor.off("nativecontextmenu",e),t&&t.domEvent&&n.stopEvent(t.domEvent))}.bind(this);setTimeout(e,10),this.editor.on("nativecontextmenu",e)}}).call(h.prototype),c.defineOptions(h.prototype,"mouseHandler",{scrollSpeed:{initialValue:2},dragDelay:{initialValue:r.isMac?150:0},dragEnabled:{initialValue:!0},focusTimout:{initialValue:0},tooltipFollowsMouse:{initialValue:!0}}),t.MouseHandler=h}),ace.define("ace/mouse/fold_handler",["require","exports","module"],function(e,t,i){"use strict";function n(e){e.on("click",function(t){var i=t.getDocumentPosition(),n=e.session,r=n.getFoldAt(i.row,i.column,1);r&&(t.getAccelKey()?n.removeFold(r):n.expandFold(r),t.stop())}),e.on("gutterclick",function(t){if("foldWidgets"==e.renderer.$gutterLayer.getRegion(t)){var i=t.getDocumentPosition().row,n=e.session;n.foldWidgets&&n.foldWidgets[i]&&e.session.onFoldWidgetClick(i,t),e.isFocused()||e.focus(),t.stop()}}),e.on("gutterdblclick",function(t){if("foldWidgets"==e.renderer.$gutterLayer.getRegion(t)){var i=t.getDocumentPosition().row,n=e.session,r=n.getParentFoldRangeData(i,!0),o=r.range||r.firstRange;if(o){i=o.start.row;var s=n.getFoldAt(i,n.getLine(i).length,1);s?n.removeFold(s):(n.addFold("...",o),e.renderer.scrollCursorIntoView({row:o.start.row,column:0}))}t.stop()}})}t.FoldHandler=n}),ace.define("ace/keyboard/keybinding",["require","exports","module","ace/lib/keys","ace/lib/event"],function(e,t,i){"use strict";var n=e("../lib/keys"),r=e("../lib/event"),o=function(e){this.$editor=e,this.$data={editor:e},this.$handlers=[],this.setDefaultHandler(e.commands)};(function(){this.setDefaultHandler=function(e){this.removeKeyboardHandler(this.$defaultHandler),this.$defaultHandler=e,this.addKeyboardHandler(e,0)},this.setKeyboardHandler=function(e){var t=this.$handlers;if(t[t.length-1]!=e){for(;t[t.length-1]&&t[t.length-1]!=this.$defaultHandler;)this.removeKeyboardHandler(t[t.length-1]);this.addKeyboardHandler(e,1)}},this.addKeyboardHandler=function(e,t){if(e){"function"!=typeof e||e.handleKeyboard||(e.handleKeyboard=e);var i=this.$handlers.indexOf(e);-1!=i&&this.$handlers.splice(i,1),void 0==t?this.$handlers.push(e):this.$handlers.splice(t,0,e),-1==i&&e.attach&&e.attach(this.$editor)}},this.removeKeyboardHandler=function(e){var t=this.$handlers.indexOf(e);return-1!=t&&(this.$handlers.splice(t,1),e.detach&&e.detach(this.$editor),!0)},this.getKeyboardHandler=function(){return this.$handlers[this.$handlers.length-1]},this.getStatusText=function(){var e=this.$data,t=e.editor;return this.$handlers.map(function(i){return i.getStatusText&&i.getStatusText(t,e)||""}).filter(Boolean).join(" ")},this.$callKeyboardHandlers=function(e,t,i,n){for(var o,s=!1,a=this.$editor.commands,l=this.$handlers.length;l--&&!((o=this.$handlers[l].handleKeyboard(this.$data,e,t,i,n))&&o.command&&(s="null"==o.command||a.exec(o.command,this.$editor,o.args,n),s&&n&&-1!=e&&1!=o.passEvent&&1!=o.command.passEvent&&r.stopEvent(n),s)););return s||-1!=e||(o={command:"insertstring"},s=a.exec("insertstring",this.$editor,t)),s&&this.$editor._signal&&this.$editor._signal("keyboardActivity",o),s},this.onCommandKey=function(e,t,i){var r=n.keyCodeToString(i);this.$callKeyboardHandlers(t,r,i,e)},this.onTextInput=function(e){this.$callKeyboardHandlers(-1,e)}}).call(o.prototype),t.KeyBinding=o}),ace.define("ace/lib/bidiutil",["require","exports","module"],function(e,t,i){"use strict";function n(e,t,i,n){var r=a?p:f,m=null,g=null,v=null,w=0,y=null,A=-1,b=null,x=null,S=[];if(!n)for(b=0,n=[];b0)if(16==y){for(b=A;b-1){for(b=A;b=0&&n[$]==F;$--)t[$]=a}}function r(e,t,i){if(!(l=e){for(n=h+1;n=e;)n++;for(r=h,o=n-1;r=t.length||(r=i[n-1])!=w&&r!=y||(o=t[n+1])!=w&&o!=y?A:(c&&(o=y),o==r?o:A);case S:return r=n>0?i[n-1]:C,r==w&&n+10&&i[n-1]==w)return w;if(c)return A;for(l=n+1,s=t.length;l=1425&&p<=2303||64286==p;if(r=t[l],m&&(r==v||r==b))return v}return n<1||(r=t[n-1])==C?A:i[n-1];case C:return c=!1,d=!0,a;case E:return u=!0,A;case k:case B:case L:case R:case _:c=!1;case T:return A}}function s(e){var t=e.charCodeAt(0),i=t>>8;return 0==i?t>191?g:P[t]:5==i?/[\u0591-\u05f4]/.test(e)?v:g:6==i?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(e)?D:/[\u0660-\u0669\u066b-\u066c]/.test(e)?y:1642==t?$:/[\u06f0-\u06f9]/.test(e)?w:b:32==i&&t<=8287?M[255&t]:254==i&&t>=65136?b:A}var a=0,l=0,c=!1,h=!1,d=!1,u=!1,f=[[0,3,0,1,0,0,0],[0,3,0,1,2,2,0],[0,3,0,17,2,0,1],[0,3,5,5,4,1,0],[0,3,21,21,4,0,1],[0,3,5,5,4,2,0]],p=[[2,0,1,1,0,1,0],[2,0,1,1,0,2,0],[2,0,2,1,3,2,0],[2,0,2,33,3,1,1]],m=1,g=0,v=1,w=2,y=3,A=4,C=5,E=6,b=7,F=8,x=9,S=10,$=11,D=12,k=13,B=14,_=15,L=16,R=17,T=18,P=[T,T,T,T,T,T,T,T,T,E,C,E,F,C,T,T,T,T,T,T,T,T,T,T,T,T,T,T,C,C,C,E,F,A,A,$,$,$,A,A,A,A,A,S,x,S,x,x,w,w,w,w,w,w,w,w,w,w,x,A,A,A,A,A,A,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,A,A,A,A,A,A,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,A,A,A,A,T,T,T,T,T,T,C,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,x,A,$,$,$,$,A,A,A,A,g,A,A,T,A,A,$,$,w,w,A,g,A,A,A,w,g,A,A,A,A,A],M=[F,F,F,F,F,F,F,F,F,F,F,T,T,T,g,v,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,F,C,k,B,_,L,R,x,$,$,$,$,$,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,x,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,F];t.L=g,t.R=v,t.EN=w,t.ON_R=3,t.AN=4,t.R_H=5,t.B=6,t.DOT="·",t.doBidiReorder=function(e,i,o){if(e.length<2)return{};var s=e.split(""),l=new Array(s.length),c=new Array(s.length),h=[];a=o?m:0,n(s,h,s.length,i);for(var d=0;db&&i[d]0&&"ل"===s[d-1]&&/\u0622|\u0623|\u0625|\u0627/.test(s[d])&&(h[d-1]=h[d]=t.R_H,d++);s[s.length-1]===t.DOT&&(h[s.length-1]=t.B);for(var d=0;d=0&&(e=this.session.$docRowCache[i])}return e},this.getSplitIndex=function(){var e=0,t=this.session.$screenRowCache;if(t.length)for(var i,n=this.session.$getRowCacheIndex(t,this.currentRow);this.currentRow-e>0&&(i=this.session.$getRowCacheIndex(t,this.currentRow-e-1))===n;)n=i,e++;return e},this.updateRowLine=function(e,t){if(void 0===e&&(e=this.getDocumentRow()),this.wrapIndent=0,this.isLastRow=e===this.session.getLength()-1,this.line=this.session.getLine(e),this.session.$useWrapMode){var i=this.session.$wrapData[e];i&&(void 0===t&&(t=this.getSplitIndex()),t>0&&i.length?(this.wrapIndent=i.indent,this.line=t0?e-1:0,this.bidiMap),i=this.bidiMap.bidiLevels,r=0;0===e&&i[t]%2!=0&&t++;for(var o=0;o=c&&ri+s/2;){if(i+=s,r===o.length-1){s=0;break}s=this.charWidths[o[++r]]}return r>0&&o[r-1]%2!=0&&o[r]%2==0?(e0&&o[r-1]%2==0&&o[r]%2!=0?t=1+(e>i?this.bidiMap.logicalFromVisual[r]:this.bidiMap.logicalFromVisual[r-1]):this.isRtlDir&&r===o.length-1&&0===s&&o[r-1]%2==0||!this.isRtlDir&&0===r&&o[r]%2!=0?t=1+this.bidiMap.logicalFromVisual[r]:(r>0&&o[r-1]%2!=0&&0!==s&&r--,t=this.bidiMap.logicalFromVisual[r]),t+this.wrapIndent}}).call(a.prototype),t.BidiHandler=a}),ace.define("ace/range",["require","exports","module"],function(e,t,i){"use strict";var n=function(e,t){return e.row-t.row||e.column-t.column},r=function(e,t,i,n){this.start={row:e,column:t},this.end={row:i,column:n}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return 0==this.compare(e,t)},this.compareRange=function(e){var t,i=e.end,n=e.start;return t=this.compare(i.row,i.column),1==t?(t=this.compare(n.row,n.column),1==t?2:0==t?1:0):-1==t?-2:(t=this.compare(n.row,n.column),-1==t?-1:1==t?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return 0==this.comparePoint(e.start)&&0==this.comparePoint(e.end)},this.intersects=function(e){var t=this.compareRange(e);return-1==t||0==t||1==t},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){"object"==typeof e?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){"object"==typeof e?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return 0==this.compare(e,t)&&(!this.isEnd(e,t)&&!this.isStart(e,t))},this.insideStart=function(e,t){return 0==this.compare(e,t)&&!this.isEnd(e,t)},this.insideEnd=function(e,t){return 0==this.compare(e,t)&&!this.isStart(e,t)},this.compare=function(e,t){return this.isMultiLine()||e!==this.start.row?ethis.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0:tthis.end.column?1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var i={row:t+1,column:0};else if(this.end.rowt)var n={row:t+1,column:0};else if(this.start.rowt.row||e.row==t.row&&e.column>t.column},this.getRange=function(){var e=this.anchor,t=this.lead;return this.isEmpty()?s.fromPoints(t,t):this.isBackwards()?s.fromPoints(t,e):s.fromPoints(e,t)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){var e=this.doc.getLength()-1;this.setSelectionAnchor(0,0),this.moveCursorTo(e,this.doc.getLine(e).length)},this.setRange=this.setSelectionRange=function(e,t){t?(this.setSelectionAnchor(e.end.row,e.end.column),this.selectTo(e.start.row,e.start.column)):(this.setSelectionAnchor(e.start.row,e.start.column),this.selectTo(e.end.row,e.end.column)),this.getRange().isEmpty()&&(this.$isEmpty=!0),this.$desiredColumn=null},this.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},this.selectTo=function(e,t){this.$moveSelection(function(){this.moveCursorTo(e,t)})},this.selectToPosition=function(e){this.$moveSelection(function(){this.moveCursorToPosition(e)})},this.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},this.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){ -this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(e,t){if(void 0===t){var i=e||this.lead;e=i.row,t=i.column}return this.session.getWordRange(e,t)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},this.getLineRange=function(e,t){var i,n="number"==typeof e?e:this.lead.row,r=this.session.getFoldLine(n);return r?(n=r.start.row,i=r.end.row):i=n,!0===t?new s(n,0,i,this.session.getLine(i).length):new s(n,0,i+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.wouldMoveIntoSoftTab=function(e,t,i){var n=e.column,r=e.column+t;return i<0&&(n=e.column-t,r=e.column),this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(n,r).split(" ").length-1==t},this.moveCursorLeft=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,-1))this.moveCursorTo(e.start.row,e.start.column);else if(0===t.column)t.row>0&&this.moveCursorTo(t.row-1,this.doc.getLine(t.row-1).length);else{var i=this.session.getTabSize();this.wouldMoveIntoSoftTab(t,i,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-i):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,1))this.moveCursorTo(e.end.row,e.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(t.column=n)}}this.moveCursorTo(t.row,t.column)},this.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var e=this.lead.row,t=this.lead.column,i=this.doc.getLine(e),n=i.substring(t);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var r=this.session.getFoldAt(e,t,1);return r?void this.moveCursorTo(r.end.row,r.end.column):(this.session.nonTokenRe.exec(n)&&(t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,n=i.substring(t)),t>=i.length?(this.moveCursorTo(e,i.length),this.moveCursorRight(),void(e0&&this.moveCursorWordLeft());this.session.tokenRe.exec(o)&&(i-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(t,i)},this.$shortWordEndIndex=function(e){var t,i=0,n=/\s/,r=this.session.tokenRe;if(r.lastIndex=0,this.session.tokenRe.exec(e))i=this.session.tokenRe.lastIndex;else{for(;(t=e[i])&&n.test(t);)i++;if(i<1)for(r.lastIndex=0;(t=e[i])&&!r.test(t);)if(r.lastIndex=0,i++,n.test(t)){if(i>2){i--;break}for(;(t=e[i])&&n.test(t);)i++;if(i>2)break}}return r.lastIndex=0,i},this.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,i=this.doc.getLine(e),n=i.substring(t),r=this.session.getFoldAt(e,t,1);if(r)return this.moveCursorTo(r.end.row,r.end.column);if(t==i.length){var o=this.doc.getLength();do{e++,n=this.doc.getLine(e)}while(e0&&/^\s*$/.test(n));i=n.length,/\s+$/.test(n)||(n="")}var o=r.stringReverse(n),s=this.$shortWordEndIndex(o);return this.moveCursorTo(t,i-s)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(e,t){var i,n=this.session.documentToScreenPosition(this.lead.row,this.lead.column);0===t&&(0!==e&&(this.session.$bidiHandler.isBidiRow(n.row,this.lead.row)?(i=this.session.$bidiHandler.getPosLeft(n.column),n.column=Math.round(i/this.session.$bidiHandler.charWidths[0])):i=n.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?n.column=this.$desiredColumn:this.$desiredColumn=n.column);var r=this.session.screenToDocumentPosition(n.row+e,n.column,i);0!==e&&0===t&&r.row===this.lead.row&&r.column===this.lead.column&&this.session.lineWidgets&&this.session.lineWidgets[r.row]&&(r.row>0||e>0)&&r.row++,this.moveCursorTo(r.row,r.column+t,0===t)},this.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},this.moveCursorTo=function(e,t,i){var n=this.session.getFoldAt(e,t,1);n&&(e=n.start.row,t=n.start.column),this.$keepDesiredColumnOnChange=!0;var r=this.session.getLine(e);/[\uDC00-\uDFFF]/.test(r.charAt(t))&&r.charAt(t-1)&&(this.lead.row==e&&this.lead.column==t+1?t-=1:t+=1),this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,i||(this.$desiredColumn=null)},this.moveCursorToScreen=function(e,t,i){var n=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(n.row,n.column,i)},this.detach=function(){this.lead.detach(),this.anchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},this.getRangeOfMovements=function(e){var t=this.getCursor();try{e(this);var i=this.getCursor();return s.fromPoints(t,i)}catch(e){return s.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},this.toJSON=function(){if(this.rangeCount)var e=this.ranges.map(function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t});else{var e=this.getRange();e.isBackwards=this.isBackwards()}return e},this.fromJSON=function(e){if(void 0==e.start){if(this.rangeList){this.toSingleRange(e[0]);for(var t=e.length;t--;){var i=s.fromPoints(e[t].start,e[t].end);e[t].isBackwards&&(i.cursor=i.start),this.addRange(i,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},this.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0}}).call(a.prototype),t.Selection=a}),ace.define("ace/tokenizer",["require","exports","module","ace/config"],function(e,t,i){"use strict";var n=e("./config"),r=2e3,o=function(e){this.states=e,this.regExps={},this.matchMappings={};for(var t in this.states){for(var i=this.states[t],n=[],r=0,o=this.matchMappings[t]={defaultToken:"text"},s="g",a=[],l=0;l1?this.$applyToken:c.token),d>1&&(/\\\d/.test(c.regex)?h=c.regex.replace(/\\([0-9]+)/g,function(e,t){return"\\"+(parseInt(t,10)+r+1)}):(d=1,h=this.removeCapturingGroups(c.regex)),c.splitRegex||"string"==typeof c.token||a.push(c)),o[r]=l,r+=d,n.push(h),c.onMatch||(c.onMatch=null)}}n.length||(o[0]=0,n.push("$")),a.forEach(function(e){e.splitRegex=this.createSplitterRegexp(e.regex,s)},this),this.regExps[t]=new RegExp("("+n.join(")|(")+")|($)",s)}};(function(){this.$setMaxTokenCount=function(e){r=0|e},this.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),i=this.token.apply(this,t);if("string"==typeof i)return[{type:i,value:e}];for(var n=[],r=0,o=i.length;rh){var v=e.substring(h,g-m.length);u.type==f?u.value+=v:(u.type&&c.push(u),u={type:f,value:v})}for(var w=0;wr){for(d>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});h1&&i[0]!==n&&i.unshift("#tmp",n),{tokens:c,state:i.length?i:n}},this.reportError=n.reportError}).call(o.prototype),t.Tokenizer=o}),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],function(e,t,i){"use strict";var n=e("../lib/lang"),r=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(e,t){if(t)for(var i in e){for(var n=e[i],r=0;r=this.$rowTokens.length;){if(this.$row+=1,e||(e=this.$session.getLength()),this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,i=e[t].start;if(void 0!==i)return i;for(i=0;t>0;)t-=1,i+=e[t].value.length;return i},this.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},this.getCurrentTokenRange=function(){var e=this.$rowTokens[this.$tokenIndex],t=this.getCurrentTokenColumn();return new n(this.$row,t,this.$row,t+e.value.length)}}).call(r.prototype),t.TokenIterator=r}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,i){"use strict";var n,r=e("../../lib/oop"),o=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,a=e("../../lib/lang"),l=["text","paren.rparen","punctuation.operator"],c=["text","paren.rparen","punctuation.operator","comment"],h={},d={'"':'"',"'":"'"},u=function(e){var t=-1;if(e.multiSelect&&(t=e.selection.index,h.rangeCount!=e.multiSelect.rangeCount&&(h={rangeCount:e.multiSelect.rangeCount})),h[t])return n=h[t];n=h[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},f=function(e,t,i,n){var r=e.end.row-e.start.row;return{text:i+t+n,selection:[0,e.start.column+1,r,e.end.column+(r?0:1)]}},p=function(e){this.add("braces","insertion",function(t,i,r,o,s){var l=r.getCursorPosition(),c=o.doc.getLine(l.row);if("{"==s){u(r);var h=r.getSelectionRange(),d=o.doc.getTextRange(h);if(""!==d&&"{"!==d&&r.getWrapBehavioursEnabled())return f(h,d,"{","}");if(p.isSaneInsertion(r,o))return/[\]\}\)]/.test(c[l.column])||r.inMultiSelectMode||e&&e.braces?(p.recordAutoInsert(r,o,"}"),{text:"{}",selection:[1,1]}):(p.recordMaybeInsert(r,o,"{"),{text:"{",selection:[1,1]})}else if("}"==s){u(r);var m=c.substring(l.column,l.column+1);if("}"==m){var g=o.$findOpeningBracket("}",{column:l.column+1,row:l.row});if(null!==g&&p.isAutoInsertedClosing(l,c,s))return p.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if("\n"==s||"\r\n"==s){u(r);var v="";p.isMaybeInsertedClosing(l,c)&&(v=a.stringRepeat("}",n.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var m=c.substring(l.column,l.column+1);if("}"===m){var w=o.findMatchingBracket({row:l.row,column:l.column+1},"}");if(!w)return null;var y=this.$getIndent(o.getLine(w.row))}else{if(!v)return void p.clearMaybeInsertedClosing();var y=this.$getIndent(c)}var A=y+o.getTabString();return{text:"\n"+A+"\n"+y+v,selection:[1,A.length,1,A.length]}}p.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,i,r,o){var s=r.doc.getTextRange(o);if(!o.isMultiLine()&&"{"==s){u(i);if("}"==r.doc.getLine(o.start.row).substring(o.end.column,o.end.column+1))return o.end.column++,o;n.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,i,n,r){if("("==r){u(i);var o=i.getSelectionRange(),s=n.doc.getTextRange(o);if(""!==s&&i.getWrapBehavioursEnabled())return f(o,s,"(",")");if(p.isSaneInsertion(i,n))return p.recordAutoInsert(i,n,")"),{text:"()",selection:[1,1]}}else if(")"==r){u(i);var a=i.getCursorPosition(),l=n.doc.getLine(a.row),c=l.substring(a.column,a.column+1);if(")"==c){var h=n.$findOpeningBracket(")",{column:a.column+1,row:a.row});if(null!==h&&p.isAutoInsertedClosing(a,l,r))return p.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,i,n,r){var o=n.doc.getTextRange(r);if(!r.isMultiLine()&&"("==o){u(i);if(")"==n.doc.getLine(r.start.row).substring(r.start.column+1,r.start.column+2))return r.end.column++,r}}),this.add("brackets","insertion",function(e,t,i,n,r){if("["==r){u(i);var o=i.getSelectionRange(),s=n.doc.getTextRange(o);if(""!==s&&i.getWrapBehavioursEnabled())return f(o,s,"[","]");if(p.isSaneInsertion(i,n))return p.recordAutoInsert(i,n,"]"),{text:"[]",selection:[1,1]}}else if("]"==r){u(i);var a=i.getCursorPosition(),l=n.doc.getLine(a.row),c=l.substring(a.column,a.column+1);if("]"==c){var h=n.$findOpeningBracket("]",{column:a.column+1,row:a.row});if(null!==h&&p.isAutoInsertedClosing(a,l,r))return p.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,i,n,r){var o=n.doc.getTextRange(r);if(!r.isMultiLine()&&"["==o){u(i);if("]"==n.doc.getLine(r.start.row).substring(r.start.column+1,r.start.column+2))return r.end.column++,r}}),this.add("string_dquotes","insertion",function(e,t,i,n,r){var o=n.$mode.$quotes||d;if(1==r.length&&o[r]){if(this.lineCommentStart&&-1!=this.lineCommentStart.indexOf(r))return;u(i);var s=r,a=i.getSelectionRange(),l=n.doc.getTextRange(a);if(!(""===l||1==l.length&&o[l])&&i.getWrapBehavioursEnabled())return f(a,l,s,s);if(!l){var c=i.getCursorPosition(),h=n.doc.getLine(c.row),p=h.substring(c.column-1,c.column),m=h.substring(c.column,c.column+1),g=n.getTokenAt(c.row,c.column),v=n.getTokenAt(c.row,c.column+1);if("\\"==p&&g&&/escape/.test(g.type))return null;var w,y=g&&/string|escape/.test(g.type),A=!v||/string|escape/.test(v.type);if(m==s)(w=y!==A)&&/string\.end/.test(v.type)&&(w=!1);else{if(y&&!A)return null;if(y&&A)return null;var C=n.$mode.tokenRe;C.lastIndex=0;var E=C.test(p);C.lastIndex=0;var b=C.test(p);if(E||b)return null;if(m&&!/[\s;,.})\]\\]/.test(m))return null;w=!0}return{text:w?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,i,n,r){var o=n.doc.getTextRange(r);if(!r.isMultiLine()&&('"'==o||"'"==o)){u(i);if(n.doc.getLine(r.start.row).substring(r.start.column+1,r.start.column+2)==o)return r.end.column++,r}})};p.isSaneInsertion=function(e,t){var i=e.getCursorPosition(),n=new s(t,i.row,i.column);if(!this.$matchTokenType(n.getCurrentToken()||"text",l)){var r=new s(t,i.row,i.column+1);if(!this.$matchTokenType(r.getCurrentToken()||"text",l))return!1}return n.stepForward(),n.getCurrentTokenRow()!==i.row||this.$matchTokenType(n.getCurrentToken()||"text",c)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,i){var r=e.getCursorPosition(),o=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,o,n.autoInsertedLineEnd[0])||(n.autoInsertedBrackets=0),n.autoInsertedRow=r.row,n.autoInsertedLineEnd=i+o.substr(r.column),n.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,i){var r=e.getCursorPosition(),o=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,o)||(n.maybeInsertedBrackets=0),n.maybeInsertedRow=r.row,n.maybeInsertedLineStart=o.substr(0,r.column)+i,n.maybeInsertedLineEnd=o.substr(r.column),n.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,i){return n.autoInsertedBrackets>0&&e.row===n.autoInsertedRow&&i===n.autoInsertedLineEnd[0]&&t.substr(e.column)===n.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return n.maybeInsertedBrackets>0&&e.row===n.maybeInsertedRow&&t.substr(e.column)===n.maybeInsertedLineEnd&&t.substr(0,e.column)==n.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){n.autoInsertedLineEnd=n.autoInsertedLineEnd.substr(1),n.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){n&&(n.maybeInsertedBrackets=0,n.maybeInsertedRow=-1)},r.inherits(p,o),t.CstyleBehaviour=p}),ace.define("ace/unicode",["require","exports","module"],function(e,t,i){"use strict";t.packages={},function(e){for(var i in e)t.packages[i]=e[i].replace(/\w{4}/g,"\\u$&")}({L:"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",Ll:"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A",Lu:"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A",Lt:"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC",Lm:"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F",Lo:"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",M:"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26",Mn:"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26",Mc:"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC",Me:"0488048906DE20DD-20E020E2-20E4A670-A672",N:"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nd:"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nl:"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF",No:"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835",P:"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65",Pd:"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D",Ps:"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62",Pe:"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63",Pi:"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20",Pf:"00BB2019201D203A2E032E052E0A2E0D2E1D2E21",Pc:"005F203F20402054FE33FE34FE4D-FE4FFF3F",Po:"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65",S:"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD",Sm:"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC",Sc:"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6",Sk:"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3",So:"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD",Z:"002000A01680180E2000-200A20282029202F205F3000",Zs:"002000A01680180E2000-200A202F205F3000",Zl:"2028",Zp:"2029",C:"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF",Cc:"0000-001F007F-009F",Cf:"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB",Co:"E000-F8FF",Cs:"D800-DFFF",Cn:"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF"})}),ace.define("ace/mode/text",["require","exports","module","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/behaviour/cstyle","ace/unicode","ace/lib/lang","ace/token_iterator","ace/range"],function(e,t,i){"use strict";var n=e("../tokenizer").Tokenizer,r=e("./text_highlight_rules").TextHighlightRules,o=e("./behaviour/cstyle").CstyleBehaviour,s=e("../unicode"),a=e("../lib/lang"),l=e("../token_iterator").TokenIterator,c=e("../range").Range,h=function(){this.HighlightRules=r};(function(){this.$defaultBehaviour=new o,this.tokenRe=new RegExp("^["+s.packages.L+s.packages.Mn+s.packages.Mc+s.packages.Nd+s.packages.Pc+"\\$_]+","g"),this.nonTokenRe=new RegExp("^(?:[^"+s.packages.L+s.packages.Mn+s.packages.Mc+s.packages.Nd+s.packages.Pc+"\\$_]|\\s])+","g"),this.getTokenizer=function(){return this.$tokenizer||(this.$highlightRules=this.$highlightRules||new this.HighlightRules(this.$highlightRuleConfig),this.$tokenizer=new n(this.$highlightRules.getRules())),this.$tokenizer},this.lineCommentStart="",this.blockComment="",this.toggleCommentLines=function(e,t,i,n){function r(e){for(var t=i;t<=n;t++)e(o.getLine(t),t)}var o=t.doc,s=!0,l=!0,c=1/0,h=t.getTabSize(),d=!1;if(this.lineCommentStart){if(Array.isArray(this.lineCommentStart))var u=this.lineCommentStart.map(a.escapeRegExp).join("|"),f=this.lineCommentStart[0];else var u=a.escapeRegExp(this.lineCommentStart),f=this.lineCommentStart;u=new RegExp("^(\\s*)(?:"+u+") ?"),d=t.getUseSoftTabs();var p=function(e,t){var i=e.match(u);if(i){var n=i[1].length,r=i[0].length;w(e,n,r)||" "!=i[0][r-1]||r--,o.removeInLine(t,n,r)}},m=f+" ",g=function(e,t){s&&!/\S/.test(e)||(w(e,c,c)?o.insertInLine({row:t,column:c},m):o.insertInLine({row:t,column:c},f))},v=function(e,t){return u.test(e)},w=function(e,t,i){for(var n=0;t--&&" "==e.charAt(t);)n++;if(n%h!=0)return!1;for(var n=0;" "==e.charAt(i++);)n++;return h>2?n%h!=h-1:n%h==0}}else{if(!this.blockComment)return!1;var f=this.blockComment.start,y=this.blockComment.end,u=new RegExp("^(\\s*)(?:"+a.escapeRegExp(f)+")"),A=new RegExp("(?:"+a.escapeRegExp(y)+")\\s*$"),g=function(e,t){v(e,t)||s&&!/\S/.test(e)||(o.insertInLine({row:t,column:e.length},y),o.insertInLine({row:t,column:c},f))},p=function(e,t){var i;(i=e.match(A))&&o.removeInLine(t,e.length-i[0].length,e.length),(i=e.match(u))&&o.removeInLine(t,i[1].length,i[0].length)},v=function(e,i){if(u.test(e))return!0;for(var n=t.getTokens(i),r=0;re.length&&(C=e.length)}),c==1/0&&(c=C,s=!1,l=!1),d&&c%h!=0&&(c=Math.floor(c/h)*h),r(l?p:g)},this.toggleBlockComment=function(e,t,i,n){var r=this.blockComment;if(r){!r.start&&r[0]&&(r=r[0]);var o,s,a=new l(t,n.row,n.column),h=a.getCurrentToken(),d=(t.selection,t.selection.toOrientedRange());if(h&&/comment/.test(h.type)){for(var u,f;h&&/comment/.test(h.type);){var p=h.value.indexOf(r.start);if(-1!=p){var m=a.getCurrentTokenRow(),g=a.getCurrentTokenColumn()+p;u=new c(m,g,m,g+r.start.length);break}h=a.stepBackward()}for(var a=new l(t,n.row,n.column),h=a.getCurrentToken();h&&/comment/.test(h.type);){var p=h.value.indexOf(r.end);if(-1!=p){var m=a.getCurrentTokenRow(),g=a.getCurrentTokenColumn()+p;f=new c(m,g,m,g+r.end.length);break}h=a.stepForward()}f&&t.remove(f),u&&(t.remove(u),o=u.start.row,s=-r.start.length)}else s=r.start.length,o=i.start.row,t.insert(i.end,r.end),t.insert(i.start,r.start);d.start.row==o&&(d.start.column+=s),d.end.row==o&&(d.end.column+=s),t.selection.fromOrientedRange(d)}},this.getNextLineIndent=function(e,t,i){return this.$getIndent(t)},this.checkOutdent=function(e,t,i){return!1},this.autoOutdent=function(e,t,i){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){this.$embeds=[],this.$modes={};for(var t in e)e[t]&&(this.$embeds.push(t),this.$modes[t]=new e[t]);for(var i=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"],t=0;tthis.row)){var i=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(i.row,i.column,!0)}},this.setPosition=function(e,t,i){var n;if(n=i?{row:e,column:t}:this.$clipPositionToDocument(e,t),this.row!=n.row||this.column!=n.column){var r={row:this.row,column:this.column};this.row=n.row,this.column=n.column,this._signal("change",{old:r,value:n})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(e,t){var i={};return e>=this.document.getLength()?(i.row=Math.max(0,this.document.getLength()-1),i.column=this.document.getLine(i.row).length):e<0?(i.row=0,i.column=0):(i.row=e,i.column=Math.min(this.document.getLine(i.row).length,Math.max(0,t))),t<0&&(i.column=0),i}}).call(o.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(e,t,i){"use strict";var n=e("./lib/oop"),r=e("./apply_delta").applyDelta,o=e("./lib/event_emitter").EventEmitter,s=e("./range").Range,a=e("./anchor").Anchor,l=function(e){this.$lines=[""],0===e.length?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){n.implement(this,o),this.setValue=function(e){var t=this.getLength()-1;this.remove(new s(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new a(this,e,t)},0==="aaa".split(/a/).length?this.$split=function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){this.$newLineMode!==e&&(this.$newLineMode=e,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return"\r\n"==e||"\r"==e||"\n"==e},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||"").substring(e.start.column);var i=t.length-1;e.end.row-e.start.row==i&&(t[i]=t[i].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var i=this.clippedPos(e.row,e.column),n=this.pos(e.row,e.column+t.length);return this.applyDelta({start:i,end:n,action:"insert",lines:[t]},!0),this.clonePos(n)},this.clippedPos=function(e,t){var i=this.getLength();void 0===e?e=i:e<0?e=0:e>=i&&(e=i-1,t=void 0);var n=this.getLine(e);return void 0==t&&(t=n.length),t=Math.min(Math.max(t,0),n.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var i=0;e0,n=t=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},this.replace=function(e,t){if(e instanceof s||(e=s.fromPoints(e.start,e.end)),0===t.length&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);return t?this.insert(e.start,t):e.start},this.applyDeltas=function(e){for(var t=0;t=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var i="insert"==e.action;(i?e.lines.length<=1&&!e.lines[0]:!s.comparePoints(e.start,e.end))||(i&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),r(this.$lines,e,t),this._signal("change",e))},this.$splitAndapplyLargeDelta=function(e,t){for(var i=e.lines,n=i.length,r=e.start.row,o=e.start.column,s=0,a=0;;){s=a,a+=t-1;var l=i.slice(s,a);if(a>n){e.lines=l,e.start.row=r+s,e.start.column=o;break}l.push(""),this.applyDelta({start:this.pos(r+s,o),end:this.pos(r+a,o=0),action:e.action,lines:l},!0)}},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:"insert"==e.action?"remove":"insert",lines:e.lines.slice()})},this.indexToPosition=function(e,t){for(var i=this.$lines||this.getAllLines(),n=this.getNewLineCharacter().length,r=t||0,o=i.length;r20){i.running=setTimeout(i.$worker,20);break}}i.currentLine=t,-1==n&&(n=t),o<=n&&i.fireUpdateEvent(o,n)}}};(function(){n.implement(this,r),this.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(e,t){var i={first:e,last:t};this._signal("update",{data:i})},this.start=function(e){this.currentLine=Math.min(e||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},this.$updateOnChange=function(e){var t=e.start.row,i=e.end.row-t;if(0===i)this.lines[t]=null;else if("remove"==e.action)this.lines.splice(t,i+1,null),this.states.splice(t,i+1,null);else{var n=Array(i+1);n.unshift(t,1),this.lines.splice.apply(this.lines,n),this.states.splice.apply(this.states,n)}this.currentLine=Math.min(t,this.currentLine,this.doc.getLength()),this.stop()},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},this.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||"start"},this.$tokenizeRow=function(e){var t=this.doc.getLine(e),i=this.states[e-1],n=this.tokenizer.getLineTokens(t,i,e);return this.states[e]+""!=n.state+""?(this.states[e]=n.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=n.tokens}}).call(o.prototype),t.BackgroundTokenizer=o}),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,i){"use strict";var n=e("./lib/lang"),r=(e("./lib/oop"),e("./range").Range),o=function(e,t,i){this.setRegexp(e),this.clazz=t,this.type=i||"text"};(function(){this.MAX_RANGES=500,this.setRegexp=function(e){this.regExp+""!=e+""&&(this.regExp=e,this.cache=[])},this.update=function(e,t,i,o){if(this.regExp)for(var s=o.firstRow,a=o.lastRow,l=s;l<=a;l++){var c=this.cache[l];null==c&&(c=n.getMatchOffsets(i.getLine(l),this.regExp),c.length>this.MAX_RANGES&&(c=c.slice(0,this.MAX_RANGES)),c=c.map(function(e){return new r(l,e.offset,l,e.offset+e.length)}),this.cache[l]=c.length?c:"");for(var h=c.length;h--;)t.drawSingleLineMarker(e,c[h].toScreenRange(i),this.clazz,o)}}}).call(o.prototype),t.SearchHighlight=o}),ace.define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(e,t,i){"use strict";function n(e,t){this.foldData=e,Array.isArray(t)?this.folds=t:t=this.folds=[t];var i=t[t.length-1];this.range=new r(t[0].start.row,t[0].start.column,i.end.row,i.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(e){e.setFoldLine(this)},this)}var r=e("../range").Range;(function(){this.shiftRow=function(e){this.start.row+=e,this.end.row+=e,this.folds.forEach(function(t){t.start.row+=e,t.end.row+=e})},this.addFold=function(e){if(e.sameRow){if(e.start.rowthis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(e),this.folds.sort(function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)}),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},this.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},this.walk=function(e,t,i){var n,r,o,s=0,a=this.folds,l=!0;null==t&&(t=this.end.row,i=this.end.column);for(var c=0;c0)){var l=r(e,s.start);return 0===a?t&&0!==l?-o-2:o:l>0||0===l&&!t?o:-o-1}}return-o-1},this.add=function(e){var t=!e.isEmpty(),i=this.pointIndex(e.start,t);i<0&&(i=-i-1);var n=this.pointIndex(e.end,t,i);return n<0?n=-n-1:n++,this.ranges.splice(i,n-i,e)},this.addList=function(e){for(var t=[],i=e.length;i--;)t.push.apply(t,this.add(e[i]));return t},this.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},this.merge=function(){var e=[],t=this.ranges;t=t.sort(function(e,t){return r(e.start,t.start)});for(var i,n=t[0],o=1;o=0},this.containsPoint=function(e){return this.pointIndex(e)>=0},this.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},this.clipRows=function(e,t){var i=this.ranges;if(i[0].start.row>t||i[i.length-1].start.rown)break;if(h.start.row==n&&h.start.column>=t.column&&(h.start.column==t.column&&this.$insertRight||(h.start.column+=s,h.start.row+=o)),h.end.row==n&&h.end.column>=t.column){if(h.end.column==t.column&&this.$insertRight)continue;h.end.column==t.column&&s>0&&lh.start.column&&h.end.column==a[l+1].start.column&&(h.end.column-=s),h.end.column+=s,h.end.row+=o}}}if(0!=o&&l=e)return r;if(r.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var i=this.$foldData,n=0;for(t&&(n=i.indexOf(t)),-1==n&&(n=0),n;n=e)return r}return null},this.getFoldedRowCount=function(e,t){for(var i=this.$foldData,n=t-e+1,r=0;r=t){a=e?n-=t-a:n=0);break}s>=e&&(n-=a>=e?s-a:s-e+1)}return n},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort(function(e,t){return e.start.row-t.start.row}),e},this.addFold=function(e,t){var i,n=this.$foldData,r=!1;e instanceof s?i=e:(i=new s(t,e),i.collapseChildren=t.collapseChildren),this.$clipRangeToDocument(i.range);var a=i.start.row,l=i.start.column,c=i.end.row,h=i.end.column;if(!(a0&&(this.removeFolds(f),f.forEach(function(e){i.addSubFold(e)}));for(var p=0;p0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach(function(e){this.expandFold(e)},this)},this.unfold=function(e,t){var i,n;if(null==e?(i=new r(0,0,this.getLength(),0),t=!0):i="number"==typeof e?new r(e,0,e,this.getLine(e).length):"row"in e?r.fromPoints(e,e):e,n=this.getFoldsInRangeList(i),t)this.removeFolds(n);else for(var o=n;o.length;)this.expandFolds(o),o=this.getFoldsInRangeList(i);if(n.length)return n},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var i=this.getFoldLine(e,t);return i?i.end.row:e},this.getRowFoldStart=function(e,t){var i=this.getFoldLine(e,t);return i?i.start.row:e},this.getFoldDisplayLine=function(e,t,i,n,r){null==n&&(n=e.start.row),null==r&&(r=0),null==t&&(t=e.end.row),null==i&&(i=this.getLine(t).length);var o=this.doc,s="";return e.walk(function(e,t,i,a){if(!(th)break}while(o&&l.test(o.type));o=n.stepBackward()}else o=n.getCurrentToken();return c.end.row=n.getCurrentTokenRow(),c.end.column=n.getCurrentTokenColumn()+o.value.length-2,c}},this.foldAll=function(e,t,i){void 0==i&&(i=1e5);var n=this.foldWidgets;if(n){t=t||this.getLength(),e=e||0;for(var r=e;r=e){r=o.end.row;try{var s=this.addFold("...",o);s&&(s.collapseChildren=i)}catch(e){}}}}},this.$foldStyles={manual:1,markbegin:1,markbeginend:1},this.$foldStyle="markbegin",this.setFoldStyle=function(e){if(!this.$foldStyles[e])throw new Error("invalid fold style: "+e+"["+Object.keys(this.$foldStyles).join(", ")+"]");if(this.$foldStyle!=e){this.$foldStyle=e,"manual"==e&&this.unfold();var t=this.$foldMode;this.$setFolding(null),this.$setFolding(t)}},this.$setFolding=function(e){if(this.$foldMode!=e){if(this.$foldMode=e,this.off("change",this.$updateFoldWidgets),this.off("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets),this._signal("changeAnnotation"),!e||"manual"==this.$foldStyle)return void(this.foldWidgets=null);this.foldWidgets=[],this.getFoldWidget=e.getFoldWidget.bind(e,this,this.$foldStyle),this.getFoldWidgetRange=e.getFoldWidgetRange.bind(e,this,this.$foldStyle),this.$updateFoldWidgets=this.updateFoldWidgets.bind(this),this.$tokenizerUpdateFoldWidgets=this.tokenizerUpdateFoldWidgets.bind(this),this.on("change",this.$updateFoldWidgets),this.on("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets)}},this.getParentFoldRangeData=function(e,t){var i=this.foldWidgets;if(!i||t&&i[e])return{};for(var n,r=e-1;r>=0;){var o=i[r];if(null==o&&(o=i[r]=this.getFoldWidget(r)),"start"==o){var s=this.getFoldWidgetRange(r);if(n||(n=s),s&&s.end.row>=e)break}r--}return{range:-1!==r&&s,firstRange:n}},this.onFoldWidgetClick=function(e,t){t=t.domEvent;var i={children:t.shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey};if(!this.$toggleFoldWidget(e,i)){var n=t.target||t.srcElement;n&&/ace_fold-widget/.test(n.className)&&(n.className+=" ace_invalid")}},this.$toggleFoldWidget=function(e,t){if(this.getFoldWidget){var i=this.getFoldWidget(e),n=this.getLine(e),r="end"===i?-1:1,o=this.getFoldAt(e,-1===r?0:n.length,r);if(o)return t.children||t.all?this.removeFold(o):this.expandFold(o),o;var s=this.getFoldWidgetRange(e,!0);if(s&&!s.isMultiLine()&&(o=this.getFoldAt(s.start.row,s.start.column,1))&&s.isEqual(o.range))return this.removeFold(o),o;if(t.siblings){var a=this.getParentFoldRangeData(e);if(a.range)var l=a.range.start.row+1,c=a.range.end.row;this.foldAll(l,c,t.all?1e4:0)}else t.children?(c=s?s.end.row:this.getLength(),this.foldAll(e+1,c,t.all?1e4:0)):s&&(t.all&&(s.collapseChildren=1e4),this.addFold("...",s));return s}},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var i=this.$toggleFoldWidget(t,{});if(!i){var n=this.getParentFoldRangeData(t,!0);if(i=n.range||n.firstRange){t=i.start.row;var r=this.getFoldAt(t,this.getLine(t).length,1);r?this.removeFold(r):this.addFold("...",i)}}},this.updateFoldWidgets=function(e){var t=e.start.row,i=e.end.row-t;if(0===i)this.foldWidgets[t]=null;else if("remove"==e.action)this.foldWidgets.splice(t,i+1,null);else{var n=Array(i+1);n.unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,n)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}var r=e("../range").Range,o=e("./fold_line").FoldLine,s=e("./fold").Fold,a=e("../token_iterator").TokenIterator;t.Folding=n}),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(e,t,i){"use strict";function n(){this.findMatchingBracket=function(e,t){if(0==e.column)return null;var i=t||this.getLine(e.row).charAt(e.column-1);if(""==i)return null;var n=i.match(/([\(\[\{])|([\)\]\}])/);return n?n[1]?this.$findClosingBracket(n[1],e):this.$findOpeningBracket(n[2],e):null},this.getBracketRange=function(e){var t,i=this.getLine(e.row),n=!0,r=i.charAt(e.column-1),s=r&&r.match(/([\(\[\{])|([\)\]\}])/);if(s||(r=i.charAt(e.column),e={row:e.row,column:e.column+1},s=r&&r.match(/([\(\[\{])|([\)\]\}])/),n=!1),!s)return null;if(s[1]){var a=this.$findClosingBracket(s[1],e);if(!a)return null;t=o.fromPoints(e,a),n||(t.end.column++,t.start.column--),t.cursor=t.end}else{var a=this.$findOpeningBracket(s[2],e);if(!a)return null;t=o.fromPoints(a,e),n||(t.start.column++,t.end.column--),t.cursor=t.start}return t},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{"},this.$findOpeningBracket=function(e,t,i){var n=this.$brackets[e],o=1,s=new r(this,t.row,t.column),a=s.getCurrentToken();if(a||(a=s.stepForward()),a){i||(i=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)")+")+"));for(var l=t.column-s.getCurrentTokenColumn()-2,c=a.value;;){for(;l>=0;){var h=c.charAt(l);if(h==n){if(0==(o-=1))return{row:s.getCurrentTokenRow(),column:l+s.getCurrentTokenColumn()}}else h==e&&(o+=1);l-=1}do{a=s.stepBackward()}while(a&&!i.test(a.type));if(null==a)break;c=a.value,l=c.length-1}return null}},this.$findClosingBracket=function(e,t,i){var n=this.$brackets[e],o=1,s=new r(this,t.row,t.column),a=s.getCurrentToken();if(a||(a=s.stepForward()),a){i||(i=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)")+")+"));for(var l=t.column-s.getCurrentTokenColumn();;){for(var c=a.value,h=c.length;l=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510)}n.implement(this,a),this.setDocument=function(e){this.doc&&this.doc.removeListener("change",this.$onChange),this.doc=e,e.on("change",this.$onChange),this.bgTokenizer&&this.bgTokenizer.setDocument(this.getDocument()),this.resetCaches()},this.getDocument=function(){return this.doc},this.$resetRowCache=function(e){if(!e)return this.$docRowCache=[],void(this.$screenRowCache=[]);var t=this.$docRowCache.length,i=this.$getRowCacheIndex(this.$docRowCache,e)+1;t>i&&(this.$docRowCache.splice(i,t),this.$screenRowCache.splice(i,t))},this.$getRowCacheIndex=function(e,t){for(var i=0,n=e.length-1;i<=n;){var r=i+n>>1,o=e[r];if(t>o)i=r+1;else{if(!(t=t);o++);return(i=n[o])?(i.index=o,i.start=r-i.value.length,i):null},this.setUndoManager=function(e){if(this.$undoManager=e,this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel(),e){var t=this;this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.$deltasFold.length&&(t.$deltas.push({group:"fold",deltas:t.$deltasFold}),t.$deltasFold=[]),t.$deltasDoc.length&&(t.$deltas.push({group:"doc",deltas:t.$deltasDoc}),t.$deltasDoc=[]),t.$deltas.length>0&&e.execute({action:"aceupdate",args:[t.$deltas,t],merge:t.mergeUndoDeltas}),t.mergeUndoDeltas=!1,t.$deltas=[]},this.$informUndoManager=r.delayedCall(this.$syncInformUndoManager)}},this.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?r.stringRepeat(" ",this.getTabSize()):"\t"},this.setUseSoftTabs=function(e){this.setOption("useSoftTabs",e)},this.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},this.setTabSize=function(e){this.setOption("tabSize",e)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize==0},this.setNavigateWithinSoftTabs=function(e){this.setOption("navigateWithinSoftTabs",e)},this.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},this.$overwrite=!1,this.setOverwrite=function(e){this.setOption("overwrite",e)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=""),this.$decorations[e]+=" "+t,this._signal("changeBreakpoint",{})},this.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||"").replace(" "+t,""),this._signal("changeBreakpoint",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t0&&(n=!!i.charAt(t-1).match(this.tokenRe)),n||(n=!!i.charAt(t).match(this.tokenRe)),n)var r=this.tokenRe;else if(/^\s+$/.test(i.slice(t-1,t+1)))var r=/\s/;else var r=this.nonTokenRe;var o=t;if(o>0){do{o--}while(o>=0&&i.charAt(o).match(r));o++}for(var s=t;se&&(e=t.screenWidth)}),this.lineWidgetWidth=e},this.$computeWidth=function(e){if(this.$modified||e){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var t=this.doc.getAllLines(),i=this.$rowLengthCache,n=0,r=0,o=this.$foldData[r],s=o?o.start.row:1/0,a=t.length,l=0;ls){if((l=o.end.row+1)>=a)break;o=this.$foldData[r++],s=o?o.start.row:1/0}null==i[l]&&(i[l]=this.$getStringScreenWidth(t[l])[0]),i[l]>n&&(n=i[l])}this.screenWidth=n}},this.getLine=function(e){return this.doc.getLine(e)},this.getLines=function(e,t){return this.doc.getLines(e,t)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},this.insert=function(e,t){return this.doc.insert(e,t)},this.remove=function(e){return this.doc.remove(e)},this.removeFullLines=function(e,t){return this.doc.removeFullLines(e,t)},this.undoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var i=null,n=e.length-1;-1!=n;n--){var r=e[n];"doc"==r.group?(this.doc.revertDeltas(r.deltas),i=this.$getUndoSelection(r.deltas,!0,i)):r.deltas.forEach(function(e){this.addFolds(e.folds)},this)}return this.$fromUndo=!1,i&&this.$undoSelect&&!t&&this.selection.setSelectionRange(i),i}},this.redoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var i=null,n=0;ne.end.column&&(o.start.column+=a),o.end.row==e.end.row&&o.end.column>e.end.column&&(o.end.column+=a)),s&&o.start.row>=e.end.row&&(o.start.row+=s,o.end.row+=s)}if(o.end=this.insert(o.start,n),r.length){var l=e.start,c=o.start,s=c.row-l.row,a=c.column-l.column;this.addFolds(r.map(function(e){return e=e.clone(),e.start.row==l.row&&(e.start.column+=a),e.end.row==l.row&&(e.end.column+=a),e.start.row+=s,e.end.row+=s,e}))}return o},this.indentRows=function(e,t,i){i=i.replace(/\t/g,this.getTabString());for(var n=e;n<=t;n++)this.doc.insertInLine({row:n,column:0},i)},this.outdentRows=function(e){for(var t=e.collapseRows(),i=new h(0,0,0,0),n=this.getTabSize(),r=t.start.row;r<=t.end.row;++r){var o=this.getLine(r);i.start.row=r,i.end.row=r;for(var s=0;s0){var n=this.getRowFoldEnd(t+i);if(n>this.doc.getLength()-1)return 0;var r=n-t}else{e=this.$clipRowToDocument(e),t=this.$clipRowToDocument(t);var r=t-e+1}var o=new h(e,0,t,Number.MAX_VALUE),s=this.getFoldsInRange(o).map(function(e){return e=e.clone(),e.start.row+=r,e.end.row+=r,e}),a=0==i?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+r,a),s.length&&this.addFolds(s),r},this.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},this.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},this.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},this.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},this.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},this.$clipPositionToDocument=function(e,t){if(t=Math.max(0,t),e<0)e=0,t=0;else{var i=this.doc.getLength();e>=i?(e=i-1,t=this.doc.getLine(i-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},this.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(e){if(e!=this.$useWrapMode){if(this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0),e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal("changeWrapMode")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(e,t){this.$wrapLimitRange.min===e&&this.$wrapLimitRange.max===t||(this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},this.adjustWrapLimit=function(e,t){var i=this.$wrapLimitRange;i.max<0&&(i={min:t,max:t});var n=this.$constrainWrapLimit(e,i.min,i.max);return n!=this.$wrapLimit&&n>1&&(this.$wrapLimit=n,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0)},this.$constrainWrapLimit=function(e,t,i){return t&&(e=Math.max(t,e)),i&&(e=Math.min(i,e)),e},this.getWrapLimit=function(){return this.$wrapLimit},this.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,i=e.action,n=e.start,r=e.end,o=n.row,s=r.row,a=s-o,l=null;if(this.$updating=!0,0!=a)if("remove"===i){this[t?"$wrapData":"$rowLengthCache"].splice(o,a);var c=this.$foldData;l=this.getFoldsInRange(e),this.removeFolds(l);var h=this.getFoldLine(r.row),d=0;if(h){h.addRemoveChars(r.row,r.column,n.column-r.column),h.shiftRow(-a);var u=this.getFoldLine(o);u&&u!==h&&(u.merge(h),h=u),d=c.indexOf(h)+1}for(d;d=r.row&&h.shiftRow(-a)}s=o}else{var f=Array(a);f.unshift(o,0);var p=t?this.$wrapData:this.$rowLengthCache;p.splice.apply(p,f);var c=this.$foldData,h=this.getFoldLine(o),d=0;if(h){var m=h.range.compareInside(n.row,n.column);0==m?(h=h.split(n.row,n.column))&&(h.shiftRow(a),h.addRemoveChars(s,0,r.column-n.column)):-1==m&&(h.addRemoveChars(o,0,r.column-n.column),h.shiftRow(a)),d=c.indexOf(h)+1}for(d;d=o&&h.shiftRow(a)}}else{a=Math.abs(e.start.column-e.end.column),"remove"===i&&(l=this.getFoldsInRange(e),this.removeFolds(l),a=-a);var h=this.getFoldLine(o);h&&h.addRemoveChars(o,n.column,a)}return t&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,t?this.$updateWrapData(o,s):this.$updateRowLengthCache(o,s),l},this.$updateRowLengthCache=function(e,t,i){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},this.$updateWrapData=function(e,n){var r,o,s=this.doc.getAllLines(),a=this.getTabSize(),l=this.$wrapData,c=this.$wrapLimit,h=e;for(n=Math.min(n,s.length-1);h<=n;)o=this.getFoldLine(h,o),o?(r=[],o.walk(function(e,n,o,a){var l;if(null!=e){l=this.$getDisplayTokens(e,r.length),l[0]=t;for(var c=1;cn-v;){var w=u+n-v;if(e[w-1]>=o&&e[w]>=o)a(w);else if(e[w]!=t&&e[w]!=i){for(var y=Math.max(w-(n-(n>>2)),u-1);w>y&&e[w]y&&e[w]y&&9==e[w];)w--}else for(;w>y&&e[w]y?a(++w):(w=u+n,2==e[w]&&w--,a(w-v))}else{for(w;w!=u-1&&e[w]!=t;w--);if(w>u){a(w);continue}for(w=u+n;w39&&a<48||a>57&&a<64?r.push(9):a>=4352&&e(a)?r.push(1,2):r.push(1)}return r},this.$getStringScreenWidth=function(t,i,n){if(0==i)return[0,0];null==i&&(i=1/0),n=n||0;var r,o;for(o=0;o=4352&&e(r)?n+=2:n+=1,!(n>i));o++);return[n,o]},this.lineWidgets=null,this.getRowLength=function(e){if(this.lineWidgets)var t=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0;else t=0;return this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1+t:1+t},this.getRowLineCount=function(e){return this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1:1},this.getRowWrapIndent=function(e){if(this.$useWrapMode){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE),i=this.$wrapData[t.row];return i.length&&i[0]=0)var a=c[h],o=this.$docRowCache[h],u=e>c[d-1];else var u=!d;for(var f=this.getLength()-1,p=this.getNextFoldLine(o),m=p?p.start.row:1/0;a<=e&&(l=this.getRowLength(o),!(a+l>e||o>=f));)a+=l,++o>m&&(o=p.end.row+1,p=this.getNextFoldLine(o,p),m=p?p.start.row:1/0),u&&(this.$docRowCache.push(o),this.$screenRowCache.push(a));if(p&&p.start.row<=o)n=this.getFoldDisplayLine(p),o=p.start.row;else{if(a+l<=e||o>f)return{row:f,column:this.getLine(f).length};n=this.getLine(o),p=null}var g=0,v=Math.floor(e-a);if(this.$useWrapMode){var w=this.$wrapData[o];w&&(r=w[v],v>0&&w.length&&(g=w.indent,s=w[v-1]||w[w.length-1],n=n.substring(s)))}return void 0!==i&&this.$bidiHandler.isBidiRow(a+v,o,v)&&(t=this.$bidiHandler.offsetToCol(i)),s+=this.$getStringScreenWidth(n,t-g)[1],this.$useWrapMode&&s>=r&&(s=r-1),p?p.idxToPosition(s):{row:o,column:s}},this.documentToScreenPosition=function(e,t){if(void 0===t)var i=this.$clipPositionToDocument(e.row,e.column);else i=this.$clipPositionToDocument(e,t);e=i.row,t=i.column;var n=0,r=null,o=null;(o=this.getFoldAt(e,t,1))&&(e=o.start.row,t=o.start.column);var s,a=0,l=this.$docRowCache,c=this.$getRowCacheIndex(l,e),h=l.length;if(h&&c>=0)var a=l[c],n=this.$screenRowCache[c],d=e>l[h-1];else var d=!h;for(var u=this.getNextFoldLine(a),f=u?u.start.row:1/0;a=f){if((s=u.end.row+1)>e)break;u=this.getNextFoldLine(s,u),f=u?u.start.row:1/0}else s=a+1;n+=this.getRowLength(a),a=s,d&&(this.$docRowCache.push(a),this.$screenRowCache.push(n))}var p="";u&&a>=f?(p=this.getFoldDisplayLine(u,e,t),r=u.start.row):(p=this.getLine(e).substring(0,t),r=e);var m=0;if(this.$useWrapMode){var g=this.$wrapData[r];if(g){for(var v=0;p.length>=g[v];)n++,v++;p=p.substring(g[v-1]||0,p.length),m=v>0?g.indent:0}}return{row:n,column:m+this.$getStringScreenWidth(p)[0]}},this.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},this.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},this.getScreenLength=function(){var e=0,t=null;if(this.$useWrapMode)for(var i=this.$wrapData.length,n=0,r=0,t=this.$foldData[r++],o=t?t.start.row:1/0;no&&(n=t.end.row+1,t=this.$foldData[r++],o=t?t.start.row:1/0)}else{e=this.getLength();for(var a=this.$foldData,r=0;ri));o++);return[n,o]})},this.destroy=function(){this.bgTokenizer&&(this.bgTokenizer.setDocument(null),this.bgTokenizer=null),this.$stopWorker()},this.isFullWidth=e}.call(p.prototype),e("./edit_session/folding").Folding.call(p.prototype),e("./edit_session/bracket_match").BracketMatch.call(p.prototype),s.defineOptions(p.prototype,"session",{wrap:{set:function(e){if(e&&"off"!=e?"free"==e?e=!0:"printMargin"==e?e=-1:"string"==typeof e&&(e=parseInt(e,10)||!1):e=!1,this.$wrap!=e)if(this.$wrap=e,e){var t="number"==typeof e?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}else this.setUseWrapMode(!1)},get:function(){return this.getUseWrapMode()?-1==this.$wrap?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(e){(e="auto"==e?"text"!=this.$mode.type:"text"!=e)!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$modified=!0,this.$resetRowCache(0),this.$updateWrapData(0,this.getLength()-1)))},initialValue:"auto"},indentedSoftWrap:{initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){isNaN(e)||this.$tabSize===e||(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},overwrite:{set:function(e){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId}}}),t.EditSession=p}),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,i){"use strict";function n(e,t){function i(e){return/\w/.test(e)||t.regExp?"\\b":""}return i(e[0])+e+i(e[e.length-1])}var r=e("./lib/lang"),o=e("./lib/oop"),s=e("./range").Range,a=function(){this.$options={}};(function(){this.set=function(e){return o.mixin(this.$options,e),this},this.getOptions=function(){return r.copyObject(this.$options)},this.setOptions=function(e){this.$options=e},this.find=function(e){var t=this.$options,i=this.$matchIterator(e,t);if(!i)return!1;var n=null;return i.forEach(function(e,i,r,o){return n=new s(e,i,r,o),!(i==o&&t.start&&t.start.start&&0!=t.skipCurrent&&n.isEqual(t.start))||(n=null,!1)}),n},this.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var i=t.range,n=i?e.getLines(i.start.row,i.end.row):e.doc.getAllLines(),o=[],a=t.re;if(t.$isMultiLine){var l,c=a.length,h=n.length-c;e:for(var d=a.offset||0;d<=h;d++){for(var u=0;um||(o.push(l=new s(d,m,d+c-1,g)),c>2&&(d=d+c-2))}}else for(var v=0;vC&&o[u].end.row==i.end.row;)u--;for(o=o.slice(v,u+1),v=0,u=o.length;v=a;i--)if(d(i,Number.MAX_VALUE,e))return;if(0!=t.wrap)for(i=l,a=s.row;i>=a;i--)if(d(i,Number.MAX_VALUE,e))return}};else var c=function(e){var i=s.row;if(!d(i,s.column,e)){for(i+=1;i<=l;i++)if(d(i,0,e))return;if(0!=t.wrap)for(i=a,l=s.row;i<=l;i++)if(d(i,0,e))return}};if(t.$isMultiLine)var h=i.length,d=function(t,r,o){var s=n?t-h+1:t;if(!(s<0)){var a=e.getLine(s),l=a.search(i[0]);if(!(!n&&lr))return!!o(s,l,s+h-1,d)||void 0}}};else if(n)var d=function(t,n,r){var o,s=e.getLine(t),a=[],l=0;for(i.lastIndex=0;o=i.exec(s);){var c=o[0].length;if(l=o.index,!c){if(l>=s.length)break;i.lastIndex=l+=1}if(o.index+c>n)break;a.push(o.index,c)}for(var h=a.length-1;h>=0;h-=2){var d=a[h-1],c=a[h];if(r(t,d,t,d+c))return!0}};else var d=function(t,n,r){var o,s=e.getLine(t),a=n;for(i.lastIndex=n;o=i.exec(s);){var l=o[0].length;if(a=o.index,r(t,a,t,a+l))return!0;if(!l&&(i.lastIndex=a+=1,a>=s.length))return!1}};return{forEach:c}}}).call(a.prototype),t.Search=a}),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,i){"use strict";function n(e,t){this.platform=t||(s.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=!0}function r(e,t){n.call(this,e,t),this.$singleCommand=!1}var o=e("../lib/keys"),s=e("../lib/useragent"),a=o.KEY_MODS;r.prototype=n.prototype,function(){function e(e){return"object"==typeof e&&e.bindKey&&e.bindKey.position||(e.isDefault?-100:0)}this.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},this.removeCommand=function(e,t){var i=e&&("string"==typeof e?e:e.name);e=this.commands[i],t||delete this.commands[i];var n=this.commandKeyBinding;for(var r in n){var o=n[r];if(o==e)delete n[r];else if(Array.isArray(o)){var s=o.indexOf(e);-1!=s&&(o.splice(s,1),1==o.length&&(n[r]=o[0]))}}},this.bindKey=function(e,t,i){if("object"==typeof e&&e&&(void 0==i&&(i=e.position),e=e[this.platform]),e)return"function"==typeof t?this.addCommand({exec:t,bindKey:e,name:t.name||e}):void e.split("|").forEach(function(e){var n="";if(-1!=e.indexOf(" ")){var r=e.split(/\s+/);e=r.pop(),r.forEach(function(e){var t=this.parseKeys(e),i=a[t.hashId]+t.key;n+=(n?" ":"")+i,this._addCommandToBinding(n,"chainKeys")},this),n+=" "}var o=this.parseKeys(e),s=a[o.hashId]+o.key;this._addCommandToBinding(n+s,t,i)},this)},this._addCommandToBinding=function(t,i,n){var r,o=this.commandKeyBinding;if(i)if(!o[t]||this.$singleCommand)o[t]=i;else{Array.isArray(o[t])?-1!=(r=o[t].indexOf(i))&&o[t].splice(r,1):o[t]=[o[t]],"number"!=typeof n&&(n=e(i));var s=o[t];for(r=0;rn)break}s.splice(r,0,i)}else delete o[t]},this.addCommands=function(e){e&&Object.keys(e).forEach(function(t){var i=e[t];if(i){if("string"==typeof i)return this.bindKey(i,t);"function"==typeof i&&(i={exec:i}),"object"==typeof i&&(i.name||(i.name=t),this.addCommand(i))}},this)},this.removeCommands=function(e){Object.keys(e).forEach(function(t){this.removeCommand(e[t])},this)},this.bindKeys=function(e){Object.keys(e).forEach(function(t){this.bindKey(t,e[t])},this)},this._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},this.parseKeys=function(e){var t=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(e){return e}),i=t.pop(),n=o[i];if(o.FUNCTION_KEYS[n])i=o.FUNCTION_KEYS[n].toLowerCase();else{if(!t.length)return{key:i,hashId:-1};if(1==t.length&&"shift"==t[0])return{key:i.toUpperCase(),hashId:-1}}for(var r=0,s=t.length;s--;){var a=o.KEY_MODS[t[s]];if(null==a)return"undefined"!=typeof console&&console.error("invalid modifier "+t[s]+" in "+e),!1;r|=a}return{key:i,hashId:r}},this.findKeyCommand=function(e,t){var i=a[e]+t;return this.commandKeyBinding[i]},this.handleKeyboard=function(e,t,i,n){if(!(n<0)){var r=a[t]+i,o=this.commandKeyBinding[r];return e.$keyChain&&(e.$keyChain+=" "+r,o=this.commandKeyBinding[e.$keyChain]||o),!o||"chainKeys"!=o&&"chainKeys"!=o[o.length-1]?(e.$keyChain&&(t&&4!=t||1!=i.length?(-1==t||n>0)&&(e.$keyChain=""):e.$keyChain=e.$keyChain.slice(0,-r.length-1)),{command:o}):(e.$keyChain=e.$keyChain||r,{command:"null"})}},this.getStatusText=function(e,t){return t.$keyChain||""}}.call(n.prototype),t.HashHandler=n,t.MultiHashHandler=r}),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("../lib/oop"),r=e("../keyboard/hash_handler").MultiHashHandler,o=e("../lib/event_emitter").EventEmitter,s=function(e,t){r.call(this,t,e),this.byName=this.commands,this.setDefaultHandler("exec",function(e){return e.command.exec(e.editor,e.args||{})})};n.inherits(s,r),function(){n.implement(this,o),this.exec=function(e,t,i){if(Array.isArray(e)){for(var n=e.length;n--;)if(this.exec(e[n],t,i))return!0;return!1}if("string"==typeof e&&(e=this.commands[e]),!e)return!1;if(t&&t.$readOnly&&!e.readOnly)return!1;if(e.isAvailable&&!e.isAvailable(t))return!1;var r={editor:t,command:e,args:i};return r.returnValue=this._emit("exec",r),this._signal("afterExec",r),!1!==r.returnValue},this.toggleRecording=function(e){if(!this.$inReplay)return e&&e._emit("changeStatus"),this.recording?(this.macro.pop(),this.removeEventListener("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},this.replay=function(e){if(!this.$inReplay&&this.macro){if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach(function(t){"string"==typeof t?this.exec(t,e):this.exec(t[0],e,t[1])},this)}finally{this.$inReplay=!1}}},this.trimMacro=function(e){return e.map(function(e){return"string"!=typeof e[0]&&(e[0]=e[0].name),e[1]||(e=e[0]),e})}}.call(s.prototype),t.CommandManager=s}),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function(e,t,i){"use strict";function n(e,t){return{win:e,mac:t}}var r=e("../lib/lang"),o=e("../config"),s=e("../range").Range;t.commands=[{name:"showSettingsMenu",bindKey:n("Ctrl-,","Command-,"),exec:function(e){o.loadModule("ace/ext/settings_menu",function(t){t.init(e),e.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",bindKey:n("Alt-E","F4"),exec:function(e){o.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",bindKey:n("Alt-Shift-E","Shift-F4"),exec:function(e){o.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",bindKey:n("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",bindKey:n(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",bindKey:n("Ctrl-L","Command-L"),exec:function(e){var t=parseInt(prompt("Enter line number:"),10);isNaN(t)||e.gotoLine(t)},readOnly:!0},{name:"fold",bindKey:n("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:n("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",bindKey:n("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",bindKey:n("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",bindKey:n(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",bindKey:n("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",bindKey:n("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",bindKey:n("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",bindKey:n("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",bindKey:n("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",bindKey:n("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",bindKey:n("Ctrl-F","Command-F"),exec:function(e){o.loadModule("ace/ext/searchbox",function(t){t.Search(e)})},readOnly:!0},{name:"overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",bindKey:n("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",bindKey:n("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",bindKey:n("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",bindKey:n("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",bindKey:n("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",bindKey:n("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",bindKey:n("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",bindKey:n("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",bindKey:n("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",bindKey:n("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",bindKey:n("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart", -bindKey:n("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",bindKey:n("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",bindKey:n("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",bindKey:n("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",bindKey:n("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",bindKey:n("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",bindKey:n("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",bindKey:n("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",bindKey:n("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",bindKey:n(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",bindKey:n("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",bindKey:n(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",bindKey:n("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",bindKey:n("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",bindKey:n("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",bindKey:n("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",bindKey:n("Ctrl-P","Ctrl-P"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",bindKey:n("Ctrl-Shift-P","Ctrl-Shift-P"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",bindKey:n("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",bindKey:n(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",exec:function(e){},readOnly:!0},{name:"cut",exec:function(e){var t=e.getSelectionRange();e._emit("cut",t),e.selection.isEmpty()||(e.session.remove(t),e.clearSelection())},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",bindKey:n("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",bindKey:n("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",bindKey:n("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",bindKey:n("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",bindKey:n("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",bindKey:n("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",bindKey:n("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",bindKey:n("Ctrl-H","Command-Option-F"),exec:function(e){o.loadModule("ace/ext/searchbox",function(t){t.Search(e,!0)})}},{name:"undo",bindKey:n("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",bindKey:n("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",bindKey:n("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",bindKey:n("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",bindKey:n("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",bindKey:n("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",bindKey:n("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",bindKey:n("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",bindKey:n("Shift-Delete",null),exec:function(e){if(!e.selection.isEmpty())return!1;e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",bindKey:n("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",bindKey:n("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",bindKey:n("Ctrl-Shift-Backspace",null),exec:function(e){var t=e.selection.getRange();t.start.column=0,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",bindKey:n("Ctrl-Shift-Delete",null),exec:function(e){var t=e.selection.getRange();t.end.column=Number.MAX_VALUE,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",bindKey:n("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",bindKey:n("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",bindKey:n("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",bindKey:n("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",bindKey:n("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",bindKey:n("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",exec:function(e,t){e.insert(r.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",bindKey:n(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",bindKey:n("Alt-Shift-X","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",bindKey:n("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",bindKey:n("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"expandtoline",bindKey:n("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"joinlines",bindKey:n(null,null),exec:function(e){for(var t=e.selection.isBackwards(),i=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),n=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),o=e.session.doc.getLine(i.row).length,a=e.session.doc.getTextRange(e.selection.getRange()),l=a.replace(/\n\s*/," ").length,c=e.session.doc.getLine(i.row),h=i.row+1;h<=n.row+1;h++){var d=r.stringTrimLeft(r.stringTrimRight(e.session.doc.getLine(h)));0!==d.length&&(d=" "+d),c+=d}n.row+10?(e.selection.moveCursorTo(i.row,i.column),e.selection.selectTo(i.row,i.column+l)):(o=e.session.doc.getLine(i.row).length>o?o+1:o,e.selection.moveCursorTo(i.row,o))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",bindKey:n(null,null),exec:function(e){var t=e.session.doc.getLength()-1,i=e.session.doc.getLine(t).length,n=e.selection.rangeList.ranges,r=[];n.length<1&&(n=[e.selection.getRange()]);for(var o=0;o0&&this.$blockScrolling--;var i=t&&t.scrollIntoView;if(i){switch(i){case"center-animate":i="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var n=this.selection.getRange(),r=this.renderer.layerConfig;(n.start.row>=r.lastRow||n.end.row<=r.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead)}"animate"==i&&this.renderer.animateScrolling(this.curOp.scrollTop)}this.prevOp=this.curOp,this.curOp=null}},this.$mergeableCommands=["backspace","del","insertstring"],this.$historyTracker=function(e){if(this.$mergeUndoDeltas){var t=this.prevOp,i=this.$mergeableCommands,n=t.command&&e.command.name==t.command.name;if("insertstring"==e.command.name){var r=e.args;void 0===this.mergeNextCommand&&(this.mergeNextCommand=!0),n=n&&this.mergeNextCommand&&(!/\s/.test(r)||/\s/.test(t.args)),this.mergeNextCommand=!0}else n=n&&-1!==i.indexOf(e.command.name);"always"!=this.$mergeUndoDeltas&&Date.now()-this.sequenceStartTime>2e3&&(n=!1),n?this.session.mergeUndoDeltas=!0:-1!==i.indexOf(e.command.name)&&(this.sequenceStartTime=Date.now())}},this.setKeyboardHandler=function(e,t){if(e&&"string"==typeof e){this.$keybindingId=e;var i=this;v.loadModule(["keybinding",e],function(n){i.$keybindingId==e&&i.keyBinding.setKeyboardHandler(n&&n.handler),t&&t()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(e){if(this.session!=e){this.curOp&&this.endOperation(),this.curOp={};var t=this.session;if(t){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var i=this.session.getSelection();i.off("changeCursor",this.$onCursorChange),i.off("changeSelection",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.on("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.$blockScrolling+=1,this.onCursorChange(),this.$blockScrolling-=1,this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(e)),this._signal("changeSession",{session:e,oldSession:t}),this.curOp=null,t&&t._signal("changeEditor",{oldEditor:this}),e&&e._signal("changeEditor",{editor:this}),e&&e.bgTokenizer&&e.bgTokenizer.scheduleStart()}},this.getSession=function(){return this.session},this.setValue=function(e,t){return this.session.doc.setValue(e),t?1==t?this.navigateFileEnd():-1==t&&this.navigateFileStart():this.selectAll(),e},this.getValue=function(){return this.session.getValue()},this.getSelection=function(){return this.selection},this.resize=function(e){this.renderer.onResize(e)},this.setTheme=function(e,t){this.renderer.setTheme(e,t)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(e){this.renderer.setStyle(e)},this.unsetStyle=function(e){this.renderer.unsetStyle(e)},this.getFontSize=function(){return this.getOption("fontSize")||r.computedStyle(this.container,"fontSize")},this.setFontSize=function(e){this.setOption("fontSize",e)},this.$highlightBrackets=function(){if(this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null),!this.$highlightPending){var e=this;this.$highlightPending=!0,setTimeout(function(){e.$highlightPending=!1;var t=e.session;if(t&&t.bgTokenizer){var i=t.findMatchingBracket(e.getCursorPosition());if(i)var n=new f(i.row,i.column,i.row,i.column+1);else if(t.$mode.getMatching)var n=t.$mode.getMatching(e.session);n&&(t.$bracketHighlight=t.addMarker(n,"ace_bracket","text"))}},50)}},this.$highlightTags=function(){if(!this.$highlightTagPending){var e=this;this.$highlightTagPending=!0,setTimeout(function(){e.$highlightTagPending=!1;var t=e.session;if(t&&t.bgTokenizer){var i=e.getCursorPosition(),n=new w(e.session,i.row,i.column),r=n.getCurrentToken();if(!r||!/\b(?:tag-open|tag-name)/.test(r.type))return t.removeMarker(t.$tagHighlight),void(t.$tagHighlight=null);if(-1==r.type.indexOf("tag-open")||(r=n.stepForward())){var o=r.value,s=0,a=n.stepBackward();if("<"==a.value)do{a=r,(r=n.stepForward())&&r.value===o&&-1!==r.type.indexOf("tag-name")&&("<"===a.value?s++:"=0);else{do{r=a,a=n.stepBackward(),r&&r.value===o&&-1!==r.type.indexOf("tag-name")&&("<"===a.value?s++:"1||(e=!1)),t.$highlightLineMarker&&!e)t.removeMarker(t.$highlightLineMarker.id),t.$highlightLineMarker=null;else if(!t.$highlightLineMarker&&e){var i=new f(e.row,e.column,e.row,1/0);i.id=t.addMarker(i,"ace_active-line","screenLine"),t.$highlightLineMarker=i}else e&&(t.$highlightLineMarker.start.row=e.row,t.$highlightLineMarker.end.row=e.row,t.$highlightLineMarker.start.column=e.column,t._signal("changeBackMarker"))},this.onSelectionChange=function(e){var t=this.session;if(t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var i=this.selection.getRange(),n=this.getSelectionStyle();t.$selectionMarker=t.addMarker(i,"ace_selection",n)}var r=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(r),this._signal("changeSelection")},this.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(!t.isEmpty()&&!t.isMultiLine()){var i=t.start.column-1,n=t.end.column+1,r=e.getLine(t.start.row),o=r.length,s=r.substring(Math.max(i,0),Math.min(n,o));if(!(i>=0&&/^[\w\d]/.test(s)||n<=o&&/[\w\d]$/.test(s))&&(s=r.substring(t.start.column,t.end.column),/^[\w\d]+$/.test(s))){return this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:s})}}},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(e){this.renderer.updateText(),this._emit("changeMode",e)},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},this.getCopyText=function(){var e=this.getSelectedText();return this._signal("copy",e),e},this.onCopy=function(){this.commands.exec("copy",this)},this.onCut=function(){this.commands.exec("cut",this)},this.onPaste=function(e,t){var i={text:e,event:t};this.commands.exec("paste",this,i)},this.$handlePaste=function(e){"string"==typeof e&&(e={text:e}),this._signal("paste",e);var t=e.text;if(!this.inMultiSelectMode||this.inVirtualSelectionMode)this.insert(t);else{var i=t.split(/\r\n|\r|\n/),n=this.selection.rangeList.ranges;if(i.length>n.length||i.length<2||!i[1])return this.commands.exec("insertstring",this,t);for(var r=n.length;r--;){var o=n[r];o.isEmpty()||this.session.remove(o),this.session.insert(o.start,i[r])}}},this.execCommand=function(e,t){return this.commands.exec(e,this,t)},this.insert=function(e,t){var i=this.session,n=i.getMode(),r=this.getCursorPosition();if(this.getBehavioursEnabled()&&!t){var o=n.transformAction(i.getState(r.row),"insertion",this,i,e);o&&(e!==o.text&&(this.session.mergeUndoDeltas=!1,this.$mergeNextCommand=!1),e=o.text)}if("\t"==e&&(e=this.session.getTabString()),this.selection.isEmpty()){if(this.session.getOverwrite()&&-1==e.indexOf("\n")){var s=new f.fromPoints(r,r);s.end.column+=e.length,this.session.remove(s)}}else{var s=this.getSelectionRange();r=this.session.remove(s),this.clearSelection()}if("\n"==e||"\r\n"==e){var a=i.getLine(r.row);if(r.column>a.search(/\S|$/)){var l=a.substr(r.column).search(/\S|$/);i.doc.removeInLine(r.row,r.column,r.column+l)}}this.clearSelection();var c=r.column,h=i.getState(r.row),a=i.getLine(r.row),d=n.checkOutdent(h,a,e);i.insert(r,e);if(o&&o.selection&&(2==o.selection.length?this.selection.setSelectionRange(new f(r.row,c+o.selection[0],r.row,c+o.selection[1])):this.selection.setSelectionRange(new f(r.row+o.selection[0],o.selection[1],r.row+o.selection[2],o.selection[3]))),i.getDocument().isNewLine(e)){var u=n.getNextLineIndent(h,a.slice(0,r.column),i.getTabString());i.insert({row:r.row+1,column:0},u)}d&&n.autoOutdent(h,i,r.row)},this.onTextInput=function(e){this.keyBinding.onTextInput(e)},this.onCommandKey=function(e,t,i){this.keyBinding.onCommandKey(e,t,i)},this.setOverwrite=function(e){this.session.setOverwrite(e)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(e){this.setOption("scrollSpeed",e)},this.getScrollSpeed=function(){return this.getOption("scrollSpeed")},this.setDragDelay=function(e){this.setOption("dragDelay",e)},this.getDragDelay=function(){return this.getOption("dragDelay")},this.setSelectionStyle=function(e){this.setOption("selectionStyle",e)},this.getSelectionStyle=function(){return this.getOption("selectionStyle")},this.setHighlightActiveLine=function(e){this.setOption("highlightActiveLine",e)},this.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.setHighlightSelectedWord=function(e){this.setOption("highlightSelectedWord",e)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(e){this.setOption("readOnly",e)},this.getReadOnly=function(){return this.getOption("readOnly")},this.setBehavioursEnabled=function(e){this.setOption("behavioursEnabled",e)},this.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},this.setWrapBehavioursEnabled=function(e){this.setOption("wrapBehavioursEnabled",e)},this.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},this.setShowFoldWidgets=function(e){this.setOption("showFoldWidgets",e)},this.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.remove=function(e){this.selection.isEmpty()&&("left"==e?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var i=this.session,n=i.getState(t.start.row),r=i.getMode().transformAction(n,"deletion",this,i,t);if(0===t.end.column){var o=i.getTextRange(t);if("\n"==o[o.length-1]){var s=i.getLine(t.end.row);/^\s+$/.test(s)&&(t.end.column=s.length)}}r&&(t=r)}this.session.remove(t),this.clearSelection()},this.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(e)},this.transposeLetters=function(){if(this.selection.isEmpty()){var e=this.getCursorPosition(),t=e.column;if(0!==t){var i,n,r=this.session.getLine(e.row);tt.toLowerCase()?1:0});for(var r=new f(0,0,0,0),n=e.first;n<=e.last;n++){var o=t.getLine(n);r.start.row=n,r.end.row=n,r.end.column=o.length,t.replace(r,i[n-e.first])}},this.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},this.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),i=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,i,e)},this.getNumberAt=function(e,t){var i=/[\-]?[0-9]+(?:\.[0-9]+)?/g;i.lastIndex=0;for(var n=this.session.getLine(e);i.lastIndex=t){return{value:r[0],start:r.index,end:r.index+r[0].length}}}return null},this.modifyNumber=function(e){var t=this.selection.getCursor().row,i=this.selection.getCursor().column,n=new f(t,i-1,t,i),r=this.session.getTextRange(n);if(!isNaN(parseFloat(r))&&isFinite(r)){var o=this.getNumberAt(t,i);if(o){var s=o.value.indexOf(".")>=0?o.start+o.value.indexOf(".")+1:o.end,a=o.start+o.value.length-s,l=parseFloat(o.value);l*=Math.pow(10,a),s!==o.end&&if+1)break;f=p.last}for(h--,a=this.session.$moveLines(u,f,t?0:e),t&&-1==e&&(d=h+1);d<=h;)s[d].moveBy(a,0),d++;t||(a=0),l+=a}r.fromOrientedRange(r.ranges[0]),r.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},this.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},this.onCompositionStart=function(e){this.renderer.showComposition(this.getCursorPosition())},this.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},this.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(e,t){var i=this.renderer,n=this.renderer.layerConfig,r=e*Math.floor(n.height/n.lineHeight);this.$blockScrolling++,!0===t?this.selection.$moveSelection(function(){this.moveCursorBy(r,0)}):!1===t&&(this.selection.moveCursorBy(r,0),this.selection.clearSelection()),this.$blockScrolling--;var o=i.scrollTop;i.scrollBy(0,r*n.lineHeight),null!=t&&i.scrollCursorIntoView(null,.5),i.animateScrolling(o)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(e){this.renderer.scrollToRow(e)},this.scrollToLine=function(e,t,i,n){this.renderer.scrollToLine(e,t,i,n)},this.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},this.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},this.jumpToMatching=function(e,t){var i=this.getCursorPosition(),n=new w(this.session,i.row,i.column),r=n.getCurrentToken(),o=r||n.stepForward();if(o){var s,a,l=!1,c={},h=i.column-o.start,d={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(o.value.match(/[{}()\[\]]/g)){for(;h=0;--o)this.$tryReplace(i[o],e)&&n++;return this.selection.setSelectionRange(r),this.$blockScrolling-=1,n},this.$tryReplace=function(e,t){var i=this.session.getTextRange(e);return t=this.$search.replace(i,t),null!==t?(e.end=this.session.replace(e,t),e):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(e,t,i){t||(t={}),"string"==typeof e||e instanceof RegExp?t.needle=e:"object"==typeof e&&n.mixin(t,e);var r=this.selection.getRange();null==t.needle&&(e=this.session.getTextRange(r)||this.$search.$options.needle,e||(r=this.session.getWordRange(r.start.row,r.start.column),e=this.session.getTextRange(r)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:r});var o=this.$search.find(this.session);return t.preventScroll?o:o?(this.revealRange(o,i),o):(t.backwards?r.start=r.end:r.end=r.start,void this.selection.setRange(r))},this.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},this.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},this.revealRange=function(e,t){this.$blockScrolling+=1,this.session.unfold(e),this.selection.setSelectionRange(e),this.$blockScrolling-=1;var i=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),!1!==t&&this.renderer.animateScrolling(i)},this.undo=function(){this.$blockScrolling++,this.session.getUndoManager().undo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.redo=function(){this.$blockScrolling++,this.session.getUndoManager().redo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.destroy=function(){this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy()},this.setAutoScrollEditorIntoView=function(e){if(e){var t,i=this,n=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var r=this.$scrollAnchor;r.style.cssText="position:absolute",this.container.insertBefore(r,this.container.firstChild);var o=this.on("changeSelection",function(){n=!0}),s=this.renderer.on("beforeRender",function(){n&&(t=i.renderer.container.getBoundingClientRect())}),a=this.renderer.on("afterRender",function(){if(n&&t&&(i.isFocused()||i.searchBox&&i.searchBox.isFocused())){var e=i.renderer,o=e.$cursorLayer.$pixelPos,s=e.layerConfig,a=o.top-s.offset;n=o.top>=0&&a+t.top<0||!(o.topwindow.innerHeight)&&null,null!=n&&(r.style.top=a+"px",r.style.left=o.left+"px",r.style.height=s.lineHeight+"px",r.scrollIntoView(n)),n=t=null}});this.setAutoScrollEditorIntoView=function(e){e||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",o),this.renderer.off("afterRender",a),this.renderer.off("beforeRender",s))}}},this.$resetCursorStyle=function(){var e=this.$cursorStyle||"ace",t=this.renderer.$cursorLayer;t&&(t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&"wide"!=e,r.setCssClass(t.element,"ace_slim-cursors",/slim/.test(e)))}}.call(y.prototype),v.defineOptions(y.prototype,"editor",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:e})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.$resetCursorStyle()},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},keyboardHandler:{set:function(e){this.setKeyboardHandler(e)},get:function(){return this.keybindingId},handlesSet:!0},hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",showLineNumbers:"renderer",showGutter:"renderer",displayIndentGuides:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"}),t.Editor=y}),ace.define("ace/undomanager",["require","exports","module"],function(e,t,i){"use strict";var n=function(){this.reset()};(function(){function e(e){return{action:e.action,start:e.start,end:e.end,lines:1==e.lines.length?null:e.lines,text:1==e.lines.length?e.lines[0]:null}}function t(e){return{action:e.action,start:e.start,end:e.end,lines:e.lines||[e.text]}}function i(e,t){for(var i=new Array(e.length),n=0;n0},this.hasRedo=function(){return this.$redoStack.length>0},this.markClean=function(){this.dirtyCounter=0},this.isClean=function(){return 0===this.dirtyCounter},this.$serializeDeltas=function(t){return i(t,e)},this.$deserializeDeltas=function(e){return i(e,t)}}).call(n.prototype),t.UndoManager=n}),ace.define("ace/layer/gutter",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("../lib/dom"),r=e("../lib/oop"),o=e("../lib/lang"),s=e("../lib/event_emitter").EventEmitter,a=function(e){this.element=n.createElement("div"),this.element.className="ace_layer ace_gutter-layer",e.appendChild(this.element),this.setShowFoldWidgets(this.$showFoldWidgets),this.gutterWidth=0,this.$annotations=[],this.$updateAnnotations=this.$updateAnnotations.bind(this),this.$cells=[]};(function(){r.implement(this,s),this.setSession=function(e){this.session&&this.session.removeEventListener("change",this.$updateAnnotations),this.session=e,e&&e.on("change",this.$updateAnnotations)},this.addGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.addGutterDecoration"),this.session.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.removeGutterDecoration"),this.session.removeGutterDecoration(e,t)},this.setAnnotations=function(e){this.$annotations=[];for(var t=0;ts&&(m=o.end.row+1,o=t.getNextFoldLine(m,o),s=o?o.start.row:1/0),m>r){for(;this.$cells.length>p+1;)f=this.$cells.pop(),this.element.removeChild(f.element);break}f=this.$cells[++p],f||(f={element:null,textNode:null,foldWidget:null},f.element=n.createElement("div"),f.textNode=document.createTextNode(""),f.element.appendChild(f.textNode),this.element.appendChild(f.element),this.$cells[p]=f);var g="ace_gutter-cell ";l[m]&&(g+=l[m]),c[m]&&(g+=c[m]),this.$annotations[m]&&(g+=this.$annotations[m].className),f.element.className!=g&&(f.element.className=g);var v=t.getRowLength(m)*e.lineHeight+"px";if(v!=f.element.style.height&&(f.element.style.height=v),a){var w=a[m];null==w&&(w=a[m]=t.getFoldWidget(m))}if(w){f.foldWidget||(f.foldWidget=n.createElement("span"),f.element.appendChild(f.foldWidget));var g="ace_fold-widget ace_"+w;"start"==w&&m==s&&mi.right-t.right?"foldWidgets":void 0}}).call(a.prototype),t.Gutter=a}),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(e,t,i){"use strict";var n=e("../range").Range,r=e("../lib/dom"),o=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)};(function(){function e(e,t,i,n){return(e?1:0)|(t?2:0)|(i?4:0)|(n?8:0)}this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setMarkers=function(e){this.markers=e},this.update=function(e){if(e){this.config=e;var t=[];for(var i in this.markers){var n=this.markers[i];if(n.range){var r=n.range.clipRows(e.firstRow,e.lastRow);if(!r.isEmpty())if(r=r.toScreenRange(this.session),n.renderer){var o=this.$getTop(r.start.row,e),s=this.$padding+(this.session.$bidiHandler.isBidiRow(r.start.row)?this.session.$bidiHandler.getPosLeft(r.start.column):r.start.column*e.characterWidth);n.renderer(t,r,s,o,e)}else"fullLine"==n.type?this.drawFullLineMarker(t,r,n.clazz,e):"screenLine"==n.type?this.drawScreenLineMarker(t,r,n.clazz,e):r.isMultiLine()?"text"==n.type?this.drawTextMarker(t,r,n.clazz,e):this.drawMultiLineMarker(t,r,n.clazz,e):this.session.$bidiHandler.isBidiRow(r.start.row)?this.drawBidiSingleLineMarker(t,r,n.clazz+" ace_start ace_br15",e):this.drawSingleLineMarker(t,r,n.clazz+" ace_start ace_br15",e)}else n.update(t,this,this.session,e)}this.element.innerHTML=t.join("")}},this.$getTop=function(e,t){return(e-t.firstRowScreen)*t.lineHeight},this.drawTextMarker=function(t,i,r,o,s){for(var a=this.session,l=i.start.row,c=i.end.row,h=l,d=0,u=0,f=a.getScreenLastRowColumn(h),p=null,m=new n(h,i.start.column,h,u);h<=c;h++)m.start.row=m.end.row=h,m.start.column=h==l?i.start.column:a.getRowWrapIndent(h),m.end.column=f,d=u,u=f,f=h+1f,h==c),this.session.$bidiHandler.isBidiRow(h)?this.drawBidiSingleLineMarker(t,m,p,o,h==c?0:1,s):this.drawSingleLineMarker(t,m,p,o,h==c?0:1,s)},this.drawMultiLineMarker=function(e,t,i,n,r){var o,s,a,l=this.$padding;if(r=r||"",this.session.$bidiHandler.isBidiRow(t.start.row)){var c=t.clone();c.end.row=c.start.row,c.end.column=this.session.getLine(c.start.row).length,this.drawBidiSingleLineMarker(e,c,i+" ace_br1 ace_start",n,null,r)}else o=n.lineHeight,s=this.$getTop(t.start.row,n),a=l+t.start.column*n.characterWidth,e.push("
");if(this.session.$bidiHandler.isBidiRow(t.end.row)){var c=t.clone();c.start.row=c.end.row,c.start.column=0,this.drawBidiSingleLineMarker(e,c,i+" ace_br12",n,null,r)}else{var h=t.end.column*n.characterWidth;o=n.lineHeight,s=this.$getTop(t.end.row,n),e.push("
")}if(!((o=(t.end.row-t.start.row-1)*n.lineHeight)<=0)){s=this.$getTop(t.start.row+1,n);var d=(t.start.column?1:0)|(t.end.column?0:8);e.push("
")}},this.drawSingleLineMarker=function(e,t,i,n,r,o){var s=n.lineHeight,a=(t.end.column+(r||0)-t.start.column)*n.characterWidth,l=this.$getTop(t.start.row,n),c=this.$padding+t.start.column*n.characterWidth;e.push("
")},this.drawBidiSingleLineMarker=function(e,t,i,n,r,o){var s=n.lineHeight,a=this.$getTop(t.start.row,n),l=this.$padding;this.session.$bidiHandler.getSelections(t.start.column,t.end.column).forEach(function(t){e.push("
")})},this.drawFullLineMarker=function(e,t,i,n,r){var o=this.$getTop(t.start.row,n),s=n.lineHeight;t.start.row!=t.end.row&&(s+=this.$getTop(t.end.row,n)-o),e.push("
")},this.drawScreenLineMarker=function(e,t,i,n,r){var o=this.$getTop(t.start.row,n),s=n.lineHeight;e.push("
")}}).call(o.prototype),t.Marker=o}),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("../lib/oop"),r=e("../lib/dom"),o=e("../lib/lang"),s=(e("../lib/useragent"),e("../lib/event_emitter").EventEmitter),a=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this)};(function(){n.implement(this,s),this.EOF_CHAR="¶",this.EOL_CHAR_LF="¬",this.EOL_CHAR_CRLF="¤",this.EOL_CHAR=this.EOL_CHAR_LF,this.TAB_CHAR="—",this.SPACE_CHAR="·",this.$padding=0,this.$updateEolChar=function(){var e="\n"==this.session.doc.getNewLineCharacter()?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=e)return this.EOL_CHAR=e,!0},this.setPadding=function(e){this.$padding=e,this.element.style.padding="0 "+e+"px"},this.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},this.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},this.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(e){this._signal("changeCharacterSize",e)}.bind(this)),this.$pollSizeChanges()},this.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},this.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},this.setSession=function(e){this.session=e,e&&this.$computeTabString()},this.showInvisibles=!1,this.setShowInvisibles=function(e){return this.showInvisibles!=e&&(this.showInvisibles=e,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(e){return this.displayIndentGuides!=e&&(this.displayIndentGuides=e,this.$computeTabString(),!0)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;for(var t=this.$tabStrings=[0],i=1;i"+o.stringRepeat(this.TAB_CHAR,i)+""):t.push(o.stringRepeat(" ",i));if(this.displayIndentGuides){this.$indentGuideRe=/\s\S| \t|\t |\s$/;var n="ace_indent-guide",r="",s="";if(this.showInvisibles){n+=" ace_invisible",r=" ace_invisible_space",s=" ace_invisible_tab";var a=o.stringRepeat(this.SPACE_CHAR,this.tabSize),l=o.stringRepeat(this.TAB_CHAR,this.tabSize)}else var a=o.stringRepeat(" ",this.tabSize),l=a;this.$tabStrings[" "]=""+a+"",this.$tabStrings["\t"]=""+l+""}},this.updateLines=function(e,t,i){this.config.lastRow==e.lastRow&&this.config.firstRow==e.firstRow||this.scrollLines(e),this.config=e;for(var n=Math.max(t,e.firstRow),r=Math.min(i,e.lastRow),o=this.element.childNodes,s=0,a=e.firstRow;ac&&(a=l.end.row+1,l=this.session.getNextFoldLine(a,l),c=l?l.start.row:1/0),a>r)break;var h=o[s++];if(h){var d=[];this.$renderLine(d,a,!this.$useLineGroups(),a==c&&l),h.style.height=e.lineHeight*this.session.getRowLength(a)+"px",h.innerHTML=d.join("")}a++}},this.scrollLines=function(e){var t=this.config;if(this.config=e,!t||t.lastRow0;n--)i.removeChild(i.firstChild);if(t.lastRow>e.lastRow)for(var n=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);n>0;n--)i.removeChild(i.lastChild);if(e.firstRowt.lastRow){var r=this.$renderLinesFragment(e,t.lastRow+1,e.lastRow);i.appendChild(r)}},this.$renderLinesFragment=function(e,t,i){for(var n=this.element.ownerDocument.createDocumentFragment(),o=t,s=this.session.getNextFoldLine(o),a=s?s.start.row:1/0;;){if(o>a&&(o=s.end.row+1,s=this.session.getNextFoldLine(o,s),a=s?s.start.row:1/0),o>i)break;var l=r.createElement("div"),c=[];if(this.$renderLine(c,o,!1,o==a&&s),l.innerHTML=c.join(""),this.$useLineGroups())l.className="ace_line_group",n.appendChild(l),l.style.height=e.lineHeight*this.session.getRowLength(o)+"px";else for(;l.firstChild;)n.appendChild(l.firstChild);o++}return n},this.update=function(e){this.config=e;for(var t=[],i=e.firstRow,n=e.lastRow,r=i,o=this.session.getNextFoldLine(r),s=o?o.start.row:1/0;;){if(r>s&&(r=o.end.row+1,o=this.session.getNextFoldLine(r,o),s=o?o.start.row:1/0),r>n)break;this.$useLineGroups()&&t.push("
"),this.$renderLine(t,r,!1,r==s&&o),this.$useLineGroups()&&t.push("
"),r++}this.element.innerHTML=t.join("")},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(e,t,i,n){var r=this,s=function(e,i,n,s,a){if(i)return r.showInvisibles?""+o.stringRepeat(r.SPACE_CHAR,e.length)+"":e;if("&"==e)return"&";if("<"==e)return"<";if(">"==e)return">";if("\t"==e){var l=r.session.getScreenTabSize(t+s);return t+=l-1,r.$tabStrings[l]}if(" "==e){var c=r.showInvisibles?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",h=r.showInvisibles?r.SPACE_CHAR:"";return t+=1,""+h+""}return n?""+r.SPACE_CHAR+"":(t+=1,""+e+"")},a=n.replace(/\t|&|<|>|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\u3000\uFEFF\uFFF9-\uFFFC])|[\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3000-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,s);if(this.$textToken[i.type])e.push(a);else{var l="ace_"+i.type.replace(/\./g," ace_"),c="";"fold"==i.type&&(c=" style='width:"+i.value.length*this.config.characterWidth+"px;' "),e.push("",a,"")} -return t+n.length},this.renderIndentGuide=function(e,t,i){var n=t.search(this.$indentGuideRe);return n<=0||n>=i?t:" "==t[0]?(n-=n%this.tabSize,e.push(o.stringRepeat(this.$tabStrings[" "],n/this.tabSize)),t.substr(n)):"\t"==t[0]?(e.push(o.stringRepeat(this.$tabStrings["\t"],n)),t.substr(n)):t},this.$renderWrappedLine=function(e,t,i,n){for(var r=0,s=0,a=i[0],l=0,c=0;c=a;)l=this.$renderToken(e,l,h,d.substring(0,a-r)),d=d.substring(a-r),r=a,n||e.push("","
"),e.push(o.stringRepeat(" ",i.indent)),s++,l=0,a=i[s]||Number.MAX_VALUE;0!=d.length&&(r+=d.length,l=this.$renderToken(e,l,h,d))}}},this.$renderSimpleLine=function(e,t){var i=0,n=t[0],r=n.value;this.displayIndentGuides&&(r=this.renderIndentGuide(e,r)),r&&(i=this.$renderToken(e,i,n,r));for(var o=1;o"),r.length){var o=this.session.getRowSplitData(t);o&&o.length?this.$renderWrappedLine(e,r,o,i):this.$renderSimpleLine(e,r)}this.showInvisibles&&(n&&(t=n.end.row),e.push("",t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,"")),i||e.push("
")},this.$getFoldLineTokens=function(e,t){function i(e,t,i){for(var n=0,o=0;o+e[n].value.lengthi-t&&(s=s.substring(0,i-t)),r.push({type:e[n].type,value:s}),o=t+s.length,n+=1}for(;oi?r.push({type:e[n].type,value:s.substring(0,i-o)}):r.push(e[n]),o+=s.length,n+=1}}var n=this.session,r=[],o=n.getTokens(e);return t.walk(function(e,t,s,a,l){null!=e?r.push({type:"fold",value:e}):(l&&(o=n.getTokens(t)),o.length&&i(o,a,s))},t.end.row,this.session.getLine(t.end.row).length),r},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(a.prototype),t.Text=a}),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(e,t,i){"use strict";var n,r=e("../lib/dom"),o=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),void 0===n&&(n=!("opacity"in this.element.style)),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),r.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=(n?this.$updateVisibility:this.$updateOpacity).bind(this)};(function(){this.$updateVisibility=function(e){for(var t=this.cursors,i=t.length;i--;)t[i].style.visibility=e?"":"hidden"},this.$updateOpacity=function(e){for(var t=this.cursors,i=t.length;i--;)t[i].style.opacity=e?"":"0"},this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},this.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},this.setSmoothBlinking=function(e){e==this.smoothBlinking||n||(this.smoothBlinking=e,r.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.$updateCursors=this.$updateOpacity.bind(this),this.restartTimer())},this.addCursor=function(){var e=r.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},this.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},this.hideCursor=function(){this.isVisible=!1,r.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,r.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.restartTimer=function(){var e=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.smoothBlinking&&r.removeCssClass(this.element,"ace_smooth-blinking"),e(!0),this.isBlinking&&this.blinkInterval&&this.isVisible){this.smoothBlinking&&setTimeout(function(){r.addCssClass(this.element,"ace_smooth-blinking")}.bind(this));var t=function(){this.timeoutId=setTimeout(function(){e(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){e(!0),t()},this.blinkInterval),t()}},this.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var i=this.session.documentToScreenPosition(e);return{left:this.$padding+(this.session.$bidiHandler.isBidiRow(i.row,e.row)?this.session.$bidiHandler.getPosLeft(i.column):i.column*this.config.characterWidth),top:(i.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight}},this.update=function(e){this.config=e;var t=this.session.$selectionMarkers,i=0,n=0;void 0!==t&&0!==t.length||(t=[{cursor:null}]);for(var i=0,r=t.length;ie.height+e.offset||o.top<0)&&i>1)){var s=(this.cursors[n++]||this.addCursor()).style;this.drawCursor?this.drawCursor(s,o,e,t[i],this.session):(s.left=o.left+"px",s.top=o.top+"px",s.width=e.characterWidth+"px",s.height=e.lineHeight+"px")}}for(;this.cursors.length>n;)this.removeCursor();var a=this.session.getOverwrite();this.$setOverwrite(a),this.$pixelPos=o,this.restartTimer()},this.drawCursor=null,this.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?r.addCssClass(this.element,"ace_overwrite-cursors"):r.removeCssClass(this.element,"ace_overwrite-cursors"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(o.prototype),t.Cursor=o}),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("./lib/oop"),r=e("./lib/dom"),o=e("./lib/event"),s=e("./lib/event_emitter").EventEmitter,a=function(e){this.element=r.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+this.classSuffix,this.inner=r.createElement("div"),this.inner.className="ace_scrollbar-inner",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,o.addListener(this.element,"scroll",this.onScroll.bind(this)),o.addListener(this.element,"mousedown",o.preventDefault)};(function(){n.implement(this,s),this.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1}}).call(a.prototype);var l=function(e,t){a.call(this,e),this.scrollTop=0,this.scrollHeight=0,t.$scrollbarWidth=this.width=r.scrollbarWidth(e.ownerDocument),this.inner.style.width=this.element.style.width=(this.width||15)+5+"px",this.$minWidth=0};n.inherits(l,a),function(){this.classSuffix="-v",this.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,1!=this.coeff){var e=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-e)/(this.coeff-e)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},this.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},this.setHeight=function(e){this.element.style.height=e+"px"},this.setInnerHeight=this.setScrollHeight=function(e){this.scrollHeight=e,e>32768?(this.coeff=32768/e,e=32768):1!=this.coeff&&(this.coeff=1),this.inner.style.height=e+"px"},this.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=e,this.element.scrollTop=e*this.coeff)}}.call(l.prototype);var c=function(e,t){a.call(this,e),this.scrollLeft=0,this.height=t.$scrollbarWidth,this.inner.style.height=this.element.style.height=(this.height||15)+5+"px"};n.inherits(c,a),function(){this.classSuffix="-h",this.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},this.getHeight=function(){return this.isVisible?this.height:0},this.setWidth=function(e){this.element.style.width=e+"px"},this.setInnerWidth=function(e){this.inner.style.width=e+"px"},this.setScrollWidth=function(e){this.inner.style.width=e+"px"},this.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)}}.call(c.prototype),t.ScrollBar=l,t.ScrollBarV=l,t.ScrollBarH=c,t.VScrollBar=l,t.HScrollBar=c}),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(e,t,i){"use strict";var n=e("./lib/event"),r=function(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.window=t||window};(function(){this.schedule=function(e){if(this.changes=this.changes|e,!this.pending&&this.changes){this.pending=!0;var t=this;n.nextFrame(function(){t.pending=!1;for(var e;e=t.changes;)t.changes=0,t.onRender(e)},this.window)}}}).call(r.prototype),t.RenderLoop=r}),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,i){var n=e("../lib/oop"),r=e("../lib/dom"),o=e("../lib/lang"),s=e("../lib/useragent"),a=e("../lib/event_emitter").EventEmitter,l=0,c=t.FontMetrics=function(e){this.el=r.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=r.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=r.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),l||this.$testFractionalRect(),this.$measureNode.innerHTML=o.stringRepeat("X",l),this.$characterSize={width:0,height:0},this.checkForSizeChanges()};(function(){n.implement(this,a),this.$characterSize={width:0,height:0},this.$testFractionalRect=function(){var e=r.createElement("div");this.$setMeasureNodeStyles(e.style),e.style.width="0.2px",document.documentElement.appendChild(e);var t=e.getBoundingClientRect().width;l=t>0&&t<1?50:100,e.parentNode.removeChild(e)},this.$setMeasureNodeStyles=function(e,t){e.width=e.height="auto",e.left=e.top="0px",e.visibility="hidden",e.position="absolute",e.whiteSpace="pre",s.isIE<8?e["font-family"]="inherit":e.font="inherit",e.overflow=t?"hidden":"visible"},this.checkForSizeChanges=function(){var e=this.$measureSizes();if(e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},this.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=setInterval(function(){e.checkForSizeChanges()},500)},this.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},this.$measureSizes=function(){if(50===l){var e=null;try{e=this.$measureNode.getBoundingClientRect()}catch(t){e={width:0,height:0}}var t={height:e.height,width:e.width/l}}else var t={height:this.$measureNode.clientHeight,width:this.$measureNode.clientWidth/l};return 0===t.width||0===t.height?null:t},this.$measureCharWidth=function(e){return this.$main.innerHTML=o.stringRepeat(e,l),this.$main.getBoundingClientRect().width/l},this.getCharacterWidth=function(e){var t=this.charSizes[e];return void 0===t&&(t=this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)}}).call(c.prototype)}),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/config","ace/lib/useragent","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("./lib/oop"),r=e("./lib/dom"),o=e("./config"),s=e("./lib/useragent"),a=e("./layer/gutter").Gutter,l=e("./layer/marker").Marker,c=e("./layer/text").Text,h=e("./layer/cursor").Cursor,d=e("./scrollbar").HScrollBar,u=e("./scrollbar").VScrollBar,f=e("./renderloop").RenderLoop,p=e("./layer/font_metrics").FontMetrics,m=e("./lib/event_emitter").EventEmitter;r.importCssString('.ace_editor {\tposition: relative;\toverflow: hidden;\tfont: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'source-code-pro\', monospace;\tdirection: ltr;\ttext-align: left;\t-webkit-tap-highlight-color: rgba(0, 0, 0, 0);\t}\t.ace_scroller {\tposition: absolute;\toverflow: hidden;\ttop: 0;\tbottom: 0;\tbackground-color: inherit;\t-ms-user-select: none;\t-moz-user-select: none;\t-webkit-user-select: none;\tuser-select: none;\tcursor: text;\t}\t.ace_content {\tposition: absolute;\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tmin-width: 100%;\t}\t.ace_dragging .ace_scroller:before{\tposition: absolute;\ttop: 0;\tleft: 0;\tright: 0;\tbottom: 0;\tcontent: \'\';\tbackground: rgba(250, 250, 250, 0.01);\tz-index: 1000;\t}\t.ace_dragging.ace_dark .ace_scroller:before{\tbackground: rgba(0, 0, 0, 0.01);\t}\t.ace_selecting, .ace_selecting * {\tcursor: text !important;\t}\t.ace_gutter {\tposition: absolute;\toverflow : hidden;\twidth: auto;\ttop: 0;\tbottom: 0;\tleft: 0;\tcursor: default;\tz-index: 4;\t-ms-user-select: none;\t-moz-user-select: none;\t-webkit-user-select: none;\tuser-select: none;\t}\t.ace_gutter-active-line {\tposition: absolute;\tleft: 0;\tright: 0;\t}\t.ace_scroller.ace_scroll-left {\tbox-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;\t}\t.ace_gutter-cell {\tpadding-left: 19px;\tpadding-right: 6px;\tbackground-repeat: no-repeat;\t}\t.ace_gutter-cell.ace_error {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");\tbackground-repeat: no-repeat;\tbackground-position: 2px center;\t}\t.ace_gutter-cell.ace_warning {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");\tbackground-position: 2px center;\t}\t.ace_gutter-cell.ace_info {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");\tbackground-position: 2px center;\t}\t.ace_dark .ace_gutter-cell.ace_info {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");\t}\t.ace_scrollbar {\tposition: absolute;\tright: 0;\tbottom: 0;\tz-index: 6;\t}\t.ace_scrollbar-inner {\tposition: absolute;\tcursor: text;\tleft: 0;\ttop: 0;\t}\t.ace_scrollbar-v{\toverflow-x: hidden;\toverflow-y: scroll;\ttop: 0;\t}\t.ace_scrollbar-h {\toverflow-x: scroll;\toverflow-y: hidden;\tleft: 0;\t}\t.ace_print-margin {\tposition: absolute;\theight: 100%;\t}\t.ace_text-input {\tposition: absolute;\tz-index: 0;\twidth: 0.5em;\theight: 1em;\topacity: 0;\tbackground: transparent;\t-moz-appearance: none;\tappearance: none;\tborder: none;\tresize: none;\toutline: none;\toverflow: hidden;\tfont: inherit;\tpadding: 0 1px;\tmargin: 0 -1px;\ttext-indent: -1em;\t-ms-user-select: text;\t-moz-user-select: text;\t-webkit-user-select: text;\tuser-select: text;\twhite-space: pre!important;\t}\t.ace_text-input.ace_composition {\tbackground: inherit;\tcolor: inherit;\tz-index: 1000;\topacity: 1;\ttext-indent: 0;\t}\t.ace_layer {\tz-index: 1;\tposition: absolute;\toverflow: hidden;\tword-wrap: normal;\twhite-space: pre;\theight: 100%;\twidth: 100%;\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tpointer-events: none;\t}\t.ace_gutter-layer {\tposition: relative;\twidth: auto;\ttext-align: right;\tpointer-events: auto;\t}\t.ace_text-layer {\tfont: inherit !important;\t}\t.ace_cjk {\tdisplay: inline-block;\ttext-align: center;\t}\t.ace_cursor-layer {\tz-index: 4;\t}\t.ace_cursor {\tz-index: 4;\tposition: absolute;\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tborder-left: 2px solid;\ttransform: translatez(0);\t}\t.ace_multiselect .ace_cursor {\tborder-left-width: 1px;\t}\t.ace_slim-cursors .ace_cursor {\tborder-left-width: 1px;\t}\t.ace_overwrite-cursors .ace_cursor {\tborder-left-width: 0;\tborder-bottom: 1px solid;\t}\t.ace_hidden-cursors .ace_cursor {\topacity: 0.2;\t}\t.ace_smooth-blinking .ace_cursor {\t-webkit-transition: opacity 0.18s;\ttransition: opacity 0.18s;\t}\t.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\tposition: absolute;\tz-index: 3;\t}\t.ace_marker-layer .ace_selection {\tposition: absolute;\tz-index: 5;\t}\t.ace_marker-layer .ace_bracket {\tposition: absolute;\tz-index: 6;\t}\t.ace_marker-layer .ace_active-line {\tposition: absolute;\tz-index: 2;\t}\t.ace_marker-layer .ace_selected-word {\tposition: absolute;\tz-index: 4;\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\t}\t.ace_line .ace_fold {\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tdisplay: inline-block;\theight: 11px;\tmargin-top: -2px;\tvertical-align: middle;\tbackground-image:\turl("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\turl("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");\tbackground-repeat: no-repeat, repeat-x;\tbackground-position: center center, top left;\tcolor: transparent;\tborder: 1px solid black;\tborder-radius: 2px;\tcursor: pointer;\tpointer-events: auto;\t}\t.ace_dark .ace_fold {\t}\t.ace_fold:hover{\tbackground-image:\turl("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\turl("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");\t}\t.ace_tooltip {\tbackground-color: #FFF;\tbackground-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.1));\tbackground-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));\tborder: 1px solid gray;\tborder-radius: 1px;\tbox-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\tcolor: black;\tmax-width: 100%;\tpadding: 3px 4px;\tposition: fixed;\tz-index: 999999;\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tcursor: default;\twhite-space: pre;\tword-wrap: break-word;\tline-height: normal;\tfont-style: normal;\tfont-weight: normal;\tletter-spacing: normal;\tpointer-events: none;\t}\t.ace_folding-enabled > .ace_gutter-cell {\tpadding-right: 13px;\t}\t.ace_fold-widget {\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tmargin: 0 -12px 0 1px;\tdisplay: none;\twidth: 11px;\tvertical-align: top;\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");\tbackground-repeat: no-repeat;\tbackground-position: center;\tborder-radius: 3px;\tborder: 1px solid transparent;\tcursor: pointer;\t}\t.ace_folding-enabled .ace_fold-widget {\tdisplay: inline-block; \t}\t.ace_fold-widget.ace_end {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");\t}\t.ace_fold-widget.ace_closed {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");\t}\t.ace_fold-widget:hover {\tborder: 1px solid rgba(0, 0, 0, 0.3);\tbackground-color: rgba(255, 255, 255, 0.2);\tbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\t}\t.ace_fold-widget:active {\tborder: 1px solid rgba(0, 0, 0, 0.4);\tbackground-color: rgba(0, 0, 0, 0.05);\tbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\t}\t.ace_dark .ace_fold-widget {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");\t}\t.ace_dark .ace_fold-widget.ace_end {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");\t}\t.ace_dark .ace_fold-widget.ace_closed {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");\t}\t.ace_dark .ace_fold-widget:hover {\tbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\tbackground-color: rgba(255, 255, 255, 0.1);\t}\t.ace_dark .ace_fold-widget:active {\tbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\t}\t.ace_fold-widget.ace_invalid {\tbackground-color: #FFB4B4;\tborder-color: #DE5555;\t}\t.ace_fade-fold-widgets .ace_fold-widget {\t-webkit-transition: opacity 0.4s ease 0.05s;\ttransition: opacity 0.4s ease 0.05s;\topacity: 0;\t}\t.ace_fade-fold-widgets:hover .ace_fold-widget {\t-webkit-transition: opacity 0.05s ease 0.05s;\ttransition: opacity 0.05s ease 0.05s;\topacity:1;\t}\t.ace_underline {\ttext-decoration: underline;\t}\t.ace_bold {\tfont-weight: bold;\t}\t.ace_nobold .ace_bold {\tfont-weight: normal;\t}\t.ace_italic {\tfont-style: italic;\t}\t.ace_error-marker {\tbackground-color: rgba(255, 0, 0,0.2);\tposition: absolute;\tz-index: 9;\t}\t.ace_highlight-marker {\tbackground-color: rgba(255, 255, 0,0.2);\tposition: absolute;\tz-index: 8;\t}\t.ace_br1 {border-top-left-radius : 3px;}\t.ace_br2 {border-top-right-radius : 3px;}\t.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}\t.ace_br4 {border-bottom-right-radius: 3px;}\t.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}\t.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}\t.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}\t.ace_br8 {border-bottom-left-radius : 3px;}\t.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}\t.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}\t.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}\t.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\t.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\t.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\t.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\t.ace_text-input-ios {\tposition: absolute !important;\ttop: -100000px !important;\tleft: -100000px !important;\t}\t',"ace_editor.css");var g=function(e,t){var i=this;this.container=e||r.createElement("div"),this.$keepTextAreaAtCursor=!s.isOldIE,r.addCssClass(this.container,"ace_editor"),this.setTheme(t),this.$gutter=r.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden",!0),this.scroller=r.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=r.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new a(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new l(this.content);var n=this.$textLayer=new c(this.content);this.canvas=n.element,this.$markerFront=new l(this.content),this.$cursorLayer=new h(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new u(this.container,this),this.scrollBarH=new d(this.container,this),this.scrollBarV.addEventListener("scroll",function(e){i.$scrollAnimation||i.session.setScrollTop(e.data-i.scrollMargin.top)}),this.scrollBarH.addEventListener("scroll",function(e){i.$scrollAnimation||i.session.setScrollLeft(e.data-i.scrollMargin.left)}),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new p(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.addEventListener("changeCharacterSize",function(e){i.updateCharacterSize(),i.onResize(!0,i.gutterWidth,i.$size.width,i.$size.height),i._signal("changeCharacterSize",e)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$loop=new f(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),o.resetOptions(this),o._emit("renderer",this)};(function(){this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,this.CHANGE_H_SCROLL=1024,n.implement(this,m),this.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin()},this.setSession=function(e){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=e,e&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e),e&&(this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode))},this.updateLines=function(e,t,i){if(void 0===t&&(t=1/0),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRowthis.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},this.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},this.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},this.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},this.updateFull=function(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},this.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},this.$changes=0,this.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},this.onResize=function(e,t,i,n){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=e?1:0;var r=this.container;n||(n=r.clientHeight||r.scrollHeight),i||(i=r.clientWidth||r.scrollWidth);var o=this.$updateCachedSize(e,t,i,n);if(!this.$size.scrollerHeight||!i&&!n)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(o|this.$changes,!0):this.$loop.schedule(o|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarV.scrollLeft=this.scrollBarV.scrollTop=null}},this.$updateCachedSize=function(e,t,i,n){n-=this.$extraHeight||0;var r=0,o=this.$size,s={width:o.width,height:o.height,scrollerHeight:o.scrollerHeight,scrollerWidth:o.scrollerWidth};return n&&(e||o.height!=n)&&(o.height=n,r|=this.CHANGE_SIZE,o.scrollerHeight=o.height,this.$horizScroll&&(o.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",r|=this.CHANGE_SCROLL),i&&(e||o.width!=i)&&(r|=this.CHANGE_SIZE,o.width=i,null==t&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,this.scrollBarH.element.style.left=this.scroller.style.left=t+"px",o.scrollerWidth=Math.max(0,i-t-this.scrollBarV.getWidth()),this.scrollBarH.element.style.right=this.scroller.style.right=this.scrollBarV.getWidth()+"px",this.scroller.style.bottom=this.scrollBarH.getHeight()+"px",(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)&&(r|=this.CHANGE_FULL)),o.$dirty=!i||!n,r&&this._signal("resize",s),r},this.onGutterResize=function(){var e=this.$showGutter?this.$gutter.offsetWidth:0;e!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,e,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()?this.$loop.schedule(this.CHANGE_FULL):this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):(this.$computeLayerConfig(),this.$loop.schedule(this.CHANGE_MARKER))},this.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-2*this.$padding,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},this.setAnimatedScroll=function(e){this.setOption("animatedScroll",e)},this.getAnimatedScroll=function(){return this.$animatedScroll},this.setShowInvisibles=function(e){this.setOption("showInvisibles",e),this.session.$bidiHandler.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.getOption("showInvisibles")},this.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},this.setDisplayIndentGuides=function(e){this.setOption("displayIndentGuides",e)},this.setShowPrintMargin=function(e){this.setOption("showPrintMargin",e)},this.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},this.setPrintMarginColumn=function(e){this.setOption("printMarginColumn",e)},this.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},this.getShowGutter=function(){return this.getOption("showGutter")},this.setShowGutter=function(e){return this.setOption("showGutter",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.$updateGutterLineHighlight=function(){var e=this.$cursorLayer.$pixelPos,t=this.layerConfig.lineHeight;if(this.session.getUseWrapMode()){var i=this.session.selection.getCursor();i.column=0,e=this.$cursorLayer.getPixelPosition(i,!0),t*=this.session.getRowLength(i.row)}this.$gutterLineHighlight.style.top=e.top-this.layerConfig.offset+"px",this.$gutterLineHighlight.style.height=t+"px"},this.$updatePrintMargin=function(){if(this.$showPrintMargin||this.$printMarginEl){if(!this.$printMarginEl){var e=r.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=r.createElement("div"),this.$printMarginEl.className="ace_print-margin",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=this.characterWidth*this.$printMarginColumn+this.$padding+"px",t.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&-1==this.session.$wrap&&this.adjustWrapLimit()}},this.getContainerElement=function(){return this.container},this.getMouseEventTarget=function(){return this.scroller},this.getTextAreaContainer=function(){return this.container},this.$moveTextAreaToCursor=function(){if(this.$keepTextAreaAtCursor){var e=this.layerConfig,t=this.$cursorLayer.$pixelPos.top,i=this.$cursorLayer.$pixelPos.left;t-=e.offset;var n=this.textarea.style,r=this.lineHeight;if(t<0||t>e.height-r)return void(n.top=n.left="0");var o=this.characterWidth;if(this.$composition){var s=this.textarea.value.replace(/^\x01+/,"");o*=this.session.$getStringScreenWidth(s)[0]+2,r+=2}i-=this.scrollLeft,i>this.$size.scrollerWidth-o&&(i=this.$size.scrollerWidth-o),i+=this.gutterWidth,n.height=r+"px",n.width=o+"px",n.left=Math.min(i,this.$size.scrollerWidth-o)+"px",n.top=Math.min(t,this.$size.height-r)+"px"}},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(0===this.layerConfig.offset?0:1)},this.getLastFullyVisibleRow=function(){var e=this.layerConfig,t=e.lastRow;return this.session.documentToScreenRow(t,0)*e.lineHeight-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.setScrollMargin=function(e,t,i,n){var r=this.scrollMargin;r.top=0|e,r.bottom=0|t,r.right=0|n,r.left=0|i,r.v=r.top+r.bottom,r.h=r.left+r.right,r.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-r.top),this.updateFull()},this.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},this.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},this.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},this.setVScrollBarAlwaysVisible=function(e){this.setOption("vScrollBarAlwaysVisible",e)},this.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},this.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},this.$frozen=!1,this.freeze=function(){this.$frozen=!0},this.unfreeze=function(){this.$frozen=!1},this.$renderChanges=function(e,t){if(this.$changes&&(e|=this.$changes,this.$changes=0),!this.session||!this.container.offsetWidth||this.$frozen||!e&&!t)return void(this.$changes|=e);if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender"),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var i=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){if(e|=this.$computeLayerConfig(),i.firstRow!=this.layerConfig.firstRow&&i.firstRowScreen==this.layerConfig.firstRowScreen){var n=this.scrollTop+(i.firstRow-this.layerConfig.firstRow)*this.lineHeight;n>0&&(this.scrollTop=n,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig())}i=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),this.$gutterLayer.element.style.marginTop=-i.offset+"px",this.content.style.marginTop=-i.offset+"px",this.content.style.width=i.width+2*this.$padding+"px",this.content.style.height=i.minHeight+"px"}return e&this.CHANGE_H_SCROLL&&(this.content.style.marginLeft=-this.scrollLeft+"px",this.scroller.className=this.scrollLeft<=0?"ace_scroller":"ace_scroller ace_scroll-left"),e&this.CHANGE_FULL?(this.$textLayer.update(i),this.$showGutter&&this.$gutterLayer.update(i),this.$markerBack.update(i),this.$markerFront.update(i),this.$cursorLayer.update(i),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),void this._signal("afterRender")):e&this.CHANGE_SCROLL?(e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(i):this.$textLayer.scrollLines(i),this.$showGutter&&this.$gutterLayer.update(i),this.$markerBack.update(i),this.$markerFront.update(i),this.$cursorLayer.update(i),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this.$moveTextAreaToCursor(),void this._signal("afterRender")):(e&this.CHANGE_TEXT?(this.$textLayer.update(i),this.$showGutter&&this.$gutterLayer.update(i)):e&this.CHANGE_LINES?(this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(i):(e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER)&&this.$showGutter&&this.$gutterLayer.update(i),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(i),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(i),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(i),void this._signal("afterRender"))},this.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,i=Math.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(i+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&i>this.$maxPixelHeight&&(i=this.$maxPixelHeight);var n=e>t;if(i!=this.desiredHeight||this.$size.height!=this.desiredHeight||n!=this.$vScroll){n!=this.$vScroll&&(this.$vScroll=n,this.scrollBarV.setVisible(n));var r=this.container.clientWidth;this.container.style.height=i+"px",this.$updateCachedSize(!0,this.$gutterWidth,r,i),this.desiredHeight=i,this._signal("autosize")}},this.$computeLayerConfig=function(){var e=this.session,t=this.$size,i=t.height<=2*this.lineHeight,n=this.session.getScreenLength(),r=n*this.lineHeight,o=this.$getLongestLine(),s=!i&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-o-2*this.$padding<0),a=this.$horizScroll!==s;a&&(this.$horizScroll=s,this.scrollBarH.setVisible(s));var l=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var c=this.scrollTop%this.lineHeight,h=t.scrollerHeight+this.lineHeight,d=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;r+=d;var u=this.scrollMargin;this.session.setScrollTop(Math.max(-u.top,Math.min(this.scrollTop,r-t.scrollerHeight+u.bottom))),this.session.setScrollLeft(Math.max(-u.left,Math.min(this.scrollLeft,o+2*this.$padding-t.scrollerWidth+u.right)));var f=!i&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-r+d<0||this.scrollTop>u.top),p=l!==f;p&&(this.$vScroll=f,this.scrollBarV.setVisible(f));var m,g,v=Math.ceil(h/this.lineHeight)-1,w=Math.max(0,Math.round((this.scrollTop-c)/this.lineHeight)),y=w+v,A=this.lineHeight;w=e.screenToDocumentRow(w,0);var C=e.getFoldLine(w);C&&(w=C.start.row),m=e.documentToScreenRow(w,0),g=e.getRowLength(w)*A,y=Math.min(e.screenToDocumentRow(y,0),e.getLength()-1),h=t.scrollerHeight+e.getRowLength(y)*A+g,c=this.scrollTop-m*A;var E=0;return this.layerConfig.width!=o&&(E=this.CHANGE_H_SCROLL),(a||p)&&(E=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),p&&(o=this.$getLongestLine())),this.layerConfig={width:o,padding:this.$padding,firstRow:w,firstRowScreen:m,lastRow:y,lineHeight:A,characterWidth:this.characterWidth,minHeight:h,maxHeight:r,offset:c,gutterOffset:A?Math.max(0,Math.ceil((c+t.height-t.scrollerHeight)/A)):0,height:this.$size.scrollerHeight},E},this.$updateLines=function(){if(this.$changedLines){var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var i=this.layerConfig;if(!(e>i.lastRow+1||to?(t&&l+s>o+this.lineHeight&&(o-=t*this.$size.scrollerHeight),0===o&&(o=-this.scrollMargin.top),this.session.setScrollTop(o)):l+this.$size.scrollerHeight-ar?(r=1-this.scrollMargin.top||(t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||(e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||(e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right||void 0)))},this.pixelToScreenCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=e+this.scrollLeft-i.left-this.$padding,r=n/this.characterWidth,o=Math.floor((t+this.scrollTop-i.top)/this.lineHeight),s=Math.round(r);return{row:o,column:s,side:r-s>0?1:-1,offsetX:n}},this.screenToTextCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=e+this.scrollLeft-i.left-this.$padding,r=Math.round(n/this.characterWidth),o=(t+this.scrollTop-i.top)/this.lineHeight;return this.session.screenToDocumentPosition(o,Math.max(r,0),n)},this.textToScreenCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=this.session.documentToScreenPosition(e,t),r=this.$padding+(this.session.$bidiHandler.isBidiRow(n.row,e)?this.session.$bidiHandler.getPosLeft(n.column):Math.round(n.column*this.characterWidth)),o=n.row*this.lineHeight;return{pageX:i.left+r-this.scrollLeft,pageY:i.top+o-this.scrollTop}},this.visualizeFocus=function(){r.addCssClass(this.container,"ace_focus")},this.visualizeBlur=function(){r.removeCssClass(this.container,"ace_focus")},this.showComposition=function(e){this.$composition||(this.$composition={keepTextAreaAtCursor:this.$keepTextAreaAtCursor,cssText:this.textarea.style.cssText}),this.$keepTextAreaAtCursor=!0,r.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor()},this.setCompositionText=function(e){this.$moveTextAreaToCursor()},this.hideComposition=function(){this.$composition&&(r.removeCssClass(this.textarea,"ace_composition"),this.$keepTextAreaAtCursor=this.$composition.keepTextAreaAtCursor,this.textarea.style.cssText=this.$composition.cssText,this.$composition=null)},this.setTheme=function(e,t){function i(i){if(n.$themeId!=e)return t&&t();if(!i||!i.cssClass)throw new Error("couldn't load module "+e+" or it didn't call define");r.importCssString(i.cssText,i.cssClass,n.container.ownerDocument),n.theme&&r.removeCssClass(n.container,n.theme.cssClass);var o="padding"in i?i.padding:"padding"in(n.theme||{})?4:n.$padding;n.$padding&&o!=n.$padding&&n.setPadding(o),n.$theme=i.cssClass,n.theme=i,r.addCssClass(n.container,i.cssClass),r.setCssClass(n.container,"ace_dark",i.isDark),n.$size&&(n.$size.width=0,n.$updateSizeAsync()),n._dispatchEvent("themeLoaded",{theme:i}),t&&t()}var n=this;if(this.$themeId=e,n._dispatchEvent("themeChange",{theme:e}),e&&"string"!=typeof e)i(e);else{var s=e||this.$options.theme.initialValue;o.loadModule(["theme",s],i)}},this.getTheme=function(){return this.$themeId},this.setStyle=function(e,t){r.setCssClass(this.container,e,!1!==t)},this.unsetStyle=function(e){r.removeCssClass(this.container,e)},this.setCursorStyle=function(e){this.scroller.style.cursor!=e&&(this.scroller.style.cursor=e)},this.setMouseCursor=function(e){this.scroller.style.cursor=e},this.destroy=function(){this.$textLayer.destroy(),this.$cursorLayer.destroy()}}).call(g.prototype),o.defineOptions(g.prototype,"renderer",{animatedScroll:{initialValue:!1},showInvisibles:{set:function(e){this.$textLayer.setShowInvisibles(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(e){"number"==typeof e&&(this.$printMarginColumn=e),this.$showPrintMargin=!!e,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(e){this.$gutter.style.display=e?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},fadeFoldWidgets:{set:function(e){r.setCssClass(this.$gutter,"ace_fade-fold-widgets",e)},initialValue:!1},showFoldWidgets:{set:function(e){this.$gutterLayer.setShowFoldWidgets(e)},initialValue:!0},showLineNumbers:{set:function(e){this.$gutterLayer.setShowLineNumbers(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(e){this.$textLayer.setDisplayIndentGuides(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightGutterLine:{set:function(e){if(!this.$gutterLineHighlight)return this.$gutterLineHighlight=r.createElement("div"),this.$gutterLineHighlight.className="ace_gutter-active-line",void this.$gutter.appendChild(this.$gutterLineHighlight);this.$gutterLineHighlight.style.display=e?"":"none",this.$cursorLayer.$pixelPos&&this.$updateGutterLineHighlight()},initialValue:!1,value:!0},hScrollBarAlwaysVisible:{set:function(e){this.$hScrollBarAlwaysVisible&&this.$horizScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(e){this.$vScrollBarAlwaysVisible&&this.$vScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(e){"number"==typeof e&&(e+="px"),this.container.style.fontSize=e,this.updateFontSize()},initialValue:12},fontFamily:{set:function(e){this.container.style.fontFamily=e,this.updateFontSize()}},maxLines:{set:function(e){this.updateFull()}},minLines:{set:function(e){this.updateFull()}},maxPixelHeight:{set:function(e){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(e){e=+e||0,this.$scrollPastEnd!=e&&(this.$scrollPastEnd=e,this.$loop.schedule(this.CHANGE_SCROLL))},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(e){this.$gutterLayer.$fixedWidth=!!e,this.$loop.schedule(this.CHANGE_GUTTER)}},theme:{set:function(e){this.setTheme(e)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0}}),t.VirtualRenderer=g}),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(e,t,i){"use strict";function n(e,t){var i=t.src;s.qualifyURL(e);try{return new Blob([i],{type:"application/javascript"})}catch(e){var n=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,r=new n;return r.append(i),r.getBlob("application/javascript")}}function r(e,t){var i=n(e,t),r=window.URL||window.webkitURL,o=r.createObjectURL(i);return new Worker(o)}var o=e("../lib/oop"),s=e("../lib/net"),a=e("../lib/event_emitter").EventEmitter,l=e("../config"),c=function(t,i,n,o,s){if(this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl),l.get("packaged")||!e.toUrl)o=o||l.moduleUrl(i.id,"worker");else{var a=this.$normalizePath;o=o||a(e.toUrl("ace/worker/worker.js",null,"_"));var c={};t.forEach(function(t){c[t]=a(e.toUrl(t,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}this.$worker=r(o,i),s&&this.send("importScripts",s),this.$worker.postMessage({init:!0,tlns:c,module:i.id,classname:n}),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){o.implement(this,a),this.onMessage=function(e){var t=e.data;switch(t.type){case"event":this._signal(t.name,{data:t.data});break;case"call":var i=this.callbacks[t.id];i&&(i(t.data),delete this.callbacks[t.id]);break;case"error":this.reportError(t.data);break;case"log":window.console&&console.log&&console.log.apply(console,t.data)}},this.reportError=function(e){window.console&&console.error&&console.error(e)},this.$normalizePath=function(e){return s.qualifyURL(e)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,i){if(i){var n=this.callbackId++;this.callbacks[n]=i,t.push(n)}this.send(e,t)},this.emit=function(e,t){try{this.$worker.postMessage({event:e,data:{data:t.data}})}catch(e){console.error(e.stack)}},this.attachToDocument=function(e){this.$doc&&this.terminate(),this.$doc=e,this.call("setValue",[e.getValue()]),e.on("change",this.changeListener)},this.changeListener=function(e){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),"insert"==e.action?this.deltaQueue.push(e.start,e.lines):this.deltaQueue.push(e.start,e.end)},this.$sendDeltaQueue=function(){var e=this.deltaQueue;e&&(this.deltaQueue=null,e.length>50&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e}))}}).call(c.prototype);var h=function(e,t,i){this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.callbackId=1,this.callbacks={},this.messageBuffer=[];var n=null,r=!1,o=Object.create(a),s=this;this.$worker={},this.$worker.terminate=function(){},this.$worker.postMessage=function(e){s.messageBuffer.push(e),n&&(r?setTimeout(c):c())},this.setEmitSync=function(e){r=e};var c=function(){var e=s.messageBuffer.shift();e.command?n[e.command].apply(n,e.args):e.event&&o._signal(e.event,e.data)};o.postMessage=function(e){s.onMessage({data:e})},o.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},o.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},l.loadModule(["worker",t],function(e){for(n=new e[i](o);s.messageBuffer.length;)c()})};h.prototype=c.prototype,t.UIWorkerClient=h,t.WorkerClient=c,t.createWorker=r}),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(e,t,i){"use strict";var n=e("./range").Range,r=e("./lib/event_emitter").EventEmitter,o=e("./lib/oop"),s=function(e,t,i,n,r,o){var s=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=r,this.othersClass=o,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate),this.$others=n,this.$onCursorChange=function(){setTimeout(function(){s.onCursorChange()})},this.$pos=i;var a=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=a.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)};(function(){o.implement(this,r),this.setup=function(){var e=this,t=this.doc,i=this.session;this.selectionBefore=i.selection.toJSON(),i.selection.inMultiSelectMode&&i.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var r=this.pos;r.$insertRight=!0,r.detach(),r.markerId=i.addMarker(new n(r.row,r.column,r.row,r.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(i){var n=t.createAnchor(i.row,i.column);n.$insertRight=!0,n.detach(),e.others.push(n)}),i.setUndoSelect(!1)},this.showOtherMarkers=function(){if(!this.othersActive){var e=this.session,t=this;this.othersActive=!0,this.others.forEach(function(i){i.markerId=e.addMarker(new n(i.row,i.column,i.row,i.column+t.length),t.othersClass,null,!1)})}},this.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var e=0;e=this.pos.column&&t.start.column<=this.pos.column+this.length+1,o=t.start.column-this.pos.column;if(this.updateAnchors(e),r&&(this.length+=i),r&&!this.session.$fromUndo)if("insert"===e.action)for(var s=this.others.length-1;s>=0;s--){var a=this.others[s],l={row:a.row,column:a.column+o};this.doc.insertMergedLines(l,e.lines)}else if("remove"===e.action)for(var s=this.others.length-1;s>=0;s--){var a=this.others[s],l={row:a.row,column:a.column+o};this.doc.remove(new n(l.row,l.column,l.row,l.column-i))}this.$updating=!1,this.updateMarkers()}},this.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},this.updateMarkers=function(){if(!this.$updating){var e=this,t=this.session,i=function(i,r){t.removeMarker(i.markerId),i.markerId=t.addMarker(new n(i.row,i.column,i.row,i.column+e.length),r,null,!1)};i(this.pos,this.mainClass);for(var r=this.others.length;r--;)i(this.others[r],this.othersClass)}},this.onCursorChange=function(e){if(!this.$updating&&this.session){var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))}},this.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.removeEventListener("change",this.$onUpdate),this.session.selection.removeEventListener("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},this.cancel=function(){if(-1!==this.$undoStackDepth){for(var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth,i=0;i1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)}},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length?this.$onRemoveRange(e):this.ranges[0]&&this.fromOrientedRange(this.ranges[0])},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal("addRange",{range:e})},this.$onRemoveRange=function(e){if(this.rangeCount=this.rangeList.ranges.length,1==this.rangeCount&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var i=e.length;i--;){var n=this.ranges.indexOf(e[i]);this.ranges.splice(n,1)}this._signal("removeRange",{ranges:e}),0===this.rangeCount&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),(t=t||this.ranges[0])&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new a,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){if(this.rangeCount>1){var e=this.rangeList.ranges,t=e[e.length-1],i=l.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(i,t.cursor==t.start)}else{var i=this.getRange(),n=this.isBackwards(),r=i.start.row,o=i.end.row;if(r==o){if(n)var s=i.end,a=i.start;else var s=i.start,a=i.end;return this.addRange(l.fromPoints(a,a)),void this.addRange(l.fromPoints(s,s))}var c=[],h=this.getLineRange(r,!0);h.start.column=i.start.column,c.push(h);for(var d=r+1;d1){var e=this.rangeList.ranges,t=e[e.length-1],i=l.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(i,t.cursor==t.start)}else{var n=this.session.documentToScreenPosition(this.selectionLead),r=this.session.documentToScreenPosition(this.selectionAnchor);this.rectangularRangeBlock(n,r).forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,i){var n=[],o=e.column0;)v--;if(v>0)for(var w=0;n[w].isEmpty();)w++;for(var y=v;y>=w;y--)n[y].isEmpty()&&n.splice(y,1)}return n}}.call(c.prototype);var v=e("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,"ace_selection",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(e.marker){this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);-1!=t&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(e){for(var t=this.session.$selectionMarkers,i=e.length;i--;){var n=e[i];if(n.marker){this.session.removeMarker(n.marker);var r=t.indexOf(n);-1!=r&&t.splice(r,1)}}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(f.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(e){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(f.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection"))},this.$onMultiSelectExec=function(e){var t=e.command,i=e.editor;if(i.multiSelect){if(t.multiSelectAction)"forEach"==t.multiSelectAction?n=i.forEachSelection(t,e.args):"forEachLine"==t.multiSelectAction?n=i.forEachSelection(t,e.args,!0):"single"==t.multiSelectAction?(i.exitMultiSelectMode(),n=t.exec(i,e.args||{})):n=t.multiSelectAction(i,e.args||{});else{var n=t.exec(i,e.args||{});i.multiSelect.addRange(i.multiSelect.toOrientedRange()),i.multiSelect.mergeOverlappingRanges()}return n}},this.forEachSelection=function(e,t,i){if(!this.inVirtualSelectionMode){var n,r=i&&i.keepOrder,o=1==i||i&&i.$byLines,s=this.session,a=this.selection,l=a.rangeList,h=(r?a:l).ranges;if(!h.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var d=a._eventRegistry;a._eventRegistry={};var u=new c(s);this.inVirtualSelectionMode=!0;for(var f=h.length;f--;){if(o)for(;f>0&&h[f].start.row==h[f-1].end.row;)f--;u.fromOrientedRange(h[f]),u.index=f,this.selection=s.selection=u;var p=e.exec?e.exec(this,t||{}):e(this,t||{});n||void 0===p||(n=p),u.toOrientedRange(h[f])}u.detach(),this.selection=s.selection=a,this.inVirtualSelectionMode=!1,a._eventRegistry=d,a.mergeOverlappingRanges();var m=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),m&&m.from==m.to&&this.renderer.animateScrolling(m.from),n}},this.exitMultiSelectMode=function(){this.inMultiSelectMode&&!this.inVirtualSelectionMode&&this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var t=this.multiSelect.rangeList.ranges,i=[],n=0;no&&(o=i.column),rc?e.insert(n,u.stringRepeat(" ",r-c)):e.remove(new l(n.row,n.column,n.row,n.column-r+c)),t.start.column=t.end.column=o,t.start.row=t.end.row=n.row,t.cursor=t.end}),t.fromOrientedRange(i[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}else{var c=this.selection.getRange(),h=c.start.row,d=c.end.row,f=h==d;if(f){var p,m=this.session.getLength();do{p=this.session.getLine(d)}while(/[=:]/.test(p)&&++d0);h<0&&(h=0),d>=m&&(d=m-1)}var g=this.session.removeFullLines(h,d);g=this.$reAlignText(g,f),this.session.insert({row:h,column:0},g.join("\n")+"\n"),f||(c.start.column=0,c.end.column=g[g.length-1].length),this.selection.setRange(c)}},this.$reAlignText=function(e,t){function i(e){return u.stringRepeat(" ",e)}function n(e){return e[2]?i(s)+e[2]+i(a-e[2].length+l)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function r(e){return e[2]?i(s+a-e[2].length)+e[2]+i(l," ")+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function o(e){return e[2]?i(s)+e[2]+i(l)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}var s,a,l,c=!0,h=!0;return e.map(function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?null==s?(s=t[1].length,a=t[2].length,l=t[3].length,t):(s+a+l!=t[1].length+t[2].length+t[3].length&&(h=!1),s!=t[1].length&&(c=!1),s>t[1].length&&(s=t[1].length),at[3].length&&(l=t[3].length),t):[e]}).map(t?n:c?h?r:n:o)}}).call(v.prototype),t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var i=e.oldSession;i&&(i.multiSelect.off("addRange",this.$onAddRange),i.multiSelect.off("removeRange",this.$onRemoveRange),i.multiSelect.off("multiSelect",this.$onMultiSelect),i.multiSelect.off("singleSelect",this.$onSingleSelect),i.multiSelect.lead.off("change",this.$checkMultiselectChange),i.multiSelect.anchor.off("change",this.$checkMultiselectChange)),t&&(t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),t.multiSelect.lead.on("change",this.$checkMultiselectChange),t.multiSelect.anchor.on("change",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=o,e("./config").defineOptions(v.prototype,"editor",{enableMultiselect:{set:function(e){o(this),e?(this.on("changeSession",this.$multiselectOnSessionChange),this.on("mousedown",h)):(this.off("changeSession",this.$multiselectOnSessionChange),this.off("mousedown",h))},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})}),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(e,t,i){"use strict";var n=e("../../range").Range,r=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,i){var n=e.getLine(i);return this.foldingStartMarker.test(n)?"start":"markbeginend"==t&&this.foldingStopMarker&&this.foldingStopMarker.test(n)?"end":""},this.getFoldWidgetRange=function(e,t,i){return null},this.indentationBlock=function(e,t,i){var r=e.getLine(t),o=r.search(/\S/);if(-1!=o){for(var s=i||r.length,a=e.getLength(),l=t,c=t;++tl){var d=e.getLine(c).length;return new n(l,s,c,d)}}},this.openingBracketBlock=function(e,t,i,r,o){var s={row:i,column:r+1},a=e.$findClosingBracket(t,s,o);if(a){var l=e.foldWidgets[a.row];return null==l&&(l=e.getFoldWidget(a.row)),"start"==l&&a.row>s.row&&(a.row--,a.column=e.getLine(a.row).length),n.fromPoints(s,a)}},this.closingBracketBlock=function(e,t,i,r,o){var s={row:i,column:r},a=e.$findOpeningBracket(t,s);if(a)return a.column++,s.column--,n.fromPoints(a,s)}}).call(r.prototype)}),ace.define("ace/theme/textmate",["require","exports","module","ace/lib/dom"],function(e,t,i){"use strict";t.isDark=!1,t.cssClass="ace-tm",t.cssText='.ace-tm .ace_gutter {\tbackground: #f0f0f0;\tcolor: #333;\t}\t.ace-tm .ace_print-margin {\twidth: 1px;\tbackground: #e8e8e8;\t}\t.ace-tm .ace_fold {\tbackground-color: #6B72E6;\t}\t.ace-tm {\tbackground-color: #FFFFFF;\tcolor: black;\t}\t.ace-tm .ace_cursor {\tcolor: black;\t}\t.ace-tm .ace_invisible {\tcolor: rgb(191, 191, 191);\t}\t.ace-tm .ace_storage,\t.ace-tm .ace_keyword {\tcolor: blue;\t}\t.ace-tm .ace_constant {\tcolor: rgb(197, 6, 11);\t}\t.ace-tm .ace_constant.ace_buildin {\tcolor: rgb(88, 72, 246);\t}\t.ace-tm .ace_constant.ace_language {\tcolor: rgb(88, 92, 246);\t}\t.ace-tm .ace_constant.ace_library {\tcolor: rgb(6, 150, 14);\t}\t.ace-tm .ace_invalid {\tbackground-color: rgba(255, 0, 0, 0.1);\tcolor: red;\t}\t.ace-tm .ace_support.ace_function {\tcolor: rgb(60, 76, 114);\t}\t.ace-tm .ace_support.ace_constant {\tcolor: rgb(6, 150, 14);\t}\t.ace-tm .ace_support.ace_type,\t.ace-tm .ace_support.ace_class {\tcolor: rgb(109, 121, 222);\t}\t.ace-tm .ace_keyword.ace_operator {\tcolor: rgb(104, 118, 135);\t}\t.ace-tm .ace_string {\tcolor: rgb(3, 106, 7);\t}\t.ace-tm .ace_comment {\tcolor: rgb(76, 136, 107);\t}\t.ace-tm .ace_comment.ace_doc {\tcolor: rgb(0, 102, 255);\t}\t.ace-tm .ace_comment.ace_doc.ace_tag {\tcolor: rgb(128, 159, 191);\t}\t.ace-tm .ace_constant.ace_numeric {\tcolor: rgb(0, 0, 205);\t}\t.ace-tm .ace_variable {\tcolor: rgb(49, 132, 149);\t}\t.ace-tm .ace_xml-pe {\tcolor: rgb(104, 104, 91);\t}\t.ace-tm .ace_entity.ace_name.ace_function {\tcolor: #0000A2;\t}\t.ace-tm .ace_heading {\tcolor: rgb(12, 7, 255);\t}\t.ace-tm .ace_list {\tcolor:rgb(185, 6, 144);\t}\t.ace-tm .ace_meta.ace_tag {\tcolor:rgb(0, 22, 142);\t}\t.ace-tm .ace_string.ace_regex {\tcolor: rgb(255, 0, 0)\t}\t.ace-tm .ace_marker-layer .ace_selection {\tbackground: rgb(181, 213, 255);\t}\t.ace-tm.ace_multiselect .ace_selection.ace_start {\tbox-shadow: 0 0 3px 0px white;\t}\t.ace-tm .ace_marker-layer .ace_step {\tbackground: rgb(252, 255, 0);\t}\t.ace-tm .ace_marker-layer .ace_stack {\tbackground: rgb(164, 229, 101);\t}\t.ace-tm .ace_marker-layer .ace_bracket {\tmargin: -1px 0 0 -1px;\tborder: 1px solid rgb(192, 192, 192);\t}\t.ace-tm .ace_marker-layer .ace_active-line {\tbackground: rgba(0, 0, 0, 0.07);\t}\t.ace-tm .ace_gutter-active-line {\tbackground-color : #dcdcdc;\t}\t.ace-tm .ace_marker-layer .ace_selected-word {\tbackground: rgb(250, 250, 255);\tborder: 1px solid rgb(200, 200, 250);\t}\t.ace-tm .ace_indent-guide {\tbackground: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;\t}\t',e("../lib/dom").importCssString(t.cssText,t.cssClass)}),ace.define("ace/line_widgets",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/range"],function(e,t,i){"use strict";function n(e){this.session=e,this.session.widgetManager=this,this.session.getRowLength=this.getRowLength,this.session.$getWidgetScreenLength=this.$getWidgetScreenLength,this.updateOnChange=this.updateOnChange.bind(this),this.renderWidgets=this.renderWidgets.bind(this),this.measureWidgets=this.measureWidgets.bind(this),this.session._changedWidgets=[],this.$onChangeEditor=this.$onChangeEditor.bind(this),this.session.on("change",this.updateOnChange),this.session.on("changeFold",this.updateOnFold),this.session.on("changeEditor",this.$onChangeEditor)}var r=(e("./lib/oop"),e("./lib/dom"));e("./range").Range;(function(){this.getRowLength=function(e){var t;return t=this.lineWidgets?this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0:0,this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1+t:1+t},this.$getWidgetScreenLength=function(){var e=0;return this.lineWidgets.forEach(function(t){t&&t.rowCount&&!t.hidden&&(e+=t.rowCount)}),e},this.$onChangeEditor=function(e){this.attach(e.editor)},this.attach=function(e){e&&e.widgetManager&&e.widgetManager!=this&&e.widgetManager.detach(),this.editor!=e&&(this.detach(),this.editor=e,e&&(e.widgetManager=this,e.renderer.on("beforeRender",this.measureWidgets),e.renderer.on("afterRender",this.renderWidgets)))},this.detach=function(e){var t=this.editor;if(t){this.editor=null,t.widgetManager=null,t.renderer.off("beforeRender",this.measureWidgets),t.renderer.off("afterRender",this.renderWidgets);var i=this.session.lineWidgets;i&&i.forEach(function(e){e&&e.el&&e.el.parentNode&&(e._inDocument=!1,e.el.parentNode.removeChild(e.el))})}},this.updateOnFold=function(e,t){var i=t.lineWidgets;if(i&&e.action){for(var n=e.data,r=n.start.row,o=n.end.row,s="add"==e.action,a=r+1;a0&&!n[r];)r--;this.firstRow=i.firstRow,this.lastRow=i.lastRow,t.$cursorLayer.config=i;for(var s=r;s<=o;s++){var a=n[s];if(a&&a.el)if(a.hidden)a.el.style.top=-100-(a.pixelHeight||0)+"px";else{a._inDocument||(a._inDocument=!0,t.container.appendChild(a.el));var l=t.$cursorLayer.getPixelPosition({row:s,column:0},!0).top;a.coverLine||(l+=i.lineHeight*this.session.getRowLineCount(a.row)),a.el.style.top=l-i.offset+"px";var c=a.coverGutter?0:t.gutterWidth;a.fixedWidth||(c-=t.scrollLeft),a.el.style.left=c+"px",a.fullWidth&&a.screenWidth&&(a.el.style.minWidth=i.width+2*i.padding+"px"),a.fixedWidth?a.el.style.right=t.scrollBar.getWidth()+"px":a.el.style.right=""}}}}}).call(n.prototype),t.LineWidgets=n}),ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range"],function(e,t,i){"use strict";function n(e,t,i){for(var n=0,r=e.length-1;n<=r;){var o=n+r>>1,s=i(t,e[o]);if(s>0)n=o+1;else{if(!(s<0))return o;r=o-1}}return-(n+1)}function r(e,t,i){var r=e.getAnnotations().sort(a.comparePoints);if(r.length){var o=n(r,{row:t,column:-1},a.comparePoints);o<0&&(o=-o-1),o>=r.length?o=i>0?0:r.length-1:0===o&&i<0&&(o=r.length-1);var s=r[o];if(s&&i){if(s.row===t){do{s=r[o+=i]}while(s&&s.row===t);if(!s)return r.slice()}var l=[];t=s.row;do{l[i<0?"unshift":"push"](s),s=r[o+=i]}while(s&&s.row==t);return l.length&&l}}}var o=e("../line_widgets").LineWidgets,s=e("../lib/dom"),a=e("../range").Range;t.showErrorMarker=function(e,t){var i=e.session;i.widgetManager||(i.widgetManager=new o(i),i.widgetManager.attach(e));var n=e.getCursorPosition(),a=n.row,l=i.widgetManager.getWidgetsAtRow(a).filter(function(e){return"errorMarker"==e.type})[0];l?l.destroy():a-=t;var c,h=r(i,a,t);if(h){var d=h[0];n.column=(d.pos&&"number"!=typeof d.column?d.pos.sc:d.column)||0,n.row=d.row,c=e.renderer.$gutterLayer.$annotations[n.row]}else{if(l)return;c={text:["Looks good!"],className:"ace_ok"}}e.session.unfold(n.row),e.selection.moveToPosition(n);var u={row:n.row,fixedWidth:!0,coverGutter:!0,el:s.createElement("div"),type:"errorMarker"},f=u.el.appendChild(s.createElement("div")),p=u.el.appendChild(s.createElement("div"));p.className="error_widget_arrow "+c.className;var m=e.renderer.$cursorLayer.getPixelPosition(n).left;p.style.left=m+e.renderer.gutterWidth-5+"px",u.el.className="error_widget_wrapper",f.className="error_widget "+c.className,f.innerHTML=c.text.join("
"),f.appendChild(s.createElement("div"));var g=function(e,t,i){if(0===t&&("esc"===i||"return"===i))return u.destroy(),{command:"null"}};u.destroy=function(){e.$mouseHandler.isMousePressed||(e.keyBinding.removeKeyboardHandler(g),i.widgetManager.removeLineWidget(u),e.off("changeSelection",u.destroy),e.off("changeSession",u.destroy),e.off("mouseup",u.destroy),e.off("change",u.destroy))},e.keyBinding.addKeyboardHandler(g),e.on("changeSelection",u.destroy),e.on("changeSession",u.destroy),e.on("mouseup",u.destroy),e.on("change",u.destroy),e.session.widgetManager.addLineWidget(u),u.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:u.el.offsetHeight})},s.importCssString("\t .error_widget_wrapper {\t background: inherit;\t color: inherit;\t border:none\t }\t .error_widget {\t border-top: solid 2px;\t border-bottom: solid 2px;\t margin: 5px 0;\t padding: 10px 40px;\t white-space: pre-wrap;\t }\t .error_widget.ace_error, .error_widget_arrow.ace_error{\t border-color: #ff5a5a\t }\t .error_widget.ace_warning, .error_widget_arrow.ace_warning{\t border-color: #F1D817\t }\t .error_widget.ace_info, .error_widget_arrow.ace_info{\t border-color: #5a5a5a\t }\t .error_widget.ace_ok, .error_widget_arrow.ace_ok{\t border-color: #5aaa5a\t }\t .error_widget_arrow {\t position: absolute;\t border: solid 5px;\t border-top-color: transparent!important;\t border-right-color: transparent!important;\t border-left-color: transparent!important;\t top: -5px;\t }\t","")}),ace.define("ace/ace",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/dom","ace/lib/event","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config"],function(e,t,n){"use strict";e("./lib/fixoldbrowsers");var r=e("./lib/dom"),o=e("./lib/event"),s=e("./editor").Editor,a=e("./edit_session").EditSession,l=e("./undomanager").UndoManager,c=e("./virtual_renderer").VirtualRenderer;e("./worker/worker_client"),e("./keyboard/hash_handler"),e("./placeholder"),e("./multi_select"),e("./mode/folding/fold_mode"),e("./theme/textmate"),e("./ext/error_marker"),t.config=e("./config"),t.acequire=e,t.define=i(69),t.edit=function(e){if("string"==typeof e){var i=e;if(!(e=document.getElementById(i)))throw new Error("ace.edit can't find div #"+i)}if(e&&e.env&&e.env.editor instanceof s)return e.env.editor;var n="";if(e&&/input|textarea/i.test(e.tagName)){var a=e;n=a.value,e=r.createElement("pre"),a.parentNode.replaceChild(e,a)}else e&&(n=r.getInnerText(e),e.innerHTML="");var l=t.createEditSession(n),h=new s(new c(e));h.setSession(l);var d={document:l,editor:h,onResize:h.resize.bind(h,null)};return a&&(d.textarea=a),o.addListener(window,"resize",d.onResize),h.on("destroy",function(){o.removeListener(window,"resize",d.onResize),d.editor.container.env=null}),h.container.env=h.env=d,h},t.createEditSession=function(e,t){var i=new a(e,t);return i.setUndoManager(new l),i},t.EditSession=a,t.UndoManager=l,t.version="1.2.9"}),function(){ace.acequire(["ace/ace"],function(e){e&&(e.config.init(!0),e.define=ace.define),window.ace||(window.ace=e);for(var t in e)e.hasOwnProperty(t)&&(window.ace[t]=e[t])})}(),e.exports=window.ace.acequire("ace/ace")},function(e,t){e.exports=function(){throw new Error("define cannot be used indirect")}},function(e,t,i){ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,i){"use strict";var n=e("../lib/oop"),r=e("./text_highlight_rules").TextHighlightRules,o=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"text",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]}};n.inherits(o,r),t.JsonHighlightRules=o}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,i){"use strict";var n=e("../range").Range,r=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var i=e.getLine(t),r=i.match(/^(\s*\})/);if(!r)return 0;var o=r[1].length,s=e.findMatchingBracket({row:t,column:o});if(!s||s.row==t)return 0;var a=this.$getIndent(e.getLine(s.row));e.replace(new n(t,0,t,o-1),a)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(r.prototype),t.MatchingBraceOutdent=r}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,i){"use strict";var n=e("../../lib/oop"),r=e("../../range").Range,o=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};n.inherits(s,o),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,i){var n=e.getLine(i);if(this.singleLineBlockCommentRe.test(n)&&!this.startRegionRe.test(n)&&!this.tripleStarBlockCommentRe.test(n))return"";var r=this._getFoldWidgetBase(e,t,i);return!r&&this.startRegionRe.test(n)?"start":r},this.getFoldWidgetRange=function(e,t,i,n){var r=e.getLine(i);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,i);var o=r.match(this.foldingStartMarker);if(o){var s=o.index;if(o[1])return this.openingBracketBlock(e,o[1],i,s);var a=e.getCommentFoldRange(i,s+o[0].length,1);return a&&!a.isMultiLine()&&(n?a=this.getSectionRange(e,i):"all"!=t&&(a=null)),a}if("markbegin"!==t){var o=r.match(this.foldingStopMarker);if(o){var s=o.index+o[0].length;return o[1]?this.closingBracketBlock(e,o[1],i,s):e.getCommentFoldRange(i,s,-1)}}},this.getSectionRange=function(e,t){var i=e.getLine(t),n=i.search(/\S/),o=t,s=i.length;t+=1;for(var a=t,l=e.getLength();++tc)break;var h=this.getFoldWidgetRange(e,"all",t);if(h){if(h.start.row<=o)break;if(h.isMultiLine())t=h.end.row;else if(n==c)break}a=t}}return new r(o,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,i){for(var n=t.search(/\s*$/),o=e.getLength(),s=i,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++is)return new r(s,n,h,t.length)}}.call(s.prototype)}),ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/worker/worker_client"],function(e,t,n){"use strict";var r=e("../lib/oop"),o=e("./text").Mode,s=e("./json_highlight_rules").JsonHighlightRules,a=e("./matching_brace_outdent").MatchingBraceOutdent,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,h=e("../worker/worker_client").WorkerClient,d=function(){this.HighlightRules=s,this.$outdent=new a,this.$behaviour=new l,this.foldingRules=new c};r.inherits(d,o),function(){this.getNextLineIndent=function(e,t,i){var n=this.$getIndent(t);if("start"==e){t.match(/^.*[\{\(\[]\s*$/)&&(n+=i)}return n},this.checkOutdent=function(e,t,i){return this.$outdent.checkOutdent(t,i)},this.autoOutdent=function(e,t,i){this.$outdent.autoOutdent(t,i)},this.createWorker=function(e){var t=new h(["ace"],i(71),"JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/json"}.call(d.prototype),t.Mode=d})},function(e,t){e.exports.id="ace/mode/json_worker", +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.JSONEditor=t():e.JSONEditor=t()}(this,function(){return function(e){function t(n){if(i[n])return i[n].exports;var r=i[n]={exports:{},id:n,loaded:!1};return e[n].call(r.exports,r,r.exports,t),r.loaded=!0,r.exports}var i={};return t.m=e,t.c=i,t.p="",t(0)}([function(e,t,i){"use strict";function n(e,t,i){if(!(this instanceof n))throw new Error('JSONEditor constructor called without "new".');var r=a.getInternetExplorerVersion();if(-1!=r&&r<9)throw new Error("Unsupported browser, IE9 or newer required. Please install the newest version of your browser.");if(t&&(t.error&&(console.warn('Option "error" has been renamed to "onError"'),t.onError=t.error,delete t.error),t.change&&(console.warn('Option "change" has been renamed to "onChange"'),t.onChange=t.change,delete t.change),t.editable&&(console.warn('Option "editable" has been renamed to "onEditable"'),t.onEditable=t.editable,delete t.editable),t)){var o=["ajv","schema","schemaRefs","templates","ace","theme","autocomplete","onChange","onEditable","onError","onModeChange","onSelectionChange","onTextSelectionChange","escapeUnicode","history","search","mode","modes","name","indentation","sortObjectKeys","navigationBar","statusBar","languages","language"];Object.keys(t).forEach(function(e){-1===o.indexOf(e)&&console.warn('Unknown option "'+e+'". This option will be ignored')})}arguments.length&&this._create(e,t,i)}var r;try{r=i(1)}catch(e){}var o=i(51),s=i(67),a=i(54);n.modes={},n.prototype.DEBOUNCE_INTERVAL=150,n.prototype._create=function(e,t,i){this.container=e,this.options=t||{},this.json=i||{};var n=this.options.mode||this.options.modes&&this.options.modes[0]||"tree";this.setMode(n)},n.prototype.destroy=function(){},n.prototype.set=function(e){this.json=e},n.prototype.get=function(){return this.json},n.prototype.setText=function(e){this.json=a.parse(e)},n.prototype.getText=function(){return JSON.stringify(this.json)},n.prototype.setName=function(e){this.options||(this.options={}),this.options.name=e},n.prototype.getName=function(){return this.options&&this.options.name},n.prototype.setMode=function(e){var t,i,r=this.container,o=a.extend({},this.options),s=o.mode;o.mode=e;var l=n.modes[e];if(!l)throw new Error('Unknown mode "'+o.mode+'"');try{var c="text"==l.data;if(i=this.getName(),t=this[c?"getText":"get"](),this.destroy(),a.clear(this),a.extend(this,l.mixin),this.create(r,o),this.setName(i),this[c?"setText":"set"](t),"function"==typeof l.load)try{l.load.call(this)}catch(e){console.error(e)}if("function"==typeof o.onModeChange&&e!==s)try{o.onModeChange(e,s)}catch(e){console.error(e)}}catch(e){this._onError(e)}},n.prototype.getMode=function(){return this.options.mode},n.prototype._onError=function(e){if(!this.options||"function"!=typeof this.options.onError)throw e;this.options.onError(e)},n.prototype.setSchema=function(e,t){if(e){var i;try{i=this.options.ajv||r({allErrors:!0,verbose:!0})}catch(e){console.warn("Failed to create an instance of Ajv, JSON Schema validation is not available. Please use a JSONEditor bundle including Ajv, or pass an instance of Ajv as via the configuration option `ajv`.")}if(i){if(t){for(var n in t)i.removeSchema(n),t[n]&&i.addSchema(t[n],n);this.options.schemaRefs=t}this.validateSchema=i.compile(e),this.options.schema=e,this.validate()}this.refresh()}else this.validateSchema=null,this.options.schema=null,this.options.schemaRefs=null,this.validate(),this.refresh()},n.prototype.validate=function(){},n.prototype.refresh=function(){},n.registerMode=function(e){var t,i;if(a.isArray(e))for(t=0;t=0?{index:n,compiling:!0}:(n=this._compilations.length,this._compilations[n]={schema:e,root:t,baseId:i},{index:n,compiling:!1})}function o(e,t,i){var n=s.call(this,e,t,i);n>=0&&this._compilations.splice(n,1)}function s(e,t,i){for(var n=0;n",'"',"`"," ","\r","\n","\t"],g=["{","}","|","\\","^","`"].concat(m),v=["'"].concat(g),w=["%","/","?",";","#"].concat(v),y=["/","?","#"],A={javascript:!0,"javascript:":!0},C={javascript:!0,"javascript:":!0},b={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},E=i(7);n.prototype.parse=function(e,t,i){if(!l(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var n=e;n=n.trim();var r=f.exec(n);if(r){r=r[0];var o=r.toLowerCase();this.protocol=o,n=n.substr(r.length)}if(i||r||n.match(/^\/\/[^@\/]+@[^@\/]+/)){var s="//"===n.substr(0,2);!s||r&&C[r]||(n=n.substr(2),this.slashes=!0)}if(!C[r]&&(s||r&&!b[r])){for(var a=-1,c=0;c127?S+="x":S+=x[D];if(!S.match(/^[a-z0-9A-Z_-]{0,63}$/)){var k=g.slice(0,c),B=g.slice(c+1),_=x.match(/^([a-z0-9A-Z_-]{0,63})(.*)$/);_&&(k.push(_[1]),B.unshift(_[2])),B.length&&(n="/"+B.join(".")+n),this.hostname=k.join(".");break}}}if(this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),!m){for(var L=this.hostname.split("."),R=[],c=0;c0)&&i.host.split("@");g&&(i.auth=g.shift(),i.host=i.hostname=g.shift())}return i.search=e.search,i.query=e.query,h(i.pathname)&&h(i.search)||(i.path=(i.pathname?i.pathname:"")+(i.search?i.search:"")),i.href=i.format(),i}if(!p.length)return i.pathname=null,i.search?i.path="/"+i.search:i.path=null,i.href=i.format(),i;for(var v=p.slice(-1)[0],w=(i.host||e.host)&&("."===v||".."===v)||""===v,y=0,A=p.length;A>=0;A--)v=p[A],"."==v?p.splice(A,1):".."===v?(p.splice(A,1),y++):y&&(p.splice(A,1),y--);if(!u&&!f)for(;y--;y)p.unshift("..");!u||""===p[0]||p[0]&&"/"===p[0].charAt(0)||p.unshift(""),w&&"/"!==p.join("/").substr(-1)&&p.push("");var E=""===p[0]||p[0]&&"/"===p[0].charAt(0);if(m){i.hostname=i.host=E?"":p.length?p.shift():"";var g=!!(i.host&&i.host.indexOf("@")>0)&&i.host.split("@");g&&(i.auth=g.shift(),i.host=i.hostname=g.shift())}return u=u||i.host&&p.length,u&&!E&&p.unshift(""),p.length?i.pathname=p.join("/"):(i.pathname=null,i.path=null),h(i.pathname)&&h(i.search)||(i.path=(i.pathname?i.pathname:"")+(i.search?i.search:"")),i.auth=e.auth||i.auth,i.slashes=i.slashes||e.slashes,i.href=i.format(),i},n.prototype.parseHost=function(){var e=this.host,t=p.exec(e);t&&(t=t[0],":"!==t&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},function(e,t,i){var n;(function(e,r){!function(o){function s(e){throw RangeError(L[e])}function a(e,t){for(var i=e.length,n=[];i--;)n[i]=t(e[i]);return n}function l(e,t){var i=e.split("@"),n="";return i.length>1&&(n=i[0]+"@",e=i[1]),e=e.replace(_,"."),n+a(e.split("."),t).join(".")}function c(e){for(var t,i,n=[],r=0,o=e.length;r=55296&&t<=56319&&r65535&&(e-=65536,t+=P(e>>>10&1023|55296),e=56320|1023&e),t+=P(e)}).join("")}function d(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:C}function u(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function f(e,t,i){var n=0;for(e=i?T(e/x):e>>1,e+=T(e/t);e>R*E>>1;n+=C)e=T(e/R);return T(n+(R+1)*e/(e+F))}function p(e){var t,i,n,r,o,a,l,c,u,p,m=[],g=e.length,v=0,w=D,y=S;for(i=e.lastIndexOf($),i<0&&(i=0),n=0;n=128&&s("not-basic"),m.push(e.charCodeAt(n));for(r=i>0?i+1:0;r=g&&s("invalid-input"),c=d(e.charCodeAt(r++)),(c>=C||c>T((A-v)/a))&&s("overflow"),v+=c*a,u=l<=y?b:l>=y+E?E:l-y,!(cT(A/p)&&s("overflow"),a*=p;t=m.length+1,y=f(v-o,t,0==o),T(v/t)>A-w&&s("overflow"),w+=T(v/t),v%=t,m.splice(v++,0,w)}return h(m)}function m(e){var t,i,n,r,o,a,l,h,d,p,m,g,v,w,y,F=[];for(e=c(e),g=e.length,t=D,i=0,o=S,a=0;a=t&&mT((A-i)/v)&&s("overflow"),i+=(l-t)*v,t=l,a=0;aA&&s("overflow"),m==t){for(h=i,d=C;p=d<=o?b:d>=o+E?E:d-o,!(h= 0x80 (not a basic code point)","invalid-input":"Invalid input"},R=C-b,T=Math.floor,P=String.fromCharCode;y={version:"1.3.2",ucs2:{decode:c,encode:h},decode:p,encode:m,toASCII:v,toUnicode:g},void 0!==(n=function(){return y}.call(t,i,t,e))&&(e.exports=n)}()}).call(t,i(6)(e),function(){return this}())},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children=[],e.webpackPolyfill=1),e}},function(e,t,i){"use strict";t.decode=t.parse=i(8),t.encode=t.stringify=i(9)},function(e,t){"use strict";function i(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,t,n,r){t=t||"&",n=n||"=";var o={};if("string"!=typeof e||0===e.length)return o;e=e.split(t);var s=1e3;r&&"number"==typeof r.maxKeys&&(s=r.maxKeys);var a=e.length;s>0&&a>s&&(a=s);for(var l=0;l=0?(c=f.substr(0,p),h=f.substr(p+1)):(c=f,h=""),d=decodeURIComponent(c),u=decodeURIComponent(h),i(o,d)?Array.isArray(o[d])?o[d].push(u):o[d]=[o[d],u]:o[d]=u}return o}},function(e,t){"use strict";var i=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,t,n,r){return t=t||"&",n=n||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map(function(r){var o=encodeURIComponent(i(r))+n;return Array.isArray(e[r])?e[r].map(function(e){return o+encodeURIComponent(i(e))}).join(t):o+encodeURIComponent(i(e[r]))}).join(t):r?encodeURIComponent(i(r))+n+encodeURIComponent(i(e)):""}},function(e,t){"use strict";e.exports=function e(t,i){if(t===i)return!0;var n,r=Array.isArray(t),o=Array.isArray(i);if(r&&o){if(t.length!=i.length)return!1;for(n=0;n=t)throw new Error("Cannot access property/index "+n+" levels up, current level is "+t);return i[t-n]}if(n>t)throw new Error("Cannot access data "+n+" levels up, current level is "+t);if(o="data"+(t-n||""),!r)return o}for(var a=o,c=r.split("/"),h=0;h=55296&&t<=56319&&r2&&(t=d.call(arguments,1)),i(t)})})}function o(e){return Promise.all(e.map(n,this))}function s(e){for(var t=new e.constructor,i=Object.keys(e),r=[],o=0;o=1&&i<=12&&n>=1&&n<=u[i]}function o(e,t){var i=e.match(f);if(!i)return!1;var n=i[1],r=i[2],o=i[3],s=i[5];return n<=23&&r<=59&&o<=59&&(!t||s)}function s(e){var t=e.split(A);return 2==t.length&&r(t[0])&&o(t[1],!0)}function a(e){return e.length<=255&&p.test(e)}function l(e){return C.test(e)&&m.test(e)}function c(e){if(b.test(e))return!1;try{return new RegExp(e),!0}catch(e){return!1}}var h=i(11),d=/^\d\d\d\d-(\d\d)-(\d\d)$/,u=[0,31,29,31,30,31,30,31,31,30,31,30,31],f=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d:\d\d)?$/i,p=/^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*$/i,m=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@\/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@\/?]|%[0-9a-f]{2})*)?$/i,g=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#.\/;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,v=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i,w=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,y=/^(?:\/(?:[^~\/]|~0|~1)*)*$|^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;e.exports=n,n.fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^[0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?(?:z|[+-]\d\d:\d\d)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s][0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?(?:z|[+-]\d\d:\d\d)$/i,uri:/^(?:[a-z][a-z0-9+-.]*)(?::|\/)\/?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+-.]*:)?\/\/)?[^\s]*$/i,"uri-template":g,url:v,email:/^[a-z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:p,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:c,uuid:w,"json-pointer":y,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~\/]|~0|~1)*)*)$/},n.full={date:r,time:o,"date-time":s,uri:l,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@\/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@\/?]|%[0-9a-f]{2})*)?$/i,"uri-template":g,url:v,email:/^[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&''*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:a,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:c,uuid:w,"json-pointer":y,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~\/]|~0|~1)*)*)$/};var A=/t|\s/i,C=/\/|:/,b=/[^\\]\\Z/},function(e,t,i){"use strict";var n=i(22),r=i(11).toHash;e.exports=function(){var e=[{type:"number",rules:[{maximum:["exclusiveMaximum"]},{minimum:["exclusiveMinimum"]},"multipleOf","format"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","uniqueItems","contains","items"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","propertyNames",{properties:["additionalProperties","patternProperties"]}]},{rules:["$ref","const","enum","not","anyOf","oneOf","allOf"]}],t=["type"],i=["additionalItems","$schema","$id","id","title","description","default","definitions"],o=["number","integer","string","array","object","boolean","null"];return e.all=r(t),e.types=r(o),e.forEach(function(i){i.rules=i.rules.map(function(i){var r;if("object"==typeof i){var o=Object.keys(i)[0];r=i[o],i=o,r.forEach(function(i){t.push(i),e.all[i]=!0})}return t.push(i),e.all[i]={keyword:i,code:n[i],implements:r}}),i.type&&(e.types[i.type]=i)}),e.keywords=r(t.concat(i)),e.custom={},e}},function(e,t,i){"use strict";e.exports={$ref:i(23),allOf:i(24),anyOf:i(25),const:i(26),contains:i(27),dependencies:i(28),enum:i(29),format:i(30),items:i(31),maximum:i(32),minimum:i(32),maxItems:i(33),minItems:i(33),maxLength:i(34),minLength:i(34),maxProperties:i(35),minProperties:i(35),multipleOf:i(36),not:i(37),oneOf:i(38),pattern:i(39),properties:i(40),propertyNames:i(41),required:i(42),uniqueItems:i(43),validate:i(17)}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,o=" ",s=e.level,a=e.dataLevel,l=e.schema[t],c=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,d="data"+(a||""),u="valid"+s;if("#"==l||"#/"==l)e.isRoot?(n=e.async,r="validate"):(n=!0===e.root.schema.$async,r="root.refVal[0]");else{var f=e.resolveRef(e.baseId,l,e.isRoot);if(void 0===f){var p=e.MissingRefError.message(e.baseId,l);if("fail"==e.opts.missingRefs){e.logger.error(p);var m=m||[];m.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { ref: '"+e.util.escapeQuotes(l)+"' } ",!1!==e.opts.messages&&(o+=" , message: 'can\\'t resolve reference "+e.util.escapeQuotes(l)+"' "),e.opts.verbose&&(o+=" , schema: "+e.util.toQuotedString(l)+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),o+=" } "):o+=" {} ";var g=o;o=m.pop(),!e.compositeRule&&h?e.async?o+=" throw new ValidationError(["+g+"]); ":o+=" validate.errors = ["+g+"]; return false; ":o+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",h&&(o+=" if (false) { ")}else{if("ignore"!=e.opts.missingRefs)throw new e.MissingRefError(e.baseId,l,p);e.logger.warn(p),h&&(o+=" if (true) { ")}}else if(f.inline){var v=e.util.copy(e);v.level++;var w="valid"+v.level;v.schema=f.schema,v.schemaPath="",v.errSchemaPath=l;var y=e.validate(v).replace(/validate\.schema/g,f.code);o+=" "+y+" ",h&&(o+=" if ("+w+") { ")}else n=!0===f.$async,r=f.code}if(r){var m=m||[];m.push(o),o="",e.opts.passContext?o+=" "+r+".call(this, ":o+=" "+r+"( ",o+=" "+d+", (dataPath || '')",'""'!=e.errorPath&&(o+=" + "+e.errorPath);o+=" , "+(a?"data"+(a-1||""):"parentData")+" , "+(a?e.dataPathArr[a]:"parentDataProperty")+", rootData) ";var A=o;if(o=m.pop(),n){if(!e.async)throw new Error("async schema referenced by sync schema");h&&(o+=" var "+u+"; "),o+=" try { "+e.yieldAwait+" "+A+"; ",h&&(o+=" "+u+" = true; "),o+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",h&&(o+=" "+u+" = false; "),o+=" } ",h&&(o+=" if ("+u+") { ")}else o+=" if (!"+A+") { if (vErrors === null) vErrors = "+r+".errors; else vErrors = vErrors.concat("+r+".errors); errors = vErrors.length; } ",h&&(o+=" else { ")}return o}},function(e,t){"use strict";e.exports=function(e,t,i){var n=" ",r=e.schema[t],o=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,a=!e.opts.allErrors,l=e.util.copy(e),c="";l.level++;var h="valid"+l.level,d=l.baseId,u=!0,f=r;if(f)for(var p,m=-1,g=f.length-1;m=0)return c&&(n+=" if (true) { "),n;throw new Error('unknown format "'+s+'" is used in schema at path "'+e.errSchemaPath+'"')}var g="object"==typeof m&&!(m instanceof RegExp)&&m.validate,v=g&&m.type||"string";if(g){var w=!0===m.async;m=m.validate}if(v!=i)return c&&(n+=" if (true) { "),n;if(w){if(!e.async)throw new Error("async format in sync schema");var y="formats"+e.util.getProperty(s)+".validate";n+=" if (!("+e.yieldAwait+" "+y+"("+h+"))) { "}else{n+=" if (! ";var y="formats"+e.util.getProperty(s);g&&(y+=".validate"),n+="function"==typeof m?" "+y+"("+h+") ":" "+y+".test("+h+") ",n+=") { "}}var A=A||[];A.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'format' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { format: ",n+=u?""+d:""+e.util.toQuotedString(s),n+=" } ",!1!==e.opts.messages&&(n+=" , message: 'should match format \"",n+=u?"' + "+d+" + '":""+e.util.escapeQuotes(s),n+="\"' "),e.opts.verbose&&(n+=" , schema: ",n+=u?"validate.schema"+a:""+e.util.toQuotedString(s),n+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var C=n;return n=A.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+C+"]); ":n+=" validate.errors = ["+C+"]; return false; ":n+=" var err = "+C+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",c&&(n+=" else { "),n}},function(e,t){"use strict";e.exports=function(e,t,i){var n=" ",r=e.level,o=e.dataLevel,s=e.schema[t],a=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,h="data"+(o||""),d="valid"+r,u="errs__"+r,f=e.util.copy(e),p="";f.level++;var m="valid"+f.level,g="i"+r,v=f.dataLevel=e.dataLevel+1,w="data"+v,y=e.baseId;if(n+="var "+u+" = errors;var "+d+";",Array.isArray(s)){var A=e.schema.additionalItems;if(!1===A){n+=" "+d+" = "+h+".length <= "+s.length+"; ";var C=l;l=e.errSchemaPath+"/additionalItems",n+=" if (!"+d+") { ";var b=b||[];b.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { limit: "+s.length+" } ",!1!==e.opts.messages&&(n+=" , message: 'should NOT have more than "+s.length+" items' "),e.opts.verbose&&(n+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var E=n;n=b.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+E+"]); ":n+=" validate.errors = ["+E+"]; return false; ":n+=" var err = "+E+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",l=C,c&&(p+="}",n+=" else { ")}var F=s;if(F)for(var x,S=-1,D=F.length-1;S "+S+") { ";var $=h+"["+S+"]";f.schema=x,f.schemaPath=a+"["+S+"]",f.errSchemaPath=l+"/"+S,f.errorPath=e.util.getPathExpr(e.errorPath,S,e.opts.jsonPointers,!0),f.dataPathArr[v]=S;var k=e.validate(f);f.baseId=y,e.util.varOccurences(k,w)<2?n+=" "+e.util.varReplace(k,w,$)+" ":n+=" var "+w+" = "+$+"; "+k+" ",n+=" } ",c&&(n+=" if ("+m+") { ",p+="}")}if("object"==typeof A&&e.util.schemaHasRules(A,e.RULES.all)){f.schema=A,f.schemaPath=e.schemaPath+".additionalItems",f.errSchemaPath=e.errSchemaPath+"/additionalItems",n+=" "+m+" = true; if ("+h+".length > "+s.length+") { for (var "+g+" = "+s.length+"; "+g+" < "+h+".length; "+g+"++) { ",f.errorPath=e.util.getPathExpr(e.errorPath,g,e.opts.jsonPointers,!0);var $=h+"["+g+"]";f.dataPathArr[v]=g;var k=e.validate(f);f.baseId=y,e.util.varOccurences(k,w)<2?n+=" "+e.util.varReplace(k,w,$)+" ":n+=" var "+w+" = "+$+"; "+k+" ",c&&(n+=" if (!"+m+") break; "),n+=" } } ",c&&(n+=" if ("+m+") { ",p+="}")}}else if(e.util.schemaHasRules(s,e.RULES.all)){f.schema=s,f.schemaPath=a,f.errSchemaPath=l,n+=" for (var "+g+" = 0; "+g+" < "+h+".length; "+g+"++) { ",f.errorPath=e.util.getPathExpr(e.errorPath,g,e.opts.jsonPointers,!0);var $=h+"["+g+"]";f.dataPathArr[v]=g;var k=e.validate(f);f.baseId=y,e.util.varOccurences(k,w)<2?n+=" "+e.util.varReplace(k,w,$)+" ":n+=" var "+w+" = "+$+"; "+k+" ",c&&(n+=" if (!"+m+") break; "),n+=" }"}return c&&(n+=" "+p+" if ("+u+" == errors) {"),n=e.util.cleanUpCode(n)}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,o=" ",s=e.level,a=e.dataLevel,l=e.schema[t],c=e.schemaPath+e.util.getProperty(t),h=e.errSchemaPath+"/"+t,d=!e.opts.allErrors,u="data"+(a||""),f=e.opts.$data&&l&&l.$data;f?(o+=" var schema"+s+" = "+e.util.getData(l.$data,a,e.dataPathArr)+"; ",r="schema"+s):r=l;var p="maximum"==t,m=p?"exclusiveMaximum":"exclusiveMinimum",g=e.schema[m],v=e.opts.$data&&g&&g.$data,w=p?"<":">",y=p?">":"<",n=void 0;if(v){var A=e.util.getData(g.$data,a,e.dataPathArr),C="exclusive"+s,b="exclType"+s,E="exclIsNumber"+s,F="op"+s,x="' + "+F+" + '";o+=" var schemaExcl"+s+" = "+A+"; ",A="schemaExcl"+s,o+=" var "+C+"; var "+b+" = typeof "+A+"; if ("+b+" != 'boolean' && "+b+" != 'undefined' && "+b+" != 'number') { ";var n=m,S=S||[];S.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(n||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: {} ",!1!==e.opts.messages&&(o+=" , message: '"+m+" should be boolean' "),e.opts.verbose&&(o+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),o+=" } "):o+=" {} ";var D=o;o=S.pop(),!e.compositeRule&&d?e.async?o+=" throw new ValidationError(["+D+"]); ":o+=" validate.errors = ["+D+"]; return false; ":o+=" var err = "+D+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",o+=" } else if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),o+=" "+b+" == 'number' ? ( ("+C+" = "+r+" === undefined || "+A+" "+w+"= "+r+") ? "+u+" "+y+"= "+A+" : "+u+" "+y+" "+r+" ) : ( ("+C+" = "+A+" === true) ? "+u+" "+y+"= "+r+" : "+u+" "+y+" "+r+" ) || "+u+" !== "+u+") { var op"+s+" = "+C+" ? '"+w+"' : '"+w+"=';"}else{var E="number"==typeof g,x=w;if(E&&f){var F="'"+x+"'";o+=" if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),o+=" ( "+r+" === undefined || "+g+" "+w+"= "+r+" ? "+u+" "+y+"= "+g+" : "+u+" "+y+" "+r+" ) || "+u+" !== "+u+") { "}else{E&&void 0===l?(C=!0,n=m,h=e.errSchemaPath+"/"+m,r=g,y+="="):(E&&(r=Math[p?"min":"max"](g,l)),g===(!E||r)?(C=!0,n=m,h=e.errSchemaPath+"/"+m,y+="="):(C=!1,x+="="));var F="'"+x+"'";o+=" if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),o+=" "+u+" "+y+" "+r+" || "+u+" !== "+u+") { "}}n=n||t;var S=S||[];S.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(n||"_limit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { comparison: "+F+", limit: "+r+", exclusive: "+C+" } ",!1!==e.opts.messages&&(o+=" , message: 'should be "+x+" ",o+=f?"' + "+r:r+"'"),e.opts.verbose&&(o+=" , schema: ",o+=f?"validate.schema"+c:""+l,o+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),o+=" } "):o+=" {} ";var D=o;return o=S.pop(),!e.compositeRule&&d?e.async?o+=" throw new ValidationError(["+D+"]); ":o+=" validate.errors = ["+D+"]; return false; ":o+=" var err = "+D+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",o+=" } ",d&&(o+=" else { "),o}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,o=" ",s=e.level,a=e.dataLevel,l=e.schema[t],c=e.schemaPath+e.util.getProperty(t),h=e.errSchemaPath+"/"+t,d=!e.opts.allErrors,u="data"+(a||""),f=e.opts.$data&&l&&l.$data;f?(o+=" var schema"+s+" = "+e.util.getData(l.$data,a,e.dataPathArr)+"; ",r="schema"+s):r=l;var p="maxItems"==t?">":"<";o+="if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),o+=" "+u+".length "+p+" "+r+") { ";var n=t,m=m||[];m.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(n||"_limitItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { limit: "+r+" } ",!1!==e.opts.messages&&(o+=" , message: 'should NOT have ",o+="maxItems"==t?"more":"less",o+=" than ",o+=f?"' + "+r+" + '":""+l,o+=" items' "),e.opts.verbose&&(o+=" , schema: ",o+=f?"validate.schema"+c:""+l,o+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),o+=" } "):o+=" {} ";var g=o;return o=m.pop(),!e.compositeRule&&d?e.async?o+=" throw new ValidationError(["+g+"]); ":o+=" validate.errors = ["+g+"]; return false; ":o+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",o+="} ",d&&(o+=" else { "),o}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,o=" ",s=e.level,a=e.dataLevel,l=e.schema[t],c=e.schemaPath+e.util.getProperty(t),h=e.errSchemaPath+"/"+t,d=!e.opts.allErrors,u="data"+(a||""),f=e.opts.$data&&l&&l.$data;f?(o+=" var schema"+s+" = "+e.util.getData(l.$data,a,e.dataPathArr)+"; ",r="schema"+s):r=l;var p="maxLength"==t?">":"<";o+="if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),!1===e.opts.unicode?o+=" "+u+".length ":o+=" ucs2length("+u+") ",o+=" "+p+" "+r+") { ";var n=t,m=m||[];m.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(n||"_limitLength")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { limit: "+r+" } ",!1!==e.opts.messages&&(o+=" , message: 'should NOT be ",o+="maxLength"==t?"longer":"shorter",o+=" than ",o+=f?"' + "+r+" + '":""+l,o+=" characters' "),e.opts.verbose&&(o+=" , schema: ",o+=f?"validate.schema"+c:""+l,o+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),o+=" } "):o+=" {} ";var g=o;return o=m.pop(),!e.compositeRule&&d?e.async?o+=" throw new ValidationError(["+g+"]); ":o+=" validate.errors = ["+g+"]; return false; ":o+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",o+="} ",d&&(o+=" else { "),o}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,o=" ",s=e.level,a=e.dataLevel,l=e.schema[t],c=e.schemaPath+e.util.getProperty(t),h=e.errSchemaPath+"/"+t,d=!e.opts.allErrors,u="data"+(a||""),f=e.opts.$data&&l&&l.$data;f?(o+=" var schema"+s+" = "+e.util.getData(l.$data,a,e.dataPathArr)+"; ",r="schema"+s):r=l;var p="maxProperties"==t?">":"<";o+="if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),o+=" Object.keys("+u+").length "+p+" "+r+") { ";var n=t,m=m||[];m.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(n||"_limitProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { limit: "+r+" } ",!1!==e.opts.messages&&(o+=" , message: 'should NOT have ",o+="maxProperties"==t?"more":"less",o+=" than ",o+=f?"' + "+r+" + '":""+l,o+=" properties' "),e.opts.verbose&&(o+=" , schema: ",o+=f?"validate.schema"+c:""+l,o+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),o+=" } "):o+=" {} ";var g=o;return o=m.pop(),!e.compositeRule&&d?e.async?o+=" throw new ValidationError(["+g+"]); ":o+=" validate.errors = ["+g+"]; return false; ":o+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",o+="} ",d&&(o+=" else { "),o}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r=" ",o=e.level,s=e.dataLevel,a=e.schema[t],l=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,d="data"+(s||""),u=e.opts.$data&&a&&a.$data;u?(r+=" var schema"+o+" = "+e.util.getData(a.$data,s,e.dataPathArr)+"; ",n="schema"+o):n=a,r+="var division"+o+";if (",u&&(r+=" "+n+" !== undefined && ( typeof "+n+" != 'number' || "),r+=" (division"+o+" = "+d+" / "+n+", ",e.opts.multipleOfPrecision?r+=" Math.abs(Math.round(division"+o+") - division"+o+") > 1e-"+e.opts.multipleOfPrecision+" ":r+=" division"+o+" !== parseInt(division"+o+") ",r+=" ) ",u&&(r+=" ) "),r+=" ) { ";var f=f||[];f.push(r),r="",!1!==e.createErrors?(r+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { multipleOf: "+n+" } ",!1!==e.opts.messages&&(r+=" , message: 'should be multiple of ",r+=u?"' + "+n:n+"'"),e.opts.verbose&&(r+=" , schema: ",r+=u?"validate.schema"+l:""+a,r+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),r+=" } "):r+=" {} ";var p=r;return r=f.pop(),!e.compositeRule&&h?e.async?r+=" throw new ValidationError(["+p+"]); ":r+=" validate.errors = ["+p+"]; return false; ":r+=" var err = "+p+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+="} ",h&&(r+=" else { "),r}},function(e,t){"use strict";e.exports=function(e,t,i){var n=" ",r=e.level,o=e.dataLevel,s=e.schema[t],a=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,h="data"+(o||""),d="errs__"+r,u=e.util.copy(e);u.level++;var f="valid"+u.level;if(e.util.schemaHasRules(s,e.RULES.all)){u.schema=s,u.schemaPath=a,u.errSchemaPath=l,n+=" var "+d+" = errors; ";var p=e.compositeRule;e.compositeRule=u.compositeRule=!0,u.createErrors=!1;var m;u.opts.allErrors&&(m=u.opts.allErrors,u.opts.allErrors=!1),n+=" "+e.validate(u)+" ",u.createErrors=!0,m&&(u.opts.allErrors=m),e.compositeRule=u.compositeRule=p,n+=" if ("+f+") { ";var g=g||[];g.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",!1!==e.opts.messages&&(n+=" , message: 'should NOT be valid' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var v=n;n=g.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+v+"]); ":n+=" validate.errors = ["+v+"]; return false; ":n+=" var err = "+v+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else { errors = "+d+"; if (vErrors !== null) { if ("+d+") vErrors.length = "+d+"; else vErrors = null; } ",e.opts.allErrors&&(n+=" } ")}else n+=" var err = ",!1!==e.createErrors?(n+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",!1!==e.opts.messages&&(n+=" , message: 'should NOT be valid' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",c&&(n+=" if (false) { ");return n}},function(e,t){"use strict";e.exports=function(e,t,i){var n=" ",r=e.level,o=e.dataLevel,s=e.schema[t],a=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,h="data"+(o||""),d="valid"+r,u="errs__"+r,f=e.util.copy(e),p="";f.level++;var m="valid"+f.level;n+="var "+u+" = errors;var prevValid"+r+" = false;var "+d+" = false;";var g=f.baseId,v=e.compositeRule;e.compositeRule=f.compositeRule=!0;var w=s;if(w)for(var y,A=-1,C=w.length-1;A5)n+=" || validate.schema"+a+"["+g+"] ";else{var M=C;if(M)for(var O,I=-1,N=M.length-1;I= "+ve+"; ",l=e.errSchemaPath+"/patternGroups/minimum",n+=" if (!"+d+") { ";var X=X||[];X.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'patternGroups' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { reason: '"+Ae+"', limit: "+ye+", pattern: '"+e.util.escapeQuotes(U)+"' } ",!1!==e.opts.messages&&(n+=" , message: 'should NOT have "+Ce+" than "+ye+' properties matching pattern "'+e.util.escapeQuotes(U)+"\"' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var J=n;n=X.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+J+"]); ":n+=" validate.errors = ["+J+"]; return false; ":n+=" var err = "+J+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",void 0!==we&&(n+=" else ")}if(void 0!==we){var ye=we,Ae="maximum",Ce="more";n+=" "+d+" = pgPropCount"+r+" <= "+we+"; ",l=e.errSchemaPath+"/patternGroups/maximum",n+=" if (!"+d+") { ";var X=X||[];X.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'patternGroups' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { reason: '"+Ae+"', limit: "+ye+", pattern: '"+e.util.escapeQuotes(U)+"' } ",!1!==e.opts.messages&&(n+=" , message: 'should NOT have "+Ce+" than "+ye+' properties matching pattern "'+e.util.escapeQuotes(U)+"\"' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var J=n;n=X.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+J+"]); ":n+=" validate.errors = ["+J+"]; return false; ":n+=" var err = "+J+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } "}l=Q,c&&(n+=" if ("+d+") { ",p+="}")}}}}return c&&(n+=" "+p+" if ("+u+" == errors) {"),n=e.util.cleanUpCode(n)}},function(e,t){"use strict";e.exports=function(e,t,i){var n=" ",r=e.level,o=e.dataLevel,s=e.schema[t],a=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,h="data"+(o||""),d="errs__"+r,u=e.util.copy(e);u.level++;var f="valid"+u.level;if(e.util.schemaHasRules(s,e.RULES.all)){u.schema=s,u.schemaPath=a,u.errSchemaPath=l;var p="key"+r,m="idx"+r,g="i"+r,v="' + "+p+" + '",w=u.dataLevel=e.dataLevel+1,y="data"+w,A="dataProperties"+r,C=e.opts.ownProperties,b=e.baseId;n+=" var "+d+" = errors; ",C&&(n+=" var "+A+" = undefined; "),n+=C?" "+A+" = "+A+" || Object.keys("+h+"); for (var "+m+"=0; "+m+"<"+A+".length; "+m+"++) { var "+p+" = "+A+"["+m+"]; ":" for (var "+p+" in "+h+") { ",n+=" var startErrs"+r+" = errors; ";var E=p,F=e.compositeRule;e.compositeRule=u.compositeRule=!0;var x=e.validate(u);u.baseId=b,e.util.varOccurences(x,y)<2?n+=" "+e.util.varReplace(x,y,E)+" ":n+=" var "+y+" = "+E+"; "+x+" ",e.compositeRule=u.compositeRule=F,n+=" if (!"+f+") { for (var "+g+"=startErrs"+r+"; "+g+"=e.opts.loopRequired,b=e.opts.ownProperties;if(c)if(n+=" var missing"+r+"; ",C){u||(n+=" var "+f+" = validate.schema"+a+"; ");var E="i"+r,F="schema"+r+"["+E+"]",x="' + "+F+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(A,F,e.opts.jsonPointers)),n+=" var "+d+" = true; ",u&&(n+=" if (schema"+r+" === undefined) "+d+" = true; else if (!Array.isArray(schema"+r+")) "+d+" = false; else {"),n+=" for (var "+E+" = 0; "+E+" < "+f+".length; "+E+"++) { "+d+" = "+h+"["+f+"["+E+"]] !== undefined ",b&&(n+=" && Object.prototype.hasOwnProperty.call("+h+", "+f+"["+E+"]) "),n+="; if (!"+d+") break; } ",u&&(n+=" } "),n+=" if (!"+d+") { ";var S=S||[];S.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { missingProperty: '"+x+"' } ",!1!==e.opts.messages&&(n+=" , message: '",e.opts._errorDataPathProperty?n+="is a required property":n+="should have required property \\'"+x+"\\'",n+="' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var D=n;n=S.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+D+"]); ":n+=" validate.errors = ["+D+"]; return false; ":n+=" var err = "+D+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else { "}else{n+=" if ( ";var $=p;if($)for(var k,E=-1,B=$.length-1;E 1) { var i = "+d+".length, j; outer: for (;i--;) { for (j = i; j--;) { if (equal("+d+"[i], "+d+"[j])) { "+u+" = false; break outer; } } } } ",f&&(r+=" } "),r+=" if (!"+u+") { ";var p=p||[];p.push(r),r="",!1!==e.createErrors?(r+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { i: i, j: j } ",!1!==e.opts.messages&&(r+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),e.opts.verbose&&(r+=" , schema: ",r+=f?"validate.schema"+l:""+a,r+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),r+=" } "):r+=" {} ";var m=r;r=p.pop(),!e.compositeRule&&h?e.async?r+=" throw new ValidationError(["+m+"]); ":r+=" validate.errors = ["+m+"]; return false; ":r+=" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+=" } ",h&&(r+=" else { ")}else h&&(r+=" if (true) { ");return r}},function(e,t){"use strict";var i=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","enum","format","const"];e.exports=function(e,t){for(var n=0;n0?this.autoScrollStep=(n+24-e)/3:e>o-24&&r+i.scrollTop3?(i.scrollTop+=r/3,n.animateCallback=t,n.animateTimeout=setTimeout(a,50)):(t&&t(!0),i.scrollTop=s,delete n.animateTimeout,delete n.animateCallback)};a()}else t&&t(!1)},m._createFrame=function(){function e(e){t._onEvent&&t._onEvent(e)}this.frame=document.createElement("div"),this.frame.className="jsoneditor jsoneditor-mode-"+this.options.mode,this.container.appendChild(this.frame);var t=this;this.frame.onclick=function(t){var i=t.target;e(t),"BUTTON"==i.nodeName&&t.preventDefault()},this.frame.oninput=e,this.frame.onchange=e,this.frame.onkeydown=e,this.frame.onkeyup=e,this.frame.oncut=e,this.frame.onpaste=e,this.frame.onmousedown=e,this.frame.onmouseup=e,this.frame.onmouseover=e,this.frame.onmouseout=e,h.addEventListener(this.frame,"focus",e,!0),h.addEventListener(this.frame,"blur",e,!0),this.frame.onfocusin=e,this.frame.onfocusout=e,this.menu=document.createElement("div"),this.menu.className="jsoneditor-menu",this.frame.appendChild(this.menu);var i=document.createElement("button");i.type="button",i.className="jsoneditor-expand-all",i.title=u("expandAll"),i.onclick=function(){t.expandAll()},this.menu.appendChild(i);var n=document.createElement("button");if(n.type="button",n.title=u("collapseAll"),n.className="jsoneditor-collapse-all",n.onclick=function(){t.collapseAll()},this.menu.appendChild(n),this.history){var r=document.createElement("button");r.type="button",r.className="jsoneditor-undo jsoneditor-separator",r.title=u("undo"),r.onclick=function(){t._onUndo()},this.menu.appendChild(r),this.dom.undo=r;var s=document.createElement("button");s.type="button",s.className="jsoneditor-redo",s.title=u("redo"),s.onclick=function(){t._onRedo()},this.menu.appendChild(s),this.dom.redo=s,this.history.onChange=function(){r.disabled=!t.history.canUndo(),s.disabled=!t.history.canRedo()},this.history.onChange()}if(this.options&&this.options.modes&&this.options.modes.length){var l=this;this.modeSwitcher=new c(this.menu,this.options.modes,this.options.mode,function(e){l.modeSwitcher.destroy(),l.setMode(e),l.modeSwitcher.focus()})}this.options.search&&(this.searchBox=new o(this,this.menu)),this.options.navigationBar&&(this.navBar=document.createElement("div"),this.navBar.className="jsoneditor-navigation-bar nav-bar-empty",this.frame.appendChild(this.navBar),this.treePath=new a(this.navBar),this.treePath.onSectionSelected(this._onTreePathSectionSelected.bind(this)),this.treePath.onContextMenuItemSelected(this._onTreePathMenuItemSelected.bind(this)))},m._onUndo=function(){this.history&&(this.history.undo(),this._onChange())},m._onRedo=function(){this.history&&(this.history.redo(),this._onChange())},m._onEvent=function(e){"keydown"===e.type&&this._onKeyDown(e),"focus"===e.type&&(this.focusTarget=e.target),"mousedown"===e.type&&this._startDragDistance(e),"mousemove"!==e.type&&"mouseup"!==e.type&&"click"!==e.type||this._updateDragDistance(e);var t=l.getNodeFromTarget(e.target);if(t&&this.options&&this.options.navigationBar&&t&&("keydown"===e.type||"mousedown"===e.type)){var i=this;setTimeout(function(){i._updateTreePath(t.getNodePath())})}if(t&&t.selected){if("click"===e.type){if(e.target===t.dom.menu)return void this.showContextMenu(e.target);e.hasMoved||this.deselect()}"mousedown"===e.type&&l.onDragStart(this.multiselection.nodes,e)}else"mousedown"===e.type&&(this.deselect(),t&&e.target===t.dom.drag?l.onDragStart(t,e):(!t||e.target!==t.dom.field&&e.target!==t.dom.value&&e.target!==t.dom.select)&&this._onMultiSelectStart(e));t&&t.onEvent(e)},m._updateTreePath=function(e){function t(e){return void 0!==e.field?e._escapeHTML(e.field):isNaN(e.index)?e.type:e.index}if(e&&e.length){h.removeClassName(this.navBar,"nav-bar-empty");var i=[];e.forEach(function(e){var n={name:t(e),node:e,children:[]};e.childs&&e.childs.length&&e.childs.forEach(function(e){n.children.push({name:t(e),node:e})}),i.push(n)}),this.treePath.setPath(i)}else h.addClassName(this.navBar,"nav-bar-empty")},m._onTreePathSectionSelected=function(e){e&&e.node&&(e.node.expandTo(),e.node.focus())},m._onTreePathMenuItemSelected=function(e,t){if(e&&e.children.length){var i=e.children.find(function(e){return e.name===t});i&&i.node&&(this._updateTreePath(i.node.getNodePath()),i.node.expandTo(),i.node.focus())}},m._startDragDistance=function(e){this.dragDistanceEvent={initialTarget:e.target,initialPageX:e.pageX,initialPageY:e.pageY,dragDistance:0,hasMoved:!1}},m._updateDragDistance=function(e){this.dragDistanceEvent||this._startDragDistance(e);var t=e.pageX-this.dragDistanceEvent.initialPageX,i=e.pageY-this.dragDistanceEvent.initialPageY;return this.dragDistanceEvent.dragDistance=Math.sqrt(t*t+i*i),this.dragDistanceEvent.hasMoved=this.dragDistanceEvent.hasMoved||this.dragDistanceEvent.dragDistance>10,e.dragDistance=this.dragDistanceEvent.dragDistance,e.hasMoved=this.dragDistanceEvent.hasMoved,e.dragDistance},m._onMultiSelectStart=function(e){var t=l.getNodeFromTarget(e.target);if("tree"===this.options.mode&&void 0===this.options.onEditable){this.multiselection={start:t||null,end:null,nodes:[]},this._startDragDistance(e);var i=this;this.mousemove||(this.mousemove=h.addEventListener(window,"mousemove",function(e){i._onMultiSelect(e)})),this.mouseup||(this.mouseup=h.addEventListener(window,"mouseup",function(e){ +i._onMultiSelectEnd(e)}))}},m._onMultiSelect=function(e){if(e.preventDefault(),this._updateDragDistance(e),e.hasMoved){var t=l.getNodeFromTarget(e.target);t&&(null==this.multiselection.start&&(this.multiselection.start=t),this.multiselection.end=t),this.deselect();var i=this.multiselection.start,n=this.multiselection.end||this.multiselection.start;if(i&&n){if(this.multiselection.nodes=this._findTopLevelNodes(i,n),this.multiselection.nodes&&this.multiselection.nodes.length){var r=this.multiselection.nodes[0];this.multiselection.start===r||this.multiselection.start.isDescendantOf(r)?this.multiselection.direction="down":this.multiselection.direction="up"}this.select(this.multiselection.nodes)}}},m._onMultiSelectEnd=function(e){this.multiselection.nodes[0]&&this.multiselection.nodes[0].dom.menu.focus(),this.multiselection.start=null,this.multiselection.end=null,this.mousemove&&(h.removeEventListener(window,"mousemove",this.mousemove),delete this.mousemove),this.mouseup&&(h.removeEventListener(window,"mouseup",this.mouseup),delete this.mouseup)},m.deselect=function(e){var t=!!this.multiselection.nodes.length;this.multiselection.nodes.forEach(function(e){e.setSelected(!1)}),this.multiselection.nodes=[],e&&(this.multiselection.start=null,this.multiselection.end=null),t&&this._selectionChangedHandler&&this._selectionChangedHandler()},m.select=function(e){if(!Array.isArray(e))return this.select([e]);if(e){this.deselect(),this.multiselection.nodes=e.slice(0);var t=e[0];if(e.forEach(function(e){e.expandPathToNode(),e.setSelected(!0,e===t)}),this._selectionChangedHandler){var i=this.getSelection();this._selectionChangedHandler(i.start,i.end)}}},m._findTopLevelNodes=function(e,t){for(var i=e.getNodePath(),n=t.getNodePath(),r=0;r=0&&(c="value"),e.target.className.indexOf("jsoneditor-field")>=0&&(c="field");var d=l.getNodeFromTarget(e.target);setTimeout(function(e,t){if(t.innerText.length>0){var i=this.options.autocomplete.getOptions(t.innerText,e.getPath(),c,e.editor);null===i?this.autocomplete.hideDropDown():"function"==typeof i.then?i.then(function(e){null===e?this.autocomplete.hideDropDown():e.options?this.autocomplete.show(t,e.startFrom,e.options):this.autocomplete.show(t,0,e)}.bind(this)):i.options?this.autocomplete.show(t,i.startFrom,i.options):this.autocomplete.show(t,0,i)}else this.autocomplete.hideDropDown()}.bind(this,d,e.target),50)}s&&(e.preventDefault(),e.stopPropagation())},m._createTable=function(){var e=document.createElement("div");e.className="jsoneditor-outer",this.options.navigationBar&&h.addClassName(e,"has-nav-bar"),this.contentOuter=e,this.content=document.createElement("div"),this.content.className="jsoneditor-tree",e.appendChild(this.content),this.table=document.createElement("table"),this.table.className="jsoneditor-tree",this.content.appendChild(this.table);var t;this.colgroupContent=document.createElement("colgroup"),"tree"===this.options.mode&&(t=document.createElement("col"),t.width="24px",this.colgroupContent.appendChild(t)),t=document.createElement("col"),t.width="24px",this.colgroupContent.appendChild(t),t=document.createElement("col"),this.colgroupContent.appendChild(t),this.table.appendChild(this.colgroupContent),this.tbody=document.createElement("tbody"),this.table.appendChild(this.tbody),this.frame.appendChild(e)},m.showContextMenu=function(e,t){var i=[],n=this;i.push({text:u("duplicateText"),title:u("duplicateTitle"),className:"jsoneditor-duplicate",click:function(){l.onDuplicate(n.multiselection.nodes)}}),i.push({text:u("remove"),title:u("removeTitle"),className:"jsoneditor-remove",click:function(){l.onRemove(n.multiselection.nodes)}}),new s(i,{close:t}).show(e,this.content)},m.getSelection=function(){var e={start:null,end:null};if(this.multiselection.nodes&&this.multiselection.nodes.length&&this.multiselection.nodes.length){var t=this.multiselection.nodes[0],i=this.multiselection.nodes[this.multiselection.nodes.length-1];"down"===this.multiselection.direction?(e.start=t.serialize(),e.end=i.serialize()):(e.start=i.serialize(),e.end=t.serialize())}return e},m.onSelectionChange=function(e){"function"==typeof e&&(this._selectionChangedHandler=h.debounce(e,this.DEBOUNCE_INTERVAL))},m.setSelection=function(e,t){e&&e.dom&&e.range&&(console.warn("setSelection/getSelection usage for text selection is depracated and should not be used, see documantaion for supported selection options"),this.setDomSelection(e));var i=this._getNodeIntsncesByRange(e,t);i.forEach(function(e){e.expandTo()}),this.select(i)},m._getNodeIntsncesByRange=function(e,t){var i,n;e&&e.path&&(i=this.node.findNodeByPath(e.path),t&&t.path&&(n=this.node.findNodeByPath(t.path)));var r=[];if(i instanceof l)if(n instanceof l&&n!==i)if(i.parent===n.parent){var e,t;i.getIndex()=0},n.prototype.canRedo=function(){return this.index=" "&&c<=" "||" "===c||" "===c||" "===c?(o.push(" "),s++):"'"===c?r("'"):'"'===c?r('"'):"`"===c?r("´"):"‘"===c?r("’"):"“"===c?r("”"):/[a-zA-Z_$]/.test(c)&&-1!==["{",","].indexOf(function(){for(var e=o.length-1;e>=0;){var t=o[e];if(" "!==t&&"\n"!==t&&"\r"!==t&&"\t"!==t)return t;e--}return""}())?function(){for(var e=["null","true","false"],i="",n=t(),r=/[a-zA-Z_$\d]/;r.test(n);)i+=n,s++,n=t();-1===e.indexOf(i)?o.push('"'+i+'"'):o.push(i)}():(o.push(c),s++)}return o.join("")},t.escapeUnicodeChars=function(e){return e.replace(/[\u007F-\uFFFF]/g,function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})},t.validate=function(e){void 0!==n?n.parse(e):JSON.parse(e)},t.extend=function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);return e},t.clear=function(e){for(var t in e)e.hasOwnProperty(t)&&delete e[t];return e},t.type=function(e){return null===e?"null":void 0===e?"undefined":e instanceof Number||"number"==typeof e?"number":e instanceof String||"string"==typeof e?"string":e instanceof Boolean||"boolean"==typeof e?"boolean":e instanceof RegExp||"regexp"==typeof e?"regexp":t.isArray(e)?"array":"object"};var r=/^https?:\/\/\S+$/;t.isUrl=function(e){return("string"==typeof e||e instanceof String)&&r.test(e)},t.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)},t.getAbsoluteLeft=function(e){return e.getBoundingClientRect().left+window.pageXOffset||document.scrollLeft||0},t.getAbsoluteTop=function(e){return e.getBoundingClientRect().top+window.pageYOffset||document.scrollTop||0},t.addClassName=function(e,t){var i=e.className.split(" ");-1==i.indexOf(t)&&(i.push(t),e.className=i.join(" "))},t.removeClassName=function(e,t){var i=e.className.split(" "),n=i.indexOf(t);-1!=n&&(i.splice(n,1),e.className=i.join(" "))},t.stripFormatting=function(e){for(var i=e.childNodes,n=0,r=i.length;n=0;a--){var l=s[a];!0===l.specified&&o.removeAttribute(l.name)}t.stripFormatting(o)}},t.setEndOfContentEditable=function(e){var t,i;document.createRange&&(t=document.createRange(),t.selectNodeContents(e),t.collapse(!1),i=window.getSelection(),i.removeAllRanges(),i.addRange(t))},t.selectContentEditable=function(e){if(e&&"DIV"==e.nodeName){var t,i;window.getSelection&&document.createRange&&(i=document.createRange(),i.selectNodeContents(e),t=window.getSelection(),t.removeAllRanges(),t.addRange(i))}},t.getSelection=function(){if(window.getSelection){var e=window.getSelection();if(e.getRangeAt&&e.rangeCount)return e.getRangeAt(0)}return null},t.setSelection=function(e){if(e&&window.getSelection){var t=window.getSelection();t.removeAllRanges(),t.addRange(e)}},t.getSelectionOffset=function(){var e=t.getSelection();return e&&"startOffset"in e&&"endOffset"in e&&e.startContainer&&e.startContainer==e.endContainer?{startOffset:e.startOffset,endOffset:e.endOffset,container:e.startContainer.parentNode}:null},t.setSelectionOffset=function(e){if(document.createRange&&window.getSelection){if(window.getSelection()){var i=document.createRange();e.container.firstChild||e.container.appendChild(document.createTextNode("")),i.setStart(e.container.firstChild,e.startOffset),i.setEnd(e.container.firstChild,e.endOffset),t.setSelection(i)}}},t.getInnerText=function(e,i){if(void 0==i&&(i={text:"",flush:function(){var e=this.text;return this.text="",e},set:function(e){this.text=e}}),e.nodeValue)return i.flush()+e.nodeValue;if(e.hasChildNodes()){for(var n=e.childNodes,r="",o=0,s=n.length;o5){var i=["("+(t.length-5)+" more...)"];t=t.slice(0,5),t.push(i)}e.message="should be equal to one of: "+t.join(", ")}}return"additionalProperties"===e.keyword&&(e.message="should NOT have additional property: "+e.params.additionalProperty),e},t.insideRect=function(e,t,i){var n=void 0!==i?i:0;return t.left-n>=e.left&&t.right+n<=e.right&&t.top-n>=e.top&&t.bottom+n<=e.bottom},t.debounce=function(e,t,i){var n;return function(){var r=this,o=arguments,s=function(){n=null,i||e.apply(r,o)},a=i&&!n;clearTimeout(n),n=setTimeout(s,t),a&&e.apply(r,o)}},t.textDiff=function(e,t){for(var i=t.length,n=0,r=e.length,o=t.length;t.charAt(n)===e.charAt(n)&&nn&&r>0;)o--,r--;return{start:n,end:o}},t.getInputSelection=function(e){function t(t){var i=e.value.substring(0,t);return{row:(i.match(/\n/g)||[]).length+1,column:i.length-i.lastIndexOf("\n")}}var i,n,r,o,s,a=0,l=0;return"number"==typeof e.selectionStart&&"number"==typeof e.selectionEnd?(a=e.selectionStart,l=e.selectionEnd):(n=document.selection.createRange())&&n.parentElement()==e&&(o=e.value.length,i=e.value.replace(/\r\n/g,"\n"),r=e.createTextRange(),r.moveToBookmark(n.getBookmark()),s=e.createTextRange(),s.collapse(!1),r.compareEndPoints("StartToEnd",s)>-1?a=l=o:(a=-r.moveStart("character",-o),a+=i.slice(0,a).split("\n").length-1,r.compareEndPoints("EndToEnd",s)>-1?l=o:(l=-r.moveEnd("character",-o),l+=i.slice(0,l).split("\n").length-1))),{startIndex:a,endIndex:l,start:t(a),end:t(l)}},t.getIndexForPosition=function(e,t,i){var n=e.value||"";if(t>0&&i>0){var r=n.split("\n",t);t=Math.min(r.length,t),i=Math.min(r[t-1].length,i-1);var o=1==t?i:i+1;return r.slice(0,t-1).join("\n").length+o}return-1},"undefined"!=typeof Element&&function(){function e(e){e.hasOwnProperty("remove")||Object.defineProperty(e,"remove",{configurable:!0,enumerable:!0,writable:!0,value:function(){null!=this.parentNode&&this.parentNode.removeChild(this)}})}"undefined"!=typeof Element&&e(Element.prototype),"undefined"!=typeof CharacterData&&e(CharacterData.prototype),"undefined"!=typeof DocumentType&&e(DocumentType.prototype)}(),String.prototype.startsWith||(String.prototype.startsWith=function(e,t){return t=t||0,this.substr(t,e.length)===e}),Array.prototype.find||(Array.prototype.find=function(e){for(var t=0;t2&&C.push("'"+this.terminals_[w]+"'");var E="";E=this.lexer.showPosition?"Parse error on line "+(l+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+C.join(", ")+", got '"+this.terminals_[f]+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==f?"end of input":"'"+(this.terminals_[f]||f)+"'"),this.parseError(E,{text:this.lexer.match,token:this.terminals_[f]||f,line:this.lexer.yylineno,loc:u,expected:C})}if(3==h){if(1==f)throw new Error(E||"Parsing halted.");c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,u=this.lexer.yylloc,f=t()}for(;;){if(d.toString()in s[m])break;if(0==m)throw new Error(E||"Parsing halted.");!function(e){n.length=n.length-2*e,r.length=r.length-e,o.length=o.length-e}(1),m=n[n.length-1]}p=f,f=d,m=n[n.length-1],g=s[m]&&s[m][d],h=3}if(g[0]instanceof Array&&g.length>1)throw new Error("Parse Error: multiple actions possible at state: "+m+", token: "+f);switch(g[0]){case 1:n.push(f),r.push(this.lexer.yytext),o.push(this.lexer.yylloc),n.push(g[1]),f=null,p?(f=p,p=null):(c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,u=this.lexer.yylloc,h>0&&h--);break;case 2:if(y=this.productions_[g[1]][1],b.$=r[r.length-y],b._$={first_line:o[o.length-(y||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(y||1)].first_column,last_column:o[o.length-1].last_column},void 0!==(v=this.performAction.call(b,a,c,l,this.yy,g[1],r,o)))return v;y&&(n=n.slice(0,-1*y*2),r=r.slice(0,-1*y),o=o.slice(0,-1*y)),n.push(this.productions_[g[1]][0]),r.push(b.$),o.push(b._$),A=s[n[n.length-2]][n[n.length-1]],n.push(A);break;case 3:return!0}}return!0}},t=function(){var e={EOF:1,parseError:function(e,t){if(!this.yy.parseError)throw new Error(e);this.yy.parseError(e,t)},setInput:function(e){return this._input=e,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.match+=e,this.matched+=e,e.match(/\n/)&&this.yylineno++,this._input=this._input.slice(1),e},unput:function(e){return this._input=e+this._input,this},more:function(){return this._more=!0,this},less:function(e){this._input=this.match.slice(e)+this._input},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var e,t,i,n,r;this._more||(this.yytext="",this.match="");for(var o=this._currentRules(),s=0;st[0].length)||(t=i,n=s,this.options.flex));s++);return t?(r=t[0].match(/\n.*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-1:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.yyleng=this.yytext.length,this._more=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],e=this.performAction.call(this,this.yy,this,o[n],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e||void 0):""===this._input?this.EOF:void this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var e=this.next();return void 0!==e?e:this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(e){this.begin(e)}};return e.options={},e.performAction=function(e,t,i,n){switch(i){case 0:break;case 1:return 6;case 2:return t.yytext=t.yytext.substr(1,t.yyleng-2),4;case 3:return 17;case 4:return 18;case 5:return 23;case 6:return 24;case 7:return 22;case 8:return 21;case 9:return 10;case 10:return 11;case 11:return 8;case 12:return 14;case 13:return"INVALID"}},e.rules=[/^(?:\s+)/,/^(?:(-?([0-9]|[1-9][0-9]+))(\.[0-9]+)?([eE][-+]?[0-9]+)?\b)/,/^(?:"(?:\\[\\"bfnrt\/]|\\u[a-fA-F0-9]{4}|[^\\\0-\x09\x0a-\x1f"])*")/,/^(?:\{)/,/^(?:\})/,/^(?:\[)/,/^(?:\])/,/^(?:,)/,/^(?::)/,/^(?:true\b)/,/^(?:false\b)/,/^(?:null\b)/,/^(?:$)/,/^(?:.)/],e.conditions={INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],inclusive:!0}},e}();return e.lexer=t,e}();t.parser=n,t.parse=n.parse.bind(n)},function(e,t){"use strict";function i(e,t){var i=this;this.editor=e,this.timeout=void 0,this.delay=200,this.lastText=void 0,this.dom={},this.dom.container=t;var n=document.createElement("table");this.dom.table=n,n.className="jsoneditor-search",t.appendChild(n);var r=document.createElement("tbody");this.dom.tbody=r,n.appendChild(r);var o=document.createElement("tr");r.appendChild(o);var s=document.createElement("td");o.appendChild(s);var a=document.createElement("div");this.dom.results=a,a.className="jsoneditor-results",s.appendChild(a),s=document.createElement("td"),o.appendChild(s);var l=document.createElement("div");this.dom.input=l,l.className="jsoneditor-frame",l.title="Search fields and values",s.appendChild(l);var c=document.createElement("table");l.appendChild(c);var h=document.createElement("tbody");c.appendChild(h),o=document.createElement("tr"),h.appendChild(o);var d=document.createElement("button");d.type="button",d.className="jsoneditor-refresh",s=document.createElement("td"),s.appendChild(d),o.appendChild(s);var u=document.createElement("input");this.dom.search=u,u.oninput=function(e){i._onDelayedSearch(e)},u.onchange=function(e){i._onSearch()},u.onkeydown=function(e){i._onKeyDown(e)},u.onkeyup=function(e){i._onKeyUp(e)},d.onclick=function(e){u.select()},s=document.createElement("td"),s.appendChild(u),o.appendChild(s);var f=document.createElement("button");f.type="button",f.title="Next result (Enter)",f.className="jsoneditor-next",f.onclick=function(){i.next()},s=document.createElement("td"),s.appendChild(f),o.appendChild(s);var p=document.createElement("button");p.type="button",p.title="Previous result (Shift+Enter)",p.className="jsoneditor-previous",p.onclick=function(){i.previous()},s=document.createElement("td"),s.appendChild(p),o.appendChild(s)}i.prototype.next=function(e){if(void 0!=this.results){var t=void 0!=this.resultIndex?this.resultIndex+1:0;t>this.results.length-1&&(t=0),this._setActiveResult(t,e)}},i.prototype.previous=function(e){if(void 0!=this.results){var t=this.results.length-1,i=void 0!=this.resultIndex?this.resultIndex-1:t;i<0&&(i=t),this._setActiveResult(i,e)}},i.prototype._setActiveResult=function(e,t){if(this.activeResult){var i=this.activeResult.node;"field"==this.activeResult.elem?delete i.searchFieldActive:delete i.searchValueActive,i.updateDom()}if(!this.results||!this.results[e])return this.resultIndex=void 0,void(this.activeResult=void 0);this.resultIndex=e;var n=this.results[this.resultIndex].node,r=this.results[this.resultIndex].elem;"field"==r?n.searchFieldActive=!0:n.searchValueActive=!0,this.activeResult=this.results[this.resultIndex],n.updateDom(),n.scrollTo(function(){t&&n.focus(r)})},i.prototype._clearDelay=function(){void 0!=this.timeout&&(clearTimeout(this.timeout),delete this.timeout)},i.prototype._onDelayedSearch=function(e){this._clearDelay();var t=this;this.timeout=setTimeout(function(e){t._onSearch()},this.delay)},i.prototype._onSearch=function(e){this._clearDelay();var t=this.dom.search.value,i=t.length>0?t:void 0;if(i!==this.lastText||e){this.lastText=i,this.results=this.editor.search(i);var n=this.results[0]?this.results[0].node.MAX_SEARCH_RESULTS:1/0;if(this._setActiveResult(0,!1),void 0!==i){var r=this.results.length;this.dom.results.innerHTML=0===r?"no results":1===r?"1 result":r>n?n+"+ results":r+" results"}else this.dom.results.innerHTML=""}},i.prototype._onKeyDown=function(e){var t=e.which;27==t?(this.dom.search.value="",this._onSearch(),e.preventDefault(),e.stopPropagation()):13==t&&(e.ctrlKey?this._onSearch(!0):e.shiftKey?this.previous():this.next(),e.preventDefault(),e.stopPropagation())},i.prototype._onKeyUp=function(e){var t=e.keyCode;27!=t&&13!=t&&this._onDelayedSearch(e)},i.prototype.clear=function(){this.dom.search.value="",this._onSearch()},i.prototype.destroy=function(){this.editor=null,this.dom.container.removeChild(this.dom.table),this.dom=null,this.results=null,this.activeResult=null,this._clearDelay()},e.exports=i},function(e,t,i){"use strict";function n(e){return e.getRootNode&&e.getRootNode()||window}function r(e,t){function i(e,t,r){r.forEach(function(r){if("separator"==r.type){var o=document.createElement("div");o.className="jsoneditor-separator",l=document.createElement("li"),l.appendChild(o),e.appendChild(l)}else{var a={},l=document.createElement("li");e.appendChild(l);var c=document.createElement("button");if(c.type="button",c.className=r.className,a.button=c,r.title&&(c.title=r.title),r.click&&(c.onclick=function(e){e.preventDefault(),n.hide(),r.click()}),l.appendChild(c),r.submenu){var h=document.createElement("div");h.className="jsoneditor-icon",c.appendChild(h);var d=document.createElement("div");d.className="jsoneditor-text"+(r.click?"":" jsoneditor-right-margin"),d.appendChild(document.createTextNode(r.text)),c.appendChild(d);var u;if(r.click){c.className+=" jsoneditor-default";var f=document.createElement("button");f.type="button",a.buttonExpand=f,f.className="jsoneditor-expand",f.innerHTML='
',l.appendChild(f),r.submenuTitle&&(f.title=r.submenuTitle),u=f}else{var p=document.createElement("div");p.className="jsoneditor-expand",c.appendChild(p),u=c}u.onclick=function(e){e.preventDefault(),n._onExpandItem(a),u.focus()};var m=[];a.subItems=m;var g=document.createElement("ul");a.ul=g,g.className="jsoneditor-menu",g.style.height="0",l.appendChild(g),i(g,m,r.submenu)}else c.innerHTML='
'+s(r.text)+"
";t.push(a)}})}this.dom={};var n=this,r=this.dom;this.anchor=void 0,this.items=e,this.eventListeners={},this.selection=void 0,this.onClose=t?t.close:void 0;var o=document.createElement("div");o.className="jsoneditor-contextmenu-root",r.root=o;var a=document.createElement("div");a.className="jsoneditor-contextmenu",r.menu=a,o.appendChild(a);var l=document.createElement("ul");l.className="jsoneditor-menu",a.appendChild(l),r.list=l,r.items=[];var c=document.createElement("button");c.type="button",r.focusButton=c;var h=document.createElement("li");h.style.overflow="hidden",h.style.height="0",h.appendChild(c),l.appendChild(h),i(l,this.dom.items,e),this.maxHeight=0,e.forEach(function(t){var i=24*(e.length+(t.submenu?t.submenu.length:0));n.maxHeight=Math.max(n.maxHeight,i)})}var o=i(54),s=i(58).translate;r.prototype._getVisibleButtons=function(){var e=[],t=this;return this.dom.items.forEach(function(i){e.push(i.button),i.buttonExpand&&e.push(i.buttonExpand),i.subItems&&i==t.expandedItem&&i.subItems.forEach(function(t){e.push(t.button),t.buttonExpand&&e.push(t.buttonExpand)})}),e},r.visibleMenu=void 0,r.prototype.show=function(e,t){this.hide();var i=!0,s=e.parentNode,a=e.getBoundingClientRect(),l=s.getBoundingClientRect();if(t){var c=t.getBoundingClientRect();a.bottom+this.maxHeightc.top&&(i=!1)}var h=a.left-l.left,d=a.top-l.top;if(i){var u=e.offsetHeight;this.dom.menu.style.left=h+"px",this.dom.menu.style.top=d+u+"px",this.dom.menu.style.bottom=""}else this.dom.menu.style.left=h+"px",this.dom.menu.style.top=d+"px",this.dom.menu.style.bottom="0px";this.rootNode=n(e),s.insertBefore(this.dom.root,s.firstChild);var f=this,p=this.dom.list;this.eventListeners.mousedown=o.addEventListener(this.rootNode,"mousedown",function(e){var t=e.target;t==p||f._isChildOf(t,p)||(f.hide(),e.stopPropagation(),e.preventDefault())}),this.eventListeners.keydown=o.addEventListener(this.rootNode,"keydown",function(e){f._onKeyDown(e)}),this.selection=o.getSelection(),this.anchor=e,setTimeout(function(){f.dom.focusButton.focus()},0),r.visibleMenu&&r.visibleMenu.hide(),r.visibleMenu=this},r.prototype.hide=function(){this.dom.root.parentNode&&(this.dom.root.parentNode.removeChild(this.dom.root),this.onClose&&this.onClose());for(var e in this.eventListeners)if(this.eventListeners.hasOwnProperty(e)){var t=this.eventListeners[e];t&&o.removeEventListener(this.rootNode,e,t),delete this.eventListeners[e]}r.visibleMenu==this&&(r.visibleMenu=void 0)},r.prototype._onExpandItem=function(e){var t=this,i=e==this.expandedItem,n=this.expandedItem;if(n&&(n.ul.style.height="0",n.ul.style.padding="",setTimeout(function(){t.expandedItem!=n&&(n.ul.style.display="",o.removeClassName(n.ul.parentNode,"jsoneditor-selected"))},300),this.expandedItem=void 0),!i){var r=e.ul;r.style.display="block";r.clientHeight;setTimeout(function(){if(t.expandedItem==e){for(var i=0,n=0;n0;){var n=t.shift();if("number"==typeof n){if("array"!==i.type)throw new Error("Cannot get child node at index "+n+": node is no array");i=i.childs[n]}else{if("object"!==i.type)throw new Error("Cannot get child node "+n+": node is no object");i=i.childs.filter(function(e){return e.field===n})[0]}}return i},n.prototype.findParents=function(){for(var e=[],t=this.parent;t;)e.unshift(t),t=t.parent;return e},n.prototype.setError=function(e,t){this.error=e,this.errorChild=t,this.dom&&this.dom.tr&&this.updateError()},n.prototype.updateError=function(){var e=this.error,t=this.dom.tdError;if(e&&this.dom&&this.dom.tr&&!t){t||(t=document.createElement("td"),this.dom.tdError=t,this.dom.tdValue.parentNode.appendChild(t));var i=document.createElement("div");i.className="jsoneditor-popover jsoneditor-right",i.appendChild(document.createTextNode(e.message));var n=document.createElement("button");n.type="button",n.className="jsoneditor-schema-error",n.appendChild(i),n.onmouseover=n.onfocus=function(){for(var e=["right","above","below","left"],t=0;tthis.visibleChilds){var r=this.childs[this.visibleChilds-1];this.insertBefore(e,r)}else this.appendChild(e);else this.insertBefore(e,t);i&&i.removeChild(n)}},n.prototype.moveTo=function(e,t){if(e.parent==this){this.childs.indexOf(e)0&&(e=this.childs.filter(function(e){return-1!==i.indexOf(e.field)}).map(function(e){return{node:e,error:{message:h("duplicateKey")+' "'+e.field+'"'}}}))}if(this.childs)for(var n=0;n0&&(e=e.concat(o))}return e},n.prototype.clearDom=function(){this.dom={}},n.prototype.getDom=function(){var e=this.dom;if(e.tr)return e.tr;if(this._updateEditability(),e.tr=document.createElement("tr"),e.tr.node=this,"tree"===this.editor.options.mode){var t=document.createElement("td");if(this.editable.field&&this.parent){var i=document.createElement("button");i.type="button",e.drag=i,i.className="jsoneditor-dragarea",i.title=h("drag"),t.appendChild(i)}e.tr.appendChild(t);var n=document.createElement("td"),r=document.createElement("button");r.type="button",e.menu=r,r.className="jsoneditor-contextmenu",r.title=h("actionsMenu"),n.appendChild(e.menu),e.tr.appendChild(n)}var o=document.createElement("td");return e.tr.appendChild(o),e.tree=this._createDomTree(),o.appendChild(e.tree),this.updateDom({updateIndexes:!0}),e.tr},n.prototype.isVisible=function(){return this.dom&&this.dom.tr&&this.dom.tr.parentNode||!1},n.onDragStart=function(e,t){if(!Array.isArray(e))return n.onDragStart([e],t);if(0!==e.length){var i=e[0],r=e[e.length-1],o=n.getNodeFromTarget(t.target),s=r.nextSibling(),a=i.editor,l=c.getAbsoluteTop(o.dom.tr)-c.getAbsoluteTop(i.dom.tr);a.mousemove||(a.mousemove=c.addEventListener(window,"mousemove",function(t){n.onDrag(e,t)})),a.mouseup||(a.mouseup=c.addEventListener(window,"mouseup",function(t){n.onDragEnd(e,t)})),a.highlighter.lock(),a.drag={oldCursor:document.body.style.cursor,oldSelection:a.getDomSelection(),oldBeforeNode:s,mouseX:t.pageX,offsetY:l,level:i.getLevel()},document.body.style.cursor="move",t.preventDefault()}},n.onDrag=function(e,t){if(!Array.isArray(e))return n.onDrag([e],t);if(0!==e.length){var i,r,o,s,a,l,h,u,f,p,m,g,v,w,y=e[0].editor,A=t.pageY-y.drag.offsetY,C=t.pageX,b=!1,E=e[0];if(i=E.dom.tr,f=c.getAbsoluteTop(i),g=i.offsetHeight,Ap+g&&(h=void 0)),h&&(e.forEach(function(e){h.parent.moveBefore(e,h)}),b=!0)}else{var F=e[e.length-1];if(a=F.expanded&&F.append?F.append.getDom():F.dom.tr,s=a?a.nextSibling:void 0){m=c.getAbsoluteTop(s),o=s;do{u=n.getNodeFromTarget(o),o&&(v=o.nextSibling?c.getAbsoluteTop(o.nextSibling):0,w=o?v-m:0,u&&u.parent.childs.length==e.length&&u.parent.childs[e.length-1]==F&&(f+=27),o=o.nextSibling)}while(o&&A>f+w);if(u&&u.parent){var x=C-y.drag.mouseX,S=Math.round(x/24/2),D=y.drag.level+S,$=u.getLevel();for(r=u.dom.tr&&u.dom.tr.previousSibling;$0)return i[0].enum}return null},n._findSchema=function(e,t){var i=e,r=i,o=e.oneOf||e.anyOf||e.allOf;o||(o=[e]);for(var s=0;s0?this.editor.multiselection.nodes:[this],A=y[0],C=y[y.length-1];if(13==u){if(f==this.dom.value)this.editable.value&&!e.ctrlKey||c.isUrl(this.value)&&(window.open(this.value,"_blank"),v=!0);else if(f==this.dom.expand){var b=this._hasChilds();if(b){var E=e.ctrlKey;this._onExpand(E),f.focus(),v=!0}}}else if(68==u)p&&w&&(n.onDuplicate(y),v=!0);else if(69==u)p&&(this._onExpand(m),f.focus(),v=!0);else if(77==u&&w)p&&(this.showContextMenu(f),v=!0);else if(46==u&&w)p&&(n.onRemove(y),v=!0);else if(45==u&&w)p&&!m?(this._onInsertBefore(),v=!0):p&&m&&(this._onInsertAfter(),v=!0);else if(35==u){if(g){var F=this._lastNode();F&&F.focus(n.focusElement||this._getElementName(f)),v=!0}}else if(36==u){if(g){var x=this._firstNode();x&&x.focus(n.focusElement||this._getElementName(f)),v=!0}}else if(37==u){if(g&&!m){var S=this._previousElement(f);S&&this.focus(this._getElementName(S)),v=!0}else if(g&&m&&w){if(C.expanded){var D=C.getAppendDom();r=D?D.nextSibling:void 0}else{var $=C.getDom();r=$.nextSibling}r&&(i=n.getNodeFromTarget(r),o=r.nextSibling,_=n.getNodeFromTarget(o),i&&i instanceof d&&1!=C.parent.childs.length&&_&&_.parent&&(s=this.editor.getDomSelection(),a=C.nextSibling(),y.forEach(function(e){_.parent.moveBefore(e,_)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:y,oldBeforeNode:a,newBeforeNode:_,oldSelection:s,newSelection:this.editor.getDomSelection()})))}}else if(38==u)g&&!m?(t=this._previousNode(),t&&(this.editor.deselect(!0),t.focus(n.focusElement||this._getElementName(f))),v=!0):!g&&p&&m&&w?(t=this._previousNode(),t&&(h=this.editor.multiselection,h.start=h.start||this,h.end=t,l=this.editor._findTopLevelNodes(h.start,h.end),this.editor.select(l),t.focus("field")),v=!0):g&&m&&w&&(t=A._previousNode(),t&&t.parent&&(s=this.editor.getDomSelection(),a=C.nextSibling(),y.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:y,oldBeforeNode:a,newBeforeNode:t,oldSelection:s,newSelection:this.editor.getDomSelection()})),v=!0);else if(39==u){if(g&&!m){var k=this._nextElement(f);k&&this.focus(this._getElementName(k)),v=!0}else if(g&&m&&w){$=A.getDom();var B=$.previousSibling;B&&(t=n.getNodeFromTarget(B))&&t.parent&&!t.isVisible()&&(s=this.editor.getDomSelection(),a=C.nextSibling(),y.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:y,oldBeforeNode:a,newBeforeNode:t,oldSelection:s,newSelection:this.editor.getDomSelection()}))}}else if(40==u)if(g&&!m)i=this._nextNode(),i&&(this.editor.deselect(!0),i.focus(n.focusElement||this._getElementName(f))),v=!0;else if(!g&&p&&m&&w)i=this._nextNode(),i&&(h=this.editor.multiselection,h.start=h.start||this,h.end=i,l=this.editor._findTopLevelNodes(h.start,h.end),this.editor.select(l),i.focus("field")),v=!0;else if(g&&m&&w){i=C.expanded?C.append?C.append._nextNode():void 0:C._nextNode(),i&&!i.isVisible()&&(i=i.parent.showMore),i&&i instanceof d&&(i=C);var _=i&&(i._nextNode()||i.parent.append);_&&_.parent&&(s=this.editor.getDomSelection(),a=C.nextSibling(),y.forEach(function(e){_.parent.moveBefore(e,_)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:y,oldBeforeNode:a,newBeforeNode:_,oldSelection:s,newSelection:this.editor.getDomSelection()})),v=!0}v&&(e.preventDefault(),e.stopPropagation())},n.prototype._onExpand=function(e){if(e){var t=this.dom.tr.parentNode,i=t.parentNode,n=i.scrollTop;i.removeChild(t)}this.expanded?this.collapse(e):this.expand(e),e&&(i.appendChild(t),i.scrollTop=n)},n.onRemove=function(e){if(!Array.isArray(e))return n.onRemove([e]);if(e&&e.length>0){var t=e[0],i=t.parent,r=t.editor,o=t.getIndex();r.highlighter.unhighlight();var s=r.getDomSelection();n.blurNodes(e);var a=r.getDomSelection();e.forEach(function(e){e.parent._remove(e)}),r._onAction("removeNodes",{nodes:e.slice(0),parent:i,index:o,oldSelection:s,newSelection:a})}},n.onDuplicate=function(e){if(!Array.isArray(e))return n.onDuplicate([e]);if(e&&e.length>0){var t=e[e.length-1],i=t.parent,r=t.editor;r.deselect(r.multiselection.nodes);var o=r.getDomSelection(),s=t,a=e.map(function(e){var t=e.clone();return i.insertAfter(t,s),s=t,t});1===e.length?a[0].focus():r.select(a);var l=r.getDomSelection();r._onAction("duplicateNodes",{afterNode:t,nodes:a,parent:i,oldSelection:o,newSelection:l})}},n.prototype._onInsertBefore=function(e,t,i){var r=this.editor.getDomSelection(),o=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});o.expand(!0),this.parent.insertBefore(o,this),this.editor.highlighter.unhighlight(),o.focus("field");var s=this.editor.getDomSelection();this.editor._onAction("insertBeforeNodes",{nodes:[o],beforeNode:this,parent:this.parent,oldSelection:r,newSelection:s})},n.prototype._onInsertAfter=function(e,t,i){var r=this.editor.getDomSelection(),o=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});o.expand(!0),this.parent.insertAfter(o,this),this.editor.highlighter.unhighlight(),o.focus("field");var s=this.editor.getDomSelection();this.editor._onAction("insertAfterNodes",{nodes:[o],afterNode:this,parent:this.parent,oldSelection:r,newSelection:s})},n.prototype._onAppend=function(e,t,i){var r=this.editor.getDomSelection(),o=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});o.expand(!0),this.parent.appendChild(o),this.editor.highlighter.unhighlight(),o.focus("field");var s=this.editor.getDomSelection();this.editor._onAction("appendNodes",{nodes:[o],parent:this.parent,oldSelection:r,newSelection:s})},n.prototype._onChangeType=function(e){var t=this.type;if(e!=t){var i=this.editor.getDomSelection();this.changeType(e);var n=this.editor.getDomSelection();this.editor._onAction("changeType",{node:this,oldType:t,newType:e,oldSelection:i,newSelection:n})}},n.prototype.sort=function(e,t){if(this._hasChilds()){this.hideChilds();var i=this.childs;this.childs=this.childs.concat();var n="desc"===t?-1:1;"object"===this.type?this.childs.sort(function(e,t){return n*r(e.field,t.field)}):this.childs.sort(function(t,i){var o=t.getNestedChild(e),s=i.getNestedChild(e);if(!o)return n;if(!s)return-n;var a=o.value,l=s.value;return"string"!=typeof a&&"string"!=typeof l?a>l?n:a0){var e={};return this.childs.forEach(function(t){t._getSortablePaths(e,"")}),Object.keys(e).sort()}return["."]}return"object"===this.type?["."]:[]},n.prototype._getSortablePaths=function(e,t){"array"===this.type||("object"===this.type?this.childs.forEach(function(i){if("object"===i.type)i._getSortablePaths(e,t+"."+i.field);else if("array"===i.type);else{var n=t+"."+i.field;e[n]=!0}}):e[t+"."]=!0)},n.prototype.getAppendDom=function(){return this.append||(this.append=new d(this.editor),this.append.setParent(this)),this.append.getDom()},n.prototype.getShowMoreDom=function(){return this.showMore||(this.showMore=new u(this.editor,this)),this.showMore.getDom()},n.getNodeFromTarget=function(e){for(;e;){if(e.node)return e.node;e=e.parentNode}},n.blurNodes=function(e){if(!Array.isArray(e))return void n.blurNodes([e]);var t=e[0],i=t.parent,r=t.getIndex();i.childs[r+e.length]?i.childs[r+e.length].focus():i.childs[r-1]?i.childs[r-1].focus():i.focus()},n.prototype.nextSibling=function(){var e=this.parent.childs.indexOf(this);return this.parent.childs[e+1]||this.parent.append},n.prototype._previousNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t;do{i=i.previousSibling,e=n.getNodeFromTarget(i)}while(i&&e&&e instanceof d&&!e.isVisible())}return e},n.prototype._nextNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t;do{i=i.nextSibling,e=n.getNodeFromTarget(i)}while(i&&e&&e instanceof d&&!e.isVisible())}return e},n.prototype._firstNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t.parentNode.firstChild;e=n.getNodeFromTarget(i)}return e},n.prototype._lastNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t.parentNode.lastChild;for(e=n.getNodeFromTarget(i);i&&e&&!e.isVisible();)i=i.previousSibling,e=n.getNodeFromTarget(i)}return e},n.prototype._previousElement=function(e){var t=this.dom;switch(e){case t.value:if(this.fieldEditable)return t.field;case t.field:if(this._hasChilds())return t.expand;case t.expand:return t.menu;case t.menu:if(t.drag)return t.drag;default:return null}},n.prototype._nextElement=function(e){var t=this.dom;switch(e){case t.drag:return t.menu;case t.menu:if(this._hasChilds())return t.expand;case t.expand:if(this.fieldEditable)return t.field;case t.field:if(!this._hasChilds())return t.value;default:return null}},n.prototype._getElementName=function(e){var t=this.dom;for(var i in t)if(t.hasOwnProperty(i)&&t[i]==e)return i;return null},n.prototype._hasChilds=function(){return"array"==this.type||"object"==this.type},n.TYPE_TITLES={auto:h("autoType"),object:h("objectType"),array:h("arrayType"),string:h("stringType")},n.prototype.addTemplates=function(e,t){var i=this,n=i.editor.options.templates;if(null!=n){n.length&&e.push({type:"separator"});var r=function(e,t){i._onAppend(e,t)},o=function(e,t){i._onInsertBefore(e,t)};n.forEach(function(i){e.push({text:i.text,className:i.className||"jsoneditor-type-object",title:i.title,click:t?r.bind(this,i.field,i.value):o.bind(this,i.field,i.value)})})}},n.prototype.showContextMenu=function(e,t){var i=this,r=n.TYPE_TITLES,o=[];if(this.editable.value&&o.push({text:h("type"),title:h("typeTitle"),className:"jsoneditor-type-"+this.type,submenu:[{text:h("auto"),className:"jsoneditor-type-auto"+("auto"==this.type?" jsoneditor-selected":""),title:r.auto,click:function(){i._onChangeType("auto")}},{text:h("array"),className:"jsoneditor-type-array"+("array"==this.type?" jsoneditor-selected":""),title:r.array,click:function(){i._onChangeType("array")}},{text:h("object"),className:"jsoneditor-type-object"+("object"==this.type?" jsoneditor-selected":""),title:r.object,click:function(){i._onChangeType("object")}},{text:h("string"),className:"jsoneditor-type-string"+("string"==this.type?" jsoneditor-selected":""),title:r.string,click:function(){i._onChangeType("string")}}]}),this._hasChilds()&&o.push({text:h("sort"),title:h("sortTitle")+this.type,className:"jsoneditor-sort-asc",click:function(){i._showSortModal()}}),this.parent&&this.parent._hasChilds()){o.length&&o.push({type:"separator"});var a=i.parent.childs;if(i==a[a.length-1]){var l=[{text:h("auto"),className:"jsoneditor-type-auto",title:r.auto,click:function(){i._onAppend("","","auto")}},{text:h("array"),className:"jsoneditor-type-array",title:r.array,click:function(){i._onAppend("",[])}},{text:h("object"),className:"jsoneditor-type-object",title:r.object,click:function(){i._onAppend("",{})}},{text:h("string"),className:"jsoneditor-type-string",title:r.string,click:function(){i._onAppend("","","string")}}];i.addTemplates(l,!0),o.push({text:h("appendText"),title:h("appendTitle"),submenuTitle:h("appendSubmenuTitle"),className:"jsoneditor-append",click:function(){i._onAppend("","","auto")},submenu:l})}var c=[{text:h("auto"),className:"jsoneditor-type-auto",title:r.auto,click:function(){i._onInsertBefore("","","auto")}},{text:h("array"),className:"jsoneditor-type-array",title:r.array,click:function(){i._onInsertBefore("",[])}},{text:h("object"),className:"jsoneditor-type-object",title:r.object,click:function(){i._onInsertBefore("",{})}},{text:h("string"),className:"jsoneditor-type-string",title:r.string,click:function(){i._onInsertBefore("","","string")}}];i.addTemplates(c,!1),o.push({text:h("insert"),title:h("insertTitle"),submenuTitle:h("insertSub"),className:"jsoneditor-insert",click:function(){i._onInsertBefore("","","auto")},submenu:c}),this.editable.field&&(o.push({text:h("duplicateText"),title:h("duplicateField"),className:"jsoneditor-duplicate",click:function(){n.onDuplicate(i)}}),o.push({text:h("removeText"),title:h("removeField"),className:"jsoneditor-remove",click:function(){n.onRemove(i)}}))}new s(o,{close:t}).show(e,this.editor.content)},n.prototype._showSortModal=function(){var e=this,t='
'+h("sort")+"
"+h("sortFieldLabel")+'
'+h("sortDirectionLabel")+'
';o({parent:this.editor.frame,content:t,overlayClass:"jsoneditor-modal-overlay",modalClass:"jsoneditor-modal"}).afterCreate(function(t){function i(e){s.value=e,s.className="jsoneditor-button-group jsoneditor-button-group-value-"+s.value}var n=t.modalElem().querySelector("form"),r=t.modalElem().querySelector("#ok"),o=t.modalElem().querySelector("#field"),s=t.modalElem().querySelector("#direction"),a=e.getSortablePaths().sort();a.forEach(function(e){var t=document.createElement("option");t.text=e,t.value=e,o.appendChild(t)}),o.value=e.sortedBy?e.sortedBy.path:a[0],i(e.sortedBy?e.sortedBy.direction:"asc"),s.onclick=function(e){i(e.target.getAttribute("data-value"))},r.onclick=function(i){i.preventDefault(),i.stopPropagation(),t.close();var n=o.value,r="."===n?[]:n.split(".").slice(1);e.sortedBy={path:n,direction:s.value},e.sort(r,s.value)},n&&(n.onsubmit=r.onclick)}).afterClose(function(e){e.destroy()}).show()},n.prototype._getType=function(e){return e instanceof Array?"array":e instanceof Object?"object":"string"==typeof e&&"string"!=typeof this._stringCast(e)?"string":"auto"},n.prototype._stringCast=function(e){var t=e.toLowerCase(),i=Number(e),n=parseFloat(e);return""==e?"":"null"==t?null:"true"==t||"false"!=t&&(isNaN(i)||isNaN(n)?e:i)},n.prototype._escapeHTML=function(e){if("string"!=typeof e)return String(e);var t=String(e).replace(/&/g,"&").replace(//g,">").replace(/ /g,"  ").replace(/^ /," ").replace(/ $/," "),i=JSON.stringify(t),n=i.substring(1,i.length-1);return!0===this.editor.options.escapeUnicode&&(n=c.escapeUnicodeChars(n)),n},n.prototype._unescapeHTML=function(e){var t='"'+this._escapeJSON(e)+'"';return c.parse(t).replace(/</g,"<").replace(/>/g,">").replace(/ |\u00A0/g," ").replace(/&/g,"&")},n.prototype._escapeJSON=function(e){for(var t="",i=0;im)return 1}for(var g=0,v=Math.max(u.length,f.length);gr)return 1}return 0}},function(e,t,i){var n,r,o;!function(i,s){"use strict";r=[],n=s,void 0!==(o="function"==typeof n?n.apply(t,r):n)&&(e.exports=o)}(0,function(){"use strict";function e(e){return"object"==typeof Node?e instanceof Node:e&&"object"==typeof e&&"number"==typeof e.nodeType}function t(e){return"string"==typeof e}function i(){var e=[];return{watch:e.push.bind(e),trigger:function(t,i){for(var n=!0,r={detail:i,preventDefault:function(){n=!1}},o=0;othis.parent.visibleChilds},t.prototype.onEvent=function(e){"keydown"===e.type&&this.onKeyDown(e)},t}var r=i(58).translate;e.exports=n},function(e,t,i){"use strict";function n(e,t,i,n){for(var o={code:{text:"Code",title:"Switch to code highlighter",click:function(){n("code")}},form:{text:"Form",title:"Switch to form editor",click:function(){n("form")}},text:{text:"Text",title:"Switch to plain text editor",click:function(){n("text")}},tree:{text:"Tree",title:"Switch to tree editor",click:function(){n("tree")}},view:{text:"View",title:"Switch to tree view",click:function(){n("view")}}},s=[],a=0;a/g,">"),a.getBoundingClientRect().right}e=e||{},e.confirmKeys=e.confirmKeys||[39,35,9],e.caseSensitive=e.caseSensitive||!1;var n="",r="",o=document.createElement("div");o.style.position="relative",o.style.outline="0",o.style.border="0",o.style.margin="0",o.style.padding="0";var s=document.createElement("div");s.className="autocomplete dropdown",s.style.position="absolute",s.style.visibility="hidden";var a,l,c={onArrowDown:function(){},onArrowUp:function(){},onEnter:function(){},onTab:function(){},startFrom:0,options:[],element:null,elementHint:null,elementStyle:null,wrapper:o,show:function(e,t,i){this.startFrom=t,this.wrapper.remove(),this.elementHint&&(this.elementHint.remove(),this.elementHint=null),""==n&&(n=window.getComputedStyle(e).getPropertyValue("font-size")),""==r&&(r=window.getComputedStyle(e).getPropertyValue("font-family"));e.getBoundingClientRect().right,e.getBoundingClientRect().left;s.style.marginLeft="0",s.style.marginTop=e.getBoundingClientRect().height+"px",this.options=i,this.element!=e&&(this.element=e,this.elementStyle={zIndex:this.element.style.zIndex,position:this.element.style.position,backgroundColor:this.element.style.backgroundColor,borderColor:this.element.style.borderColor}),this.element.style.zIndex=3,this.element.style.position="relative",this.element.style.backgroundColor="transparent",this.element.style.borderColor="transparent",this.elementHint=e.cloneNode(),this.elementHint.className="autocomplete hint",this.elementHint.style.zIndex=2,this.elementHint.style.position="absolute",this.elementHint.onfocus=function(){this.element.focus()}.bind(this),this.element.addEventListener&&(this.element.removeEventListener("keydown",d),this.element.addEventListener("keydown",d,!1),this.element.removeEventListener("blur",u),this.element.addEventListener("blur",u,!1)),o.appendChild(this.elementHint),o.appendChild(s),e.parentElement.appendChild(o),this.repaint(e)},setText:function(e){this.element.innerText=e},getText:function(){return this.element.innerText},hideDropDown:function(){this.wrapper.remove(),this.elementHint&&(this.elementHint.remove(),this.elementHint=null,h.hide(),this.element.style.zIndex=this.elementStyle.zIndex,this.element.style.position=this.elementStyle.position,this.element.style.backgroundColor=this.elementStyle.backgroundColor,this.element.style.borderColor=this.elementStyle.borderColor)},repaint:function(t){var n=t.innerText;n=n.replace("\n","");var r=(this.startFrom,this.options,this.options.length),o=n.substring(this.startFrom);l=n.substring(0,this.startFrom);for(var a=0;a"+o[p].substring(i.length)+"",n.push(m),t.appendChild(m)}0!==n.length&&(1===n.length&&(i.toLowerCase()===n[0].__hint.toLowerCase()&&!e.caseSensitive||i===n[0].__hint&&e.caseSensitive)||n.length<2||(c.highlight(0),u>3*f?(t.style.maxHeight=u+"px",t.style.top="",t.style.bottom="100%"):(t.style.top="100%",t.style.bottom="",t.style.maxHeight=f+"px"),t.style.visibility="visible"))},highlight:function(e){-1!=o&&n[o]&&(n[o].className="item"),n[e].className="item hover",o=e},move:function(e){return"hidden"===t.style.visibility?"":r+e===-1||r+e===n.length?n[r].__hint:(r+=e,c.highlight(r),n[r].__hint)},onmouseselection:function(){}};return c}(s,c),d=function(i){i=i||window.event;var n=i.keyCode;if(null!=this.elementHint&&33!=n&&34!=n){if(27==n)return c.hideDropDown(),c.element.focus(),i.preventDefault(),void i.stopPropagation();var r=this.element.innerText;r=r.replace("\n","");this.startFrom;if(e.confirmKeys.indexOf(n)>=0)return 9==n&&0==this.elementHint.innerText.length&&c.onTab(),void(this.elementHint.innerText.length>0&&this.element.innerText!=this.elementHint.realInnerText&&(this.element.innerText=this.elementHint.realInnerText,c.hideDropDown(),t(this.element),9==n&&(c.element.focus(),i.preventDefault(),i.stopPropagation())));if(13!=n){if(40==n){var o=r.substring(this.startFrom),a=h.move(1);return""==a&&c.onArrowDown(),this.elementHint.innerText=l+o+a.substring(o.length),this.elementHint.realInnerText=l+a,i.preventDefault(),void i.stopPropagation()}if(38==n){var o=r.substring(this.startFrom),a=h.move(-1);return""==a&&c.onArrowUp(),this.elementHint.innerText=l+o+a.substring(o.length),this.elementHint.realInnerText=l+a,i.preventDefault(),void i.stopPropagation()}}else if(0==this.elementHint.innerText.length)c.onEnter();else{var d="hidden"==s.style.visibility;if(h.hide(),d)return c.hideDropDown(),c.element.focus(),void c.onEnter();this.element.innerText=this.elementHint.realInnerText,c.hideDropDown(),t(this.element),i.preventDefault(),i.stopPropagation()}}}.bind(c),u=function(e){c.hideDropDown()}.bind(c);return h.onmouseselection=function(e,i){i.element.innerText=i.elementHint.innerText=l+e,i.hideDropDown(),window.setTimeout(function(){i.element.focus(),t(i.element)},1)},c}e.exports=i},function(e,t,i){"use strict";var n=i(68),r=i(65),o=i(54),s={};s.create=function(e,t){t=t||{},void 0===t.statusBar&&(t.statusBar=!0),this.options=t,t.indentation?this.indentation=Number(t.indentation):this.indentation=2;var s=t.ace?t.ace:n;if(this.mode="code"==t.mode?"code":"text","code"==this.mode&&void 0===s&&(this.mode="text",console.warn("Failed to load Ace editor, falling back to plain text mode. Please use a JSONEditor bundle including Ace, or pass Ace as via the configuration option `ace`.")),this.theme=t.theme||"ace/theme/jsoneditor","ace/theme/jsoneditor"===this.theme&&s)try{i(74)}catch(e){console.error(e)}t.onTextSelectionChange&&this.onTextSelectionChange(t.onTextSelectionChange);var a=this;this.container=e,this.dom={},this.aceEditor=void 0,this.textarea=void 0,this.validateSchema=null,this._debouncedValidate=o.debounce(this.validate.bind(this),this.DEBOUNCE_INTERVAL),this.width=e.clientWidth,this.height=e.clientHeight,this.frame=document.createElement("div"),this.frame.className="jsoneditor jsoneditor-mode-"+this.options.mode,this.frame.onclick=function(e){e.preventDefault()},this.frame.onkeydown=function(e){a._onKeyDown(e)},this.menu=document.createElement("div"),this.menu.className="jsoneditor-menu",this.frame.appendChild(this.menu);var l=document.createElement("button");l.type="button",l.className="jsoneditor-format",l.title="Format JSON data, with proper indentation and line feeds (Ctrl+\\)",this.menu.appendChild(l),l.onclick=function(){try{a.format(),a._onChange()}catch(e){a._onError(e)}};var c=document.createElement("button");c.type="button",c.className="jsoneditor-compact",c.title="Compact JSON data, remove all whitespaces (Ctrl+Shift+\\)",this.menu.appendChild(c),c.onclick=function(){try{a.compact(),a._onChange()}catch(e){a._onError(e)}};var h=document.createElement("button");h.type="button",h.className="jsoneditor-repair",h.title="Repair JSON: fix quotes and escape characters, remove comments and JSONP notation, turn JavaScript objects into JSON.",this.menu.appendChild(h),h.onclick=function(){try{a.repair(),a._onChange()}catch(e){a._onError(e)}},this.options&&this.options.modes&&this.options.modes.length&&(this.modeSwitcher=new r(this.menu,this.options.modes,this.options.mode,function(e){a.setMode(e),a.modeSwitcher.focus()}));var d={},u=this.options.onEditable&&typeof("function"===this.options.onEditable)&&!this.options.onEditable(d);if(this.content=document.createElement("div"),this.content.className="jsoneditor-outer",this.frame.appendChild(this.content),this.container.appendChild(this.frame),"code"==this.mode){this.editorDom=document.createElement("div"),this.editorDom.style.height="100%",this.editorDom.style.width="100%",this.content.appendChild(this.editorDom);var f=s.edit(this.editorDom);f.$blockScrolling=1/0,f.setTheme(this.theme),f.setOptions({readOnly:u}),f.setShowPrintMargin(!1),f.setFontSize(13),f.getSession().setMode("ace/mode/json"),f.getSession().setTabSize(this.indentation),f.getSession().setUseSoftTabs(!0),f.getSession().setUseWrapMode(!0),f.commands.bindKey("Ctrl-L",null),f.commands.bindKey("Command-L",null),this.aceEditor=f,this.hasOwnProperty("editor")||Object.defineProperty(this,"editor",{get:function(){return console.warn('Property "editor" has been renamed to "aceEditor".'),a.aceEditor},set:function(e){console.warn('Property "editor" has been renamed to "aceEditor".'),a.aceEditor=e}});var p=document.createElement("a");p.appendChild(document.createTextNode("powered by ace")),p.href="http://ace.ajax.org",p.target="_blank",p.className="jsoneditor-poweredBy",p.onclick=function(){window.open(p.href,p.target)},this.menu.appendChild(p),f.on("change",this._onChange.bind(this)),f.on("changeSelection",this._onSelect.bind(this))}else{var m=document.createElement("textarea");m.className="jsoneditor-text",m.spellcheck=!1,this.content.appendChild(m),this.textarea=m,this.textarea.readOnly=u,null===this.textarea.oninput?this.textarea.oninput=this._onChange.bind(this):this.textarea.onchange=this._onChange.bind(this),m.onselect=this._onSelect.bind(this),m.onmousedown=this._onMouseDown.bind(this),m.onblur=this._onBlur.bind(this)}var g=document.createElement("div");if(g.className="validation-errors-container",this.dom.validationErrorsContainer=g,this.frame.appendChild(g),t.statusBar){o.addClassName(this.content,"has-status-bar"),this.curserInfoElements={};var v=document.createElement("div");this.dom.statusBar=v,v.className="jsoneditor-statusbar",this.frame.appendChild(v);var w=document.createElement("span");w.className="jsoneditor-curserinfo-label",w.innerText="Ln:";var y=document.createElement("span");y.className="jsoneditor-curserinfo-val",y.innerText="1",v.appendChild(w),v.appendChild(y);var A=document.createElement("span");A.className="jsoneditor-curserinfo-label",A.innerText="Col:";var C=document.createElement("span");C.className="jsoneditor-curserinfo-val",C.innerText="1",v.appendChild(A),v.appendChild(C),this.curserInfoElements.colVal=C,this.curserInfoElements.lnVal=y;var b=document.createElement("span");b.className="jsoneditor-curserinfo-label",b.innerText="characters selected",b.style.display="none";var E=document.createElement("span");E.className="jsoneditor-curserinfo-count",E.innerText="0",E.style.display="none",this.curserInfoElements.countLabel=b,this.curserInfoElements.countVal=E,v.appendChild(E),v.appendChild(b)}this.setSchema(this.options.schema,this.options.schemaRefs)},s._onChange=function(){if(this._debouncedValidate(),this.options.onChange)try{this.options.onChange()}catch(e){console.error("Error in onChange callback: ",e)}},s._onSelect=function(){this._updateCursorInfo(),this._emitSelectionChange()},s._onKeyDown=function(e){var t=e.which||e.keyCode,i=!1;220==t&&e.ctrlKey&&(e.shiftKey?(this.compact(),this._onChange()):(this.format(),this._onChange()),i=!0),i&&(e.preventDefault(),e.stopPropagation()),this._updateCursorInfo(),this._emitSelectionChange()},s._onMouseDown=function(e){this._updateCursorInfo(),this._emitSelectionChange()},s._onBlur=function(e){this._updateCursorInfo(),this._emitSelectionChange()},s._updateCursorInfo=function(){function e(){r.curserInfoElements.countVal.innerText!==n&&(r.curserInfoElements.countVal.innerText=n,r.curserInfoElements.countVal.style.display=n?"inline":"none",r.curserInfoElements.countLabel.style.display=n?"inline":"none"),r.curserInfoElements.lnVal.innerText=t,r.curserInfoElements.colVal.innerText=i}var t,i,n,r=this;if(this.textarea)setTimeout(function(){var s=o.getInputSelection(r.textarea);s.startIndex!==s.endIndex&&(n=s.endIndex-s.startIndex),n&&r.cursorInfo&&r.cursorInfo.line===s.end.row&&r.cursorInfo.column===s.end.column?(t=s.start.row,i=s.start.column):(t=s.end.row,i=s.end.column),r.cursorInfo={line:t,column:i,count:n},r.options.statusBar&&e()},0);else if(this.aceEditor&&this.curserInfoElements){var s=this.aceEditor.getCursorPosition(),a=this.aceEditor.getSelectedText();t=s.row+1,i=s.column+1,n=a.length,r.cursorInfo={line:t,column:i,count:n},this.options.statusBar&&e()}},s._emitSelectionChange=function(){if(this._selectionChangedHandler){var e=this.getTextSelection();this._selectionChangedHandler(e.start,e.end,e.text)}},s.destroy=function(){this.aceEditor&&(this.aceEditor.destroy(),this.aceEditor=null),this.frame&&this.container&&this.frame.parentNode==this.container&&this.container.removeChild(this.frame),this.modeSwitcher&&(this.modeSwitcher.destroy(),this.modeSwitcher=null),this.textarea=null,this._debouncedValidate=null},s.compact=function(){var e=this.get(),t=JSON.stringify(e);this.setText(t)},s.format=function(){var e=this.get(),t=JSON.stringify(e,null,this.indentation);this.setText(t)},s.repair=function(){var e=this.getText(),t=o.sanitize(e);this.setText(t)},s.focus=function(){this.textarea&&this.textarea.focus(),this.aceEditor&&this.aceEditor.focus()},s.resize=function(){if(this.aceEditor){this.aceEditor.resize(!1)}},s.set=function(e){this.setText(JSON.stringify(e,null,this.indentation))},s.get=function(){var e,t=this.getText();try{e=o.parse(t)}catch(i){t=o.sanitize(t),e=o.parse(t)}return e},s.getText=function(){return this.textarea?this.textarea.value:this.aceEditor?this.aceEditor.getValue():""},s.setText=function(e){var t;if(t=!0===this.options.escapeUnicode?o.escapeUnicodeChars(e):e,this.textarea&&(this.textarea.value=t),this.aceEditor){var i=this.options.onChange;this.options.onChange=null,this.aceEditor.setValue(t,-1),this.options.onChange=i}this.validate()},s.validate=function(){this.dom.validationErrors&&(this.dom.validationErrors.parentNode.removeChild(this.dom.validationErrors),this.dom.validationErrors=null,this.content.style.marginBottom="",this.content.style.paddingBottom="");var e,t=!1,i=[];try{e=this.get(),t=!0}catch(e){}if(t&&this.validateSchema){this.validateSchema(e)||(i=this.validateSchema.errors.map(function(e){return o.improveSchemaError(e)}))}if(i.length>0){if(i.length>3){i=i.slice(0,3);var n=this.validateSchema.errors.length-3;i.push("("+n+" more errors...)")}var r=document.createElement("div");r.innerHTML=''+i.map(function(e){return''+("string"==typeof e?'":"")+""}).join("")+"
'+e+"
"+e.dataPath+""+e.message+"
",this.dom.validationErrors=r,this.dom.validationErrorsContainer.appendChild(r);var s=r.clientHeight+(this.dom.statusBar?this.dom.statusBar.clientHeight:0);this.content.style.marginBottom=-s+"px",this.content.style.paddingBottom=s+"px"}if(this.aceEditor){this.aceEditor.resize(!1)}},s.getTextSelection=function(){var e={};if(this.textarea){var t=o.getInputSelection(this.textarea);return this.cursorInfo&&this.cursorInfo.line===t.end.row&&this.cursorInfo.column===t.end.column?(e.start=t.end,e.end=t.start):e=t,{start:e.start,end:e.end,text:this.textarea.value.substring(t.startIndex,t.endIndex)}}if(this.aceEditor){var i=this.aceEditor.getSelection(),n=this.aceEditor.getSelectedText(),r=i.getRange(),s=i.getSelectionLead();return s.row===r.end.row&&s.column===r.end.column?e=r:(e.start=r.end,e.end=r.start),{start:{row:e.start.row+1,column:e.start.column+1},end:{row:e.end.row+1,column:e.end.column+1},text:n}}},s.onTextSelectionChange=function(e){"function"==typeof e&&(this._selectionChangedHandler=o.debounce(e,this.DEBOUNCE_INTERVAL))},s.setTextSelection=function(e,t){if(e&&t)if(this.textarea){var i=o.getIndexForPosition(this.textarea,e.row,e.column),n=o.getIndexForPosition(this.textarea,t.row,t.column);if(i>-1&&n>-1)if(this.textarea.setSelectionRange)this.textarea.focus(),this.textarea.setSelectionRange(i,n);else if(this.textarea.createTextRange){var r=this.textarea.createTextRange();r.collapse(!0),r.moveEnd("character",n),r.moveStart("character",i),r.select()}}else if(this.aceEditor){var r={start:{row:e.row-1,column:e.column-1},end:{row:t.row-1,column:t.column-1}};this.aceEditor.selection.setRange(r)}},e.exports=[{mode:"text",mixin:s,data:"text",load:s.format},{mode:"code",mixin:s,data:"text",load:s.format}]},function(e,t,i){var n;if(window.ace)n=window.ace;else try{n=i(69),i(71),i(73)}catch(e){}e.exports=n},function(e,t,i){!function(){var e=function(){return this}();e||"undefined"==typeof window||(e=window);var t=function(e,i,n){if("string"!=typeof e)return void(t.original?t.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace()));2==arguments.length&&(n=i),t.modules[e]||(t.payloads[e]=n,t.modules[e]=null)};t.modules={},t.payloads={};var i=function(e,t,i){if("string"==typeof t){var r=o(e,t);if(void 0!=r)return i&&i(),r}else if("[object Array]"===Object.prototype.toString.call(t)){for(var s=[],a=0,l=t.length;a1&&r(l,"")>-1&&(i=RegExp(this.source,o.replace.call(n(this),"g","")),o.replace.call(e.slice(l.index),i,function(){for(var e=1;el.index&&this.lastIndex--}return l},a||(RegExp.prototype.test=function(e){var t=o.exec.call(this,e);return t&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--,!!t}))}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(e,t,i){function n(){}function r(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(e){}}function o(e){return e=+e,e!==e?e=0:0!==e&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}Function.prototype.bind||(Function.prototype.bind=function(e){var t=this;if("function"!=typeof t)throw new TypeError("Function.prototype.bind called on incompatible "+t);var i=p.call(arguments,1),r=function(){if(this instanceof r){var n=t.apply(this,i.concat(p.call(arguments)));return Object(n)===n?n:this}return t.apply(e,i.concat(p.call(arguments)))};return t.prototype&&(n.prototype=t.prototype,r.prototype=new n,n.prototype=null),r});var s,a,l,c,h,d=Function.prototype.call,u=Array.prototype,f=Object.prototype,p=u.slice,m=d.bind(f.toString),g=d.bind(f.hasOwnProperty);if((h=g(f,"__defineGetter__"))&&(s=d.bind(f.__defineGetter__),a=d.bind(f.__defineSetter__),l=d.bind(f.__lookupGetter__),c=d.bind(f.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t,i=[];if(i.splice.apply(i,e(20)),i.splice.apply(i,e(26)),t=i.length,i.splice(5,0,"XXX"),i.length,t+1==i.length)return!0}()){var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[void 0===e?0:e,void 0===t?this.length-e:t].concat(p.call(arguments,2))):[]}}else Array.prototype.splice=function(e,t){var i=this.length;e>0?e>i&&(e=i):void 0==e?e=0:e<0&&(e=Math.max(i+e,0)),e+ta)for(d=c;d--;)this[l+d]=this[a+d];if(o&&e===h)this.length=h,this.push.apply(this,r);else for(this.length=h+o,d=0;d>>0;if("[object Function]"!=m(e))throw new TypeError;for(;++r>>0,r=Array(n),o=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var s=0;s>>0,o=[],s=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var a=0;a>>0,r=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var o=0;o>>0,r=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var o=0;o>>0;if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");if(!n&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var r,o=0;if(arguments.length>=2)r=arguments[1];else for(;;){if(o in i){r=i[o++];break}if(++o>=n)throw new TypeError("reduce of empty array with no initial value")}for(;o>>0;if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");if(!n&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var r,o=n-1;if(arguments.length>=2)r=arguments[1];else for(;;){if(o in i){r=i[o--];break}if(--o<0)throw new TypeError("reduceRight of empty array with no initial value")}do{o in this&&(r=e.call(void 0,r,i[o],o,t))}while(o--);return r}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(e){var t=y&&"[object String]"==m(this)?this.split(""):_(this),i=t.length>>>0;if(!i)return-1;var n=0;for(arguments.length>1&&(n=o(arguments[1])),n=n>=0?n:Math.max(0,i+n);n>>0;if(!i)return-1;var n=i-1;for(arguments.length>1&&(n=Math.min(n,o(arguments[1]))),n=n>=0?n:i-Math.abs(n);n>=0;n--)if(n in t&&e===t[n])return n;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(e){return e.__proto__||(e.constructor?e.constructor.prototype:f)}),!Object.getOwnPropertyDescriptor){Object.getOwnPropertyDescriptor=function(e,t){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.getOwnPropertyDescriptor called on a non-object: "+e);if(g(e,t)){var i,n,r;if(i={enumerable:!0,configurable:!0},h){var o=e.__proto__;e.__proto__=f;var n=l(e,t),r=c(e,t);if(e.__proto__=o,n||r)return n&&(i.get=n),r&&(i.set=r),i}return i.value=e[t],i}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(e){return Object.keys(e)}),!Object.create){var A;A=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(e,t){var i;if(null===e)i=A();else{if("object"!=typeof e)throw new TypeError("typeof prototype["+typeof e+"] != 'object'");var n=function(){};n.prototype=e,i=new n,i.__proto__=e}return void 0!==t&&Object.defineProperties(i,t),i}}if(Object.defineProperty){var C=r({}),b="undefined"==typeof document||r(document.createElement("div"));if(!C||!b)var E=Object.defineProperty}if(!Object.defineProperty||E){Object.defineProperty=function(e,t,i){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.defineProperty called on non-object: "+e);if("object"!=typeof i&&"function"!=typeof i||null===i)throw new TypeError("Property description must be an object: "+i);if(E)try{return E.call(Object,e,t,i)}catch(e){}if(g(i,"value"))if(h&&(l(e,t)||c(e,t))){var n=e.__proto__;e.__proto__=f,delete e[t],e[t]=i.value,e.__proto__=n}else e[t]=i.value;else{if(!h)throw new TypeError("getters & setters can not be defined on this javascript engine");g(i,"get")&&s(e,t,i.get),g(i,"set")&&a(e,t,i.set)}return e}}Object.defineProperties||(Object.defineProperties=function(e,t){for(var i in t)g(t,i)&&Object.defineProperty(e,i,t[i]);return e}),Object.seal||(Object.seal=function(e){return e}),Object.freeze||(Object.freeze=function(e){return e});try{Object.freeze(function(){})}catch(e){Object.freeze=function(e){return function(t){return"function"==typeof t?t:e(t)}}(Object.freeze)} +if(Object.preventExtensions||(Object.preventExtensions=function(e){return e}),Object.isSealed||(Object.isSealed=function(e){return!1}),Object.isFrozen||(Object.isFrozen=function(e){return!1}),Object.isExtensible||(Object.isExtensible=function(e){if(Object(e)===e)throw new TypeError;for(var t="";g(e,t);)t+="?";e[t]=!0;var i=g(e,t);return delete e[t],i}),!Object.keys){var F=!0,x=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],S=x.length;for(var D in{toString:null})F=!1;Object.keys=function(e){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.keys called on a non-object");var t=[];for(var i in e)g(e,i)&&t.push(i);if(F)for(var n=0,r=S;n=0?parseFloat((r.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((r.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=(window.Controllers||window.controllers)&&"Gecko"===window.navigator.product,t.isOldGecko=t.isGecko&&parseInt((r.match(/rv:(\d+)/)||[])[1],10)<4,t.isOpera=window.opera&&"[object Opera]"==Object.prototype.toString.call(window.opera),t.isWebKit=parseFloat(r.split("WebKit/")[1])||void 0,t.isChrome=parseFloat(r.split(" Chrome/")[1])||void 0,t.isAIR=r.indexOf("AdobeAIR")>=0,t.isIPad=r.indexOf("iPad")>=0,t.isChromeOS=r.indexOf(" CrOS ")>=0,t.isIOS=/iPad|iPhone|iPod/.test(r)&&!window.MSStream,t.isIOS&&(t.isMac=!0)}}),ace.define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,i){"use strict";function n(e,t,i){var n=c(t);if(!s.isMac&&a){if(t.getModifierState&&(t.getModifierState("OS")||t.getModifierState("Win"))&&(n|=8),a.altGr){if(3==(3&n))return;a.altGr=0}if(18===i||17===i){var r="location"in t?t.location:t.keyLocation;if(17===i&&1===r)1==a[i]&&(l=t.timeStamp);else if(18===i&&3===n&&2===r){var h=t.timeStamp-l;h<50&&(a.altGr=!0)}}}if(i in o.MODIFIER_KEYS&&(i=-1),8&n&&i>=91&&i<=93&&(i=-1),!n&&13===i){var r="location"in t?t.location:t.keyLocation;if(3===r&&(e(t,n,-i),t.defaultPrevented))return}if(s.isChromeOS&&8&n){if(e(t,n,i),t.defaultPrevented)return;n&=-9}return!!(n||i in o.FUNCTION_KEYS||i in o.PRINTABLE_KEYS)&&e(t,n,i)}function r(){a=Object.create(null)}var o=e("./keys"),s=e("./useragent"),a=null,l=0;t.addListener=function(e,t,i){if(e.addEventListener)return e.addEventListener(t,i,!1);if(e.attachEvent){var n=function(){i.call(e,window.event)};i._wrapper=n,e.attachEvent("on"+t,n)}},t.removeListener=function(e,t,i){if(e.removeEventListener)return e.removeEventListener(t,i,!1);e.detachEvent&&e.detachEvent("on"+t,i._wrapper||i)},t.stopEvent=function(e){return t.stopPropagation(e),t.preventDefault(e),!1},t.stopPropagation=function(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0},t.preventDefault=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1},t.getButton=function(e){return"dblclick"==e.type?0:"contextmenu"==e.type||s.isMac&&e.ctrlKey&&!e.altKey&&!e.shiftKey?2:e.preventDefault?e.button:{1:0,2:2,4:1}[e.button]},t.capture=function(e,i,n){function r(e){i&&i(e),n&&n(e),t.removeListener(document,"mousemove",i,!0),t.removeListener(document,"mouseup",r,!0),t.removeListener(document,"dragstart",r,!0)}return t.addListener(document,"mousemove",i,!0),t.addListener(document,"mouseup",r,!0),t.addListener(document,"dragstart",r,!0),r},t.addTouchMoveListener=function(e,i){var n,r;t.addListener(e,"touchstart",function(e){var t=e.touches,i=t[0];n=i.clientX,r=i.clientY}),t.addListener(e,"touchmove",function(e){var t=e.touches;if(!(t.length>1)){var o=t[0];e.wheelX=n-o.clientX,e.wheelY=r-o.clientY,n=o.clientX,r=o.clientY,i(e)}})},t.addMouseWheelListener=function(e,i){"onmousewheel"in e?t.addListener(e,"mousewheel",function(e){void 0!==e.wheelDeltaX?(e.wheelX=-e.wheelDeltaX/8,e.wheelY=-e.wheelDeltaY/8):(e.wheelX=0,e.wheelY=-e.wheelDelta/8),i(e)}):"onwheel"in e?t.addListener(e,"wheel",function(e){switch(e.deltaMode){case e.DOM_DELTA_PIXEL:e.wheelX=.35*e.deltaX||0,e.wheelY=.35*e.deltaY||0;break;case e.DOM_DELTA_LINE:case e.DOM_DELTA_PAGE:e.wheelX=5*(e.deltaX||0),e.wheelY=5*(e.deltaY||0)}i(e)}):t.addListener(e,"DOMMouseScroll",function(e){e.axis&&e.axis==e.HORIZONTAL_AXIS?(e.wheelX=5*(e.detail||0),e.wheelY=0):(e.wheelX=0,e.wheelY=5*(e.detail||0)),i(e)})},t.addMultiMouseDownListener=function(e,i,n,r){function o(e){if(0!==t.getButton(e)?d=0:e.detail>1?++d>4&&(d=1):d=1,s.isIE){var o=Math.abs(e.clientX-l)>5||Math.abs(e.clientY-c)>5;h&&!o||(d=1),h&&clearTimeout(h),h=setTimeout(function(){h=null},i[d-1]||600),1==d&&(l=e.clientX,c=e.clientY)}if(e._clicks=d,n[r]("mousedown",e),d>4)d=0;else if(d>1)return n[r](u[d],e)}function a(e){d=2,h&&clearTimeout(h),h=setTimeout(function(){h=null},i[d-1]||600),n[r]("mousedown",e),n[r](u[d],e)}var l,c,h,d=0,u={2:"dblclick",3:"tripleclick",4:"quadclick"};Array.isArray(e)||(e=[e]),e.forEach(function(e){t.addListener(e,"mousedown",o),s.isOldIE&&t.addListener(e,"dblclick",a)})};var c=!s.isMac||!s.isOpera||"KeyboardEvent"in window?function(e){return 0|(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0)}:function(e){return 0|(e.metaKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.ctrlKey?8:0)};if(t.getModifierString=function(e){return o.KEY_MODS[c(e)]},t.addCommandKeyListener=function(e,i){var o=t.addListener;if(s.isOldGecko||s.isOpera&&!("KeyboardEvent"in window)){var l=null;o(e,"keydown",function(e){l=e.keyCode}),o(e,"keypress",function(e){return n(i,e,l)})}else{var c=null;o(e,"keydown",function(e){a[e.keyCode]=(a[e.keyCode]||0)+1;var t=n(i,e,e.keyCode);return c=e.defaultPrevented,t}),o(e,"keypress",function(e){c&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),c=null)}),o(e,"keyup",function(e){a[e.keyCode]=null}),a||(r(),o(window,"focus",r))}},"object"==typeof window&&window.postMessage&&!s.isOldIE){t.nextTick=function(e,i){i=i||window;t.addListener(i,"message",function n(r){"zero-timeout-message-1"==r.data&&(t.stopPropagation(r),t.removeListener(i,"message",n),e())}),i.postMessage("zero-timeout-message-1","*")}}t.nextFrame="object"==typeof window&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}}),ace.define("ace/lib/lang",["require","exports","module"],function(e,t,i){"use strict";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split("").reverse().join("")},t.stringRepeat=function(e,t){for(var i="";t>0;)1&t&&(i+=e),(t>>=1)&&(e+=e);return i};t.stringTrimLeft=function(e){return e.replace(/^\s\s*/,"")},t.stringTrimRight=function(e){return e.replace(/\s\s*$/,"")},t.copyObject=function(e){var t={};for(var i in e)t[i]=e[i];return t},t.copyArray=function(e){for(var t=[],i=0,n=e.length;ip.length?e=e.substr(9):e.substr(0,4)==p.substr(0,4)?e=e.substr(4,e.length-p.length+1):e.charAt(e.length-1)==p.charAt(0)&&(e=e.slice(0,-1)),e==p.charAt(0)||e.charAt(e.length-1)==p.charAt(0)&&(e=e.slice(0,-1)),e&&t.onTextInput(e)),m&&(m=!1),D&&(D=!1))},k=function(e){if(!w){var t=f.value;$(t),d()}},B=function(e,t,i){var n=e.clipboardData||window.clipboardData;if(n&&!c){var r=h||i?"Text":"text/plain";try{return t?!1!==n.setData(r,t):n.getData(r)}catch(e){if(!i)return B(e,t,!0)}}},_=function(e,o){var s=t.getCopyText();if(!s)return n.preventDefault(e);B(e,s)?(r.isIOS&&(g=o,f.value="\n aa"+s+"a a\n",f.setSelectionRange(4,4+s.length),m={value:s}),o?t.onCut():t.onCopy(),r.isIOS||n.preventDefault(e)):(m=!0,f.value=s,f.select(),setTimeout(function(){m=!1,d(),i(),o?t.onCut():t.onCopy()}))},L=function(e){_(e,!0)},R=function(e){_(e,!1)},T=function(e){var o=B(e);"string"==typeof o?(o&&t.onPaste(o,e),r.isIE&&setTimeout(i),n.preventDefault(e)):(f.value="",v=!0)};n.addCommandKeyListener(f,t.onCommandKey.bind(t)),n.addListener(f,"select",x),n.addListener(f,"input",k),n.addListener(f,"cut",L),n.addListener(f,"copy",R),n.addListener(f,"paste",T);var P=function(e){w||!t.onCompositionStart||t.$readOnly||(w={},w.canUndo=t.session.$undoManager,t.onCompositionStart(),setTimeout(M,0),t.on("mousedown",O),w.canUndo&&!t.selection.isEmpty()&&(t.insert(""),t.session.markUndoGroup(),t.selection.clearSelection()),t.session.markUndoGroup())},M=function(){if(w&&t.onCompositionUpdate&&!t.$readOnly){var e=f.value.replace(/\x01/g,"");if(w.lastValue!==e&&(t.onCompositionUpdate(e),w.lastValue&&t.undo(),w.canUndo&&(w.lastValue=e),w.lastValue)){var i=t.selection.getRange();t.insert(w.lastValue),t.session.markUndoGroup(),w.range=t.selection.getRange(),t.selection.setRange(i),t.selection.clearSelection()}}},O=function(e){if(t.onCompositionEnd&&!t.$readOnly){var i=w;w=!1;var n=setTimeout(function(){n=null;var e=f.value.replace(/\x01/g,"");w||(e==i.lastValue?d():!i.lastValue&&e&&(d(),$(e)))});S=function(e){return n&&clearTimeout(n),(e=e.replace(/\x01/g,""))==i.lastValue?"":(i.lastValue&&n&&t.undo(),e)},t.onCompositionEnd(),t.removeListener("mousedown",O),"compositionend"==e.type&&i.range&&t.selection.setRange(i.range);(!!r.isChrome&&r.isChrome>=53||!!r.isWebKit&&r.isWebKit>=603)&&k()}},I=s.delayedCall(M,50);n.addListener(f,"compositionstart",P),r.isGecko?n.addListener(f,"text",function(){I.schedule()}):(n.addListener(f,"keyup",function(){I.schedule()}),n.addListener(f,"keydown",function(){I.schedule()})),n.addListener(f,"compositionend",O),this.getElement=function(){return f},this.setReadOnly=function(e){f.readOnly=e},this.onContextMenu=function(e){D=!0,i(t.selection.isEmpty()),t._emit("nativecontextmenu",{target:t,domEvent:e}),this.moveToMouse(e,!0)},this.moveToMouse=function(e,i){y||(y=f.style.cssText),f.style.cssText=(i?"z-index:100000;":"")+"height:"+f.style.height+";"+(r.isIE?"opacity:0.1;":"");var s=t.container.getBoundingClientRect(),a=o.computedStyle(t.container),l=s.top+(parseInt(a.borderTopWidth)||0),c=s.left+(parseInt(s.borderLeftWidth)||0),h=s.bottom-l-f.clientHeight-2,d=function(e){f.style.left=e.clientX-c-2+"px",f.style.top=Math.min(e.clientY-l-2,h)+"px"};d(e),"mousedown"==e.type&&(t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=null),clearTimeout(N),r.isWin&&n.capture(t.container,d,u))},this.onContextMenuClose=u;var N,j=function(e){t.textInput.onContextMenu(e),u()};if(n.addListener(f,"mouseup",j),n.addListener(f,"mousedown",function(e){e.preventDefault(),u()}),n.addListener(t.renderer.scroller,"contextmenu",j),n.addListener(f,"contextmenu",j),r.isIOS){var H=null,W=!1;e.addEventListener("keydown",function(e){H&&clearTimeout(H),W=!0}),e.addEventListener("keyup",function(e){H=setTimeout(function(){W=!1},100)});var V=function(e){if(document.activeElement===f&&!W){if(g)return setTimeout(function(){g=!1},100);var i=f.selectionStart,n=f.selectionEnd;if(f.setSelectionRange(4,5),i==n)switch(i){case 0:t.onCommandKey(null,0,a.up);break;case 1:t.onCommandKey(null,0,a.home);break;case 2:t.onCommandKey(null,l.option,a.left);break;case 4:t.onCommandKey(null,0,a.left);break;case 5:t.onCommandKey(null,0,a.right);break;case 7:t.onCommandKey(null,l.option,a.right);break;case 8:t.onCommandKey(null,0,a.end);break;case 9:t.onCommandKey(null,0,a.down)}else{switch(n){case 6:t.onCommandKey(null,l.shift,a.right);break;case 7:t.onCommandKey(null,l.shift|l.option,a.right);break;case 8:t.onCommandKey(null,l.shift,a.end);break;case 9:t.onCommandKey(null,l.shift,a.down)}switch(i){case 0:t.onCommandKey(null,l.shift,a.up);break;case 1:t.onCommandKey(null,l.shift,a.home);break;case 2:t.onCommandKey(null,l.shift|l.option,a.left);break;case 3:t.onCommandKey(null,l.shift,a.left)}}}};document.addEventListener("selectionchange",V),t.on("destroy",function(){document.removeEventListener("selectionchange",V)})}};t.TextInput=d}),ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/keyboard/textinput_ios"],function(e,t,i){"use strict";var n=e("../lib/event"),r=e("../lib/useragent"),o=e("../lib/dom"),s=e("../lib/lang"),a=r.isChrome<18,l=r.isIE,c=e("./textinput_ios").TextInput,h=function(e,t){function i(e){if(!g){if(g=!0,F)var t=0,i=e?0:u.value.length-1;else var t=e?2:1,i=2;try{u.setSelectionRange(t,i)}catch(e){}g=!1}}function h(){g||(u.value=f,r.isWebKit&&C.schedule())}function d(){clearTimeout(O),O=setTimeout(function(){v&&(u.style.cssText=v,v=""),null==t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=!0,t.renderer.$moveTextAreaToCursor())},0)}if(r.isIOS)return c.call(this,e,t);var u=o.createElement("textarea");u.className="ace_text-input",u.setAttribute("wrap","off"),u.setAttribute("autocorrect","off"),u.setAttribute("autocapitalize","off"),u.setAttribute("spellcheck",!1),u.style.opacity="0",e.insertBefore(u,e.firstChild);var f="\u2028\u2028",p=!1,m=!1,g=!1,v="",w=!0;try{var y=document.activeElement===u}catch(e){}n.addListener(u,"blur",function(e){t.onBlur(e),y=!1}),n.addListener(u,"focus",function(e){y=!0,t.onFocus(e),i()}),this.focus=function(){if(v)return u.focus();var e=u.style.top;u.style.position="fixed",u.style.top="0px",u.focus(),setTimeout(function(){u.style.position="","0px"==u.style.top&&(u.style.top=e)},0)},this.blur=function(){u.blur()},this.isFocused=function(){return y};var A=s.delayedCall(function(){y&&i(w)}),C=s.delayedCall(function(){g||(u.value=f,y&&i())});r.isWebKit||t.addEventListener("changeSelection",function(){t.selection.isEmpty()!=w&&(w=!w,A.schedule())}),h(),y&&t.onFocus();var b=function(e){return 0===e.selectionStart&&e.selectionEnd===e.value.length},E=function(e){p?p=!1:b(u)?(t.selectAll(),i()):F&&i(t.selection.isEmpty())},F=null;this.setInputHandler=function(e){F=e},this.getInputHandler=function(){return F};var x=!1,S=function(e){F&&(e=F(e),F=null),m?(i(),e&&t.onPaste(e),m=!1):e==f.charAt(0)?x?t.execCommand("del",{source:"ace"}):t.execCommand("backspace",{source:"ace"}):(e.substring(0,2)==f?e=e.substr(2):e.charAt(0)==f.charAt(0)?e=e.substr(1):e.charAt(e.length-1)==f.charAt(0)&&(e=e.slice(0,-1)),e.charAt(e.length-1)==f.charAt(0)&&(e=e.slice(0,-1)),e&&t.onTextInput(e)),x&&(x=!1)},D=function(e){if(!g){var t=u.value;S(t),h()}},$=function(e,t,i){var n=e.clipboardData||window.clipboardData;if(n&&!a){var r=l||i?"Text":"text/plain";try{return t?!1!==n.setData(r,t):n.getData(r)}catch(e){if(!i)return $(e,t,!0)}}},k=function(e,r){var o=t.getCopyText();if(!o)return n.preventDefault(e);$(e,o)?(r?t.onCut():t.onCopy(),n.preventDefault(e)):(p=!0,u.value=o,u.select(),setTimeout(function(){p=!1,h(),i(),r?t.onCut():t.onCopy()}))},B=function(e){k(e,!0)},_=function(e){k(e,!1)},L=function(e){var o=$(e);"string"==typeof o?(o&&t.onPaste(o,e),r.isIE&&setTimeout(i),n.preventDefault(e)):(u.value="",m=!0)};n.addCommandKeyListener(u,t.onCommandKey.bind(t)),n.addListener(u,"select",E),n.addListener(u,"input",D),n.addListener(u,"cut",B),n.addListener(u,"copy",_),n.addListener(u,"paste",L),"oncut"in u&&"oncopy"in u&&"onpaste"in u||n.addListener(e,"keydown",function(e){if((!r.isMac||e.metaKey)&&e.ctrlKey)switch(e.keyCode){case 67:_(e);break;case 86:L(e);break;case 88:B(e)}});var R=function(e){g||!t.onCompositionStart||t.$readOnly||(g={},g.canUndo=t.session.$undoManager,t.onCompositionStart(),setTimeout(T,0),t.on("mousedown",P),g.canUndo&&!t.selection.isEmpty()&&(t.insert(""),t.session.markUndoGroup(),t.selection.clearSelection()),t.session.markUndoGroup())},T=function(){if(g&&t.onCompositionUpdate&&!t.$readOnly){var e=u.value.replace(/\u2028/g,"");if(g.lastValue!==e&&(t.onCompositionUpdate(e),g.lastValue&&t.undo(),g.canUndo&&(g.lastValue=e),g.lastValue)){var i=t.selection.getRange();t.insert(g.lastValue),t.session.markUndoGroup(),g.range=t.selection.getRange(),t.selection.setRange(i),t.selection.clearSelection()}}},P=function(e){if(t.onCompositionEnd&&!t.$readOnly){var i=g;g=!1;var n=setTimeout(function(){n=null;var e=u.value.replace(/\u2028/g,"");g||(e==i.lastValue?h():!i.lastValue&&e&&(h(),S(e)))});F=function(e){return n&&clearTimeout(n),(e=e.replace(/\u2028/g,""))==i.lastValue?"":(i.lastValue&&n&&t.undo(),e)},t.onCompositionEnd(),t.removeListener("mousedown",P),"compositionend"==e.type&&i.range&&t.selection.setRange(i.range);(!!r.isChrome&&r.isChrome>=53||!!r.isWebKit&&r.isWebKit>=603)&&D()}},M=s.delayedCall(T,50);n.addListener(u,"compositionstart",R),r.isGecko?n.addListener(u,"text",function(){M.schedule()}):(n.addListener(u,"keyup",function(){M.schedule()}),n.addListener(u,"keydown",function(){M.schedule()})),n.addListener(u,"compositionend",P),this.getElement=function(){return u},this.setReadOnly=function(e){u.readOnly=e},this.onContextMenu=function(e){x=!0,i(t.selection.isEmpty()),t._emit("nativecontextmenu",{target:t,domEvent:e}),this.moveToMouse(e,!0)},this.moveToMouse=function(e,i){v||(v=u.style.cssText),u.style.cssText=(i?"z-index:100000;":"")+"height:"+u.style.height+";"+(r.isIE?"opacity:0.1;":"");var s=t.container.getBoundingClientRect(),a=o.computedStyle(t.container),l=s.top+(parseInt(a.borderTopWidth)||0),c=s.left+(parseInt(s.borderLeftWidth)||0),h=s.bottom-l-u.clientHeight-2,f=function(e){u.style.left=e.clientX-c-2+"px",u.style.top=Math.min(e.clientY-l-2,h)+"px"};f(e),"mousedown"==e.type&&(t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=null),clearTimeout(O),r.isWin&&n.capture(t.container,f,d))},this.onContextMenuClose=d;var O,I=function(e){t.textInput.onContextMenu(e),d()};n.addListener(u,"mouseup",I),n.addListener(u,"mousedown",function(e){e.preventDefault(),d()}),n.addListener(t.renderer.scroller,"contextmenu",I),n.addListener(u,"contextmenu",I)};t.TextInput=h}),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,i){"use strict";function n(e){e.$clickSelection=null;var t=e.editor;t.setDefaultHandler("mousedown",this.onMouseDown.bind(e)),t.setDefaultHandler("dblclick",this.onDoubleClick.bind(e)),t.setDefaultHandler("tripleclick",this.onTripleClick.bind(e)),t.setDefaultHandler("quadclick",this.onQuadClick.bind(e)),t.setDefaultHandler("mousewheel",this.onMouseWheel.bind(e)),t.setDefaultHandler("touchmove",this.onTouchMove.bind(e)),["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"].forEach(function(t){e[t]=this[t]},this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}function r(e,t,i,n){return Math.sqrt(Math.pow(i-e,2)+Math.pow(n-t,2))}function o(e,t){if(e.start.row==e.end.row)var i=2*t.column-e.start.column-e.end.column;else if(e.start.row!=e.end.row-1||e.start.column||e.end.column)var i=2*t.row-e.start.row-e.end.row;else var i=t.column-4;return i<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}var s=(e("../lib/dom"),e("../lib/event"),e("../lib/useragent"));(function(){this.onMouseDown=function(e){var t=e.inSelection(),i=e.getDocumentPosition();this.mousedownEvent=e;var n=this.editor,r=e.getButton();if(0!==r){var o=n.getSelectionRange(),a=o.isEmpty();return n.$blockScrolling++,(a||1==r)&&n.selection.moveToPosition(i),n.$blockScrolling--,void(2==r&&(n.textInput.onContextMenu(e.domEvent),s.isMozilla||e.preventDefault()))}return this.mousedownEvent.time=Date.now(),!t||n.isFocused()||(n.focus(),!this.$focusTimout||this.$clickSelection||n.inMultiSelectMode)?(this.captureMouse(e),this.startSelect(i,e.domEvent._clicks>1),e.preventDefault()):(this.setState("focusWait"),void this.captureMouse(e))},this.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var i=this.editor;i.$blockScrolling++,this.mousedownEvent.getShiftKey()?i.selection.selectToPosition(e):t||i.selection.moveToPosition(e),t||this.select(),i.renderer.scroller.setCapture&&i.renderer.scroller.setCapture(),i.setStyle("ace_selecting"),this.setState("select"),i.$blockScrolling--},this.select=function(){var e,t=this.editor,i=t.renderer.screenToTextCoordinates(this.x,this.y);if(t.$blockScrolling++,this.$clickSelection){var n=this.$clickSelection.comparePoint(i);if(-1==n)e=this.$clickSelection.end;else if(1==n)e=this.$clickSelection.start;else{var r=o(this.$clickSelection,i);i=r.cursor,e=r.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(i),t.$blockScrolling--,t.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(e){var t,i=this.editor,n=i.renderer.screenToTextCoordinates(this.x,this.y),r=i.selection[e](n.row,n.column);if(i.$blockScrolling++,this.$clickSelection){var s=this.$clickSelection.comparePoint(r.start),a=this.$clickSelection.comparePoint(r.end);if(-1==s&&a<=0)t=this.$clickSelection.end,r.end.row==n.row&&r.end.column==n.column||(n=r.start);else if(1==a&&s>=0)t=this.$clickSelection.start,r.start.row==n.row&&r.start.column==n.column||(n=r.end);else if(-1==s&&1==a)n=r.end,t=r.start;else{var l=o(this.$clickSelection,n);n=l.cursor,t=l.anchor}i.selection.setSelectionAnchor(t.row,t.column)}i.selection.selectToPosition(n),i.$blockScrolling--,i.renderer.scrollCursorIntoView()},this.selectEnd=this.selectAllEnd=this.selectByWordsEnd=this.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting"),this.editor.renderer.scroller.releaseCapture&&this.editor.renderer.scroller.releaseCapture()},this.focusWait=function(){var e=r(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),t=Date.now();(e>0||t-this.mousedownEvent.time>this.$focusTimout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.onDoubleClick=function(e){var t=e.getDocumentPosition(),i=this.editor,n=i.session,r=n.getBracketRange(t);r?(r.isEmpty()&&(r.start.column--,r.end.column++),this.setState("select")):(r=i.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=r,this.select()},this.onTripleClick=function(e){var t=e.getDocumentPosition(),i=this.editor;this.setState("selectByLines");var n=i.getSelectionRange();n.isMultiLine()&&n.contains(t.row,t.column)?(this.$clickSelection=i.selection.getLineRange(n.start.row),this.$clickSelection.end=i.selection.getLineRange(n.end.row).end):this.$clickSelection=i.selection.getLineRange(t.row),this.select()},this.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("selectAll")},this.onMouseWheel=function(e){if(!e.getAccelKey()){e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var i=this.$lastScroll,n=e.domEvent.timeStamp,r=n-i.t,o=e.wheelX/r,s=e.wheelY/r;r<250&&(o=(o+i.vx)/2,s=(s+i.vy)/2);var a=Math.abs(o/s),l=!1;if(a>=1&&t.renderer.isScrollableBy(e.wheelX*e.speed,0)&&(l=!0),a<=1&&t.renderer.isScrollableBy(0,e.wheelY*e.speed)&&(l=!0),l)i.allowed=n;else if(n-i.allowed<250){var c=Math.abs(o)<=1.1*Math.abs(i.vx)&&Math.abs(s)<=1.1*Math.abs(i.vy);c?(l=!0,i.allowed=n):i.allowed=0}return i.t=n,i.vx=o,i.vy=s,l?(t.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()):void 0}},this.onTouchMove=function(e){this.editor._emit("mousewheel",e)}}).call(n.prototype),t.DefaultHandlers=n}),ace.define("ace/tooltip",["require","exports","module","ace/lib/oop","ace/lib/dom"],function(e,t,i){"use strict";function n(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}var r=(e("./lib/oop"),e("./lib/dom"));(function(){this.$init=function(){return this.$element=r.createElement("div"),this.$element.className="ace_tooltip",this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},this.getElement=function(){return this.$element||this.$init()},this.setText=function(e){r.setInnerText(this.getElement(),e)},this.setHtml=function(e){this.getElement().innerHTML=e},this.setPosition=function(e,t){this.getElement().style.left=e+"px",this.getElement().style.top=t+"px"},this.setClassName=function(e){r.addCssClass(this.getElement(),e)},this.show=function(e,t,i){null!=e&&this.setText(e),null!=t&&null!=i&&this.setPosition(t,i),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},this.hide=function(){this.isOpen&&(this.getElement().style.display="none",this.isOpen=!1)},this.getHeight=function(){return this.getElement().offsetHeight},this.getWidth=function(){return this.getElement().offsetWidth},this.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)}}).call(n.prototype),t.Tooltip=n}),ace.define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event","ace/tooltip"],function(e,t,i){"use strict";function n(e){function t(){var t=d.getDocumentPosition().row,r=l.$annotations[t];if(!r)return i();if(t==s.session.getLength()){var o=s.renderer.pixelToScreenCoordinates(0,d.y).row,a=d.$pos;if(o>s.session.documentToScreenRow(a.row,a.column))return i()}if(u!=r)if(u=r.text.join("
"),c.setHtml(u),c.show(),s._signal("showGutterTooltip",c),s.on("mousewheel",i),e.$tooltipFollowsMouse)n(d);else{var h=d.domEvent.target,f=h.getBoundingClientRect(),p=c.getElement().style;p.left=f.right+"px",p.top=f.bottom+"px"}}function i(){h&&(h=clearTimeout(h)),u&&(c.hide(),u=null,s._signal("hideGutterTooltip",c),s.removeEventListener("mousewheel",i))}function n(e){c.setPosition(e.x,e.y)}var s=e.editor,l=s.renderer.$gutterLayer,c=new r(s.container);e.editor.setDefaultHandler("guttermousedown",function(t){if(s.isFocused()&&0==t.getButton()){if("foldWidgets"!=l.getRegion(t)){var i=t.getDocumentPosition().row,n=s.session.selection;if(t.getShiftKey())n.selectTo(i,0);else{if(2==t.domEvent.detail)return s.selectAll(),t.preventDefault();e.$clickSelection=s.selection.getLineRange(i)}return e.setState("selectByLines"),e.captureMouse(t),t.preventDefault()}}});var h,d,u;e.editor.setDefaultHandler("guttermousemove",function(r){var s=r.domEvent.target||r.domEvent.srcElement;if(o.hasCssClass(s,"ace_fold-widget"))return i();u&&e.$tooltipFollowsMouse&&n(r),d=r,h||(h=setTimeout(function(){h=null,d&&!e.isMousePressed?t():i()},50))}),a.addListener(s.renderer.$gutter,"mouseout",function(e){d=null,u&&!h&&(h=setTimeout(function(){h=null,i()},50))}),s.on("changeSession",i)}function r(e){l.call(this,e)}var o=e("../lib/dom"),s=e("../lib/oop"),a=e("../lib/event"),l=e("../tooltip").Tooltip;s.inherits(r,l),function(){this.setPosition=function(e,t){var i=window.innerWidth||document.documentElement.clientWidth,n=window.innerHeight||document.documentElement.clientHeight,r=this.getWidth(),o=this.getHeight();e+=15,t+=15,e+r>i&&(e-=e+r-i),t+o>n&&(t-=20+o),l.prototype.setPosition.call(this,e,t)}}.call(r.prototype),t.GutterHandler=n}),ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(e,t,i){"use strict";var n=e("../lib/event"),r=e("../lib/useragent"),o=t.MouseEvent=function(e,t){this.domEvent=e,this.editor=t,this.x=this.clientX=e.clientX,this.y=this.clientY=e.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){n.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){n.preventDefault(this.domEvent),this.defaultPrevented=!0},this.stop=function(){this.stopPropagation(),this.preventDefault()},this.getDocumentPosition=function(){return this.$pos?this.$pos:(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY),this.$pos)},this.inSelection=function(){if(null!==this.$inSelection)return this.$inSelection;var e=this.editor,t=e.getSelectionRange();if(t.isEmpty())this.$inSelection=!1;else{var i=this.getDocumentPosition();this.$inSelection=t.contains(i.row,i.column)}return this.$inSelection},this.getButton=function(){return n.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=r.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}).call(o.prototype)}),ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,i){"use strict";function n(e){function t(e,t){var i=Date.now(),n=!t||e.row!=t.row,o=!t||e.column!=t.column;if(!D||n||o)g.$blockScrolling+=1,g.moveCursorToPosition(e),g.$blockScrolling-=1,D=i,$={x:y,y:A};else{r($.x,$.y,y,A)>h?D=null:i-D>=c&&(g.renderer.scrollCursorIntoView(),D=null)}}function i(e,t){var i=Date.now(),n=g.renderer.layerConfig.lineHeight,r=g.renderer.layerConfig.characterWidth,o=g.renderer.scroller.getBoundingClientRect(),s={x:{left:y-o.left,right:o.right-y},y:{top:A-o.top,bottom:o.bottom-A}},a=Math.min(s.x.left,s.x.right),c=Math.min(s.y.top,s.y.bottom),h={row:e.row,column:e.column};a/r<=2&&(h.column+=s.x.left=l&&g.renderer.scrollCursorIntoView(h):S=i:S=null}function n(){var e=E;E=g.renderer.screenToTextCoordinates(y,A),t(E,e),i(E,e)}function d(){b=g.selection.toOrientedRange(),w=g.session.addMarker(b,"ace_selection",g.getSelectionStyle()),g.clearSelection(),g.isFocused()&&g.renderer.$cursorLayer.setBlinking(!1),clearInterval(C),n(),C=setInterval(n,20),B=0,s.addListener(document,"mousemove",f)}function u(){clearInterval(C),g.session.removeMarker(w),w=null,g.$blockScrolling+=1,g.selection.fromOrientedRange(b),g.$blockScrolling-=1,g.isFocused()&&!x&&g.renderer.$cursorLayer.setBlinking(!g.getReadOnly()),b=null,E=null,B=0,S=null,D=null,s.removeListener(document,"mousemove",f)}function f(){null==_&&(_=setTimeout(function(){null!=_&&w&&u()},20))}function p(e){var t=e.types;return!t||Array.prototype.some.call(t,function(e){return"text/plain"==e||"Text"==e})}function m(e){var t=["copy","copymove","all","uninitialized"],i=["move","copymove","linkmove","all","uninitialized"],n=a.isMac?e.altKey:e.ctrlKey,r="uninitialized";try{r=e.dataTransfer.effectAllowed.toLowerCase()}catch(e){}var o="none";return n&&t.indexOf(r)>=0?o="copy":i.indexOf(r)>=0?o="move":t.indexOf(r)>=0&&(o="copy"),o}var g=e.editor,v=o.createElement("img");v.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",a.isOpera&&(v.style.cssText="width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;"),["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"].forEach(function(t){e[t]=this[t]},this),g.addEventListener("mousedown",this.onMouseDown.bind(e));var w,y,A,C,b,E,F,x,S,D,$,k=g.container,B=0;this.onDragStart=function(e){if(this.cancelDrag||!k.draggable){var t=this;return setTimeout(function(){t.startSelect(),t.captureMouse(e)},0),e.preventDefault()}b=g.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=g.getReadOnly()?"copy":"copyMove",a.isOpera&&(g.container.appendChild(v),v.scrollTop=0),i.setDragImage&&i.setDragImage(v,0,0),a.isOpera&&g.container.removeChild(v),i.clearData(),i.setData("Text",g.session.getTextRange()),x=!0,this.setState("drag")},this.onDragEnd=function(e){if(k.draggable=!1,x=!1,this.setState(null),!g.getReadOnly()){var t=e.dataTransfer.dropEffect;F||"move"!=t||g.session.remove(g.getSelectionRange()),g.renderer.$cursorLayer.setBlinking(!0)}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){if(!g.getReadOnly()&&p(e.dataTransfer))return y=e.clientX,A=e.clientY,w||d(),B++,e.dataTransfer.dropEffect=F=m(e),s.preventDefault(e)},this.onDragOver=function(e){if(!g.getReadOnly()&&p(e.dataTransfer))return y=e.clientX,A=e.clientY,w||(d(),B++),null!==_&&(_=null),e.dataTransfer.dropEffect=F=m(e),s.preventDefault(e)},this.onDragLeave=function(e){if(--B<=0&&w)return u(),F=null,s.preventDefault(e)},this.onDrop=function(e){if(E){var t=e.dataTransfer;if(x)switch(F){case"move":b=b.contains(E.row,E.column)?{start:E,end:E}:g.moveText(b,E);break;case"copy":b=g.moveText(b,E,!0)}else{var i=t.getData("Text");b={start:E,end:g.session.insert(E,i)},g.focus(),F=null}return u(),s.preventDefault(e)}},s.addListener(k,"dragstart",this.onDragStart.bind(e)),s.addListener(k,"dragend",this.onDragEnd.bind(e)),s.addListener(k,"dragenter",this.onDragEnter.bind(e)),s.addListener(k,"dragover",this.onDragOver.bind(e)),s.addListener(k,"dragleave",this.onDragLeave.bind(e)),s.addListener(k,"drop",this.onDrop.bind(e));var _=null}function r(e,t,i,n){return Math.sqrt(Math.pow(i-e,2)+Math.pow(n-t,2))}var o=e("../lib/dom"),s=e("../lib/event"),a=e("../lib/useragent"),l=200,c=200,h=5;(function(){this.dragWait=function(){Date.now()-this.mousedownEvent.time>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){this.editor.container.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly()),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor;e.container.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var t=a.isWin?"default":"move";e.renderer.setCursorStyle(t),this.setState("dragReady")},this.onMouseDrag=function(e){var t=this.editor.container;if(a.isIE&&"dragReady"==this.state){var i=r(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);i>3&&t.dragDrop()}if("dragWait"===this.state){var i=r(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);i>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(e){if(this.$dragEnabled){this.mousedownEvent=e;var t=this.editor,i=e.inSelection(),n=e.getButton();if(1===(e.domEvent.detail||1)&&0===n&&i){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var r=e.domEvent.target||e.domEvent.srcElement;if("unselectable"in r&&(r.unselectable="on"),t.getDragDelay()){if(a.isWebKit){this.cancelDrag=!0;t.container.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}}).call(n.prototype),t.DragdropHandler=n}),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(e,t,i){"use strict";var n=e("./dom");t.get=function(e,t){var i=new XMLHttpRequest;i.open("GET",e,!0),i.onreadystatechange=function(){4===i.readyState&&t(i.responseText)},i.send(null)},t.loadScript=function(e,t){var i=n.getDocumentHead(),r=document.createElement("script");r.src=e,i.appendChild(r),r.onload=r.onreadystatechange=function(e,i){!i&&r.readyState&&"loaded"!=r.readyState&&"complete"!=r.readyState||(r=r.onload=r.onreadystatechange=null,i||t())}},t.qualifyURL=function(e){var t=document.createElement("a");return t.href=e,t.href}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(e,t,i){"use strict";var n={},r=function(){this.propagationStopped=!0},o=function(){this.defaultPrevented=!0};n._emit=n._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var i=this._eventRegistry[e]||[],n=this._defaultHandlers[e];if(i.length||n){"object"==typeof t&&t||(t={}),t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=r),t.preventDefault||(t.preventDefault=o),i=i.slice();for(var s=0;s1&&(r=i[i.length-2]);var s=h[t+"Path"];return null==s?s=h.basePath:"/"==n&&(t=n=""),s&&"/"!=s.slice(-1)&&(s+="/"),s+t+n+r+this.get("suffix")},t.setModuleUrl=function(e,t){return h.$moduleUrls[e]=t},t.$loading={},t.loadModule=function(i,n){var r,o;Array.isArray(i)&&(o=i[0],i=i[1]);try{r=e(i)}catch(e){}if(r&&!t.$loading[i])return n&&n(r);if(t.$loading[i]||(t.$loading[i]=[]),t.$loading[i].push(n),!(t.$loading[i].length>1)){var s=function(){e([i],function(e){t._emit("load.module",{name:i,module:e});var n=t.$loading[i];t.$loading[i]=null,n.forEach(function(t){t&&t(e)})})};if(!t.get("packaged"))return s();a.loadScript(t.moduleUrl(i,o),s)}},r(!0),t.init=r}),ace.define("ace/mouse/mouse_handler",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/mouse/default_handlers","ace/mouse/default_gutter_handler","ace/mouse/mouse_event","ace/mouse/dragdrop_handler","ace/config"],function(e,t,i){"use strict";var n=e("../lib/event"),r=e("../lib/useragent"),o=e("./default_handlers").DefaultHandlers,s=e("./default_gutter_handler").GutterHandler,a=e("./mouse_event").MouseEvent,l=e("./dragdrop_handler").DragdropHandler,c=e("../config"),h=function(e){var t=this;this.editor=e,new o(this),new s(this),new l(this);var i=function(t){(!document.hasFocus||!document.hasFocus()||!e.isFocused()&&document.activeElement==(e.textInput&&e.textInput.getElement()))&&window.focus(),e.focus()},a=e.renderer.getMouseEventTarget();n.addListener(a,"click",this.onMouseEvent.bind(this,"click")),n.addListener(a,"mousemove",this.onMouseMove.bind(this,"mousemove")),n.addMultiMouseDownListener([a,e.renderer.scrollBarV&&e.renderer.scrollBarV.inner,e.renderer.scrollBarH&&e.renderer.scrollBarH.inner,e.textInput&&e.textInput.getElement()].filter(Boolean),[400,300,250],this,"onMouseEvent"),n.addMouseWheelListener(e.container,this.onMouseWheel.bind(this,"mousewheel")),n.addTouchMoveListener(e.container,this.onTouchMove.bind(this,"touchmove"));var c=e.renderer.$gutter;n.addListener(c,"mousedown",this.onMouseEvent.bind(this,"guttermousedown")),n.addListener(c,"click",this.onMouseEvent.bind(this,"gutterclick")),n.addListener(c,"dblclick",this.onMouseEvent.bind(this,"gutterdblclick")),n.addListener(c,"mousemove",this.onMouseEvent.bind(this,"guttermousemove")),n.addListener(a,"mousedown",i),n.addListener(c,"mousedown",i),r.isIE&&e.renderer.scrollBarV&&(n.addListener(e.renderer.scrollBarV.element,"mousedown",i),n.addListener(e.renderer.scrollBarH.element,"mousedown",i)),e.on("mousemove",function(i){if(!t.state&&!t.$dragDelay&&t.$dragEnabled){var n=e.renderer.screenToTextCoordinates(i.x,i.y),r=e.session.selection.getRange(),o=e.renderer;!r.isEmpty()&&r.insideStart(n.row,n.column)?o.setCursorStyle("default"):o.setCursorStyle("")}})};(function(){this.onMouseEvent=function(e,t){this.editor._emit(e,new a(t,this.editor))},this.onMouseMove=function(e,t){var i=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;i&&i.length&&this.editor._emit(e,new a(t,this.editor))},this.onMouseWheel=function(e,t){var i=new a(t,this.editor);i.speed=2*this.$scrollSpeed,i.wheelX=t.wheelX,i.wheelY=t.wheelY,this.editor._emit(e,i)},this.onTouchMove=function(e,t){var i=new a(t,this.editor);i.speed=1,i.wheelX=t.wheelX,i.wheelY=t.wheelY,this.editor._emit(e,i)},this.setState=function(e){this.state=e},this.captureMouse=function(e,t){this.x=e.x,this.y=e.y,this.isMousePressed=!0;var i=this.editor.renderer;i.$keepTextAreaAtCursor&&(i.$keepTextAreaAtCursor=null);var o=this,s=function(e){if(e){if(r.isWebKit&&!e.which&&o.releaseMouse)return o.releaseMouse();o.x=e.clientX,o.y=e.clientY,t&&t(e),o.mouseEvent=new a(e,o.editor),o.$mouseMoved=!0}},l=function(e){clearInterval(h),c(),o[o.state+"End"]&&o[o.state+"End"](e),o.state="",null==i.$keepTextAreaAtCursor&&(i.$keepTextAreaAtCursor=!0,i.$moveTextAreaToCursor()),o.isMousePressed=!1,o.$onCaptureMouseMove=o.releaseMouse=null,e&&o.onMouseEvent("mouseup",e)},c=function(){o[o.state]&&o[o.state](),o.$mouseMoved=!1};if(r.isOldIE&&"dblclick"==e.domEvent.type)return setTimeout(function(){l(e)});o.$onCaptureMouseMove=s,o.releaseMouse=n.capture(this.editor.container,s,l);var h=setInterval(c,20)},this.releaseMouse=null,this.cancelContextMenu=function(){var e=function(t){t&&t.domEvent&&"contextmenu"!=t.domEvent.type||(this.editor.off("nativecontextmenu",e),t&&t.domEvent&&n.stopEvent(t.domEvent))}.bind(this);setTimeout(e,10),this.editor.on("nativecontextmenu",e)}}).call(h.prototype),c.defineOptions(h.prototype,"mouseHandler",{scrollSpeed:{initialValue:2},dragDelay:{initialValue:r.isMac?150:0},dragEnabled:{initialValue:!0},focusTimout:{initialValue:0},tooltipFollowsMouse:{initialValue:!0}}),t.MouseHandler=h}),ace.define("ace/mouse/fold_handler",["require","exports","module"],function(e,t,i){"use strict";function n(e){e.on("click",function(t){var i=t.getDocumentPosition(),n=e.session,r=n.getFoldAt(i.row,i.column,1);r&&(t.getAccelKey()?n.removeFold(r):n.expandFold(r),t.stop())}),e.on("gutterclick",function(t){if("foldWidgets"==e.renderer.$gutterLayer.getRegion(t)){var i=t.getDocumentPosition().row,n=e.session;n.foldWidgets&&n.foldWidgets[i]&&e.session.onFoldWidgetClick(i,t),e.isFocused()||e.focus(),t.stop()}}),e.on("gutterdblclick",function(t){if("foldWidgets"==e.renderer.$gutterLayer.getRegion(t)){var i=t.getDocumentPosition().row,n=e.session,r=n.getParentFoldRangeData(i,!0),o=r.range||r.firstRange;if(o){i=o.start.row;var s=n.getFoldAt(i,n.getLine(i).length,1);s?n.removeFold(s):(n.addFold("...",o),e.renderer.scrollCursorIntoView({row:o.start.row,column:0}))}t.stop()}})}t.FoldHandler=n}),ace.define("ace/keyboard/keybinding",["require","exports","module","ace/lib/keys","ace/lib/event"],function(e,t,i){"use strict";var n=e("../lib/keys"),r=e("../lib/event"),o=function(e){this.$editor=e,this.$data={editor:e},this.$handlers=[],this.setDefaultHandler(e.commands)};(function(){this.setDefaultHandler=function(e){this.removeKeyboardHandler(this.$defaultHandler),this.$defaultHandler=e,this.addKeyboardHandler(e,0)},this.setKeyboardHandler=function(e){var t=this.$handlers;if(t[t.length-1]!=e){for(;t[t.length-1]&&t[t.length-1]!=this.$defaultHandler;)this.removeKeyboardHandler(t[t.length-1]);this.addKeyboardHandler(e,1)}},this.addKeyboardHandler=function(e,t){if(e){"function"!=typeof e||e.handleKeyboard||(e.handleKeyboard=e);var i=this.$handlers.indexOf(e);-1!=i&&this.$handlers.splice(i,1),void 0==t?this.$handlers.push(e):this.$handlers.splice(t,0,e),-1==i&&e.attach&&e.attach(this.$editor)}},this.removeKeyboardHandler=function(e){var t=this.$handlers.indexOf(e);return-1!=t&&(this.$handlers.splice(t,1),e.detach&&e.detach(this.$editor),!0)},this.getKeyboardHandler=function(){return this.$handlers[this.$handlers.length-1]},this.getStatusText=function(){var e=this.$data,t=e.editor;return this.$handlers.map(function(i){return i.getStatusText&&i.getStatusText(t,e)||""}).filter(Boolean).join(" ")},this.$callKeyboardHandlers=function(e,t,i,n){for(var o,s=!1,a=this.$editor.commands,l=this.$handlers.length;l--&&!((o=this.$handlers[l].handleKeyboard(this.$data,e,t,i,n))&&o.command&&(s="null"==o.command||a.exec(o.command,this.$editor,o.args,n),s&&n&&-1!=e&&1!=o.passEvent&&1!=o.command.passEvent&&r.stopEvent(n),s)););return s||-1!=e||(o={command:"insertstring"},s=a.exec("insertstring",this.$editor,t)),s&&this.$editor._signal&&this.$editor._signal("keyboardActivity",o),s},this.onCommandKey=function(e,t,i){var r=n.keyCodeToString(i);this.$callKeyboardHandlers(t,r,i,e)},this.onTextInput=function(e){this.$callKeyboardHandlers(-1,e)}}).call(o.prototype),t.KeyBinding=o}),ace.define("ace/lib/bidiutil",["require","exports","module"],function(e,t,i){"use strict";function n(e,t,i,n){var r=a?p:f,m=null,g=null,v=null,w=0,y=null,A=-1,E=null,x=null,S=[];if(!n)for(E=0,n=[];E0)if(16==y){for(E=A;E-1){for(E=A;E=0&&n[D]==F;D--)t[D]=a}}function r(e,t,i){if(!(l=e){for(n=h+1;n=e;)n++;for(r=h,o=n-1;r=t.length||(r=i[n-1])!=w&&r!=y||(o=t[n+1])!=w&&o!=y?A:(c&&(o=y),o==r?o:A);case S:return r=n>0?i[n-1]:C,r==w&&n+10&&i[n-1]==w)return w;if(c)return A;for(l=n+1,s=t.length;l=1425&&p<=2303||64286==p;if(r=t[l],m&&(r==v||r==E))return v}return n<1||(r=t[n-1])==C?A:i[n-1];case C:return c=!1,d=!0,a;case b:return u=!0,A;case k:case B:case L:case R:case _:c=!1;case T:return A}}function s(e){var t=e.charCodeAt(0),i=t>>8;return 0==i?t>191?g:P[t]:5==i?/[\u0591-\u05f4]/.test(e)?v:g:6==i?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(e)?$:/[\u0660-\u0669\u066b-\u066c]/.test(e)?y:1642==t?D:/[\u06f0-\u06f9]/.test(e)?w:E:32==i&&t<=8287?M[255&t]:254==i&&t>=65136?E:A}var a=0,l=0,c=!1,h=!1,d=!1,u=!1,f=[[0,3,0,1,0,0,0],[0,3,0,1,2,2,0],[0,3,0,17,2,0,1],[0,3,5,5,4,1,0],[0,3,21,21,4,0,1],[0,3,5,5,4,2,0]],p=[[2,0,1,1,0,1,0],[2,0,1,1,0,2,0],[2,0,2,1,3,2,0],[2,0,2,33,3,1,1]],m=1,g=0,v=1,w=2,y=3,A=4,C=5,b=6,E=7,F=8,x=9,S=10,D=11,$=12,k=13,B=14,_=15,L=16,R=17,T=18,P=[T,T,T,T,T,T,T,T,T,b,C,b,F,C,T,T,T,T,T,T,T,T,T,T,T,T,T,T,C,C,C,b,F,A,A,D,D,D,A,A,A,A,A,S,x,S,x,x,w,w,w,w,w,w,w,w,w,w,x,A,A,A,A,A,A,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,A,A,A,A,A,A,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,A,A,A,A,T,T,T,T,T,T,C,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,x,A,D,D,D,D,A,A,A,A,g,A,A,T,A,A,D,D,w,w,A,g,A,A,A,w,g,A,A,A,A,A],M=[F,F,F,F,F,F,F,F,F,F,F,T,T,T,g,v,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,F,C,k,B,_,L,R,x,D,D,D,D,D,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,x,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,F];t.L=g,t.R=v,t.EN=w,t.ON_R=3,t.AN=4,t.R_H=5,t.B=6,t.DOT="·",t.doBidiReorder=function(e,i,o){if(e.length<2)return{};var s=e.split(""),l=new Array(s.length),c=new Array(s.length),h=[];a=o?m:0,n(s,h,s.length,i);for(var d=0;dE&&i[d]0&&"ل"===s[d-1]&&/\u0622|\u0623|\u0625|\u0627/.test(s[d])&&(h[d-1]=h[d]=t.R_H,d++);s[s.length-1]===t.DOT&&(h[s.length-1]=t.B);for(var d=0;d=0&&(e=this.session.$docRowCache[i])}return e},this.getSplitIndex=function(){var e=0,t=this.session.$screenRowCache;if(t.length)for(var i,n=this.session.$getRowCacheIndex(t,this.currentRow);this.currentRow-e>0&&(i=this.session.$getRowCacheIndex(t,this.currentRow-e-1))===n;)n=i,e++;return e},this.updateRowLine=function(e,t){if(void 0===e&&(e=this.getDocumentRow()),this.wrapIndent=0,this.isLastRow=e===this.session.getLength()-1,this.line=this.session.getLine(e),this.session.$useWrapMode){var i=this.session.$wrapData[e];i&&(void 0===t&&(t=this.getSplitIndex()),t>0&&i.length?(this.wrapIndent=i.indent,this.line=t0?e-1:0,this.bidiMap),i=this.bidiMap.bidiLevels,r=0;0===e&&i[t]%2!=0&&t++;for(var o=0;o=c&&ri+s/2;){if(i+=s,r===o.length-1){s=0;break}s=this.charWidths[o[++r]]}return r>0&&o[r-1]%2!=0&&o[r]%2==0?(e0&&o[r-1]%2==0&&o[r]%2!=0?t=1+(e>i?this.bidiMap.logicalFromVisual[r]:this.bidiMap.logicalFromVisual[r-1]):this.isRtlDir&&r===o.length-1&&0===s&&o[r-1]%2==0||!this.isRtlDir&&0===r&&o[r]%2!=0?t=1+this.bidiMap.logicalFromVisual[r]:(r>0&&o[r-1]%2!=0&&0!==s&&r--,t=this.bidiMap.logicalFromVisual[r]),t+this.wrapIndent}}).call(a.prototype),t.BidiHandler=a}),ace.define("ace/range",["require","exports","module"],function(e,t,i){"use strict";var n=function(e,t){return e.row-t.row||e.column-t.column},r=function(e,t,i,n){this.start={row:e,column:t},this.end={row:i,column:n}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return 0==this.compare(e,t)},this.compareRange=function(e){var t,i=e.end,n=e.start;return t=this.compare(i.row,i.column),1==t?(t=this.compare(n.row,n.column),1==t?2:0==t?1:0):-1==t?-2:(t=this.compare(n.row,n.column),-1==t?-1:1==t?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return 0==this.comparePoint(e.start)&&0==this.comparePoint(e.end)},this.intersects=function(e){var t=this.compareRange(e);return-1==t||0==t||1==t},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){"object"==typeof e?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){"object"==typeof e?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return 0==this.compare(e,t)&&(!this.isEnd(e,t)&&!this.isStart(e,t))},this.insideStart=function(e,t){return 0==this.compare(e,t)&&!this.isEnd(e,t)},this.insideEnd=function(e,t){return 0==this.compare(e,t)&&!this.isStart(e,t)},this.compare=function(e,t){return this.isMultiLine()||e!==this.start.row?ethis.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0:tthis.end.column?1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var i={row:t+1,column:0};else if(this.end.rowt)var n={row:t+1,column:0};else if(this.start.rowt.row||e.row==t.row&&e.column>t.column},this.getRange=function(){var e=this.anchor,t=this.lead;return this.isEmpty()?s.fromPoints(t,t):this.isBackwards()?s.fromPoints(t,e):s.fromPoints(e,t)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){var e=this.doc.getLength()-1;this.setSelectionAnchor(0,0),this.moveCursorTo(e,this.doc.getLine(e).length)},this.setRange=this.setSelectionRange=function(e,t){t?(this.setSelectionAnchor(e.end.row,e.end.column),this.selectTo(e.start.row,e.start.column)):(this.setSelectionAnchor(e.start.row,e.start.column),this.selectTo(e.end.row,e.end.column)),this.getRange().isEmpty()&&(this.$isEmpty=!0),this.$desiredColumn=null},this.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},this.selectTo=function(e,t){this.$moveSelection(function(){this.moveCursorTo(e,t)})},this.selectToPosition=function(e){this.$moveSelection(function(){this.moveCursorToPosition(e)})},this.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},this.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(e,t){if(void 0===t){var i=e||this.lead;e=i.row,t=i.column}return this.session.getWordRange(e,t)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},this.getLineRange=function(e,t){var i,n="number"==typeof e?e:this.lead.row,r=this.session.getFoldLine(n);return r?(n=r.start.row,i=r.end.row):i=n,!0===t?new s(n,0,i,this.session.getLine(i).length):new s(n,0,i+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.wouldMoveIntoSoftTab=function(e,t,i){var n=e.column,r=e.column+t;return i<0&&(n=e.column-t,r=e.column),this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(n,r).split(" ").length-1==t},this.moveCursorLeft=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,-1))this.moveCursorTo(e.start.row,e.start.column);else if(0===t.column)t.row>0&&this.moveCursorTo(t.row-1,this.doc.getLine(t.row-1).length);else{var i=this.session.getTabSize();this.wouldMoveIntoSoftTab(t,i,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-i):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,1))this.moveCursorTo(e.end.row,e.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(t.column=n)}}this.moveCursorTo(t.row,t.column)},this.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var e=this.lead.row,t=this.lead.column,i=this.doc.getLine(e),n=i.substring(t);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var r=this.session.getFoldAt(e,t,1);return r?void this.moveCursorTo(r.end.row,r.end.column):(this.session.nonTokenRe.exec(n)&&(t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,n=i.substring(t)),t>=i.length?(this.moveCursorTo(e,i.length),this.moveCursorRight(),void(e0&&this.moveCursorWordLeft());this.session.tokenRe.exec(o)&&(i-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(t,i)},this.$shortWordEndIndex=function(e){var t,i=0,n=/\s/,r=this.session.tokenRe;if(r.lastIndex=0,this.session.tokenRe.exec(e))i=this.session.tokenRe.lastIndex;else{for(;(t=e[i])&&n.test(t);)i++;if(i<1)for(r.lastIndex=0;(t=e[i])&&!r.test(t);)if(r.lastIndex=0,i++,n.test(t)){if(i>2){i--;break}for(;(t=e[i])&&n.test(t);)i++;if(i>2)break}}return r.lastIndex=0,i},this.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,i=this.doc.getLine(e),n=i.substring(t),r=this.session.getFoldAt(e,t,1);if(r)return this.moveCursorTo(r.end.row,r.end.column);if(t==i.length){var o=this.doc.getLength();do{e++,n=this.doc.getLine(e)}while(e0&&/^\s*$/.test(n));i=n.length,/\s+$/.test(n)||(n="")}var o=r.stringReverse(n),s=this.$shortWordEndIndex(o);return this.moveCursorTo(t,i-s)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(e,t){var i,n=this.session.documentToScreenPosition(this.lead.row,this.lead.column);0===t&&(0!==e&&(this.session.$bidiHandler.isBidiRow(n.row,this.lead.row)?(i=this.session.$bidiHandler.getPosLeft(n.column),n.column=Math.round(i/this.session.$bidiHandler.charWidths[0])):i=n.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?n.column=this.$desiredColumn:this.$desiredColumn=n.column);var r=this.session.screenToDocumentPosition(n.row+e,n.column,i);0!==e&&0===t&&r.row===this.lead.row&&r.column===this.lead.column&&this.session.lineWidgets&&this.session.lineWidgets[r.row]&&(r.row>0||e>0)&&r.row++,this.moveCursorTo(r.row,r.column+t,0===t)},this.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},this.moveCursorTo=function(e,t,i){var n=this.session.getFoldAt(e,t,1);n&&(e=n.start.row,t=n.start.column),this.$keepDesiredColumnOnChange=!0;var r=this.session.getLine(e);/[\uDC00-\uDFFF]/.test(r.charAt(t))&&r.charAt(t-1)&&(this.lead.row==e&&this.lead.column==t+1?t-=1:t+=1),this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,i||(this.$desiredColumn=null)},this.moveCursorToScreen=function(e,t,i){var n=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(n.row,n.column,i)},this.detach=function(){this.lead.detach(),this.anchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},this.getRangeOfMovements=function(e){var t=this.getCursor();try{e(this);var i=this.getCursor();return s.fromPoints(t,i)}catch(e){return s.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},this.toJSON=function(){if(this.rangeCount)var e=this.ranges.map(function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t});else{var e=this.getRange();e.isBackwards=this.isBackwards()}return e},this.fromJSON=function(e){if(void 0==e.start){if(this.rangeList){this.toSingleRange(e[0]);for(var t=e.length;t--;){var i=s.fromPoints(e[t].start,e[t].end);e[t].isBackwards&&(i.cursor=i.start),this.addRange(i,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},this.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0}}).call(a.prototype),t.Selection=a}),ace.define("ace/tokenizer",["require","exports","module","ace/config"],function(e,t,i){"use strict";var n=e("./config"),r=2e3,o=function(e){this.states=e,this.regExps={},this.matchMappings={};for(var t in this.states){for(var i=this.states[t],n=[],r=0,o=this.matchMappings[t]={defaultToken:"text"},s="g",a=[],l=0;l1?this.$applyToken:c.token),d>1&&(/\\\d/.test(c.regex)?h=c.regex.replace(/\\([0-9]+)/g,function(e,t){return"\\"+(parseInt(t,10)+r+1)}):(d=1,h=this.removeCapturingGroups(c.regex)),c.splitRegex||"string"==typeof c.token||a.push(c)),o[r]=l,r+=d,n.push(h),c.onMatch||(c.onMatch=null)}}n.length||(o[0]=0,n.push("$")),a.forEach(function(e){e.splitRegex=this.createSplitterRegexp(e.regex,s)},this),this.regExps[t]=new RegExp("("+n.join(")|(")+")|($)",s)}};(function(){this.$setMaxTokenCount=function(e){r=0|e},this.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),i=this.token.apply(this,t);if("string"==typeof i)return[{type:i,value:e}];for(var n=[],r=0,o=i.length;rh){var v=e.substring(h,g-m.length);u.type==f?u.value+=v:(u.type&&c.push(u),u={type:f,value:v})}for(var w=0;wr){for(d>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});h1&&i[0]!==n&&i.unshift("#tmp",n),{tokens:c,state:i.length?i:n}},this.reportError=n.reportError}).call(o.prototype),t.Tokenizer=o}),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],function(e,t,i){"use strict";var n=e("../lib/lang"),r=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(e,t){if(t)for(var i in e){for(var n=e[i],r=0;r=this.$rowTokens.length;){if(this.$row+=1,e||(e=this.$session.getLength()),this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,i=e[t].start;if(void 0!==i)return i;for(i=0;t>0;)t-=1,i+=e[t].value.length;return i},this.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},this.getCurrentTokenRange=function(){var e=this.$rowTokens[this.$tokenIndex],t=this.getCurrentTokenColumn();return new n(this.$row,t,this.$row,t+e.value.length)}}).call(r.prototype),t.TokenIterator=r}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,i){"use strict";var n,r=e("../../lib/oop"),o=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,a=e("../../lib/lang"),l=["text","paren.rparen","punctuation.operator"],c=["text","paren.rparen","punctuation.operator","comment"],h={},d={'"':'"',"'":"'"},u=function(e){var t=-1;if(e.multiSelect&&(t=e.selection.index,h.rangeCount!=e.multiSelect.rangeCount&&(h={rangeCount:e.multiSelect.rangeCount})),h[t])return n=h[t];n=h[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},f=function(e,t,i,n){var r=e.end.row-e.start.row;return{text:i+t+n,selection:[0,e.start.column+1,r,e.end.column+(r?0:1)]}},p=function(e){this.add("braces","insertion",function(t,i,r,o,s){var l=r.getCursorPosition(),c=o.doc.getLine(l.row);if("{"==s){u(r);var h=r.getSelectionRange(),d=o.doc.getTextRange(h);if(""!==d&&"{"!==d&&r.getWrapBehavioursEnabled())return f(h,d,"{","}");if(p.isSaneInsertion(r,o))return/[\]\}\)]/.test(c[l.column])||r.inMultiSelectMode||e&&e.braces?(p.recordAutoInsert(r,o,"}"),{text:"{}",selection:[1,1]}):(p.recordMaybeInsert(r,o,"{"),{text:"{",selection:[1,1]})}else if("}"==s){u(r);var m=c.substring(l.column,l.column+1);if("}"==m){var g=o.$findOpeningBracket("}",{column:l.column+1,row:l.row});if(null!==g&&p.isAutoInsertedClosing(l,c,s))return p.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if("\n"==s||"\r\n"==s){u(r);var v="";p.isMaybeInsertedClosing(l,c)&&(v=a.stringRepeat("}",n.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var m=c.substring(l.column,l.column+1);if("}"===m){var w=o.findMatchingBracket({row:l.row,column:l.column+1},"}");if(!w)return null;var y=this.$getIndent(o.getLine(w.row))}else{if(!v)return void p.clearMaybeInsertedClosing();var y=this.$getIndent(c)}var A=y+o.getTabString();return{text:"\n"+A+"\n"+y+v,selection:[1,A.length,1,A.length]}}p.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,i,r,o){var s=r.doc.getTextRange(o);if(!o.isMultiLine()&&"{"==s){u(i);if("}"==r.doc.getLine(o.start.row).substring(o.end.column,o.end.column+1))return o.end.column++,o;n.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,i,n,r){if("("==r){u(i);var o=i.getSelectionRange(),s=n.doc.getTextRange(o);if(""!==s&&i.getWrapBehavioursEnabled())return f(o,s,"(",")");if(p.isSaneInsertion(i,n))return p.recordAutoInsert(i,n,")"),{text:"()",selection:[1,1]}}else if(")"==r){u(i);var a=i.getCursorPosition(),l=n.doc.getLine(a.row),c=l.substring(a.column,a.column+1);if(")"==c){var h=n.$findOpeningBracket(")",{column:a.column+1,row:a.row});if(null!==h&&p.isAutoInsertedClosing(a,l,r))return p.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,i,n,r){var o=n.doc.getTextRange(r);if(!r.isMultiLine()&&"("==o){u(i);if(")"==n.doc.getLine(r.start.row).substring(r.start.column+1,r.start.column+2))return r.end.column++,r}}),this.add("brackets","insertion",function(e,t,i,n,r){if("["==r){u(i);var o=i.getSelectionRange(),s=n.doc.getTextRange(o);if(""!==s&&i.getWrapBehavioursEnabled())return f(o,s,"[","]");if(p.isSaneInsertion(i,n))return p.recordAutoInsert(i,n,"]"),{text:"[]",selection:[1,1]}}else if("]"==r){u(i);var a=i.getCursorPosition(),l=n.doc.getLine(a.row),c=l.substring(a.column,a.column+1);if("]"==c){var h=n.$findOpeningBracket("]",{column:a.column+1,row:a.row});if(null!==h&&p.isAutoInsertedClosing(a,l,r))return p.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,i,n,r){var o=n.doc.getTextRange(r);if(!r.isMultiLine()&&"["==o){u(i);if("]"==n.doc.getLine(r.start.row).substring(r.start.column+1,r.start.column+2))return r.end.column++,r}}),this.add("string_dquotes","insertion",function(e,t,i,n,r){var o=n.$mode.$quotes||d;if(1==r.length&&o[r]){if(this.lineCommentStart&&-1!=this.lineCommentStart.indexOf(r))return;u(i);var s=r,a=i.getSelectionRange(),l=n.doc.getTextRange(a);if(!(""===l||1==l.length&&o[l])&&i.getWrapBehavioursEnabled())return f(a,l,s,s);if(!l){var c=i.getCursorPosition(),h=n.doc.getLine(c.row),p=h.substring(c.column-1,c.column),m=h.substring(c.column,c.column+1),g=n.getTokenAt(c.row,c.column),v=n.getTokenAt(c.row,c.column+1);if("\\"==p&&g&&/escape/.test(g.type))return null;var w,y=g&&/string|escape/.test(g.type),A=!v||/string|escape/.test(v.type);if(m==s)(w=y!==A)&&/string\.end/.test(v.type)&&(w=!1);else{if(y&&!A)return null;if(y&&A)return null;var C=n.$mode.tokenRe;C.lastIndex=0;var b=C.test(p);C.lastIndex=0;var E=C.test(p);if(b||E)return null;if(m&&!/[\s;,.})\]\\]/.test(m))return null;w=!0}return{text:w?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,i,n,r){var o=n.doc.getTextRange(r);if(!r.isMultiLine()&&('"'==o||"'"==o)){u(i);if(n.doc.getLine(r.start.row).substring(r.start.column+1,r.start.column+2)==o)return r.end.column++,r}})};p.isSaneInsertion=function(e,t){var i=e.getCursorPosition(),n=new s(t,i.row,i.column);if(!this.$matchTokenType(n.getCurrentToken()||"text",l)){var r=new s(t,i.row,i.column+1);if(!this.$matchTokenType(r.getCurrentToken()||"text",l))return!1}return n.stepForward(),n.getCurrentTokenRow()!==i.row||this.$matchTokenType(n.getCurrentToken()||"text",c)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,i){var r=e.getCursorPosition(),o=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,o,n.autoInsertedLineEnd[0])||(n.autoInsertedBrackets=0),n.autoInsertedRow=r.row,n.autoInsertedLineEnd=i+o.substr(r.column),n.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,i){var r=e.getCursorPosition(),o=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,o)||(n.maybeInsertedBrackets=0),n.maybeInsertedRow=r.row,n.maybeInsertedLineStart=o.substr(0,r.column)+i,n.maybeInsertedLineEnd=o.substr(r.column),n.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,i){return n.autoInsertedBrackets>0&&e.row===n.autoInsertedRow&&i===n.autoInsertedLineEnd[0]&&t.substr(e.column)===n.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return n.maybeInsertedBrackets>0&&e.row===n.maybeInsertedRow&&t.substr(e.column)===n.maybeInsertedLineEnd&&t.substr(0,e.column)==n.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){n.autoInsertedLineEnd=n.autoInsertedLineEnd.substr(1),n.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){n&&(n.maybeInsertedBrackets=0,n.maybeInsertedRow=-1)},r.inherits(p,o),t.CstyleBehaviour=p}),ace.define("ace/unicode",["require","exports","module"],function(e,t,i){"use strict";t.packages={},function(e){for(var i in e)t.packages[i]=e[i].replace(/\w{4}/g,"\\u$&")}({L:"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",Ll:"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A",Lu:"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A",Lt:"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC",Lm:"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F",Lo:"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",M:"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26",Mn:"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26",Mc:"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC",Me:"0488048906DE20DD-20E020E2-20E4A670-A672",N:"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nd:"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nl:"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF",No:"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835",P:"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65",Pd:"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D",Ps:"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62",Pe:"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63",Pi:"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20",Pf:"00BB2019201D203A2E032E052E0A2E0D2E1D2E21",Pc:"005F203F20402054FE33FE34FE4D-FE4FFF3F",Po:"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65",S:"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD",Sm:"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC",Sc:"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6",Sk:"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3",So:"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD",Z:"002000A01680180E2000-200A20282029202F205F3000",Zs:"002000A01680180E2000-200A202F205F3000",Zl:"2028",Zp:"2029",C:"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF",Cc:"0000-001F007F-009F",Cf:"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB",Co:"E000-F8FF",Cs:"D800-DFFF",Cn:"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF"})}),ace.define("ace/mode/text",["require","exports","module","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/behaviour/cstyle","ace/unicode","ace/lib/lang","ace/token_iterator","ace/range"],function(e,t,i){"use strict";var n=e("../tokenizer").Tokenizer,r=e("./text_highlight_rules").TextHighlightRules,o=e("./behaviour/cstyle").CstyleBehaviour,s=e("../unicode"),a=e("../lib/lang"),l=e("../token_iterator").TokenIterator,c=e("../range").Range,h=function(){this.HighlightRules=r};(function(){this.$defaultBehaviour=new o,this.tokenRe=new RegExp("^["+s.packages.L+s.packages.Mn+s.packages.Mc+s.packages.Nd+s.packages.Pc+"\\$_]+","g"),this.nonTokenRe=new RegExp("^(?:[^"+s.packages.L+s.packages.Mn+s.packages.Mc+s.packages.Nd+s.packages.Pc+"\\$_]|\\s])+","g"),this.getTokenizer=function(){return this.$tokenizer||(this.$highlightRules=this.$highlightRules||new this.HighlightRules(this.$highlightRuleConfig),this.$tokenizer=new n(this.$highlightRules.getRules())),this.$tokenizer},this.lineCommentStart="",this.blockComment="",this.toggleCommentLines=function(e,t,i,n){function r(e){for(var t=i;t<=n;t++)e(o.getLine(t),t)}var o=t.doc,s=!0,l=!0,c=1/0,h=t.getTabSize(),d=!1;if(this.lineCommentStart){if(Array.isArray(this.lineCommentStart))var u=this.lineCommentStart.map(a.escapeRegExp).join("|"),f=this.lineCommentStart[0];else var u=a.escapeRegExp(this.lineCommentStart),f=this.lineCommentStart;u=new RegExp("^(\\s*)(?:"+u+") ?"),d=t.getUseSoftTabs();var p=function(e,t){var i=e.match(u);if(i){var n=i[1].length,r=i[0].length;w(e,n,r)||" "!=i[0][r-1]||r--,o.removeInLine(t,n,r)}},m=f+" ",g=function(e,t){s&&!/\S/.test(e)||(w(e,c,c)?o.insertInLine({row:t,column:c},m):o.insertInLine({row:t,column:c},f))},v=function(e,t){return u.test(e)},w=function(e,t,i){for(var n=0;t--&&" "==e.charAt(t);)n++;if(n%h!=0)return!1;for(var n=0;" "==e.charAt(i++);)n++;return h>2?n%h!=h-1:n%h==0}}else{if(!this.blockComment)return!1;var f=this.blockComment.start,y=this.blockComment.end,u=new RegExp("^(\\s*)(?:"+a.escapeRegExp(f)+")"),A=new RegExp("(?:"+a.escapeRegExp(y)+")\\s*$"),g=function(e,t){v(e,t)||s&&!/\S/.test(e)||(o.insertInLine({row:t,column:e.length},y),o.insertInLine({row:t,column:c},f))},p=function(e,t){var i;(i=e.match(A))&&o.removeInLine(t,e.length-i[0].length,e.length),(i=e.match(u))&&o.removeInLine(t,i[1].length,i[0].length)},v=function(e,i){if(u.test(e))return!0;for(var n=t.getTokens(i),r=0;re.length&&(C=e.length)}),c==1/0&&(c=C,s=!1,l=!1),d&&c%h!=0&&(c=Math.floor(c/h)*h),r(l?p:g)},this.toggleBlockComment=function(e,t,i,n){var r=this.blockComment;if(r){!r.start&&r[0]&&(r=r[0]);var o,s,a=new l(t,n.row,n.column),h=a.getCurrentToken(),d=(t.selection,t.selection.toOrientedRange());if(h&&/comment/.test(h.type)){for(var u,f;h&&/comment/.test(h.type);){var p=h.value.indexOf(r.start);if(-1!=p){var m=a.getCurrentTokenRow(),g=a.getCurrentTokenColumn()+p;u=new c(m,g,m,g+r.start.length);break}h=a.stepBackward()}for(var a=new l(t,n.row,n.column),h=a.getCurrentToken();h&&/comment/.test(h.type);){var p=h.value.indexOf(r.end);if(-1!=p){var m=a.getCurrentTokenRow(),g=a.getCurrentTokenColumn()+p;f=new c(m,g,m,g+r.end.length);break}h=a.stepForward()}f&&t.remove(f),u&&(t.remove(u),o=u.start.row,s=-r.start.length)}else s=r.start.length,o=i.start.row,t.insert(i.end,r.end),t.insert(i.start,r.start);d.start.row==o&&(d.start.column+=s),d.end.row==o&&(d.end.column+=s),t.selection.fromOrientedRange(d)}},this.getNextLineIndent=function(e,t,i){return this.$getIndent(t)},this.checkOutdent=function(e,t,i){return!1},this.autoOutdent=function(e,t,i){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){this.$embeds=[],this.$modes={};for(var t in e)e[t]&&(this.$embeds.push(t),this.$modes[t]=new e[t]);for(var i=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"],t=0;tthis.row)){var i=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(i.row,i.column,!0)}},this.setPosition=function(e,t,i){var n;if(n=i?{row:e,column:t}:this.$clipPositionToDocument(e,t),this.row!=n.row||this.column!=n.column){var r={row:this.row,column:this.column};this.row=n.row,this.column=n.column,this._signal("change",{old:r,value:n})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(e,t){var i={};return e>=this.document.getLength()?(i.row=Math.max(0,this.document.getLength()-1),i.column=this.document.getLine(i.row).length):e<0?(i.row=0,i.column=0):(i.row=e,i.column=Math.min(this.document.getLine(i.row).length,Math.max(0,t))),t<0&&(i.column=0),i}}).call(o.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(e,t,i){"use strict";var n=e("./lib/oop"),r=e("./apply_delta").applyDelta,o=e("./lib/event_emitter").EventEmitter,s=e("./range").Range,a=e("./anchor").Anchor,l=function(e){this.$lines=[""],0===e.length?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){n.implement(this,o),this.setValue=function(e){var t=this.getLength()-1;this.remove(new s(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new a(this,e,t)},0==="aaa".split(/a/).length?this.$split=function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){this.$newLineMode!==e&&(this.$newLineMode=e,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return"\r\n"==e||"\r"==e||"\n"==e},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||"").substring(e.start.column);var i=t.length-1;e.end.row-e.start.row==i&&(t[i]=t[i].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var i=this.clippedPos(e.row,e.column),n=this.pos(e.row,e.column+t.length);return this.applyDelta({start:i,end:n,action:"insert",lines:[t]},!0),this.clonePos(n)},this.clippedPos=function(e,t){var i=this.getLength();void 0===e?e=i:e<0?e=0:e>=i&&(e=i-1,t=void 0);var n=this.getLine(e);return void 0==t&&(t=n.length),t=Math.min(Math.max(t,0),n.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var i=0;e0,n=t=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},this.replace=function(e,t){if(e instanceof s||(e=s.fromPoints(e.start,e.end)),0===t.length&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);return t?this.insert(e.start,t):e.start},this.applyDeltas=function(e){for(var t=0;t=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var i="insert"==e.action;(i?e.lines.length<=1&&!e.lines[0]:!s.comparePoints(e.start,e.end))||(i&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),r(this.$lines,e,t),this._signal("change",e))},this.$splitAndapplyLargeDelta=function(e,t){for(var i=e.lines,n=i.length,r=e.start.row,o=e.start.column,s=0,a=0;;){s=a,a+=t-1;var l=i.slice(s,a);if(a>n){e.lines=l,e.start.row=r+s,e.start.column=o;break}l.push(""),this.applyDelta({start:this.pos(r+s,o),end:this.pos(r+a,o=0),action:e.action,lines:l},!0)}},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:"insert"==e.action?"remove":"insert",lines:e.lines.slice()})},this.indexToPosition=function(e,t){for(var i=this.$lines||this.getAllLines(),n=this.getNewLineCharacter().length,r=t||0,o=i.length;r20){i.running=setTimeout(i.$worker,20);break}}i.currentLine=t,-1==n&&(n=t),o<=n&&i.fireUpdateEvent(o,n)}}};(function(){n.implement(this,r),this.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(e,t){var i={first:e,last:t};this._signal("update",{data:i})},this.start=function(e){this.currentLine=Math.min(e||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},this.$updateOnChange=function(e){var t=e.start.row,i=e.end.row-t;if(0===i)this.lines[t]=null;else if("remove"==e.action)this.lines.splice(t,i+1,null),this.states.splice(t,i+1,null);else{var n=Array(i+1);n.unshift(t,1),this.lines.splice.apply(this.lines,n),this.states.splice.apply(this.states,n)}this.currentLine=Math.min(t,this.currentLine,this.doc.getLength()),this.stop()},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},this.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||"start"},this.$tokenizeRow=function(e){var t=this.doc.getLine(e),i=this.states[e-1],n=this.tokenizer.getLineTokens(t,i,e);return this.states[e]+""!=n.state+""?(this.states[e]=n.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=n.tokens}}).call(o.prototype),t.BackgroundTokenizer=o}),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,i){"use strict";var n=e("./lib/lang"),r=(e("./lib/oop"),e("./range").Range),o=function(e,t,i){this.setRegexp(e),this.clazz=t,this.type=i||"text"};(function(){this.MAX_RANGES=500,this.setRegexp=function(e){this.regExp+""!=e+""&&(this.regExp=e,this.cache=[])},this.update=function(e,t,i,o){if(this.regExp)for(var s=o.firstRow,a=o.lastRow,l=s;l<=a;l++){var c=this.cache[l];null==c&&(c=n.getMatchOffsets(i.getLine(l),this.regExp),c.length>this.MAX_RANGES&&(c=c.slice(0,this.MAX_RANGES)),c=c.map(function(e){return new r(l,e.offset,l,e.offset+e.length)}),this.cache[l]=c.length?c:"");for(var h=c.length;h--;)t.drawSingleLineMarker(e,c[h].toScreenRange(i),this.clazz,o)}}}).call(o.prototype),t.SearchHighlight=o}),ace.define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(e,t,i){"use strict";function n(e,t){this.foldData=e,Array.isArray(t)?this.folds=t:t=this.folds=[t];var i=t[t.length-1];this.range=new r(t[0].start.row,t[0].start.column,i.end.row,i.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(e){e.setFoldLine(this)},this)}var r=e("../range").Range;(function(){this.shiftRow=function(e){this.start.row+=e,this.end.row+=e,this.folds.forEach(function(t){t.start.row+=e,t.end.row+=e})},this.addFold=function(e){if(e.sameRow){if(e.start.rowthis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(e),this.folds.sort(function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)}),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},this.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},this.walk=function(e,t,i){var n,r,o,s=0,a=this.folds,l=!0;null==t&&(t=this.end.row,i=this.end.column);for(var c=0;c0)){var l=r(e,s.start);return 0===a?t&&0!==l?-o-2:o:l>0||0===l&&!t?o:-o-1}}return-o-1},this.add=function(e){var t=!e.isEmpty(),i=this.pointIndex(e.start,t);i<0&&(i=-i-1);var n=this.pointIndex(e.end,t,i);return n<0?n=-n-1:n++,this.ranges.splice(i,n-i,e)},this.addList=function(e){for(var t=[],i=e.length;i--;)t.push.apply(t,this.add(e[i]));return t},this.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},this.merge=function(){var e=[],t=this.ranges;t=t.sort(function(e,t){return r(e.start,t.start)});for(var i,n=t[0],o=1;o=0},this.containsPoint=function(e){return this.pointIndex(e)>=0},this.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},this.clipRows=function(e,t){var i=this.ranges;if(i[0].start.row>t||i[i.length-1].start.rown)break;if(h.start.row==n&&h.start.column>=t.column&&(h.start.column==t.column&&this.$insertRight||(h.start.column+=s,h.start.row+=o)),h.end.row==n&&h.end.column>=t.column){if(h.end.column==t.column&&this.$insertRight)continue;h.end.column==t.column&&s>0&&lh.start.column&&h.end.column==a[l+1].start.column&&(h.end.column-=s),h.end.column+=s,h.end.row+=o}}}if(0!=o&&l=e)return r;if(r.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var i=this.$foldData,n=0;for(t&&(n=i.indexOf(t)),-1==n&&(n=0),n;n=e)return r}return null},this.getFoldedRowCount=function(e,t){for(var i=this.$foldData,n=t-e+1,r=0;r=t){a=e?n-=t-a:n=0);break}s>=e&&(n-=a>=e?s-a:s-e+1)}return n},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort(function(e,t){return e.start.row-t.start.row}),e},this.addFold=function(e,t){var i,n=this.$foldData,r=!1;e instanceof s?i=e:(i=new s(t,e),i.collapseChildren=t.collapseChildren),this.$clipRangeToDocument(i.range);var a=i.start.row,l=i.start.column,c=i.end.row,h=i.end.column;if(!(a0&&(this.removeFolds(f),f.forEach(function(e){i.addSubFold(e)}));for(var p=0;p0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach(function(e){this.expandFold(e)},this)},this.unfold=function(e,t){var i,n;if(null==e?(i=new r(0,0,this.getLength(),0),t=!0):i="number"==typeof e?new r(e,0,e,this.getLine(e).length):"row"in e?r.fromPoints(e,e):e,n=this.getFoldsInRangeList(i),t)this.removeFolds(n);else for(var o=n;o.length;)this.expandFolds(o),o=this.getFoldsInRangeList(i);if(n.length)return n},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var i=this.getFoldLine(e,t);return i?i.end.row:e},this.getRowFoldStart=function(e,t){var i=this.getFoldLine(e,t);return i?i.start.row:e},this.getFoldDisplayLine=function(e,t,i,n,r){null==n&&(n=e.start.row),null==r&&(r=0),null==t&&(t=e.end.row),null==i&&(i=this.getLine(t).length);var o=this.doc,s="";return e.walk(function(e,t,i,a){if(!(th)break}while(o&&l.test(o.type));o=n.stepBackward()}else o=n.getCurrentToken();return c.end.row=n.getCurrentTokenRow(),c.end.column=n.getCurrentTokenColumn()+o.value.length-2,c}},this.foldAll=function(e,t,i){void 0==i&&(i=1e5);var n=this.foldWidgets;if(n){t=t||this.getLength(),e=e||0;for(var r=e;r=e){r=o.end.row;try{var s=this.addFold("...",o);s&&(s.collapseChildren=i)}catch(e){}}}}},this.$foldStyles={manual:1,markbegin:1,markbeginend:1},this.$foldStyle="markbegin",this.setFoldStyle=function(e){if(!this.$foldStyles[e])throw new Error("invalid fold style: "+e+"["+Object.keys(this.$foldStyles).join(", ")+"]");if(this.$foldStyle!=e){this.$foldStyle=e,"manual"==e&&this.unfold();var t=this.$foldMode;this.$setFolding(null),this.$setFolding(t)}},this.$setFolding=function(e){if(this.$foldMode!=e){if(this.$foldMode=e,this.off("change",this.$updateFoldWidgets),this.off("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets),this._signal("changeAnnotation"),!e||"manual"==this.$foldStyle)return void(this.foldWidgets=null);this.foldWidgets=[],this.getFoldWidget=e.getFoldWidget.bind(e,this,this.$foldStyle),this.getFoldWidgetRange=e.getFoldWidgetRange.bind(e,this,this.$foldStyle),this.$updateFoldWidgets=this.updateFoldWidgets.bind(this),this.$tokenizerUpdateFoldWidgets=this.tokenizerUpdateFoldWidgets.bind(this),this.on("change",this.$updateFoldWidgets),this.on("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets)}},this.getParentFoldRangeData=function(e,t){var i=this.foldWidgets;if(!i||t&&i[e])return{};for(var n,r=e-1;r>=0;){var o=i[r];if(null==o&&(o=i[r]=this.getFoldWidget(r)),"start"==o){var s=this.getFoldWidgetRange(r);if(n||(n=s),s&&s.end.row>=e)break}r--}return{range:-1!==r&&s,firstRange:n}},this.onFoldWidgetClick=function(e,t){t=t.domEvent;var i={children:t.shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey};if(!this.$toggleFoldWidget(e,i)){var n=t.target||t.srcElement;n&&/ace_fold-widget/.test(n.className)&&(n.className+=" ace_invalid")}},this.$toggleFoldWidget=function(e,t){if(this.getFoldWidget){var i=this.getFoldWidget(e),n=this.getLine(e),r="end"===i?-1:1,o=this.getFoldAt(e,-1===r?0:n.length,r);if(o)return t.children||t.all?this.removeFold(o):this.expandFold(o),o;var s=this.getFoldWidgetRange(e,!0);if(s&&!s.isMultiLine()&&(o=this.getFoldAt(s.start.row,s.start.column,1))&&s.isEqual(o.range))return this.removeFold(o),o;if(t.siblings){var a=this.getParentFoldRangeData(e);if(a.range)var l=a.range.start.row+1,c=a.range.end.row;this.foldAll(l,c,t.all?1e4:0)}else t.children?(c=s?s.end.row:this.getLength(),this.foldAll(e+1,c,t.all?1e4:0)):s&&(t.all&&(s.collapseChildren=1e4),this.addFold("...",s));return s}},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var i=this.$toggleFoldWidget(t,{});if(!i){var n=this.getParentFoldRangeData(t,!0);if(i=n.range||n.firstRange){t=i.start.row;var r=this.getFoldAt(t,this.getLine(t).length,1);r?this.removeFold(r):this.addFold("...",i)}}},this.updateFoldWidgets=function(e){var t=e.start.row,i=e.end.row-t;if(0===i)this.foldWidgets[t]=null;else if("remove"==e.action)this.foldWidgets.splice(t,i+1,null);else{var n=Array(i+1);n.unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,n)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}var r=e("../range").Range,o=e("./fold_line").FoldLine,s=e("./fold").Fold,a=e("../token_iterator").TokenIterator;t.Folding=n}),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(e,t,i){"use strict";function n(){this.findMatchingBracket=function(e,t){if(0==e.column)return null;var i=t||this.getLine(e.row).charAt(e.column-1);if(""==i)return null;var n=i.match(/([\(\[\{])|([\)\]\}])/);return n?n[1]?this.$findClosingBracket(n[1],e):this.$findOpeningBracket(n[2],e):null},this.getBracketRange=function(e){var t,i=this.getLine(e.row),n=!0,r=i.charAt(e.column-1),s=r&&r.match(/([\(\[\{])|([\)\]\}])/);if(s||(r=i.charAt(e.column),e={row:e.row,column:e.column+1},s=r&&r.match(/([\(\[\{])|([\)\]\}])/),n=!1),!s)return null;if(s[1]){var a=this.$findClosingBracket(s[1],e);if(!a)return null;t=o.fromPoints(e,a),n||(t.end.column++,t.start.column--),t.cursor=t.end}else{var a=this.$findOpeningBracket(s[2],e);if(!a)return null;t=o.fromPoints(a,e),n||(t.start.column++,t.end.column--),t.cursor=t.start}return t},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{"},this.$findOpeningBracket=function(e,t,i){var n=this.$brackets[e],o=1,s=new r(this,t.row,t.column),a=s.getCurrentToken();if(a||(a=s.stepForward()),a){i||(i=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)")+")+"));for(var l=t.column-s.getCurrentTokenColumn()-2,c=a.value;;){for(;l>=0;){var h=c.charAt(l);if(h==n){if(0==(o-=1))return{row:s.getCurrentTokenRow(),column:l+s.getCurrentTokenColumn()}}else h==e&&(o+=1);l-=1}do{a=s.stepBackward()}while(a&&!i.test(a.type));if(null==a)break;c=a.value,l=c.length-1}return null}},this.$findClosingBracket=function(e,t,i){var n=this.$brackets[e],o=1,s=new r(this,t.row,t.column),a=s.getCurrentToken();if(a||(a=s.stepForward()),a){i||(i=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)")+")+"));for(var l=t.column-s.getCurrentTokenColumn();;){for(var c=a.value,h=c.length;l=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510)}n.implement(this,a),this.setDocument=function(e){this.doc&&this.doc.removeListener("change",this.$onChange),this.doc=e,e.on("change",this.$onChange),this.bgTokenizer&&this.bgTokenizer.setDocument(this.getDocument()),this.resetCaches()},this.getDocument=function(){return this.doc},this.$resetRowCache=function(e){if(!e)return this.$docRowCache=[],void(this.$screenRowCache=[]);var t=this.$docRowCache.length,i=this.$getRowCacheIndex(this.$docRowCache,e)+1;t>i&&(this.$docRowCache.splice(i,t),this.$screenRowCache.splice(i,t))},this.$getRowCacheIndex=function(e,t){for(var i=0,n=e.length-1;i<=n;){var r=i+n>>1,o=e[r];if(t>o)i=r+1;else{if(!(t=t);o++);return(i=n[o])?(i.index=o,i.start=r-i.value.length,i):null},this.setUndoManager=function(e){if(this.$undoManager=e,this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel(),e){var t=this;this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.$deltasFold.length&&(t.$deltas.push({group:"fold",deltas:t.$deltasFold}),t.$deltasFold=[]),t.$deltasDoc.length&&(t.$deltas.push({group:"doc",deltas:t.$deltasDoc}),t.$deltasDoc=[]),t.$deltas.length>0&&e.execute({action:"aceupdate",args:[t.$deltas,t],merge:t.mergeUndoDeltas}),t.mergeUndoDeltas=!1,t.$deltas=[]},this.$informUndoManager=r.delayedCall(this.$syncInformUndoManager)}},this.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?r.stringRepeat(" ",this.getTabSize()):"\t"},this.setUseSoftTabs=function(e){this.setOption("useSoftTabs",e)},this.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},this.setTabSize=function(e){this.setOption("tabSize",e)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize==0},this.setNavigateWithinSoftTabs=function(e){this.setOption("navigateWithinSoftTabs",e)},this.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},this.$overwrite=!1,this.setOverwrite=function(e){this.setOption("overwrite",e)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=""),this.$decorations[e]+=" "+t,this._signal("changeBreakpoint",{})},this.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||"").replace(" "+t,""),this._signal("changeBreakpoint",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t0&&(n=!!i.charAt(t-1).match(this.tokenRe)),n||(n=!!i.charAt(t).match(this.tokenRe)),n)var r=this.tokenRe;else if(/^\s+$/.test(i.slice(t-1,t+1)))var r=/\s/;else var r=this.nonTokenRe;var o=t;if(o>0){do{o--}while(o>=0&&i.charAt(o).match(r));o++}for(var s=t;se&&(e=t.screenWidth)}),this.lineWidgetWidth=e},this.$computeWidth=function(e){if(this.$modified||e){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var t=this.doc.getAllLines(),i=this.$rowLengthCache,n=0,r=0,o=this.$foldData[r],s=o?o.start.row:1/0,a=t.length,l=0;ls){if((l=o.end.row+1)>=a)break;o=this.$foldData[r++],s=o?o.start.row:1/0}null==i[l]&&(i[l]=this.$getStringScreenWidth(t[l])[0]),i[l]>n&&(n=i[l])}this.screenWidth=n}},this.getLine=function(e){return this.doc.getLine(e)},this.getLines=function(e,t){return this.doc.getLines(e,t)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},this.insert=function(e,t){return this.doc.insert(e,t)},this.remove=function(e){return this.doc.remove(e)},this.removeFullLines=function(e,t){return this.doc.removeFullLines(e,t)},this.undoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var i=null,n=e.length-1;-1!=n;n--){var r=e[n];"doc"==r.group?(this.doc.revertDeltas(r.deltas),i=this.$getUndoSelection(r.deltas,!0,i)):r.deltas.forEach(function(e){this.addFolds(e.folds)},this)}return this.$fromUndo=!1,i&&this.$undoSelect&&!t&&this.selection.setSelectionRange(i),i}},this.redoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var i=null,n=0;ne.end.column&&(o.start.column+=a),o.end.row==e.end.row&&o.end.column>e.end.column&&(o.end.column+=a)),s&&o.start.row>=e.end.row&&(o.start.row+=s,o.end.row+=s)}if(o.end=this.insert(o.start,n),r.length){var l=e.start,c=o.start,s=c.row-l.row,a=c.column-l.column;this.addFolds(r.map(function(e){return e=e.clone(),e.start.row==l.row&&(e.start.column+=a),e.end.row==l.row&&(e.end.column+=a),e.start.row+=s,e.end.row+=s,e}))}return o},this.indentRows=function(e,t,i){i=i.replace(/\t/g,this.getTabString());for(var n=e;n<=t;n++)this.doc.insertInLine({row:n,column:0},i)},this.outdentRows=function(e){for(var t=e.collapseRows(),i=new h(0,0,0,0),n=this.getTabSize(),r=t.start.row;r<=t.end.row;++r){var o=this.getLine(r);i.start.row=r,i.end.row=r;for(var s=0;s0){var n=this.getRowFoldEnd(t+i);if(n>this.doc.getLength()-1)return 0;var r=n-t}else{e=this.$clipRowToDocument(e),t=this.$clipRowToDocument(t);var r=t-e+1}var o=new h(e,0,t,Number.MAX_VALUE),s=this.getFoldsInRange(o).map(function(e){return e=e.clone(),e.start.row+=r,e.end.row+=r,e}),a=0==i?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+r,a),s.length&&this.addFolds(s),r},this.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},this.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},this.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},this.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},this.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},this.$clipPositionToDocument=function(e,t){if(t=Math.max(0,t),e<0)e=0,t=0;else{var i=this.doc.getLength();e>=i?(e=i-1,t=this.doc.getLine(i-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},this.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(e){if(e!=this.$useWrapMode){if(this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0),e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal("changeWrapMode")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(e,t){this.$wrapLimitRange.min===e&&this.$wrapLimitRange.max===t||(this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},this.adjustWrapLimit=function(e,t){var i=this.$wrapLimitRange;i.max<0&&(i={min:t,max:t});var n=this.$constrainWrapLimit(e,i.min,i.max);return n!=this.$wrapLimit&&n>1&&(this.$wrapLimit=n,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0)},this.$constrainWrapLimit=function(e,t,i){return t&&(e=Math.max(t,e)),i&&(e=Math.min(i,e)),e},this.getWrapLimit=function(){return this.$wrapLimit},this.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,i=e.action,n=e.start,r=e.end,o=n.row,s=r.row,a=s-o,l=null;if(this.$updating=!0,0!=a)if("remove"===i){this[t?"$wrapData":"$rowLengthCache"].splice(o,a);var c=this.$foldData;l=this.getFoldsInRange(e),this.removeFolds(l);var h=this.getFoldLine(r.row),d=0;if(h){h.addRemoveChars(r.row,r.column,n.column-r.column),h.shiftRow(-a);var u=this.getFoldLine(o);u&&u!==h&&(u.merge(h),h=u),d=c.indexOf(h)+1}for(d;d=r.row&&h.shiftRow(-a)}s=o}else{var f=Array(a);f.unshift(o,0);var p=t?this.$wrapData:this.$rowLengthCache;p.splice.apply(p,f);var c=this.$foldData,h=this.getFoldLine(o),d=0;if(h){var m=h.range.compareInside(n.row,n.column);0==m?(h=h.split(n.row,n.column))&&(h.shiftRow(a),h.addRemoveChars(s,0,r.column-n.column)):-1==m&&(h.addRemoveChars(o,0,r.column-n.column),h.shiftRow(a)),d=c.indexOf(h)+1}for(d;d=o&&h.shiftRow(a)}}else{a=Math.abs(e.start.column-e.end.column),"remove"===i&&(l=this.getFoldsInRange(e),this.removeFolds(l),a=-a);var h=this.getFoldLine(o);h&&h.addRemoveChars(o,n.column,a)}return t&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,t?this.$updateWrapData(o,s):this.$updateRowLengthCache(o,s),l},this.$updateRowLengthCache=function(e,t,i){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},this.$updateWrapData=function(e,n){var r,o,s=this.doc.getAllLines(),a=this.getTabSize(),l=this.$wrapData,c=this.$wrapLimit,h=e;for(n=Math.min(n,s.length-1);h<=n;)o=this.getFoldLine(h,o),o?(r=[],o.walk(function(e,n,o,a){var l;if(null!=e){l=this.$getDisplayTokens(e,r.length),l[0]=t;for(var c=1;cn-v;){var w=u+n-v;if(e[w-1]>=o&&e[w]>=o)a(w);else if(e[w]!=t&&e[w]!=i){for(var y=Math.max(w-(n-(n>>2)),u-1);w>y&&e[w]y&&e[w]y&&9==e[w];)w--}else for(;w>y&&e[w]y?a(++w):(w=u+n,2==e[w]&&w--,a(w-v))}else{for(w;w!=u-1&&e[w]!=t;w--);if(w>u){a(w);continue}for(w=u+n;w39&&a<48||a>57&&a<64?r.push(9):a>=4352&&e(a)?r.push(1,2):r.push(1)}return r},this.$getStringScreenWidth=function(t,i,n){if(0==i)return[0,0];null==i&&(i=1/0),n=n||0;var r,o;for(o=0;o=4352&&e(r)?n+=2:n+=1,!(n>i));o++);return[n,o]},this.lineWidgets=null,this.getRowLength=function(e){if(this.lineWidgets)var t=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0;else t=0;return this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1+t:1+t},this.getRowLineCount=function(e){return this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1:1},this.getRowWrapIndent=function(e){if(this.$useWrapMode){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE),i=this.$wrapData[t.row];return i.length&&i[0]=0)var a=c[h],o=this.$docRowCache[h],u=e>c[d-1];else var u=!d;for(var f=this.getLength()-1,p=this.getNextFoldLine(o),m=p?p.start.row:1/0;a<=e&&(l=this.getRowLength(o),!(a+l>e||o>=f));)a+=l,++o>m&&(o=p.end.row+1,p=this.getNextFoldLine(o,p),m=p?p.start.row:1/0),u&&(this.$docRowCache.push(o),this.$screenRowCache.push(a));if(p&&p.start.row<=o)n=this.getFoldDisplayLine(p),o=p.start.row;else{if(a+l<=e||o>f)return{row:f,column:this.getLine(f).length};n=this.getLine(o),p=null}var g=0,v=Math.floor(e-a);if(this.$useWrapMode){var w=this.$wrapData[o];w&&(r=w[v],v>0&&w.length&&(g=w.indent,s=w[v-1]||w[w.length-1],n=n.substring(s)))}return void 0!==i&&this.$bidiHandler.isBidiRow(a+v,o,v)&&(t=this.$bidiHandler.offsetToCol(i)),s+=this.$getStringScreenWidth(n,t-g)[1],this.$useWrapMode&&s>=r&&(s=r-1),p?p.idxToPosition(s):{row:o,column:s}},this.documentToScreenPosition=function(e,t){if(void 0===t)var i=this.$clipPositionToDocument(e.row,e.column);else i=this.$clipPositionToDocument(e,t);e=i.row,t=i.column;var n=0,r=null,o=null;(o=this.getFoldAt(e,t,1))&&(e=o.start.row,t=o.start.column);var s,a=0,l=this.$docRowCache,c=this.$getRowCacheIndex(l,e),h=l.length;if(h&&c>=0)var a=l[c],n=this.$screenRowCache[c],d=e>l[h-1];else var d=!h;for(var u=this.getNextFoldLine(a),f=u?u.start.row:1/0;a=f){if((s=u.end.row+1)>e)break;u=this.getNextFoldLine(s,u),f=u?u.start.row:1/0}else s=a+1;n+=this.getRowLength(a),a=s,d&&(this.$docRowCache.push(a),this.$screenRowCache.push(n))}var p="";u&&a>=f?(p=this.getFoldDisplayLine(u,e,t),r=u.start.row):(p=this.getLine(e).substring(0,t),r=e);var m=0;if(this.$useWrapMode){var g=this.$wrapData[r];if(g){for(var v=0;p.length>=g[v];)n++,v++;p=p.substring(g[v-1]||0,p.length),m=v>0?g.indent:0}}return{row:n,column:m+this.$getStringScreenWidth(p)[0]}},this.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},this.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},this.getScreenLength=function(){var e=0,t=null;if(this.$useWrapMode)for(var i=this.$wrapData.length,n=0,r=0,t=this.$foldData[r++],o=t?t.start.row:1/0;no&&(n=t.end.row+1,t=this.$foldData[r++],o=t?t.start.row:1/0)}else{e=this.getLength();for(var a=this.$foldData,r=0;ri));o++);return[n,o]})},this.destroy=function(){this.bgTokenizer&&(this.bgTokenizer.setDocument(null),this.bgTokenizer=null),this.$stopWorker()},this.isFullWidth=e}.call(p.prototype),e("./edit_session/folding").Folding.call(p.prototype),e("./edit_session/bracket_match").BracketMatch.call(p.prototype),s.defineOptions(p.prototype,"session",{wrap:{set:function(e){if(e&&"off"!=e?"free"==e?e=!0:"printMargin"==e?e=-1:"string"==typeof e&&(e=parseInt(e,10)||!1):e=!1,this.$wrap!=e)if(this.$wrap=e,e){var t="number"==typeof e?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}else this.setUseWrapMode(!1)},get:function(){return this.getUseWrapMode()?-1==this.$wrap?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(e){(e="auto"==e?"text"!=this.$mode.type:"text"!=e)!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$modified=!0,this.$resetRowCache(0),this.$updateWrapData(0,this.getLength()-1)))},initialValue:"auto"},indentedSoftWrap:{initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){isNaN(e)||this.$tabSize===e||(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},overwrite:{set:function(e){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId}}}),t.EditSession=p}),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,i){"use strict";function n(e,t){function i(e){return/\w/.test(e)||t.regExp?"\\b":""}return i(e[0])+e+i(e[e.length-1])}var r=e("./lib/lang"),o=e("./lib/oop"),s=e("./range").Range,a=function(){this.$options={}};(function(){this.set=function(e){return o.mixin(this.$options,e),this},this.getOptions=function(){return r.copyObject(this.$options)},this.setOptions=function(e){this.$options=e},this.find=function(e){var t=this.$options,i=this.$matchIterator(e,t);if(!i)return!1;var n=null;return i.forEach(function(e,i,r,o){return n=new s(e,i,r,o),!(i==o&&t.start&&t.start.start&&0!=t.skipCurrent&&n.isEqual(t.start))||(n=null,!1)}),n},this.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var i=t.range,n=i?e.getLines(i.start.row,i.end.row):e.doc.getAllLines(),o=[],a=t.re;if(t.$isMultiLine){var l,c=a.length,h=n.length-c;e:for(var d=a.offset||0;d<=h;d++){for(var u=0;um||(o.push(l=new s(d,m,d+c-1,g)),c>2&&(d=d+c-2))}}else for(var v=0;vC&&o[u].end.row==i.end.row;)u--;for(o=o.slice(v,u+1),v=0,u=o.length;v=a;i--)if(d(i,Number.MAX_VALUE,e))return;if(0!=t.wrap)for(i=l,a=s.row;i>=a;i--)if(d(i,Number.MAX_VALUE,e))return}};else var c=function(e){var i=s.row;if(!d(i,s.column,e)){for(i+=1;i<=l;i++)if(d(i,0,e))return;if(0!=t.wrap)for(i=a,l=s.row;i<=l;i++)if(d(i,0,e))return}};if(t.$isMultiLine)var h=i.length,d=function(t,r,o){var s=n?t-h+1:t;if(!(s<0)){var a=e.getLine(s),l=a.search(i[0]);if(!(!n&&lr))return!!o(s,l,s+h-1,d)||void 0}}};else if(n)var d=function(t,n,r){var o,s=e.getLine(t),a=[],l=0;for(i.lastIndex=0;o=i.exec(s);){var c=o[0].length;if(l=o.index,!c){if(l>=s.length)break;i.lastIndex=l+=1}if(o.index+c>n)break;a.push(o.index,c)}for(var h=a.length-1;h>=0;h-=2){var d=a[h-1],c=a[h];if(r(t,d,t,d+c))return!0}};else var d=function(t,n,r){var o,s=e.getLine(t),a=n;for(i.lastIndex=n;o=i.exec(s);){var l=o[0].length;if(a=o.index,r(t,a,t,a+l))return!0;if(!l&&(i.lastIndex=a+=1,a>=s.length))return!1}};return{forEach:c}}}).call(a.prototype),t.Search=a}),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,i){"use strict";function n(e,t){this.platform=t||(s.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=!0}function r(e,t){n.call(this,e,t),this.$singleCommand=!1}var o=e("../lib/keys"),s=e("../lib/useragent"),a=o.KEY_MODS;r.prototype=n.prototype,function(){function e(e){return"object"==typeof e&&e.bindKey&&e.bindKey.position||(e.isDefault?-100:0)}this.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},this.removeCommand=function(e,t){var i=e&&("string"==typeof e?e:e.name);e=this.commands[i],t||delete this.commands[i];var n=this.commandKeyBinding;for(var r in n){var o=n[r];if(o==e)delete n[r];else if(Array.isArray(o)){var s=o.indexOf(e);-1!=s&&(o.splice(s,1),1==o.length&&(n[r]=o[0]))}}},this.bindKey=function(e,t,i){if("object"==typeof e&&e&&(void 0==i&&(i=e.position),e=e[this.platform]),e)return"function"==typeof t?this.addCommand({exec:t,bindKey:e,name:t.name||e}):void e.split("|").forEach(function(e){var n="";if(-1!=e.indexOf(" ")){var r=e.split(/\s+/);e=r.pop(),r.forEach(function(e){var t=this.parseKeys(e),i=a[t.hashId]+t.key;n+=(n?" ":"")+i,this._addCommandToBinding(n,"chainKeys")},this),n+=" "}var o=this.parseKeys(e),s=a[o.hashId]+o.key;this._addCommandToBinding(n+s,t,i)},this)},this._addCommandToBinding=function(t,i,n){var r,o=this.commandKeyBinding +;if(i)if(!o[t]||this.$singleCommand)o[t]=i;else{Array.isArray(o[t])?-1!=(r=o[t].indexOf(i))&&o[t].splice(r,1):o[t]=[o[t]],"number"!=typeof n&&(n=e(i));var s=o[t];for(r=0;rn)break}s.splice(r,0,i)}else delete o[t]},this.addCommands=function(e){e&&Object.keys(e).forEach(function(t){var i=e[t];if(i){if("string"==typeof i)return this.bindKey(i,t);"function"==typeof i&&(i={exec:i}),"object"==typeof i&&(i.name||(i.name=t),this.addCommand(i))}},this)},this.removeCommands=function(e){Object.keys(e).forEach(function(t){this.removeCommand(e[t])},this)},this.bindKeys=function(e){Object.keys(e).forEach(function(t){this.bindKey(t,e[t])},this)},this._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},this.parseKeys=function(e){var t=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(e){return e}),i=t.pop(),n=o[i];if(o.FUNCTION_KEYS[n])i=o.FUNCTION_KEYS[n].toLowerCase();else{if(!t.length)return{key:i,hashId:-1};if(1==t.length&&"shift"==t[0])return{key:i.toUpperCase(),hashId:-1}}for(var r=0,s=t.length;s--;){var a=o.KEY_MODS[t[s]];if(null==a)return"undefined"!=typeof console&&console.error("invalid modifier "+t[s]+" in "+e),!1;r|=a}return{key:i,hashId:r}},this.findKeyCommand=function(e,t){var i=a[e]+t;return this.commandKeyBinding[i]},this.handleKeyboard=function(e,t,i,n){if(!(n<0)){var r=a[t]+i,o=this.commandKeyBinding[r];return e.$keyChain&&(e.$keyChain+=" "+r,o=this.commandKeyBinding[e.$keyChain]||o),!o||"chainKeys"!=o&&"chainKeys"!=o[o.length-1]?(e.$keyChain&&(t&&4!=t||1!=i.length?(-1==t||n>0)&&(e.$keyChain=""):e.$keyChain=e.$keyChain.slice(0,-r.length-1)),{command:o}):(e.$keyChain=e.$keyChain||r,{command:"null"})}},this.getStatusText=function(e,t){return t.$keyChain||""}}.call(n.prototype),t.HashHandler=n,t.MultiHashHandler=r}),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("../lib/oop"),r=e("../keyboard/hash_handler").MultiHashHandler,o=e("../lib/event_emitter").EventEmitter,s=function(e,t){r.call(this,t,e),this.byName=this.commands,this.setDefaultHandler("exec",function(e){return e.command.exec(e.editor,e.args||{})})};n.inherits(s,r),function(){n.implement(this,o),this.exec=function(e,t,i){if(Array.isArray(e)){for(var n=e.length;n--;)if(this.exec(e[n],t,i))return!0;return!1}if("string"==typeof e&&(e=this.commands[e]),!e)return!1;if(t&&t.$readOnly&&!e.readOnly)return!1;if(e.isAvailable&&!e.isAvailable(t))return!1;var r={editor:t,command:e,args:i};return r.returnValue=this._emit("exec",r),this._signal("afterExec",r),!1!==r.returnValue},this.toggleRecording=function(e){if(!this.$inReplay)return e&&e._emit("changeStatus"),this.recording?(this.macro.pop(),this.removeEventListener("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},this.replay=function(e){if(!this.$inReplay&&this.macro){if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach(function(t){"string"==typeof t?this.exec(t,e):this.exec(t[0],e,t[1])},this)}finally{this.$inReplay=!1}}},this.trimMacro=function(e){return e.map(function(e){return"string"!=typeof e[0]&&(e[0]=e[0].name),e[1]||(e=e[0]),e})}}.call(s.prototype),t.CommandManager=s}),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function(e,t,i){"use strict";function n(e,t){return{win:e,mac:t}}var r=e("../lib/lang"),o=e("../config"),s=e("../range").Range;t.commands=[{name:"showSettingsMenu",bindKey:n("Ctrl-,","Command-,"),exec:function(e){o.loadModule("ace/ext/settings_menu",function(t){t.init(e),e.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",bindKey:n("Alt-E","F4"),exec:function(e){o.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",bindKey:n("Alt-Shift-E","Shift-F4"),exec:function(e){o.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",bindKey:n("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",bindKey:n(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",bindKey:n("Ctrl-L","Command-L"),exec:function(e){var t=parseInt(prompt("Enter line number:"),10);isNaN(t)||e.gotoLine(t)},readOnly:!0},{name:"fold",bindKey:n("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:n("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",bindKey:n("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",bindKey:n("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",bindKey:n(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",bindKey:n("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",bindKey:n("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",bindKey:n("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",bindKey:n("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",bindKey:n("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",bindKey:n("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",bindKey:n("Ctrl-F","Command-F"),exec:function(e){o.loadModule("ace/ext/searchbox",function(t){t.Search(e)})},readOnly:!0},{name:"overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",bindKey:n("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",bindKey:n("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",bindKey:n("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",bindKey:n("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",bindKey:n("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",bindKey:n("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",bindKey:n("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",bindKey:n("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",bindKey:n("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",bindKey:n("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",bindKey:n("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",bindKey:n("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",bindKey:n("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",bindKey:n("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",bindKey:n("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",bindKey:n("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",bindKey:n("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",bindKey:n("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",bindKey:n("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",bindKey:n("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",bindKey:n(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",bindKey:n("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",bindKey:n(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",bindKey:n("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",bindKey:n("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",bindKey:n("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",bindKey:n("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",bindKey:n("Ctrl-P","Ctrl-P"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",bindKey:n("Ctrl-Shift-P","Ctrl-Shift-P"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",bindKey:n("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",bindKey:n(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",exec:function(e){},readOnly:!0},{name:"cut",exec:function(e){var t=e.getSelectionRange();e._emit("cut",t),e.selection.isEmpty()||(e.session.remove(t),e.clearSelection())},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",bindKey:n("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",bindKey:n("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",bindKey:n("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",bindKey:n("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",bindKey:n("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",bindKey:n("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",bindKey:n("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",bindKey:n("Ctrl-H","Command-Option-F"),exec:function(e){o.loadModule("ace/ext/searchbox",function(t){t.Search(e,!0)})}},{name:"undo",bindKey:n("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",bindKey:n("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",bindKey:n("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",bindKey:n("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",bindKey:n("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",bindKey:n("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",bindKey:n("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",bindKey:n("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",bindKey:n("Shift-Delete",null),exec:function(e){if(!e.selection.isEmpty())return!1;e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",bindKey:n("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",bindKey:n("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",bindKey:n("Ctrl-Shift-Backspace",null),exec:function(e){var t=e.selection.getRange();t.start.column=0,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",bindKey:n("Ctrl-Shift-Delete",null),exec:function(e){var t=e.selection.getRange();t.end.column=Number.MAX_VALUE,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",bindKey:n("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",bindKey:n("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",bindKey:n("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",bindKey:n("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",bindKey:n("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",bindKey:n("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",exec:function(e,t){e.insert(r.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",bindKey:n(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",bindKey:n("Alt-Shift-X","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",bindKey:n("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",bindKey:n("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"expandtoline",bindKey:n("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"joinlines",bindKey:n(null,null),exec:function(e){for(var t=e.selection.isBackwards(),i=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),n=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),o=e.session.doc.getLine(i.row).length,a=e.session.doc.getTextRange(e.selection.getRange()),l=a.replace(/\n\s*/," ").length,c=e.session.doc.getLine(i.row),h=i.row+1;h<=n.row+1;h++){var d=r.stringTrimLeft(r.stringTrimRight(e.session.doc.getLine(h)));0!==d.length&&(d=" "+d),c+=d}n.row+10?(e.selection.moveCursorTo(i.row,i.column),e.selection.selectTo(i.row,i.column+l)):(o=e.session.doc.getLine(i.row).length>o?o+1:o,e.selection.moveCursorTo(i.row,o))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",bindKey:n(null,null),exec:function(e){var t=e.session.doc.getLength()-1,i=e.session.doc.getLine(t).length,n=e.selection.rangeList.ranges,r=[];n.length<1&&(n=[e.selection.getRange()]);for(var o=0;o0&&this.$blockScrolling--;var i=t&&t.scrollIntoView;if(i){switch(i){case"center-animate":i="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var n=this.selection.getRange(),r=this.renderer.layerConfig;(n.start.row>=r.lastRow||n.end.row<=r.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead)}"animate"==i&&this.renderer.animateScrolling(this.curOp.scrollTop)}this.prevOp=this.curOp,this.curOp=null}},this.$mergeableCommands=["backspace","del","insertstring"],this.$historyTracker=function(e){if(this.$mergeUndoDeltas){var t=this.prevOp,i=this.$mergeableCommands,n=t.command&&e.command.name==t.command.name;if("insertstring"==e.command.name){var r=e.args;void 0===this.mergeNextCommand&&(this.mergeNextCommand=!0),n=n&&this.mergeNextCommand&&(!/\s/.test(r)||/\s/.test(t.args)),this.mergeNextCommand=!0}else n=n&&-1!==i.indexOf(e.command.name);"always"!=this.$mergeUndoDeltas&&Date.now()-this.sequenceStartTime>2e3&&(n=!1),n?this.session.mergeUndoDeltas=!0:-1!==i.indexOf(e.command.name)&&(this.sequenceStartTime=Date.now())}},this.setKeyboardHandler=function(e,t){if(e&&"string"==typeof e){this.$keybindingId=e;var i=this;v.loadModule(["keybinding",e],function(n){i.$keybindingId==e&&i.keyBinding.setKeyboardHandler(n&&n.handler),t&&t()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(e){if(this.session!=e){this.curOp&&this.endOperation(),this.curOp={};var t=this.session;if(t){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var i=this.session.getSelection();i.off("changeCursor",this.$onCursorChange),i.off("changeSelection",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.on("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.$blockScrolling+=1,this.onCursorChange(),this.$blockScrolling-=1,this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(e)),this._signal("changeSession",{session:e,oldSession:t}),this.curOp=null,t&&t._signal("changeEditor",{oldEditor:this}),e&&e._signal("changeEditor",{editor:this}),e&&e.bgTokenizer&&e.bgTokenizer.scheduleStart()}},this.getSession=function(){return this.session},this.setValue=function(e,t){return this.session.doc.setValue(e),t?1==t?this.navigateFileEnd():-1==t&&this.navigateFileStart():this.selectAll(),e},this.getValue=function(){return this.session.getValue()},this.getSelection=function(){return this.selection},this.resize=function(e){this.renderer.onResize(e)},this.setTheme=function(e,t){this.renderer.setTheme(e,t)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(e){this.renderer.setStyle(e)},this.unsetStyle=function(e){this.renderer.unsetStyle(e)},this.getFontSize=function(){return this.getOption("fontSize")||r.computedStyle(this.container,"fontSize")},this.setFontSize=function(e){this.setOption("fontSize",e)},this.$highlightBrackets=function(){if(this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null),!this.$highlightPending){var e=this;this.$highlightPending=!0,setTimeout(function(){e.$highlightPending=!1;var t=e.session;if(t&&t.bgTokenizer){var i=t.findMatchingBracket(e.getCursorPosition());if(i)var n=new f(i.row,i.column,i.row,i.column+1);else if(t.$mode.getMatching)var n=t.$mode.getMatching(e.session);n&&(t.$bracketHighlight=t.addMarker(n,"ace_bracket","text"))}},50)}},this.$highlightTags=function(){if(!this.$highlightTagPending){var e=this;this.$highlightTagPending=!0,setTimeout(function(){e.$highlightTagPending=!1;var t=e.session;if(t&&t.bgTokenizer){var i=e.getCursorPosition(),n=new w(e.session,i.row,i.column),r=n.getCurrentToken();if(!r||!/\b(?:tag-open|tag-name)/.test(r.type))return t.removeMarker(t.$tagHighlight),void(t.$tagHighlight=null);if(-1==r.type.indexOf("tag-open")||(r=n.stepForward())){var o=r.value,s=0,a=n.stepBackward();if("<"==a.value)do{a=r,(r=n.stepForward())&&r.value===o&&-1!==r.type.indexOf("tag-name")&&("<"===a.value?s++:"=0);else{do{r=a,a=n.stepBackward(),r&&r.value===o&&-1!==r.type.indexOf("tag-name")&&("<"===a.value?s++:"1||(e=!1)),t.$highlightLineMarker&&!e)t.removeMarker(t.$highlightLineMarker.id),t.$highlightLineMarker=null;else if(!t.$highlightLineMarker&&e){var i=new f(e.row,e.column,e.row,1/0);i.id=t.addMarker(i,"ace_active-line","screenLine"),t.$highlightLineMarker=i}else e&&(t.$highlightLineMarker.start.row=e.row,t.$highlightLineMarker.end.row=e.row,t.$highlightLineMarker.start.column=e.column,t._signal("changeBackMarker"))},this.onSelectionChange=function(e){var t=this.session;if(t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var i=this.selection.getRange(),n=this.getSelectionStyle();t.$selectionMarker=t.addMarker(i,"ace_selection",n)}var r=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(r),this._signal("changeSelection")},this.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(!t.isEmpty()&&!t.isMultiLine()){var i=t.start.column-1,n=t.end.column+1,r=e.getLine(t.start.row),o=r.length,s=r.substring(Math.max(i,0),Math.min(n,o));if(!(i>=0&&/^[\w\d]/.test(s)||n<=o&&/[\w\d]$/.test(s))&&(s=r.substring(t.start.column,t.end.column),/^[\w\d]+$/.test(s))){return this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:s})}}},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(e){this.renderer.updateText(),this._emit("changeMode",e)},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},this.getCopyText=function(){var e=this.getSelectedText();return this._signal("copy",e),e},this.onCopy=function(){this.commands.exec("copy",this)},this.onCut=function(){this.commands.exec("cut",this)},this.onPaste=function(e,t){var i={text:e,event:t};this.commands.exec("paste",this,i)},this.$handlePaste=function(e){"string"==typeof e&&(e={text:e}),this._signal("paste",e);var t=e.text;if(!this.inMultiSelectMode||this.inVirtualSelectionMode)this.insert(t);else{var i=t.split(/\r\n|\r|\n/),n=this.selection.rangeList.ranges;if(i.length>n.length||i.length<2||!i[1])return this.commands.exec("insertstring",this,t);for(var r=n.length;r--;){var o=n[r];o.isEmpty()||this.session.remove(o),this.session.insert(o.start,i[r])}}},this.execCommand=function(e,t){return this.commands.exec(e,this,t)},this.insert=function(e,t){var i=this.session,n=i.getMode(),r=this.getCursorPosition();if(this.getBehavioursEnabled()&&!t){var o=n.transformAction(i.getState(r.row),"insertion",this,i,e);o&&(e!==o.text&&(this.session.mergeUndoDeltas=!1,this.$mergeNextCommand=!1),e=o.text)}if("\t"==e&&(e=this.session.getTabString()),this.selection.isEmpty()){if(this.session.getOverwrite()&&-1==e.indexOf("\n")){var s=new f.fromPoints(r,r);s.end.column+=e.length,this.session.remove(s)}}else{var s=this.getSelectionRange();r=this.session.remove(s),this.clearSelection()}if("\n"==e||"\r\n"==e){var a=i.getLine(r.row);if(r.column>a.search(/\S|$/)){var l=a.substr(r.column).search(/\S|$/);i.doc.removeInLine(r.row,r.column,r.column+l)}}this.clearSelection();var c=r.column,h=i.getState(r.row),a=i.getLine(r.row),d=n.checkOutdent(h,a,e);i.insert(r,e);if(o&&o.selection&&(2==o.selection.length?this.selection.setSelectionRange(new f(r.row,c+o.selection[0],r.row,c+o.selection[1])):this.selection.setSelectionRange(new f(r.row+o.selection[0],o.selection[1],r.row+o.selection[2],o.selection[3]))),i.getDocument().isNewLine(e)){var u=n.getNextLineIndent(h,a.slice(0,r.column),i.getTabString());i.insert({row:r.row+1,column:0},u)}d&&n.autoOutdent(h,i,r.row)},this.onTextInput=function(e){this.keyBinding.onTextInput(e)},this.onCommandKey=function(e,t,i){this.keyBinding.onCommandKey(e,t,i)},this.setOverwrite=function(e){this.session.setOverwrite(e)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(e){this.setOption("scrollSpeed",e)},this.getScrollSpeed=function(){return this.getOption("scrollSpeed")},this.setDragDelay=function(e){this.setOption("dragDelay",e)},this.getDragDelay=function(){return this.getOption("dragDelay")},this.setSelectionStyle=function(e){this.setOption("selectionStyle",e)},this.getSelectionStyle=function(){return this.getOption("selectionStyle")},this.setHighlightActiveLine=function(e){this.setOption("highlightActiveLine",e)},this.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.setHighlightSelectedWord=function(e){this.setOption("highlightSelectedWord",e)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(e){this.setOption("readOnly",e)},this.getReadOnly=function(){return this.getOption("readOnly")},this.setBehavioursEnabled=function(e){this.setOption("behavioursEnabled",e)},this.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},this.setWrapBehavioursEnabled=function(e){this.setOption("wrapBehavioursEnabled",e)},this.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},this.setShowFoldWidgets=function(e){this.setOption("showFoldWidgets",e)},this.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.remove=function(e){this.selection.isEmpty()&&("left"==e?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var i=this.session,n=i.getState(t.start.row),r=i.getMode().transformAction(n,"deletion",this,i,t);if(0===t.end.column){var o=i.getTextRange(t);if("\n"==o[o.length-1]){var s=i.getLine(t.end.row);/^\s+$/.test(s)&&(t.end.column=s.length)}}r&&(t=r)}this.session.remove(t),this.clearSelection()},this.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(e)},this.transposeLetters=function(){if(this.selection.isEmpty()){var e=this.getCursorPosition(),t=e.column;if(0!==t){var i,n,r=this.session.getLine(e.row);tt.toLowerCase()?1:0});for(var r=new f(0,0,0,0),n=e.first;n<=e.last;n++){var o=t.getLine(n);r.start.row=n,r.end.row=n,r.end.column=o.length,t.replace(r,i[n-e.first])}},this.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},this.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),i=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,i,e)},this.getNumberAt=function(e,t){var i=/[\-]?[0-9]+(?:\.[0-9]+)?/g;i.lastIndex=0;for(var n=this.session.getLine(e);i.lastIndex=t){return{value:r[0],start:r.index,end:r.index+r[0].length}}}return null},this.modifyNumber=function(e){var t=this.selection.getCursor().row,i=this.selection.getCursor().column,n=new f(t,i-1,t,i),r=this.session.getTextRange(n);if(!isNaN(parseFloat(r))&&isFinite(r)){var o=this.getNumberAt(t,i);if(o){var s=o.value.indexOf(".")>=0?o.start+o.value.indexOf(".")+1:o.end,a=o.start+o.value.length-s,l=parseFloat(o.value);l*=Math.pow(10,a),s!==o.end&&if+1)break;f=p.last}for(h--,a=this.session.$moveLines(u,f,t?0:e),t&&-1==e&&(d=h+1);d<=h;)s[d].moveBy(a,0),d++;t||(a=0),l+=a}r.fromOrientedRange(r.ranges[0]),r.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},this.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},this.onCompositionStart=function(e){this.renderer.showComposition(this.getCursorPosition())},this.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},this.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(e,t){var i=this.renderer,n=this.renderer.layerConfig,r=e*Math.floor(n.height/n.lineHeight);this.$blockScrolling++,!0===t?this.selection.$moveSelection(function(){this.moveCursorBy(r,0)}):!1===t&&(this.selection.moveCursorBy(r,0),this.selection.clearSelection()),this.$blockScrolling--;var o=i.scrollTop;i.scrollBy(0,r*n.lineHeight),null!=t&&i.scrollCursorIntoView(null,.5),i.animateScrolling(o)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(e){this.renderer.scrollToRow(e)},this.scrollToLine=function(e,t,i,n){this.renderer.scrollToLine(e,t,i,n)},this.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},this.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},this.jumpToMatching=function(e,t){var i=this.getCursorPosition(),n=new w(this.session,i.row,i.column),r=n.getCurrentToken(),o=r||n.stepForward();if(o){var s,a,l=!1,c={},h=i.column-o.start,d={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(o.value.match(/[{}()\[\]]/g)){for(;h=0;--o)this.$tryReplace(i[o],e)&&n++;return this.selection.setSelectionRange(r),this.$blockScrolling-=1,n},this.$tryReplace=function(e,t){var i=this.session.getTextRange(e);return t=this.$search.replace(i,t),null!==t?(e.end=this.session.replace(e,t),e):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(e,t,i){t||(t={}),"string"==typeof e||e instanceof RegExp?t.needle=e:"object"==typeof e&&n.mixin(t,e);var r=this.selection.getRange();null==t.needle&&(e=this.session.getTextRange(r)||this.$search.$options.needle,e||(r=this.session.getWordRange(r.start.row,r.start.column),e=this.session.getTextRange(r)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:r});var o=this.$search.find(this.session);return t.preventScroll?o:o?(this.revealRange(o,i),o):(t.backwards?r.start=r.end:r.end=r.start,void this.selection.setRange(r))},this.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},this.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},this.revealRange=function(e,t){this.$blockScrolling+=1,this.session.unfold(e),this.selection.setSelectionRange(e),this.$blockScrolling-=1;var i=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),!1!==t&&this.renderer.animateScrolling(i)},this.undo=function(){this.$blockScrolling++,this.session.getUndoManager().undo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.redo=function(){this.$blockScrolling++,this.session.getUndoManager().redo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.destroy=function(){this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy()},this.setAutoScrollEditorIntoView=function(e){if(e){var t,i=this,n=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var r=this.$scrollAnchor;r.style.cssText="position:absolute",this.container.insertBefore(r,this.container.firstChild);var o=this.on("changeSelection",function(){n=!0}),s=this.renderer.on("beforeRender",function(){n&&(t=i.renderer.container.getBoundingClientRect())}),a=this.renderer.on("afterRender",function(){if(n&&t&&(i.isFocused()||i.searchBox&&i.searchBox.isFocused())){var e=i.renderer,o=e.$cursorLayer.$pixelPos,s=e.layerConfig,a=o.top-s.offset;n=o.top>=0&&a+t.top<0||!(o.topwindow.innerHeight)&&null,null!=n&&(r.style.top=a+"px",r.style.left=o.left+"px",r.style.height=s.lineHeight+"px",r.scrollIntoView(n)),n=t=null}});this.setAutoScrollEditorIntoView=function(e){e||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",o),this.renderer.off("afterRender",a),this.renderer.off("beforeRender",s))}}},this.$resetCursorStyle=function(){var e=this.$cursorStyle||"ace",t=this.renderer.$cursorLayer;t&&(t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&"wide"!=e,r.setCssClass(t.element,"ace_slim-cursors",/slim/.test(e)))}}.call(y.prototype),v.defineOptions(y.prototype,"editor",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:e})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.$resetCursorStyle()},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},keyboardHandler:{set:function(e){this.setKeyboardHandler(e)},get:function(){return this.keybindingId},handlesSet:!0},hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",showLineNumbers:"renderer",showGutter:"renderer",displayIndentGuides:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"}),t.Editor=y}),ace.define("ace/undomanager",["require","exports","module"],function(e,t,i){"use strict";var n=function(){this.reset()};(function(){function e(e){return{action:e.action,start:e.start,end:e.end,lines:1==e.lines.length?null:e.lines,text:1==e.lines.length?e.lines[0]:null}}function t(e){return{action:e.action,start:e.start,end:e.end,lines:e.lines||[e.text]}}function i(e,t){for(var i=new Array(e.length),n=0;n0},this.hasRedo=function(){return this.$redoStack.length>0},this.markClean=function(){this.dirtyCounter=0},this.isClean=function(){return 0===this.dirtyCounter},this.$serializeDeltas=function(t){return i(t,e)},this.$deserializeDeltas=function(e){return i(e,t)}}).call(n.prototype),t.UndoManager=n}),ace.define("ace/layer/gutter",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("../lib/dom"),r=e("../lib/oop"),o=e("../lib/lang"),s=e("../lib/event_emitter").EventEmitter,a=function(e){this.element=n.createElement("div"),this.element.className="ace_layer ace_gutter-layer",e.appendChild(this.element),this.setShowFoldWidgets(this.$showFoldWidgets),this.gutterWidth=0,this.$annotations=[],this.$updateAnnotations=this.$updateAnnotations.bind(this),this.$cells=[]};(function(){r.implement(this,s),this.setSession=function(e){this.session&&this.session.removeEventListener("change",this.$updateAnnotations),this.session=e,e&&e.on("change",this.$updateAnnotations)},this.addGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.addGutterDecoration"),this.session.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.removeGutterDecoration"),this.session.removeGutterDecoration(e,t)},this.setAnnotations=function(e){this.$annotations=[];for(var t=0;ts&&(m=o.end.row+1,o=t.getNextFoldLine(m,o),s=o?o.start.row:1/0),m>r){for(;this.$cells.length>p+1;)f=this.$cells.pop(),this.element.removeChild(f.element);break}f=this.$cells[++p],f||(f={element:null,textNode:null,foldWidget:null},f.element=n.createElement("div"),f.textNode=document.createTextNode(""),f.element.appendChild(f.textNode),this.element.appendChild(f.element),this.$cells[p]=f);var g="ace_gutter-cell ";l[m]&&(g+=l[m]),c[m]&&(g+=c[m]),this.$annotations[m]&&(g+=this.$annotations[m].className),f.element.className!=g&&(f.element.className=g);var v=t.getRowLength(m)*e.lineHeight+"px";if(v!=f.element.style.height&&(f.element.style.height=v),a){var w=a[m];null==w&&(w=a[m]=t.getFoldWidget(m))}if(w){f.foldWidget||(f.foldWidget=n.createElement("span"),f.element.appendChild(f.foldWidget));var g="ace_fold-widget ace_"+w;"start"==w&&m==s&&mi.right-t.right?"foldWidgets":void 0}}).call(a.prototype),t.Gutter=a}),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(e,t,i){"use strict";var n=e("../range").Range,r=e("../lib/dom"),o=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)};(function(){function e(e,t,i,n){return(e?1:0)|(t?2:0)|(i?4:0)|(n?8:0)}this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setMarkers=function(e){this.markers=e},this.update=function(e){if(e){this.config=e;var t=[];for(var i in this.markers){var n=this.markers[i];if(n.range){var r=n.range.clipRows(e.firstRow,e.lastRow);if(!r.isEmpty())if(r=r.toScreenRange(this.session),n.renderer){var o=this.$getTop(r.start.row,e),s=this.$padding+(this.session.$bidiHandler.isBidiRow(r.start.row)?this.session.$bidiHandler.getPosLeft(r.start.column):r.start.column*e.characterWidth);n.renderer(t,r,s,o,e)}else"fullLine"==n.type?this.drawFullLineMarker(t,r,n.clazz,e):"screenLine"==n.type?this.drawScreenLineMarker(t,r,n.clazz,e):r.isMultiLine()?"text"==n.type?this.drawTextMarker(t,r,n.clazz,e):this.drawMultiLineMarker(t,r,n.clazz,e):this.session.$bidiHandler.isBidiRow(r.start.row)?this.drawBidiSingleLineMarker(t,r,n.clazz+" ace_start ace_br15",e):this.drawSingleLineMarker(t,r,n.clazz+" ace_start ace_br15",e)}else n.update(t,this,this.session,e)}this.element.innerHTML=t.join("")}},this.$getTop=function(e,t){return(e-t.firstRowScreen)*t.lineHeight},this.drawTextMarker=function(t,i,r,o,s){for(var a=this.session,l=i.start.row,c=i.end.row,h=l,d=0,u=0,f=a.getScreenLastRowColumn(h),p=null,m=new n(h,i.start.column,h,u);h<=c;h++)m.start.row=m.end.row=h,m.start.column=h==l?i.start.column:a.getRowWrapIndent(h),m.end.column=f,d=u,u=f,f=h+1f,h==c),this.session.$bidiHandler.isBidiRow(h)?this.drawBidiSingleLineMarker(t,m,p,o,h==c?0:1,s):this.drawSingleLineMarker(t,m,p,o,h==c?0:1,s)},this.drawMultiLineMarker=function(e,t,i,n,r){var o,s,a,l=this.$padding;if(r=r||"", +this.session.$bidiHandler.isBidiRow(t.start.row)){var c=t.clone();c.end.row=c.start.row,c.end.column=this.session.getLine(c.start.row).length,this.drawBidiSingleLineMarker(e,c,i+" ace_br1 ace_start",n,null,r)}else o=n.lineHeight,s=this.$getTop(t.start.row,n),a=l+t.start.column*n.characterWidth,e.push("
");if(this.session.$bidiHandler.isBidiRow(t.end.row)){var c=t.clone();c.start.row=c.end.row,c.start.column=0,this.drawBidiSingleLineMarker(e,c,i+" ace_br12",n,null,r)}else{var h=t.end.column*n.characterWidth;o=n.lineHeight,s=this.$getTop(t.end.row,n),e.push("
")}if(!((o=(t.end.row-t.start.row-1)*n.lineHeight)<=0)){s=this.$getTop(t.start.row+1,n);var d=(t.start.column?1:0)|(t.end.column?0:8);e.push("
")}},this.drawSingleLineMarker=function(e,t,i,n,r,o){var s=n.lineHeight,a=(t.end.column+(r||0)-t.start.column)*n.characterWidth,l=this.$getTop(t.start.row,n),c=this.$padding+t.start.column*n.characterWidth;e.push("
")},this.drawBidiSingleLineMarker=function(e,t,i,n,r,o){var s=n.lineHeight,a=this.$getTop(t.start.row,n),l=this.$padding;this.session.$bidiHandler.getSelections(t.start.column,t.end.column).forEach(function(t){e.push("
")})},this.drawFullLineMarker=function(e,t,i,n,r){var o=this.$getTop(t.start.row,n),s=n.lineHeight;t.start.row!=t.end.row&&(s+=this.$getTop(t.end.row,n)-o),e.push("
")},this.drawScreenLineMarker=function(e,t,i,n,r){var o=this.$getTop(t.start.row,n),s=n.lineHeight;e.push("
")}}).call(o.prototype),t.Marker=o}),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("../lib/oop"),r=e("../lib/dom"),o=e("../lib/lang"),s=(e("../lib/useragent"),e("../lib/event_emitter").EventEmitter),a=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this)};(function(){n.implement(this,s),this.EOF_CHAR="¶",this.EOL_CHAR_LF="¬",this.EOL_CHAR_CRLF="¤",this.EOL_CHAR=this.EOL_CHAR_LF,this.TAB_CHAR="—",this.SPACE_CHAR="·",this.$padding=0,this.$updateEolChar=function(){var e="\n"==this.session.doc.getNewLineCharacter()?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=e)return this.EOL_CHAR=e,!0},this.setPadding=function(e){this.$padding=e,this.element.style.padding="0 "+e+"px"},this.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},this.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},this.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(e){this._signal("changeCharacterSize",e)}.bind(this)),this.$pollSizeChanges()},this.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},this.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},this.setSession=function(e){this.session=e,e&&this.$computeTabString()},this.showInvisibles=!1,this.setShowInvisibles=function(e){return this.showInvisibles!=e&&(this.showInvisibles=e,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(e){return this.displayIndentGuides!=e&&(this.displayIndentGuides=e,this.$computeTabString(),!0)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;for(var t=this.$tabStrings=[0],i=1;i"+o.stringRepeat(this.TAB_CHAR,i)+""):t.push(o.stringRepeat(" ",i));if(this.displayIndentGuides){this.$indentGuideRe=/\s\S| \t|\t |\s$/;var n="ace_indent-guide",r="",s="";if(this.showInvisibles){n+=" ace_invisible",r=" ace_invisible_space",s=" ace_invisible_tab";var a=o.stringRepeat(this.SPACE_CHAR,this.tabSize),l=o.stringRepeat(this.TAB_CHAR,this.tabSize)}else var a=o.stringRepeat(" ",this.tabSize),l=a;this.$tabStrings[" "]=""+a+"",this.$tabStrings["\t"]=""+l+""}},this.updateLines=function(e,t,i){this.config.lastRow==e.lastRow&&this.config.firstRow==e.firstRow||this.scrollLines(e),this.config=e;for(var n=Math.max(t,e.firstRow),r=Math.min(i,e.lastRow),o=this.element.childNodes,s=0,a=e.firstRow;ac&&(a=l.end.row+1,l=this.session.getNextFoldLine(a,l),c=l?l.start.row:1/0),a>r)break;var h=o[s++];if(h){var d=[];this.$renderLine(d,a,!this.$useLineGroups(),a==c&&l),h.style.height=e.lineHeight*this.session.getRowLength(a)+"px",h.innerHTML=d.join("")}a++}},this.scrollLines=function(e){var t=this.config;if(this.config=e,!t||t.lastRow0;n--)i.removeChild(i.firstChild);if(t.lastRow>e.lastRow)for(var n=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);n>0;n--)i.removeChild(i.lastChild);if(e.firstRowt.lastRow){var r=this.$renderLinesFragment(e,t.lastRow+1,e.lastRow);i.appendChild(r)}},this.$renderLinesFragment=function(e,t,i){for(var n=this.element.ownerDocument.createDocumentFragment(),o=t,s=this.session.getNextFoldLine(o),a=s?s.start.row:1/0;;){if(o>a&&(o=s.end.row+1,s=this.session.getNextFoldLine(o,s),a=s?s.start.row:1/0),o>i)break;var l=r.createElement("div"),c=[];if(this.$renderLine(c,o,!1,o==a&&s),l.innerHTML=c.join(""),this.$useLineGroups())l.className="ace_line_group",n.appendChild(l),l.style.height=e.lineHeight*this.session.getRowLength(o)+"px";else for(;l.firstChild;)n.appendChild(l.firstChild);o++}return n},this.update=function(e){this.config=e;for(var t=[],i=e.firstRow,n=e.lastRow,r=i,o=this.session.getNextFoldLine(r),s=o?o.start.row:1/0;;){if(r>s&&(r=o.end.row+1,o=this.session.getNextFoldLine(r,o),s=o?o.start.row:1/0),r>n)break;this.$useLineGroups()&&t.push("
"),this.$renderLine(t,r,!1,r==s&&o),this.$useLineGroups()&&t.push("
"),r++}this.element.innerHTML=t.join("")},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(e,t,i,n){var r=this,s=function(e,i,n,s,a){if(i)return r.showInvisibles?""+o.stringRepeat(r.SPACE_CHAR,e.length)+"":e;if("&"==e)return"&";if("<"==e)return"<";if(">"==e)return">";if("\t"==e){var l=r.session.getScreenTabSize(t+s);return t+=l-1,r.$tabStrings[l]}if(" "==e){var c=r.showInvisibles?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",h=r.showInvisibles?r.SPACE_CHAR:"";return t+=1,""+h+""}return n?""+r.SPACE_CHAR+"":(t+=1,""+e+"")},a=n.replace(/\t|&|<|>|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\u3000\uFEFF\uFFF9-\uFFFC])|[\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3000-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,s);if(this.$textToken[i.type])e.push(a);else{var l="ace_"+i.type.replace(/\./g," ace_"),c="";"fold"==i.type&&(c=" style='width:"+i.value.length*this.config.characterWidth+"px;' "),e.push("",a,"")}return t+n.length},this.renderIndentGuide=function(e,t,i){var n=t.search(this.$indentGuideRe);return n<=0||n>=i?t:" "==t[0]?(n-=n%this.tabSize,e.push(o.stringRepeat(this.$tabStrings[" "],n/this.tabSize)),t.substr(n)):"\t"==t[0]?(e.push(o.stringRepeat(this.$tabStrings["\t"],n)),t.substr(n)):t},this.$renderWrappedLine=function(e,t,i,n){for(var r=0,s=0,a=i[0],l=0,c=0;c=a;)l=this.$renderToken(e,l,h,d.substring(0,a-r)),d=d.substring(a-r),r=a,n||e.push("","
"),e.push(o.stringRepeat(" ",i.indent)),s++,l=0,a=i[s]||Number.MAX_VALUE;0!=d.length&&(r+=d.length,l=this.$renderToken(e,l,h,d))}}},this.$renderSimpleLine=function(e,t){var i=0,n=t[0],r=n.value;this.displayIndentGuides&&(r=this.renderIndentGuide(e,r)),r&&(i=this.$renderToken(e,i,n,r));for(var o=1;o"),r.length){var o=this.session.getRowSplitData(t);o&&o.length?this.$renderWrappedLine(e,r,o,i):this.$renderSimpleLine(e,r)}this.showInvisibles&&(n&&(t=n.end.row),e.push("",t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,"")),i||e.push("
")},this.$getFoldLineTokens=function(e,t){function i(e,t,i){for(var n=0,o=0;o+e[n].value.lengthi-t&&(s=s.substring(0,i-t)),r.push({type:e[n].type,value:s}),o=t+s.length,n+=1}for(;oi?r.push({type:e[n].type,value:s.substring(0,i-o)}):r.push(e[n]),o+=s.length,n+=1}}var n=this.session,r=[],o=n.getTokens(e);return t.walk(function(e,t,s,a,l){null!=e?r.push({type:"fold",value:e}):(l&&(o=n.getTokens(t)),o.length&&i(o,a,s))},t.end.row,this.session.getLine(t.end.row).length),r},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(a.prototype),t.Text=a}),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(e,t,i){"use strict";var n,r=e("../lib/dom"),o=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),void 0===n&&(n=!("opacity"in this.element.style)),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),r.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=(n?this.$updateVisibility:this.$updateOpacity).bind(this)};(function(){this.$updateVisibility=function(e){for(var t=this.cursors,i=t.length;i--;)t[i].style.visibility=e?"":"hidden"},this.$updateOpacity=function(e){for(var t=this.cursors,i=t.length;i--;)t[i].style.opacity=e?"":"0"},this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},this.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},this.setSmoothBlinking=function(e){e==this.smoothBlinking||n||(this.smoothBlinking=e,r.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.$updateCursors=this.$updateOpacity.bind(this),this.restartTimer())},this.addCursor=function(){var e=r.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},this.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},this.hideCursor=function(){this.isVisible=!1,r.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,r.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.restartTimer=function(){var e=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.smoothBlinking&&r.removeCssClass(this.element,"ace_smooth-blinking"),e(!0),this.isBlinking&&this.blinkInterval&&this.isVisible){this.smoothBlinking&&setTimeout(function(){r.addCssClass(this.element,"ace_smooth-blinking")}.bind(this));var t=function(){this.timeoutId=setTimeout(function(){e(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){e(!0),t()},this.blinkInterval),t()}},this.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var i=this.session.documentToScreenPosition(e);return{left:this.$padding+(this.session.$bidiHandler.isBidiRow(i.row,e.row)?this.session.$bidiHandler.getPosLeft(i.column):i.column*this.config.characterWidth),top:(i.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight}},this.update=function(e){this.config=e;var t=this.session.$selectionMarkers,i=0,n=0;void 0!==t&&0!==t.length||(t=[{cursor:null}]);for(var i=0,r=t.length;ie.height+e.offset||o.top<0)&&i>1)){var s=(this.cursors[n++]||this.addCursor()).style;this.drawCursor?this.drawCursor(s,o,e,t[i],this.session):(s.left=o.left+"px",s.top=o.top+"px",s.width=e.characterWidth+"px",s.height=e.lineHeight+"px")}}for(;this.cursors.length>n;)this.removeCursor();var a=this.session.getOverwrite();this.$setOverwrite(a),this.$pixelPos=o,this.restartTimer()},this.drawCursor=null,this.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?r.addCssClass(this.element,"ace_overwrite-cursors"):r.removeCssClass(this.element,"ace_overwrite-cursors"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(o.prototype),t.Cursor=o}),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("./lib/oop"),r=e("./lib/dom"),o=e("./lib/event"),s=e("./lib/event_emitter").EventEmitter,a=function(e){this.element=r.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+this.classSuffix,this.inner=r.createElement("div"),this.inner.className="ace_scrollbar-inner",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,o.addListener(this.element,"scroll",this.onScroll.bind(this)),o.addListener(this.element,"mousedown",o.preventDefault)};(function(){n.implement(this,s),this.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1}}).call(a.prototype);var l=function(e,t){a.call(this,e),this.scrollTop=0,this.scrollHeight=0,t.$scrollbarWidth=this.width=r.scrollbarWidth(e.ownerDocument),this.inner.style.width=this.element.style.width=(this.width||15)+5+"px",this.$minWidth=0};n.inherits(l,a),function(){this.classSuffix="-v",this.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,1!=this.coeff){var e=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-e)/(this.coeff-e)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},this.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},this.setHeight=function(e){this.element.style.height=e+"px"},this.setInnerHeight=this.setScrollHeight=function(e){this.scrollHeight=e,e>32768?(this.coeff=32768/e,e=32768):1!=this.coeff&&(this.coeff=1),this.inner.style.height=e+"px"},this.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=e,this.element.scrollTop=e*this.coeff)}}.call(l.prototype);var c=function(e,t){a.call(this,e),this.scrollLeft=0,this.height=t.$scrollbarWidth,this.inner.style.height=this.element.style.height=(this.height||15)+5+"px"};n.inherits(c,a),function(){this.classSuffix="-h",this.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},this.getHeight=function(){return this.isVisible?this.height:0},this.setWidth=function(e){this.element.style.width=e+"px"},this.setInnerWidth=function(e){this.inner.style.width=e+"px"},this.setScrollWidth=function(e){this.inner.style.width=e+"px"},this.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)}}.call(c.prototype),t.ScrollBar=l,t.ScrollBarV=l,t.ScrollBarH=c,t.VScrollBar=l,t.HScrollBar=c}),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(e,t,i){"use strict";var n=e("./lib/event"),r=function(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.window=t||window};(function(){this.schedule=function(e){if(this.changes=this.changes|e,!this.pending&&this.changes){this.pending=!0;var t=this;n.nextFrame(function(){t.pending=!1;for(var e;e=t.changes;)t.changes=0,t.onRender(e)},this.window)}}}).call(r.prototype),t.RenderLoop=r}),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,i){var n=e("../lib/oop"),r=e("../lib/dom"),o=e("../lib/lang"),s=e("../lib/useragent"),a=e("../lib/event_emitter").EventEmitter,l=0,c=t.FontMetrics=function(e){this.el=r.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=r.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=r.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),l||this.$testFractionalRect(),this.$measureNode.innerHTML=o.stringRepeat("X",l),this.$characterSize={width:0,height:0},this.checkForSizeChanges()};(function(){n.implement(this,a),this.$characterSize={width:0,height:0},this.$testFractionalRect=function(){var e=r.createElement("div");this.$setMeasureNodeStyles(e.style),e.style.width="0.2px",document.documentElement.appendChild(e);var t=e.getBoundingClientRect().width;l=t>0&&t<1?50:100,e.parentNode.removeChild(e)},this.$setMeasureNodeStyles=function(e,t){e.width=e.height="auto",e.left=e.top="0px",e.visibility="hidden",e.position="absolute",e.whiteSpace="pre",s.isIE<8?e["font-family"]="inherit":e.font="inherit",e.overflow=t?"hidden":"visible"},this.checkForSizeChanges=function(){var e=this.$measureSizes();if(e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},this.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=setInterval(function(){e.checkForSizeChanges()},500)},this.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},this.$measureSizes=function(){if(50===l){var e=null;try{e=this.$measureNode.getBoundingClientRect()}catch(t){e={width:0,height:0}}var t={height:e.height,width:e.width/l}}else var t={height:this.$measureNode.clientHeight,width:this.$measureNode.clientWidth/l};return 0===t.width||0===t.height?null:t},this.$measureCharWidth=function(e){return this.$main.innerHTML=o.stringRepeat(e,l),this.$main.getBoundingClientRect().width/l},this.getCharacterWidth=function(e){var t=this.charSizes[e];return void 0===t&&(t=this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)}}).call(c.prototype)}),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/config","ace/lib/useragent","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("./lib/oop"),r=e("./lib/dom"),o=e("./config"),s=e("./lib/useragent"),a=e("./layer/gutter").Gutter,l=e("./layer/marker").Marker,c=e("./layer/text").Text,h=e("./layer/cursor").Cursor,d=e("./scrollbar").HScrollBar,u=e("./scrollbar").VScrollBar,f=e("./renderloop").RenderLoop,p=e("./layer/font_metrics").FontMetrics,m=e("./lib/event_emitter").EventEmitter;r.importCssString('.ace_editor {\tposition: relative;\toverflow: hidden;\tfont: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'source-code-pro\', monospace;\tdirection: ltr;\ttext-align: left;\t-webkit-tap-highlight-color: rgba(0, 0, 0, 0);\t}\t.ace_scroller {\tposition: absolute;\toverflow: hidden;\ttop: 0;\tbottom: 0;\tbackground-color: inherit;\t-ms-user-select: none;\t-moz-user-select: none;\t-webkit-user-select: none;\tuser-select: none;\tcursor: text;\t}\t.ace_content {\tposition: absolute;\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tmin-width: 100%;\t}\t.ace_dragging .ace_scroller:before{\tposition: absolute;\ttop: 0;\tleft: 0;\tright: 0;\tbottom: 0;\tcontent: \'\';\tbackground: rgba(250, 250, 250, 0.01);\tz-index: 1000;\t}\t.ace_dragging.ace_dark .ace_scroller:before{\tbackground: rgba(0, 0, 0, 0.01);\t}\t.ace_selecting, .ace_selecting * {\tcursor: text !important;\t}\t.ace_gutter {\tposition: absolute;\toverflow : hidden;\twidth: auto;\ttop: 0;\tbottom: 0;\tleft: 0;\tcursor: default;\tz-index: 4;\t-ms-user-select: none;\t-moz-user-select: none;\t-webkit-user-select: none;\tuser-select: none;\t}\t.ace_gutter-active-line {\tposition: absolute;\tleft: 0;\tright: 0;\t}\t.ace_scroller.ace_scroll-left {\tbox-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;\t}\t.ace_gutter-cell {\tpadding-left: 19px;\tpadding-right: 6px;\tbackground-repeat: no-repeat;\t}\t.ace_gutter-cell.ace_error {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");\tbackground-repeat: no-repeat;\tbackground-position: 2px center;\t}\t.ace_gutter-cell.ace_warning {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");\tbackground-position: 2px center;\t}\t.ace_gutter-cell.ace_info {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");\tbackground-position: 2px center;\t}\t.ace_dark .ace_gutter-cell.ace_info {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");\t}\t.ace_scrollbar {\tposition: absolute;\tright: 0;\tbottom: 0;\tz-index: 6;\t}\t.ace_scrollbar-inner {\tposition: absolute;\tcursor: text;\tleft: 0;\ttop: 0;\t}\t.ace_scrollbar-v{\toverflow-x: hidden;\toverflow-y: scroll;\ttop: 0;\t}\t.ace_scrollbar-h {\toverflow-x: scroll;\toverflow-y: hidden;\tleft: 0;\t}\t.ace_print-margin {\tposition: absolute;\theight: 100%;\t}\t.ace_text-input {\tposition: absolute;\tz-index: 0;\twidth: 0.5em;\theight: 1em;\topacity: 0;\tbackground: transparent;\t-moz-appearance: none;\tappearance: none;\tborder: none;\tresize: none;\toutline: none;\toverflow: hidden;\tfont: inherit;\tpadding: 0 1px;\tmargin: 0 -1px;\ttext-indent: -1em;\t-ms-user-select: text;\t-moz-user-select: text;\t-webkit-user-select: text;\tuser-select: text;\twhite-space: pre!important;\t}\t.ace_text-input.ace_composition {\tbackground: inherit;\tcolor: inherit;\tz-index: 1000;\topacity: 1;\ttext-indent: 0;\t}\t.ace_layer {\tz-index: 1;\tposition: absolute;\toverflow: hidden;\tword-wrap: normal;\twhite-space: pre;\theight: 100%;\twidth: 100%;\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tpointer-events: none;\t}\t.ace_gutter-layer {\tposition: relative;\twidth: auto;\ttext-align: right;\tpointer-events: auto;\t}\t.ace_text-layer {\tfont: inherit !important;\t}\t.ace_cjk {\tdisplay: inline-block;\ttext-align: center;\t}\t.ace_cursor-layer {\tz-index: 4;\t}\t.ace_cursor {\tz-index: 4;\tposition: absolute;\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tborder-left: 2px solid;\ttransform: translatez(0);\t}\t.ace_multiselect .ace_cursor {\tborder-left-width: 1px;\t}\t.ace_slim-cursors .ace_cursor {\tborder-left-width: 1px;\t}\t.ace_overwrite-cursors .ace_cursor {\tborder-left-width: 0;\tborder-bottom: 1px solid;\t}\t.ace_hidden-cursors .ace_cursor {\topacity: 0.2;\t}\t.ace_smooth-blinking .ace_cursor {\t-webkit-transition: opacity 0.18s;\ttransition: opacity 0.18s;\t}\t.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\tposition: absolute;\tz-index: 3;\t}\t.ace_marker-layer .ace_selection {\tposition: absolute;\tz-index: 5;\t}\t.ace_marker-layer .ace_bracket {\tposition: absolute;\tz-index: 6;\t}\t.ace_marker-layer .ace_active-line {\tposition: absolute;\tz-index: 2;\t}\t.ace_marker-layer .ace_selected-word {\tposition: absolute;\tz-index: 4;\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\t}\t.ace_line .ace_fold {\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tdisplay: inline-block;\theight: 11px;\tmargin-top: -2px;\tvertical-align: middle;\tbackground-image:\turl("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\turl("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");\tbackground-repeat: no-repeat, repeat-x;\tbackground-position: center center, top left;\tcolor: transparent;\tborder: 1px solid black;\tborder-radius: 2px;\tcursor: pointer;\tpointer-events: auto;\t}\t.ace_dark .ace_fold {\t}\t.ace_fold:hover{\tbackground-image:\turl("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\turl("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");\t}\t.ace_tooltip {\tbackground-color: #FFF;\tbackground-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.1));\tbackground-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));\tborder: 1px solid gray;\tborder-radius: 1px;\tbox-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\tcolor: black;\tmax-width: 100%;\tpadding: 3px 4px;\tposition: fixed;\tz-index: 999999;\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tcursor: default;\twhite-space: pre;\tword-wrap: break-word;\tline-height: normal;\tfont-style: normal;\tfont-weight: normal;\tletter-spacing: normal;\tpointer-events: none;\t}\t.ace_folding-enabled > .ace_gutter-cell {\tpadding-right: 13px;\t}\t.ace_fold-widget {\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tmargin: 0 -12px 0 1px;\tdisplay: none;\twidth: 11px;\tvertical-align: top;\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");\tbackground-repeat: no-repeat;\tbackground-position: center;\tborder-radius: 3px;\tborder: 1px solid transparent;\tcursor: pointer;\t}\t.ace_folding-enabled .ace_fold-widget {\tdisplay: inline-block; \t}\t.ace_fold-widget.ace_end {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");\t}\t.ace_fold-widget.ace_closed {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");\t}\t.ace_fold-widget:hover {\tborder: 1px solid rgba(0, 0, 0, 0.3);\tbackground-color: rgba(255, 255, 255, 0.2);\tbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\t}\t.ace_fold-widget:active {\tborder: 1px solid rgba(0, 0, 0, 0.4);\tbackground-color: rgba(0, 0, 0, 0.05);\tbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\t}\t.ace_dark .ace_fold-widget {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");\t}\t.ace_dark .ace_fold-widget.ace_end {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");\t}\t.ace_dark .ace_fold-widget.ace_closed {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");\t}\t.ace_dark .ace_fold-widget:hover {\tbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\tbackground-color: rgba(255, 255, 255, 0.1);\t}\t.ace_dark .ace_fold-widget:active {\tbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\t}\t.ace_fold-widget.ace_invalid {\tbackground-color: #FFB4B4;\tborder-color: #DE5555;\t}\t.ace_fade-fold-widgets .ace_fold-widget {\t-webkit-transition: opacity 0.4s ease 0.05s;\ttransition: opacity 0.4s ease 0.05s;\topacity: 0;\t}\t.ace_fade-fold-widgets:hover .ace_fold-widget {\t-webkit-transition: opacity 0.05s ease 0.05s;\ttransition: opacity 0.05s ease 0.05s;\topacity:1;\t}\t.ace_underline {\ttext-decoration: underline;\t}\t.ace_bold {\tfont-weight: bold;\t}\t.ace_nobold .ace_bold {\tfont-weight: normal;\t}\t.ace_italic {\tfont-style: italic;\t}\t.ace_error-marker {\tbackground-color: rgba(255, 0, 0,0.2);\tposition: absolute;\tz-index: 9;\t}\t.ace_highlight-marker {\tbackground-color: rgba(255, 255, 0,0.2);\tposition: absolute;\tz-index: 8;\t}\t.ace_br1 {border-top-left-radius : 3px;}\t.ace_br2 {border-top-right-radius : 3px;}\t.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}\t.ace_br4 {border-bottom-right-radius: 3px;}\t.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}\t.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}\t.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}\t.ace_br8 {border-bottom-left-radius : 3px;}\t.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}\t.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}\t.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}\t.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\t.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\t.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\t.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\t.ace_text-input-ios {\tposition: absolute !important;\ttop: -100000px !important;\tleft: -100000px !important;\t}\t',"ace_editor.css");var g=function(e,t){var i=this;this.container=e||r.createElement("div"),this.$keepTextAreaAtCursor=!s.isOldIE,r.addCssClass(this.container,"ace_editor"),this.setTheme(t),this.$gutter=r.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden",!0),this.scroller=r.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=r.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new a(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new l(this.content);var n=this.$textLayer=new c(this.content);this.canvas=n.element,this.$markerFront=new l(this.content),this.$cursorLayer=new h(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new u(this.container,this),this.scrollBarH=new d(this.container,this),this.scrollBarV.addEventListener("scroll",function(e){i.$scrollAnimation||i.session.setScrollTop(e.data-i.scrollMargin.top)}),this.scrollBarH.addEventListener("scroll",function(e){i.$scrollAnimation||i.session.setScrollLeft(e.data-i.scrollMargin.left)}),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new p(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.addEventListener("changeCharacterSize",function(e){i.updateCharacterSize(),i.onResize(!0,i.gutterWidth,i.$size.width,i.$size.height),i._signal("changeCharacterSize",e)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$loop=new f(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),o.resetOptions(this),o._emit("renderer",this)};(function(){this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,this.CHANGE_H_SCROLL=1024,n.implement(this,m),this.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin()},this.setSession=function(e){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=e,e&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e),e&&(this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode))},this.updateLines=function(e,t,i){if(void 0===t&&(t=1/0),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRowthis.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},this.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},this.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},this.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},this.updateFull=function(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},this.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},this.$changes=0,this.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},this.onResize=function(e,t,i,n){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=e?1:0;var r=this.container;n||(n=r.clientHeight||r.scrollHeight),i||(i=r.clientWidth||r.scrollWidth);var o=this.$updateCachedSize(e,t,i,n);if(!this.$size.scrollerHeight||!i&&!n)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(o|this.$changes,!0):this.$loop.schedule(o|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarV.scrollLeft=this.scrollBarV.scrollTop=null}},this.$updateCachedSize=function(e,t,i,n){n-=this.$extraHeight||0;var r=0,o=this.$size,s={width:o.width,height:o.height,scrollerHeight:o.scrollerHeight,scrollerWidth:o.scrollerWidth};return n&&(e||o.height!=n)&&(o.height=n,r|=this.CHANGE_SIZE,o.scrollerHeight=o.height,this.$horizScroll&&(o.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",r|=this.CHANGE_SCROLL),i&&(e||o.width!=i)&&(r|=this.CHANGE_SIZE,o.width=i,null==t&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,this.scrollBarH.element.style.left=this.scroller.style.left=t+"px",o.scrollerWidth=Math.max(0,i-t-this.scrollBarV.getWidth()),this.scrollBarH.element.style.right=this.scroller.style.right=this.scrollBarV.getWidth()+"px",this.scroller.style.bottom=this.scrollBarH.getHeight()+"px",(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)&&(r|=this.CHANGE_FULL)),o.$dirty=!i||!n,r&&this._signal("resize",s),r},this.onGutterResize=function(){var e=this.$showGutter?this.$gutter.offsetWidth:0;e!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,e,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()?this.$loop.schedule(this.CHANGE_FULL):this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):(this.$computeLayerConfig(),this.$loop.schedule(this.CHANGE_MARKER))},this.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-2*this.$padding,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},this.setAnimatedScroll=function(e){this.setOption("animatedScroll",e)},this.getAnimatedScroll=function(){return this.$animatedScroll},this.setShowInvisibles=function(e){this.setOption("showInvisibles",e),this.session.$bidiHandler.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.getOption("showInvisibles")},this.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},this.setDisplayIndentGuides=function(e){this.setOption("displayIndentGuides",e)},this.setShowPrintMargin=function(e){this.setOption("showPrintMargin",e)},this.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},this.setPrintMarginColumn=function(e){this.setOption("printMarginColumn",e)},this.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},this.getShowGutter=function(){return this.getOption("showGutter")},this.setShowGutter=function(e){return this.setOption("showGutter",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.$updateGutterLineHighlight=function(){var e=this.$cursorLayer.$pixelPos,t=this.layerConfig.lineHeight;if(this.session.getUseWrapMode()){var i=this.session.selection.getCursor();i.column=0,e=this.$cursorLayer.getPixelPosition(i,!0),t*=this.session.getRowLength(i.row)}this.$gutterLineHighlight.style.top=e.top-this.layerConfig.offset+"px",this.$gutterLineHighlight.style.height=t+"px"},this.$updatePrintMargin=function(){if(this.$showPrintMargin||this.$printMarginEl){if(!this.$printMarginEl){var e=r.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=r.createElement("div"),this.$printMarginEl.className="ace_print-margin",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=this.characterWidth*this.$printMarginColumn+this.$padding+"px",t.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&-1==this.session.$wrap&&this.adjustWrapLimit()}},this.getContainerElement=function(){return this.container},this.getMouseEventTarget=function(){return this.scroller},this.getTextAreaContainer=function(){return this.container},this.$moveTextAreaToCursor=function(){if(this.$keepTextAreaAtCursor){var e=this.layerConfig,t=this.$cursorLayer.$pixelPos.top,i=this.$cursorLayer.$pixelPos.left;t-=e.offset;var n=this.textarea.style,r=this.lineHeight;if(t<0||t>e.height-r)return void(n.top=n.left="0");var o=this.characterWidth;if(this.$composition){var s=this.textarea.value.replace(/^\x01+/,"");o*=this.session.$getStringScreenWidth(s)[0]+2,r+=2}i-=this.scrollLeft,i>this.$size.scrollerWidth-o&&(i=this.$size.scrollerWidth-o),i+=this.gutterWidth,n.height=r+"px",n.width=o+"px",n.left=Math.min(i,this.$size.scrollerWidth-o)+"px",n.top=Math.min(t,this.$size.height-r)+"px"}},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(0===this.layerConfig.offset?0:1)},this.getLastFullyVisibleRow=function(){var e=this.layerConfig,t=e.lastRow;return this.session.documentToScreenRow(t,0)*e.lineHeight-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.setScrollMargin=function(e,t,i,n){var r=this.scrollMargin;r.top=0|e,r.bottom=0|t,r.right=0|n,r.left=0|i,r.v=r.top+r.bottom,r.h=r.left+r.right,r.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-r.top),this.updateFull()},this.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},this.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},this.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},this.setVScrollBarAlwaysVisible=function(e){this.setOption("vScrollBarAlwaysVisible",e)},this.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},this.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},this.$frozen=!1,this.freeze=function(){this.$frozen=!0},this.unfreeze=function(){this.$frozen=!1},this.$renderChanges=function(e,t){if(this.$changes&&(e|=this.$changes,this.$changes=0),!this.session||!this.container.offsetWidth||this.$frozen||!e&&!t)return void(this.$changes|=e);if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender"),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var i=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){if(e|=this.$computeLayerConfig(),i.firstRow!=this.layerConfig.firstRow&&i.firstRowScreen==this.layerConfig.firstRowScreen){var n=this.scrollTop+(i.firstRow-this.layerConfig.firstRow)*this.lineHeight;n>0&&(this.scrollTop=n,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig())}i=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),this.$gutterLayer.element.style.marginTop=-i.offset+"px",this.content.style.marginTop=-i.offset+"px",this.content.style.width=i.width+2*this.$padding+"px",this.content.style.height=i.minHeight+"px"}return e&this.CHANGE_H_SCROLL&&(this.content.style.marginLeft=-this.scrollLeft+"px",this.scroller.className=this.scrollLeft<=0?"ace_scroller":"ace_scroller ace_scroll-left"),e&this.CHANGE_FULL?(this.$textLayer.update(i),this.$showGutter&&this.$gutterLayer.update(i),this.$markerBack.update(i),this.$markerFront.update(i),this.$cursorLayer.update(i),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),void this._signal("afterRender")):e&this.CHANGE_SCROLL?(e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(i):this.$textLayer.scrollLines(i),this.$showGutter&&this.$gutterLayer.update(i),this.$markerBack.update(i),this.$markerFront.update(i),this.$cursorLayer.update(i),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this.$moveTextAreaToCursor(),void this._signal("afterRender")):(e&this.CHANGE_TEXT?(this.$textLayer.update(i),this.$showGutter&&this.$gutterLayer.update(i)):e&this.CHANGE_LINES?(this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(i):(e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER)&&this.$showGutter&&this.$gutterLayer.update(i),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(i),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(i),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(i),void this._signal("afterRender"))},this.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,i=Math.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(i+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&i>this.$maxPixelHeight&&(i=this.$maxPixelHeight);var n=e>t;if(i!=this.desiredHeight||this.$size.height!=this.desiredHeight||n!=this.$vScroll){n!=this.$vScroll&&(this.$vScroll=n,this.scrollBarV.setVisible(n));var r=this.container.clientWidth;this.container.style.height=i+"px",this.$updateCachedSize(!0,this.$gutterWidth,r,i),this.desiredHeight=i,this._signal("autosize")}},this.$computeLayerConfig=function(){var e=this.session,t=this.$size,i=t.height<=2*this.lineHeight,n=this.session.getScreenLength(),r=n*this.lineHeight,o=this.$getLongestLine(),s=!i&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-o-2*this.$padding<0),a=this.$horizScroll!==s;a&&(this.$horizScroll=s,this.scrollBarH.setVisible(s));var l=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var c=this.scrollTop%this.lineHeight,h=t.scrollerHeight+this.lineHeight,d=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;r+=d;var u=this.scrollMargin;this.session.setScrollTop(Math.max(-u.top,Math.min(this.scrollTop,r-t.scrollerHeight+u.bottom))),this.session.setScrollLeft(Math.max(-u.left,Math.min(this.scrollLeft,o+2*this.$padding-t.scrollerWidth+u.right)));var f=!i&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-r+d<0||this.scrollTop>u.top),p=l!==f;p&&(this.$vScroll=f,this.scrollBarV.setVisible(f));var m,g,v=Math.ceil(h/this.lineHeight)-1,w=Math.max(0,Math.round((this.scrollTop-c)/this.lineHeight)),y=w+v,A=this.lineHeight;w=e.screenToDocumentRow(w,0);var C=e.getFoldLine(w);C&&(w=C.start.row),m=e.documentToScreenRow(w,0),g=e.getRowLength(w)*A,y=Math.min(e.screenToDocumentRow(y,0),e.getLength()-1),h=t.scrollerHeight+e.getRowLength(y)*A+g,c=this.scrollTop-m*A;var b=0;return this.layerConfig.width!=o&&(b=this.CHANGE_H_SCROLL),(a||p)&&(b=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),p&&(o=this.$getLongestLine())),this.layerConfig={width:o,padding:this.$padding,firstRow:w,firstRowScreen:m,lastRow:y,lineHeight:A,characterWidth:this.characterWidth,minHeight:h,maxHeight:r,offset:c,gutterOffset:A?Math.max(0,Math.ceil((c+t.height-t.scrollerHeight)/A)):0,height:this.$size.scrollerHeight},b},this.$updateLines=function(){if(this.$changedLines){var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var i=this.layerConfig;if(!(e>i.lastRow+1||to?(t&&l+s>o+this.lineHeight&&(o-=t*this.$size.scrollerHeight),0===o&&(o=-this.scrollMargin.top),this.session.setScrollTop(o)):l+this.$size.scrollerHeight-ar?(r=1-this.scrollMargin.top||(t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||(e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||(e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right||void 0)))},this.pixelToScreenCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=e+this.scrollLeft-i.left-this.$padding,r=n/this.characterWidth,o=Math.floor((t+this.scrollTop-i.top)/this.lineHeight),s=Math.round(r);return{row:o,column:s,side:r-s>0?1:-1,offsetX:n}},this.screenToTextCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=e+this.scrollLeft-i.left-this.$padding,r=Math.round(n/this.characterWidth),o=(t+this.scrollTop-i.top)/this.lineHeight;return this.session.screenToDocumentPosition(o,Math.max(r,0),n)},this.textToScreenCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=this.session.documentToScreenPosition(e,t),r=this.$padding+(this.session.$bidiHandler.isBidiRow(n.row,e)?this.session.$bidiHandler.getPosLeft(n.column):Math.round(n.column*this.characterWidth)),o=n.row*this.lineHeight;return{pageX:i.left+r-this.scrollLeft,pageY:i.top+o-this.scrollTop}},this.visualizeFocus=function(){r.addCssClass(this.container,"ace_focus")},this.visualizeBlur=function(){r.removeCssClass(this.container,"ace_focus")},this.showComposition=function(e){this.$composition||(this.$composition={keepTextAreaAtCursor:this.$keepTextAreaAtCursor,cssText:this.textarea.style.cssText}),this.$keepTextAreaAtCursor=!0,r.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor()},this.setCompositionText=function(e){this.$moveTextAreaToCursor()},this.hideComposition=function(){this.$composition&&(r.removeCssClass(this.textarea,"ace_composition"),this.$keepTextAreaAtCursor=this.$composition.keepTextAreaAtCursor,this.textarea.style.cssText=this.$composition.cssText,this.$composition=null)},this.setTheme=function(e,t){function i(i){if(n.$themeId!=e)return t&&t();if(!i||!i.cssClass)throw new Error("couldn't load module "+e+" or it didn't call define");r.importCssString(i.cssText,i.cssClass,n.container.ownerDocument),n.theme&&r.removeCssClass(n.container,n.theme.cssClass);var o="padding"in i?i.padding:"padding"in(n.theme||{})?4:n.$padding;n.$padding&&o!=n.$padding&&n.setPadding(o),n.$theme=i.cssClass,n.theme=i,r.addCssClass(n.container,i.cssClass),r.setCssClass(n.container,"ace_dark",i.isDark),n.$size&&(n.$size.width=0,n.$updateSizeAsync()),n._dispatchEvent("themeLoaded",{theme:i}),t&&t()}var n=this;if(this.$themeId=e,n._dispatchEvent("themeChange",{theme:e}),e&&"string"!=typeof e)i(e);else{var s=e||this.$options.theme.initialValue;o.loadModule(["theme",s],i)}},this.getTheme=function(){return this.$themeId},this.setStyle=function(e,t){r.setCssClass(this.container,e,!1!==t)},this.unsetStyle=function(e){r.removeCssClass(this.container,e)},this.setCursorStyle=function(e){this.scroller.style.cursor!=e&&(this.scroller.style.cursor=e)},this.setMouseCursor=function(e){this.scroller.style.cursor=e},this.destroy=function(){this.$textLayer.destroy(),this.$cursorLayer.destroy()}}).call(g.prototype),o.defineOptions(g.prototype,"renderer",{animatedScroll:{initialValue:!1},showInvisibles:{set:function(e){this.$textLayer.setShowInvisibles(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(e){"number"==typeof e&&(this.$printMarginColumn=e),this.$showPrintMargin=!!e,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(e){this.$gutter.style.display=e?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},fadeFoldWidgets:{set:function(e){r.setCssClass(this.$gutter,"ace_fade-fold-widgets",e)},initialValue:!1},showFoldWidgets:{set:function(e){this.$gutterLayer.setShowFoldWidgets(e)},initialValue:!0},showLineNumbers:{set:function(e){this.$gutterLayer.setShowLineNumbers(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(e){this.$textLayer.setDisplayIndentGuides(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightGutterLine:{set:function(e){if(!this.$gutterLineHighlight)return this.$gutterLineHighlight=r.createElement("div"),this.$gutterLineHighlight.className="ace_gutter-active-line",void this.$gutter.appendChild(this.$gutterLineHighlight);this.$gutterLineHighlight.style.display=e?"":"none",this.$cursorLayer.$pixelPos&&this.$updateGutterLineHighlight()},initialValue:!1,value:!0},hScrollBarAlwaysVisible:{set:function(e){this.$hScrollBarAlwaysVisible&&this.$horizScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(e){this.$vScrollBarAlwaysVisible&&this.$vScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(e){"number"==typeof e&&(e+="px"),this.container.style.fontSize=e,this.updateFontSize()},initialValue:12},fontFamily:{set:function(e){this.container.style.fontFamily=e,this.updateFontSize()}},maxLines:{set:function(e){this.updateFull()}},minLines:{set:function(e){this.updateFull()}},maxPixelHeight:{set:function(e){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(e){e=+e||0,this.$scrollPastEnd!=e&&(this.$scrollPastEnd=e,this.$loop.schedule(this.CHANGE_SCROLL))},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(e){this.$gutterLayer.$fixedWidth=!!e,this.$loop.schedule(this.CHANGE_GUTTER)}},theme:{set:function(e){this.setTheme(e)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0}}),t.VirtualRenderer=g}),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(e,t,i){"use strict";function n(e,t){var i=t.src;s.qualifyURL(e);try{return new Blob([i],{type:"application/javascript"})}catch(e){var n=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,r=new n;return r.append(i),r.getBlob("application/javascript")}}function r(e,t){var i=n(e,t),r=window.URL||window.webkitURL,o=r.createObjectURL(i);return new Worker(o)}var o=e("../lib/oop"),s=e("../lib/net"),a=e("../lib/event_emitter").EventEmitter,l=e("../config"),c=function(t,i,n,o,s){if(this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl),l.get("packaged")||!e.toUrl)o=o||l.moduleUrl(i.id,"worker");else{var a=this.$normalizePath;o=o||a(e.toUrl("ace/worker/worker.js",null,"_"));var c={};t.forEach(function(t){c[t]=a(e.toUrl(t,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}this.$worker=r(o,i),s&&this.send("importScripts",s),this.$worker.postMessage({init:!0,tlns:c,module:i.id,classname:n}),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){o.implement(this,a),this.onMessage=function(e){var t=e.data;switch(t.type){case"event":this._signal(t.name,{data:t.data});break;case"call":var i=this.callbacks[t.id];i&&(i(t.data),delete this.callbacks[t.id]);break;case"error":this.reportError(t.data);break;case"log":window.console&&console.log&&console.log.apply(console,t.data)}},this.reportError=function(e){window.console&&console.error&&console.error(e)},this.$normalizePath=function(e){return s.qualifyURL(e)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,i){if(i){var n=this.callbackId++;this.callbacks[n]=i,t.push(n)}this.send(e,t)},this.emit=function(e,t){try{this.$worker.postMessage({event:e,data:{data:t.data}})}catch(e){console.error(e.stack)} +},this.attachToDocument=function(e){this.$doc&&this.terminate(),this.$doc=e,this.call("setValue",[e.getValue()]),e.on("change",this.changeListener)},this.changeListener=function(e){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),"insert"==e.action?this.deltaQueue.push(e.start,e.lines):this.deltaQueue.push(e.start,e.end)},this.$sendDeltaQueue=function(){var e=this.deltaQueue;e&&(this.deltaQueue=null,e.length>50&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e}))}}).call(c.prototype);var h=function(e,t,i){this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.callbackId=1,this.callbacks={},this.messageBuffer=[];var n=null,r=!1,o=Object.create(a),s=this;this.$worker={},this.$worker.terminate=function(){},this.$worker.postMessage=function(e){s.messageBuffer.push(e),n&&(r?setTimeout(c):c())},this.setEmitSync=function(e){r=e};var c=function(){var e=s.messageBuffer.shift();e.command?n[e.command].apply(n,e.args):e.event&&o._signal(e.event,e.data)};o.postMessage=function(e){s.onMessage({data:e})},o.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},o.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},l.loadModule(["worker",t],function(e){for(n=new e[i](o);s.messageBuffer.length;)c()})};h.prototype=c.prototype,t.UIWorkerClient=h,t.WorkerClient=c,t.createWorker=r}),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(e,t,i){"use strict";var n=e("./range").Range,r=e("./lib/event_emitter").EventEmitter,o=e("./lib/oop"),s=function(e,t,i,n,r,o){var s=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=r,this.othersClass=o,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate),this.$others=n,this.$onCursorChange=function(){setTimeout(function(){s.onCursorChange()})},this.$pos=i;var a=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=a.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)};(function(){o.implement(this,r),this.setup=function(){var e=this,t=this.doc,i=this.session;this.selectionBefore=i.selection.toJSON(),i.selection.inMultiSelectMode&&i.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var r=this.pos;r.$insertRight=!0,r.detach(),r.markerId=i.addMarker(new n(r.row,r.column,r.row,r.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(i){var n=t.createAnchor(i.row,i.column);n.$insertRight=!0,n.detach(),e.others.push(n)}),i.setUndoSelect(!1)},this.showOtherMarkers=function(){if(!this.othersActive){var e=this.session,t=this;this.othersActive=!0,this.others.forEach(function(i){i.markerId=e.addMarker(new n(i.row,i.column,i.row,i.column+t.length),t.othersClass,null,!1)})}},this.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var e=0;e=this.pos.column&&t.start.column<=this.pos.column+this.length+1,o=t.start.column-this.pos.column;if(this.updateAnchors(e),r&&(this.length+=i),r&&!this.session.$fromUndo)if("insert"===e.action)for(var s=this.others.length-1;s>=0;s--){var a=this.others[s],l={row:a.row,column:a.column+o};this.doc.insertMergedLines(l,e.lines)}else if("remove"===e.action)for(var s=this.others.length-1;s>=0;s--){var a=this.others[s],l={row:a.row,column:a.column+o};this.doc.remove(new n(l.row,l.column,l.row,l.column-i))}this.$updating=!1,this.updateMarkers()}},this.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},this.updateMarkers=function(){if(!this.$updating){var e=this,t=this.session,i=function(i,r){t.removeMarker(i.markerId),i.markerId=t.addMarker(new n(i.row,i.column,i.row,i.column+e.length),r,null,!1)};i(this.pos,this.mainClass);for(var r=this.others.length;r--;)i(this.others[r],this.othersClass)}},this.onCursorChange=function(e){if(!this.$updating&&this.session){var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))}},this.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.removeEventListener("change",this.$onUpdate),this.session.selection.removeEventListener("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},this.cancel=function(){if(-1!==this.$undoStackDepth){for(var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth,i=0;i1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)}},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length?this.$onRemoveRange(e):this.ranges[0]&&this.fromOrientedRange(this.ranges[0])},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal("addRange",{range:e})},this.$onRemoveRange=function(e){if(this.rangeCount=this.rangeList.ranges.length,1==this.rangeCount&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var i=e.length;i--;){var n=this.ranges.indexOf(e[i]);this.ranges.splice(n,1)}this._signal("removeRange",{ranges:e}),0===this.rangeCount&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),(t=t||this.ranges[0])&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new a,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){if(this.rangeCount>1){var e=this.rangeList.ranges,t=e[e.length-1],i=l.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(i,t.cursor==t.start)}else{var i=this.getRange(),n=this.isBackwards(),r=i.start.row,o=i.end.row;if(r==o){if(n)var s=i.end,a=i.start;else var s=i.start,a=i.end;return this.addRange(l.fromPoints(a,a)),void this.addRange(l.fromPoints(s,s))}var c=[],h=this.getLineRange(r,!0);h.start.column=i.start.column,c.push(h);for(var d=r+1;d1){var e=this.rangeList.ranges,t=e[e.length-1],i=l.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(i,t.cursor==t.start)}else{var n=this.session.documentToScreenPosition(this.selectionLead),r=this.session.documentToScreenPosition(this.selectionAnchor);this.rectangularRangeBlock(n,r).forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,i){var n=[],o=e.column0;)v--;if(v>0)for(var w=0;n[w].isEmpty();)w++;for(var y=v;y>=w;y--)n[y].isEmpty()&&n.splice(y,1)}return n}}.call(c.prototype);var v=e("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,"ace_selection",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(e.marker){this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);-1!=t&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(e){for(var t=this.session.$selectionMarkers,i=e.length;i--;){var n=e[i];if(n.marker){this.session.removeMarker(n.marker);var r=t.indexOf(n);-1!=r&&t.splice(r,1)}}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(f.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(e){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(f.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection"))},this.$onMultiSelectExec=function(e){var t=e.command,i=e.editor;if(i.multiSelect){if(t.multiSelectAction)"forEach"==t.multiSelectAction?n=i.forEachSelection(t,e.args):"forEachLine"==t.multiSelectAction?n=i.forEachSelection(t,e.args,!0):"single"==t.multiSelectAction?(i.exitMultiSelectMode(),n=t.exec(i,e.args||{})):n=t.multiSelectAction(i,e.args||{});else{var n=t.exec(i,e.args||{});i.multiSelect.addRange(i.multiSelect.toOrientedRange()),i.multiSelect.mergeOverlappingRanges()}return n}},this.forEachSelection=function(e,t,i){if(!this.inVirtualSelectionMode){var n,r=i&&i.keepOrder,o=1==i||i&&i.$byLines,s=this.session,a=this.selection,l=a.rangeList,h=(r?a:l).ranges;if(!h.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var d=a._eventRegistry;a._eventRegistry={};var u=new c(s);this.inVirtualSelectionMode=!0;for(var f=h.length;f--;){if(o)for(;f>0&&h[f].start.row==h[f-1].end.row;)f--;u.fromOrientedRange(h[f]),u.index=f,this.selection=s.selection=u;var p=e.exec?e.exec(this,t||{}):e(this,t||{});n||void 0===p||(n=p),u.toOrientedRange(h[f])}u.detach(),this.selection=s.selection=a,this.inVirtualSelectionMode=!1,a._eventRegistry=d,a.mergeOverlappingRanges();var m=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),m&&m.from==m.to&&this.renderer.animateScrolling(m.from),n}},this.exitMultiSelectMode=function(){this.inMultiSelectMode&&!this.inVirtualSelectionMode&&this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var t=this.multiSelect.rangeList.ranges,i=[],n=0;no&&(o=i.column),rc?e.insert(n,u.stringRepeat(" ",r-c)):e.remove(new l(n.row,n.column,n.row,n.column-r+c)),t.start.column=t.end.column=o,t.start.row=t.end.row=n.row,t.cursor=t.end}),t.fromOrientedRange(i[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}else{var c=this.selection.getRange(),h=c.start.row,d=c.end.row,f=h==d;if(f){var p,m=this.session.getLength();do{p=this.session.getLine(d)}while(/[=:]/.test(p)&&++d0);h<0&&(h=0),d>=m&&(d=m-1)}var g=this.session.removeFullLines(h,d);g=this.$reAlignText(g,f),this.session.insert({row:h,column:0},g.join("\n")+"\n"),f||(c.start.column=0,c.end.column=g[g.length-1].length),this.selection.setRange(c)}},this.$reAlignText=function(e,t){function i(e){return u.stringRepeat(" ",e)}function n(e){return e[2]?i(s)+e[2]+i(a-e[2].length+l)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function r(e){return e[2]?i(s+a-e[2].length)+e[2]+i(l," ")+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function o(e){return e[2]?i(s)+e[2]+i(l)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}var s,a,l,c=!0,h=!0;return e.map(function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?null==s?(s=t[1].length,a=t[2].length,l=t[3].length,t):(s+a+l!=t[1].length+t[2].length+t[3].length&&(h=!1),s!=t[1].length&&(c=!1),s>t[1].length&&(s=t[1].length),at[3].length&&(l=t[3].length),t):[e]}).map(t?n:c?h?r:n:o)}}).call(v.prototype),t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var i=e.oldSession;i&&(i.multiSelect.off("addRange",this.$onAddRange),i.multiSelect.off("removeRange",this.$onRemoveRange),i.multiSelect.off("multiSelect",this.$onMultiSelect),i.multiSelect.off("singleSelect",this.$onSingleSelect),i.multiSelect.lead.off("change",this.$checkMultiselectChange),i.multiSelect.anchor.off("change",this.$checkMultiselectChange)),t&&(t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),t.multiSelect.lead.on("change",this.$checkMultiselectChange),t.multiSelect.anchor.on("change",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=o,e("./config").defineOptions(v.prototype,"editor",{enableMultiselect:{set:function(e){o(this),e?(this.on("changeSession",this.$multiselectOnSessionChange),this.on("mousedown",h)):(this.off("changeSession",this.$multiselectOnSessionChange),this.off("mousedown",h))},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})}),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(e,t,i){"use strict";var n=e("../../range").Range,r=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,i){var n=e.getLine(i);return this.foldingStartMarker.test(n)?"start":"markbeginend"==t&&this.foldingStopMarker&&this.foldingStopMarker.test(n)?"end":""},this.getFoldWidgetRange=function(e,t,i){return null},this.indentationBlock=function(e,t,i){var r=e.getLine(t),o=r.search(/\S/);if(-1!=o){for(var s=i||r.length,a=e.getLength(),l=t,c=t;++tl){var d=e.getLine(c).length;return new n(l,s,c,d)}}},this.openingBracketBlock=function(e,t,i,r,o){var s={row:i,column:r+1},a=e.$findClosingBracket(t,s,o);if(a){var l=e.foldWidgets[a.row];return null==l&&(l=e.getFoldWidget(a.row)),"start"==l&&a.row>s.row&&(a.row--,a.column=e.getLine(a.row).length),n.fromPoints(s,a)}},this.closingBracketBlock=function(e,t,i,r,o){var s={row:i,column:r},a=e.$findOpeningBracket(t,s);if(a)return a.column++,s.column--,n.fromPoints(a,s)}}).call(r.prototype)}),ace.define("ace/theme/textmate",["require","exports","module","ace/lib/dom"],function(e,t,i){"use strict";t.isDark=!1,t.cssClass="ace-tm",t.cssText='.ace-tm .ace_gutter {\tbackground: #f0f0f0;\tcolor: #333;\t}\t.ace-tm .ace_print-margin {\twidth: 1px;\tbackground: #e8e8e8;\t}\t.ace-tm .ace_fold {\tbackground-color: #6B72E6;\t}\t.ace-tm {\tbackground-color: #FFFFFF;\tcolor: black;\t}\t.ace-tm .ace_cursor {\tcolor: black;\t}\t.ace-tm .ace_invisible {\tcolor: rgb(191, 191, 191);\t}\t.ace-tm .ace_storage,\t.ace-tm .ace_keyword {\tcolor: blue;\t}\t.ace-tm .ace_constant {\tcolor: rgb(197, 6, 11);\t}\t.ace-tm .ace_constant.ace_buildin {\tcolor: rgb(88, 72, 246);\t}\t.ace-tm .ace_constant.ace_language {\tcolor: rgb(88, 92, 246);\t}\t.ace-tm .ace_constant.ace_library {\tcolor: rgb(6, 150, 14);\t}\t.ace-tm .ace_invalid {\tbackground-color: rgba(255, 0, 0, 0.1);\tcolor: red;\t}\t.ace-tm .ace_support.ace_function {\tcolor: rgb(60, 76, 114);\t}\t.ace-tm .ace_support.ace_constant {\tcolor: rgb(6, 150, 14);\t}\t.ace-tm .ace_support.ace_type,\t.ace-tm .ace_support.ace_class {\tcolor: rgb(109, 121, 222);\t}\t.ace-tm .ace_keyword.ace_operator {\tcolor: rgb(104, 118, 135);\t}\t.ace-tm .ace_string {\tcolor: rgb(3, 106, 7);\t}\t.ace-tm .ace_comment {\tcolor: rgb(76, 136, 107);\t}\t.ace-tm .ace_comment.ace_doc {\tcolor: rgb(0, 102, 255);\t}\t.ace-tm .ace_comment.ace_doc.ace_tag {\tcolor: rgb(128, 159, 191);\t}\t.ace-tm .ace_constant.ace_numeric {\tcolor: rgb(0, 0, 205);\t}\t.ace-tm .ace_variable {\tcolor: rgb(49, 132, 149);\t}\t.ace-tm .ace_xml-pe {\tcolor: rgb(104, 104, 91);\t}\t.ace-tm .ace_entity.ace_name.ace_function {\tcolor: #0000A2;\t}\t.ace-tm .ace_heading {\tcolor: rgb(12, 7, 255);\t}\t.ace-tm .ace_list {\tcolor:rgb(185, 6, 144);\t}\t.ace-tm .ace_meta.ace_tag {\tcolor:rgb(0, 22, 142);\t}\t.ace-tm .ace_string.ace_regex {\tcolor: rgb(255, 0, 0)\t}\t.ace-tm .ace_marker-layer .ace_selection {\tbackground: rgb(181, 213, 255);\t}\t.ace-tm.ace_multiselect .ace_selection.ace_start {\tbox-shadow: 0 0 3px 0px white;\t}\t.ace-tm .ace_marker-layer .ace_step {\tbackground: rgb(252, 255, 0);\t}\t.ace-tm .ace_marker-layer .ace_stack {\tbackground: rgb(164, 229, 101);\t}\t.ace-tm .ace_marker-layer .ace_bracket {\tmargin: -1px 0 0 -1px;\tborder: 1px solid rgb(192, 192, 192);\t}\t.ace-tm .ace_marker-layer .ace_active-line {\tbackground: rgba(0, 0, 0, 0.07);\t}\t.ace-tm .ace_gutter-active-line {\tbackground-color : #dcdcdc;\t}\t.ace-tm .ace_marker-layer .ace_selected-word {\tbackground: rgb(250, 250, 255);\tborder: 1px solid rgb(200, 200, 250);\t}\t.ace-tm .ace_indent-guide {\tbackground: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;\t}\t',e("../lib/dom").importCssString(t.cssText,t.cssClass)}),ace.define("ace/line_widgets",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/range"],function(e,t,i){"use strict";function n(e){this.session=e,this.session.widgetManager=this,this.session.getRowLength=this.getRowLength,this.session.$getWidgetScreenLength=this.$getWidgetScreenLength,this.updateOnChange=this.updateOnChange.bind(this),this.renderWidgets=this.renderWidgets.bind(this),this.measureWidgets=this.measureWidgets.bind(this),this.session._changedWidgets=[],this.$onChangeEditor=this.$onChangeEditor.bind(this),this.session.on("change",this.updateOnChange),this.session.on("changeFold",this.updateOnFold),this.session.on("changeEditor",this.$onChangeEditor)}var r=(e("./lib/oop"),e("./lib/dom"));e("./range").Range;(function(){this.getRowLength=function(e){var t;return t=this.lineWidgets?this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0:0,this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1+t:1+t},this.$getWidgetScreenLength=function(){var e=0;return this.lineWidgets.forEach(function(t){t&&t.rowCount&&!t.hidden&&(e+=t.rowCount)}),e},this.$onChangeEditor=function(e){this.attach(e.editor)},this.attach=function(e){e&&e.widgetManager&&e.widgetManager!=this&&e.widgetManager.detach(),this.editor!=e&&(this.detach(),this.editor=e,e&&(e.widgetManager=this,e.renderer.on("beforeRender",this.measureWidgets),e.renderer.on("afterRender",this.renderWidgets)))},this.detach=function(e){var t=this.editor;if(t){this.editor=null,t.widgetManager=null,t.renderer.off("beforeRender",this.measureWidgets),t.renderer.off("afterRender",this.renderWidgets);var i=this.session.lineWidgets;i&&i.forEach(function(e){e&&e.el&&e.el.parentNode&&(e._inDocument=!1,e.el.parentNode.removeChild(e.el))})}},this.updateOnFold=function(e,t){var i=t.lineWidgets;if(i&&e.action){for(var n=e.data,r=n.start.row,o=n.end.row,s="add"==e.action,a=r+1;a0&&!n[r];)r--;this.firstRow=i.firstRow,this.lastRow=i.lastRow,t.$cursorLayer.config=i;for(var s=r;s<=o;s++){var a=n[s];if(a&&a.el)if(a.hidden)a.el.style.top=-100-(a.pixelHeight||0)+"px";else{a._inDocument||(a._inDocument=!0,t.container.appendChild(a.el));var l=t.$cursorLayer.getPixelPosition({row:s,column:0},!0).top;a.coverLine||(l+=i.lineHeight*this.session.getRowLineCount(a.row)),a.el.style.top=l-i.offset+"px";var c=a.coverGutter?0:t.gutterWidth;a.fixedWidth||(c-=t.scrollLeft),a.el.style.left=c+"px",a.fullWidth&&a.screenWidth&&(a.el.style.minWidth=i.width+2*i.padding+"px"),a.fixedWidth?a.el.style.right=t.scrollBar.getWidth()+"px":a.el.style.right=""}}}}}).call(n.prototype),t.LineWidgets=n}),ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range"],function(e,t,i){"use strict";function n(e,t,i){for(var n=0,r=e.length-1;n<=r;){var o=n+r>>1,s=i(t,e[o]);if(s>0)n=o+1;else{if(!(s<0))return o;r=o-1}}return-(n+1)}function r(e,t,i){var r=e.getAnnotations().sort(a.comparePoints);if(r.length){var o=n(r,{row:t,column:-1},a.comparePoints);o<0&&(o=-o-1),o>=r.length?o=i>0?0:r.length-1:0===o&&i<0&&(o=r.length-1);var s=r[o];if(s&&i){if(s.row===t){do{s=r[o+=i]}while(s&&s.row===t);if(!s)return r.slice()}var l=[];t=s.row;do{l[i<0?"unshift":"push"](s),s=r[o+=i]}while(s&&s.row==t);return l.length&&l}}}var o=e("../line_widgets").LineWidgets,s=e("../lib/dom"),a=e("../range").Range;t.showErrorMarker=function(e,t){var i=e.session;i.widgetManager||(i.widgetManager=new o(i),i.widgetManager.attach(e));var n=e.getCursorPosition(),a=n.row,l=i.widgetManager.getWidgetsAtRow(a).filter(function(e){return"errorMarker"==e.type})[0];l?l.destroy():a-=t;var c,h=r(i,a,t);if(h){var d=h[0];n.column=(d.pos&&"number"!=typeof d.column?d.pos.sc:d.column)||0,n.row=d.row,c=e.renderer.$gutterLayer.$annotations[n.row]}else{if(l)return;c={text:["Looks good!"],className:"ace_ok"}}e.session.unfold(n.row),e.selection.moveToPosition(n);var u={row:n.row,fixedWidth:!0,coverGutter:!0,el:s.createElement("div"),type:"errorMarker"},f=u.el.appendChild(s.createElement("div")),p=u.el.appendChild(s.createElement("div"));p.className="error_widget_arrow "+c.className;var m=e.renderer.$cursorLayer.getPixelPosition(n).left;p.style.left=m+e.renderer.gutterWidth-5+"px",u.el.className="error_widget_wrapper",f.className="error_widget "+c.className,f.innerHTML=c.text.join("
"),f.appendChild(s.createElement("div"));var g=function(e,t,i){if(0===t&&("esc"===i||"return"===i))return u.destroy(),{command:"null"}};u.destroy=function(){e.$mouseHandler.isMousePressed||(e.keyBinding.removeKeyboardHandler(g),i.widgetManager.removeLineWidget(u),e.off("changeSelection",u.destroy),e.off("changeSession",u.destroy),e.off("mouseup",u.destroy),e.off("change",u.destroy))},e.keyBinding.addKeyboardHandler(g),e.on("changeSelection",u.destroy),e.on("changeSession",u.destroy),e.on("mouseup",u.destroy),e.on("change",u.destroy),e.session.widgetManager.addLineWidget(u),u.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:u.el.offsetHeight})},s.importCssString("\t .error_widget_wrapper {\t background: inherit;\t color: inherit;\t border:none\t }\t .error_widget {\t border-top: solid 2px;\t border-bottom: solid 2px;\t margin: 5px 0;\t padding: 10px 40px;\t white-space: pre-wrap;\t }\t .error_widget.ace_error, .error_widget_arrow.ace_error{\t border-color: #ff5a5a\t }\t .error_widget.ace_warning, .error_widget_arrow.ace_warning{\t border-color: #F1D817\t }\t .error_widget.ace_info, .error_widget_arrow.ace_info{\t border-color: #5a5a5a\t }\t .error_widget.ace_ok, .error_widget_arrow.ace_ok{\t border-color: #5aaa5a\t }\t .error_widget_arrow {\t position: absolute;\t border: solid 5px;\t border-top-color: transparent!important;\t border-right-color: transparent!important;\t border-left-color: transparent!important;\t top: -5px;\t }\t","")}),ace.define("ace/ace",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/dom","ace/lib/event","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config"],function(e,t,n){"use strict";e("./lib/fixoldbrowsers");var r=e("./lib/dom"),o=e("./lib/event"),s=e("./editor").Editor,a=e("./edit_session").EditSession,l=e("./undomanager").UndoManager,c=e("./virtual_renderer").VirtualRenderer;e("./worker/worker_client"),e("./keyboard/hash_handler"),e("./placeholder"),e("./multi_select"),e("./mode/folding/fold_mode"),e("./theme/textmate"),e("./ext/error_marker"),t.config=e("./config"),t.acequire=e,t.define=i(70),t.edit=function(e){if("string"==typeof e){var i=e;if(!(e=document.getElementById(i)))throw new Error("ace.edit can't find div #"+i)}if(e&&e.env&&e.env.editor instanceof s)return e.env.editor;var n="";if(e&&/input|textarea/i.test(e.tagName)){var a=e;n=a.value,e=r.createElement("pre"),a.parentNode.replaceChild(e,a)}else e&&(n=r.getInnerText(e),e.innerHTML="");var l=t.createEditSession(n),h=new s(new c(e));h.setSession(l);var d={document:l,editor:h,onResize:h.resize.bind(h,null)};return a&&(d.textarea=a),o.addListener(window,"resize",d.onResize),h.on("destroy",function(){o.removeListener(window,"resize",d.onResize),d.editor.container.env=null}),h.container.env=h.env=d,h},t.createEditSession=function(e,t){var i=new a(e,t);return i.setUndoManager(new l),i},t.EditSession=a,t.UndoManager=l,t.version="1.2.9"}),function(){ace.acequire(["ace/ace"],function(e){e&&(e.config.init(!0),e.define=ace.define),window.ace||(window.ace=e);for(var t in e)e.hasOwnProperty(t)&&(window.ace[t]=e[t])})}(),e.exports=window.ace.acequire("ace/ace")},function(e,t){e.exports=function(){throw new Error("define cannot be used indirect")}},function(e,t,i){ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,i){"use strict";var n=e("../lib/oop"),r=e("./text_highlight_rules").TextHighlightRules,o=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"text",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]}};n.inherits(o,r),t.JsonHighlightRules=o}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,i){"use strict";var n=e("../range").Range,r=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var i=e.getLine(t),r=i.match(/^(\s*\})/);if(!r)return 0;var o=r[1].length,s=e.findMatchingBracket({row:t,column:o});if(!s||s.row==t)return 0;var a=this.$getIndent(e.getLine(s.row));e.replace(new n(t,0,t,o-1),a)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(r.prototype),t.MatchingBraceOutdent=r}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,i){"use strict";var n=e("../../lib/oop"),r=e("../../range").Range,o=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};n.inherits(s,o),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,i){var n=e.getLine(i);if(this.singleLineBlockCommentRe.test(n)&&!this.startRegionRe.test(n)&&!this.tripleStarBlockCommentRe.test(n))return"";var r=this._getFoldWidgetBase(e,t,i);return!r&&this.startRegionRe.test(n)?"start":r},this.getFoldWidgetRange=function(e,t,i,n){var r=e.getLine(i);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,i);var o=r.match(this.foldingStartMarker);if(o){var s=o.index;if(o[1])return this.openingBracketBlock(e,o[1],i,s);var a=e.getCommentFoldRange(i,s+o[0].length,1);return a&&!a.isMultiLine()&&(n?a=this.getSectionRange(e,i):"all"!=t&&(a=null)),a}if("markbegin"!==t){var o=r.match(this.foldingStopMarker);if(o){var s=o.index+o[0].length;return o[1]?this.closingBracketBlock(e,o[1],i,s):e.getCommentFoldRange(i,s,-1)}}},this.getSectionRange=function(e,t){var i=e.getLine(t),n=i.search(/\S/),o=t,s=i.length;t+=1;for(var a=t,l=e.getLength();++tc)break;var h=this.getFoldWidgetRange(e,"all",t);if(h){if(h.start.row<=o)break;if(h.isMultiLine())t=h.end.row;else if(n==c)break}a=t}}return new r(o,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,i){for(var n=t.search(/\s*$/),o=e.getLength(),s=i,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++is)return new r(s,n,h,t.length)}}.call(s.prototype)}),ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/worker/worker_client"],function(e,t,n){"use strict";var r=e("../lib/oop"),o=e("./text").Mode,s=e("./json_highlight_rules").JsonHighlightRules,a=e("./matching_brace_outdent").MatchingBraceOutdent,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,h=e("../worker/worker_client").WorkerClient,d=function(){this.HighlightRules=s,this.$outdent=new a,this.$behaviour=new l,this.foldingRules=new c};r.inherits(d,o),function(){this.getNextLineIndent=function(e,t,i){var n=this.$getIndent(t);if("start"==e){t.match(/^.*[\{\(\[]\s*$/)&&(n+=i)}return n},this.checkOutdent=function(e,t,i){return this.$outdent.checkOutdent(t,i)},this.autoOutdent=function(e,t,i){this.$outdent.autoOutdent(t,i)},this.createWorker=function(e){var t=new h(["ace"],i(72),"JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/json"}.call(d.prototype),t.Mode=d})},function(e,t){e.exports.id="ace/mode/json_worker", e.exports.src='"no use strict";!function(window){function resolveModuleId(id,paths){for(var testPath=id,tail="";testPath;){var alias=paths[testPath];if("string"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\/*$/,"/")+(tail||alias.main||alias.name);if(alias===!1)return"";var i=testPath.lastIndexOf("/");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:"error",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf("!")){var chunks=moduleName.split("!");return window.normalizeModule(parentId,chunks[0])+"!"+window.normalizeModule(parentId,chunks[1])}if("."==moduleName.charAt(0)){var base=parentId.split("/").slice(0,-1).join("/");for(moduleName=(base?base+"/":"")+moduleName;-1!==moduleName.indexOf(".")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\.\\//,"").replace(/\\/\\.\\//,"/").replace(/[^\\/]+\\/\\.\\.\\//,"")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error("worker.js acequire() accepts only (parentId, id) as arguments");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log("unable to load "+id);var path=resolveModuleId(id,window.acequire.tlns);return".js"!=path.slice(-3)&&(path+=".js"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,"string"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),"function"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=["require","exports","module"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case"require":return req;case"exports":return module.exports;case"module":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire("ace/lib/event_emitter").EventEmitter,oop=window.acequire("ace/lib/oop"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:"call",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:"event",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error("Unknown command:"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire("ace/lib/es5-shim"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}}(this),ace.define("ace/lib/oop",["require","exports","module"],function(acequire,exports){"use strict";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define("ace/range",["require","exports","module"],function(acequire,exports){"use strict";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){"object"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){"object"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define("ace/apply_delta",["require","exports","module"],function(acequire,exports){"use strict";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||"";switch(delta.action){case"insert":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case"remove":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(acequire,exports){"use strict";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){"object"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?"unshift":"push"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),EventEmitter=acequire("./lib/event_emitter").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.columnthis.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal("change",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),applyDelta=acequire("./apply_delta").applyDelta,EventEmitter=acequire("./lib/event_emitter").EventEmitter,Range=acequire("./range").Range,Anchor=acequire("./anchor").Anchor,Document=function(textOrLines){this.$lines=[""],0===textOrLines.length?this.$lines=[""]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0==="aaa".split(/a/).length?function(text){return text.replace(/\\r\\n|\\r/g,"\\n").split("\\n")}:function(text){return text.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=match?match[1]:"\\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\\r\\n";case"unix":return"\\n";default:return this.$autoNewLine||"\\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return"\\r\\n"==text||"\\r"==text||"\\n"==text},this.getLine=function(row){return this.$lines[row]||""},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||"").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, [\'\', \'\']) instead."),this.insertMergedLines(position,["",""])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:"insert",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([""]),column=0):(lines=[""].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:"insert",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:"remove",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:"remove",lines:["",""]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert="insert"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal("change",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(""),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:"insert"==delta.action?"remove":"insert",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define("ace/lib/lang",["require","exports","module"],function(acequire,exports){"use strict";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split("").reverse().join("")},exports.stringRepeat=function(string,count){for(var result="";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\s\\s*/,trimEndRegexp=/\\s\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,"")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,"")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&"object"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if("object"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if("[object Object]"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,"\\\\$1")},exports.escapeHTML=function(str){return str.replace(/&/g,"&").replace(/"/g,""").replace(/\'/g,"'").replace(/i;i+=2){if(Array.isArray(data[i+1]))var d={action:"insert",start:data[i],lines:data[i+1]};else var d={action:"remove",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define("ace/mode/json/json_parse",["require","exports","module"],function(){"use strict";var at,ch,text,value,escapee={\'"\':\'"\',"\\\\":"\\\\","/":"/",b:"\\b",f:"\\f",n:"\\n",r:"\\r",t:"\t"},error=function(m){throw{name:"SyntaxError",message:m,at:at,text:text}},next=function(c){return c&&c!==ch&&error("Expected \'"+c+"\' instead of \'"+ch+"\'"),ch=text.charAt(at),at+=1,ch},number=function(){var number,string="";for("-"===ch&&(string="-",next("-"));ch>="0"&&"9">=ch;)string+=ch,next();if("."===ch)for(string+=".";next()&&ch>="0"&&"9">=ch;)string+=ch;if("e"===ch||"E"===ch)for(string+=ch,next(),("-"===ch||"+"===ch)&&(string+=ch,next());ch>="0"&&"9">=ch;)string+=ch,next();return number=+string,isNaN(number)?(error("Bad number"),void 0):number},string=function(){var hex,i,uffff,string="";if(\'"\'===ch)for(;next();){if(\'"\'===ch)return next(),string;if("\\\\"===ch)if(next(),"u"===ch){for(uffff=0,i=0;4>i&&(hex=parseInt(next(),16),isFinite(hex));i+=1)uffff=16*uffff+hex;string+=String.fromCharCode(uffff)}else{if("string"!=typeof escapee[ch])break;string+=escapee[ch]}else string+=ch}error("Bad string")},white=function(){for(;ch&&" ">=ch;)next()},word=function(){switch(ch){case"t":return next("t"),next("r"),next("u"),next("e"),!0;case"f":return next("f"),next("a"),next("l"),next("s"),next("e"),!1;case"n":return next("n"),next("u"),next("l"),next("l"),null}error("Unexpected \'"+ch+"\'")},array=function(){var array=[];if("["===ch){if(next("["),white(),"]"===ch)return next("]"),array;for(;ch;){if(array.push(value()),white(),"]"===ch)return next("]"),array;next(","),white()}}error("Bad array")},object=function(){var key,object={};if("{"===ch){if(next("{"),white(),"}"===ch)return next("}"),object;for(;ch;){if(key=string(),white(),next(":"),Object.hasOwnProperty.call(object,key)&&error(\'Duplicate key "\'+key+\'"\'),object[key]=value(),white(),"}"===ch)return next("}"),object;next(","),white()}}error("Bad object")};return value=function(){switch(white(),ch){case"{":return object();case"[":return array();case\'"\':return string();case"-":return number();default:return ch>="0"&&"9">=ch?number():word()}},function(source,reviver){var result;return text=source,at=0,ch=" ",result=value(),white(),ch&&error("Syntax error"),"function"==typeof reviver?function walk(holder,key){var k,v,value=holder[key];if(value&&"object"==typeof value)for(k in value)Object.hasOwnProperty.call(value,k)&&(v=walk(value,k),void 0!==v?value[k]=v:delete value[k]);return reviver.call(holder,key,value)}({"":result},""):result}}),ace.define("ace/mode/json_worker",["require","exports","module","ace/lib/oop","ace/worker/mirror","ace/mode/json/json_parse"],function(acequire,exports){"use strict";var oop=acequire("../lib/oop"),Mirror=acequire("../worker/mirror").Mirror,parse=acequire("./json/json_parse"),JsonWorker=exports.JsonWorker=function(sender){Mirror.call(this,sender),this.setTimeout(200)};oop.inherits(JsonWorker,Mirror),function(){this.onUpdate=function(){var value=this.doc.getValue(),errors=[];try{value&&parse(value)}catch(e){var pos=this.doc.indexToPosition(e.at-1);errors.push({row:pos.row,column:pos.column,text:e.message,type:"error"})}this.sender.emit("annotate",errors)}}.call(JsonWorker.prototype)}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,"sentinel",{}),"sentinel"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if("function"!=typeof target)throw new TypeError("Function.prototype.bind called on incompatible "+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,"__defineGetter__"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,"XXX"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0\n}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return"[object Array]"==_toString(obj)});var boxedString=Object("a"),splitString="a"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,thisp=arguments[1],i=-1,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=[],thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError("reduce of empty array with no initial value")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError("reduceRight of empty array with no initial value")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(object,property){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if("object"!=typeof prototype)throw new TypeError("typeof prototype["+typeof prototype+"] != \'object\'");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom="undefined"==typeof document||doesDefinePropertyWork(document.createElement("div"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR="Property description must be an object: ",ERR_NON_OBJECT_TARGET="Object.defineProperty called on non-object: ",ERR_ACCESSORS_NOT_SUPPORTED="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(object,property,descriptor){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if("object"!=typeof descriptor&&"function"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,"value"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,"get")&&defineGetter(object,property,descriptor.get),owns(descriptor,"set")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return"function"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name="";owns(object,name);)name+="?";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError("Object.keys called on a non-object");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws="\t\\n\v\\f\\r   ᠎              \\u2028\\u2029\ufeff";if(!String.prototype.trim||ws.trim()){ws="["+ws+"]";var trimBeginRegexp=RegExp("^"+ws+ws+"*"),trimEndRegexp=RegExp(ws+ws+"*$");String.prototype.trim=function(){return(this+"").replace(trimBeginRegexp,"").replace(trimEndRegexp,"")}}var toObject=function(o){if(null==o)throw new TypeError("can\'t convert "+o+" to object");return Object(o)}});'},function(e,t){ace.define("ace/ext/searchbox",["require","exports","module","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/keyboard/hash_handler","ace/lib/keys"],function(e,t,i){"use strict";var n=e("../lib/dom"),r=e("../lib/lang"),o=e("../lib/event"),s=e("../keyboard/hash_handler").HashHandler,a=e("../lib/keys");n.importCssString('\t.ace_search {\tbackground-color: #ddd;\tcolor: #666;\tborder: 1px solid #cbcbcb;\tborder-top: 0 none;\toverflow: hidden;\tmargin: 0;\tpadding: 4px 6px 0 4px;\tposition: absolute;\ttop: 0;\tz-index: 99;\twhite-space: normal;\t}\t.ace_search.left {\tborder-left: 0 none;\tborder-radius: 0px 0px 5px 0px;\tleft: 0;\t}\t.ace_search.right {\tborder-radius: 0px 0px 0px 5px;\tborder-right: 0 none;\tright: 0;\t}\t.ace_search_form, .ace_replace_form {\tmargin: 0 20px 4px 0;\toverflow: hidden;\tline-height: 1.9;\t}\t.ace_replace_form {\tmargin-right: 0;\t}\t.ace_search_form.ace_nomatch {\toutline: 1px solid red;\t}\t.ace_search_field {\tborder-radius: 3px 0 0 3px;\tbackground-color: white;\tcolor: black;\tborder: 1px solid #cbcbcb;\tborder-right: 0 none;\tbox-sizing: border-box!important;\toutline: 0;\tpadding: 0;\tfont-size: inherit;\tmargin: 0;\tline-height: inherit;\tpadding: 0 6px;\tmin-width: 17em;\tvertical-align: top;\t}\t.ace_searchbtn {\tborder: 1px solid #cbcbcb;\tline-height: inherit;\tdisplay: inline-block;\tpadding: 0 6px;\tbackground: #fff;\tborder-right: 0 none;\tborder-left: 1px solid #dcdcdc;\tcursor: pointer;\tmargin: 0;\tposition: relative;\tbox-sizing: content-box!important;\tcolor: #666;\t}\t.ace_searchbtn:last-child {\tborder-radius: 0 3px 3px 0;\tborder-right: 1px solid #cbcbcb;\t}\t.ace_searchbtn:disabled {\tbackground: none;\tcursor: default;\t}\t.ace_searchbtn:hover {\tbackground-color: #eef1f6;\t}\t.ace_searchbtn.prev, .ace_searchbtn.next {\tpadding: 0px 0.7em\t}\t.ace_searchbtn.prev:after, .ace_searchbtn.next:after {\tcontent: "";\tborder: solid 2px #888;\twidth: 0.5em;\theight: 0.5em;\tborder-width: 2px 0 0 2px;\tdisplay:inline-block;\ttransform: rotate(-45deg);\t}\t.ace_searchbtn.next:after {\tborder-width: 0 2px 2px 0 ;\t}\t.ace_searchbtn_close {\tbackground: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\tborder-radius: 50%;\tborder: 0 none;\tcolor: #656565;\tcursor: pointer;\tfont: 16px/16px Arial;\tpadding: 0;\theight: 14px;\twidth: 14px;\ttop: 9px;\tright: 7px;\tposition: absolute;\t}\t.ace_searchbtn_close:hover {\tbackground-color: #656565;\tbackground-position: 50% 100%;\tcolor: white;\t}\t.ace_button {\tmargin-left: 2px;\tcursor: pointer;\t-webkit-user-select: none;\t-moz-user-select: none;\t-o-user-select: none;\t-ms-user-select: none;\tuser-select: none;\toverflow: hidden;\topacity: 0.7;\tborder: 1px solid rgba(100,100,100,0.23);\tpadding: 1px;\tbox-sizing: border-box!important;\tcolor: black;\t}\t.ace_button:hover {\tbackground-color: #eee;\topacity:1;\t}\t.ace_button:active {\tbackground-color: #ddd;\t}\t.ace_button.checked {\tborder-color: #3399ff;\topacity:1;\t}\t.ace_search_options{\tmargin-bottom: 3px;\ttext-align: right;\t-webkit-user-select: none;\t-moz-user-select: none;\t-o-user-select: none;\t-ms-user-select: none;\tuser-select: none;\tclear: both;\t}\t.ace_search_counter {\tfloat: left;\tfont-family: arial;\tpadding: 0 8px;\t}',"ace_searchbox");var l=''.replace(/> +/g,">"),c=function(e,t,i){var r=n.createElement("div");r.innerHTML=l,this.element=r.firstChild,this.setSession=this.setSession.bind(this),this.$init(),this.setEditor(e)};(function(){this.setEditor=function(e){e.searchBox=this,e.renderer.scroller.appendChild(this.element),this.editor=e},this.setSession=function(e){this.searchRange=null,this.$syncOptions(!0)},this.$initElements=function(e){this.searchBox=e.querySelector(".ace_search_form"),this.replaceBox=e.querySelector(".ace_replace_form"),this.searchOption=e.querySelector("[action=searchInSelection]"),this.replaceOption=e.querySelector("[action=toggleReplace]"),this.regExpOption=e.querySelector("[action=toggleRegexpMode]"),this.caseSensitiveOption=e.querySelector("[action=toggleCaseSensitive]"),this.wholeWordOption=e.querySelector("[action=toggleWholeWords]"),this.searchInput=this.searchBox.querySelector(".ace_search_field"),this.replaceInput=this.replaceBox.querySelector(".ace_search_field"),this.searchCounter=e.querySelector(".ace_search_counter")},this.$init=function(){var e=this.element;this.$initElements(e);var t=this;o.addListener(e,"mousedown",function(e){setTimeout(function(){t.activeInput.focus()},0),o.stopPropagation(e)}),o.addListener(e,"click",function(e){var i=e.target||e.srcElement,n=i.getAttribute("action");n&&t[n]?t[n]():t.$searchBarKb.commands[n]&&t.$searchBarKb.commands[n].exec(t),o.stopPropagation(e)}),o.addCommandKeyListener(e,function(e,i,n){var r=a.keyCodeToString(n),s=t.$searchBarKb.findKeyCommand(i,r);s&&s.exec&&(s.exec(t),o.stopEvent(e))}),this.$onChange=r.delayedCall(function(){t.find(!1,!1)}),o.addListener(this.searchInput,"input",function(){t.$onChange.schedule(20)}),o.addListener(this.searchInput,"focus",function(){t.activeInput=t.searchInput,t.searchInput.value&&t.highlight()}),o.addListener(this.replaceInput,"focus",function(){t.activeInput=t.replaceInput,t.searchInput.value&&t.highlight()})},this.$closeSearchBarKb=new s([{bindKey:"Esc",name:"closeSearchBar",exec:function(e){e.searchBox.hide()}}]),this.$searchBarKb=new s,this.$searchBarKb.bindKeys({"Ctrl-f|Command-f":function(e){var t=e.isReplace=!e.isReplace;e.replaceBox.style.display=t?"":"none",e.replaceOption.checked=!1,e.$syncOptions(),e.searchInput.focus()},"Ctrl-H|Command-Option-F":function(e){e.replaceOption.checked=!0,e.$syncOptions(),e.replaceInput.focus()},"Ctrl-G|Command-G":function(e){e.findNext()},"Ctrl-Shift-G|Command-Shift-G":function(e){e.findPrev()},esc:function(e){setTimeout(function(){e.hide()})},Return:function(e){e.activeInput==e.replaceInput&&e.replace(),e.findNext()},"Shift-Return":function(e){e.activeInput==e.replaceInput&&e.replace(),e.findPrev()},"Alt-Return":function(e){e.activeInput==e.replaceInput&&e.replaceAll(),e.findAll()},Tab:function(e){(e.activeInput==e.replaceInput?e.searchInput:e.replaceInput).focus()}}),this.$searchBarKb.addCommands([{name:"toggleRegexpMode",bindKey:{win:"Alt-R|Alt-/",mac:"Ctrl-Alt-R|Ctrl-Alt-/"},exec:function(e){e.regExpOption.checked=!e.regExpOption.checked,e.$syncOptions()}},{name:"toggleCaseSensitive",bindKey:{win:"Alt-C|Alt-I",mac:"Ctrl-Alt-R|Ctrl-Alt-I"},exec:function(e){e.caseSensitiveOption.checked=!e.caseSensitiveOption.checked,e.$syncOptions()}},{name:"toggleWholeWords",bindKey:{win:"Alt-B|Alt-W",mac:"Ctrl-Alt-B|Ctrl-Alt-W"},exec:function(e){e.wholeWordOption.checked=!e.wholeWordOption.checked,e.$syncOptions()}},{name:"toggleReplace",exec:function(e){e.replaceOption.checked=!e.replaceOption.checked,e.$syncOptions()}},{name:"searchInSelection",exec:function(e){e.searchOption.checked=!e.searchRange,e.setSearchRange(e.searchOption.checked&&e.editor.getSelectionRange()),e.$syncOptions()}}]),this.setSearchRange=function(e){this.searchRange=e,e?this.searchRangeMarker=this.editor.session.addMarker(e,"ace_active-line"):this.searchRangeMarker&&(this.editor.session.removeMarker(this.searchRangeMarker),this.searchRangeMarker=null)},this.$syncOptions=function(e){n.setCssClass(this.replaceOption,"checked",this.searchRange),n.setCssClass(this.searchOption,"checked",this.searchOption.checked),this.replaceOption.textContent=this.replaceOption.checked?"-":"+",n.setCssClass(this.regExpOption,"checked",this.regExpOption.checked),n.setCssClass(this.wholeWordOption,"checked",this.wholeWordOption.checked),n.setCssClass(this.caseSensitiveOption,"checked",this.caseSensitiveOption.checked),this.replaceBox.style.display=this.replaceOption.checked?"":"none",this.find(!1,!1,e)},this.highlight=function(e){this.editor.session.highlight(e||this.editor.$search.$options.re),this.editor.renderer.updateBackMarkers()},this.find=function(e,t,i){var r=this.editor.find(this.searchInput.value,{skipCurrent:e,backwards:t,wrap:!0,regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked,preventScroll:i,range:this.searchRange}),o=!r&&this.searchInput.value;n.setCssClass(this.searchBox,"ace_nomatch",o),this.editor._emit("findSearchBox",{match:!o}),this.highlight(),this.updateCounter()},this.updateCounter=function(){var e=this.editor,t=e.$search.$options.re,i=0,n=0;if(t){var r=this.searchRange?e.session.getTextRange(this.searchRange):e.getValue(),o=e.session.doc.positionToIndex(e.selection.anchor);this.searchRange&&(o-=e.session.doc.positionToIndex(this.searchRange.start));for(var s,a=t.lastIndex=0;(s=t.exec(r))&&(i++,a=s.index,a<=o&&n++,!(i>999))&&(s[0]||(t.lastIndex=a+=1,!(a>=r.length))););}this.searchCounter.textContent=n+" of "+(i>999?"999+":i)},this.findNext=function(){this.find(!0,!1)},this.findPrev=function(){this.find(!0,!0)},this.findAll=function(){var e=this.editor.findAll(this.searchInput.value,{regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked}),t=!e&&this.searchInput.value;n.setCssClass(this.searchBox,"ace_nomatch",t),this.editor._emit("findSearchBox",{match:!t}),this.highlight(),this.hide()},this.replace=function(){this.editor.getReadOnly()||this.editor.replace(this.replaceInput.value)},this.replaceAndFindNext=function(){this.editor.getReadOnly()||(this.editor.replace(this.replaceInput.value),this.findNext())},this.replaceAll=function(){this.editor.getReadOnly()||this.editor.replaceAll(this.replaceInput.value)},this.hide=function(){this.active=!1,this.setSearchRange(null),this.editor.off("changeSession",this.setSession),this.element.style.display="none",this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb),this.editor.focus()},this.show=function(e,t){this.active=!0,this.editor.on("changeSession",this.setSession),this.element.style.display="",this.replaceOption.checked=t,e&&(this.searchInput.value=e),this.searchInput.focus(),this.searchInput.select(),this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb),this.$syncOptions(!0)},this.isFocused=function(){var e=document.activeElement;return e==this.searchInput||e==this.replaceInput}}).call(c.prototype),t.SearchBox=c,t.Search=function(e,t){(e.searchBox||new c(e)).show(e.session.getTextRange(),t)}}),function(){ace.acequire(["ace/ext/searchbox"],function(){})}()},function(e,t){ace.define("ace/theme/jsoneditor",["require","exports","module","ace/lib/dom"],function(e,t,i){t.isDark=!1,t.cssClass="ace-jsoneditor",t.cssText='.ace-jsoneditor .ace_gutter {\tbackground: #ebebeb;\tcolor: #333\t}\t\t.ace-jsoneditor.ace_editor {\tfont-family: "dejavu sans mono", "droid sans mono", consolas, monaco, "lucida console", "courier new", courier, monospace, sans-serif;\tline-height: 1.3;\tbackground-color: #fff;\t}\t.ace-jsoneditor .ace_print-margin {\twidth: 1px;\tbackground: #e8e8e8\t}\t.ace-jsoneditor .ace_scroller {\tbackground-color: #FFFFFF\t}\t.ace-jsoneditor .ace_text-layer {\tcolor: gray\t}\t.ace-jsoneditor .ace_variable {\tcolor: #1a1a1a\t}\t.ace-jsoneditor .ace_cursor {\tborder-left: 2px solid #000000\t}\t.ace-jsoneditor .ace_overwrite-cursors .ace_cursor {\tborder-left: 0px;\tborder-bottom: 1px solid #000000\t}\t.ace-jsoneditor .ace_marker-layer .ace_selection {\tbackground: lightgray\t}\t.ace-jsoneditor.ace_multiselect .ace_selection.ace_start {\tbox-shadow: 0 0 3px 0px #FFFFFF;\tborder-radius: 2px\t}\t.ace-jsoneditor .ace_marker-layer .ace_step {\tbackground: rgb(255, 255, 0)\t}\t.ace-jsoneditor .ace_marker-layer .ace_bracket {\tmargin: -1px 0 0 -1px;\tborder: 1px solid #BFBFBF\t}\t.ace-jsoneditor .ace_marker-layer .ace_active-line {\tbackground: #FFFBD1\t}\t.ace-jsoneditor .ace_gutter-active-line {\tbackground-color : #dcdcdc\t}\t.ace-jsoneditor .ace_marker-layer .ace_selected-word {\tborder: 1px solid lightgray\t}\t.ace-jsoneditor .ace_invisible {\tcolor: #BFBFBF\t}\t.ace-jsoneditor .ace_keyword,\t.ace-jsoneditor .ace_meta,\t.ace-jsoneditor .ace_support.ace_constant.ace_property-value {\tcolor: #AF956F\t}\t.ace-jsoneditor .ace_keyword.ace_operator {\tcolor: #484848\t}\t.ace-jsoneditor .ace_keyword.ace_other.ace_unit {\tcolor: #96DC5F\t}\t.ace-jsoneditor .ace_constant.ace_language {\tcolor: darkorange\t}\t.ace-jsoneditor .ace_constant.ace_numeric {\tcolor: red\t}\t.ace-jsoneditor .ace_constant.ace_character.ace_entity {\tcolor: #BF78CC\t}\t.ace-jsoneditor .ace_invalid {\tcolor: #FFFFFF;\tbackground-color: #FF002A;\t}\t.ace-jsoneditor .ace_fold {\tbackground-color: #AF956F;\tborder-color: #000000\t}\t.ace-jsoneditor .ace_storage,\t.ace-jsoneditor .ace_support.ace_class,\t.ace-jsoneditor .ace_support.ace_function,\t.ace-jsoneditor .ace_support.ace_other,\t.ace-jsoneditor .ace_support.ace_type {\tcolor: #C52727\t}\t.ace-jsoneditor .ace_string {\tcolor: green\t}\t.ace-jsoneditor .ace_comment {\tcolor: #BCC8BA\t}\t.ace-jsoneditor .ace_entity.ace_name.ace_tag,\t.ace-jsoneditor .ace_entity.ace_other.ace_attribute-name {\tcolor: #606060\t}\t.ace-jsoneditor .ace_markup.ace_underline {\ttext-decoration: underline\t}\t.ace-jsoneditor .ace_indent-guide {\tbackground: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y\t}',e("../lib/dom").importCssString(t.cssText,t.cssClass)})}])}); //# sourceMappingURL=jsoneditor.map \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index b871020..05f9a49 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "jsoneditor", - "version": "5.16.0", + "version": "5.17.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 463ee51..4c67662 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "jsoneditor", - "version": "5.16.0", + "version": "5.17.0", "main": "./index", "description": "A web-based tool to view, edit, format, and validate JSON", "tags": [