From a1145370365d7193215ddab5401ea5b4c2e030ea Mon Sep 17 00:00:00 2001 From: jos Date: Fri, 27 Feb 2015 22:21:31 +0100 Subject: [PATCH] Updated built files --- jsoneditor.js | 94 ++++++++++++++++++++++++++--------------------- jsoneditor.map | 2 +- jsoneditor.min.js | 16 ++++---- 3 files changed, 61 insertions(+), 51 deletions(-) diff --git a/jsoneditor.js b/jsoneditor.js index 2e8064c..eead92e 100644 --- a/jsoneditor.js +++ b/jsoneditor.js @@ -1488,6 +1488,16 @@ return /******/ (function(modules) { // webpackBootstrap return $1 + '"' + $2 + '"' + $3; }); + jsonString = jsonString.replace(/\/\*(.|[\r\n])*?\*\//g,'');//Remove all code comments + + //If JSON starts with a function (Carachters/digist/"_-"), remove this function. + //This is usefull for "stripping" JSONP objects to become JSON + //For example: function_12321321 ( [{"a":"b"}] ); => [{"a":"b"}] + var match = jsonString.match(/^\s*[\dA-z_$]+\s*\(([\s\S]*)\)\s*;?\s*$/); + if (match) { + var jsonString = match[1]; + } + return jsonString; }; @@ -5755,7 +5765,7 @@ return /******/ (function(modules) { // webpackBootstrap background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y\ }"; - var dom = require("../lib/dom"); + var dom = acequire("../lib/dom"); dom.importCssString(exports.cssText, exports.cssClass); }); @@ -21783,7 +21793,7 @@ return /******/ (function(modules) { // webpackBootstrap try { var workerSrc = mod.src; - var Blob = __webpack_require__(18); + var Blob = __webpack_require__(21); var blob = new Blob([ workerSrc ], { type: 'application/javascript' }); var blobUrl = (window.URL || window.webkitURL).createObjectURL(blob); @@ -26126,7 +26136,7 @@ return /******/ (function(modules) { // webpackBootstrap if (!args[1]) throw new Error('Usage: '+args[0]+' FILE'); if (typeof process !== 'undefined') { - var source = __webpack_require__(!(function webpackMissingModule() { var e = new Error("Cannot find module \"fs\""); e.code = 'MODULE_NOT_FOUND'; throw e; }())).readFileSync(__webpack_require__(20).join(process.cwd(), args[1]), "utf8"); + var source = __webpack_require__(!(function webpackMissingModule() { var e = new Error("Cannot find module \"fs\""); e.code = 'MODULE_NOT_FOUND'; throw e; }())).readFileSync(__webpack_require__(19).join(process.cwd(), args[1]), "utf8"); } else { var cwd = __webpack_require__(!(function webpackMissingModule() { var e = new Error("Cannot find module \"file\""); e.code = 'MODULE_NOT_FOUND'; throw e; }())).path(__webpack_require__(!(function webpackMissingModule() { var e = new Error("Cannot find module \"file\""); e.code = 'MODULE_NOT_FOUND'; throw e; }())).cwd()); var source = cwd.join(args[1]).read({charset: "utf-8"}); @@ -26137,7 +26147,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.main(typeof process !== 'undefined' ? process.argv.slice(1) : __webpack_require__(!(function webpackMissingModule() { var e = new Error("Cannot find module \"system\""); e.code = 'MODULE_NOT_FOUND'; throw e; }())).args); } } - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(21), __webpack_require__(19)(module))) + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(20), __webpack_require__(18)(module))) /***/ }, /* 16 */ @@ -26155,41 +26165,6 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, /* 18 */ -/***/ function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(global) {module.exports = get_blob() - - function get_blob() { - if(global.Blob) { - try { - new Blob(['asdf'], {type: 'text/plain'}) - return Blob - } catch(err) {} - } - - var Builder = global.WebKitBlobBuilder || - global.MozBlobBuilder || - global.MSBlobBuilder - - return function(parts, bag) { - var builder = new Builder - , endings = bag.endings - , type = bag.type - - if(endings) for(var i = 0, len = parts.length; i < len; ++i) { - builder.append(parts[i], endings) - } else for(var i = 0, len = parts.length; i < len; ++i) { - builder.append(parts[i]) - } - - return type ? builder.getBlob(type) : builder.getBlob() - } - } - - /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) - -/***/ }, -/* 19 */ /***/ function(module, exports, __webpack_require__) { module.exports = function(module) { @@ -26205,7 +26180,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 20 */ +/* 19 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {// Copyright Joyent, Inc. and other Node contributors. @@ -26433,10 +26408,10 @@ return /******/ (function(modules) { // webpackBootstrap } ; - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(21))) + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(20))) /***/ }, -/* 21 */ +/* 20 */ /***/ function(module, exports, __webpack_require__) { // shim for using process in browser @@ -26527,6 +26502,41 @@ return /******/ (function(modules) { // webpackBootstrap }; +/***/ }, +/* 21 */ +/***/ function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(global) {module.exports = get_blob() + + function get_blob() { + if(global.Blob) { + try { + new Blob(['asdf'], {type: 'text/plain'}) + return Blob + } catch(err) {} + } + + var Builder = global.WebKitBlobBuilder || + global.MozBlobBuilder || + global.MSBlobBuilder + + return function(parts, bag) { + var builder = new Builder + , endings = bag.endings + , type = bag.type + + if(endings) for(var i = 0, len = parts.length; i < len; ++i) { + builder.append(parts[i], endings) + } else for(var i = 0, len = parts.length; i < len; ++i) { + builder.append(parts[i]) + } + + return type ? builder.getBlob(type) : builder.getBlob() + } + } + + /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) + /***/ } /******/ ]) }); diff --git a/jsoneditor.map b/jsoneditor.map index c01346e..21981bd 100644 --- a/jsoneditor.map +++ b/jsoneditor.map @@ -1 +1 @@ -{"version":3,"file":"jsoneditor.map","sources":["./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","arguments","length","_create","treemode","textmode","modes","prototype","mode","setMode","_delete","set","get","setText","jsonText","parse","getText","JSON","stringify","setName","name","getName","data","extend","config","asText","clear","mixin","create","load","err","_onError","onError","log","error","registerMode","i","prop","isArray","reserved","Highlighter","History","SearchBox","Node","modeswitcher","dom","highlighter","selection","undefined","_setOptions","history","_createFrame","_createTable","frame","parentNode","removeChild","search","hasOwnProperty","focusNode","domFocus","Function","content","table","params","field","value","node","_setRoot","recurse","expand","appendChild","blur","getValue","updateField","collapse","tbody","getDom","text","results","expandAll","collapseAll","_onAction","action","add","change","startAutoScroll","mouseY","me","top","getAbsoluteTop","height","clientHeight","bottom","margin","interval","autoScrollStep","scrollTop","scrollHeight","autoScrollTimer","setInterval","stopAutoScroll","clearTimeout","setSelection","range","setSelectionOffset","focus","getSelection","getSelectionOffset","scrollTo","callback","editor","animateTimeout","animateCallback","finalScrollTop","Math","min","max","animate","diff","abs","setTimeout","onEvent","event","_onEvent","document","createElement","className","onclick","target","nodeName","preventDefault","oninput","onchange","onkeydown","onkeyup","oncut","onpaste","onmousedown","onmouseup","onmouseover","onmouseout","addEventListener","onfocusin","onfocusout","menu","title","undo","_onUndo","redo","_onRedo","onChange","disabled","canUndo","canRedo","modeBox","searchBox","type","_onKeyDown","getNodeFromTarget","keynum","which","keyCode","ctrlKey","shiftKey","handled","selectContentEditable","select","previous","next","stopPropagation","contentOuter","col","colgroupContent","width","ace","indentation","Number","textarea","clientWidth","buttonFormat","format","buttonCompact","compact","editorDom","style","edit","setTheme","setShowPrintMargin","setFontSize","getSession","setTabSize","setUseSoftTabs","setUseWrapMode","poweredBy","createTextNode","href","window","open","on","spellcheck","resize","force","sanitize","setValue","jsonlint","jsonString","validate","jsString","chars","inString","charAt","isEscaped","push","join","replace","$0","$1","$2","$3","a","b","console","apply","object","String","Boolean","RegExp","isUrlRegex","isUrl","test","obj","Object","toString","getAbsoluteLeft","elem","rect","getBoundingClientRect","left","pageXOffset","scrollLeft","pageYOffset","addClassName","classes","split","indexOf","removeClassName","index","splice","stripFormatting","divElement","childs","childNodes","iMax","child","removeAttribute","attributes","j","attribute","specified","setEndOfContentEditable","contentEditableElement","createRange","selectNodeContents","removeAllRanges","addRange","sel","getRangeAt","rangeCount","startContainer","endContainer","startOffset","endOffset","setStart","firstChild","setEnd","getInnerText","element","buffer","first","flush","nodeValue","hasChildNodes","innerText","prevChild","prevName","_ieVersion","rv","navigator","appName","ua","userAgent","re","exec","parseFloat","isFirefox","listener","useCapture","attachEvent","f","removeEventListener","detachEvent","locked","highlight","setHighlight","_cancelUnhighlight","unhighlight","unhighlightTimer","lock","unlock","actions","editField","oldValue","newValue","editValue","updateValue","appendNode","parent","insertBeforeNode","insertBefore","beforeNode","insertAfterNode","insertAfter","afterNode","removeNode","append","duplicateNode","clone","changeType","oldType","newType","moveNode","startParent","moveTo","startIndex","endParent","endIndex","sort","hideChilds","oldSort","oldChilds","showChilds","newSort","newChilds","timestamp","Date","oldSelection","newSelection","timeout","delay","lastText","tr","td","divInput","input","tableInput","tbodySearch","refreshSearch","_onDelayedSearch","_onSearch","_onKeyUp","searchNext","searchPrevious","resultIndex","_setActiveResult","activeResult","prevNode","prevElem","searchFieldActive","searchValueActive","updateDom","_clearDelay","forceSearch","resultCount","innerHTML","expanded","setField","fieldEditable","ContextMenu","appendNodeFactory","_updateEditability","editable","path","unshift","setParent","getField","_getDomField","childValue","_getType","childField","arr","forEach","_getDomValue","getLevel","fieldInnerText","valueInnerText","cloneChilds","childClone","getAppend","nextTr","nextSibling","hide","_hasChilds","newTr","appendTr","updateIndexes","moveBefore","trTemp","AppendNode","currentIndex","toLowerCase","searchField","searchValue","_updateDomField","childResults","concat","_updateDomValue","offsetTop","focusElement","elementName","drag","editableDiv","_duplicate","containsNode","_move","clearDom","removedNode","_remove","lastTr","_stringCast","silent","_unescapeHTML","str","domValue","v","t","color","isEmpty","count","domField","oldField","tdDrag","domDrag","tdMenu","tdField","tree","_createDomTree","_onDragStart","mousemove","_onDrag","mouseup","_onDragEnd","oldCursor","body","cursor","mouseX","pageX","level","trThis","trPrev","trNext","trFirst","trLast","trRoot","nodePrev","nodeNext","topThis","topPrev","topFirst","heightThis","bottomNext","heightNext","pageY","moved","offsetHeight","previousSibling","diffX","diffLevel","round","levelNext","_isChildOf","n","_createDomField","domTree","marginLeft","contentEditable","_escapeHTML","_updateDomIndexes","_createDomValue","_createDomExpandButton","borderCollapse","tdExpand","tdSeparator","tdValue","srcElement","expandable","showContextMenu","_onExpand","offsetX","onKeyDown","nextNode","nextDom","nextDom2","altKey","_onDuplicate","_onRemove","_onInsertBefore","_onInsertAfter","lastNode","_lastNode","_getElementName","firstNode","_firstNode","prevElement","_previousElement","appendDom","nextNode2","_previousNode","nextElement","_nextElement","prevDom","isVisible","_nextNode","newNode","_onAppend","_onChangeType","_onSort","direction","order","firstDom","lastDom","lastChild","TYPE_TITLES","auto","array","string","anchor","onClose","titles","items","submenu","click","submenuTitle","close","show","Array","lower","num","numFloat","isNaN","htmlEscaped","substring","escapedText","_escapeJSON","escaped","createModeSwitcher","current","switchMode","availableModes","code","form","view","item","currentMode","currentTitle","box","require","isDark","cssClass","cssText","importCssString","exportAce","ns","acequire","_acequire","global","packaged","_define","original","ACE_NAMESPACE","acequirejs","deps","payload","trace","payloads","parentId","l","dep","lookup","normalizeModule","moduleName","chunks","base","slice","mod","uri","req","returnValue","getNativeFlags","regex","ignoreCase","multiline","extended","sticky","from","real","match","compliantExecNpcg","compliantLastIndexIncrement","x","lastIndex","r2","source","_xregexp","captureNames","Empty","doesDefinePropertyWork","defineProperty","exception","toInteger","floor","bind","that","TypeError","args","bound","result","defineGetter","defineSetter","lookupGetter","lookupSetter","supportsAccessors","prototypeOfArray","prototypeOfObject","_toString","owns","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__","makeArray","lengthBefore","array_splice","start","deleteCount","pos","removeCount","removed","insert","remove","tailOldPos","tailNewPos","tailCount","lengthAfterRemove","boxedString","splitString","fun","toObject","self","thisp","map","filter","every","some","reduce","reduceRight","sought","lastIndexOf","getPrototypeOf","__proto__","constructor","getOwnPropertyDescriptor","ERR_NON_OBJECT","property","descriptor","getter","setter","enumerable","configurable","getOwnPropertyNames","keys","createEmpty","empty","propertyIsEnumerable","isPrototypeOf","toLocaleString","valueOf","properties","Type","defineProperties","definePropertyWorksOnObject","definePropertyWorksOnDom","definePropertyFallback","ERR_NON_OBJECT_DESCRIPTOR","ERR_NON_OBJECT_TARGET","ERR_ACCESSORS_NOT_SUPPORTED","seal","freeze","freezeObject","preventExtensions","isSealed","isFrozen","isExtensible","hasDontEnumBug","dontEnums","dontEnumsLength","key","ii","dontEnum","now","getTime","ws","trim","trimBeginRegexp","trimEndRegexp","o","XHTML_NS","getDocumentHead","doc","head","getElementsByTagName","documentElement","tag","createElementNS","hasCssClass","el","addCssClass","removeCssClass","toggleCssClass","setCssClass","include","hasCssString","sheets","createStyleSheet","styleSheets","owningElement","importCssStylsheet","link","rel","getInnerWidth","parseInt","computedStyle","getInnerHeight","getPageScrollTop","getPageScrollLeft","getComputedStyle","currentStyle","scrollbarWidth","inner","minWidth","display","outer","position","overflow","noScrollbar","offsetWidth","withScrollbar","setInnerHtml","innerHtml","cloneNode","replaceChild","setInnerText","textContent","getParentWindow","defaultView","parentWindow","inherits","ctor","superCtor","super_","writable","implement","proto","oop","Keys","ret","MODIFIER_KEYS",16,17,18,224,"KEY_MODS","ctrl","alt","option","shift","super","meta","command","cmd","FUNCTION_KEYS",8,9,13,19,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,187,188,189,190,191,192,219,220,221,222,"enter","escape","esc","del","mods","pow","keyCodeToString","keyString","fromCharCode","OS","LINUX","MAC","WINDOWS","getOS","isMac","isLinux","os","platform","isWin","isIE","isOldIE","isGecko","isMozilla","Controllers","controllers","product","isOldGecko","isOpera","opera","isWebKit","isChrome","isAIR","isIPad","isTouchPad","isChromeOS","normalizeCommandKeys","e","hashId","getModifierHash","useragent","pressedKeys","altGr","location","keyLocation","ts","timeStamp","dt","defaultPrevented","addListener","wrapper","_wrapper","removeListener","stopEvent","cancelBubble","getButton","button",1,2,4,"capture","eventHandler","releaseCaptureHandler","onMouseUp","addMouseWheelListener","factor","wheelDeltaX","wheelX","wheelY","wheelDeltaY","wheelDelta","deltaMode","DOM_DELTA_PIXEL","deltaX","deltaY","DOM_DELTA_LINE","DOM_DELTA_PAGE","axis","HORIZONTAL_AXIS","detail","addMultiMouseDownListener","timeouts","callbackName","startX","startY","timer","clicks","eventNames",3,"isNewClick","clientX","clientY","_clicks","metaKey","getModifierString","addCommandKeyListener","lastKeyDownKeyCode","lastDefaultPrevented","postMessage","postMessageId","nextTick","win","messageName","nextFrame","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","oRequestAnimationFrame","last","stringReverse","reverse","stringRepeat","stringTrimLeft","stringTrimRight","copyObject","copy","copyArray","deepCopy","cons","arrayToMap","createMap","props","arrayRemove","escapeRegExp","escapeHTML","getMatchOffsets","regExp","matches","offset","deferredCall","fcn","deferred","cancel","schedule","isPending","delayedCall","defaultTimeout","_self","lang","BROKEN_SETDATA","USE_IE_MIME_TYPE","TextInput","host","resetSelection","inComposition","inputHandler","selectionStart","selectionEnd","setSelectionRange","resetValue","PLACEHOLDER","syncValue","onContextMenuClose","closeTimeout","tempStyle","renderer","$keepTextAreaAtCursor","$moveTextAreaToCursor","setAttribute","wrap","autocorrect","autocapitalize","opacity","copied","pasted","isSelectionEmpty","isFocused","activeElement","onBlur","onFocus","syncSelection","isAllSelected","createTextRange","moveStart","moveEnd","ownerDocument","parentElement","inPropertyChange","onPropertyChange","syncProperty","sendText","keytable","onCompositionEnd","charCodeAt","onCompositionUpdate","onCompositionStart","onSelect","selectAll","setInputHandler","cb","getInputHandler","afterContextMenu","onPaste","execCommand","substr","onTextInput","onInput","handleClipboardData","clipboardData","mime","setData","getData","doCopy","isCut","getCopyText","onCut","onCopy","onCommandKey","$readOnly","session","markUndoGroup","clearSelection","val","lastValue","r","getRange","setRange","syncComposition","getElement","setReadOnly","readOnly","onContextMenu","_emit","domEvent","moveToMouse","bringToFront","borderTopWidth","borderLeftWidth","maxTop","move","textInput","scroller","DefaultHandlers","mouseHandler","$clickSelection","setDefaultHandler","onMouseDown","onDoubleClick","onTripleClick","onQuadClick","onMouseWheel","selectByLines","extendSelectionBy","selectByWords","calcDistance","ax","ay","bx","by","sqrt","calcRangeOrientation","row","end","cmp","column","DRAG_OFFSET","ev","inSelection","getDocumentPosition","mousedownEvent","selectionRange","getSelectionRange","selectionEmpty","moveToPosition","time","$focusTimout","inMultiSelectMode","captureMouse","startSelect","setState","waitForClickSelection","screenToTextCoordinates","y","getShiftKey","selectToPosition","setCapture","setStyle","comparePoint","orientedRange","setSelectionAnchor","scrollCursorIntoView","unitName","cmpStart","cmpEnd","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","unsetStyle","releaseCapture","focusWait","distance","getBracketRange","getWordRange","isMultiLine","contains","getLineRange","getAccelKey","$lastScrollTime","isScrolable","isScrollableBy","speed","scrollBy","stop","Tooltip","isOpen","$element","$parentNode","$init","setHtml","html","setPosition","setClassName","getHeight","getWidth","GutterHandler","showTooltip","mouseEvent","annotation","gutter","$annotations","hideTooltip","maxRow","getLength","screenRow","pixelToScreenCoordinates","$pos","documentToScreenRow","tooltipAnnotation","tooltip","$tooltipFollowsMouse","moveTooltip","gutterElement","$cells","right","tooltipTimeout","$gutterLayer","GutterTooltip","gutterRegion","getRegion","selectTo","isMousePressed","$gutter","windowWidth","innerWidth","windowHeight","innerHeight","MouseEvent","$inSelection","propagationStopped","DragdropHandler","prevCursor","vMovement","hMovement","cursorMovedTime","$blockScrolling","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","counter","onMouseMove","clearDragMarker","removeMarker","fromOrientedRange","isInternal","getReadOnly","onMouseMoveTimer","canAccept","dataTransfer","types","getDropEffect","copyAllowed","moveAllowed","copyModifierState","effectAllowed","dropEffect","blankImage","src","dragOperation","mouseTarget","onDragStart","cancelDrag","draggable","setDragImage","clearData","getTextRange","onDragEnd","setCursorStyle","onDragEnter","onDragOver","onDragLeave","onDrop","moveText","dropData","dragWait","getDragDelay","startDrag","dragWaitEnd","dragReadyEnd","cursorStyle","onMouseDrag","state","dragDrop","$dragEnabled","clickCount","eventTarget","unselectable","url","xhr","XMLHttpRequest","onreadystatechange","readyState","responseText","send","loadScript","s","onload","_","isAbort","qualifyURL","EventEmitter","_dispatchEvent","eventName","_eventRegistry","_defaultHandlers","listeners","defaultHandler","_signal","once","newCallback","handlers","_disabled_","old","removeDefaultHandler","pop","capturing","off","removeAllListeners","init","scriptOptions","scriptUrl","currentScript","_currentScript","currentDocument","scripts","script","getAttribute","attr","deHyphenate","basePath","workerPath","modePath","themePath","m1","toUpperCase","net","suffix","$moduleUrls","all","moduleUrl","component","parts","sep","setModuleUrl","subst","$loading","loadModule","onLoad","moduleType","afterLoad","optionsProvider","setOptions","optList","setOption","getOptions","optionNames","$options","getOption","opt","warn","forwardTo","handlesSet","defaultOptions","defineOptions","initialValue","resetOptions","setDefaultValue","opts","setDefaultValues","optionHash","DefaultGutterHandler","MouseHandler","focusEditor","getMouseEventTarget","onMouseEvent","scrollBarV","scrollBarH","gutterEl","$dragDelay","char","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","$data","$handlers","commands","kb","removeKeyboardHandler","$defaultHandler","addKeyboardHandler","setKeyboardHandler","h","handleKeyboard","attach","detach","getKeyboardHandler","getStatusText","$callKeyboardHandlers","toExecute","success","passEvent","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","lead","selectionLead","createAnchor","selectionAnchor","$isEmpty","$keepDesiredColumnOnChange","$desiredColumn","getCursor","getPosition","getSelectionAnchor","getSelectionLead","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","tabSize","getTabSize","isTabStop","firstColumnPosition","screenToDocumentPosition","beforeCursor","getDisplayLine","leadingSpace","$useEmacsStyleLineStart","lineEnd","getDocumentLastRowColumnPosition","line","textEnd","moveCursorLongWordRight","rightOfCursor","nonTokenRe","tokenRe","moveCursorLongWordLeft","getFoldStringAt","leftOfCursor","$shortWordEndIndex","ch","whitespaceRe","moveCursorShortWordRight","moveCursorShortWordLeft","$selectLongWords","rows","screenPos","docPos","lineWidgets","keepDesiredColumn","moveCursorToScreen","desiredColumn","getRangeOfMovements","func","toJSON","ranges","r1","fromJSON","rangeList","toSingleRange","MAX_TOKEN_COUNT","Tokenizer","rules","states","regExps","matchMappings","ruleRegExps","matchTotal","mapping","defaultToken","flag","splitterRurles","rule","caseInsensitive","adjustedregex","matchcount","token","reportError","groupCount","tokenArray","onMatch","$arrayTokens","$applyToken","digit","removeCapturingGroups","splitRegex","createSplitterRegexp","$setMaxTokenCount","values","tokens","stack","inChClass","lastCapture","parenOpen","parenClose","square","getLineTokens","startState","currentState","matchAttempts","skipped","merge","msg","TextHighlightRules","$rules","addRules","prefix","nextState","getRules","embedRules","HighlightRules","escapeRules","$embeds","getEmbeds","pushState","popState","normalizeRules","processState","processed","stateName","includeName","toInsert","noEscape","keywordMap","createKeywordMapper","splitChar","keywords","list","$keywordList","getKeywords","$keywords","Behaviour","$behaviours","addBehaviours","behaviours","inherit","getBehaviours","addUnicodePackage","pack","codePoint","packages","L","Ll","Lu","Lt","Lm","Lo","M","Mn","Mc","Me","N","Nd","Nl","No","P","Pd","Ps","Pe","Pi","Pf","Pc","Po","S","Sm","Sc","Sk","So","Z","Zs","Zl","Zp","C","Cc","Cf","Co","Cs","Cn","TokenIterator","initialRow","initialColumn","$session","$row","$rowTokens","getTokens","getTokenAt","$tokenIndex","stepBackward","stepForward","rowCount","getCurrentToken","getCurrentTokenRow","getCurrentTokenColumn","rowTokens","tokenIndex","unicode","Mode","$behaviour","getTokenizer","$tokenizer","$highlightRules","lineCommentStart","blockComment","toggleCommentLines","iter","ignoreBlankLines","shouldRemove","minIndent","Infinity","insertAtTabStop","regexpStart","getUseSoftTabs","uncomment","shouldInsertSpace","removeInLine","commentWithSpace","comment","insertInLine","testRemove","before","after","spaces","lineCommentEnd","regexpEnd","minEmptyLength","indent","toggleBlockComment","colDiff","iterator","initialRange","startRange","endRange","getNextLineIndent","$getIndent","checkOutdent","autoOutdent","createWorker","createModeDelegates","$modes","delegations","scope","functionName","$delegator","method","transformAction","completionKeywords","ruleItr","aLength","$createKeywordList","getCompletions","word","score","$id","Anchor","$onChange","$clipPositionToDocument","$insertRight","delta","noClip","Document","$lines","_insertLines","len","getAllLines","getNewLineCharacter","$split","$detectNewLine","$autoNewLine","$newLineMode","setNewLineMode","newLineMode","getNewLineMode","isNewLine","getLines","lines","$clipPosition","firstLine","lastLine","insertNewLine","insertLines","firstFullRow","lastFullRow","_removeLines","removeNewLine","newLine","removeLines","nl","secondLine","applyDeltas","deltas","revertDeltas","indexToPosition","newlineLength","positionToIndex","BackgroundTokenizer","tokenizer","running","currentLine","$worker","workerStart","endLine","startLine","processedLines","$tokenizeRow","fireUpdateEvent","setTokenizer","setDocument","scheduleStart","$updateOnChange","getState","SearchHighlight","clazz","setRegexp","MAX_RANGES","cache","update","markerLayer","drawSingleLineMarker","FoldLine","foldData","folds","setFoldLine","shiftRow","sameRow","containsRow","walk","lastEnd","isNewRow","placeholder","getNextFoldTo","kind","addRemoveChars","foldBefore","newFoldLine","foldLineNext","idxToPosition","idx","lastFoldEndColumn","RangeList","pointIndex","excludeEdges","addList","substractPoint","containsPoint","rangeAtPoint","clipped","removeAll","changeRange","lineDif","consumePoint","point","consumeRange","restorePoint","restoreRange","Fold","subFolds","subFold","collapseChildren","addSubFold","afterStart","Folding","side","getFoldsInRange","foldLines","$foldData","foundFolds","getFoldsInRangeList","getAllFolds","lastFold","docRow","startFoldLine","getNextFoldLine","getFoldedRowCount","$addFoldLine","added","$clipRangeToDocument","startFold","endFold","removeFolds","$useWrapMode","$updateWrapData","$updateRowLengthCache","$modified","addFolds","$updating","cloneFolds","foldAll","expandFolds","unfold","expandInner","isRowFolded","startFoldRow","getRowFoldEnd","getRowFoldStart","getFoldDisplayLine","textLine","lastColumn","$cloneFoldData","fd","toggleFold","tryToUnfold","bracketPos","findMatchingBracket","getCommentFoldRange","dir","depth","getFoldWidget","getFoldWidgetRange","$foldStyles","manual","markbegin","markbeginend","$foldStyle","setFoldStyle","$foldMode","$setFolding","foldMode","$updateFoldWidgets","updateFoldWidgets","ignoreCurrent","fw","children","siblings","$toggleFoldWidget","toggleFoldWidget","BracketMatch","chr","charBeforeCursor","$findClosingBracket","$findOpeningBracket","$brackets",")","(","]","[","{","}","bracket","typeRe","openBracket","valueIndex","closingBracket","valueLength","TextMode","EditSession","$breakpoints","$decorations","$frontMarkers","$backMarkers","$markerId","$undoSelect","onChangeFold","isFullWidth","bgTokenizer","resetCaches","$resetRowCache","$docRowCache","$screenRowCache","$getRowCacheIndex","cacheArray","low","hi","mid","$wrapData","$rowLengthCache","removedFolds","$updateInternalDataOnChange","$fromUndo","$undoManager","ignore","$deltasDoc","$deltasFold","$informUndoManager","$deltas","setUndoManager","getUndoManager","reset","undoManager","$syncInformUndoManager","group","execute","mergeUndoDeltas","$defaultUndoManager","getTabString","$useSoftTabs","$mode","$indentWithTabs","$tabSize","$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","getMode","$scrollTop","setScrollTop","getScrollTop","$scrollLeft","setScrollLeft","getScrollLeft","getScreenWidth","$computeWidth","getLineWidgetMaxWidth","screenWidth","lineWidgetsWidth","w","lineWidgetWidth","$wrapLimit","longestScreenLine","foldIndex","foldStart","$getStringScreenWidth","undoChanges","dontSelect","lastUndoRange","$getUndoSelection","foldDelta","redoChanges","setUndoSelect","enable","isUndo","isInsert","lastDeltaIsInsert","fromRange","toPosition","toRange","rowDiff","collDiff","oldStart","newStart","indentRows","indentString","outdentRows","rowRange","deleteRange","size","$moveLines","$clipRowToDocument","MAX_VALUE","moveLinesUp","moveLinesDown","duplicateLines","$clipColumnToRow","$wrapLimitRange","useWrapMode","getUseWrapMode","setWrapLimitRange","adjustWrapLimit","desiredLimit","$printMargin","limits","wrapLimit","$constrainWrapLimit","getWrapLimit","setWrapLimit","limit","getWrapLimitRange","foldLineBefore","wrapData","walkTokens","$getDisplayTokens","PLACEHOLDER_START","PLACEHOLDER_BODY","$computeWrapSplits","CHAR","CHAR_EXT","PUNCTUATION","SPACE","TAB","TAB_SPACE","addSplit","displayed","lastSplit","lastDocSplit","splits","displayLength","isCode","$wrapAsCode","minSplit","getScreenTabSize","maxScreenColumn","screenColumn","getRowLength","getRowLineCount","getScreenLastRowColumn","documentToScreenColumn","getDocumentLastRowColumn","docColumn","getRowSplitData","screenToDocumentRow","screenToDocumentColumn","rowLength","rowCache","doCache","splitIndex","foldStartRow","wrapRow","screenRowOffset","getScreenLength","screenRows","$getWidgetScreenLength","$setFontMetrics","destroy","$wrap","firstLineNumber","useSoftTabs","Search","find","$matchIterator","findAll","needle","$assembleRegExp","$isMultiLine","prevRange","replacement","preserveCase","backwards","matchIterator","_callback","$lineIterator","$disableFakeMultiline","wholeWord","modifier","caseSensitive","$assembleMultilineRegExp","skipCurrent","HashHandler","commandKeyBinding","addCommands","$singleCommand","MultiHashHandler","addCommand","removeCommand","bindKey","_buildKeyHash","keepCommand","ckb","keyId","cmdGroup","asDefault","keyPart","chain","binding","parseKeys","_addCommandToBinding","isDefault","removeCommands","bindKeys","keyList","findKeyCommand","$keyChain","CommandManager","byName","toggleRecording","$inReplay","recording","macro","$addCommandToMacro","oldMacro","replay","trimMacro","mac","showSettingsMenu","showErrorMarker","scrollIntoView","centerSelection","prompt","gotoLine","getAllRanges","findNext","multiSelectAction","findPrevious","aceCommandGroup","navigateFileStart","navigateUp","times","navigateFileEnd","navigateDown","navigateWordLeft","navigateLineStart","navigateLeft","navigateWordRight","navigateLineEnd","navigateRight","selectPageDown","scrollPageDown","gotoPageDown","selectPageUp","scrollPageUp","gotoPageUp","jumpToMatching","duplicateSelection","sortLines","modifyNumber","copyLinesUp","copyLinesDown","removeToLineStart","removeToLineEnd","removeWordLeft","removeWordRight","blockOutdent","blockIndent","splitLine","transposeLetters","transposeSelections","firstLineEndCol","selectedText","selectedCount","insertLine","curLine","endCol","newRanges","exitMultiSelectMode","defaultCommands","Editor","getContainerElement","getTextAreaContainer","keyBinding","$mouseHandler","$search","$historyTracker","$initOperationListeners","_$emitInputEvent","setSession","selections","startOperation","endOperation","$opResetTimer","curOp","docChanged","selectionChanged","prevOp","commadEvent","previousCommand","scrollSelectionIntoView","animateScrolling","$mergeableCommands","$mergeUndoDeltas","prev","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","onSelectionChange","updateFull","oldEditor","cursorPos","onResize","theme","getTheme","getFontSize","$highlightBrackets","$bracketHighlight","$highlightPending","getCursorPosition","getMatching","$highlightTags","$highlightTagPending","$tagHighlight","prevToken","$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","getSelectedText","getBehavioursEnabled","transform","$mergeNextCommand","d","lineState","shouldOutdent","lineIndent","setScrollSpeed","getScrollSpeed","setDragDelay","setSelectionStyle","setHighlightActiveLine","shouldHighlight","getHighlightActiveLine","setHighlightGutterLine","getHighlightGutterLine","setHighlightSelectedWord","getHighlightSelectedWord","setAnimatedScroll","shouldAnimate","getAnimatedScroll","setShowInvisibles","showInvisibles","getShowInvisibles","setDisplayIndentGuides","getDisplayIndentGuides","showPrintMargin","getShowPrintMargin","setPrintMarginColumn","getPrintMarginColumn","setBehavioursEnabled","enabled","setWrapBehavioursEnabled","getWrapBehavioursEnabled","setShowFoldWidgets","getShowFoldWidgets","setFadeFoldWidgets","fade","getFadeFoldWidgets","new_range","swap","originalRange","$getSelectedRows","getNumberAt","_numberRx","number","amount","charRange","isFinite","nr","fp","decimals","nnr","toFixed","replaceRange","endPoint","inVirtualSelectionMode","linesMoved","rangeIndex","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","hScrollBarAlwaysVisible","vScrollBarAlwaysVisible","highlightGutterLine","animatedScroll","printMarginColumn","printMargin","fadeFoldWidgets","showFoldWidgets","showLineNumbers","showGutter","displayIndentGuides","fontSize","fontFamily","maxLines","minLines","scrollPastEnd","fixedWidthGutter","foldStyle","UndoManager","$doc","hasUndo","dirtyCounter","$undoStack","$redoStack","NaN","undoSelectionRange","redoSelectionRange","hasRedo","markClean","isClean","Gutter","parentEl","$showFoldWidgets","gutterWidth","$updateAnnotations","rowInfo","annoText","gutterOffset","breakpoints","decorations","$firstLineNumber","lastLineNumber","gutterRenderer","$renderer","cell","textNode","foldWidget","minHeight","$fixedWidth","padding","$padding","$computePadding","ceil","$showLineNumbers","setShowLineNumbers","getShowLineNumbers","paddingLeft","paddingRight","Marker","setPadding","setMarkers","$getTop","drawFullLineMarker","drawScreenLineMarker","drawTextMarker","drawMultiLineMarker","firstRowScreen","stringBuilder","extraStyle","lineRange","extraLength","Text","$updateEolChar","EOF_CHAR","EOL_CHAR_LF","EOL_CHAR_CRLF","EOL_CHAR","TAB_CHAR","SPACE_CHAR","getLineHeight","$fontMetrics","$characterSize","getCharacterWidth","measure","$pollSizeChanges","checkForSizeChanges","$pollSizeChangesTimer","$computeTabString","$tabStrings","tabStr","$indentGuideRe","spaceClass","tabClass","spaceContent","tabContent","scrollLines","lineElements","lineElementsIdx","lineElement","$renderLine","$useLineGroups","oldConfig","fragment","$renderLinesFragment","createDocumentFragment","$textToken","rparen","lparen","$renderToken","replaceReg","replaceFunc","tabIdx","classToUse","space","output","renderIndentGuide","cols","$renderWrappedLine","onlyContents","splitChars","$renderSimpleLine","$getFoldLineTokens","addTokens","to","renderTokens","$measureNode","IE8","Cursor","blinkInterval","smoothBlinking","cursors","addCursor","$updateCursors","$updateVisibility","visibility","$updateOpacity","blinking","restartTimer","setBlinkInterval","removeCursor","intervalId","timeoutId","blink","getPixelPosition","onScreen","cursorLeft","cursorTop","$selectionMarkers","cursorIndex","pixelPos","$setOverwrite","ScrollBar","classSuffix","setVisible","skipEvent","onScroll","VScrollBar","$scrollbarWidth","setHeight","setInnerHeight","setScrollHeight","HScrollBar","setWidth","setInnerWidth","setScrollWidth","ScrollBarV","ScrollBarH","RenderLoop","onRender","pending","changes","CHAR_COUNT","FontMetrics","$setMeasureNodeStyles","$main","$testFractionalRect","isRoot","whiteSpace","font","$measureSizes","fontWeight","boldSize","charSizes","allowBoldFonts","setPolling","$measureCharWidth","GutterLayer","MarkerLayer","TextLayer","CursorLayer","editorCss","VirtualRenderer","onGutterResize","$markerBack","textLayer","$textLayer","canvas","$markerFront","$horizScroll","$vScroll","scrollBar","$scrollAnimation","scrollMargin","updateCharacterSize","$size","scrollerHeight","scrollerWidth","$dirty","maxHeight","$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","flint","setScrollMargin","sm","getHScrollBarAlwaysVisible","$hScrollBarAlwaysVisible","setHScrollBarAlwaysVisible","alwaysVisible","getVScrollBarAlwaysVisible","setVScrollBarAlwaysVisible","$updateScrollBarV","$scrollPastEnd","$updateScrollBarH","$frozen","unfreeze","st","marginTop","$highlightGutterLine","$updateLines","$autosize","desiredHeight","$gutterWidth","hideScrollbars","screenLines","longestLine","$getLongestLine","horizScroll","hScrollChanged","$vScrollBarAlwaysVisible","vScrollChanged","firstRowHeight","lineCount","charCount","$viewMargin","topMargin","bottomMargin","alignment","STEPS","$calcSteps","fromValue","toValue","steps","x_min","dx","initialScroll","oldSteps","$timer","canvasPos","textToScreenCoordinates","keepTextAreaAtCursor","$themeId","$theme","setMouseCursor","WorkerClient","topLevelNamespaces","classname","workerUrl","$sendDeltaQueue","changeListener","onMessage","nameToUrl","toUrl","normalizePath","$normalizePath","tlns","workerSrc","Blob","blob","blobUrl","URL","webkitURL","createObjectURL","Worker","DOMException","$workerBlob","blobURL","revokeObjectURL","callbackId","callbacks","onmessage","deltaQueue","emit","ex","attachToDocument","q","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","blobBuilder","getBlob","UIWorkerClient","messageBuffer","main","emitSync","sender","processNext","setEmitSync","Main","PlaceHolder","others","mainClass","othersClass","$onUpdate","onUpdate","$others","undoStack","$undostack","$undoStackDepth","setup","selectionBefore","other","showOtherMarkers","othersActive","hideOtherMarkers","lengthDiff","distanceFromStart","otherPos","newPos","undosRequired","isSamePoint","accel","selectionMode","isMultiSelect","onMouseSelection","screenAnchor","screenCursor","$enableJumpToDef","addSelectionMarker","oldRange","removeSelectionMarker","tmpSel","rectSel","blockSelect","newCursor","removeSelectionMarkers","rectangularRangeBlock","updateSelectionMarkers","onMouseSelectionEnd","onSelectionInterval","selectMoreLines","readonly","selectMore","multiSelect","splitIntoLines","alignCursors","multiSelectCommands","isAvailable","MultiSelect","$multiselectOnSessionChange","$onAddRange","$onRemoveRange","$onMultiSelect","$onSingleSelect","onSessionChange","$checkMultiselectChange","addAltCursorListeners","altCursor","getSelectionMarkers","$blockChangeEvents","mergeOverlappingRanges","lastRange","$initRangeList","toggleBlockSelection","includeEmptyLines","xBackwards","yBackwards","docEnd","selectionMarkerCount","markerList","$onMultiSelectExec","inVirtualMode","forEachSelection","keepOrder","$byLines","reg","cmdResult","anim","buf","additive","skip","screenLead","toRemove","tmp","words","stopAtFirst","sameRowRanges","maxCol","minSpace","spaceOffsets","spaceOffset","fr","lr","guessRange","$reAlignText","forceLeft","alignLeft","startW","textW","endW","alignRight","unAlign","isLeftAligned","isRightAligned","enableMultiselect","FoldMode","foldingStartMarker","foldingStopMarker","indentationBlock","startLevel","openingBracketBlock","closingBracketBlock","LineWidgets","widgetManager","updateOnChange","renderWidgets","measureWidgets","_changedWidgets","$onChangeEditor","_inDocument","removeLineWidget","$updateRows","noWidgets","addLineWidget","zIndex","coverGutter","pixelHeight","onWidgetChanged","changedWidgets","fixedWidth","coverLine","binarySearch","comparator","findAnnotations","matched","oldWidget","gutterAnno","sc","arrow","Renderer","_id","getElementById","env","tagName","oldNode","createEditSession","JsonHighlightRules","MatchingBraceOutdent","openBracePos","context","SAFE_INSERT_IN_TOKENS","SAFE_INSERT_BEFORE_TOKENS","contextCache","initContext","autoInsertedBrackets","autoInsertedRow","autoInsertedLineEnd","maybeInsertedBrackets","maybeInsertedRow","maybeInsertedLineStart","maybeInsertedLineEnd","CstyleBehaviour","selected","isSaneInsertion","recordAutoInsert","recordMaybeInsert","rightChar","matching","isAutoInsertedClosing","popAutoInsertedClosing","closing","isMaybeInsertedClosing","clearMaybeInsertedClosing","next_indent","quote","leftChar","quotepos","$matchTokenType","iterator2","BaseFoldMode","commentRegex","forceMultiline","getSectionRange","startIndent","subRange","CStyleFoldMode","$outdent","tab","worker","searchboxCss","div","setEditor","$initElements","sb","querySelector","replaceBox","searchOptions","regExpOption","caseSensitiveOption","wholeWordOption","searchInput","replaceInput","_this","activeInput","$searchBarKb","$closeSearchBarKb","Ctrl-f|Command-f|Ctrl-H|Command-Option-F","isReplace","Ctrl-G|Command-G","Ctrl-Shift-G|Command-Shift-G","findPrev","Return","Shift-Return","Alt-Return","Tab","checked","$syncOptions","noMatch","replaceAndFindNext","createMenuItems","domItems","separator","li","domItem","divIcon","buttonSubmenu","buttonExpand","divExpand","_onExpandItem","domSubItems","subItems","ul","eventListeners","visibleSubmenu","focusButton","_getVisibleButtons","buttons","expandedItem","subItem","visibleMenu","windowScroll","windowBottom","anchorHeight","menuHeight","mousedown","mousewheel","keydown","fn","alreadyVisible","targetIndex","prevButton","nextButton","trAppend","tdAppend","domText","process","parser","yy","symbols_","JSONString","STRING","JSONNumber","NUMBER","JSONNullLiteral","NULL","JSONBooleanLiteral","TRUE","FALSE","JSONText","JSONValue","EOF","JSONObject","JSONArray","JSONMemberList","JSONMember",":",",","JSONElementList","$accept","$end","terminals_",6,10,11,14,21,22,23,24,"productions_","performAction","yytext","yyleng","yylineno","yystate","$$","$",5,7,12,15,20,25,"defaultActions","parseError","popStack","vstack","lstack","lex","lexer","recovering","TERROR","setInput","yylloc","yyloc","symbol","preErrorSymbol","newState","expected","yyval","errStr","showPosition","loc","_$","first_line","last_line","first_column","last_column","hash","_input","_more","_less","done","conditionStack","unput","more","less","pastInput","past","upcomingInput","pre","tempMatch","_currentRules","flex","begin","condition","conditions","topState","yy_","$avoiding_name_collisions","YY_START","INITIAL","inclusive","readFileSync","cwd","read","charset","argv","get_blob","Builder","MSBlobBuilder","bag","builder","endings","webpackPolyfill","deprecate","paths","normalizeArray","allowAboveRoot","up","xs","res","splitPathRe","splitPath","filename","resolve","resolvedPath","resolvedAbsolute","normalize","isAbsolute","trailingSlash","relative","fromParts","toParts","samePartsLength","outputParts","delimiter","dirname","basename","ext","extname","noop","canSetImmediate","setImmediate","canMutationObserver","MutationObserver","canPost","queue","hiddenDiv","observer","queueList","observe","browser","chdir"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"jsoneditor.map","sources":["./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","arguments","length","_create","treemode","textmode","modes","prototype","mode","setMode","_delete","set","get","setText","jsonText","parse","getText","JSON","stringify","setName","name","getName","data","extend","config","asText","clear","mixin","create","load","err","_onError","onError","log","error","registerMode","i","prop","isArray","reserved","Highlighter","History","SearchBox","Node","modeswitcher","dom","highlighter","selection","undefined","_setOptions","history","_createFrame","_createTable","frame","parentNode","removeChild","search","hasOwnProperty","focusNode","domFocus","Function","content","table","params","field","value","node","_setRoot","recurse","expand","appendChild","blur","getValue","updateField","collapse","tbody","getDom","text","results","expandAll","collapseAll","_onAction","action","add","change","startAutoScroll","mouseY","me","top","getAbsoluteTop","height","clientHeight","bottom","margin","interval","autoScrollStep","scrollTop","scrollHeight","autoScrollTimer","setInterval","stopAutoScroll","clearTimeout","setSelection","range","setSelectionOffset","focus","getSelection","getSelectionOffset","scrollTo","callback","editor","animateTimeout","animateCallback","finalScrollTop","Math","min","max","animate","diff","abs","setTimeout","onEvent","event","_onEvent","document","createElement","className","onclick","target","nodeName","preventDefault","oninput","onchange","onkeydown","onkeyup","oncut","onpaste","onmousedown","onmouseup","onmouseover","onmouseout","addEventListener","onfocusin","onfocusout","menu","title","undo","_onUndo","redo","_onRedo","onChange","disabled","canUndo","canRedo","modeBox","searchBox","type","_onKeyDown","getNodeFromTarget","keynum","which","keyCode","ctrlKey","shiftKey","handled","selectContentEditable","select","previous","next","stopPropagation","contentOuter","col","colgroupContent","width","ace","indentation","Number","textarea","clientWidth","buttonFormat","format","buttonCompact","compact","editorDom","style","edit","setTheme","setShowPrintMargin","setFontSize","getSession","setTabSize","setUseSoftTabs","setUseWrapMode","poweredBy","createTextNode","href","window","open","on","spellcheck","resize","force","sanitize","setValue","jsonlint","jsonString","validate","jsString","chars","inString","charAt","isEscaped","push","join","replace","$0","$1","$2","$3","match","a","b","console","apply","object","String","Boolean","RegExp","isUrlRegex","isUrl","test","obj","Object","toString","getAbsoluteLeft","elem","rect","getBoundingClientRect","left","pageXOffset","scrollLeft","pageYOffset","addClassName","classes","split","indexOf","removeClassName","index","splice","stripFormatting","divElement","childs","childNodes","iMax","child","removeAttribute","attributes","j","attribute","specified","setEndOfContentEditable","contentEditableElement","createRange","selectNodeContents","removeAllRanges","addRange","sel","getRangeAt","rangeCount","startContainer","endContainer","startOffset","endOffset","setStart","firstChild","setEnd","getInnerText","element","buffer","first","flush","nodeValue","hasChildNodes","innerText","prevChild","prevName","_ieVersion","rv","navigator","appName","ua","userAgent","re","exec","parseFloat","isFirefox","listener","useCapture","attachEvent","f","removeEventListener","detachEvent","locked","highlight","setHighlight","_cancelUnhighlight","unhighlight","unhighlightTimer","lock","unlock","actions","editField","oldValue","newValue","editValue","updateValue","appendNode","parent","insertBeforeNode","insertBefore","beforeNode","insertAfterNode","insertAfter","afterNode","removeNode","append","duplicateNode","clone","changeType","oldType","newType","moveNode","startParent","moveTo","startIndex","endParent","endIndex","sort","hideChilds","oldSort","oldChilds","showChilds","newSort","newChilds","timestamp","Date","oldSelection","newSelection","timeout","delay","lastText","tr","td","divInput","input","tableInput","tbodySearch","refreshSearch","_onDelayedSearch","_onSearch","_onKeyUp","searchNext","searchPrevious","resultIndex","_setActiveResult","activeResult","prevNode","prevElem","searchFieldActive","searchValueActive","updateDom","_clearDelay","forceSearch","resultCount","innerHTML","expanded","setField","fieldEditable","ContextMenu","appendNodeFactory","_updateEditability","editable","path","unshift","setParent","getField","_getDomField","childValue","_getType","childField","arr","forEach","_getDomValue","getLevel","fieldInnerText","valueInnerText","cloneChilds","childClone","getAppend","nextTr","nextSibling","hide","_hasChilds","newTr","appendTr","updateIndexes","moveBefore","trTemp","AppendNode","currentIndex","toLowerCase","searchField","searchValue","_updateDomField","childResults","concat","_updateDomValue","offsetTop","focusElement","elementName","drag","editableDiv","_duplicate","containsNode","_move","clearDom","removedNode","_remove","lastTr","_stringCast","silent","_unescapeHTML","str","domValue","v","t","color","isEmpty","count","domField","oldField","tdDrag","domDrag","tdMenu","tdField","tree","_createDomTree","_onDragStart","mousemove","_onDrag","mouseup","_onDragEnd","oldCursor","body","cursor","mouseX","pageX","level","trThis","trPrev","trNext","trFirst","trLast","trRoot","nodePrev","nodeNext","topThis","topPrev","topFirst","heightThis","bottomNext","heightNext","pageY","moved","offsetHeight","previousSibling","diffX","diffLevel","round","levelNext","_isChildOf","n","_createDomField","domTree","marginLeft","contentEditable","_escapeHTML","_updateDomIndexes","_createDomValue","_createDomExpandButton","borderCollapse","tdExpand","tdSeparator","tdValue","srcElement","expandable","showContextMenu","_onExpand","offsetX","onKeyDown","nextNode","nextDom","nextDom2","altKey","_onDuplicate","_onRemove","_onInsertBefore","_onInsertAfter","lastNode","_lastNode","_getElementName","firstNode","_firstNode","prevElement","_previousElement","appendDom","nextNode2","_previousNode","nextElement","_nextElement","prevDom","isVisible","_nextNode","newNode","_onAppend","_onChangeType","_onSort","direction","order","firstDom","lastDom","lastChild","TYPE_TITLES","auto","array","string","anchor","onClose","titles","items","submenu","click","submenuTitle","close","show","Array","lower","num","numFloat","isNaN","htmlEscaped","substring","escapedText","_escapeJSON","escaped","createModeSwitcher","current","switchMode","availableModes","code","form","view","item","currentMode","currentTitle","box","require","isDark","cssClass","cssText","acequire","importCssString","exportAce","ns","_acequire","global","packaged","_define","original","ACE_NAMESPACE","acequirejs","deps","payload","trace","payloads","parentId","l","dep","lookup","normalizeModule","moduleName","chunks","base","slice","mod","uri","req","returnValue","getNativeFlags","regex","ignoreCase","multiline","extended","sticky","from","real","compliantExecNpcg","compliantLastIndexIncrement","x","lastIndex","r2","source","_xregexp","captureNames","Empty","doesDefinePropertyWork","defineProperty","exception","toInteger","floor","bind","that","TypeError","args","bound","result","defineGetter","defineSetter","lookupGetter","lookupSetter","supportsAccessors","prototypeOfArray","prototypeOfObject","_toString","owns","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__","makeArray","lengthBefore","array_splice","start","deleteCount","pos","removeCount","removed","insert","remove","tailOldPos","tailNewPos","tailCount","lengthAfterRemove","boxedString","splitString","fun","toObject","self","thisp","map","filter","every","some","reduce","reduceRight","sought","lastIndexOf","getPrototypeOf","__proto__","constructor","getOwnPropertyDescriptor","ERR_NON_OBJECT","property","descriptor","getter","setter","enumerable","configurable","getOwnPropertyNames","keys","createEmpty","empty","propertyIsEnumerable","isPrototypeOf","toLocaleString","valueOf","properties","Type","defineProperties","definePropertyWorksOnObject","definePropertyWorksOnDom","definePropertyFallback","ERR_NON_OBJECT_DESCRIPTOR","ERR_NON_OBJECT_TARGET","ERR_ACCESSORS_NOT_SUPPORTED","seal","freeze","freezeObject","preventExtensions","isSealed","isFrozen","isExtensible","hasDontEnumBug","dontEnums","dontEnumsLength","key","ii","dontEnum","now","getTime","ws","trim","trimBeginRegexp","trimEndRegexp","o","XHTML_NS","getDocumentHead","doc","head","getElementsByTagName","documentElement","tag","createElementNS","hasCssClass","el","addCssClass","removeCssClass","toggleCssClass","setCssClass","include","hasCssString","sheets","createStyleSheet","styleSheets","owningElement","importCssStylsheet","link","rel","getInnerWidth","parseInt","computedStyle","getInnerHeight","getPageScrollTop","getPageScrollLeft","getComputedStyle","currentStyle","scrollbarWidth","inner","minWidth","display","outer","position","overflow","noScrollbar","offsetWidth","withScrollbar","setInnerHtml","innerHtml","cloneNode","replaceChild","setInnerText","textContent","getParentWindow","defaultView","parentWindow","inherits","ctor","superCtor","super_","writable","implement","proto","oop","Keys","ret","MODIFIER_KEYS",16,17,18,224,"KEY_MODS","ctrl","alt","option","shift","super","meta","command","cmd","FUNCTION_KEYS",8,9,13,19,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,187,188,189,190,191,192,219,220,221,222,"enter","escape","esc","del","mods","pow","keyCodeToString","keyString","fromCharCode","OS","LINUX","MAC","WINDOWS","getOS","isMac","isLinux","os","platform","isWin","isIE","isOldIE","isGecko","isMozilla","Controllers","controllers","product","isOldGecko","isOpera","opera","isWebKit","isChrome","isAIR","isIPad","isTouchPad","isChromeOS","normalizeCommandKeys","e","hashId","getModifierHash","useragent","pressedKeys","altGr","location","keyLocation","ts","timeStamp","dt","defaultPrevented","addListener","wrapper","_wrapper","removeListener","stopEvent","cancelBubble","getButton","button",1,2,4,"capture","eventHandler","releaseCaptureHandler","onMouseUp","addMouseWheelListener","factor","wheelDeltaX","wheelX","wheelY","wheelDeltaY","wheelDelta","deltaMode","DOM_DELTA_PIXEL","deltaX","deltaY","DOM_DELTA_LINE","DOM_DELTA_PAGE","axis","HORIZONTAL_AXIS","detail","addMultiMouseDownListener","timeouts","callbackName","startX","startY","timer","clicks","eventNames",3,"isNewClick","clientX","clientY","_clicks","metaKey","getModifierString","addCommandKeyListener","lastKeyDownKeyCode","lastDefaultPrevented","postMessage","postMessageId","nextTick","win","messageName","nextFrame","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","oRequestAnimationFrame","last","stringReverse","reverse","stringRepeat","stringTrimLeft","stringTrimRight","copyObject","copy","copyArray","deepCopy","cons","arrayToMap","createMap","props","arrayRemove","escapeRegExp","escapeHTML","getMatchOffsets","regExp","matches","offset","deferredCall","fcn","deferred","cancel","schedule","isPending","delayedCall","defaultTimeout","_self","lang","BROKEN_SETDATA","USE_IE_MIME_TYPE","TextInput","host","resetSelection","inComposition","inputHandler","selectionStart","selectionEnd","setSelectionRange","resetValue","PLACEHOLDER","syncValue","onContextMenuClose","closeTimeout","tempStyle","renderer","$keepTextAreaAtCursor","$moveTextAreaToCursor","setAttribute","wrap","autocorrect","autocapitalize","opacity","copied","pasted","isSelectionEmpty","isFocused","activeElement","onBlur","onFocus","syncSelection","isAllSelected","createTextRange","moveStart","moveEnd","ownerDocument","parentElement","inPropertyChange","onPropertyChange","syncProperty","sendText","keytable","onCompositionEnd","charCodeAt","onCompositionUpdate","onCompositionStart","onSelect","selectAll","setInputHandler","cb","getInputHandler","afterContextMenu","onPaste","execCommand","substr","onTextInput","onInput","handleClipboardData","clipboardData","mime","setData","getData","doCopy","isCut","getCopyText","onCut","onCopy","onCommandKey","$readOnly","session","markUndoGroup","clearSelection","val","lastValue","r","getRange","setRange","syncComposition","getElement","setReadOnly","readOnly","onContextMenu","_emit","domEvent","moveToMouse","bringToFront","borderTopWidth","borderLeftWidth","maxTop","move","textInput","scroller","DefaultHandlers","mouseHandler","$clickSelection","setDefaultHandler","onMouseDown","onDoubleClick","onTripleClick","onQuadClick","onMouseWheel","selectByLines","extendSelectionBy","selectByWords","calcDistance","ax","ay","bx","by","sqrt","calcRangeOrientation","row","end","cmp","column","DRAG_OFFSET","ev","inSelection","getDocumentPosition","mousedownEvent","selectionRange","getSelectionRange","selectionEmpty","moveToPosition","time","$focusTimout","inMultiSelectMode","captureMouse","startSelect","setState","waitForClickSelection","screenToTextCoordinates","y","getShiftKey","selectToPosition","setCapture","setStyle","comparePoint","orientedRange","setSelectionAnchor","scrollCursorIntoView","unitName","cmpStart","cmpEnd","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","unsetStyle","releaseCapture","focusWait","distance","getBracketRange","getWordRange","isMultiLine","contains","getLineRange","getAccelKey","$lastScrollTime","isScrolable","isScrollableBy","speed","scrollBy","stop","Tooltip","isOpen","$element","$parentNode","$init","setHtml","html","setPosition","setClassName","getHeight","getWidth","GutterHandler","showTooltip","mouseEvent","annotation","gutter","$annotations","hideTooltip","maxRow","getLength","screenRow","pixelToScreenCoordinates","$pos","documentToScreenRow","tooltipAnnotation","tooltip","$tooltipFollowsMouse","moveTooltip","gutterElement","$cells","right","tooltipTimeout","$gutterLayer","GutterTooltip","gutterRegion","getRegion","selectTo","isMousePressed","$gutter","windowWidth","innerWidth","windowHeight","innerHeight","MouseEvent","$inSelection","propagationStopped","DragdropHandler","prevCursor","vMovement","hMovement","cursorMovedTime","$blockScrolling","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","counter","onMouseMove","clearDragMarker","removeMarker","fromOrientedRange","isInternal","getReadOnly","onMouseMoveTimer","canAccept","dataTransfer","types","getDropEffect","copyAllowed","moveAllowed","copyModifierState","effectAllowed","dropEffect","blankImage","src","dragOperation","mouseTarget","onDragStart","cancelDrag","draggable","setDragImage","clearData","getTextRange","onDragEnd","setCursorStyle","onDragEnter","onDragOver","onDragLeave","onDrop","moveText","dropData","dragWait","getDragDelay","startDrag","dragWaitEnd","dragReadyEnd","cursorStyle","onMouseDrag","state","dragDrop","$dragEnabled","clickCount","eventTarget","unselectable","url","xhr","XMLHttpRequest","onreadystatechange","readyState","responseText","send","loadScript","s","onload","_","isAbort","qualifyURL","EventEmitter","_dispatchEvent","eventName","_eventRegistry","_defaultHandlers","listeners","defaultHandler","_signal","once","newCallback","handlers","_disabled_","old","removeDefaultHandler","pop","capturing","off","removeAllListeners","init","scriptOptions","scriptUrl","currentScript","_currentScript","currentDocument","scripts","script","getAttribute","attr","deHyphenate","basePath","workerPath","modePath","themePath","m1","toUpperCase","net","suffix","$moduleUrls","all","moduleUrl","component","parts","sep","setModuleUrl","subst","$loading","loadModule","onLoad","moduleType","afterLoad","optionsProvider","setOptions","optList","setOption","getOptions","optionNames","$options","getOption","opt","warn","forwardTo","handlesSet","defaultOptions","defineOptions","initialValue","resetOptions","setDefaultValue","opts","setDefaultValues","optionHash","DefaultGutterHandler","MouseHandler","focusEditor","getMouseEventTarget","onMouseEvent","scrollBarV","scrollBarH","gutterEl","$dragDelay","char","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","$data","$handlers","commands","kb","removeKeyboardHandler","$defaultHandler","addKeyboardHandler","setKeyboardHandler","h","handleKeyboard","attach","detach","getKeyboardHandler","getStatusText","$callKeyboardHandlers","toExecute","success","passEvent","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","lead","selectionLead","createAnchor","selectionAnchor","$isEmpty","$keepDesiredColumnOnChange","$desiredColumn","getCursor","getPosition","getSelectionAnchor","getSelectionLead","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","tabSize","getTabSize","isTabStop","firstColumnPosition","screenToDocumentPosition","beforeCursor","getDisplayLine","leadingSpace","$useEmacsStyleLineStart","lineEnd","getDocumentLastRowColumnPosition","line","textEnd","moveCursorLongWordRight","rightOfCursor","nonTokenRe","tokenRe","moveCursorLongWordLeft","getFoldStringAt","leftOfCursor","$shortWordEndIndex","ch","whitespaceRe","moveCursorShortWordRight","moveCursorShortWordLeft","$selectLongWords","rows","screenPos","docPos","lineWidgets","keepDesiredColumn","moveCursorToScreen","desiredColumn","getRangeOfMovements","func","toJSON","ranges","r1","fromJSON","rangeList","toSingleRange","MAX_TOKEN_COUNT","Tokenizer","rules","states","regExps","matchMappings","ruleRegExps","matchTotal","mapping","defaultToken","flag","splitterRurles","rule","caseInsensitive","adjustedregex","matchcount","token","reportError","groupCount","tokenArray","onMatch","$arrayTokens","$applyToken","digit","removeCapturingGroups","splitRegex","createSplitterRegexp","$setMaxTokenCount","values","tokens","stack","inChClass","lastCapture","parenOpen","parenClose","square","getLineTokens","startState","currentState","matchAttempts","skipped","merge","msg","TextHighlightRules","$rules","addRules","prefix","nextState","getRules","embedRules","HighlightRules","escapeRules","$embeds","getEmbeds","pushState","popState","normalizeRules","processState","processed","stateName","includeName","toInsert","noEscape","keywordMap","createKeywordMapper","splitChar","keywords","list","$keywordList","getKeywords","$keywords","Behaviour","$behaviours","addBehaviours","behaviours","inherit","getBehaviours","addUnicodePackage","pack","codePoint","packages","L","Ll","Lu","Lt","Lm","Lo","M","Mn","Mc","Me","N","Nd","Nl","No","P","Pd","Ps","Pe","Pi","Pf","Pc","Po","S","Sm","Sc","Sk","So","Z","Zs","Zl","Zp","C","Cc","Cf","Co","Cs","Cn","TokenIterator","initialRow","initialColumn","$session","$row","$rowTokens","getTokens","getTokenAt","$tokenIndex","stepBackward","stepForward","rowCount","getCurrentToken","getCurrentTokenRow","getCurrentTokenColumn","rowTokens","tokenIndex","unicode","Mode","$behaviour","getTokenizer","$tokenizer","$highlightRules","lineCommentStart","blockComment","toggleCommentLines","iter","ignoreBlankLines","shouldRemove","minIndent","Infinity","insertAtTabStop","regexpStart","getUseSoftTabs","uncomment","shouldInsertSpace","removeInLine","commentWithSpace","comment","insertInLine","testRemove","before","after","spaces","lineCommentEnd","regexpEnd","minEmptyLength","indent","toggleBlockComment","colDiff","iterator","initialRange","startRange","endRange","getNextLineIndent","$getIndent","checkOutdent","autoOutdent","createWorker","createModeDelegates","$modes","delegations","scope","functionName","$delegator","method","transformAction","completionKeywords","ruleItr","aLength","$createKeywordList","getCompletions","word","score","$id","Anchor","$onChange","$clipPositionToDocument","$insertRight","delta","noClip","Document","$lines","_insertLines","len","getAllLines","getNewLineCharacter","$split","$detectNewLine","$autoNewLine","$newLineMode","setNewLineMode","newLineMode","getNewLineMode","isNewLine","getLines","lines","$clipPosition","firstLine","lastLine","insertNewLine","insertLines","firstFullRow","lastFullRow","_removeLines","removeNewLine","newLine","removeLines","nl","secondLine","applyDeltas","deltas","revertDeltas","indexToPosition","newlineLength","positionToIndex","BackgroundTokenizer","tokenizer","running","currentLine","$worker","workerStart","endLine","startLine","processedLines","$tokenizeRow","fireUpdateEvent","setTokenizer","setDocument","scheduleStart","$updateOnChange","getState","SearchHighlight","clazz","setRegexp","MAX_RANGES","cache","update","markerLayer","drawSingleLineMarker","FoldLine","foldData","folds","setFoldLine","shiftRow","sameRow","containsRow","walk","lastEnd","isNewRow","placeholder","getNextFoldTo","kind","addRemoveChars","foldBefore","newFoldLine","foldLineNext","idxToPosition","idx","lastFoldEndColumn","RangeList","pointIndex","excludeEdges","addList","substractPoint","containsPoint","rangeAtPoint","clipped","removeAll","changeRange","lineDif","consumePoint","point","consumeRange","restorePoint","restoreRange","Fold","subFolds","subFold","collapseChildren","addSubFold","afterStart","Folding","side","getFoldsInRange","foldLines","$foldData","foundFolds","getFoldsInRangeList","getAllFolds","lastFold","docRow","startFoldLine","getNextFoldLine","getFoldedRowCount","$addFoldLine","added","$clipRangeToDocument","startFold","endFold","removeFolds","$useWrapMode","$updateWrapData","$updateRowLengthCache","$modified","addFolds","$updating","cloneFolds","foldAll","expandFolds","unfold","expandInner","isRowFolded","startFoldRow","getRowFoldEnd","getRowFoldStart","getFoldDisplayLine","textLine","lastColumn","$cloneFoldData","fd","toggleFold","tryToUnfold","bracketPos","findMatchingBracket","getCommentFoldRange","dir","depth","getFoldWidget","getFoldWidgetRange","$foldStyles","manual","markbegin","markbeginend","$foldStyle","setFoldStyle","$foldMode","$setFolding","foldMode","$updateFoldWidgets","updateFoldWidgets","ignoreCurrent","fw","children","siblings","$toggleFoldWidget","toggleFoldWidget","BracketMatch","chr","charBeforeCursor","$findClosingBracket","$findOpeningBracket","$brackets",")","(","]","[","{","}","bracket","typeRe","openBracket","valueIndex","closingBracket","valueLength","TextMode","EditSession","$breakpoints","$decorations","$frontMarkers","$backMarkers","$markerId","$undoSelect","onChangeFold","isFullWidth","bgTokenizer","resetCaches","$resetRowCache","$docRowCache","$screenRowCache","$getRowCacheIndex","cacheArray","low","hi","mid","$wrapData","$rowLengthCache","removedFolds","$updateInternalDataOnChange","$fromUndo","$undoManager","ignore","$deltasDoc","$deltasFold","$informUndoManager","$deltas","setUndoManager","getUndoManager","reset","undoManager","$syncInformUndoManager","group","execute","mergeUndoDeltas","$defaultUndoManager","getTabString","$useSoftTabs","$mode","$indentWithTabs","$tabSize","$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","getMode","$scrollTop","setScrollTop","getScrollTop","$scrollLeft","setScrollLeft","getScrollLeft","getScreenWidth","$computeWidth","getLineWidgetMaxWidth","screenWidth","lineWidgetsWidth","w","lineWidgetWidth","$wrapLimit","longestScreenLine","foldIndex","foldStart","$getStringScreenWidth","undoChanges","dontSelect","lastUndoRange","$getUndoSelection","foldDelta","redoChanges","setUndoSelect","enable","isUndo","isInsert","lastDeltaIsInsert","fromRange","toPosition","toRange","rowDiff","collDiff","oldStart","newStart","indentRows","indentString","outdentRows","rowRange","deleteRange","size","$moveLines","$clipRowToDocument","MAX_VALUE","moveLinesUp","moveLinesDown","duplicateLines","$clipColumnToRow","$wrapLimitRange","useWrapMode","getUseWrapMode","setWrapLimitRange","adjustWrapLimit","desiredLimit","$printMargin","limits","wrapLimit","$constrainWrapLimit","getWrapLimit","setWrapLimit","limit","getWrapLimitRange","foldLineBefore","wrapData","walkTokens","$getDisplayTokens","PLACEHOLDER_START","PLACEHOLDER_BODY","$computeWrapSplits","CHAR","CHAR_EXT","PUNCTUATION","SPACE","TAB","TAB_SPACE","addSplit","displayed","lastSplit","lastDocSplit","splits","displayLength","isCode","$wrapAsCode","minSplit","getScreenTabSize","maxScreenColumn","screenColumn","getRowLength","getRowLineCount","getScreenLastRowColumn","documentToScreenColumn","getDocumentLastRowColumn","docColumn","getRowSplitData","screenToDocumentRow","screenToDocumentColumn","rowLength","rowCache","doCache","splitIndex","foldStartRow","wrapRow","screenRowOffset","getScreenLength","screenRows","$getWidgetScreenLength","$setFontMetrics","destroy","$wrap","firstLineNumber","useSoftTabs","Search","find","$matchIterator","findAll","needle","$assembleRegExp","$isMultiLine","prevRange","replacement","preserveCase","backwards","matchIterator","_callback","$lineIterator","$disableFakeMultiline","wholeWord","modifier","caseSensitive","$assembleMultilineRegExp","skipCurrent","HashHandler","commandKeyBinding","addCommands","$singleCommand","MultiHashHandler","addCommand","removeCommand","bindKey","_buildKeyHash","keepCommand","ckb","keyId","cmdGroup","asDefault","keyPart","chain","binding","parseKeys","_addCommandToBinding","isDefault","removeCommands","bindKeys","keyList","findKeyCommand","$keyChain","CommandManager","byName","toggleRecording","$inReplay","recording","macro","$addCommandToMacro","oldMacro","replay","trimMacro","mac","showSettingsMenu","showErrorMarker","scrollIntoView","centerSelection","prompt","gotoLine","getAllRanges","findNext","multiSelectAction","findPrevious","aceCommandGroup","navigateFileStart","navigateUp","times","navigateFileEnd","navigateDown","navigateWordLeft","navigateLineStart","navigateLeft","navigateWordRight","navigateLineEnd","navigateRight","selectPageDown","scrollPageDown","gotoPageDown","selectPageUp","scrollPageUp","gotoPageUp","jumpToMatching","duplicateSelection","sortLines","modifyNumber","copyLinesUp","copyLinesDown","removeToLineStart","removeToLineEnd","removeWordLeft","removeWordRight","blockOutdent","blockIndent","splitLine","transposeLetters","transposeSelections","firstLineEndCol","selectedText","selectedCount","insertLine","curLine","endCol","newRanges","exitMultiSelectMode","defaultCommands","Editor","getContainerElement","getTextAreaContainer","keyBinding","$mouseHandler","$search","$historyTracker","$initOperationListeners","_$emitInputEvent","setSession","selections","startOperation","endOperation","$opResetTimer","curOp","docChanged","selectionChanged","prevOp","commadEvent","previousCommand","scrollSelectionIntoView","animateScrolling","$mergeableCommands","$mergeUndoDeltas","prev","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","onSelectionChange","updateFull","oldEditor","cursorPos","onResize","theme","getTheme","getFontSize","$highlightBrackets","$bracketHighlight","$highlightPending","getCursorPosition","getMatching","$highlightTags","$highlightTagPending","$tagHighlight","prevToken","$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","getSelectedText","getBehavioursEnabled","transform","$mergeNextCommand","d","lineState","shouldOutdent","lineIndent","setScrollSpeed","getScrollSpeed","setDragDelay","setSelectionStyle","setHighlightActiveLine","shouldHighlight","getHighlightActiveLine","setHighlightGutterLine","getHighlightGutterLine","setHighlightSelectedWord","getHighlightSelectedWord","setAnimatedScroll","shouldAnimate","getAnimatedScroll","setShowInvisibles","showInvisibles","getShowInvisibles","setDisplayIndentGuides","getDisplayIndentGuides","showPrintMargin","getShowPrintMargin","setPrintMarginColumn","getPrintMarginColumn","setBehavioursEnabled","enabled","setWrapBehavioursEnabled","getWrapBehavioursEnabled","setShowFoldWidgets","getShowFoldWidgets","setFadeFoldWidgets","fade","getFadeFoldWidgets","new_range","swap","originalRange","$getSelectedRows","getNumberAt","_numberRx","number","amount","charRange","isFinite","nr","fp","decimals","nnr","toFixed","replaceRange","endPoint","inVirtualSelectionMode","linesMoved","rangeIndex","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","hScrollBarAlwaysVisible","vScrollBarAlwaysVisible","highlightGutterLine","animatedScroll","printMarginColumn","printMargin","fadeFoldWidgets","showFoldWidgets","showLineNumbers","showGutter","displayIndentGuides","fontSize","fontFamily","maxLines","minLines","scrollPastEnd","fixedWidthGutter","foldStyle","UndoManager","$doc","hasUndo","dirtyCounter","$undoStack","$redoStack","NaN","undoSelectionRange","redoSelectionRange","hasRedo","markClean","isClean","Gutter","parentEl","$showFoldWidgets","gutterWidth","$updateAnnotations","rowInfo","annoText","gutterOffset","breakpoints","decorations","$firstLineNumber","lastLineNumber","gutterRenderer","$renderer","cell","textNode","foldWidget","minHeight","$fixedWidth","padding","$padding","$computePadding","ceil","$showLineNumbers","setShowLineNumbers","getShowLineNumbers","paddingLeft","paddingRight","Marker","setPadding","setMarkers","$getTop","drawFullLineMarker","drawScreenLineMarker","drawTextMarker","drawMultiLineMarker","firstRowScreen","stringBuilder","extraStyle","lineRange","extraLength","Text","$updateEolChar","EOF_CHAR","EOL_CHAR_LF","EOL_CHAR_CRLF","EOL_CHAR","TAB_CHAR","SPACE_CHAR","getLineHeight","$fontMetrics","$characterSize","getCharacterWidth","measure","$pollSizeChanges","checkForSizeChanges","$pollSizeChangesTimer","$computeTabString","$tabStrings","tabStr","$indentGuideRe","spaceClass","tabClass","spaceContent","tabContent","scrollLines","lineElements","lineElementsIdx","lineElement","$renderLine","$useLineGroups","oldConfig","fragment","$renderLinesFragment","createDocumentFragment","$textToken","rparen","lparen","$renderToken","replaceReg","replaceFunc","tabIdx","classToUse","space","output","renderIndentGuide","cols","$renderWrappedLine","onlyContents","splitChars","$renderSimpleLine","$getFoldLineTokens","addTokens","to","renderTokens","$measureNode","IE8","Cursor","blinkInterval","smoothBlinking","cursors","addCursor","$updateCursors","$updateVisibility","visibility","$updateOpacity","blinking","restartTimer","setBlinkInterval","removeCursor","intervalId","timeoutId","blink","getPixelPosition","onScreen","cursorLeft","cursorTop","$selectionMarkers","cursorIndex","pixelPos","$setOverwrite","ScrollBar","classSuffix","setVisible","skipEvent","onScroll","VScrollBar","$scrollbarWidth","setHeight","setInnerHeight","setScrollHeight","HScrollBar","setWidth","setInnerWidth","setScrollWidth","ScrollBarV","ScrollBarH","RenderLoop","onRender","pending","changes","CHAR_COUNT","FontMetrics","$setMeasureNodeStyles","$main","$testFractionalRect","isRoot","whiteSpace","font","$measureSizes","fontWeight","boldSize","charSizes","allowBoldFonts","setPolling","$measureCharWidth","GutterLayer","MarkerLayer","TextLayer","CursorLayer","editorCss","VirtualRenderer","onGutterResize","$markerBack","textLayer","$textLayer","canvas","$markerFront","$horizScroll","$vScroll","scrollBar","$scrollAnimation","scrollMargin","updateCharacterSize","$size","scrollerHeight","scrollerWidth","$dirty","maxHeight","$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","flint","setScrollMargin","sm","getHScrollBarAlwaysVisible","$hScrollBarAlwaysVisible","setHScrollBarAlwaysVisible","alwaysVisible","getVScrollBarAlwaysVisible","setVScrollBarAlwaysVisible","$updateScrollBarV","$scrollPastEnd","$updateScrollBarH","$frozen","unfreeze","st","marginTop","$highlightGutterLine","$updateLines","$autosize","desiredHeight","$gutterWidth","hideScrollbars","screenLines","longestLine","$getLongestLine","horizScroll","hScrollChanged","$vScrollBarAlwaysVisible","vScrollChanged","firstRowHeight","lineCount","charCount","$viewMargin","topMargin","bottomMargin","alignment","STEPS","$calcSteps","fromValue","toValue","steps","x_min","dx","initialScroll","oldSteps","$timer","canvasPos","textToScreenCoordinates","keepTextAreaAtCursor","$themeId","$theme","setMouseCursor","WorkerClient","topLevelNamespaces","classname","workerUrl","$sendDeltaQueue","changeListener","onMessage","nameToUrl","toUrl","normalizePath","$normalizePath","tlns","workerSrc","Blob","blob","blobUrl","URL","webkitURL","createObjectURL","Worker","DOMException","$workerBlob","blobURL","revokeObjectURL","callbackId","callbacks","onmessage","deltaQueue","emit","ex","attachToDocument","q","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","blobBuilder","getBlob","UIWorkerClient","messageBuffer","main","emitSync","sender","processNext","setEmitSync","Main","PlaceHolder","others","mainClass","othersClass","$onUpdate","onUpdate","$others","undoStack","$undostack","$undoStackDepth","setup","selectionBefore","other","showOtherMarkers","othersActive","hideOtherMarkers","lengthDiff","distanceFromStart","otherPos","newPos","undosRequired","isSamePoint","accel","selectionMode","isMultiSelect","onMouseSelection","screenAnchor","screenCursor","$enableJumpToDef","addSelectionMarker","oldRange","removeSelectionMarker","tmpSel","rectSel","blockSelect","newCursor","removeSelectionMarkers","rectangularRangeBlock","updateSelectionMarkers","onMouseSelectionEnd","onSelectionInterval","selectMoreLines","readonly","selectMore","multiSelect","splitIntoLines","alignCursors","multiSelectCommands","isAvailable","MultiSelect","$multiselectOnSessionChange","$onAddRange","$onRemoveRange","$onMultiSelect","$onSingleSelect","onSessionChange","$checkMultiselectChange","addAltCursorListeners","altCursor","getSelectionMarkers","$blockChangeEvents","mergeOverlappingRanges","lastRange","$initRangeList","toggleBlockSelection","includeEmptyLines","xBackwards","yBackwards","docEnd","selectionMarkerCount","markerList","$onMultiSelectExec","inVirtualMode","forEachSelection","keepOrder","$byLines","reg","cmdResult","anim","buf","additive","skip","screenLead","toRemove","tmp","words","stopAtFirst","sameRowRanges","maxCol","minSpace","spaceOffsets","spaceOffset","fr","lr","guessRange","$reAlignText","forceLeft","alignLeft","startW","textW","endW","alignRight","unAlign","isLeftAligned","isRightAligned","enableMultiselect","FoldMode","foldingStartMarker","foldingStopMarker","indentationBlock","startLevel","openingBracketBlock","closingBracketBlock","LineWidgets","widgetManager","updateOnChange","renderWidgets","measureWidgets","_changedWidgets","$onChangeEditor","_inDocument","removeLineWidget","$updateRows","noWidgets","addLineWidget","zIndex","coverGutter","pixelHeight","onWidgetChanged","changedWidgets","fixedWidth","coverLine","binarySearch","comparator","findAnnotations","matched","oldWidget","gutterAnno","sc","arrow","Renderer","_id","getElementById","env","tagName","oldNode","createEditSession","JsonHighlightRules","MatchingBraceOutdent","openBracePos","context","SAFE_INSERT_IN_TOKENS","SAFE_INSERT_BEFORE_TOKENS","contextCache","initContext","autoInsertedBrackets","autoInsertedRow","autoInsertedLineEnd","maybeInsertedBrackets","maybeInsertedRow","maybeInsertedLineStart","maybeInsertedLineEnd","CstyleBehaviour","selected","isSaneInsertion","recordAutoInsert","recordMaybeInsert","rightChar","matching","isAutoInsertedClosing","popAutoInsertedClosing","closing","isMaybeInsertedClosing","clearMaybeInsertedClosing","next_indent","quote","leftChar","quotepos","$matchTokenType","iterator2","BaseFoldMode","commentRegex","forceMultiline","getSectionRange","startIndent","subRange","CStyleFoldMode","$outdent","tab","worker","searchboxCss","div","setEditor","$initElements","sb","querySelector","replaceBox","searchOptions","regExpOption","caseSensitiveOption","wholeWordOption","searchInput","replaceInput","_this","activeInput","$searchBarKb","$closeSearchBarKb","Ctrl-f|Command-f|Ctrl-H|Command-Option-F","isReplace","Ctrl-G|Command-G","Ctrl-Shift-G|Command-Shift-G","findPrev","Return","Shift-Return","Alt-Return","Tab","checked","$syncOptions","noMatch","replaceAndFindNext","createMenuItems","domItems","separator","li","domItem","divIcon","buttonSubmenu","buttonExpand","divExpand","_onExpandItem","domSubItems","subItems","ul","eventListeners","visibleSubmenu","focusButton","_getVisibleButtons","buttons","expandedItem","subItem","visibleMenu","windowScroll","windowBottom","anchorHeight","menuHeight","mousedown","mousewheel","keydown","fn","alreadyVisible","targetIndex","prevButton","nextButton","trAppend","tdAppend","domText","process","parser","yy","symbols_","JSONString","STRING","JSONNumber","NUMBER","JSONNullLiteral","NULL","JSONBooleanLiteral","TRUE","FALSE","JSONText","JSONValue","EOF","JSONObject","JSONArray","JSONMemberList","JSONMember",":",",","JSONElementList","$accept","$end","terminals_",6,10,11,14,21,22,23,24,"productions_","performAction","yytext","yyleng","yylineno","yystate","$$","$",5,7,12,15,20,25,"defaultActions","parseError","popStack","vstack","lstack","lex","lexer","recovering","TERROR","setInput","yylloc","yyloc","symbol","preErrorSymbol","newState","expected","yyval","errStr","showPosition","loc","_$","first_line","last_line","first_column","last_column","hash","_input","_more","_less","done","conditionStack","unput","more","less","pastInput","past","upcomingInput","pre","tempMatch","_currentRules","flex","begin","condition","conditions","topState","yy_","$avoiding_name_collisions","YY_START","INITIAL","inclusive","readFileSync","cwd","read","charset","argv","webpackPolyfill","deprecate","paths","normalizeArray","allowAboveRoot","up","xs","res","splitPathRe","splitPath","filename","resolve","resolvedPath","resolvedAbsolute","normalize","isAbsolute","trailingSlash","relative","fromParts","toParts","samePartsLength","outputParts","delimiter","dirname","basename","ext","extname","noop","canSetImmediate","setImmediate","canMutationObserver","MutationObserver","canPost","queue","hiddenDiv","observer","queueList","observe","browser","chdir","get_blob","Builder","MSBlobBuilder","bag","builder","endings"],"mappings":"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"} \ No newline at end of file diff --git a/jsoneditor.min.js b/jsoneditor.min.js index 20df8dc..b7b718c 100644 --- a/jsoneditor.min.js +++ b/jsoneditor.min.js @@ -26,19 +26,19 @@ * @version 3.2.0 * @date 2015-02-27 */ -!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 o=i[n]={exports:{},id:n,loaded:!1};return e[n].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var i={};return t.m=e,t.c=i,t.p="",t(0)}([function(e,t,i){function n(e,t,i){if(!(this instanceof n))throw new Error('JSONEditor constructor called without "new".');var o=s.getInternetExplorerVersion();if(-1!=o&&9>o)throw new Error("Unsupported browser, IE9 or newer required. Please install the newest version of your browser.");arguments.length&&this._create(e,t,i)}var o=i(1),r=i(2),s=i(3);n.modes={},n.prototype._create=function(e,t,i){this.container=e,this.options=t||{},this.json=i||{};var n=this.options.mode||"tree";this.setMode(n)},n.prototype._delete=function(){},n.prototype.set=function(e){this.json=e},n.prototype.get=function(){return this.json},n.prototype.setText=function(e){this.json=s.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,o=this.container,r=s.extend({},this.options);r.mode=e;var a=n.modes[e];if(!a)throw new Error('Unknown mode "'+r.mode+'"');try{var l="text"==a.data;if(i=this.getName(),t=this[l?"getText":"get"](),this._delete(),s.clear(this),s.extend(this,a.mixin),this.create(o,r),this.setName(i),this[l?"setText":"set"](t),"function"==typeof a.load)try{a.load.call(this)}catch(c){}}catch(c){this._onError(c)}},n.prototype._onError=function(e){if("function"==typeof this.onError&&(s.log("WARNING: JSONEditor.onError is deprecated. Use options.error instead."),this.onError(e)),!this.options||"function"!=typeof this.options.error)throw e;this.options.error(e)},n.registerMode=function(e){var t,i;if(s.isArray(e))for(t=0;te&&i.scrollTop>0?(n+s-e)/3:e>r-s&&o+i.scrollTop3?(i.scrollTop+=o/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)},c._createFrame=function(){function e(e){t._onEvent(e)}this.frame=document.createElement("div"),this.frame.className="jsoneditor",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,l.addEventListener(this.frame,"focus",e,!0),l.addEventListener(this.frame,"blur",e,!0),this.frame.onfocusin=e,this.frame.onfocusout=e,this.menu=document.createElement("div"),this.menu.className="menu",this.frame.appendChild(this.menu);var i=document.createElement("button");i.className="expand-all",i.title="Expand all fields",i.onclick=function(){t.expandAll()},this.menu.appendChild(i);var n=document.createElement("button");if(n.title="Collapse all fields",n.className="collapse-all",n.onclick=function(){t.collapseAll()},this.menu.appendChild(n),this.history){var o=document.createElement("button");o.className="undo separator",o.title="Undo last action (Ctrl+Z)",o.onclick=function(){t._onUndo()},this.menu.appendChild(o),this.dom.undo=o;var s=document.createElement("button");s.className="redo",s.title="Redo (Ctrl+Shift+Z)",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 c=a.create(this,this.options.modes,this.options.mode);this.menu.appendChild(c),this.dom.modeBox=c}this.options.search&&(this.searchBox=new r(this,this.menu))},c._onUndo=function(){this.history&&(this.history.undo(),this.options.change&&this.options.change())},c._onRedo=function(){this.history&&(this.history.redo(),this.options.change&&this.options.change())},c._onEvent=function(e){var t=e.target;"keydown"==e.type&&this._onKeyDown(e),"focus"==e.type&&(u=t);var i=s.getNodeFromTarget(t);i&&i.onEvent(e)},c._onKeyDown=function(e){var t=e.which||e.keyCode,i=e.ctrlKey,n=e.shiftKey,o=!1;if(9==t&&setTimeout(function(){l.selectContentEditable(u)},0),this.searchBox)if(i&&70==t)this.searchBox.dom.search.focus(),this.searchBox.dom.search.select(),o=!0;else if(114==t||i&&71==t){var r=!0;n?this.searchBox.previous(r):this.searchBox.next(r),o=!0}this.history&&(i&&!n&&90==t?(this._onUndo(),o=!0):i&&n&&90==t&&(this._onRedo(),o=!0)),o&&(e.preventDefault(),e.stopPropagation())},c._createTable=function(){var e=document.createElement("div");e.className="outer",this.contentOuter=e,this.content=document.createElement("div"),this.content.className="tree",e.appendChild(this.content),this.table=document.createElement("table"),this.table.className="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)},e.exports=[{mode:"tree",mixin:c,data:"json"},{mode:"view",mixin:c,data:"json"},{mode:"form",mixin:c,data:"json"}]},function(e,t,i){var n=i(10);i(11),i(12),i(9);var o=i(8),r=i(3),s={};s.create=function(e,t){t=t||{},this.options=t,this.indentation=t.indentation?Number(t.indentation):2,this.mode="code"==t.mode?"code":"text","code"==this.mode&&"undefined"==typeof n&&(this.mode="text",r.log("WARNING: Cannot load code editor, Ace library not loaded. Falling back to plain text editor"));var i=this;this.container=e,this.dom={},this.editor=void 0,this.textarea=void 0,this.width=e.clientWidth,this.height=e.clientHeight,this.frame=document.createElement("div"),this.frame.className="jsoneditor",this.frame.onclick=function(e){e.preventDefault()},this.frame.onkeydown=function(e){i._onKeyDown(e)},this.menu=document.createElement("div"),this.menu.className="menu",this.frame.appendChild(this.menu);var s=document.createElement("button");s.className="format",s.title="Format JSON data, with proper indentation and line feeds (Ctrl+\\)",this.menu.appendChild(s),s.onclick=function(){try{i.format()}catch(e){i._onError(e)}};var a=document.createElement("button");if(a.className="compact",a.title="Compact JSON data, remove all whitespaces (Ctrl+Shift+\\)",this.menu.appendChild(a),a.onclick=function(){try{i.compact()}catch(e){i._onError(e)}},this.options&&this.options.modes&&this.options.modes.length){var l=o.create(this,this.options.modes,this.options.mode);this.menu.appendChild(l),this.dom.modeBox=l}if(this.content=document.createElement("div"),this.content.className="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 c=n.edit(this.editorDom);c.setTheme("ace/theme/jsoneditor"),c.setShowPrintMargin(!1),c.setFontSize(13),c.getSession().setMode("ace/mode/json"),c.getSession().setTabSize(this.indentation),c.getSession().setUseSoftTabs(!0),c.getSession().setUseWrapMode(!0),this.editor=c;var h=document.createElement("a");h.appendChild(document.createTextNode("powered by ace")),h.href="http://ace.ajax.org",h.target="_blank",h.className="poweredBy",h.onclick=function(){window.open(h.href,h.target)},this.menu.appendChild(h),t.change&&c.on("change",function(){t.change()})}else{var u=document.createElement("textarea");u.className="text",u.spellcheck=!1,this.content.appendChild(u),this.textarea=u,t.change&&(null===this.textarea.oninput?this.textarea.oninput=function(){t.change()}:this.textarea.onchange=function(){t.change()})}},s._onKeyDown=function(e){var t=e.which||e.keyCode,i=!1;220==t&&e.ctrlKey&&(e.shiftKey?this.compact():this.format(),i=!0),i&&(e.preventDefault(),e.stopPropagation())},s._delete=function(){this.frame&&this.container&&this.frame.parentNode==this.container&&this.container.removeChild(this.frame)},s._onError=function(e){if("function"==typeof this.onError&&(r.log("WARNING: JSONEditor.onError is deprecated. Use options.error instead."),this.onError(e)),!this.options||"function"!=typeof this.options.error)throw e;this.options.error(e)},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.focus=function(){this.textarea&&this.textarea.focus(),this.editor&&this.editor.focus()},s.resize=function(){if(this.editor){var e=!1;this.editor.resize(e)}},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(i){t=r.sanitize(t),this.setText(t),e=r.parse(t)}return e},s.getText=function(){return this.textarea?this.textarea.value:this.editor?this.editor.getValue():""},s.setText=function(e){this.textarea&&(this.textarea.value=e),this.editor&&this.editor.setValue(e,-1)},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=i(15);t.parse=function(e){try{return JSON.parse(e)}catch(i){throw t.validate(e),i}},t.sanitize=function(e){for(var t=[],i=!1,n=0;nn;n++){var r=i[n];r.style&&r.removeAttribute("style");var s=r.attributes;if(s)for(var a=s.length-1;a>=0;a--){var l=s[a];1==l.specified&&r.removeAttribute(l.name)}t.stripFormatting(r)}},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){var i=window.getSelection();if(i){var n=document.createRange();n.setStart(e.container.firstChild,e.startOffset),n.setEnd(e.container.firstChild,e.endOffset),t.setSelection(n)}}},t.getInnerText=function(e,i){var n=void 0==i;if(n&&(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 o=e.childNodes,r="",s=0,a=o.length;a>s;s++){var l=o[s];if("DIV"==l.nodeName||"P"==l.nodeName){var c=o[s-1],h=c?c.nodeName:void 0;h&&"DIV"!=h&&"P"!=h&&"BR"!=h&&(r+="\n",i.flush()),r+=t.getInnerText(l,i),i.set("\n")}else"BR"==l.nodeName?(r+=i.flush(),i.set("\n")):r+=t.getInnerText(l,i)}return r}return"P"==e.nodeName&&-1!=t.getInternetExplorerVersion()?i.flush():""},t.getInternetExplorerVersion=function(){if(-1==r){var e=-1;if("Microsoft Internet Explorer"==navigator.appName){var t=navigator.userAgent,i=new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})");null!=i.exec(t)&&(e=parseFloat(RegExp.$1))}r=e}return r},t.isFirefox=function(){return-1!=navigator.userAgent.indexOf("Firefox")};var r=-1;t.addEventListener=function(e,i,n,o){if(e.addEventListener)return void 0===o&&(o=!1),"mousewheel"===i&&t.isFirefox()&&(i="DOMMouseScroll"),e.addEventListener(i,n,o),n;if(e.attachEvent){var r=function(){return n.call(e,window.event)};return e.attachEvent("on"+i,r),r}},t.removeEventListener=function(e,i,n,o){e.removeEventListener?(void 0===o&&(o=!1),"mousewheel"===i&&t.isFirefox()&&(i="DOMMouseScroll"),e.removeEventListener(i,n,o)):e.detachEvent&&e.detachEvent("on"+i,n)}},function(e){function t(){this.locked=!1}t.prototype.highlight=function(e){this.locked||(this.node!=e&&(this.node&&this.node.setHighlight(!1),this.node=e,this.node.setHighlight(!0)),this._cancelUnhighlight())},t.prototype.unhighlight=function(){if(!this.locked){var e=this;this.node&&(this._cancelUnhighlight(),this.unhighlightTimer=setTimeout(function(){e.node.setHighlight(!1),e.node=void 0,e.unhighlightTimer=void 0},0))}},t.prototype._cancelUnhighlight=function(){this.unhighlightTimer&&(clearTimeout(this.unhighlightTimer),this.unhighlightTimer=void 0)},t.prototype.lock=function(){this.locked=!0},t.prototype.unlock=function(){this.locked=!1},e.exports=t},function(e,t,i){function n(e){this.editor=e,this.clear(),this.actions={editField:{undo:function(e){e.node.updateField(e.oldValue)},redo:function(e){e.node.updateField(e.newValue)}},editValue:{undo:function(e){e.node.updateValue(e.oldValue)},redo:function(e){e.node.updateValue(e.newValue)}},appendNode:{undo:function(e){e.parent.removeChild(e.node)},redo:function(e){e.parent.appendChild(e.node)}},insertBeforeNode:{undo:function(e){e.parent.removeChild(e.node)},redo:function(e){e.parent.insertBefore(e.node,e.beforeNode)}},insertAfterNode:{undo:function(e){e.parent.removeChild(e.node)},redo:function(e){e.parent.insertAfter(e.node,e.afterNode)}},removeNode:{undo:function(e){var t=e.parent,i=t.childs[e.index]||t.append;t.insertBefore(e.node,i)},redo:function(e){e.parent.removeChild(e.node)}},duplicateNode:{undo:function(e){e.parent.removeChild(e.clone)},redo:function(e){e.parent.insertAfter(e.clone,e.node)}},changeType:{undo:function(e){e.node.changeType(e.oldType)},redo:function(e){e.node.changeType(e.newType)}},moveNode:{undo:function(e){e.startParent.moveTo(e.node,e.startIndex)},redo:function(e){e.endParent.moveTo(e.node,e.endIndex)}},sort:{undo:function(e){var t=e.node;t.hideChilds(),t.sort=e.oldSort,t.childs=e.oldChilds,t.showChilds()},redo:function(e){var t=e.node;t.hideChilds(),t.sort=e.newSort,t.childs=e.newChilds,t.showChilds()}}}}var o=i(3);n.prototype.onChange=function(){},n.prototype.add=function(e,t){this.index++,this.history[this.index]={action:e,params:t,timestamp:new Date},this.index=0},n.prototype.canRedo=function(){return this.indexthis.results.length-1&&(t=0),this._setActiveResult(t,e)}},t.prototype.previous=function(e){if(void 0!=this.results){var t=this.results.length-1,i=void 0!=this.resultIndex?this.resultIndex-1:t;0>i&&(i=t),this._setActiveResult(i,e)}},t.prototype._setActiveResult=function(e,t){if(this.activeResult){var i=this.activeResult.node,n=this.activeResult.elem;"field"==n?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 o=this.results[this.resultIndex].node,r=this.results[this.resultIndex].elem;"field"==r?o.searchFieldActive=!0:o.searchValueActive=!0,this.activeResult=this.results[this.resultIndex],o.updateDom(),o.scrollTo(function(){t&&o.focus(r)})},t.prototype._clearDelay=function(){void 0!=this.timeout&&(clearTimeout(this.timeout),delete this.timeout)},t.prototype._onDelayedSearch=function(){this._clearDelay();var e=this;this.timeout=setTimeout(function(t){e._onSearch(t)},this.delay)},t.prototype._onSearch=function(e,t){this._clearDelay();var i=this.dom.search.value,n=i.length>0?i:void 0;if(n!=this.lastText||t)if(this.lastText=n,this.results=this.editor.search(n),this._setActiveResult(void 0),void 0!=n){var o=this.results.length;switch(o){case 0:this.dom.results.innerHTML="no results";break;case 1:this.dom.results.innerHTML="1 result";break;default:this.dom.results.innerHTML=o+" results"}}else this.dom.results.innerHTML=""},t.prototype._onKeyDown=function(e){var t=e.which;27==t?(this.dom.search.value="",this._onSearch(e),e.preventDefault(),e.stopPropagation()):13==t&&(e.ctrlKey?this._onSearch(e,!0):e.shiftKey?this.previous():this.next(),e.preventDefault(),e.stopPropagation())},t.prototype._onKeyUp=function(e){var t=e.keyCode;27!=t&&13!=t&&this._onDelayedSearch(e)},e.exports=t},function(e,t,i){function n(e,t){this.editor=e,this.dom={},this.expanded=!1,t&&t instanceof Object?(this.setField(t.field,t.fieldEditable),this.setValue(t.value,t.type)):(this.setField(""),this.setValue(null))}var o=i(13),r=i(14),s=i(3);n.prototype._updateEditability=function(){if(this.editable={field:!0,value:!0},this.editor&&(this.editable.field="tree"===this.editor.options.mode,this.editable.value="view"!==this.editor.options.mode,"tree"===this.editor.options.mode&&"function"==typeof this.editor.options.editable)){var e=this.editor.options.editable({field:this.field,value:this.value,path:this.path()});"boolean"==typeof e?(this.editable.field=e,this.editable.value=e):("boolean"==typeof e.field&&(this.editable.field=e.field),"boolean"==typeof e.value&&(this.editable.value=e.value))}},n.prototype.path=function(){for(var e=this,t=[];e;){var i=void 0!=e.field?e.field:e.index;void 0!==i&&t.unshift(i),e=e.parent}return t},n.prototype.setParent=function(e){this.parent=e},n.prototype.setField=function(e,t){this.field=e,this.fieldEditable=1==t},n.prototype.getField=function(){return void 0===this.field&&this._getDomField(),this.field},n.prototype.setValue=function(e,t){var i,o,r=this.childs;if(r)for(;r.length;)this.removeChild(r[0]);if(this.type=this._getType(e),t&&t!=this.type){if("string"!=t||"auto"!=this.type)throw new Error('Type mismatch: cannot cast value of type "'+this.type+' to the specified type "'+t+'"');this.type=t}if("array"==this.type){this.childs=[];for(var s=0,a=e.length;a>s;s++)i=e[s],void 0===i||i instanceof Function||(o=new n(this.editor,{value:i}),this.appendChild(o));this.value=""}else if("object"==this.type){this.childs=[];for(var l in e)e.hasOwnProperty(l)&&(i=e[l],void 0===i||i instanceof Function||(o=new n(this.editor,{field:l,value:i}),this.appendChild(o)));this.value=""}else this.childs=void 0,this.value=e},n.prototype.getValue=function(){if("array"==this.type){var e=[];return this.childs.forEach(function(t){e.push(t.getValue())}),e}if("object"==this.type){var t={};return this.childs.forEach(function(e){t[e.getField()]=e.getValue()}),t}return void 0===this.value&&this._getDomValue(),this.value},n.prototype.getLevel=function(){return this.parent?this.parent.getLevel()+1:0},n.prototype.clone=function(){var e=new n(this.editor);if(e.type=this.type,e.field=this.field,e.fieldInnerText=this.fieldInnerText,e.fieldEditable=this.fieldEditable,e.value=this.value,e.valueInnerText=this.valueInnerText,e.expanded=this.expanded,this.childs){var t=[];this.childs.forEach(function(i){var n=i.clone();n.setParent(e),t.push(n)}),e.childs=t}else e.childs=void 0;return e},n.prototype.expand=function(e){this.childs&&(this.expanded=!0,this.dom.expand&&(this.dom.expand.className="expanded"),this.showChilds(),0!=e&&this.childs.forEach(function(t){t.expand(e)}))},n.prototype.collapse=function(e){this.childs&&(this.hideChilds(),0!=e&&this.childs.forEach(function(t){t.collapse(e)}),this.dom.expand&&(this.dom.expand.className="collapsed"),this.expanded=!1)},n.prototype.showChilds=function(){var e=this.childs;if(e&&this.expanded){var t=this.dom.tr,i=t?t.parentNode:void 0;if(i){var n=this.getAppend(),o=t.nextSibling;o?i.insertBefore(n,o):i.appendChild(n),this.childs.forEach(function(e){i.insertBefore(e.getDom(),n),e.showChilds()})}}},n.prototype.hide=function(){var e=this.dom.tr,t=e?e.parentNode:void 0;t&&t.removeChild(e),this.hideChilds()},n.prototype.hideChilds=function(){var e=this.childs;if(e&&this.expanded){var t=this.getAppend();t.parentNode&&t.parentNode.removeChild(t),this.childs.forEach(function(e){e.hide()})}},n.prototype.appendChild=function(e){if(this._hasChilds()){if(e.setParent(this),e.fieldEditable="object"==this.type,"array"==this.type&&(e.index=this.childs.length),this.childs.push(e),this.expanded){var t=e.getDom(),i=this.getAppend(),n=i?i.parentNode:void 0;i&&n&&n.insertBefore(t,i),e.showChilds()}this.updateDom({updateIndexes:!0}),e.updateDom({recurse:!0})}},n.prototype.moveBefore=function(e,t){if(this._hasChilds()){var i=this.dom.tr?this.dom.tr.parentNode:void 0;if(i){var n=document.createElement("tr");n.style.height=i.clientHeight+"px",i.appendChild(n)}e.parent&&e.parent.removeChild(e),t instanceof a?this.appendChild(e):this.insertBefore(e,t),i&&i.removeChild(n)}},n.prototype.moveTo=function(e,t){if(e.parent==this){var i=this.childs.indexOf(e);t>i&&t++}var n=this.childs[t]||this.append;this.moveBefore(e,n)},n.prototype.insertBefore=function(e,t){if(this._hasChilds()){if(t==this.append)e.setParent(this),e.fieldEditable="object"==this.type,this.childs.push(e);else{var i=this.childs.indexOf(t);if(-1==i)throw new Error("Node not found");e.setParent(this),e.fieldEditable="object"==this.type,this.childs.splice(i,0,e)}if(this.expanded){var n=e.getDom(),o=t.getDom(),r=o?o.parentNode:void 0;o&&r&&r.insertBefore(n,o),e.showChilds()}this.updateDom({updateIndexes:!0}),e.updateDom({recurse:!0})}},n.prototype.insertAfter=function(e,t){if(this._hasChilds()){var i=this.childs.indexOf(t),n=this.childs[i+1];n?this.insertBefore(e,n):this.appendChild(e)}},n.prototype.search=function(e){var t,i=[],n=e?e.toLowerCase():void 0;if(delete this.searchField,delete this.searchValue,void 0!=this.field){var o=String(this.field).toLowerCase();t=o.indexOf(n),-1!=t&&(this.searchField=!0,i.push({node:this,elem:"field"})),this._updateDomField()}if(this._hasChilds()){if(this.childs){var r=[];this.childs.forEach(function(t){r=r.concat(t.search(e))}),i=i.concat(r)}if(void 0!=n){var s=!1;0==r.length?this.collapse(s):this.expand(s)}}else{if(void 0!=this.value){var a=String(this.value).toLowerCase();t=a.indexOf(n),-1!=t&&(this.searchValue=!0,i.push({node:this,elem:"value"}))}this._updateDomValue()}return i},n.prototype.scrollTo=function(e){if(!this.dom.tr||!this.dom.tr.parentNode)for(var t=this.parent,i=!1;t;)t.expand(i),t=t.parent;this.dom.tr&&this.dom.tr.parentNode&&this.editor.scrollTo(this.dom.tr.offsetTop,e)},n.focusElement=void 0,n.prototype.focus=function(e){if(n.focusElement=e,this.dom.tr&&this.dom.tr.parentNode){var t=this.dom;switch(e){case"drag":t.drag?t.drag.focus():t.menu.focus();break;case"menu":t.menu.focus();break;case"expand":this._hasChilds()?t.expand.focus():t.field&&this.fieldEditable?(t.field.focus(),s.selectContentEditable(t.field)):t.value&&!this._hasChilds()?(t.value.focus(),s.selectContentEditable(t.value)):t.menu.focus();break;case"field":t.field&&this.fieldEditable?(t.field.focus(),s.selectContentEditable(t.field)):t.value&&!this._hasChilds()?(t.value.focus(),s.selectContentEditable(t.value)):this._hasChilds()?t.expand.focus():t.menu.focus();break;case"value":default:t.value&&!this._hasChilds()?(t.value.focus(),s.selectContentEditable(t.value)):t.field&&this.fieldEditable?(t.field.focus(),s.selectContentEditable(t.field)):this._hasChilds()?t.expand.focus():t.menu.focus()}}},n.select=function(e){setTimeout(function(){s.selectContentEditable(e)},0)},n.prototype.blur=function(){this._getDomValue(!1),this._getDomField(!1)},n.prototype._duplicate=function(e){var t=e.clone();return this.insertAfter(t,e),t},n.prototype.containsNode=function(e){if(this==e)return!0;var t=this.childs;if(t)for(var i=0,n=t.length;n>i;i++)if(t[i].containsNode(e))return!0;return!1},n.prototype._move=function(e,t){if(e!=t){if(e.containsNode(this))throw new Error("Cannot move a field into a child of itself"); -e.parent&&e.parent.removeChild(e);var i=e.clone();e.clearDom(),t?this.insertBefore(i,t):this.appendChild(i)}},n.prototype.removeChild=function(e){if(this.childs){var t=this.childs.indexOf(e);if(-1!=t){e.hide(),delete e.searchField,delete e.searchValue;var i=this.childs.splice(t,1)[0];return this.updateDom({updateIndexes:!0}),i}}return void 0},n.prototype._remove=function(e){this.removeChild(e)},n.prototype.changeType=function(e){var t=this.type;if(t!=e){if("string"!=e&&"auto"!=e||"string"!=t&&"auto"!=t){var i,n=this.dom.tr?this.dom.tr.parentNode:void 0;i=this.expanded?this.getAppend():this.getDom();var o=i&&i.parentNode?i.nextSibling:void 0;this.hide(),this.clearDom(),this.type=e,"object"==e?(this.childs||(this.childs=[]),this.childs.forEach(function(e){e.clearDom(),delete e.index,e.fieldEditable=!0,void 0==e.field&&(e.field="")}),("string"==t||"auto"==t)&&(this.expanded=!0)):"array"==e?(this.childs||(this.childs=[]),this.childs.forEach(function(e,t){e.clearDom(),e.fieldEditable=!1,e.index=t}),("string"==t||"auto"==t)&&(this.expanded=!0)):this.expanded=!1,n&&(o?n.insertBefore(this.getDom(),o):n.appendChild(this.getDom())),this.showChilds()}else this.type=e;("auto"==e||"string"==e)&&(this.value="string"==e?String(this.value):this._stringCast(String(this.value)),this.focus()),this.updateDom({updateIndexes:!0})}},n.prototype._getDomValue=function(e){if(this.dom.value&&"array"!=this.type&&"object"!=this.type&&(this.valueInnerText=s.getInnerText(this.dom.value)),void 0!=this.valueInnerText)try{var t;if("string"==this.type)t=this._unescapeHTML(this.valueInnerText);else{var i=this._unescapeHTML(this.valueInnerText);t=this._stringCast(i)}if(t!==this.value){var n=this.value;this.value=t,this.editor._onAction("editValue",{node:this,oldValue:n,newValue:t,oldSelection:this.editor.selection,newSelection:this.editor.getSelection()})}}catch(o){if(this.value=void 0,1!=e)throw o}},n.prototype._updateDomValue=function(){var e=this.dom.value;if(e){var t=this.value,i="auto"==this.type?s.type(t):this.type,n="string"==i&&s.isUrl(t),o="";o=n&&!this.editable.value?"":"string"==i?"green":"number"==i?"red":"boolean"==i?"darkorange":this._hasChilds()?"":null===t?"#004ED0":"black",e.style.color=o;var r=""==String(this.value)&&"array"!=this.type&&"object"!=this.type;if(r?s.addClassName(e,"empty"):s.removeClassName(e,"empty"),n?s.addClassName(e,"url"):s.removeClassName(e,"url"),"array"==i||"object"==i){var a=this.childs?this.childs.length:0;e.title=this.type+" containing "+a+" items"}else"string"==i&&s.isUrl(t)?this.editable.value&&(e.title="Ctrl+Click or Ctrl+Enter to open url in new window"):e.title="";this.searchValueActive?s.addClassName(e,"highlight-active"):s.removeClassName(e,"highlight-active"),this.searchValue?s.addClassName(e,"highlight"):s.removeClassName(e,"highlight"),s.stripFormatting(e)}},n.prototype._updateDomField=function(){var e=this.dom.field;if(e){var t=""==String(this.field)&&"array"!=this.parent.type;t?s.addClassName(e,"empty"):s.removeClassName(e,"empty"),this.searchFieldActive?s.addClassName(e,"highlight-active"):s.removeClassName(e,"highlight-active"),this.searchField?s.addClassName(e,"highlight"):s.removeClassName(e,"highlight"),s.stripFormatting(e)}},n.prototype._getDomField=function(e){if(this.dom.field&&this.fieldEditable&&(this.fieldInnerText=s.getInnerText(this.dom.field)),void 0!=this.fieldInnerText)try{var t=this._unescapeHTML(this.fieldInnerText);if(t!==this.field){var i=this.field;this.field=t,this.editor._onAction("editField",{node:this,oldValue:i,newValue:t,oldSelection:this.editor.selection,newSelection:this.editor.getSelection()})}}catch(n){if(this.field=void 0,1!=e)throw n}},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");e.drag=i,i.className="dragarea",i.title="Drag to move this field (Alt+Shift+Arrows)",t.appendChild(i)}e.tr.appendChild(t);var n=document.createElement("td"),o=document.createElement("button");e.menu=o,o.className="contextmenu",o.title="Click to open the actions menu (Ctrl+M)",n.appendChild(e.menu),e.tr.appendChild(n)}var r=document.createElement("td");return e.tr.appendChild(r),e.tree=this._createDomTree(),r.appendChild(e.tree),this.updateDom({updateIndexes:!0}),e.tr},n.prototype._onDragStart=function(e){var t=this;this.mousemove||(this.mousemove=s.addEventListener(document,"mousemove",function(e){t._onDrag(e)})),this.mouseup||(this.mouseup=s.addEventListener(document,"mouseup",function(e){t._onDragEnd(e)})),this.editor.highlighter.lock(),this.drag={oldCursor:document.body.style.cursor,startParent:this.parent,startIndex:this.parent.childs.indexOf(this),mouseX:e.pageX,level:this.getLevel()},document.body.style.cursor="move",e.preventDefault()},n.prototype._onDrag=function(e){var t,i,o,r,l,c,h,u,d,g,f,p,m,v,A=e.pageY,w=e.pageX,C=!1;if(t=this.dom.tr,d=s.getAbsoluteTop(t),p=t.offsetHeight,d>A){i=t;do i=i.previousSibling,h=n.getNodeFromTarget(i),g=i?s.getAbsoluteTop(i):0;while(i&&g>A);h&&!h.parent&&(h=void 0),h||(c=t.parentNode.firstChild,i=c?c.nextSibling:void 0,h=n.getNodeFromTarget(i),h==this&&(h=void 0)),h&&(i=h.dom.tr,g=i?s.getAbsoluteTop(i):0,A>g+p&&(h=void 0)),h&&(h.parent.moveBefore(this,h),C=!0)}else if(l=this.expanded&&this.append?this.append.getDom():this.dom.tr,r=l?l.nextSibling:void 0){f=s.getAbsoluteTop(r),o=r;do u=n.getNodeFromTarget(o),o&&(m=o.nextSibling?s.getAbsoluteTop(o.nextSibling):0,v=o?m-f:0,1==u.parent.childs.length&&u.parent.childs[0]==this&&(d+=23)),o=o.nextSibling;while(o&&A>d+v);if(u&&u.parent){var E=w-this.drag.mouseX,F=Math.round(E/24/2),y=this.drag.level+F,b=u.getLevel();for(i=u.dom.tr.previousSibling;y>b&&i;){if(h=n.getNodeFromTarget(i),h==this||h._isChildOf(this));else{if(!(h instanceof a))break;var x=h.parent.childs;if(!(x.length>1||1==x.length&&x[0]!=this))break;u=n.getNodeFromTarget(i),b=u.getLevel()}i=i.previousSibling}l.nextSibling!=u.dom.tr&&(u.parent.moveBefore(this,u),C=!0)}}C&&(this.drag.mouseX=w,this.drag.level=this.getLevel()),this.editor.startAutoScroll(A),e.preventDefault()},n.prototype._onDragEnd=function(e){var t={node:this,startParent:this.drag.startParent,startIndex:this.drag.startIndex,endParent:this.parent,endIndex:this.parent.childs.indexOf(this)};(t.startParent!=t.endParent||t.startIndex!=t.endIndex)&&this.editor._onAction("moveNode",t),document.body.style.cursor=this.drag.oldCursor,this.editor.highlighter.unlock(),delete this.drag,this.mousemove&&(s.removeEventListener(document,"mousemove",this.mousemove),delete this.mousemove),this.mouseup&&(s.removeEventListener(document,"mouseup",this.mouseup),delete this.mouseup),this.editor.stopAutoScroll(),e.preventDefault()},n.prototype._isChildOf=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&&(this.dom.tr.className=e?"highlight":"",this.append&&this.append.setHighlight(e),this.childs&&this.childs.forEach(function(t){t.setHighlight(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="field"):i.className="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)}var o=this.dom.value;if(o){var r=this.childs?this.childs.length:0;o.innerHTML="array"==this.type?"["+r+"]":"object"==this.type?"{"+r+"}":this._escapeHTML(this.value)}this._updateDomField(),this._updateDomValue(),e&&1==e.updateIndexes&&this._updateDomIndexes(),e&&1==e.recurse&&this.childs&&this.childs.forEach(function(t){t.updateDom(e)}),this.append&&this.append.updateDom()},n.prototype._updateDomIndexes=function(){var e=this.dom.value,t=this.childs;e&&t&&("array"==this.type?t.forEach(function(e,t){e.index=t;var i=e.dom.field;i&&(i.innerHTML=t)}):"object"==this.type&&t.forEach(function(e){void 0!=e.index&&(delete e.index,void 0==e.field&&(e.field=""))}))},n.prototype._createDomValue=function(){var e;return"array"==this.type?(e=document.createElement("div"),e.className="readonly",e.innerHTML="[...]"):"object"==this.type?(e=document.createElement("div"),e.className="readonly",e.innerHTML="{...}"):!this.editable.value&&s.isUrl(this.value)?(e=document.createElement("a"),e.className="value",e.href=this.value,e.target="_blank",e.innerHTML=this._escapeHTML(this.value)):(e=document.createElement("div"),e.contentEditable=this.editable.value,e.spellcheck=!1,e.className="value",e.innerHTML=this._escapeHTML(this.value)),e},n.prototype._createDomExpandButton=function(){var e=document.createElement("button");return this._hasChilds()?(e.className=this.expanded?"expanded":"collapsed",e.title="Click to expand/collapse this field (Ctrl+E). \nCtrl+Click to expand/collapse including all childs."):(e.className="invisible",e.title=""),e},n.prototype._createDomTree=function(){var e=this.dom,t=document.createElement("table"),i=document.createElement("tbody");t.style.borderCollapse="collapse",t.className="values",t.appendChild(i);var n=document.createElement("tr");i.appendChild(n);var o=document.createElement("td");o.className="tree",n.appendChild(o),e.expand=this._createDomExpandButton(),o.appendChild(e.expand),e.tdExpand=o;var r=document.createElement("td");r.className="tree",n.appendChild(r),e.field=this._createDomField(),r.appendChild(e.field),e.tdField=r;var s=document.createElement("td");s.className="tree",n.appendChild(s),"object"!=this.type&&"array"!=this.type&&(s.appendChild(document.createTextNode(":")),s.className="separator"),e.tdSeparator=s;var a=document.createElement("td");return a.className="tree",n.appendChild(a),e.value=this._createDomValue(),a.appendChild(e.value),e.tdValue=a,t},n.prototype.onEvent=function(e){var t,i=e.type,n=e.target||e.srcElement,o=this.dom,r=this,a=this._hasChilds();if((n==o.drag||n==o.menu)&&("mouseover"==i?this.editor.highlighter.highlight(this):"mouseout"==i&&this.editor.highlighter.unhighlight()),"mousedown"==i&&n==o.drag&&this._onDragStart(e),"click"==i&&n==o.menu){var l=r.editor.highlighter;l.highlight(r),l.lock(),s.addClassName(o.menu,"selected"),this.showContextMenu(o.menu,function(){s.removeClassName(o.menu,"selected"),l.unlock(),l.unhighlight()})}if("click"==i&&n==o.expand&&a){var c=e.ctrlKey;this._onExpand(c)}var h=o.value;if(n==h)switch(i){case"focus":t=this;break;case"blur":case"change":this._getDomValue(!0),this._updateDomValue(),this.value&&(h.innerHTML=this._escapeHTML(this.value));break;case"input":this._getDomValue(!0),this._updateDomValue();break;case"keydown":case"mousedown":this.editor.selection=this.editor.getSelection();break;case"click":(e.ctrlKey||!this.editable.value)&&s.isUrl(this.value)&&window.open(this.value,"_blank");break;case"keyup":this._getDomValue(!0),this._updateDomValue();break;case"cut":case"paste":setTimeout(function(){r._getDomValue(!0),r._updateDomValue()},1)}var u=o.field;if(n==u)switch(i){case"focus":t=this;break;case"blur":case"change":this._getDomField(!0),this._updateDomField(),this.field&&(u.innerHTML=this._escapeHTML(this.field));break;case"input":this._getDomField(!0),this._updateDomField();break;case"keydown":case"mousedown":this.editor.selection=this.editor.getSelection();break;case"keyup":this._getDomField(!0),this._updateDomField();break;case"cut":case"paste":setTimeout(function(){r._getDomField(!0),r._updateDomField()},1)}var d=o.tree;if(n==d.parentNode)switch(i){case"click":var g=void 0!=e.offsetX?e.offsetX<24*(this.getLevel()+1):e.pageXn[i]?t:e[i]/g,">").replace(/ /g,"  ").replace(/^ /," ").replace(/ $/," "),i=JSON.stringify(t);return i.substring(1,i.length-1)},n.prototype._unescapeHTML=function(e){var t='"'+this._escapeJSON(e)+'"',i=s.parse(t);return i.replace(/</g,"<").replace(/>/g,">").replace(/ |\u00A0/g," ")},n.prototype._escapeJSON=function(e){for(var t="",i=0,n=e.length;n>i;){var o=e.charAt(i);"\n"==o?t+="\\n":"\\"==o?(t+=o,i++,o=e.charAt(i),-1=='"\\/bfnrtu'.indexOf(o)&&(t+="\\"),t+=o):t+='"'==o?'\\"':o,i++}return t};var a=r(n);e.exports=n},function(e,t,i){function n(e,t,i){function n(t){e.setMode(t);var i=e.dom&&e.dom.modeBox;i&&i.focus()}for(var r={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;ar;++r){var l=s(e,t[r]);if(!l&&o.original)return o.original.apply(window,arguments);n.push(l)}i&&i.apply(null,n)}else{if("string"==typeof t){var c=s(e,t);return!c&&o.original?o.original.apply(window,arguments):(i&&i(),c)}if(o.original)return o.original.apply(window,arguments)}},r=function(e,t){if(-1!==t.indexOf("!")){var i=t.split("!");return r(e,i[0])+"!"+r(e,i[1])}if("."==t.charAt(0)){var n=e.split("/").slice(0,-1).join("/");for(t=n+"/"+t;-1!==t.indexOf(".")&&o!=t;){var o=t;t=t.replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return t},s=function(e,t){t=r(e,t);var i=n.modules[t];if(!i){if(i=n.payloads[t],"function"==typeof i){var s={},a={id:t,uri:"",exports:s,packaged:!0},l=function(e,i){return o(t,e,i)},c=i(l,s,a);s=c||a.exports,n.modules[t]=s,delete n.payloads[t]}i=n.modules[t]=s||i}return i};e(t)}}(),ace.define("ace/lib/regexp",["require","exports","module"],function(){"use strict";function e(e){return(e.global?"g":"")+(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.extended?"x":"")+(e.sticky?"y":"")}function t(e,t,i){if(Array.prototype.indexOf)return e.indexOf(t,i);for(var n=i||0;n1&&t(l,"")>-1&&(a=RegExp(this.source,i.replace.call(e(this),"g","")),i.replace.call(r.slice(l.index),a,function(){for(var e=1;el.index&&this.lastIndex--}return l},o||(RegExp.prototype.test=function(e){var t=i.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(){function e(){}function t(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(t){}}function i(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(t){var i=this;if("function"!=typeof i)throw new TypeError("Function.prototype.bind called on incompatible "+i);var n=u.call(arguments,1),o=function(){if(this instanceof o){var e=i.apply(this,n.concat(u.call(arguments)));return Object(e)===e?e:this}return i.apply(t,n.concat(u.call(arguments)))};return i.prototype&&(e.prototype=i.prototype,o.prototype=new e,e.prototype=null),o});var n,o,r,s,a,l=Function.prototype.call,c=Array.prototype,h=Object.prototype,u=c.slice,d=l.bind(h.toString),g=l.bind(h.hasOwnProperty);if((a=g(h,"__defineGetter__"))&&(n=l.bind(h.__defineGetter__),o=l.bind(h.__defineSetter__),r=l.bind(h.__lookupGetter__),s=l.bind(h.__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=[];return i.splice.apply(i,e(20)),i.splice.apply(i,e(26)),t=i.length,i.splice(5,0,"XXX"),t+1==i.length,t+1==i.length?!0:void 0}()){var f=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?f.apply(this,[void 0===e?0:e,void 0===t?this.length-e:t].concat(u.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:0>e&&(e=Math.max(i+e,0)),i>e+t||(t=i-e);var n=this.slice(e,e+t),o=u.call(arguments,2),r=o.length;if(e===i)r&&this.push.apply(this,o);else{var s=Math.min(t,i-e),a=e+s,l=a+r-s,c=i-a,h=i-s;if(a>l)for(var d=0;c>d;++d)this[l+d]=this[a+d];else if(l>a)for(d=c;d--;)this[l+d]=this[a+d];if(r&&e===h)this.length=h,this.push.apply(this,o);else for(this.length=h+r,d=0;r>d;++d)this[e+d]=o[d]}return n};Array.isArray||(Array.isArray=function(e){return"[object Array]"==d(e)});var p=Object("a"),m="a"!=p[0]||!(0 in p);if(Array.prototype.forEach||(Array.prototype.forEach=function(e){var t=R(this),i=m&&"[object String]"==d(this)?this.split(""):t,n=arguments[1],o=-1,r=i.length>>>0;if("[object Function]"!=d(e))throw new TypeError;for(;++o>>0,o=Array(n),r=arguments[1]; -if("[object Function]"!=d(e))throw new TypeError(e+" is not a function");for(var s=0;n>s;s++)s in i&&(o[s]=e.call(r,i[s],s,t));return o}),Array.prototype.filter||(Array.prototype.filter=function(e){var t,i=R(this),n=m&&"[object String]"==d(this)?this.split(""):i,o=n.length>>>0,r=[],s=arguments[1];if("[object Function]"!=d(e))throw new TypeError(e+" is not a function");for(var a=0;o>a;a++)a in n&&(t=n[a],e.call(s,t,a,i)&&r.push(t));return r}),Array.prototype.every||(Array.prototype.every=function(e){var t=R(this),i=m&&"[object String]"==d(this)?this.split(""):t,n=i.length>>>0,o=arguments[1];if("[object Function]"!=d(e))throw new TypeError(e+" is not a function");for(var r=0;n>r;r++)if(r in i&&!e.call(o,i[r],r,t))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(e){var t=R(this),i=m&&"[object String]"==d(this)?this.split(""):t,n=i.length>>>0,o=arguments[1];if("[object Function]"!=d(e))throw new TypeError(e+" is not a function");for(var r=0;n>r;r++)if(r in i&&e.call(o,i[r],r,t))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(e){var t=R(this),i=m&&"[object String]"==d(this)?this.split(""):t,n=i.length>>>0;if("[object Function]"!=d(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 o,r=0;if(arguments.length>=2)o=arguments[1];else for(;;){if(r in i){o=i[r++];break}if(++r>=n)throw new TypeError("reduce of empty array with no initial value")}for(;n>r;r++)r in i&&(o=e.call(void 0,o,i[r],r,t));return o}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(e){var t=R(this),i=m&&"[object String]"==d(this)?this.split(""):t,n=i.length>>>0;if("[object Function]"!=d(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 o,r=n-1;if(arguments.length>=2)o=arguments[1];else for(;;){if(r in i){o=i[r--];break}if(--r<0)throw new TypeError("reduceRight of empty array with no initial value")}do r in this&&(o=e.call(void 0,o,i[r],r,t));while(r--);return o}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(e){var t=m&&"[object String]"==d(this)?this.split(""):R(this),n=t.length>>>0;if(!n)return-1;var o=0;for(arguments.length>1&&(o=i(arguments[1])),o=o>=0?o:Math.max(0,n+o);n>o;o++)if(o in t&&t[o]===e)return o;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(e){var t=m&&"[object String]"==d(this)?this.split(""):R(this),n=t.length>>>0;if(!n)return-1;var o=n-1;for(arguments.length>1&&(o=Math.min(o,i(arguments[1]))),o=o>=0?o:n-Math.abs(o);o>=0;o--)if(o in t&&e===t[o])return o;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(e){return e.__proto__||(e.constructor?e.constructor.prototype:h)}),!Object.getOwnPropertyDescriptor){var v="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(e,t){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError(v+e);if(g(e,t)){var i,n,o;if(i={enumerable:!0,configurable:!0},a){var l=e.__proto__;e.__proto__=h;var n=r(e,t),o=s(e,t);if(e.__proto__=l,n||o)return n&&(i.get=n),o&&(i.set=o),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 w=t({}),C="undefined"==typeof document||t(document.createElement("div"));if(!w||!C)var E=Object.defineProperty}if(!Object.defineProperty||E){var F="Property description must be an object: ",y="Object.defineProperty called on non-object: ",b="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(e,t,i){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError(y+e);if("object"!=typeof i&&"function"!=typeof i||null===i)throw new TypeError(F+i);if(E)try{return E.call(Object,e,t,i)}catch(l){}if(g(i,"value"))if(a&&(r(e,t)||s(e,t))){var c=e.__proto__;e.__proto__=h,delete e[t],e[t]=i.value,e.__proto__=c}else e[t]=i.value;else{if(!a)throw new TypeError(b);g(i,"get")&&n(e,t,i.get),g(i,"set")&&o(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(x){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(){return!1}),Object.isFrozen||(Object.isFrozen=function(){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 S=!0,$=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],B=$.length;for(var D in{toString:null})S=!1;Object.keys=function T(e){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.keys called on a non-object");var T=[];for(var t in e)g(e,t)&&T.push(t);if(S)for(var i=0,n=B;n>i;i++){var o=$[i];g(e,o)&&T.push(o)}return T}}Date.now||(Date.now=function(){return(new Date).getTime()});var k=" \n \f\r   ᠎              \u2028\u2029";if(!String.prototype.trim||k.trim()){k="["+k+"]";var L=new RegExp("^"+k+k+"*"),_=new RegExp(k+k+"*$");String.prototype.trim=function(){return String(this).replace(L,"").replace(_,"")}}var R=function(e){if(null==e)throw new TypeError("can't convert "+e+" to object");return Object(e)}}),ace.define("ace/lib/fixoldbrowsers",["require","exports","module","ace/lib/regexp","ace/lib/es5-shim"],function(e){"use strict";e("./regexp"),e("./es5-shim")}),ace.define("ace/lib/dom",["require","exports","module"],function(e,t){"use strict";if("undefined"!=typeof document){var i="http://www.w3.org/1999/xhtml";t.getDocumentHead=function(e){return e||(e=document),e.head||e.getElementsByTagName("head")[0]||e.documentElement},t.createElement=function(e,t){return document.createElementNS?document.createElementNS(t||i,e):document.createElement(e)},t.hasCssClass=function(e,t){var i=(e.className||"").split(/\s+/g);return-1!==i.indexOf(t)},t.addCssClass=function(e,i){t.hasCssClass(e,i)||(e.className+=" "+i)},t.removeCssClass=function(e,t){for(var i=e.className.split(/\s+/g);;){var n=i.indexOf(t);if(-1==n)break;i.splice(n,1)}e.className=i.join(" ")},t.toggleCssClass=function(e,t){for(var i=e.className.split(/\s+/g),n=!0;;){var o=i.indexOf(t);if(-1==o)break;n=!1,i.splice(o,1)}return n&&i.push(t),e.className=i.join(" "),n},t.setCssClass=function(e,i,n){n?t.addCssClass(e,i):t.removeCssClass(e,i)},t.hasCssString=function(e,t){var i,n=0;if(t=t||document,t.createStyleSheet&&(i=t.styleSheets)){for(;n=0?(n.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]:(n.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((n.match(/rv\:(\d+)/)||[])[1],10)<4,t.isOpera=window.opera&&"[object Opera]"==Object.prototype.toString.call(window.opera),t.isWebKit=parseFloat(n.split("WebKit/")[1])||void 0,t.isChrome=parseFloat(n.split(" Chrome/")[1])||void 0,t.isAIR=n.indexOf("AdobeAIR")>=0,t.isIPad=n.indexOf("iPad")>=0,t.isTouchPad=n.indexOf("TouchPad")>=0,t.isChromeOS=n.indexOf(" CrOS ")>=0}}),ace.define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t){"use strict";function i(e,t,i){var l=r(t);if(!o.isMac&&s){if((s[91]||s[92])&&(l|=8),s.altGr){if(3==(3&l))return;s.altGr=0}if(18===i||17===i){var c="location"in t?t.location:t.keyLocation;if(17===i&&1===c)a=t.timeStamp;else if(18===i&&3===l&&2===c){var h=-a;a=t.timeStamp,h+=a,3>h&&(s.altGr=!0)}}}if(i in n.MODIFIER_KEYS){switch(n.MODIFIER_KEYS[i]){case"Alt":l=2;break;case"Shift":l=4;break;case"Ctrl":l=1;break;default:l=8}i=-1}if(8&l&&(91===i||93===i)&&(i=-1),!l&&13===i){var c="location"in t?t.location:t.keyLocation;if(3===c&&(e(t,l,-i),t.defaultPrevented))return}if(o.isChromeOS&&8&l){if(e(t,l,i),t.defaultPrevented)return;l&=-9}return l||i in n.FUNCTION_KEYS||i in n.PRINTABLE_KEYS?e(t,l,i):!1}var n=e("./keys"),o=e("./useragent");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){return e.removeEventListener?e.removeEventListener(t,i,!1):void(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||o.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 o(e){i&&i(e),n&&n(e),t.removeListener(document,"mousemove",i,!0),t.removeListener(document,"mouseup",o,!0),t.removeListener(document,"dragstart",o,!0)}return t.addListener(document,"mousemove",i,!0),t.addListener(document,"mouseup",o,!0),t.addListener(document,"dragstart",o,!0),o},t.addMouseWheelListener=function(e,i){"onmousewheel"in e?t.addListener(e,"mousewheel",function(e){var t=8;void 0!==e.wheelDeltaX?(e.wheelX=-e.wheelDeltaX/t,e.wheelY=-e.wheelDeltaY/t):(e.wheelX=0,e.wheelY=-e.wheelDelta/t),i(e)}):"onwheel"in e?t.addListener(e,"wheel",function(e){var t=.35;switch(e.deltaMode){case e.DOM_DELTA_PIXEL:e.wheelX=e.deltaX*t||0,e.wheelY=e.deltaY*t||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){var s,a,l,c=0,h={2:"dblclick",3:"tripleclick",4:"quadclick"};t.addListener(e,"mousedown",function(e){if(0!==t.getButton(e)?c=0:e.detail>1?(c++,c>4&&(c=1)):c=1,o.isIE){var u=Math.abs(e.clientX-s)>5||Math.abs(e.clientY-a)>5;(!l||u)&&(c=1),l&&clearTimeout(l),l=setTimeout(function(){l=null},i[c-1]||600),1==c&&(s=e.clientX,a=e.clientY)}if(e._clicks=c,n[r]("mousedown",e),c>4)c=0;else if(c>1)return n[r](h[c],e)}),o.isOldIE&&t.addListener(e,"dblclick",function(e){c=2,l&&clearTimeout(l),l=setTimeout(function(){l=null},i[c-1]||600),n[r]("mousedown",e),n[r](h[c],e)})};var r=!o.isMac||!o.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)};t.getModifierString=function(e){return n.KEY_MODS[r(e)]};var s=null,a=0;if(t.addCommandKeyListener=function(e,n){var r=t.addListener;if(o.isOldGecko||o.isOpera&&!("KeyboardEvent"in window)){var a=null;r(e,"keydown",function(e){a=e.keyCode}),r(e,"keypress",function(e){return i(n,e,a)})}else{var l=null;r(e,"keydown",function(e){s[e.keyCode]=!0;var t=i(n,e,e.keyCode);return l=e.defaultPrevented,t}),r(e,"keypress",function(e){l&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),l=null)}),r(e,"keyup",function(e){s[e.keyCode]=null}),s||(s=Object.create(null),r(window,"focus",function(){s=Object.create(null)}))}},window.postMessage&&!o.isOldIE){var l=1;t.nextTick=function(e,i){i=i||window;var n="zero-timeout-message-"+l;t.addListener(i,"message",function o(r){r.data==n&&(t.stopPropagation(r),t.removeListener(i,"message",o),e())}),i.postMessage(n,"*")}}t.nextFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame,t.nextFrame=t.nextFrame?t.nextFrame.bind(window):function(e){setTimeout(e,17)}}),ace.define("ace/lib/lang",["require","exports","module"],function(e,t){"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};var i=/^\s\s*/,n=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(i,"")},t.stringTrimRight=function(e){return e.replace(n,"")},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;n>i;i++)t[i]=e[i]&&"object"==typeof e[i]?this.copyObject(e[i]):e[i];return t},t.deepCopy=function(e){if("object"!=typeof e||!e)return e;var i=e.constructor;if(i===RegExp)return e;var n=i();for(var o in e)n[o]="object"==typeof e[o]?t.deepCopy(e[o]):e[o];return n},t.arrayToMap=function(e){for(var t={},i=0;ii?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}var r=(e("../lib/dom"),e("../lib/event"),e("../lib/useragent"),0);(function(){this.onMouseDown=function(e){var t=e.inSelection(),i=e.getDocumentPosition();this.mousedownEvent=e;var n=this.editor,o=e.getButton();if(0!==o){var r=n.getSelectionRange(),s=r.isEmpty();return s&&n.selection.moveToPosition(i),void n.textInput.onContextMenu(e.domEvent)}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;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")},this.select=function(){var e,t=this.editor,i=t.renderer.screenToTextCoordinates(this.x,this.y);if(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.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(this.$clickSelection){var s=this.$clickSelection.comparePoint(r.start),a=this.$clickSelection.comparePoint(r.end);if(-1==s&&0>=a)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.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=n(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),t=Date.now();(e>r||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,o=n.getBracketRange(t);o?(o.isEmpty()&&(o.start.column--,o.end.column++),this.setState("select")):(o=i.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=o,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(){var e=this.editor;e.selectAll(),this.$clickSelection=e.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=e.domEvent.timeStamp,i=t-(this.$lastScrollTime||0),n=this.editor,o=n.renderer.isScrollableBy(e.wheelX*e.speed,e.wheelY*e.speed);return o||200>i?(this.$lastScrollTime=t,n.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()):void 0}}}).call(i.prototype),t.DefaultHandlers=i}),ace.define("ace/tooltip",["require","exports","module","ace/lib/oop","ace/lib/dom"],function(e,t){"use strict";function i(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}var n=(e("./lib/oop"),e("./lib/dom"));(function(){this.$init=function(){return this.$element=n.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){n.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){n.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}}).call(i.prototype),t.Tooltip=i}),ace.define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event","ace/tooltip"],function(e,t){"use strict";function i(e){function t(){var t=u.getDocumentPosition().row,n=l.$annotations[t];if(!n)return i();var o=a.session.getLength();if(t==o){var s=a.renderer.pixelToScreenCoordinates(0,u.y).row,h=u.$pos; -if(s>a.session.documentToScreenRow(h.row,h.column))return i()}if(d!=n)if(d=n.text.join("
"),c.setHtml(d),c.show(),a.on("mousewheel",i),e.$tooltipFollowsMouse)r(u);else{var g=l.$cells[a.session.documentToScreenRow(t,0)].element,f=g.getBoundingClientRect(),p=c.getElement().style;p.left=f.right+"px",p.top=f.bottom+"px"}}function i(){h&&(h=clearTimeout(h)),d&&(c.hide(),d=null,a.removeEventListener("mousewheel",i))}function r(e){c.setPosition(e.x,e.y)}var a=e.editor,l=a.renderer.$gutterLayer,c=new n(a.container);e.editor.setDefaultHandler("guttermousedown",function(t){if(a.isFocused()&&0==t.getButton()){var i=l.getRegion(t);if("foldWidgets"!=i){var n=t.getDocumentPosition().row,o=a.session.selection;if(t.getShiftKey())o.selectTo(n,0);else{if(2==t.domEvent.detail)return a.selectAll(),t.preventDefault();e.$clickSelection=a.selection.getLineRange(n)}return e.setState("selectByLines"),e.captureMouse(t),t.preventDefault()}}});var h,u,d;e.editor.setDefaultHandler("guttermousemove",function(n){var s=n.domEvent.target||n.domEvent.srcElement;return o.hasCssClass(s,"ace_fold-widget")?i():(d&&e.$tooltipFollowsMouse&&r(n),u=n,void(h||(h=setTimeout(function(){h=null,u&&!e.isMousePressed?t():i()},50))))}),s.addListener(a.renderer.$gutter,"mouseout",function(){u=null,d&&!h&&(h=setTimeout(function(){h=null,i()},50))}),a.on("changeSession",i)}function n(e){a.call(this,e)}var o=e("../lib/dom"),r=e("../lib/oop"),s=e("../lib/event"),a=e("../tooltip").Tooltip;r.inherits(n,a),function(){this.setPosition=function(e,t){var i=window.innerWidth||document.documentElement.clientWidth,n=window.innerHeight||document.documentElement.clientHeight,o=this.getWidth(),r=this.getHeight();e+=15,t+=15,e+o>i&&(e-=e+o-i),t+r>n&&(t-=20+r),a.prototype.setPosition.call(this,e,t)}}.call(n.prototype),t.GutterHandler=i}),ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(e,t){"use strict";var i=e("../lib/event"),n=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(){i.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){i.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 i.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=n.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){"use strict";function i(e){function t(e,t){var i=Date.now(),o=!t||e.row!=t.row,r=!t||e.column!=t.column;if(!B||o||r)m.$blockScrolling+=1,m.moveCursorToPosition(e),m.$blockScrolling-=1,B=i,D={x:C,y:E};else{var s=n(D.x,D.y,C,E);s>c?B=null:i-B>=l&&(m.renderer.scrollCursorIntoView(),B=null)}}function i(e,t){var i=Date.now(),n=m.renderer.layerConfig.lineHeight,o=m.renderer.layerConfig.characterWidth,r=m.renderer.scroller.getBoundingClientRect(),s={x:{left:C-r.left,right:r.right-C},y:{top:E-r.top,bottom:r.bottom-E}},l=Math.min(s.x.left,s.x.right),c=Math.min(s.y.top,s.y.bottom),h={row:e.row,column:e.column};2>=l/o&&(h.column+=s.x.left=c/n&&(h.row+=s.y.top=a&&m.renderer.scrollCursorIntoView(h):$=i:$=null}function h(){var e=b;b=m.renderer.screenToTextCoordinates(C,E),t(b,e),i(b,e)}function u(){y=m.selection.toOrientedRange(),w=m.session.addMarker(y,"ace_selection",m.getSelectionStyle()),m.clearSelection(),m.isFocused()&&m.renderer.$cursorLayer.setBlinking(!1),clearInterval(F),h(),F=setInterval(h,20),L=0,r.addListener(document,"mousemove",g)}function d(){clearInterval(F),m.session.removeMarker(w),w=null,m.$blockScrolling+=1,m.selection.fromOrientedRange(y),m.$blockScrolling-=1,m.isFocused()&&!S&&m.renderer.$cursorLayer.setBlinking(!m.getReadOnly()),y=null,b=null,L=0,$=null,B=null,r.removeListener(document,"mousemove",g)}function g(){null==_&&(_=setTimeout(function(){null!=_&&w&&d()},20))}function f(e){var t=e.types;return!t||Array.prototype.some.call(t,function(e){return"text/plain"==e||"Text"==e})}function p(e){var t=["copy","copymove","all","uninitialized"],i=["move","copymove","linkmove","all","uninitialized"],n=s.isMac?e.altKey:e.ctrlKey,o="uninitialized";try{o=e.dataTransfer.effectAllowed.toLowerCase()}catch(e){}var r="none";return n&&t.indexOf(o)>=0?r="copy":i.indexOf(o)>=0?r="move":t.indexOf(o)>=0&&(r="copy"),r}var m=e.editor,v=o.createElement("img");v.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",s.isOpera&&(v.style.cssText="width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;");var A=["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"];A.forEach(function(t){e[t]=this[t]},this),m.addEventListener("mousedown",this.onMouseDown.bind(e));var w,C,E,F,y,b,x,S,$,B,D,k=m.container,L=0;this.onDragStart=function(e){if(this.cancelDrag||!k.draggable){var t=this;return setTimeout(function(){t.startSelect(),t.captureMouse(e)},0),e.preventDefault()}y=m.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=m.getReadOnly()?"copy":"copyMove",s.isOpera&&(m.container.appendChild(v),v.scrollTop=0),i.setDragImage&&i.setDragImage(v,0,0),s.isOpera&&m.container.removeChild(v),i.clearData(),i.setData("Text",m.session.getTextRange()),S=!0,this.setState("drag")},this.onDragEnd=function(e){if(k.draggable=!1,S=!1,this.setState(null),!m.getReadOnly()){var t=e.dataTransfer.dropEffect;x||"move"!=t||m.session.remove(m.getSelectionRange()),m.renderer.$cursorLayer.setBlinking(!0)}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){return!m.getReadOnly()&&f(e.dataTransfer)?(C=e.clientX,E=e.clientY,w||u(),L++,e.dataTransfer.dropEffect=x=p(e),r.preventDefault(e)):void 0},this.onDragOver=function(e){return!m.getReadOnly()&&f(e.dataTransfer)?(C=e.clientX,E=e.clientY,w||(u(),L++),null!==_&&(_=null),e.dataTransfer.dropEffect=x=p(e),r.preventDefault(e)):void 0},this.onDragLeave=function(e){return L--,0>=L&&w?(d(),x=null,r.preventDefault(e)):void 0},this.onDrop=function(e){if(b){var t=e.dataTransfer;if(S)switch(x){case"move":y=y.contains(b.row,b.column)?{start:b,end:b}:m.moveText(y,b);break;case"copy":y=m.moveText(y,b,!0)}else{var i=t.getData("Text");y={start:b,end:m.session.insert(b,i)},m.focus(),x=null}return d(),r.preventDefault(e)}},r.addListener(k,"dragstart",this.onDragStart.bind(e)),r.addListener(k,"dragend",this.onDragEnd.bind(e)),r.addListener(k,"dragenter",this.onDragEnter.bind(e)),r.addListener(k,"dragover",this.onDragOver.bind(e)),r.addListener(k,"dragleave",this.onDragLeave.bind(e)),r.addListener(k,"drop",this.onDrop.bind(e));var _=null}function n(e,t,i,n){return Math.sqrt(Math.pow(i-e,2)+Math.pow(n-t,2))}var o=e("../lib/dom"),r=e("../lib/event"),s=e("../lib/useragent"),a=200,l=200,c=5;(function(){this.dragWait=function(){var e=Date.now()-this.mousedownEvent.time;e>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){var e=this.editor.container;e.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(){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,t=e.container;t.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var i=s.isWin?"default":"move";e.renderer.setCursorStyle(i),this.setState("dragReady")},this.onMouseDrag=function(){var e=this.editor.container;if(s.isIE&&"dragReady"==this.state){var t=n(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);t>3&&e.dragDrop()}if("dragWait"===this.state){var t=n(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);t>0&&(e.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(),o=e.domEvent.detail||1;if(1===o&&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(s.isWebKit){this.cancelDrag=!0;var a=t.container;a.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}}).call(i.prototype),t.DragdropHandler=i}),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(e,t){"use strict";var i=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 n=i.getDocumentHead(),o=document.createElement("script");o.src=e,n.appendChild(o),o.onload=o.onreadystatechange=function(e,i){(i||!o.readyState||"loaded"==o.readyState||"complete"==o.readyState)&&(o=o.onload=o.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){"use strict";var i={},n=function(){this.propagationStopped=!0},o=function(){this.defaultPrevented=!0};i._emit=i._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var i=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(i.length||r){"object"==typeof t&&t||(t={}),t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=n),t.preventDefault||(t.preventDefault=o),i=i.slice();for(var s=0;sv;v++){var w=m[v];0===w.name.indexOf("data-ace-")&&(s[r(w.name.replace(/^data-ace-/,""))]=w.value)}var C=p.match(/^(.*)\/ace(\-\w+)?\.js(\?|$)/);C&&(a=C[1])}}a&&(s.base=s.base||a,s.packaged=!0),s.basePath=s.base,s.workerPath=s.workerPath||s.base,s.modePath=s.modePath||s.base,s.themePath=s.themePath||s.base,delete s.base;for(var E in s)"undefined"!=typeof s[E]&&t.set(E,s[E])}function r(e){return e.replace(/-(.)/g,function(e,t){return t.toUpperCase()})}var s=e("./lib/lang"),a=e("./lib/oop"),l=e("./lib/net"),c=e("./lib/event_emitter").EventEmitter,h=function(){return this}(),u={packaged:!1,workerPath:null,modePath:null,themePath:null,basePath:"",suffix:".js",$moduleUrls:{}};t.get=function(e){if(!u.hasOwnProperty(e))throw new Error("Unknown config key: "+e);return u[e]},t.set=function(e,t){if(!u.hasOwnProperty(e))throw new Error("Unknown config key: "+e);u[e]=t},t.all=function(){return s.copyObject(u)},a.implement(t,c),t.moduleUrl=function(e,t){if(u.$moduleUrls[e])return u.$moduleUrls[e];var i=e.split("/");t=t||i[i.length-2]||"";var n="snippets"==t?"/":"-",o=i[i.length-1];if("worker"==t&&"-"==n){var r=new RegExp("^"+t+"[\\-_]|[\\-_]"+t+"$","g");o=o.replace(r,"")}(!o||o==t)&&i.length>1&&(o=i[i.length-2]);var s=u[t+"Path"];return null==s?s=u.basePath:"/"==n&&(t=n=""),s&&"/"!=s.slice(-1)&&(s+="/"),s+t+n+o+this.get("suffix")},t.setModuleUrl=function(e,t){return u.$moduleUrls[e]=t},t.$loading={},t.loadModule=function(i,n){var o,r;Array.isArray(i)&&(r=i[0],i=i[1]);try{o=e(i)}catch(s){}if(o&&!t.$loading[i])return n&&n(o);if(t.$loading[i]||(t.$loading[i]=[]),t.$loading[i].push(n),!(t.$loading[i].length>1)){var a=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)})})};return t.get("packaged")?void l.loadScript(t.moduleUrl(i,r),a):a()}},o(!0),t.init=o;var d={setOptions:function(e){Object.keys(e).forEach(function(t){this.setOption(t,e[t])},this)},getOptions:function(e){var t={};return e?Array.isArray(e)||(t=e,e=Object.keys(t)):e=Object.keys(this.$options),e.forEach(function(e){t[e]=this.getOption(e)},this),t},setOption:function(e,t){if(this["$"+e]!==t){var i=this.$options[e];if(!i)return void("undefined"!=typeof console&&console.warn&&console.warn('misspelled option "'+e+'"'));if(i.forwardTo)return this[i.forwardTo]&&this[i.forwardTo].setOption(e,t);i.handlesSet||(this["$"+e]=t),i&&i.set&&i.set.call(this,t)}},getOption:function(e){var t=this.$options[e];return t?t.forwardTo?this[t.forwardTo]&&this[t.forwardTo].getOption(e):t&&t.get?t.get.call(this):this["$"+e]:void("undefined"!=typeof console&&console.warn&&console.warn('misspelled option "'+e+'"'))}},g={};t.defineOptions=function(e,t,i){return e.$options||(g[t]=e.$options={}),Object.keys(i).forEach(function(t){var n=i[t];"string"==typeof n&&(n={forwardTo:n}),n.name||(n.name=t),e.$options[n.name]=n,"initialValue"in n&&(e["$"+n.name]=n.initialValue)}),a.implement(e,d),this},t.resetOptions=function(e){Object.keys(e.$options).forEach(function(t){var i=e.$options[t];"value"in i&&e.setOption(t,i.value)})},t.setDefaultValue=function(e,i,n){var o=g[e]||(g[e]={});o[i]&&(o.forwardTo?t.setDefaultValue(o.forwardTo,i,n):o[i].value=n)},t.setDefaultValues=function(e,i){Object.keys(i).forEach(function(n){t.setDefaultValue(e,n,i[n])})}}),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){"use strict";var i=e("../lib/event"),n=e("../lib/useragent"),o=e("./default_handlers").DefaultHandlers,r=e("./default_gutter_handler").GutterHandler,s=e("./mouse_event").MouseEvent,a=e("./dragdrop_handler").DragdropHandler,l=e("../config"),c=function(e){var t=this;this.editor=e,new o(this),new r(this),new a(this);var s=function(t){!e.isFocused()&&e.textInput&&e.textInput.moveToMouse(t),e.focus()},l=e.renderer.getMouseEventTarget();i.addListener(l,"click",this.onMouseEvent.bind(this,"click")),i.addListener(l,"mousemove",this.onMouseMove.bind(this,"mousemove")),i.addMultiMouseDownListener(l,[400,300,250],this,"onMouseEvent"),e.renderer.scrollBarV&&(i.addMultiMouseDownListener(e.renderer.scrollBarV.inner,[400,300,250],this,"onMouseEvent"),i.addMultiMouseDownListener(e.renderer.scrollBarH.inner,[400,300,250],this,"onMouseEvent"),n.isIE&&(i.addListener(e.renderer.scrollBarV.element,"mousedown",s),i.addListener(e.renderer.scrollBarH.element,"mousemove",s))),i.addMouseWheelListener(e.container,this.onMouseWheel.bind(this,"mousewheel"));var c=e.renderer.$gutter;i.addListener(c,"mousedown",this.onMouseEvent.bind(this,"guttermousedown")),i.addListener(c,"click",this.onMouseEvent.bind(this,"gutterclick")),i.addListener(c,"dblclick",this.onMouseEvent.bind(this,"gutterdblclick")),i.addListener(c,"mousemove",this.onMouseEvent.bind(this,"guttermousemove")),i.addListener(l,"mousedown",s),i.addListener(c,"mousedown",function(t){return e.focus(),i.preventDefault(t)}),e.on("mousemove",function(i){if(!t.state&&!t.$dragDelay&&t.$dragEnabled){var n=e.renderer.screenToTextCoordinates(i.x,i.y),o=e.session.selection.getRange(),r=e.renderer;r.setCursorStyle(!o.isEmpty()&&o.insideStart(n.row,n.column)?"default":"")}})};(function(){this.onMouseEvent=function(e,t){this.editor._emit(e,new s(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 s(t,this.editor))},this.onMouseWheel=function(e,t){var i=new s(t,this.editor);i.speed=2*this.$scrollSpeed,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 o=this.editor.renderer;o.$keepTextAreaAtCursor&&(o.$keepTextAreaAtCursor=null);var r=this,a=function(e){if(e){if(n.isWebKit&&!e.which&&r.releaseMouse)return r.releaseMouse();r.x=e.clientX,r.y=e.clientY,t&&t(e),r.mouseEvent=new s(e,r.editor),r.$mouseMoved=!0}},l=function(e){clearInterval(h),c(),r[r.state+"End"]&&r[r.state+"End"](e),r.state="",null==o.$keepTextAreaAtCursor&&(o.$keepTextAreaAtCursor=!0,o.$moveTextAreaToCursor()),r.isMousePressed=!1,r.$onCaptureMouseMove=r.releaseMouse=null,e&&r.onMouseEvent("mouseup",e)},c=function(){r[r.state]&&r[r.state](),r.$mouseMoved=!1};if(n.isOldIE&&"dblclick"==e.domEvent.type)return setTimeout(function(){l(e)});r.$onCaptureMouseMove=a,r.releaseMouse=i.capture(this.editor.container,a,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&&i.stopEvent(t.domEvent))}.bind(this);setTimeout(e,10),this.editor.on("nativecontextmenu",e)}}).call(c.prototype),l.defineOptions(c.prototype,"mouseHandler",{scrollSpeed:{initialValue:2},dragDelay:{initialValue:n.isMac?150:0},dragEnabled:{initialValue:!0},focusTimout:{initialValue:0},tooltipFollowsMouse:{initialValue:!0}}),t.MouseHandler=c}),ace.define("ace/mouse/fold_handler",["require","exports","module"],function(e,t){"use strict";function i(e){e.on("click",function(t){var i=t.getDocumentPosition(),n=e.session,o=n.getFoldAt(i.row,i.column,1);o&&(t.getAccelKey()?n.removeFold(o):n.expandFold(o),t.stop())}),e.on("gutterclick",function(t){var i=e.renderer.$gutterLayer.getRegion(t);if("foldWidgets"==i){var n=t.getDocumentPosition().row,o=e.session;o.foldWidgets&&o.foldWidgets[n]&&e.session.onFoldWidgetClick(n,t),e.isFocused()||e.focus(),t.stop()}}),e.on("gutterdblclick",function(t){var i=e.renderer.$gutterLayer.getRegion(t);if("foldWidgets"==i){var n=t.getDocumentPosition().row,o=e.session,r=o.getParentFoldRangeData(n,!0),s=r.range||r.firstRange;if(s){n=s.start.row;var a=o.getFoldAt(n,o.getLine(n).length,1);a?o.removeFold(a):(o.addFold("...",s),e.renderer.scrollCursorIntoView({row:s.start.row,column:0}))}t.stop()}})}t.FoldHandler=i}),ace.define("ace/keyboard/keybinding",["require","exports","module","ace/lib/keys","ace/lib/event"],function(e,t){"use strict";var i=e("../lib/keys"),n=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?!1:(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,o){for(var r,s=!1,a=this.$editor.commands,l=this.$handlers.length;l--&&(r=this.$handlers[l].handleKeyboard(this.$data,e,t,i,o),!(r&&r.command&&(s="null"==r.command?!0:a.exec(r.command,this.$editor,r.args,o),s&&o&&-1!=e&&1!=r.passEvent&&1!=r.command.passEvent&&n.stopEvent(o),s))););return s},this.onCommandKey=function(e,t,n){var o=i.keyCodeToString(n);this.$callKeyboardHandlers(t,o,n,e)},this.onTextInput=function(e){var t=this.$callKeyboardHandlers(-1,e);t||this.$editor.commands.exec("insertstring",this.$editor,e)}}).call(o.prototype),t.KeyBinding=o}),ace.define("ace/range",["require","exports","module"],function(e,t){"use strict";var i=function(e,t){return e.row-t.row||e.column-t.column},n=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)?!1:!0:!1},this.insideStart=function(e,t){return 0==this.compare(e,t)?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return 0==this.compare(e,t)?this.isStart(e,t)?!1:!0:!1},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 o={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()?r.fromPoints(t,t):this.isBackwards()?r.fromPoints(t,e):r.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("undefined"==typeof 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,o=this.session.getFoldLine(n);return o?(n=o.start.row,i=o.end.row):i=n,t===!0?new r(n,0,i,this.session.getLine(i).length):new r(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.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.session.isTabStop(t)&&this.doc.getLine(t.row).slice(t.column-i,t.column).split(" ").length-1==i?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,t=this.lead.row,i=this.lead.column,n=this.doc.getLine(t),o=n.substring(i);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var r=this.session.getFoldAt(t,i,1); -return r?void this.moveCursorTo(r.end.row,r.end.column):((e=this.session.nonTokenRe.exec(o))&&(i+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,o=n.substring(i)),i>=n.length?(this.moveCursorTo(t,n.length),this.moveCursorRight(),void(t=i?(this.moveCursorTo(t,0),this.moveCursorLeft(),void(t>0&&this.moveCursorWordLeft())):((r=this.session.tokenRe.exec(s))&&(i-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),void this.moveCursorTo(t,i))},this.$shortWordEndIndex=function(e){var t,i,n=0,o=/\s/,r=this.session.tokenRe;if(r.lastIndex=0,t=this.session.tokenRe.exec(e))n=this.session.tokenRe.lastIndex;else{for(;(i=e[n])&&o.test(i);)n++;if(1>n)for(r.lastIndex=0;(i=e[n])&&!r.test(i);)if(r.lastIndex=0,n++,o.test(i)){if(n>2){n--;break}for(;(i=e[n])&&o.test(i);)n++;if(n>2)break}}return r.lastIndex=0,n},this.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,i=this.doc.getLine(e),n=i.substring(t),o=this.session.getFoldAt(e,t,1);if(o)return this.moveCursorTo(o.end.row,o.end.column);if(t==i.length){var r=this.doc.getLength();do e++,n=this.doc.getLine(e);while(r>e&&/^\s*$/.test(n));/^\s+/.test(n)||(n=""),t=0}var s=this.$shortWordEndIndex(n);this.moveCursorTo(e,t+s)},this.moveCursorShortWordLeft=function(){var e,t=this.lead.row,i=this.lead.column;if(e=this.session.getFoldAt(t,i,-1))return this.moveCursorTo(e.start.row,e.start.column);var o=this.session.getLine(t).substring(0,i);if(0===i){do t--,o=this.doc.getLine(t);while(t>0&&/^\s*$/.test(o));i=o.length,/\s+$/.test(o)||(o="")}var r=n.stringReverse(o),s=this.$shortWordEndIndex(r);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=this.session.documentToScreenPosition(this.lead.row,this.lead.column);0===t&&(this.$desiredColumn?i.column=this.$desiredColumn:this.$desiredColumn=i.column);var n=this.session.screenToDocumentPosition(i.row+e,i.column);0!==e&&0===t&&n.row===this.lead.row&&n.column===this.lead.column&&this.session.lineWidgets&&this.session.lineWidgets[n.row]&&n.row++,this.moveCursorTo(n.row,n.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,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.call(null,this);var i=this.getCursor();return r.fromPoints(t,i)}catch(n){return r.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=r.fromPoints(e[t].start,e[t].end);e.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(s.prototype),t.Selection=s}),ace.define("ace/tokenizer",["require","exports","module"],function(e,t){"use strict";var i=2e3,n=function(e){this.states=e,this.regExps={},this.matchMappings={};for(var t in this.states){for(var i=this.states[t],n=[],o=0,r=this.matchMappings[t]={defaultToken:"text"},s="g",a=[],l=0;l1?this.$applyToken:c.token),u>1&&(/\\\d/.test(c.regex)?h=c.regex.replace(/\\([0-9]+)/g,function(e,t){return"\\"+(parseInt(t,10)+o+1)}):(u=1,h=this.removeCapturingGroups(c.regex)),c.splitRegex||"string"==typeof c.token||a.push(c)),r[o]=l,o+=u,n.push(h),c.onMatch||(c.onMatch=null)}}n.length||(r[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){i=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=[],o=0,r=i.length;r>o;o++)t[o]&&(n[n.length]={type:i[o],value:t[o]});return n},this.$arrayTokens=function(e){if(!e)return[];var t=this.splitRegex.exec(e);if(!t)return"text";for(var i=[],n=this.tokenArray,o=0,r=n.length;r>o;o++)t[o+1]&&(i[i.length]={type:n[o],value:t[o+1]});return i},this.removeCapturingGroups=function(e){var t=e.replace(/\[(?:\\.|[^\]])*?\]|\\.|\(\?[:=!]|(\()/g,function(e,t){return t?"(?:":e});return t},this.createSplitterRegexp=function(e,t){if(-1!=e.indexOf("(?=")){var i=0,n=!1,o={};e.replace(/(\\.)|(\((?:\?[=!])?)|(\))|([\[\]])/g,function(e,t,r,s,a,l){return n?n="]"!=a:a?n=!0:s?(i==o.stack&&(o.end=l+1,o.stack=-1),i--):r&&(i++,1!=r.length&&(o.stack=i,o.start=l)),e}),null!=o.end&&/^\)*$/.test(e.substr(o.end))&&(e=e.substring(0,o.start)+e.substr(o.end))}return new RegExp(e,(t||"").replace("g",""))},this.getLineTokens=function(e,t){if(t&&"string"!=typeof t){var n=t.slice(0);t=n[0],"#tmp"===t&&(n.shift(),t=n.shift())}else var n=[];var o=t||"start",r=this.states[o];r||(o="start",r=this.states[o]);var s=this.matchMappings[o],a=this.regExps[o];a.lastIndex=0;for(var l,c=[],h=0,u=0,d={type:null,value:""};l=a.exec(e);){var g=s.defaultToken,f=null,p=l[0],m=a.lastIndex;if(m-p.length>h){var v=e.substring(h,m-p.length);d.type==g?d.value+=v:(d.type&&c.push(d),d={type:g,value:v})}for(var A=0;Ai){for(u>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});h1&&n[0]!==o&&n.unshift("#tmp",o),{tokens:c,state:n.length?n:o}},this.reportError=function(e,t){var i=new Error(e);i.data=t,"object"==typeof console&&console.error&&console.error(i),setTimeout(function(){throw i})}}).call(n.prototype),t.Tokenizer=n}),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],function(e,t){"use strict";var i=e("../lib/lang"),n=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],o=0;oo)throw new Error("Unsupported browser, IE9 or newer required. Please install the newest version of your browser.");arguments.length&&this._create(e,t,i)}var o=i(1),r=i(2),s=i(3);n.modes={},n.prototype._create=function(e,t,i){this.container=e,this.options=t||{},this.json=i||{};var n=this.options.mode||"tree";this.setMode(n)},n.prototype._delete=function(){},n.prototype.set=function(e){this.json=e},n.prototype.get=function(){return this.json},n.prototype.setText=function(e){this.json=s.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,o=this.container,r=s.extend({},this.options);r.mode=e;var a=n.modes[e];if(!a)throw new Error('Unknown mode "'+r.mode+'"');try{var l="text"==a.data;if(i=this.getName(),t=this[l?"getText":"get"](),this._delete(),s.clear(this),s.extend(this,a.mixin),this.create(o,r),this.setName(i),this[l?"setText":"set"](t),"function"==typeof a.load)try{a.load.call(this)}catch(c){}}catch(c){this._onError(c)}},n.prototype._onError=function(e){if("function"==typeof this.onError&&(s.log("WARNING: JSONEditor.onError is deprecated. Use options.error instead."),this.onError(e)),!this.options||"function"!=typeof this.options.error)throw e;this.options.error(e)},n.registerMode=function(e){var t,i;if(s.isArray(e))for(t=0;te&&i.scrollTop>0?(n+s-e)/3:e>r-s&&o+i.scrollTop3?(i.scrollTop+=o/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)},c._createFrame=function(){function e(e){t._onEvent(e)}this.frame=document.createElement("div"),this.frame.className="jsoneditor",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,l.addEventListener(this.frame,"focus",e,!0),l.addEventListener(this.frame,"blur",e,!0),this.frame.onfocusin=e,this.frame.onfocusout=e,this.menu=document.createElement("div"),this.menu.className="menu",this.frame.appendChild(this.menu);var i=document.createElement("button");i.className="expand-all",i.title="Expand all fields",i.onclick=function(){t.expandAll()},this.menu.appendChild(i);var n=document.createElement("button");if(n.title="Collapse all fields",n.className="collapse-all",n.onclick=function(){t.collapseAll()},this.menu.appendChild(n),this.history){var o=document.createElement("button");o.className="undo separator",o.title="Undo last action (Ctrl+Z)",o.onclick=function(){t._onUndo()},this.menu.appendChild(o),this.dom.undo=o;var s=document.createElement("button");s.className="redo",s.title="Redo (Ctrl+Shift+Z)",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 c=a.create(this,this.options.modes,this.options.mode);this.menu.appendChild(c),this.dom.modeBox=c}this.options.search&&(this.searchBox=new r(this,this.menu))},c._onUndo=function(){this.history&&(this.history.undo(),this.options.change&&this.options.change())},c._onRedo=function(){this.history&&(this.history.redo(),this.options.change&&this.options.change())},c._onEvent=function(e){var t=e.target;"keydown"==e.type&&this._onKeyDown(e),"focus"==e.type&&(u=t);var i=s.getNodeFromTarget(t);i&&i.onEvent(e)},c._onKeyDown=function(e){var t=e.which||e.keyCode,i=e.ctrlKey,n=e.shiftKey,o=!1;if(9==t&&setTimeout(function(){l.selectContentEditable(u)},0),this.searchBox)if(i&&70==t)this.searchBox.dom.search.focus(),this.searchBox.dom.search.select(),o=!0;else if(114==t||i&&71==t){var r=!0;n?this.searchBox.previous(r):this.searchBox.next(r),o=!0}this.history&&(i&&!n&&90==t?(this._onUndo(),o=!0):i&&n&&90==t&&(this._onRedo(),o=!0)),o&&(e.preventDefault(),e.stopPropagation())},c._createTable=function(){var e=document.createElement("div");e.className="outer",this.contentOuter=e,this.content=document.createElement("div"),this.content.className="tree",e.appendChild(this.content),this.table=document.createElement("table"),this.table.className="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)},e.exports=[{mode:"tree",mixin:c,data:"json"},{mode:"view",mixin:c,data:"json"},{mode:"form",mixin:c,data:"json"}]},function(e,t,i){var n=i(10);i(11),i(12),i(9);var o=i(8),r=i(3),s={};s.create=function(e,t){t=t||{},this.options=t,this.indentation=t.indentation?Number(t.indentation):2,this.mode="code"==t.mode?"code":"text","code"==this.mode&&"undefined"==typeof n&&(this.mode="text",r.log("WARNING: Cannot load code editor, Ace library not loaded. Falling back to plain text editor"));var i=this;this.container=e,this.dom={},this.editor=void 0,this.textarea=void 0,this.width=e.clientWidth,this.height=e.clientHeight,this.frame=document.createElement("div"),this.frame.className="jsoneditor",this.frame.onclick=function(e){e.preventDefault()},this.frame.onkeydown=function(e){i._onKeyDown(e)},this.menu=document.createElement("div"),this.menu.className="menu",this.frame.appendChild(this.menu);var s=document.createElement("button");s.className="format",s.title="Format JSON data, with proper indentation and line feeds (Ctrl+\\)",this.menu.appendChild(s),s.onclick=function(){try{i.format()}catch(e){i._onError(e)}};var a=document.createElement("button");if(a.className="compact",a.title="Compact JSON data, remove all whitespaces (Ctrl+Shift+\\)",this.menu.appendChild(a),a.onclick=function(){try{i.compact()}catch(e){i._onError(e)}},this.options&&this.options.modes&&this.options.modes.length){var l=o.create(this,this.options.modes,this.options.mode);this.menu.appendChild(l),this.dom.modeBox=l}if(this.content=document.createElement("div"),this.content.className="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 c=n.edit(this.editorDom);c.setTheme("ace/theme/jsoneditor"),c.setShowPrintMargin(!1),c.setFontSize(13),c.getSession().setMode("ace/mode/json"),c.getSession().setTabSize(this.indentation),c.getSession().setUseSoftTabs(!0),c.getSession().setUseWrapMode(!0),this.editor=c;var h=document.createElement("a");h.appendChild(document.createTextNode("powered by ace")),h.href="http://ace.ajax.org",h.target="_blank",h.className="poweredBy",h.onclick=function(){window.open(h.href,h.target)},this.menu.appendChild(h),t.change&&c.on("change",function(){t.change()})}else{var u=document.createElement("textarea");u.className="text",u.spellcheck=!1,this.content.appendChild(u),this.textarea=u,t.change&&(null===this.textarea.oninput?this.textarea.oninput=function(){t.change()}:this.textarea.onchange=function(){t.change()})}},s._onKeyDown=function(e){var t=e.which||e.keyCode,i=!1;220==t&&e.ctrlKey&&(e.shiftKey?this.compact():this.format(),i=!0),i&&(e.preventDefault(),e.stopPropagation())},s._delete=function(){this.frame&&this.container&&this.frame.parentNode==this.container&&this.container.removeChild(this.frame)},s._onError=function(e){if("function"==typeof this.onError&&(r.log("WARNING: JSONEditor.onError is deprecated. Use options.error instead."),this.onError(e)),!this.options||"function"!=typeof this.options.error)throw e;this.options.error(e)},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.focus=function(){this.textarea&&this.textarea.focus(),this.editor&&this.editor.focus()},s.resize=function(){if(this.editor){var e=!1;this.editor.resize(e)}},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(i){t=r.sanitize(t),this.setText(t),e=r.parse(t)}return e},s.getText=function(){return this.textarea?this.textarea.value:this.editor?this.editor.getValue():""},s.setText=function(e){this.textarea&&(this.textarea.value=e),this.editor&&this.editor.setValue(e,-1)},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=i(15);t.parse=function(e){try{return JSON.parse(e)}catch(i){throw t.validate(e),i}},t.sanitize=function(e){for(var t=[],i=!1,n=0;nn;n++){var r=i[n];r.style&&r.removeAttribute("style");var s=r.attributes;if(s)for(var a=s.length-1;a>=0;a--){var l=s[a];1==l.specified&&r.removeAttribute(l.name)}t.stripFormatting(r)}},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){var i=window.getSelection();if(i){var n=document.createRange();n.setStart(e.container.firstChild,e.startOffset),n.setEnd(e.container.firstChild,e.endOffset),t.setSelection(n)}}},t.getInnerText=function(e,i){var n=void 0==i;if(n&&(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 o=e.childNodes,r="",s=0,a=o.length;a>s;s++){var l=o[s];if("DIV"==l.nodeName||"P"==l.nodeName){var c=o[s-1],h=c?c.nodeName:void 0;h&&"DIV"!=h&&"P"!=h&&"BR"!=h&&(r+="\n",i.flush()),r+=t.getInnerText(l,i),i.set("\n")}else"BR"==l.nodeName?(r+=i.flush(),i.set("\n")):r+=t.getInnerText(l,i)}return r}return"P"==e.nodeName&&-1!=t.getInternetExplorerVersion()?i.flush():""},t.getInternetExplorerVersion=function(){if(-1==r){var e=-1;if("Microsoft Internet Explorer"==navigator.appName){var t=navigator.userAgent,i=new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})");null!=i.exec(t)&&(e=parseFloat(RegExp.$1))}r=e}return r},t.isFirefox=function(){return-1!=navigator.userAgent.indexOf("Firefox")};var r=-1;t.addEventListener=function(e,i,n,o){if(e.addEventListener)return void 0===o&&(o=!1),"mousewheel"===i&&t.isFirefox()&&(i="DOMMouseScroll"),e.addEventListener(i,n,o),n;if(e.attachEvent){var r=function(){return n.call(e,window.event)};return e.attachEvent("on"+i,r),r}},t.removeEventListener=function(e,i,n,o){e.removeEventListener?(void 0===o&&(o=!1),"mousewheel"===i&&t.isFirefox()&&(i="DOMMouseScroll"),e.removeEventListener(i,n,o)):e.detachEvent&&e.detachEvent("on"+i,n)}},function(e){function t(){this.locked=!1}t.prototype.highlight=function(e){this.locked||(this.node!=e&&(this.node&&this.node.setHighlight(!1),this.node=e,this.node.setHighlight(!0)),this._cancelUnhighlight())},t.prototype.unhighlight=function(){if(!this.locked){var e=this;this.node&&(this._cancelUnhighlight(),this.unhighlightTimer=setTimeout(function(){e.node.setHighlight(!1),e.node=void 0,e.unhighlightTimer=void 0},0))}},t.prototype._cancelUnhighlight=function(){this.unhighlightTimer&&(clearTimeout(this.unhighlightTimer),this.unhighlightTimer=void 0)},t.prototype.lock=function(){this.locked=!0},t.prototype.unlock=function(){this.locked=!1},e.exports=t},function(e,t,i){function n(e){this.editor=e,this.clear(),this.actions={editField:{undo:function(e){e.node.updateField(e.oldValue)},redo:function(e){e.node.updateField(e.newValue)}},editValue:{undo:function(e){e.node.updateValue(e.oldValue)},redo:function(e){e.node.updateValue(e.newValue)}},appendNode:{undo:function(e){e.parent.removeChild(e.node)},redo:function(e){e.parent.appendChild(e.node)}},insertBeforeNode:{undo:function(e){e.parent.removeChild(e.node)},redo:function(e){e.parent.insertBefore(e.node,e.beforeNode)}},insertAfterNode:{undo:function(e){e.parent.removeChild(e.node)},redo:function(e){e.parent.insertAfter(e.node,e.afterNode)}},removeNode:{undo:function(e){var t=e.parent,i=t.childs[e.index]||t.append;t.insertBefore(e.node,i)},redo:function(e){e.parent.removeChild(e.node)}},duplicateNode:{undo:function(e){e.parent.removeChild(e.clone)},redo:function(e){e.parent.insertAfter(e.clone,e.node)}},changeType:{undo:function(e){e.node.changeType(e.oldType)},redo:function(e){e.node.changeType(e.newType)}},moveNode:{undo:function(e){e.startParent.moveTo(e.node,e.startIndex)},redo:function(e){e.endParent.moveTo(e.node,e.endIndex)}},sort:{undo:function(e){var t=e.node;t.hideChilds(),t.sort=e.oldSort,t.childs=e.oldChilds,t.showChilds()},redo:function(e){var t=e.node;t.hideChilds(),t.sort=e.newSort,t.childs=e.newChilds,t.showChilds()}}}}var o=i(3);n.prototype.onChange=function(){},n.prototype.add=function(e,t){this.index++,this.history[this.index]={action:e,params:t,timestamp:new Date},this.index=0},n.prototype.canRedo=function(){return this.indexthis.results.length-1&&(t=0),this._setActiveResult(t,e)}},t.prototype.previous=function(e){if(void 0!=this.results){var t=this.results.length-1,i=void 0!=this.resultIndex?this.resultIndex-1:t;0>i&&(i=t),this._setActiveResult(i,e)}},t.prototype._setActiveResult=function(e,t){if(this.activeResult){var i=this.activeResult.node,n=this.activeResult.elem;"field"==n?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 o=this.results[this.resultIndex].node,r=this.results[this.resultIndex].elem;"field"==r?o.searchFieldActive=!0:o.searchValueActive=!0,this.activeResult=this.results[this.resultIndex],o.updateDom(),o.scrollTo(function(){t&&o.focus(r)})},t.prototype._clearDelay=function(){void 0!=this.timeout&&(clearTimeout(this.timeout),delete this.timeout)},t.prototype._onDelayedSearch=function(){this._clearDelay();var e=this;this.timeout=setTimeout(function(t){e._onSearch(t)},this.delay)},t.prototype._onSearch=function(e,t){this._clearDelay();var i=this.dom.search.value,n=i.length>0?i:void 0;if(n!=this.lastText||t)if(this.lastText=n,this.results=this.editor.search(n),this._setActiveResult(void 0),void 0!=n){var o=this.results.length;switch(o){case 0:this.dom.results.innerHTML="no results";break;case 1:this.dom.results.innerHTML="1 result";break;default:this.dom.results.innerHTML=o+" results"}}else this.dom.results.innerHTML=""},t.prototype._onKeyDown=function(e){var t=e.which;27==t?(this.dom.search.value="",this._onSearch(e),e.preventDefault(),e.stopPropagation()):13==t&&(e.ctrlKey?this._onSearch(e,!0):e.shiftKey?this.previous():this.next(),e.preventDefault(),e.stopPropagation())},t.prototype._onKeyUp=function(e){var t=e.keyCode;27!=t&&13!=t&&this._onDelayedSearch(e)},e.exports=t},function(e,t,i){function n(e,t){this.editor=e,this.dom={},this.expanded=!1,t&&t instanceof Object?(this.setField(t.field,t.fieldEditable),this.setValue(t.value,t.type)):(this.setField(""),this.setValue(null))}var o=i(13),r=i(14),s=i(3);n.prototype._updateEditability=function(){if(this.editable={field:!0,value:!0},this.editor&&(this.editable.field="tree"===this.editor.options.mode,this.editable.value="view"!==this.editor.options.mode,"tree"===this.editor.options.mode&&"function"==typeof this.editor.options.editable)){var e=this.editor.options.editable({field:this.field,value:this.value,path:this.path()});"boolean"==typeof e?(this.editable.field=e,this.editable.value=e):("boolean"==typeof e.field&&(this.editable.field=e.field),"boolean"==typeof e.value&&(this.editable.value=e.value))}},n.prototype.path=function(){for(var e=this,t=[];e;){var i=void 0!=e.field?e.field:e.index;void 0!==i&&t.unshift(i),e=e.parent}return t},n.prototype.setParent=function(e){this.parent=e},n.prototype.setField=function(e,t){this.field=e,this.fieldEditable=1==t},n.prototype.getField=function(){return void 0===this.field&&this._getDomField(),this.field},n.prototype.setValue=function(e,t){var i,o,r=this.childs;if(r)for(;r.length;)this.removeChild(r[0]);if(this.type=this._getType(e),t&&t!=this.type){if("string"!=t||"auto"!=this.type)throw new Error('Type mismatch: cannot cast value of type "'+this.type+' to the specified type "'+t+'"');this.type=t}if("array"==this.type){this.childs=[];for(var s=0,a=e.length;a>s;s++)i=e[s],void 0===i||i instanceof Function||(o=new n(this.editor,{value:i}),this.appendChild(o));this.value=""}else if("object"==this.type){this.childs=[];for(var l in e)e.hasOwnProperty(l)&&(i=e[l],void 0===i||i instanceof Function||(o=new n(this.editor,{field:l,value:i}),this.appendChild(o)));this.value=""}else this.childs=void 0,this.value=e},n.prototype.getValue=function(){if("array"==this.type){var e=[];return this.childs.forEach(function(t){e.push(t.getValue())}),e}if("object"==this.type){var t={};return this.childs.forEach(function(e){t[e.getField()]=e.getValue()}),t}return void 0===this.value&&this._getDomValue(),this.value},n.prototype.getLevel=function(){return this.parent?this.parent.getLevel()+1:0},n.prototype.clone=function(){var e=new n(this.editor);if(e.type=this.type,e.field=this.field,e.fieldInnerText=this.fieldInnerText,e.fieldEditable=this.fieldEditable,e.value=this.value,e.valueInnerText=this.valueInnerText,e.expanded=this.expanded,this.childs){var t=[];this.childs.forEach(function(i){var n=i.clone();n.setParent(e),t.push(n)}),e.childs=t}else e.childs=void 0;return e},n.prototype.expand=function(e){this.childs&&(this.expanded=!0,this.dom.expand&&(this.dom.expand.className="expanded"),this.showChilds(),0!=e&&this.childs.forEach(function(t){t.expand(e)}))},n.prototype.collapse=function(e){this.childs&&(this.hideChilds(),0!=e&&this.childs.forEach(function(t){t.collapse(e)}),this.dom.expand&&(this.dom.expand.className="collapsed"),this.expanded=!1)},n.prototype.showChilds=function(){var e=this.childs;if(e&&this.expanded){var t=this.dom.tr,i=t?t.parentNode:void 0;if(i){var n=this.getAppend(),o=t.nextSibling;o?i.insertBefore(n,o):i.appendChild(n),this.childs.forEach(function(e){i.insertBefore(e.getDom(),n),e.showChilds()})}}},n.prototype.hide=function(){var e=this.dom.tr,t=e?e.parentNode:void 0;t&&t.removeChild(e),this.hideChilds()},n.prototype.hideChilds=function(){var e=this.childs;if(e&&this.expanded){var t=this.getAppend();t.parentNode&&t.parentNode.removeChild(t),this.childs.forEach(function(e){e.hide()})}},n.prototype.appendChild=function(e){if(this._hasChilds()){if(e.setParent(this),e.fieldEditable="object"==this.type,"array"==this.type&&(e.index=this.childs.length),this.childs.push(e),this.expanded){var t=e.getDom(),i=this.getAppend(),n=i?i.parentNode:void 0;i&&n&&n.insertBefore(t,i),e.showChilds()}this.updateDom({updateIndexes:!0}),e.updateDom({recurse:!0})}},n.prototype.moveBefore=function(e,t){if(this._hasChilds()){var i=this.dom.tr?this.dom.tr.parentNode:void 0;if(i){var n=document.createElement("tr");n.style.height=i.clientHeight+"px",i.appendChild(n)}e.parent&&e.parent.removeChild(e),t instanceof a?this.appendChild(e):this.insertBefore(e,t),i&&i.removeChild(n)}},n.prototype.moveTo=function(e,t){if(e.parent==this){var i=this.childs.indexOf(e);t>i&&t++}var n=this.childs[t]||this.append;this.moveBefore(e,n)},n.prototype.insertBefore=function(e,t){if(this._hasChilds()){if(t==this.append)e.setParent(this),e.fieldEditable="object"==this.type,this.childs.push(e);else{var i=this.childs.indexOf(t);if(-1==i)throw new Error("Node not found");e.setParent(this),e.fieldEditable="object"==this.type,this.childs.splice(i,0,e)}if(this.expanded){var n=e.getDom(),o=t.getDom(),r=o?o.parentNode:void 0;o&&r&&r.insertBefore(n,o),e.showChilds()}this.updateDom({updateIndexes:!0}),e.updateDom({recurse:!0})}},n.prototype.insertAfter=function(e,t){if(this._hasChilds()){var i=this.childs.indexOf(t),n=this.childs[i+1];n?this.insertBefore(e,n):this.appendChild(e)}},n.prototype.search=function(e){var t,i=[],n=e?e.toLowerCase():void 0;if(delete this.searchField,delete this.searchValue,void 0!=this.field){var o=String(this.field).toLowerCase();t=o.indexOf(n),-1!=t&&(this.searchField=!0,i.push({node:this,elem:"field"})),this._updateDomField()}if(this._hasChilds()){if(this.childs){var r=[];this.childs.forEach(function(t){r=r.concat(t.search(e))}),i=i.concat(r)}if(void 0!=n){var s=!1;0==r.length?this.collapse(s):this.expand(s)}}else{if(void 0!=this.value){var a=String(this.value).toLowerCase();t=a.indexOf(n),-1!=t&&(this.searchValue=!0,i.push({node:this,elem:"value"}))}this._updateDomValue()}return i},n.prototype.scrollTo=function(e){if(!this.dom.tr||!this.dom.tr.parentNode)for(var t=this.parent,i=!1;t;)t.expand(i),t=t.parent;this.dom.tr&&this.dom.tr.parentNode&&this.editor.scrollTo(this.dom.tr.offsetTop,e)},n.focusElement=void 0,n.prototype.focus=function(e){if(n.focusElement=e,this.dom.tr&&this.dom.tr.parentNode){var t=this.dom;switch(e){case"drag":t.drag?t.drag.focus():t.menu.focus();break;case"menu":t.menu.focus();break;case"expand":this._hasChilds()?t.expand.focus():t.field&&this.fieldEditable?(t.field.focus(),s.selectContentEditable(t.field)):t.value&&!this._hasChilds()?(t.value.focus(),s.selectContentEditable(t.value)):t.menu.focus();break;case"field":t.field&&this.fieldEditable?(t.field.focus(),s.selectContentEditable(t.field)):t.value&&!this._hasChilds()?(t.value.focus(),s.selectContentEditable(t.value)):this._hasChilds()?t.expand.focus():t.menu.focus();break;case"value":default:t.value&&!this._hasChilds()?(t.value.focus(),s.selectContentEditable(t.value)):t.field&&this.fieldEditable?(t.field.focus(),s.selectContentEditable(t.field)):this._hasChilds()?t.expand.focus():t.menu.focus()}}},n.select=function(e){setTimeout(function(){s.selectContentEditable(e)},0)},n.prototype.blur=function(){this._getDomValue(!1),this._getDomField(!1)},n.prototype._duplicate=function(e){var t=e.clone();return this.insertAfter(t,e),t},n.prototype.containsNode=function(e){if(this==e)return!0;var t=this.childs; +if(t)for(var i=0,n=t.length;n>i;i++)if(t[i].containsNode(e))return!0;return!1},n.prototype._move=function(e,t){if(e!=t){if(e.containsNode(this))throw new Error("Cannot move a field into a child of itself");e.parent&&e.parent.removeChild(e);var i=e.clone();e.clearDom(),t?this.insertBefore(i,t):this.appendChild(i)}},n.prototype.removeChild=function(e){if(this.childs){var t=this.childs.indexOf(e);if(-1!=t){e.hide(),delete e.searchField,delete e.searchValue;var i=this.childs.splice(t,1)[0];return this.updateDom({updateIndexes:!0}),i}}return void 0},n.prototype._remove=function(e){this.removeChild(e)},n.prototype.changeType=function(e){var t=this.type;if(t!=e){if("string"!=e&&"auto"!=e||"string"!=t&&"auto"!=t){var i,n=this.dom.tr?this.dom.tr.parentNode:void 0;i=this.expanded?this.getAppend():this.getDom();var o=i&&i.parentNode?i.nextSibling:void 0;this.hide(),this.clearDom(),this.type=e,"object"==e?(this.childs||(this.childs=[]),this.childs.forEach(function(e){e.clearDom(),delete e.index,e.fieldEditable=!0,void 0==e.field&&(e.field="")}),("string"==t||"auto"==t)&&(this.expanded=!0)):"array"==e?(this.childs||(this.childs=[]),this.childs.forEach(function(e,t){e.clearDom(),e.fieldEditable=!1,e.index=t}),("string"==t||"auto"==t)&&(this.expanded=!0)):this.expanded=!1,n&&(o?n.insertBefore(this.getDom(),o):n.appendChild(this.getDom())),this.showChilds()}else this.type=e;("auto"==e||"string"==e)&&(this.value="string"==e?String(this.value):this._stringCast(String(this.value)),this.focus()),this.updateDom({updateIndexes:!0})}},n.prototype._getDomValue=function(e){if(this.dom.value&&"array"!=this.type&&"object"!=this.type&&(this.valueInnerText=s.getInnerText(this.dom.value)),void 0!=this.valueInnerText)try{var t;if("string"==this.type)t=this._unescapeHTML(this.valueInnerText);else{var i=this._unescapeHTML(this.valueInnerText);t=this._stringCast(i)}if(t!==this.value){var n=this.value;this.value=t,this.editor._onAction("editValue",{node:this,oldValue:n,newValue:t,oldSelection:this.editor.selection,newSelection:this.editor.getSelection()})}}catch(o){if(this.value=void 0,1!=e)throw o}},n.prototype._updateDomValue=function(){var e=this.dom.value;if(e){var t=this.value,i="auto"==this.type?s.type(t):this.type,n="string"==i&&s.isUrl(t),o="";o=n&&!this.editable.value?"":"string"==i?"green":"number"==i?"red":"boolean"==i?"darkorange":this._hasChilds()?"":null===t?"#004ED0":"black",e.style.color=o;var r=""==String(this.value)&&"array"!=this.type&&"object"!=this.type;if(r?s.addClassName(e,"empty"):s.removeClassName(e,"empty"),n?s.addClassName(e,"url"):s.removeClassName(e,"url"),"array"==i||"object"==i){var a=this.childs?this.childs.length:0;e.title=this.type+" containing "+a+" items"}else"string"==i&&s.isUrl(t)?this.editable.value&&(e.title="Ctrl+Click or Ctrl+Enter to open url in new window"):e.title="";this.searchValueActive?s.addClassName(e,"highlight-active"):s.removeClassName(e,"highlight-active"),this.searchValue?s.addClassName(e,"highlight"):s.removeClassName(e,"highlight"),s.stripFormatting(e)}},n.prototype._updateDomField=function(){var e=this.dom.field;if(e){var t=""==String(this.field)&&"array"!=this.parent.type;t?s.addClassName(e,"empty"):s.removeClassName(e,"empty"),this.searchFieldActive?s.addClassName(e,"highlight-active"):s.removeClassName(e,"highlight-active"),this.searchField?s.addClassName(e,"highlight"):s.removeClassName(e,"highlight"),s.stripFormatting(e)}},n.prototype._getDomField=function(e){if(this.dom.field&&this.fieldEditable&&(this.fieldInnerText=s.getInnerText(this.dom.field)),void 0!=this.fieldInnerText)try{var t=this._unescapeHTML(this.fieldInnerText);if(t!==this.field){var i=this.field;this.field=t,this.editor._onAction("editField",{node:this,oldValue:i,newValue:t,oldSelection:this.editor.selection,newSelection:this.editor.getSelection()})}}catch(n){if(this.field=void 0,1!=e)throw n}},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");e.drag=i,i.className="dragarea",i.title="Drag to move this field (Alt+Shift+Arrows)",t.appendChild(i)}e.tr.appendChild(t);var n=document.createElement("td"),o=document.createElement("button");e.menu=o,o.className="contextmenu",o.title="Click to open the actions menu (Ctrl+M)",n.appendChild(e.menu),e.tr.appendChild(n)}var r=document.createElement("td");return e.tr.appendChild(r),e.tree=this._createDomTree(),r.appendChild(e.tree),this.updateDom({updateIndexes:!0}),e.tr},n.prototype._onDragStart=function(e){var t=this;this.mousemove||(this.mousemove=s.addEventListener(document,"mousemove",function(e){t._onDrag(e)})),this.mouseup||(this.mouseup=s.addEventListener(document,"mouseup",function(e){t._onDragEnd(e)})),this.editor.highlighter.lock(),this.drag={oldCursor:document.body.style.cursor,startParent:this.parent,startIndex:this.parent.childs.indexOf(this),mouseX:e.pageX,level:this.getLevel()},document.body.style.cursor="move",e.preventDefault()},n.prototype._onDrag=function(e){var t,i,o,r,l,c,h,u,d,g,f,p,m,v,A=e.pageY,w=e.pageX,C=!1;if(t=this.dom.tr,d=s.getAbsoluteTop(t),p=t.offsetHeight,d>A){i=t;do i=i.previousSibling,h=n.getNodeFromTarget(i),g=i?s.getAbsoluteTop(i):0;while(i&&g>A);h&&!h.parent&&(h=void 0),h||(c=t.parentNode.firstChild,i=c?c.nextSibling:void 0,h=n.getNodeFromTarget(i),h==this&&(h=void 0)),h&&(i=h.dom.tr,g=i?s.getAbsoluteTop(i):0,A>g+p&&(h=void 0)),h&&(h.parent.moveBefore(this,h),C=!0)}else if(l=this.expanded&&this.append?this.append.getDom():this.dom.tr,r=l?l.nextSibling:void 0){f=s.getAbsoluteTop(r),o=r;do u=n.getNodeFromTarget(o),o&&(m=o.nextSibling?s.getAbsoluteTop(o.nextSibling):0,v=o?m-f:0,1==u.parent.childs.length&&u.parent.childs[0]==this&&(d+=23)),o=o.nextSibling;while(o&&A>d+v);if(u&&u.parent){var E=w-this.drag.mouseX,F=Math.round(E/24/2),y=this.drag.level+F,b=u.getLevel();for(i=u.dom.tr.previousSibling;y>b&&i;){if(h=n.getNodeFromTarget(i),h==this||h._isChildOf(this));else{if(!(h instanceof a))break;var x=h.parent.childs;if(!(x.length>1||1==x.length&&x[0]!=this))break;u=n.getNodeFromTarget(i),b=u.getLevel()}i=i.previousSibling}l.nextSibling!=u.dom.tr&&(u.parent.moveBefore(this,u),C=!0)}}C&&(this.drag.mouseX=w,this.drag.level=this.getLevel()),this.editor.startAutoScroll(A),e.preventDefault()},n.prototype._onDragEnd=function(e){var t={node:this,startParent:this.drag.startParent,startIndex:this.drag.startIndex,endParent:this.parent,endIndex:this.parent.childs.indexOf(this)};(t.startParent!=t.endParent||t.startIndex!=t.endIndex)&&this.editor._onAction("moveNode",t),document.body.style.cursor=this.drag.oldCursor,this.editor.highlighter.unlock(),delete this.drag,this.mousemove&&(s.removeEventListener(document,"mousemove",this.mousemove),delete this.mousemove),this.mouseup&&(s.removeEventListener(document,"mouseup",this.mouseup),delete this.mouseup),this.editor.stopAutoScroll(),e.preventDefault()},n.prototype._isChildOf=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&&(this.dom.tr.className=e?"highlight":"",this.append&&this.append.setHighlight(e),this.childs&&this.childs.forEach(function(t){t.setHighlight(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="field"):i.className="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)}var o=this.dom.value;if(o){var r=this.childs?this.childs.length:0;o.innerHTML="array"==this.type?"["+r+"]":"object"==this.type?"{"+r+"}":this._escapeHTML(this.value)}this._updateDomField(),this._updateDomValue(),e&&1==e.updateIndexes&&this._updateDomIndexes(),e&&1==e.recurse&&this.childs&&this.childs.forEach(function(t){t.updateDom(e)}),this.append&&this.append.updateDom()},n.prototype._updateDomIndexes=function(){var e=this.dom.value,t=this.childs;e&&t&&("array"==this.type?t.forEach(function(e,t){e.index=t;var i=e.dom.field;i&&(i.innerHTML=t)}):"object"==this.type&&t.forEach(function(e){void 0!=e.index&&(delete e.index,void 0==e.field&&(e.field=""))}))},n.prototype._createDomValue=function(){var e;return"array"==this.type?(e=document.createElement("div"),e.className="readonly",e.innerHTML="[...]"):"object"==this.type?(e=document.createElement("div"),e.className="readonly",e.innerHTML="{...}"):!this.editable.value&&s.isUrl(this.value)?(e=document.createElement("a"),e.className="value",e.href=this.value,e.target="_blank",e.innerHTML=this._escapeHTML(this.value)):(e=document.createElement("div"),e.contentEditable=this.editable.value,e.spellcheck=!1,e.className="value",e.innerHTML=this._escapeHTML(this.value)),e},n.prototype._createDomExpandButton=function(){var e=document.createElement("button");return this._hasChilds()?(e.className=this.expanded?"expanded":"collapsed",e.title="Click to expand/collapse this field (Ctrl+E). \nCtrl+Click to expand/collapse including all childs."):(e.className="invisible",e.title=""),e},n.prototype._createDomTree=function(){var e=this.dom,t=document.createElement("table"),i=document.createElement("tbody");t.style.borderCollapse="collapse",t.className="values",t.appendChild(i);var n=document.createElement("tr");i.appendChild(n);var o=document.createElement("td");o.className="tree",n.appendChild(o),e.expand=this._createDomExpandButton(),o.appendChild(e.expand),e.tdExpand=o;var r=document.createElement("td");r.className="tree",n.appendChild(r),e.field=this._createDomField(),r.appendChild(e.field),e.tdField=r;var s=document.createElement("td");s.className="tree",n.appendChild(s),"object"!=this.type&&"array"!=this.type&&(s.appendChild(document.createTextNode(":")),s.className="separator"),e.tdSeparator=s;var a=document.createElement("td");return a.className="tree",n.appendChild(a),e.value=this._createDomValue(),a.appendChild(e.value),e.tdValue=a,t},n.prototype.onEvent=function(e){var t,i=e.type,n=e.target||e.srcElement,o=this.dom,r=this,a=this._hasChilds();if((n==o.drag||n==o.menu)&&("mouseover"==i?this.editor.highlighter.highlight(this):"mouseout"==i&&this.editor.highlighter.unhighlight()),"mousedown"==i&&n==o.drag&&this._onDragStart(e),"click"==i&&n==o.menu){var l=r.editor.highlighter;l.highlight(r),l.lock(),s.addClassName(o.menu,"selected"),this.showContextMenu(o.menu,function(){s.removeClassName(o.menu,"selected"),l.unlock(),l.unhighlight()})}if("click"==i&&n==o.expand&&a){var c=e.ctrlKey;this._onExpand(c)}var h=o.value;if(n==h)switch(i){case"focus":t=this;break;case"blur":case"change":this._getDomValue(!0),this._updateDomValue(),this.value&&(h.innerHTML=this._escapeHTML(this.value));break;case"input":this._getDomValue(!0),this._updateDomValue();break;case"keydown":case"mousedown":this.editor.selection=this.editor.getSelection();break;case"click":(e.ctrlKey||!this.editable.value)&&s.isUrl(this.value)&&window.open(this.value,"_blank");break;case"keyup":this._getDomValue(!0),this._updateDomValue();break;case"cut":case"paste":setTimeout(function(){r._getDomValue(!0),r._updateDomValue()},1)}var u=o.field;if(n==u)switch(i){case"focus":t=this;break;case"blur":case"change":this._getDomField(!0),this._updateDomField(),this.field&&(u.innerHTML=this._escapeHTML(this.field));break;case"input":this._getDomField(!0),this._updateDomField();break;case"keydown":case"mousedown":this.editor.selection=this.editor.getSelection();break;case"keyup":this._getDomField(!0),this._updateDomField();break;case"cut":case"paste":setTimeout(function(){r._getDomField(!0),r._updateDomField()},1)}var d=o.tree;if(n==d.parentNode)switch(i){case"click":var g=void 0!=e.offsetX?e.offsetX<24*(this.getLevel()+1):e.pageXn[i]?t:e[i]/g,">").replace(/ /g,"  ").replace(/^ /," ").replace(/ $/," "),i=JSON.stringify(t);return i.substring(1,i.length-1)},n.prototype._unescapeHTML=function(e){var t='"'+this._escapeJSON(e)+'"',i=s.parse(t);return i.replace(/</g,"<").replace(/>/g,">").replace(/ |\u00A0/g," ")},n.prototype._escapeJSON=function(e){for(var t="",i=0,n=e.length;n>i;){var o=e.charAt(i);"\n"==o?t+="\\n":"\\"==o?(t+=o,i++,o=e.charAt(i),-1=='"\\/bfnrtu'.indexOf(o)&&(t+="\\"),t+=o):t+='"'==o?'\\"':o,i++}return t};var a=r(n);e.exports=n},function(e,t,i){function n(e,t,i){function n(t){e.setMode(t);var i=e.dom&&e.dom.modeBox;i&&i.focus()}for(var r={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;ar;++r){var l=s(e,t[r]);if(!l&&o.original)return o.original.apply(window,arguments);n.push(l)}i&&i.apply(null,n)}else{if("string"==typeof t){var c=s(e,t);return!c&&o.original?o.original.apply(window,arguments):(i&&i(),c)}if(o.original)return o.original.apply(window,arguments)}},r=function(e,t){if(-1!==t.indexOf("!")){var i=t.split("!");return r(e,i[0])+"!"+r(e,i[1])}if("."==t.charAt(0)){var n=e.split("/").slice(0,-1).join("/");for(t=n+"/"+t;-1!==t.indexOf(".")&&o!=t;){var o=t;t=t.replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return t},s=function(e,t){t=r(e,t);var i=n.modules[t];if(!i){if(i=n.payloads[t],"function"==typeof i){var s={},a={id:t,uri:"",exports:s,packaged:!0},l=function(e,i){return o(t,e,i)},c=i(l,s,a);s=c||a.exports,n.modules[t]=s,delete n.payloads[t]}i=n.modules[t]=s||i}return i};e(t)}}(),ace.define("ace/lib/regexp",["require","exports","module"],function(){"use strict";function e(e){return(e.global?"g":"")+(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.extended?"x":"")+(e.sticky?"y":"")}function t(e,t,i){if(Array.prototype.indexOf)return e.indexOf(t,i);for(var n=i||0;n1&&t(l,"")>-1&&(a=RegExp(this.source,i.replace.call(e(this),"g","")),i.replace.call(r.slice(l.index),a,function(){for(var e=1;el.index&&this.lastIndex--}return l},o||(RegExp.prototype.test=function(e){var t=i.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(){function e(){}function t(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(t){}}function i(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(t){var i=this;if("function"!=typeof i)throw new TypeError("Function.prototype.bind called on incompatible "+i);var n=u.call(arguments,1),o=function(){if(this instanceof o){var e=i.apply(this,n.concat(u.call(arguments)));return Object(e)===e?e:this}return i.apply(t,n.concat(u.call(arguments)))};return i.prototype&&(e.prototype=i.prototype,o.prototype=new e,e.prototype=null),o});var n,o,r,s,a,l=Function.prototype.call,c=Array.prototype,h=Object.prototype,u=c.slice,d=l.bind(h.toString),g=l.bind(h.hasOwnProperty);if((a=g(h,"__defineGetter__"))&&(n=l.bind(h.__defineGetter__),o=l.bind(h.__defineSetter__),r=l.bind(h.__lookupGetter__),s=l.bind(h.__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=[];return i.splice.apply(i,e(20)),i.splice.apply(i,e(26)),t=i.length,i.splice(5,0,"XXX"),t+1==i.length,t+1==i.length?!0:void 0}()){var f=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?f.apply(this,[void 0===e?0:e,void 0===t?this.length-e:t].concat(u.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:0>e&&(e=Math.max(i+e,0)),i>e+t||(t=i-e);var n=this.slice(e,e+t),o=u.call(arguments,2),r=o.length;if(e===i)r&&this.push.apply(this,o);else{var s=Math.min(t,i-e),a=e+s,l=a+r-s,c=i-a,h=i-s;if(a>l)for(var d=0;c>d;++d)this[l+d]=this[a+d];else if(l>a)for(d=c;d--;)this[l+d]=this[a+d];if(r&&e===h)this.length=h,this.push.apply(this,o);else for(this.length=h+r,d=0;r>d;++d)this[e+d]=o[d]}return n};Array.isArray||(Array.isArray=function(e){return"[object Array]"==d(e)});var p=Object("a"),m="a"!=p[0]||!(0 in p);if(Array.prototype.forEach||(Array.prototype.forEach=function(e){var t=R(this),i=m&&"[object String]"==d(this)?this.split(""):t,n=arguments[1],o=-1,r=i.length>>>0;if("[object Function]"!=d(e))throw new TypeError; +for(;++o>>0,o=Array(n),r=arguments[1];if("[object Function]"!=d(e))throw new TypeError(e+" is not a function");for(var s=0;n>s;s++)s in i&&(o[s]=e.call(r,i[s],s,t));return o}),Array.prototype.filter||(Array.prototype.filter=function(e){var t,i=R(this),n=m&&"[object String]"==d(this)?this.split(""):i,o=n.length>>>0,r=[],s=arguments[1];if("[object Function]"!=d(e))throw new TypeError(e+" is not a function");for(var a=0;o>a;a++)a in n&&(t=n[a],e.call(s,t,a,i)&&r.push(t));return r}),Array.prototype.every||(Array.prototype.every=function(e){var t=R(this),i=m&&"[object String]"==d(this)?this.split(""):t,n=i.length>>>0,o=arguments[1];if("[object Function]"!=d(e))throw new TypeError(e+" is not a function");for(var r=0;n>r;r++)if(r in i&&!e.call(o,i[r],r,t))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(e){var t=R(this),i=m&&"[object String]"==d(this)?this.split(""):t,n=i.length>>>0,o=arguments[1];if("[object Function]"!=d(e))throw new TypeError(e+" is not a function");for(var r=0;n>r;r++)if(r in i&&e.call(o,i[r],r,t))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(e){var t=R(this),i=m&&"[object String]"==d(this)?this.split(""):t,n=i.length>>>0;if("[object Function]"!=d(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 o,r=0;if(arguments.length>=2)o=arguments[1];else for(;;){if(r in i){o=i[r++];break}if(++r>=n)throw new TypeError("reduce of empty array with no initial value")}for(;n>r;r++)r in i&&(o=e.call(void 0,o,i[r],r,t));return o}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(e){var t=R(this),i=m&&"[object String]"==d(this)?this.split(""):t,n=i.length>>>0;if("[object Function]"!=d(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 o,r=n-1;if(arguments.length>=2)o=arguments[1];else for(;;){if(r in i){o=i[r--];break}if(--r<0)throw new TypeError("reduceRight of empty array with no initial value")}do r in this&&(o=e.call(void 0,o,i[r],r,t));while(r--);return o}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(e){var t=m&&"[object String]"==d(this)?this.split(""):R(this),n=t.length>>>0;if(!n)return-1;var o=0;for(arguments.length>1&&(o=i(arguments[1])),o=o>=0?o:Math.max(0,n+o);n>o;o++)if(o in t&&t[o]===e)return o;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(e){var t=m&&"[object String]"==d(this)?this.split(""):R(this),n=t.length>>>0;if(!n)return-1;var o=n-1;for(arguments.length>1&&(o=Math.min(o,i(arguments[1]))),o=o>=0?o:n-Math.abs(o);o>=0;o--)if(o in t&&e===t[o])return o;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(e){return e.__proto__||(e.constructor?e.constructor.prototype:h)}),!Object.getOwnPropertyDescriptor){var v="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(e,t){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError(v+e);if(g(e,t)){var i,n,o;if(i={enumerable:!0,configurable:!0},a){var l=e.__proto__;e.__proto__=h;var n=r(e,t),o=s(e,t);if(e.__proto__=l,n||o)return n&&(i.get=n),o&&(i.set=o),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 w=t({}),C="undefined"==typeof document||t(document.createElement("div"));if(!w||!C)var E=Object.defineProperty}if(!Object.defineProperty||E){var F="Property description must be an object: ",y="Object.defineProperty called on non-object: ",b="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(e,t,i){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError(y+e);if("object"!=typeof i&&"function"!=typeof i||null===i)throw new TypeError(F+i);if(E)try{return E.call(Object,e,t,i)}catch(l){}if(g(i,"value"))if(a&&(r(e,t)||s(e,t))){var c=e.__proto__;e.__proto__=h,delete e[t],e[t]=i.value,e.__proto__=c}else e[t]=i.value;else{if(!a)throw new TypeError(b);g(i,"get")&&n(e,t,i.get),g(i,"set")&&o(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(x){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(){return!1}),Object.isFrozen||(Object.isFrozen=function(){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 S=!0,$=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],B=$.length;for(var D in{toString:null})S=!1;Object.keys=function T(e){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.keys called on a non-object");var T=[];for(var t in e)g(e,t)&&T.push(t);if(S)for(var i=0,n=B;n>i;i++){var o=$[i];g(e,o)&&T.push(o)}return T}}Date.now||(Date.now=function(){return(new Date).getTime()});var k=" \n \f\r   ᠎              \u2028\u2029";if(!String.prototype.trim||k.trim()){k="["+k+"]";var L=new RegExp("^"+k+k+"*"),_=new RegExp(k+k+"*$");String.prototype.trim=function(){return String(this).replace(L,"").replace(_,"")}}var R=function(e){if(null==e)throw new TypeError("can't convert "+e+" to object");return Object(e)}}),ace.define("ace/lib/fixoldbrowsers",["require","exports","module","ace/lib/regexp","ace/lib/es5-shim"],function(e){"use strict";e("./regexp"),e("./es5-shim")}),ace.define("ace/lib/dom",["require","exports","module"],function(e,t){"use strict";if("undefined"!=typeof document){var i="http://www.w3.org/1999/xhtml";t.getDocumentHead=function(e){return e||(e=document),e.head||e.getElementsByTagName("head")[0]||e.documentElement},t.createElement=function(e,t){return document.createElementNS?document.createElementNS(t||i,e):document.createElement(e)},t.hasCssClass=function(e,t){var i=(e.className||"").split(/\s+/g);return-1!==i.indexOf(t)},t.addCssClass=function(e,i){t.hasCssClass(e,i)||(e.className+=" "+i)},t.removeCssClass=function(e,t){for(var i=e.className.split(/\s+/g);;){var n=i.indexOf(t);if(-1==n)break;i.splice(n,1)}e.className=i.join(" ")},t.toggleCssClass=function(e,t){for(var i=e.className.split(/\s+/g),n=!0;;){var o=i.indexOf(t);if(-1==o)break;n=!1,i.splice(o,1)}return n&&i.push(t),e.className=i.join(" "),n},t.setCssClass=function(e,i,n){n?t.addCssClass(e,i):t.removeCssClass(e,i)},t.hasCssString=function(e,t){var i,n=0;if(t=t||document,t.createStyleSheet&&(i=t.styleSheets)){for(;n=0?(n.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]:(n.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((n.match(/rv\:(\d+)/)||[])[1],10)<4,t.isOpera=window.opera&&"[object Opera]"==Object.prototype.toString.call(window.opera),t.isWebKit=parseFloat(n.split("WebKit/")[1])||void 0,t.isChrome=parseFloat(n.split(" Chrome/")[1])||void 0,t.isAIR=n.indexOf("AdobeAIR")>=0,t.isIPad=n.indexOf("iPad")>=0,t.isTouchPad=n.indexOf("TouchPad")>=0,t.isChromeOS=n.indexOf(" CrOS ")>=0}}),ace.define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t){"use strict";function i(e,t,i){var l=r(t);if(!o.isMac&&s){if((s[91]||s[92])&&(l|=8),s.altGr){if(3==(3&l))return;s.altGr=0}if(18===i||17===i){var c="location"in t?t.location:t.keyLocation;if(17===i&&1===c)a=t.timeStamp;else if(18===i&&3===l&&2===c){var h=-a;a=t.timeStamp,h+=a,3>h&&(s.altGr=!0)}}}if(i in n.MODIFIER_KEYS){switch(n.MODIFIER_KEYS[i]){case"Alt":l=2;break;case"Shift":l=4;break;case"Ctrl":l=1;break;default:l=8}i=-1}if(8&l&&(91===i||93===i)&&(i=-1),!l&&13===i){var c="location"in t?t.location:t.keyLocation;if(3===c&&(e(t,l,-i),t.defaultPrevented))return}if(o.isChromeOS&&8&l){if(e(t,l,i),t.defaultPrevented)return;l&=-9}return l||i in n.FUNCTION_KEYS||i in n.PRINTABLE_KEYS?e(t,l,i):!1}var n=e("./keys"),o=e("./useragent");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){return e.removeEventListener?e.removeEventListener(t,i,!1):void(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||o.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 o(e){i&&i(e),n&&n(e),t.removeListener(document,"mousemove",i,!0),t.removeListener(document,"mouseup",o,!0),t.removeListener(document,"dragstart",o,!0)}return t.addListener(document,"mousemove",i,!0),t.addListener(document,"mouseup",o,!0),t.addListener(document,"dragstart",o,!0),o},t.addMouseWheelListener=function(e,i){"onmousewheel"in e?t.addListener(e,"mousewheel",function(e){var t=8;void 0!==e.wheelDeltaX?(e.wheelX=-e.wheelDeltaX/t,e.wheelY=-e.wheelDeltaY/t):(e.wheelX=0,e.wheelY=-e.wheelDelta/t),i(e)}):"onwheel"in e?t.addListener(e,"wheel",function(e){var t=.35;switch(e.deltaMode){case e.DOM_DELTA_PIXEL:e.wheelX=e.deltaX*t||0,e.wheelY=e.deltaY*t||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){var s,a,l,c=0,h={2:"dblclick",3:"tripleclick",4:"quadclick"};t.addListener(e,"mousedown",function(e){if(0!==t.getButton(e)?c=0:e.detail>1?(c++,c>4&&(c=1)):c=1,o.isIE){var u=Math.abs(e.clientX-s)>5||Math.abs(e.clientY-a)>5;(!l||u)&&(c=1),l&&clearTimeout(l),l=setTimeout(function(){l=null},i[c-1]||600),1==c&&(s=e.clientX,a=e.clientY)}if(e._clicks=c,n[r]("mousedown",e),c>4)c=0;else if(c>1)return n[r](h[c],e)}),o.isOldIE&&t.addListener(e,"dblclick",function(e){c=2,l&&clearTimeout(l),l=setTimeout(function(){l=null},i[c-1]||600),n[r]("mousedown",e),n[r](h[c],e)})};var r=!o.isMac||!o.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)};t.getModifierString=function(e){return n.KEY_MODS[r(e)]};var s=null,a=0;if(t.addCommandKeyListener=function(e,n){var r=t.addListener;if(o.isOldGecko||o.isOpera&&!("KeyboardEvent"in window)){var a=null;r(e,"keydown",function(e){a=e.keyCode}),r(e,"keypress",function(e){return i(n,e,a)})}else{var l=null;r(e,"keydown",function(e){s[e.keyCode]=!0;var t=i(n,e,e.keyCode);return l=e.defaultPrevented,t}),r(e,"keypress",function(e){l&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),l=null)}),r(e,"keyup",function(e){s[e.keyCode]=null}),s||(s=Object.create(null),r(window,"focus",function(){s=Object.create(null)}))}},window.postMessage&&!o.isOldIE){var l=1;t.nextTick=function(e,i){i=i||window;var n="zero-timeout-message-"+l;t.addListener(i,"message",function o(r){r.data==n&&(t.stopPropagation(r),t.removeListener(i,"message",o),e())}),i.postMessage(n,"*")}}t.nextFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame,t.nextFrame=t.nextFrame?t.nextFrame.bind(window):function(e){setTimeout(e,17)}}),ace.define("ace/lib/lang",["require","exports","module"],function(e,t){"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};var i=/^\s\s*/,n=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(i,"")},t.stringTrimRight=function(e){return e.replace(n,"")},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;n>i;i++)t[i]=e[i]&&"object"==typeof e[i]?this.copyObject(e[i]):e[i];return t},t.deepCopy=function(e){if("object"!=typeof e||!e)return e;var i=e.constructor;if(i===RegExp)return e;var n=i();for(var o in e)n[o]="object"==typeof e[o]?t.deepCopy(e[o]):e[o];return n},t.arrayToMap=function(e){for(var t={},i=0;ii?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}var r=(e("../lib/dom"),e("../lib/event"),e("../lib/useragent"),0);(function(){this.onMouseDown=function(e){var t=e.inSelection(),i=e.getDocumentPosition();this.mousedownEvent=e;var n=this.editor,o=e.getButton();if(0!==o){var r=n.getSelectionRange(),s=r.isEmpty();return s&&n.selection.moveToPosition(i),void n.textInput.onContextMenu(e.domEvent)}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;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")},this.select=function(){var e,t=this.editor,i=t.renderer.screenToTextCoordinates(this.x,this.y);if(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.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(this.$clickSelection){var s=this.$clickSelection.comparePoint(r.start),a=this.$clickSelection.comparePoint(r.end);if(-1==s&&0>=a)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.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=n(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),t=Date.now();(e>r||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,o=n.getBracketRange(t);o?(o.isEmpty()&&(o.start.column--,o.end.column++),this.setState("select")):(o=i.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=o,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(){var e=this.editor;e.selectAll(),this.$clickSelection=e.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=e.domEvent.timeStamp,i=t-(this.$lastScrollTime||0),n=this.editor,o=n.renderer.isScrollableBy(e.wheelX*e.speed,e.wheelY*e.speed);return o||200>i?(this.$lastScrollTime=t,n.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()):void 0}}}).call(i.prototype),t.DefaultHandlers=i}),ace.define("ace/tooltip",["require","exports","module","ace/lib/oop","ace/lib/dom"],function(e,t){"use strict";function i(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}var n=(e("./lib/oop"),e("./lib/dom"));(function(){this.$init=function(){return this.$element=n.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){n.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){n.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}}).call(i.prototype),t.Tooltip=i}),ace.define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event","ace/tooltip"],function(e,t){"use strict"; +function i(e){function t(){var t=u.getDocumentPosition().row,n=l.$annotations[t];if(!n)return i();var o=a.session.getLength();if(t==o){var s=a.renderer.pixelToScreenCoordinates(0,u.y).row,h=u.$pos;if(s>a.session.documentToScreenRow(h.row,h.column))return i()}if(d!=n)if(d=n.text.join("
"),c.setHtml(d),c.show(),a.on("mousewheel",i),e.$tooltipFollowsMouse)r(u);else{var g=l.$cells[a.session.documentToScreenRow(t,0)].element,f=g.getBoundingClientRect(),p=c.getElement().style;p.left=f.right+"px",p.top=f.bottom+"px"}}function i(){h&&(h=clearTimeout(h)),d&&(c.hide(),d=null,a.removeEventListener("mousewheel",i))}function r(e){c.setPosition(e.x,e.y)}var a=e.editor,l=a.renderer.$gutterLayer,c=new n(a.container);e.editor.setDefaultHandler("guttermousedown",function(t){if(a.isFocused()&&0==t.getButton()){var i=l.getRegion(t);if("foldWidgets"!=i){var n=t.getDocumentPosition().row,o=a.session.selection;if(t.getShiftKey())o.selectTo(n,0);else{if(2==t.domEvent.detail)return a.selectAll(),t.preventDefault();e.$clickSelection=a.selection.getLineRange(n)}return e.setState("selectByLines"),e.captureMouse(t),t.preventDefault()}}});var h,u,d;e.editor.setDefaultHandler("guttermousemove",function(n){var s=n.domEvent.target||n.domEvent.srcElement;return o.hasCssClass(s,"ace_fold-widget")?i():(d&&e.$tooltipFollowsMouse&&r(n),u=n,void(h||(h=setTimeout(function(){h=null,u&&!e.isMousePressed?t():i()},50))))}),s.addListener(a.renderer.$gutter,"mouseout",function(){u=null,d&&!h&&(h=setTimeout(function(){h=null,i()},50))}),a.on("changeSession",i)}function n(e){a.call(this,e)}var o=e("../lib/dom"),r=e("../lib/oop"),s=e("../lib/event"),a=e("../tooltip").Tooltip;r.inherits(n,a),function(){this.setPosition=function(e,t){var i=window.innerWidth||document.documentElement.clientWidth,n=window.innerHeight||document.documentElement.clientHeight,o=this.getWidth(),r=this.getHeight();e+=15,t+=15,e+o>i&&(e-=e+o-i),t+r>n&&(t-=20+r),a.prototype.setPosition.call(this,e,t)}}.call(n.prototype),t.GutterHandler=i}),ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(e,t){"use strict";var i=e("../lib/event"),n=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(){i.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){i.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 i.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=n.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){"use strict";function i(e){function t(e,t){var i=Date.now(),o=!t||e.row!=t.row,r=!t||e.column!=t.column;if(!B||o||r)m.$blockScrolling+=1,m.moveCursorToPosition(e),m.$blockScrolling-=1,B=i,D={x:C,y:E};else{var s=n(D.x,D.y,C,E);s>c?B=null:i-B>=l&&(m.renderer.scrollCursorIntoView(),B=null)}}function i(e,t){var i=Date.now(),n=m.renderer.layerConfig.lineHeight,o=m.renderer.layerConfig.characterWidth,r=m.renderer.scroller.getBoundingClientRect(),s={x:{left:C-r.left,right:r.right-C},y:{top:E-r.top,bottom:r.bottom-E}},l=Math.min(s.x.left,s.x.right),c=Math.min(s.y.top,s.y.bottom),h={row:e.row,column:e.column};2>=l/o&&(h.column+=s.x.left=c/n&&(h.row+=s.y.top=a&&m.renderer.scrollCursorIntoView(h):$=i:$=null}function h(){var e=b;b=m.renderer.screenToTextCoordinates(C,E),t(b,e),i(b,e)}function u(){y=m.selection.toOrientedRange(),w=m.session.addMarker(y,"ace_selection",m.getSelectionStyle()),m.clearSelection(),m.isFocused()&&m.renderer.$cursorLayer.setBlinking(!1),clearInterval(F),h(),F=setInterval(h,20),L=0,r.addListener(document,"mousemove",g)}function d(){clearInterval(F),m.session.removeMarker(w),w=null,m.$blockScrolling+=1,m.selection.fromOrientedRange(y),m.$blockScrolling-=1,m.isFocused()&&!S&&m.renderer.$cursorLayer.setBlinking(!m.getReadOnly()),y=null,b=null,L=0,$=null,B=null,r.removeListener(document,"mousemove",g)}function g(){null==_&&(_=setTimeout(function(){null!=_&&w&&d()},20))}function f(e){var t=e.types;return!t||Array.prototype.some.call(t,function(e){return"text/plain"==e||"Text"==e})}function p(e){var t=["copy","copymove","all","uninitialized"],i=["move","copymove","linkmove","all","uninitialized"],n=s.isMac?e.altKey:e.ctrlKey,o="uninitialized";try{o=e.dataTransfer.effectAllowed.toLowerCase()}catch(e){}var r="none";return n&&t.indexOf(o)>=0?r="copy":i.indexOf(o)>=0?r="move":t.indexOf(o)>=0&&(r="copy"),r}var m=e.editor,v=o.createElement("img");v.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",s.isOpera&&(v.style.cssText="width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;");var A=["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"];A.forEach(function(t){e[t]=this[t]},this),m.addEventListener("mousedown",this.onMouseDown.bind(e));var w,C,E,F,y,b,x,S,$,B,D,k=m.container,L=0;this.onDragStart=function(e){if(this.cancelDrag||!k.draggable){var t=this;return setTimeout(function(){t.startSelect(),t.captureMouse(e)},0),e.preventDefault()}y=m.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=m.getReadOnly()?"copy":"copyMove",s.isOpera&&(m.container.appendChild(v),v.scrollTop=0),i.setDragImage&&i.setDragImage(v,0,0),s.isOpera&&m.container.removeChild(v),i.clearData(),i.setData("Text",m.session.getTextRange()),S=!0,this.setState("drag")},this.onDragEnd=function(e){if(k.draggable=!1,S=!1,this.setState(null),!m.getReadOnly()){var t=e.dataTransfer.dropEffect;x||"move"!=t||m.session.remove(m.getSelectionRange()),m.renderer.$cursorLayer.setBlinking(!0)}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){return!m.getReadOnly()&&f(e.dataTransfer)?(C=e.clientX,E=e.clientY,w||u(),L++,e.dataTransfer.dropEffect=x=p(e),r.preventDefault(e)):void 0},this.onDragOver=function(e){return!m.getReadOnly()&&f(e.dataTransfer)?(C=e.clientX,E=e.clientY,w||(u(),L++),null!==_&&(_=null),e.dataTransfer.dropEffect=x=p(e),r.preventDefault(e)):void 0},this.onDragLeave=function(e){return L--,0>=L&&w?(d(),x=null,r.preventDefault(e)):void 0},this.onDrop=function(e){if(b){var t=e.dataTransfer;if(S)switch(x){case"move":y=y.contains(b.row,b.column)?{start:b,end:b}:m.moveText(y,b);break;case"copy":y=m.moveText(y,b,!0)}else{var i=t.getData("Text");y={start:b,end:m.session.insert(b,i)},m.focus(),x=null}return d(),r.preventDefault(e)}},r.addListener(k,"dragstart",this.onDragStart.bind(e)),r.addListener(k,"dragend",this.onDragEnd.bind(e)),r.addListener(k,"dragenter",this.onDragEnter.bind(e)),r.addListener(k,"dragover",this.onDragOver.bind(e)),r.addListener(k,"dragleave",this.onDragLeave.bind(e)),r.addListener(k,"drop",this.onDrop.bind(e));var _=null}function n(e,t,i,n){return Math.sqrt(Math.pow(i-e,2)+Math.pow(n-t,2))}var o=e("../lib/dom"),r=e("../lib/event"),s=e("../lib/useragent"),a=200,l=200,c=5;(function(){this.dragWait=function(){var e=Date.now()-this.mousedownEvent.time;e>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){var e=this.editor.container;e.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(){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,t=e.container;t.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var i=s.isWin?"default":"move";e.renderer.setCursorStyle(i),this.setState("dragReady")},this.onMouseDrag=function(){var e=this.editor.container;if(s.isIE&&"dragReady"==this.state){var t=n(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);t>3&&e.dragDrop()}if("dragWait"===this.state){var t=n(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);t>0&&(e.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(),o=e.domEvent.detail||1;if(1===o&&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(s.isWebKit){this.cancelDrag=!0;var a=t.container;a.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}}).call(i.prototype),t.DragdropHandler=i}),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(e,t){"use strict";var i=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 n=i.getDocumentHead(),o=document.createElement("script");o.src=e,n.appendChild(o),o.onload=o.onreadystatechange=function(e,i){(i||!o.readyState||"loaded"==o.readyState||"complete"==o.readyState)&&(o=o.onload=o.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){"use strict";var i={},n=function(){this.propagationStopped=!0},o=function(){this.defaultPrevented=!0};i._emit=i._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var i=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(i.length||r){"object"==typeof t&&t||(t={}),t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=n),t.preventDefault||(t.preventDefault=o),i=i.slice();for(var s=0;sv;v++){var w=m[v];0===w.name.indexOf("data-ace-")&&(s[r(w.name.replace(/^data-ace-/,""))]=w.value)}var C=p.match(/^(.*)\/ace(\-\w+)?\.js(\?|$)/);C&&(a=C[1])}}a&&(s.base=s.base||a,s.packaged=!0),s.basePath=s.base,s.workerPath=s.workerPath||s.base,s.modePath=s.modePath||s.base,s.themePath=s.themePath||s.base,delete s.base;for(var E in s)"undefined"!=typeof s[E]&&t.set(E,s[E])}function r(e){return e.replace(/-(.)/g,function(e,t){return t.toUpperCase()})}var s=e("./lib/lang"),a=e("./lib/oop"),l=e("./lib/net"),c=e("./lib/event_emitter").EventEmitter,h=function(){return this}(),u={packaged:!1,workerPath:null,modePath:null,themePath:null,basePath:"",suffix:".js",$moduleUrls:{}};t.get=function(e){if(!u.hasOwnProperty(e))throw new Error("Unknown config key: "+e);return u[e]},t.set=function(e,t){if(!u.hasOwnProperty(e))throw new Error("Unknown config key: "+e);u[e]=t},t.all=function(){return s.copyObject(u)},a.implement(t,c),t.moduleUrl=function(e,t){if(u.$moduleUrls[e])return u.$moduleUrls[e];var i=e.split("/");t=t||i[i.length-2]||"";var n="snippets"==t?"/":"-",o=i[i.length-1];if("worker"==t&&"-"==n){var r=new RegExp("^"+t+"[\\-_]|[\\-_]"+t+"$","g");o=o.replace(r,"")}(!o||o==t)&&i.length>1&&(o=i[i.length-2]);var s=u[t+"Path"];return null==s?s=u.basePath:"/"==n&&(t=n=""),s&&"/"!=s.slice(-1)&&(s+="/"),s+t+n+o+this.get("suffix")},t.setModuleUrl=function(e,t){return u.$moduleUrls[e]=t},t.$loading={},t.loadModule=function(i,n){var o,r;Array.isArray(i)&&(r=i[0],i=i[1]);try{o=e(i)}catch(s){}if(o&&!t.$loading[i])return n&&n(o);if(t.$loading[i]||(t.$loading[i]=[]),t.$loading[i].push(n),!(t.$loading[i].length>1)){var a=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)})})};return t.get("packaged")?void l.loadScript(t.moduleUrl(i,r),a):a()}},o(!0),t.init=o;var d={setOptions:function(e){Object.keys(e).forEach(function(t){this.setOption(t,e[t])},this)},getOptions:function(e){var t={};return e?Array.isArray(e)||(t=e,e=Object.keys(t)):e=Object.keys(this.$options),e.forEach(function(e){t[e]=this.getOption(e)},this),t},setOption:function(e,t){if(this["$"+e]!==t){var i=this.$options[e];if(!i)return void("undefined"!=typeof console&&console.warn&&console.warn('misspelled option "'+e+'"'));if(i.forwardTo)return this[i.forwardTo]&&this[i.forwardTo].setOption(e,t);i.handlesSet||(this["$"+e]=t),i&&i.set&&i.set.call(this,t)}},getOption:function(e){var t=this.$options[e];return t?t.forwardTo?this[t.forwardTo]&&this[t.forwardTo].getOption(e):t&&t.get?t.get.call(this):this["$"+e]:void("undefined"!=typeof console&&console.warn&&console.warn('misspelled option "'+e+'"'))}},g={};t.defineOptions=function(e,t,i){return e.$options||(g[t]=e.$options={}),Object.keys(i).forEach(function(t){var n=i[t];"string"==typeof n&&(n={forwardTo:n}),n.name||(n.name=t),e.$options[n.name]=n,"initialValue"in n&&(e["$"+n.name]=n.initialValue)}),a.implement(e,d),this},t.resetOptions=function(e){Object.keys(e.$options).forEach(function(t){var i=e.$options[t];"value"in i&&e.setOption(t,i.value)})},t.setDefaultValue=function(e,i,n){var o=g[e]||(g[e]={});o[i]&&(o.forwardTo?t.setDefaultValue(o.forwardTo,i,n):o[i].value=n)},t.setDefaultValues=function(e,i){Object.keys(i).forEach(function(n){t.setDefaultValue(e,n,i[n])})}}),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){"use strict";var i=e("../lib/event"),n=e("../lib/useragent"),o=e("./default_handlers").DefaultHandlers,r=e("./default_gutter_handler").GutterHandler,s=e("./mouse_event").MouseEvent,a=e("./dragdrop_handler").DragdropHandler,l=e("../config"),c=function(e){var t=this;this.editor=e,new o(this),new r(this),new a(this);var s=function(t){!e.isFocused()&&e.textInput&&e.textInput.moveToMouse(t),e.focus()},l=e.renderer.getMouseEventTarget();i.addListener(l,"click",this.onMouseEvent.bind(this,"click")),i.addListener(l,"mousemove",this.onMouseMove.bind(this,"mousemove")),i.addMultiMouseDownListener(l,[400,300,250],this,"onMouseEvent"),e.renderer.scrollBarV&&(i.addMultiMouseDownListener(e.renderer.scrollBarV.inner,[400,300,250],this,"onMouseEvent"),i.addMultiMouseDownListener(e.renderer.scrollBarH.inner,[400,300,250],this,"onMouseEvent"),n.isIE&&(i.addListener(e.renderer.scrollBarV.element,"mousedown",s),i.addListener(e.renderer.scrollBarH.element,"mousemove",s))),i.addMouseWheelListener(e.container,this.onMouseWheel.bind(this,"mousewheel"));var c=e.renderer.$gutter;i.addListener(c,"mousedown",this.onMouseEvent.bind(this,"guttermousedown")),i.addListener(c,"click",this.onMouseEvent.bind(this,"gutterclick")),i.addListener(c,"dblclick",this.onMouseEvent.bind(this,"gutterdblclick")),i.addListener(c,"mousemove",this.onMouseEvent.bind(this,"guttermousemove")),i.addListener(l,"mousedown",s),i.addListener(c,"mousedown",function(t){return e.focus(),i.preventDefault(t)}),e.on("mousemove",function(i){if(!t.state&&!t.$dragDelay&&t.$dragEnabled){var n=e.renderer.screenToTextCoordinates(i.x,i.y),o=e.session.selection.getRange(),r=e.renderer;r.setCursorStyle(!o.isEmpty()&&o.insideStart(n.row,n.column)?"default":"")}})};(function(){this.onMouseEvent=function(e,t){this.editor._emit(e,new s(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 s(t,this.editor))},this.onMouseWheel=function(e,t){var i=new s(t,this.editor);i.speed=2*this.$scrollSpeed,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 o=this.editor.renderer;o.$keepTextAreaAtCursor&&(o.$keepTextAreaAtCursor=null);var r=this,a=function(e){if(e){if(n.isWebKit&&!e.which&&r.releaseMouse)return r.releaseMouse();r.x=e.clientX,r.y=e.clientY,t&&t(e),r.mouseEvent=new s(e,r.editor),r.$mouseMoved=!0}},l=function(e){clearInterval(h),c(),r[r.state+"End"]&&r[r.state+"End"](e),r.state="",null==o.$keepTextAreaAtCursor&&(o.$keepTextAreaAtCursor=!0,o.$moveTextAreaToCursor()),r.isMousePressed=!1,r.$onCaptureMouseMove=r.releaseMouse=null,e&&r.onMouseEvent("mouseup",e)},c=function(){r[r.state]&&r[r.state](),r.$mouseMoved=!1};if(n.isOldIE&&"dblclick"==e.domEvent.type)return setTimeout(function(){l(e)});r.$onCaptureMouseMove=a,r.releaseMouse=i.capture(this.editor.container,a,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&&i.stopEvent(t.domEvent))}.bind(this);setTimeout(e,10),this.editor.on("nativecontextmenu",e)}}).call(c.prototype),l.defineOptions(c.prototype,"mouseHandler",{scrollSpeed:{initialValue:2},dragDelay:{initialValue:n.isMac?150:0},dragEnabled:{initialValue:!0},focusTimout:{initialValue:0},tooltipFollowsMouse:{initialValue:!0}}),t.MouseHandler=c}),ace.define("ace/mouse/fold_handler",["require","exports","module"],function(e,t){"use strict";function i(e){e.on("click",function(t){var i=t.getDocumentPosition(),n=e.session,o=n.getFoldAt(i.row,i.column,1);o&&(t.getAccelKey()?n.removeFold(o):n.expandFold(o),t.stop())}),e.on("gutterclick",function(t){var i=e.renderer.$gutterLayer.getRegion(t);if("foldWidgets"==i){var n=t.getDocumentPosition().row,o=e.session;o.foldWidgets&&o.foldWidgets[n]&&e.session.onFoldWidgetClick(n,t),e.isFocused()||e.focus(),t.stop()}}),e.on("gutterdblclick",function(t){var i=e.renderer.$gutterLayer.getRegion(t);if("foldWidgets"==i){var n=t.getDocumentPosition().row,o=e.session,r=o.getParentFoldRangeData(n,!0),s=r.range||r.firstRange;if(s){n=s.start.row;var a=o.getFoldAt(n,o.getLine(n).length,1);a?o.removeFold(a):(o.addFold("...",s),e.renderer.scrollCursorIntoView({row:s.start.row,column:0}))}t.stop()}})}t.FoldHandler=i}),ace.define("ace/keyboard/keybinding",["require","exports","module","ace/lib/keys","ace/lib/event"],function(e,t){"use strict";var i=e("../lib/keys"),n=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?!1:(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,o){for(var r,s=!1,a=this.$editor.commands,l=this.$handlers.length;l--&&(r=this.$handlers[l].handleKeyboard(this.$data,e,t,i,o),!(r&&r.command&&(s="null"==r.command?!0:a.exec(r.command,this.$editor,r.args,o),s&&o&&-1!=e&&1!=r.passEvent&&1!=r.command.passEvent&&n.stopEvent(o),s))););return s},this.onCommandKey=function(e,t,n){var o=i.keyCodeToString(n);this.$callKeyboardHandlers(t,o,n,e)},this.onTextInput=function(e){var t=this.$callKeyboardHandlers(-1,e);t||this.$editor.commands.exec("insertstring",this.$editor,e)}}).call(o.prototype),t.KeyBinding=o}),ace.define("ace/range",["require","exports","module"],function(e,t){"use strict";var i=function(e,t){return e.row-t.row||e.column-t.column},n=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)?!1:!0:!1},this.insideStart=function(e,t){return 0==this.compare(e,t)?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return 0==this.compare(e,t)?this.isStart(e,t)?!1:!0:!1},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 o={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()?r.fromPoints(t,t):this.isBackwards()?r.fromPoints(t,e):r.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("undefined"==typeof 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,o=this.session.getFoldLine(n);return o?(n=o.start.row,i=o.end.row):i=n,t===!0?new r(n,0,i,this.session.getLine(i).length):new r(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.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.session.isTabStop(t)&&this.doc.getLine(t.row).slice(t.column-i,t.column).split(" ").length-1==i?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,t=this.lead.row,i=this.lead.column,n=this.doc.getLine(t),o=n.substring(i); +this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var r=this.session.getFoldAt(t,i,1);return r?void this.moveCursorTo(r.end.row,r.end.column):((e=this.session.nonTokenRe.exec(o))&&(i+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,o=n.substring(i)),i>=n.length?(this.moveCursorTo(t,n.length),this.moveCursorRight(),void(t=i?(this.moveCursorTo(t,0),this.moveCursorLeft(),void(t>0&&this.moveCursorWordLeft())):((r=this.session.tokenRe.exec(s))&&(i-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),void this.moveCursorTo(t,i))},this.$shortWordEndIndex=function(e){var t,i,n=0,o=/\s/,r=this.session.tokenRe;if(r.lastIndex=0,t=this.session.tokenRe.exec(e))n=this.session.tokenRe.lastIndex;else{for(;(i=e[n])&&o.test(i);)n++;if(1>n)for(r.lastIndex=0;(i=e[n])&&!r.test(i);)if(r.lastIndex=0,n++,o.test(i)){if(n>2){n--;break}for(;(i=e[n])&&o.test(i);)n++;if(n>2)break}}return r.lastIndex=0,n},this.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,i=this.doc.getLine(e),n=i.substring(t),o=this.session.getFoldAt(e,t,1);if(o)return this.moveCursorTo(o.end.row,o.end.column);if(t==i.length){var r=this.doc.getLength();do e++,n=this.doc.getLine(e);while(r>e&&/^\s*$/.test(n));/^\s+/.test(n)||(n=""),t=0}var s=this.$shortWordEndIndex(n);this.moveCursorTo(e,t+s)},this.moveCursorShortWordLeft=function(){var e,t=this.lead.row,i=this.lead.column;if(e=this.session.getFoldAt(t,i,-1))return this.moveCursorTo(e.start.row,e.start.column);var o=this.session.getLine(t).substring(0,i);if(0===i){do t--,o=this.doc.getLine(t);while(t>0&&/^\s*$/.test(o));i=o.length,/\s+$/.test(o)||(o="")}var r=n.stringReverse(o),s=this.$shortWordEndIndex(r);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=this.session.documentToScreenPosition(this.lead.row,this.lead.column);0===t&&(this.$desiredColumn?i.column=this.$desiredColumn:this.$desiredColumn=i.column);var n=this.session.screenToDocumentPosition(i.row+e,i.column);0!==e&&0===t&&n.row===this.lead.row&&n.column===this.lead.column&&this.session.lineWidgets&&this.session.lineWidgets[n.row]&&n.row++,this.moveCursorTo(n.row,n.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,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.call(null,this);var i=this.getCursor();return r.fromPoints(t,i)}catch(n){return r.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=r.fromPoints(e[t].start,e[t].end);e.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(s.prototype),t.Selection=s}),ace.define("ace/tokenizer",["require","exports","module"],function(e,t){"use strict";var i=2e3,n=function(e){this.states=e,this.regExps={},this.matchMappings={};for(var t in this.states){for(var i=this.states[t],n=[],o=0,r=this.matchMappings[t]={defaultToken:"text"},s="g",a=[],l=0;l1?this.$applyToken:c.token),u>1&&(/\\\d/.test(c.regex)?h=c.regex.replace(/\\([0-9]+)/g,function(e,t){return"\\"+(parseInt(t,10)+o+1)}):(u=1,h=this.removeCapturingGroups(c.regex)),c.splitRegex||"string"==typeof c.token||a.push(c)),r[o]=l,o+=u,n.push(h),c.onMatch||(c.onMatch=null)}}n.length||(r[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){i=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=[],o=0,r=i.length;r>o;o++)t[o]&&(n[n.length]={type:i[o],value:t[o]});return n},this.$arrayTokens=function(e){if(!e)return[];var t=this.splitRegex.exec(e);if(!t)return"text";for(var i=[],n=this.tokenArray,o=0,r=n.length;r>o;o++)t[o+1]&&(i[i.length]={type:n[o],value:t[o+1]});return i},this.removeCapturingGroups=function(e){var t=e.replace(/\[(?:\\.|[^\]])*?\]|\\.|\(\?[:=!]|(\()/g,function(e,t){return t?"(?:":e});return t},this.createSplitterRegexp=function(e,t){if(-1!=e.indexOf("(?=")){var i=0,n=!1,o={};e.replace(/(\\.)|(\((?:\?[=!])?)|(\))|([\[\]])/g,function(e,t,r,s,a,l){return n?n="]"!=a:a?n=!0:s?(i==o.stack&&(o.end=l+1,o.stack=-1),i--):r&&(i++,1!=r.length&&(o.stack=i,o.start=l)),e}),null!=o.end&&/^\)*$/.test(e.substr(o.end))&&(e=e.substring(0,o.start)+e.substr(o.end))}return new RegExp(e,(t||"").replace("g",""))},this.getLineTokens=function(e,t){if(t&&"string"!=typeof t){var n=t.slice(0);t=n[0],"#tmp"===t&&(n.shift(),t=n.shift())}else var n=[];var o=t||"start",r=this.states[o];r||(o="start",r=this.states[o]);var s=this.matchMappings[o],a=this.regExps[o];a.lastIndex=0;for(var l,c=[],h=0,u=0,d={type:null,value:""};l=a.exec(e);){var g=s.defaultToken,f=null,p=l[0],m=a.lastIndex;if(m-p.length>h){var v=e.substring(h,m-p.length);d.type==g?d.value+=v:(d.type&&c.push(d),d={type:g,value:v})}for(var A=0;Ai){for(u>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});h1&&n[0]!==o&&n.unshift("#tmp",o),{tokens:c,state:n.length?n:o}},this.reportError=function(e,t){var i=new Error(e);i.data=t,"object"==typeof console&&console.error&&console.error(i),setTimeout(function(){throw i})}}).call(n.prototype),t.Tokenizer=n}),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],function(e,t){"use strict";var i=e("../lib/lang"),n=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],o=0;o=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}}).call(i.prototype),t.TokenIterator=i}),ace.define("ace/mode/text",["require","exports","module","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/behaviour","ace/unicode","ace/lib/lang","ace/token_iterator","ace/range"],function(e,t){"use strict";var i=e("../tokenizer").Tokenizer,n=e("./text_highlight_rules").TextHighlightRules,o=e("./behaviour").Behaviour,r=e("../unicode"),s=e("../lib/lang"),a=e("../token_iterator").TokenIterator,l=e("../range").Range,c=function(){this.HighlightRules=n,this.$behaviour=new o};(function(){this.tokenRe=new RegExp("^["+r.packages.L+r.packages.Mn+r.packages.Mc+r.packages.Nd+r.packages.Pc+"\\$_]+","g"),this.nonTokenRe=new RegExp("^(?:[^"+r.packages.L+r.packages.Mn+r.packages.Mc+r.packages.Nd+r.packages.Pc+"\\$_]|\\s])+","g"),this.getTokenizer=function(){return this.$tokenizer||(this.$highlightRules=this.$highlightRules||new this.HighlightRules,this.$tokenizer=new i(this.$highlightRules.getRules())),this.$tokenizer},this.lineCommentStart="",this.blockComment="",this.toggleCommentLines=function(e,t,i,n){function o(e){for(var t=i;n>=t;t++)e(r.getLine(t),t)}var r=t.doc,a=!0,l=!0,c=1/0,h=t.getTabSize(),u=!1;if(this.lineCommentStart){if(Array.isArray(this.lineCommentStart))var d=this.lineCommentStart.map(s.escapeRegExp).join("|"),g=this.lineCommentStart[0];else var d=s.escapeRegExp(this.lineCommentStart),g=this.lineCommentStart;d=new RegExp("^(\\s*)(?:"+d+") ?"),u=t.getUseSoftTabs();var f=function(e,t){var i=e.match(d);if(i){var n=i[1].length,o=i[0].length;A(e,n,o)||" "!=i[0][o-1]||o--,r.removeInLine(t,n,o)}},p=g+" ",m=function(e,t){(!a||/\S/.test(e))&&(A(e,c,c)?r.insertInLine({row:t,column:c},p):r.insertInLine({row:t,column:c},g))},v=function(e){return d.test(e)},A=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 g=this.blockComment.start,w=this.blockComment.end,d=new RegExp("^(\\s*)(?:"+s.escapeRegExp(g)+")"),C=new RegExp("(?:"+s.escapeRegExp(w)+")\\s*$"),m=function(e,t){v(e,t)||(!a||/\S/.test(e))&&(r.insertInLine({row:t,column:e.length},w),r.insertInLine({row:t,column:c},g))},f=function(e,t){var i;(i=e.match(C))&&r.removeInLine(t,e.length-i[0].length,e.length),(i=e.match(d))&&r.removeInLine(t,i[1].length,i[0].length)},v=function(e,i){if(d.test(e))return!0;for(var n=t.getTokens(i),o=0;oi&&(c=i),l&&!v(e,t)&&(l=!1)):E>e.length&&(E=e.length)}),1/0==c&&(c=E,a=!1,l=!1),u&&c%h!=0&&(c=Math.floor(c/h)*h),o(l?f:m)},this.toggleBlockComment=function(e,t,i,n){var o=this.blockComment;if(o){!o.start&&o[0]&&(o=o[0]);var r,s,c=new a(t,n.row,n.column),h=c.getCurrentToken(),u=(t.selection,t.selection.toOrientedRange());if(h&&/comment/.test(h.type)){for(var d,g;h&&/comment/.test(h.type);){var f=h.value.indexOf(o.start);if(-1!=f){var p=c.getCurrentTokenRow(),m=c.getCurrentTokenColumn()+f;d=new l(p,m,p,m+o.start.length);break}h=c.stepBackward()}for(var c=new a(t,n.row,n.column),h=c.getCurrentToken();h&&/comment/.test(h.type);){var f=h.value.indexOf(o.end);if(-1!=f){var p=c.getCurrentTokenRow(),m=c.getCurrentTokenColumn()+f;g=new l(p,m,p,m+o.end.length);break}h=c.stepForward()}g&&t.remove(g),d&&(t.remove(d),r=d.start.row,s=-o.start.length)}else s=o.start.length,r=i.start.row,t.insert(i.end,o.end),t.insert(i.start,o.start);u.start.row==r&&(u.start.column+=s),u.end.row==r&&(u.end.column+=s),t.selection.fromOrientedRange(u)}},this.getNextLineIndent=function(e,t){return this.$getIndent(t)},this.checkOutdent=function(){return!1},this.autoOutdent=function(){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(){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;tr;r++)if("string"==typeof o[r].token)/keyword|support|storage/.test(o[r].token)&&i.push(o[r].regex);else if("object"==typeof o[r].token)for(var a=0,l=o[r].token.length;l>a;a++)if(/keyword|support|storage/.test(o[r].token[a])){var n=o[r].regex.match(/\(.+?\)/g)[a];i.push(n.substr(1,n.length-2))}this.completionKeywords=i}return e?i.concat(this.$keywordList||[]):this.$keywordList},this.$createKeywordList=function(){return this.$highlightRules||this.getTokenizer(),this.$keywordList=this.$highlightRules.$keywordList||[]},this.getCompletions=function(){var e=this.$keywordList||this.$createKeywordList();return e.map(function(e){return{name:e,value:e,score:0,meta:"keyword"}})},this.$id="ace/mode/text"}).call(c.prototype),t.Mode=c}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t){"use strict";var i=e("./lib/oop"),n=e("./lib/event_emitter").EventEmitter,o=t.Anchor=function(e,t,i){this.$onChange=this.onChange.bind(this),this.attach(e),"undefined"==typeof i?this.setPosition(t.row,t.column):this.setPosition(t,i)};(function(){i.implement(this,n),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){var t=e.data,i=t.range;if((i.start.row!=i.end.row||i.start.row==this.row)&&!(i.start.row>this.row||i.start.row==this.row&&i.start.column>this.column)){var n=this.row,o=this.column,r=i.start,s=i.end;"insertText"===t.action?r.row===n&&r.column<=o?r.column===o&&this.$insertRight||(r.row===s.row?o+=s.column-r.column:(o-=r.column,n+=s.row-r.row)):r.row!==s.row&&r.row=o?r.column:Math.max(0,o-(s.column-r.column)):r.row!==s.row&&r.row=this.document.getLength()?(i.row=Math.max(0,this.document.getLength()-1),i.column=this.document.getLine(i.row).length):0>e?(i.row=0,i.column=0):(i.row=e,i.column=Math.min(this.document.getLine(i.row).length,Math.max(0,t))),0>t&&(i.column=0),i}}).call(o.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/lib/event_emitter","ace/range","ace/anchor"],function(e,t){"use strict";var i=e("./lib/oop"),n=e("./lib/event_emitter").EventEmitter,o=e("./range").Range,r=e("./anchor").Anchor,s=function(e){this.$lines=[],0===e.length?this.$lines=[""]:Array.isArray(e)?this._insertLines(0,e):this.insert({row:0,column:0},e)};(function(){i.implement(this,n),this.setValue=function(e){var t=this.getLength();this.remove(new o(0,0,t,this.getLine(t-1).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new r(this,e,t)},this.$split=0==="aaa".split(/a/).length?function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}: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){if(e.start.row==e.end.row)return this.getLine(e.start.row).substring(e.start.column,e.end.column);var t=this.getLines(e.start.row,e.end.row);t[0]=(t[0]||"").substring(e.start.column);var i=t.length-1;return e.end.row-e.start.row==i&&(t[i]=t[i].substring(0,e.end.column)),t.join(this.getNewLineCharacter())},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<0&&(e.row=0),e},this.insert=function(e,t){if(!t||0===t.length)return e;e=this.$clipPosition(e),this.getLength()<=1&&this.$detectNewLine(t);var i=this.$split(t),n=i.splice(0,1)[0],o=0==i.length?null:i.splice(i.length-1,1)[0];return e=this.insertInLine(e,n),null!==o&&(e=this.insertNewLine(e),e=this._insertLines(e.row,i),e=this.insertInLine(e,o||"")),e},this.insertLines=function(e,t){return e>=this.getLength()?this.insert({row:e,column:0},"\n"+t.join("\n")):this._insertLines(Math.max(e,0),t)},this._insertLines=function(e,t){if(0==t.length)return{row:e,column:0};for(;t.length>61440;){var i=this._insertLines(e,t.slice(0,61440));t=t.slice(61440),e=i.row}var n=[e,0];n.push.apply(n,t),this.$lines.splice.apply(this.$lines,n);var r=new o(e,0,e+t.length,0),s={action:"insertLines",range:r,lines:t};return this._signal("change",{data:s}),r.end},this.insertNewLine=function(e){e=this.$clipPosition(e);var t=this.$lines[e.row]||"";this.$lines[e.row]=t.substring(0,e.column),this.$lines.splice(e.row+1,0,t.substring(e.column,t.length));var i={row:e.row+1,column:0},n={action:"insertText",range:o.fromPoints(e,i),text:this.getNewLineCharacter()};return this._signal("change",{data:n}),i},this.insertInLine=function(e,t){if(0==t.length)return e;var i=this.$lines[e.row]||"";this.$lines[e.row]=i.substring(0,e.column)+t+i.substring(e.column);var n={row:e.row,column:e.column+t.length},r={action:"insertText",range:o.fromPoints(e,n),text:t};return this._signal("change",{data:r}),n},this.remove=function(e){if(e instanceof o||(e=o.fromPoints(e.start,e.end)),e.start=this.$clipPosition(e.start),e.end=this.$clipPosition(e.end),e.isEmpty())return e.start;var t=e.start.row,i=e.end.row;if(e.isMultiLine()){var n=0==e.start.column?t:t+1,r=i-1;e.end.column>0&&this.removeInLine(i,0,e.end.column),r>=n&&this._removeLines(n,r),n!=t&&(this.removeInLine(t,e.start.column,this.getLine(t).length),this.removeNewLine(e.start.row))}else this.removeInLine(t,e.start.column,e.end.column);return e.start},this.removeInLine=function(e,t,i){if(t!=i){var n=new o(e,t,e,i),r=this.getLine(e),s=r.substring(t,i),a=r.substring(0,t)+r.substring(i,r.length);this.$lines.splice(e,1,a);var l={action:"removeText",range:n,text:s};return this._signal("change",{data:l}),n.start}},this.removeLines=function(e,t){return 0>e||t>=this.getLength()?this.remove(new o(e,0,t+1,0)):this._removeLines(e,t)},this._removeLines=function(e,t){var i=new o(e,0,t+1,0),n=this.$lines.splice(e,t-e+1),r={action:"removeLines",range:i,nl:this.getNewLineCharacter(),lines:n};return this._signal("change",{data:r}),n},this.removeNewLine=function(e){var t=this.getLine(e),i=this.getLine(e+1),n=new o(e,t.length,e+1,0),r=t+i;this.$lines.splice(e,2,r);var s={action:"removeText",range:n,text:this.getNewLineCharacter()};this._signal("change",{data:s})},this.replace=function(e,t){if(e instanceof o||(e=o.fromPoints(e.start,e.end)),0==t.length&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;if(this.remove(e),t)var i=this.insert(e.start,t);else i=e.start;return i},this.applyDeltas=function(e){for(var t=0;t=0;t--){var i=e[t],n=o.fromPoints(i.range.start,i.range.end);"insertLines"==i.action?this._removeLines(n.start.row,n.end.row-1):"insertText"==i.action?this.remove(n):"removeLines"==i.action?this._insertLines(n.start.row,i.lines):"removeText"==i.action&&this.insert(n.start,i.text)}},this.indexToPosition=function(e,t){for(var i=this.$lines||this.getAllLines(),n=this.getNewLineCharacter().length,o=t||0,r=i.length;r>o;o++)if(e-=i[o].length+n,0>e)return{row:o,column:e+i[o].length+n};return{row:r-1,column:i[r-1].length}},this.positionToIndex=function(e,t){for(var i=this.$lines||this.getAllLines(),n=this.getNewLineCharacter().length,o=0,r=Math.min(e.row,i.length),s=t||0;r>s;++s)o+=i[s].length+n;return o+e.column}}).call(s.prototype),t.Document=s}),ace.define("ace/background_tokenizer",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t){"use strict";var i=e("./lib/oop"),n=e("./lib/event_emitter").EventEmitter,o=function(e){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.tokenizer=e;var t=this;this.$worker=function(){if(t.running){for(var e=new Date,i=t.currentLine,n=-1,o=t.doc;t.lines[i];)i++;var r=i,s=o.getLength(),a=0;for(t.running=!1;s>i;){t.$tokenizeRow(i),n=i;do i++;while(t.lines[i]);if(a++,a%5===0&&new Date-e>20){t.running=setTimeout(t.$worker,20);break}}t.currentLine=i,n>=r&&t.fireUpdateEvent(r,n)}}};(function(){i.implement(this,n),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.range,i=t.start.row,n=t.end.row-i;if(0===n)this.lines[i]=null;else if("removeText"==e.action||"removeLines"==e.action)this.lines.splice(i,n+1,null),this.states.splice(i,n+1,null);else{var o=Array(n+1);o.unshift(i,1),this.lines.splice.apply(this.lines,o),this.states.splice.apply(this.states,o)}this.currentLine=Math.min(i,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){"use strict";var i=e("./lib/lang"),n=(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,o,r){if(this.regExp)for(var s=r.firstRow,a=r.lastRow,l=s;a>=l;l++){var c=this.cache[l];null==c&&(c=i.getMatchOffsets(o.getLine(l),this.regExp),c.length>this.MAX_RANGES&&(c=c.slice(0,this.MAX_RANGES)),c=c.map(function(e){return new n(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(o),this.clazz,r)}}}).call(o.prototype),t.SearchHighlight=o}),ace.define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(e,t){"use strict";function i(e,t){this.foldData=e,Array.isArray(t)?this.folds=t:t=this.folds=[t];var i=t[t.length-1];this.range=new n(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 n=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,o,r,s=0,a=this.folds,l=!0;null==t&&(t=this.end.row,i=this.end.column);for(var c=0;ce)return{row:n.start.row,column:n.start.column+e};if(e-=n.placeholder.length,0>e)return n.start;t=n.end.column}return{row:this.end.row,column:this.end.column+e}}}).call(i.prototype),t.FoldLine=i}),ace.define("ace/range_list",["require","exports","module","ace/range"],function(e,t){"use strict";var i=e("./range").Range,n=i.comparePoints,o=function(){this.ranges=[]};(function(){this.comparePoints=n,this.pointIndex=function(e,t,i){for(var o=this.ranges,r=i||0;r0)){var l=n(e,s.start);return 0===a?t&&0!==l?-r-2:r:l>0||0===l&&!t?r:-r-1}}return-r-1},this.add=function(e){var t=!e.isEmpty(),i=this.pointIndex(e.start,t);0>i&&(i=-i-1);var n=this.pointIndex(e.end,t,i);return 0>n?n=-n-1:n++,this.ranges.splice(i,n-i,e)},this.addList=function(e){for(var t=[],i=e.length;i--;)t.push.call(t,this.add(e[i]));return t},this.substractPoint=function(e){var t=this.pointIndex(e);return t>=0?this.ranges.splice(t,1):void 0},this.merge=function(){var e=[],t=this.ranges;t=t.sort(function(e,t){return n(e.start,t.start)});for(var i,o=t[0],r=1;rs||(0!=s||i.isEmpty()||o.isEmpty())&&(n(i.end,o.end)<0&&(i.end.row=o.end.row,i.end.column=o.end.column),t.splice(r,1),e.push(o),o=i,r--)}return this.ranges=t,e},this.contains=function(e,t){return this.pointIndex({row:e,column:t})>=0},this.containsPoint=function(e){return this.pointIndex(e)>=0},this.rangeAtPoint=function(e){var t=this.pointIndex(e);return t>=0?this.ranges[t]:void 0},this.clipRows=function(e,t){var i=this.ranges;if(i[0].start.row>t||i[i.length-1].start.rown&&(n=-n-1);var o=this.pointIndex({row:t,column:0},n);0>o&&(o=-o-1);for(var r=[],s=n;o>s;s++)r.push(i[s]);return r},this.removeAll=function(){return this.ranges.splice(0,this.ranges.length)},this.attach=function(e){this.session&&this.detach(),this.session=e,this.onChange=this.$onChange.bind(this),this.session.on("change",this.onChange)},this.detach=function(){this.session&&(this.session.removeListener("change",this.onChange),this.session=null)},this.$onChange=function(e){var t=e.data.range;if("i"==e.data.action[0])var i=t.start,n=t.end;else var n=t.start,i=t.end;for(var o=i.row,r=n.row,s=r-o,a=-i.column+n.column,l=this.ranges,c=0,h=l.length;h>c;c++){var u=l[c];if(!(u.end.rowo)break;if(u.start.row==o&&u.start.column>=i.column&&(u.start.column==i.column&&this.$insertRight||(u.start.column+=a,u.start.row+=s)),u.end.row==o&&u.end.column>=i.column){if(u.end.column==i.column&&this.$insertRight)continue;u.end.column==i.column&&a>0&&h-1>c&&u.end.column>u.start.column&&u.end.column==l[c+1].start.column&&(u.end.column-=a),u.end.column+=a,u.end.row+=s}}}if(0!=s&&h>c)for(;h>c;c++){var u=l[c];u.start.row+=s,u.end.row+=s}}}).call(o.prototype),t.RangeList=o}),ace.define("ace/edit_session/fold",["require","exports","module","ace/range","ace/range_list","ace/lib/oop"],function(e,t){"use strict";function i(e,t){e.row-=t.row,0==e.row&&(e.column-=t.column)}function n(e,t){i(e.start,t),i(e.end,t)}function o(e,t){0==e.row&&(e.column+=t.column),e.row+=t.row}function r(e,t){o(e.start,t),o(e.end,t)}var s=(e("../range").Range,e("../range_list").RangeList),a=e("../lib/oop"),l=t.Fold=function(e,t){this.foldLine=null,this.placeholder=t,this.range=e,this.start=e.start,this.end=e.end,this.sameRow=e.start.row==e.end.row,this.subFolds=this.ranges=[]};a.inherits(l,s),function(){this.toString=function(){return'"'+this.placeholder+'" '+this.range.toString()},this.setFoldLine=function(e){this.foldLine=e,this.subFolds.forEach(function(t){t.setFoldLine(e)})},this.clone=function(){var e=this.range.clone(),t=new l(e,this.placeholder);return this.subFolds.forEach(function(e){t.subFolds.push(e.clone())}),t.collapseChildren=this.collapseChildren,t},this.addSubFold=function(e){if(!this.range.isEqual(e)){if(!this.range.containsRange(e))throw new Error("A fold can't intersect already existing fold"+e.range+this.range);n(e,this.start);for(var t=e.start.row,i=e.start.column,o=0,r=-1;o=e)return o;if(o.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 o}return null},this.getFoldedRowCount=function(e,t){for(var i=this.$foldData,n=t-e+1,o=0;o=t){t>a&&(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,s=!1;e instanceof r?i=e:(i=new r(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(!(c>a||a==c&&h-2>=l))throw new Error("The range has to be at least 2 characters width");var u=this.getFoldAt(a,l,1),d=this.getFoldAt(c,h,-1);if(u&&d==u)return u.addSubFold(i);u&&!u.range.isStart(a,l)&&this.removeFold(u),d&&!d.range.isEnd(c,h)&&this.removeFold(d);var g=this.getFoldsInRange(i.range);g.length>0&&(this.removeFolds(g),g.forEach(function(e){i.addSubFold(e)}));for(var f=0;f0&&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,o;if(null==e?(i=new n(0,0,this.getLength(),0),t=!0):i="number"==typeof e?new n(e,0,e,this.getLine(e).length):"row"in e?n.fromPoints(e,e):e,o=this.getFoldsInRangeList(i),t)this.removeFolds(o);else for(var r=o;r.length;)this.expandFolds(r),r=this.getFoldsInRangeList(i);return o.length?o:void 0},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,o){null==n&&(n=e.start.row),null==o&&(o=0),null==t&&(t=e.end.row),null==i&&(i=this.getLine(t).length);var r=this.doc,s="";return e.walk(function(e,t,i,a){if(!(n>t)){if(t==n){if(o>i)return;a=Math.max(o,a)}s+=null!=e?e:r.getLine(t).substring(a,i)}},t,i),s},this.getDisplayLine=function(e,t,i,n){var o=this.getFoldLine(e);if(o)return this.getFoldDisplayLine(o,e,t,i,n);var r;return r=this.doc.getLine(e),r.substring(n||0,t||r.length)},this.$cloneFoldData=function(){var e=[];return e=this.$foldData.map(function(t){var i=t.folds.map(function(e){return e.clone()});return new o(e,i)})},this.toggleFold=function(e){var t,i,n=this.selection,o=n.getRange();if(o.isEmpty()){var r=o.start;if(t=this.getFoldAt(r.row,r.column))return void this.expandFold(t);(i=this.findMatchingBracket(r))?1==o.comparePoint(i)?o.end=i:(o.start=i,o.start.column++,o.end.column--):(i=this.findMatchingBracket({row:r.row,column:r.column+1}))?(1==o.comparePoint(i)?o.end=i:o.start=i,o.start.column++):o=this.getCommentFoldRange(r.row,r.column)||o}else{var s=this.getFoldsInRange(o);if(e&&s.length)return void this.expandFolds(s);1==s.length&&(t=s[0])}if(t||(t=this.getFoldAt(o.start.row,o.start.column)),t&&t.range.toString()==o.toString())return void this.expandFold(t); var a="...";if(!o.isMultiLine()){if(a=this.getTextRange(o),a.length<4)return;a=a.trim().substring(0,2)+".."}this.addFold(a,o)},this.getCommentFoldRange=function(e,t,i){var o=new s(this,e,t),r=o.getCurrentToken();if(r&&/^comment|string/.test(r.type)){var a=new n,l=new RegExp(r.type.replace(/\..*/,"\\."));if(1!=i){do r=o.stepBackward();while(r&&l.test(r.type));o.stepForward()}if(a.start.row=o.getCurrentTokenRow(),a.start.column=o.getCurrentTokenColumn()+2,o=new s(this,e,t),-1!=i){do r=o.stepForward();while(r&&l.test(r.type));r=o.stepBackward()}else r=o.getCurrentToken();return a.end.row=o.getCurrentTokenRow(),a.end.column=o.getCurrentTokenColumn()+r.value.length-2,a}},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 o=e;t>o;o++)if(null==n[o]&&(n[o]=this.getFoldWidget(o)),"start"==n[o]){var r=this.getFoldWidgetRange(o);if(r&&r.isMultiLine()&&r.end.row<=t&&r.start.row>=e){o=r.end.row;try{var s=this.addFold("...",r);s&&(s.collapseChildren=i)}catch(a){}}}}},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.removeListener("change",this.$updateFoldWidgets),this._emit("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.on("change",this.$updateFoldWidgets)}},this.getParentFoldRangeData=function(e,t){var i=this.foldWidgets;if(!i||t&&i[e])return{};for(var n,o=e-1;o>=0;){var r=i[o];if(null==r&&(r=i[o]=this.getFoldWidget(o)),"start"==r){var s=this.getFoldWidgetRange(o);if(n||(n=s),s&&s.end.row>=e)break}o--}return{range:-1!==o&&s,firstRange:n}},this.onFoldWidgetClick=function(e,t){t=t.domEvent;var i={children:t.shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey},n=this.$toggleFoldWidget(e,i);if(!n){var o=t.target||t.srcElement;o&&/ace_fold-widget/.test(o.className)&&(o.className+=" ace_invalid")}},this.$toggleFoldWidget=function(e,t){if(this.getFoldWidget){var i=this.getFoldWidget(e),n=this.getLine(e),o="end"===i?-1:1,r=this.getFoldAt(e,-1===o?0:n.length,o);if(r)return void(t.children||t.all?this.removeFold(r):this.expandFold(r));var s=this.getFoldWidgetRange(e,!0);if(s&&!s.isMultiLine()&&(r=this.getFoldAt(s.start.row,s.start.column,1),r&&s.isEqual(r.range)))return void this.removeFold(r);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,s.end.row,t.all?1e4:0)):s&&(t.all&&(s.collapseChildren=1e4),this.addFold("...",s));return s}},this.toggleFoldWidget=function(){var e=this.selection.getCursor().row;e=this.getRowFoldStart(e);var t=this.$toggleFoldWidget(e,{});if(!t){var i=this.getParentFoldRangeData(e,!0);if(t=i.range||i.firstRange){e=t.start.row;var n=this.getFoldAt(e,this.getLine(e).length,1);n?this.removeFold(n):this.addFold("...",t)}}},this.updateFoldWidgets=function(e){var t=e.data,i=t.range,n=i.start.row,o=i.end.row-n;if(0===o)this.foldWidgets[n]=null;else if("removeText"==t.action||"removeLines"==t.action)this.foldWidgets.splice(n,o+1,null);else{var r=Array(o+1);r.unshift(n,1),this.foldWidgets.splice.apply(this.foldWidgets,r)}}}var n=e("../range").Range,o=e("./fold_line").FoldLine,r=e("./fold").Fold,s=e("../token_iterator").TokenIterator;t.Folding=i}),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(e,t){"use strict";function i(){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 o=this.$brackets[e],r=1,s=new n(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|start|begin)\b/,"")+")+"));for(var l=t.column-s.getCurrentTokenColumn()-2,c=a.value;;){for(;l>=0;){var h=c.charAt(l);if(h==o){if(r-=1,0==r)return{row:s.getCurrentTokenRow(),column:l+s.getCurrentTokenColumn()}}else h==e&&(r+=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 o=this.$brackets[e],r=1,s=new n(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(?:end|start|begin)\b/,"")+")+"));for(var l=t.column-s.getCurrentTokenColumn();;){for(var c=a.value,h=c.length;h>l;){var u=c.charAt(l);if(u==o){if(r-=1,0==r)return{row:s.getCurrentTokenRow(),column:l+s.getCurrentTokenColumn()}}else u==e&&(r+=1);l+=1}do a=s.stepForward();while(a&&!i.test(a.type));if(null==a)break;l=0}return null}}}var n=e("../token_iterator").TokenIterator,o=e("../range").Range;t.BracketMatch=i}),ace.define("ace/edit_session",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/config","ace/lib/event_emitter","ace/selection","ace/mode/text","ace/range","ace/document","ace/background_tokenizer","ace/search_highlight","ace/edit_session/folding","ace/edit_session/bracket_match"],function(e,t){"use strict";var i=e("./lib/oop"),n=e("./lib/lang"),o=e("./config"),r=e("./lib/event_emitter").EventEmitter,s=e("./selection").Selection,a=e("./mode/text").Mode,l=e("./range").Range,c=e("./document").Document,h=e("./background_tokenizer").BackgroundTokenizer,u=e("./search_highlight").SearchHighlight,d=function(e,t){this.$breakpoints=[],this.$decorations=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$undoSelect=!0,this.$foldData=[],this.$foldData.toString=function(){return this.join("\n")},this.on("changeFold",this.onChangeFold.bind(this)),this.$onChange=this.onChange.bind(this),"object"==typeof e&&e.getLine||(e=new c(e)),this.setDocument(e),this.selection=new s(this),o.resetOptions(this),this.setMode(t),o._signal("session",this)};(function(){function e(e){return 4352>e?!1:e>=4352&&4447>=e||e>=4515&&4519>=e||e>=4602&&4607>=e||e>=9001&&9002>=e||e>=11904&&11929>=e||e>=11931&&12019>=e||e>=12032&&12245>=e||e>=12272&&12283>=e||e>=12288&&12350>=e||e>=12353&&12438>=e||e>=12441&&12543>=e||e>=12549&&12589>=e||e>=12593&&12686>=e||e>=12688&&12730>=e||e>=12736&&12771>=e||e>=12784&&12830>=e||e>=12832&&12871>=e||e>=12880&&13054>=e||e>=13056&&19903>=e||e>=19968&&42124>=e||e>=42128&&42182>=e||e>=43360&&43388>=e||e>=44032&&55203>=e||e>=55216&&55238>=e||e>=55243&&55291>=e||e>=63744&&64255>=e||e>=65040&&65049>=e||e>=65072&&65106>=e||e>=65108&&65126>=e||e>=65128&&65131>=e||e>=65281&&65376>=e||e>=65504&&65510>=e}i.implement(this,r),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;n>=i;){var o=i+n>>1,r=e[o];if(t>r)i=o+1;else{if(!(r>t))return o;n=o-1}}return i-1},this.resetCaches=function(){this.$modified=!0,this.$wrapData=[],this.$rowLengthCache=[],this.$resetRowCache(0),this.bgTokenizer&&this.bgTokenizer.start(0)},this.onChangeFold=function(e){var t=e.data;this.$resetRowCache(t.start.row)},this.onChange=function(e){var t=e.data;this.$modified=!0,this.$resetRowCache(t.range.start.row);var i=this.$updateInternalDataOnChange(e);this.$fromUndo||!this.$undoManager||t.ignore||(this.$deltasDoc.push(t),i&&0!=i.length&&this.$deltasFold.push({action:"removeFolds",folds:i}),this.$informUndoManager.schedule()),this.bgTokenizer&&this.bgTokenizer.$updateOnChange(t),this._signal("change",e)},this.setValue=function(e){this.doc.setValue(e),this.selection.moveTo(0,0),this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.setUndoManager(this.$undoManager),this.getUndoManager().reset()},this.getValue=this.toString=function(){return this.doc.getValue()},this.getSelection=function(){return this.selection},this.getState=function(e){return this.bgTokenizer.getState(e)},this.getTokens=function(e){return this.bgTokenizer.getTokens(e)},this.getTokenAt=function(e,t){var i,n=this.bgTokenizer.getTokens(e),o=0;if(null==t)r=n.length-1,o=this.getLine(e).length;else for(var r=0;r=t));r++);return(i=n[r])?(i.index=r,i.start=o-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=n.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()?n.stringRepeat(" ",this.getTabSize()):" "},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.$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 o=this.tokenRe;else if(/^\s+$/.test(i.slice(t-1,t+1)))var o=/\s/;else var o=this.nonTokenRe;var r=t;if(r>0){do r--;while(r>=0&&i.charAt(r).match(o));r++}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,o=0,r=this.$foldData[o],s=r?r.start.row:1/0,a=t.length,l=0;a>l;l++){if(l>s){if(l=r.end.row+1,l>=a)break;r=this.$foldData[o++],s=r?r.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.undoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var i=null,n=e.length-1;-1!=n;n--){var o=e[n];"doc"==o.group?(this.doc.revertDeltas(o.deltas),i=this.$getUndoSelection(o.deltas,!0,i)):o.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&&(r.start.column+=a),r.end.row==e.end.row&&r.end.column>e.end.column&&(r.end.column+=a)),s&&r.start.row>=e.end.row&&(r.start.row+=s,r.end.row+=s)}if(r.end=this.insert(r.start,n),o.length){var c=e.start,h=r.start,s=h.row-c.row,a=h.column-c.column;this.addFolds(o.map(function(e){return e=e.clone(),e.start.row==c.row&&(e.start.column+=a),e.end.row==c.row&&(e.end.column+=a),e.start.row+=s,e.end.row+=s,e}))}return r},this.indentRows=function(e,t,i){i=i.replace(/\t/g,this.getTabString());for(var n=e;t>=n;n++)this.insert({row:n,column:0},i)},this.outdentRows=function(e){for(var t=e.collapseRows(),i=new l(0,0,0,0),n=this.getTabSize(),o=t.start.row;o<=t.end.row;++o){var r=this.getLine(o);i.start.row=o,i.end.row=o;for(var s=0;n>s&&" "==r.charAt(s);++s);n>s&&" "==r.charAt(s)?(i.start.column=s,i.end.column=s+1):(i.start.column=0,i.end.column=s),this.remove(i)}},this.$moveLines=function(e,t,i){if(e=this.getRowFoldStart(e),t=this.getRowFoldEnd(t),0>i){var n=this.getRowFoldStart(e+i);if(0>n)return 0;var o=n-e}else if(i>0){var n=this.getRowFoldEnd(t+i);if(n>this.doc.getLength()-1)return 0;var o=n-t}else{e=this.$clipRowToDocument(e),t=this.$clipRowToDocument(t);var o=t-e+1}var r=new l(e,0,t,Number.MAX_VALUE),s=this.getFoldsInRange(r).map(function(e){return e=e.clone(),e.start.row+=o,e.end.row+=o,e}),a=0==i?this.doc.getLines(e,t):this.doc.removeLines(e,t);return this.doc.insertLines(e+o,a),s.length&&this.addFolds(s),o},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 0>t?0:Math.min(this.doc.getLine(e).length,t)},this.$clipPositionToDocument=function(e,t){if(t=Math.max(0,t),0>e)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._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):!1},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,i=this.$useWrapMode,n=e.data.action,o=e.data.range.start.row,r=e.data.range.end.row,s=e.data.range.start,a=e.data.range.end,l=null;if(-1!=n.indexOf("Lines")?(r="insertLines"==n?o+e.data.lines.length:o,t=e.data.lines?e.data.lines.length:r-o):t=r-o,this.$updating=!0,0!=t)if(-1!=n.indexOf("remove")){this[i?"$wrapData":"$rowLengthCache"].splice(o,t);var c=this.$foldData;l=this.getFoldsInRange(e.data.range),this.removeFolds(l);var h=this.getFoldLine(a.row),u=0;if(h){h.addRemoveChars(a.row,a.column,s.column-a.column),h.shiftRow(-t);var d=this.getFoldLine(o);d&&d!==h&&(d.merge(h),h=d),u=c.indexOf(h)+1}for(u;u=a.row&&h.shiftRow(-t)}r=o}else{var g=Array(t);g.unshift(o,0);var f=i?this.$wrapData:this.$rowLengthCache;f.splice.apply(f,g);var c=this.$foldData,h=this.getFoldLine(o),u=0;if(h){var p=h.range.compareInside(s.row,s.column);0==p?(h=h.split(s.row,s.column),h&&(h.shiftRow(t),h.addRemoveChars(r,0,a.column-s.column))):-1==p&&(h.addRemoveChars(o,0,a.column-s.column),h.shiftRow(t)),u=c.indexOf(h)+1}for(u;u=o&&h.shiftRow(t)}}else{t=Math.abs(e.data.range.start.column-e.data.range.end.column),-1!=n.indexOf("remove")&&(l=this.getFoldsInRange(e.data.range),this.removeFolds(l),t=-t);var h=this.getFoldLine(o);h&&h.addRemoveChars(o,s.column,t)}return i&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,i?this.$updateWrapData(o,r):this.$updateRowLengthCache(o,r),l},this.$updateRowLengthCache=function(e,t){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},this.$updateWrapData=function(e,t){var i,n,o=this.doc.getAllLines(),r=this.getTabSize(),s=this.$wrapData,a=this.$wrapLimit,l=e;for(t=Math.min(t,o.length-1);t>=l;)n=this.getFoldLine(l,n),n?(i=[],n.walk(function(e,t,n,r){var s;if(null!=e){s=this.$getDisplayTokens(e,i.length),s[0]=c;for(var a=1;at;){var h=r+t;if(e[h-1]>=f&&e[h]>=f)i(h);else if(e[h]!=c&&e[h]!=d){for(var u=Math.max(h-(l?10:t-(t>>2)),r-1);h>u&&e[h]u&&e[h]u&&e[h]==g;)h--}else for(;h>u&&e[h]u?i(++h):(h=r+t,e[h]==s&&h--,i(h))}else{for(h;h!=r-1&&e[h]!=c;h--);if(h>r){i(h);continue}for(h=r+t;hc;c++)r.push(m)}else 32==l?r.push(f):l>39&&48>l||l>57&&64>l?r.push(g):l>=4352&&e(l)?r.push(t,s):r.push(t)}return r},this.$getStringScreenWidth=function(t,i,n){if(0==i)return[0,0];null==i&&(i=1/0),n=n||0;var o,r;for(r=0;r=4352&&e(o)?2:1,!(n>i));r++);return[n,r]},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.getScreenLastRowColumn=function(e){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE);return this.documentToScreenColumn(t.row,t.column)},this.getDocumentLastRowColumn=function(e,t){var i=this.documentToScreenRow(e,t);return this.getScreenLastRowColumn(i)},this.getDocumentLastRowColumnPosition=function(e,t){var i=this.documentToScreenRow(e,t);return this.screenToDocumentPosition(i,Number.MAX_VALUE/10)},this.getRowSplitData=function(e){return this.$useWrapMode?this.$wrapData[e]:void 0},this.getScreenTabSize=function(e){return this.$tabSize-e%this.$tabSize},this.screenToDocumentRow=function(e,t){return this.screenToDocumentPosition(e,t).row},this.screenToDocumentColumn=function(e,t){return this.screenToDocumentPosition(e,t).column},this.screenToDocumentPosition=function(e,t){if(0>e)return{row:0,column:0};var i,n,o=0,r=0,s=0,a=0,l=this.$screenRowCache,c=this.$getRowCacheIndex(l,e),h=l.length;if(h&&c>=0)var s=l[c],o=this.$docRowCache[c],u=e>l[h-1];else var u=!h;for(var d=this.getLength()-1,g=this.getNextFoldLine(o),f=g?g.start.row:1/0;e>=s&&(a=this.getRowLength(o),!(s+a>e||o>=d));)s+=a,o++,o>f&&(o=g.end.row+1,g=this.getNextFoldLine(o,g),f=g?g.start.row:1/0),u&&(this.$docRowCache.push(o),this.$screenRowCache.push(s));if(g&&g.start.row<=o)i=this.getFoldDisplayLine(g),o=g.start.row;else{if(e>=s+a||o>d)return{row:d,column:this.getLine(d).length};i=this.getLine(o),g=null}if(this.$useWrapMode){var p=this.$wrapData[o];if(p){var m=Math.floor(e-s);n=p[m],m>0&&p.length&&(r=p[m-1]||p[p.length-1],i=i.substring(r))}}return r+=this.$getStringScreenWidth(i,t)[1],this.$useWrapMode&&r>=n&&(r=n-1),g?g.idxToPosition(r):{row:o,column:r}},this.documentToScreenPosition=function(e,t){if("undefined"==typeof t)var i=this.$clipPositionToDocument(e.row,e.column);else i=this.$clipPositionToDocument(e,t);e=i.row,t=i.column;var n=0,o=null,r=null;r=this.getFoldAt(e,t,1),r&&(e=r.start.row,t=r.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],u=e>l[h-1];else var u=!h;for(var d=this.getNextFoldLine(a),g=d?d.start.row:1/0;e>a;){if(a>=g){if(s=d.end.row+1,s>e)break;d=this.getNextFoldLine(s,d),g=d?d.start.row:1/0}else s=a+1;n+=this.getRowLength(a),a=s,u&&(this.$docRowCache.push(a),this.$screenRowCache.push(n))}var f="";if(d&&a>=g?(f=this.getFoldDisplayLine(d,e,t),o=d.start.row):(f=this.getLine(e).substring(0,t),o=e),this.$useWrapMode){var p=this.$wrapData[o];if(p){for(var m=0;f.length>=p[m];)n++,m++;f=f.substring(p[m-1]||0,f.length)}}return{row:n,column:this.$getStringScreenWidth(f)[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,o=0,t=this.$foldData[o++],r=t?t.start.row:1/0;i>n;){var s=this.$wrapData[n];e+=s?s.length+1:1,n++,n>r&&(n=t.end.row+1,t=this.$foldData[o++],r=t?t.start.row:1/0)}else{e=this.getLength();for(var a=this.$foldData,o=0;o=u;u++){for(var d=0;c>d;d++)if(-1==r[u+d].search(a[d]))continue e;var g=r[u],f=r[u+c-1],p=g.length-g.match(a[0])[0].length,m=f.match(a[c-1])[0].length;l&&l.end.row===u&&l.end.column>p||(s.push(l=new o(u,p,u+c-1,m)),c>2&&(u=u+c-2))}}else for(var v=0;vv&&s[v].start.columnv&&s[d].end.column>E&&s[d].end.row==n.end.row;)d--;for(s=s.slice(v,d+1),v=0,d=s.length;d>v;v++)s[v].start.row+=n.start.row,s[v].end.row+=n.start.row}return s},this.replace=function(e,t){var i=this.$options,n=this.$assembleRegExp(i);if(i.$isMultiLine)return t;if(n){var o=n.exec(e);if(!o||o[0].length!=e.length)return null;if(t=e.replace(n,t),i.preserveCase){t=t.split("");for(var r=Math.min(e.length,e.length);r--;){var s=e[r];t[r]=s&&s.toLowerCase()!=s?t[r].toUpperCase():t[r].toLowerCase()}t=t.join("")}return t}},this.$matchIterator=function(e,t){var n=this.$assembleRegExp(t);if(!n)return!1;var r,s=this,a=t.backwards;if(t.$isMultiLine)var l=n.length,c=function(t,i,s){var a=t.search(n[0]);if(-1!=a){for(var c=1;l>c;c++)if(t=e.getLine(i+c),-1==t.search(n[c]))return;var h=t.match(n[l-1])[0].length,u=new o(i,a,i+l-1,h);return 1==n.offset?(u.start.row--,u.start.column=Number.MAX_VALUE):s&&(u.start.column+=s),r(u)?!0:void 0}};else if(a)var c=function(e,t,o){for(var s=i.getMatchOffsets(e,n),a=s.length-1;a>=0;a--)if(r(s[a],t,o))return!0};else var c=function(e,t,o){for(var s=i.getMatchOffsets(e,n),a=0;a=s;n--)if(i(e.getLine(n),n))return;if(0!=t.wrap)for(n=a,s=r.row;n>=s;n--)if(i(e.getLine(n),n))return}}:function(i){var n=r.row,o=e.getLine(n).substr(r.column);if(!i(o,n,r.column)){for(n+=1;a>=n;n++)if(i(e.getLine(n),n))return;if(0!=t.wrap)for(n=s,a=r.row;a>=n;n++)if(i(e.getLine(n),n))return}};return{forEach:l}}}).call(r.prototype),t.Search=r}),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t){"use strict";function i(e,t){this.platform=t||(r.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=!0}function n(e,t){i.call(this,e,t),this.$singleCommand=!1}var o=e("../lib/keys"),r=e("../lib/useragent"),s=o.KEY_MODS;n.prototype=i.prototype,function(){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 o in n){var r=n[o];if(r==e)delete n[o];else if(Array.isArray(r)){var s=r.indexOf(e);-1!=s&&(r.splice(s,1),1==r.length&&(n[o]=r[0]))}}},this.bindKey=function(e,t,i){return"object"==typeof e&&(e=e[this.platform]),e?"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 o=e.split(/\s+/);e=o.pop(),o.forEach(function(e){var t=this.parseKeys(e),i=s[t.hashId]+t.key;n+=(n?" ":"")+i,this._addCommandToBinding(n,"chainKeys")},this),n+=" "}var r=this.parseKeys(e),a=s[r.hashId]+r.key;this._addCommandToBinding(n+a,t,i)},this):void 0},this._addCommandToBinding=function(e,t,i){var n,o=this.commandKeyBinding;t?!o[e]||this.$singleCommand?o[e]=t:(Array.isArray(o[e])?-1!=(n=o[e].indexOf(t))&&o[e].splice(n,1):o[e]=[o[e]],i||t.isDefault?o[e].unshift(t):o[e].push(t)):delete o[e]},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=s[e]+t;return this.commandKeyBinding[i]},this.handleKeyboard=function(e,t,i,n){var o=s[t]+i,r=this.commandKeyBinding[o];return e.$keyChain&&(e.$keyChain+=" "+o,r=this.commandKeyBinding[e.$keyChain]||r),!r||"chainKeys"!=r&&"chainKeys"!=r[r.length-1]?(e.$keyChain&&n>0&&(e.$keyChain=""),{command:r}):(e.$keyChain=e.$keyChain||o,{command:"null"})}}.call(i.prototype),t.HashHandler=i,t.MultiHashHandler=n}),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(e,t){"use strict";var i=e("../lib/oop"),n=e("../keyboard/hash_handler").MultiHashHandler,o=e("../lib/event_emitter").EventEmitter,r=function(e,t){n.call(this,t,e),this.byName=this.commands,this.setDefaultHandler("exec",function(e){return e.command.exec(e.editor,e.args||{})})};i.inherits(r,n),function(){i.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;var o={editor:t,command:e,args:i};return o.returnValue=this._emit("exec",o),this._signal("afterExec",o),o.returnValue===!1?!1:!0},this.toggleRecording=function(e){return this.$inReplay?void 0:(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(r.prototype),t.CommandManager=r}),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function(e,t){"use strict";function i(e,t){return{win:e,mac:t}}var n=e("../lib/lang"),o=e("../config"),r=e("../range").Range;t.commands=[{name:"showSettingsMenu",bindKey:i("Ctrl-,","Command-,"),exec:function(e){o.loadModule("ace/ext/settings_menu",function(t){t.init(e),e.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",bindKey:i("Alt-E","Ctrl-E"),exec:function(e){o.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",bindKey:i("Alt-Shift-E","Ctrl-Shift-E"),exec:function(e){o.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",bindKey:i("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",bindKey:i(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",bindKey:i("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:i("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:i("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",bindKey:i("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",bindKey:i("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},scrollIntoView:"center",readOnly:!0},{name:"foldall",bindKey:i("Ctrl-Alt-0","Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",bindKey:i("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",bindKey:i("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",bindKey:i("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",bindKey:i("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",bindKey:i("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",bindKey:i("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",bindKey:i("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:i("Ctrl-Shift-Home","Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",bindKey:i("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",bindKey:i("Shift-Up","Shift-Up"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",readOnly:!0},{name:"golineup",bindKey:i("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",readOnly:!0},{name:"selecttoend",bindKey:i("Ctrl-Shift-End","Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",bindKey:i("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",bindKey:i("Shift-Down","Shift-Down"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",bindKey:i("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",bindKey:i("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",bindKey:i("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",bindKey:i("Alt-Shift-Left","Command-Shift-Left"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",bindKey:i("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",bindKey:i("Shift-Left","Shift-Left"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",bindKey:i("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",bindKey:i("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",bindKey:i("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",bindKey:i("Alt-Shift-Right","Command-Shift-Right"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",bindKey:i("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",bindKey:i("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",bindKey:i("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:i(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",bindKey:i("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:i(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",bindKey:i("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",bindKey:i("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:i("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",bindKey:i("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",bindKey:i("Ctrl-P","Ctrl-P"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",readOnly:!0},{name:"selecttomatching",bindKey:i("Ctrl-Shift-P","Ctrl-Shift-P"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",readOnly:!0},{name:"passKeysToBrowser",bindKey:i("null","null"),exec:function(){},passEvent:!0,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:"removeline",bindKey:i("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",bindKey:i("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",bindKey:i("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",bindKey:i("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",bindKey:i("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",bindKey:i("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},multiSelectAction:"forEach"},{name:"modifyNumberDown",bindKey:i("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},multiSelectAction:"forEach"},{name:"replace",bindKey:i("Ctrl-H","Command-Option-F"),exec:function(e){o.loadModule("ace/ext/searchbox",function(t){t.Search(e,!0)})}},{name:"undo",bindKey:i("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",bindKey:i("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",bindKey:i("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",bindKey:i("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",bindKey:i("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",bindKey:i("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",bindKey:i("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",bindKey:i("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:i("Shift-Delete",null),exec:function(e){return e.selection.isEmpty()?void e.remove("left"):!1},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",bindKey:i("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",bindKey:i("Alt-Delete","Ctrl-K"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",bindKey:i("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",bindKey:i("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",bindKey:i("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",bindKey:i("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",bindKey:i("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",bindKey:i("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(n.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",bindKey:i(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",bindKey:i("Ctrl-T","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",bindKey:i("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",bindKey:i("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"expandtoline",bindKey:i("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:i(null,null),exec:function(e){for(var t=e.selection.isBackwards(),i=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),o=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),s=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<=o.row+1;h++){var u=n.stringTrimLeft(n.stringTrimRight(e.session.doc.getLine(h)));0!==u.length&&(u=" "+u),c+=u}o.row+10?(e.selection.moveCursorTo(i.row,i.column),e.selection.selectTo(i.row,i.column+l)):(s=e.session.doc.getLine(i.row).length>s?s+1:s,e.selection.moveCursorTo(i.row,s))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",bindKey:i(null,null),exec:function(e){var t=e.session.doc.getLength()-1,i=e.session.doc.getLine(t).length,n=e.selection.rangeList.ranges,o=[];n.length<1&&(n=[e.selection.getRange()]);for(var s=0;s=n.lastRow||i.end.row<=n.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead)}"animate"==t.scrollIntoView&&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 o=e.args;void 0===this.mergeNextCommand&&(this.mergeNextCommand=!0),n=n&&this.mergeNextCommand&&(!/\s/.test(o)||/\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;m.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){var t=this.session;if(t){this.session.removeEventListener("change",this.$onDocumentChange),this.session.removeEventListener("changeMode",this.$onChangeMode),this.session.removeEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.session.removeEventListener("changeTabSize",this.$onChangeTabSize),this.session.removeEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.session.removeEventListener("changeWrapMode",this.$onChangeWrapMode),this.session.removeEventListener("onChangeFold",this.$onChangeFold),this.session.removeEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.session.removeEventListener("changeBackMarker",this.$onChangeBackMarker),this.session.removeEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.session.removeEventListener("changeAnnotation",this.$onChangeAnnotation),this.session.removeEventListener("changeOverwrite",this.$onCursorChange),this.session.removeEventListener("changeScrollTop",this.$onScrollTopChange),this.session.removeEventListener("changeScrollLeft",this.$onScrollLeftChange);var i=this.session.getSelection();i.removeEventListener("changeCursor",this.$onCursorChange),i.removeEventListener("changeSelection",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.addEventListener("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.addEventListener("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.addEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.addEventListener("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.addEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.addEventListener("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.addEventListener("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.addEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.addEventListener("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.addEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.addEventListener("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.addEventListener("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.addEventListener("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.addEventListener("changeScrollLeft",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.addEventListener("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.addEventListener("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}),t&&t._signal("changeEditor",{oldEditor:this}),e&&e._signal("changeEditor",{editor:this})}},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")||n.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 d(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 v(e.session,i.row,i.column),o=n.getCurrentToken();if(!o||-1===o.type.indexOf("tag-name"))return t.removeMarker(t.$tagHighlight),void(t.$tagHighlight=null);var r=o.value,s=0,a=n.stepBackward();if("<"==a.value){do a=o,o=n.stepForward(),o&&o.value===r&&-1!==o.type.indexOf("tag-name")&&("<"===a.value?s++:"=0)}else{do o=a,a=n.stepBackward(),o&&o.value===r&&-1!==o.type.indexOf("tag-name")&&("<"===a.value?s++:"=s);n.stepForward()}if(!o)return t.removeMarker(t.$tagHighlight),void(t.$tagHighlight=null);var l=n.getCurrentTokenRow(),c=n.getCurrentTokenColumn(),h=new d(l,c,l,c+o.value.length);t.$tagHighlight&&0!==h.compareRange(t.$backMarkers[t.$tagHighlight].range)&&(t.removeMarker(t.$tagHighlight),t.$tagHighlight=null),h&&!t.$tagHighlight&&(t.$tagHighlight=t.addMarker(h,"ace_bracket","text"))}},50)}},this.focus=function(){var e=this;setTimeout(function(){e.textInput.focus()}),this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(e){this.$isFocused||(this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",e))},this.onBlur=function(e){this.$isFocused&&(this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",e))},this.$cursorChange=function(){this.renderer.updateCursor()},this.onDocumentChange=function(e){var t,i=e.data,n=i.range;t=n.start.row==n.end.row&&"insertLines"!=i.action&&"removeLines"!=i.action?n.end.row:1/0,this.renderer.updateLines(n.start.row,t,this.session.$useWrapMode),this._signal("change",e),this.$cursorChange(),this.$updateHighlightActiveLine()},this.onTokenizerUpdate=function(e){var t=e.data;this.renderer.updateLines(t.first,t.last)},this.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},this.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},this.onCursorChange=function(){this.$cursorChange(),this.$blockScrolling||this.renderer.scrollCursorIntoView(),this.$highlightBrackets(),this.$highlightTags(),this.$updateHighlightActiveLine(),this._signal("changeSelection")},this.$updateHighlightActiveLine=function(){var e,t=this.getSession();if(this.$highlightActiveLine&&("line"==this.$selectionStyle&&this.selection.isMultiLine()||(e=this.getCursorPosition()),!this.renderer.$maxLines||1!==this.session.getLength()||this.renderer.$minLines>1||(e=!1)),t.$highlightLineMarker&&!e)t.removeMarker(t.$highlightLineMarker.id),t.$highlightLineMarker=null;else if(!t.$highlightLineMarker&&e){var i=new d(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(){var e=this.session;if(e.$selectionMarker&&e.removeMarker(e.$selectionMarker),e.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var t=this.selection.getRange(),i=this.getSelectionStyle();e.$selectionMarker=e.addMarker(t,"ace_selection",i)}var n=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(n),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,o=e.getLine(t.start.row),r=o.length,s=o.substring(Math.max(i,0),Math.min(n,r));if(!(i>=0&&/^[\w\d]/.test(s)||r>=n&&/[\w\d]$/.test(s))&&(s=o.substring(t.start.column,t.end.column),/^[\w\d]+$/.test(s))){var a=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:s});return a}}},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){if(!this.$readOnly){var t={text:e};this._signal("paste",t),this.insert(t.text,!0)}},this.execCommand=function(e,t){return this.commands.exec(e,this,t)},this.insert=function(e,t){var i=this.session,n=i.getMode(),o=this.getCursorPosition();if(this.getBehavioursEnabled()&&!t){var r=n.transformAction(i.getState(o.row),"insertion",this,i,e);r&&(e!==r.text&&(this.session.mergeUndoDeltas=!1,this.$mergeNextCommand=!1),e=r.text)}if(" "==e&&(e=this.session.getTabString()),this.selection.isEmpty()){if(this.session.getOverwrite()){var s=new d.fromPoints(o,o);s.end.column+=e.length,this.session.remove(s)}}else{var s=this.getSelectionRange();o=this.session.remove(s),this.clearSelection()}if("\n"==e||"\r\n"==e){var a=i.getLine(o.row);if(o.column>a.search(/\S|$/)){var l=a.substr(o.column).search(/\S|$/);i.doc.removeInLine(o.row,o.column,o.column+l)}}this.clearSelection();{var c=o.column,h=i.getState(o.row),a=i.getLine(o.row),u=n.checkOutdent(h,a,e);i.insert(o,e)}if(r&&r.selection&&this.selection.setSelectionRange(2==r.selection.length?new d(o.row,c+r.selection[0],o.row,c+r.selection[1]):new d(o.row+r.selection[0],r.selection[1],o.row+r.selection[2],r.selection[3])),i.getDocument().isNewLine(e)){var g=n.getNextLineIndent(h,a.slice(0,o.column),i.getTabString());i.insert({row:o.row+1,column:0},g)}u&&n.autoOutdent(h,i,o.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),o=i.getMode().transformAction(n,"deletion",this,i,t);if(0===t.end.column){var r=i.getTextRange(t);if("\n"==r[r.length-1]){var s=i.getLine(t.end.row);/^\s+$/.test(s)&&(t.end.column=s.length)}}o&&(t=o)}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,o=this.session.getLine(e.row);tt.toLowerCase()?1:0});for(var n=new d(0,0,0,0),o=e.first;o<=e.last;o++){var r=t.getLine(o);n.start.row=o,n.end.row=o,n.end.column=r.length,t.replace(n,i[o-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){var r={value:o[0],start:o.index,end:o.index+o[0].length};return r}}return null},this.modifyNumber=function(e){var t=this.selection.getCursor().row,i=this.selection.getCursor().column,n=new d(t,i-1,t,i),o=this.session.getTextRange(n);if(!isNaN(parseFloat(o))&&isFinite(o)){var r=this.getNumberAt(t,i);if(r){var s=r.value.indexOf(".")>=0?r.start+r.value.indexOf(".")+1:r.end,a=r.start+r.value.length-s,l=parseFloat(r.value);l*=Math.pow(10,a),e*=s!==r.end&&s>i?Math.pow(10,r.end-i-1):Math.pow(10,r.end-i),l+=e,l/=Math.pow(10,a);var c=l.toFixed(a),h=new d(t,r.start,t,r.end);this.session.replace(h,c),this.moveCursorTo(t,Math.max(r.start+1,i+c.length-r.value.length))}}},this.removeLines=function(){var e,t=this.$getSelectedRows();e=0===t.first||t.last+1=s;)r[a].moveBy(o,0),a--}t.fromOrientedRange(t.ranges[0]),t.rangeList.attach(this.session)}},this.$getSelectedRows=function(){var e=this.getSelectionRange().collapseRows();return{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},this.onCompositionStart=function(){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,o=e*Math.floor(n.height/n.lineHeight);this.$blockScrolling++,t===!0?this.selection.$moveSelection(function(){this.moveCursorBy(o,0)}):t===!1&&(this.selection.moveCursorBy(o,0),this.selection.clearSelection()),this.$blockScrolling--;var r=i.scrollTop;i.scrollBy(0,o*n.lineHeight),null!=t&&i.scrollCursorIntoView(null,.5),i.animateScrolling(r)},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 v(this.session,i.row,i.column),o=n.getCurrentToken(),r=o||n.stepForward();if(r){var s,a,l=!1,c={},h=i.column-r.start,u={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(r.value.match(/[{}()\[\]]/g)){for(;h=0;--r)this.$tryReplace(i[r],e)&&n++;return this.selection.setSelectionRange(o),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,n){t||(t={}),"string"==typeof e||e instanceof RegExp?t.needle=e:"object"==typeof e&&i.mixin(t,e);var o=this.selection.getRange();null==t.needle&&(e=this.session.getTextRange(o)||this.$search.$options.needle,e||(o=this.session.getWordRange(o.start.row,o.start.column),e=this.session.getTextRange(o)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:o});var r=this.$search.find(this.session);return t.preventScroll?r:r?(this.revealRange(r,n),r):(t.backwards?o.start=o.end:o.end=o.start,void this.selection.setRange(o))},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),t!==!1&&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 o=this.$scrollAnchor;o.style.cssText="position:absolute",this.container.insertBefore(o,this.container.firstChild);var r=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,r=e.$cursorLayer.$pixelPos,s=e.layerConfig,a=r.top-s.offset;n=r.top>=0&&a+t.top<0?!0:r.topwindow.innerHeight?!1:null,null!=n&&(o.style.top=a+"px",o.style.left=r.left+"px",o.style.height=s.lineHeight+"px",o.scrollIntoView(n)),n=t=null}});this.setAutoScrollEditorIntoView=function(e){e||(delete this.setAutoScrollEditorIntoView,this.removeEventListener("changeSelection",r),this.renderer.removeEventListener("afterRender",a),this.renderer.removeEventListener("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,n.setCssClass(t.element,"ace_slim-cursors",/slim/.test(e)))}}).call(A.prototype),m.defineOptions(A.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(){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(){this.$resetCursorStyle()},initialValue:!1},cursorStyle:{set:function(){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)}},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",foldStyle:"session",mode:"session"}),t.Editor=A}),ace.define("ace/undomanager",["require","exports","module"],function(e,t){"use strict";var i=function(){this.reset()};(function(){this.execute=function(e){var t=e.args[0];this.$doc=e.args[1],e.merge&&this.hasUndo()&&(this.dirtyCounter--,t=this.$undoStack.pop().concat(t)),this.$undoStack.push(t),this.$redoStack=[],this.dirtyCounter<0&&(this.dirtyCounter=0/0),this.dirtyCounter++},this.undo=function(e){var t=this.$undoStack.pop(),i=null;return t&&(i=this.$doc.undoChanges(t,e),this.$redoStack.push(t),this.dirtyCounter--),i},this.redo=function(e){var t=this.$redoStack.pop(),i=null;return t&&(i=this.$doc.redoChanges(t,e),this.$undoStack.push(t),this.dirtyCounter++),i},this.reset=function(){this.$undoStack=[],this.$redoStack=[],this.dirtyCounter=0},this.hasUndo=function(){return this.$undoStack.length>0},this.hasRedo=function(){return this.$redoStack.length>0},this.markClean=function(){this.dirtyCounter=0},this.isClean=function(){return 0===this.dirtyCounter}}).call(i.prototype),t.UndoManager=i}),ace.define("ace/layer/gutter",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter"],function(e,t){"use strict";var i=e("../lib/dom"),n=e("../lib/oop"),o=e("../lib/lang"),r=e("../lib/event_emitter").EventEmitter,s=function(e){this.element=i.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(){n.implement(this,r),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&&(p=r.end.row+1,r=t.getNextFoldLine(p,r),s=r?r.start.row:1/0),p>o){for(;this.$cells.length>f+1;)g=this.$cells.pop(),this.element.removeChild(g.element);break}g=this.$cells[++f],g||(g={element:null,textNode:null,foldWidget:null},g.element=i.createElement("div"),g.textNode=document.createTextNode(""),g.element.appendChild(g.textNode),this.element.appendChild(g.element),this.$cells[f]=g);var m="ace_gutter-cell ";l[p]&&(m+=l[p]),c[p]&&(m+=c[p]),this.$annotations[p]&&(m+=this.$annotations[p].className),g.element.className!=m&&(g.element.className=m);var v=t.getRowLength(p)*e.lineHeight+"px";if(v!=g.element.style.height&&(g.element.style.height=v),a){var A=a[p];null==A&&(A=a[p]=t.getFoldWidget(p))}if(A){g.foldWidget||(g.foldWidget=i.createElement("span"),g.element.appendChild(g.foldWidget));var m="ace_fold-widget ace_"+A;m+="start"==A&&p==s&&pi.right-t.right?"foldWidgets":void 0}}).call(s.prototype),t.Gutter=s}),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(e,t){"use strict";var i=e("../range").Range,n=e("../lib/dom"),o=function(e){this.element=n.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)};(function(){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){var e=e||this.config;if(e){this.config=e;var t=[];for(var i in this.markers){var n=this.markers[i];if(n.range){var o=n.range.clipRows(e.firstRow,e.lastRow);if(!o.isEmpty())if(o=o.toScreenRange(this.session),n.renderer){var r=this.$getTop(o.start.row,e),s=this.$padding+o.start.column*e.characterWidth;n.renderer(t,o,s,r,e)}else"fullLine"==n.type?this.drawFullLineMarker(t,o,n.clazz,e):"screenLine"==n.type?this.drawScreenLineMarker(t,o,n.clazz,e):o.isMultiLine()?"text"==n.type?this.drawTextMarker(t,o,n.clazz,e):this.drawMultiLineMarker(t,o,n.clazz,e):this.drawSingleLineMarker(t,o,n.clazz+" ace_start",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(e,t,n,o,r){var s=t.start.row,a=new i(s,t.start.column,s,this.session.getScreenLastRowColumn(s));for(this.drawSingleLineMarker(e,a,n+" ace_start",o,1,r),s=t.end.row,a=new i(s,0,s,t.end.column),this.drawSingleLineMarker(e,a,n,o,0,r),s=t.start.row+1;s"),a=this.$getTop(t.end.row,n);var c=t.end.column*n.characterWidth;e.push("
"),s=(t.end.row-t.start.row-1)*n.lineHeight,0>s||(a=this.$getTop(t.start.row+1,n),e.push("
"))},this.drawSingleLineMarker=function(e,t,i,n,o,r){var s=n.lineHeight,a=(t.end.column+(o||0)-t.start.column)*n.characterWidth,l=this.$getTop(t.start.row,n),c=this.$padding+t.start.column*n.characterWidth;e.push("
")},this.drawFullLineMarker=function(e,t,i,n,o){var r=this.$getTop(t.start.row,n),s=n.lineHeight;t.start.row!=t.end.row&&(s+=this.$getTop(t.end.row,n)-r),e.push("
")},this.drawScreenLineMarker=function(e,t,i,n,o){var r=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){"use strict";var i=e("../lib/oop"),n=e("../lib/dom"),o=e("../lib/lang"),r=(e("../lib/useragent"),e("../lib/event_emitter").EventEmitter),s=function(e){this.element=n.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this)};(function(){i.implement(this,r),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;return this.EOL_CHAR!=e?(this.EOL_CHAR=e,!0):void 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?!1:(this.showInvisibles=e,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(e){return this.displayIndentGuides==e?!1:(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;e+1>i;i++)t.push(this.showInvisibles?""+this.TAB_CHAR+o.stringRepeat(" ",i-1)+"":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=this.TAB_CHAR+o.stringRepeat(" ",this.tabSize-1)}else var a=o.stringRepeat(" ",this.tabSize),l=a;this.$tabStrings[" "]=""+a+"",this.$tabStrings[" "]=""+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),o=Math.min(i,e.lastRow),r=this.element.childNodes,s=0,a=e.firstRow;n>a;a++){var l=this.session.getFoldLine(a);if(l){if(l.containsRow(n)){n=l.start.row;break}a=l.end.row}s++}for(var a=n,l=this.session.getNextFoldLine(a),c=l?l.start.row:1/0;;){if(a>c&&(a=l.end.row+1,l=this.session.getNextFoldLine(a,l),c=l?l.start.row:1/0),a>o)break;var h=r[s++];if(h){var u=[];this.$renderLine(u,a,!this.$useLineGroups(),a==c?l:!1),h.style.height=e.lineHeight*this.session.getRowLength(a)+"px",h.innerHTML=u.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 o=this.$renderLinesFragment(e,t.lastRow+1,e.lastRow);i.appendChild(o)}},this.$renderLinesFragment=function(e,t,i){for(var o=this.element.ownerDocument.createDocumentFragment(),r=t,s=this.session.getNextFoldLine(r),a=s?s.start.row:1/0;;){if(r>a&&(r=s.end.row+1,s=this.session.getNextFoldLine(r,s),a=s?s.start.row:1/0),r>i)break;var l=n.createElement("div"),c=[];if(this.$renderLine(c,r,!1,r==a?s:!1),l.innerHTML=c.join(""),this.$useLineGroups())l.className="ace_line_group",o.appendChild(l),l.style.height=e.lineHeight*this.session.getRowLength(r)+"px";else for(;l.firstChild;)o.appendChild(l.firstChild);r++}return o},this.update=function(e){this.config=e;for(var t=[],i=e.firstRow,n=e.lastRow,o=i,r=this.session.getNextFoldLine(o),s=r?r.start.row:1/0;;){if(o>s&&(o=r.end.row+1,r=this.session.getNextFoldLine(o,r),s=r?r.start.row:1/0),o>n)break;this.$useLineGroups()&&t.push("
"),this.$renderLine(t,o,!1,o==s?r:!1),this.$useLineGroups()&&t.push("
"),o++}this.element.innerHTML=t.join("")},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(e,t,i,n){var r=this,s=/\t|&|<|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\u3000\uFEFF])|[\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]/g,a=function(e,i,n,s){if(i)return r.showInvisibles?""+o.stringRepeat(r.SPACE_CHAR,e.length)+"":o.stringRepeat(" ",e.length);if("&"==e)return"&";if("<"==e)return"<";if(" "==e){var a=r.session.getScreenTabSize(t+s);return t+=a-1,r.$tabStrings[a]}if(" "==e){var l=r.showInvisibles?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",c=r.showInvisibles?r.SPACE_CHAR:"";return t+=1,""+c+""}return n?""+r.SPACE_CHAR+"":(t+=1,""+e+"")},l=n.replace(s,a);if(this.$textToken[i.type])e.push(l);else{var c="ace_"+i.type.replace(/\./g," ace_"),h="";"fold"==i.type&&(h=" style='width:"+i.value.length*this.config.characterWidth+"px;' "),e.push("",l,"")}return t+n.length},this.renderIndentGuide=function(e,t,i){var n=t.search(this.$indentGuideRe);return 0>=n||n>=i?t:" "==t[0]?(n-=n%this.tabSize,e.push(o.stringRepeat(this.$tabStrings[" "],n/this.tabSize)),t.substr(n)):" "==t[0]?(e.push(o.stringRepeat(this.$tabStrings[" "],n)),t.substr(n)):t},this.$renderWrappedLine=function(e,t,i,n){for(var o=0,r=0,s=i[0],a=0,l=0;l=s;)a=this.$renderToken(e,a,c,h.substring(0,s-o)),h=h.substring(s-o),o=s,n||e.push("","
"),r++,a=0,s=i[r]||Number.MAX_VALUE;0!=h.length&&(o+=h.length,a=this.$renderToken(e,a,c,h))}}},this.$renderSimpleLine=function(e,t){var i=0,n=t[0],o=n.value;this.displayIndentGuides&&(o=this.renderIndentGuide(e,o)),o&&(i=this.$renderToken(e,i,n,o));for(var r=1;r"),o.length){var r=this.session.getRowSplitData(t);r&&r.length?this.$renderWrappedLine(e,o,r,i):this.$renderSimpleLine(e,o)}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,r=0;r+e[n].value.lengthi-t&&(s=s.substring(0,i-t)),o.push({type:e[n].type,value:s}),r=t+s.length,n+=1}for(;i>r&&ni?{type:e[n].type,value:s.substring(0,i-r)}:e[n]),r+=s.length,n+=1}}var n=this.session,o=[],r=n.getTokens(e);return t.walk(function(e,t,s,a,l){null!=e?o.push({type:"fold",value:e}):(l&&(r=n.getTokens(t)),r.length&&i(r,a,s))},t.end.row,this.session.getLine(t.end.row).length),o},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(s.prototype),t.Text=s}),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(e,t){"use strict";var i,n=e("../lib/dom"),o=function(e){this.element=n.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),void 0===i&&(i="opacity"in this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),n.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=this.$updateVisibility.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||i||(this.smoothBlinking=e,n.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.$updateCursors=(e?this.$updateOpacity:this.$updateVisibility).bind(this),this.restartTimer())},this.addCursor=function(){var e=n.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,n.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,n.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.restartTimer=function(){var e=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.smoothBlinking&&n.removeCssClass(this.element,"ace_smooth-blinking"),e(!0),this.isBlinking&&this.blinkInterval&&this.isVisible){this.smoothBlinking&&setTimeout(function(){n.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),n=this.$padding+i.column*this.config.characterWidth,o=(i.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:n,top:o}},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,o=t.length;o>i;i++){var r=this.getPixelPosition(t[i].cursor,!0);if(!((r.top>e.height+e.offset||r.top<0)&&i>1)){var s=(this.cursors[n++]||this.addCursor()).style;s.left=r.left+"px",s.top=r.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=r,this.restartTimer()},this.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?n.addCssClass(this.element,"ace_overwrite-cursors"):n.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){"use strict";var i=e("./lib/oop"),n=e("./lib/dom"),o=e("./lib/event"),r=e("./lib/event_emitter").EventEmitter,s=function(e){this.element=n.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+this.classSuffix,this.inner=n.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(){i.implement(this,r),this.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e}}).call(s.prototype);var a=function(e,t){s.call(this,e),this.scrollTop=0,t.$scrollbarWidth=this.width=n.scrollbarWidth(e.ownerDocument),this.inner.style.width=this.element.style.width=(this.width||15)+5+"px"};i.inherits(a,s),function(){this.classSuffix="-v",this.onScroll=function(){this.skipEvent||(this.scrollTop=this.element.scrollTop,this._emit("scroll",{data:this.scrollTop})),this.skipEvent=!1},this.getWidth=function(){return this.isVisible?this.width:0},this.setHeight=function(e){this.element.style.height=e+"px"},this.setInnerHeight=function(e){this.inner.style.height=e+"px"},this.setScrollHeight=function(e){this.inner.style.height=e+"px"},this.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=this.element.scrollTop=e)}}.call(a.prototype);var l=function(e,t){s.call(this,e),this.scrollLeft=0,this.height=t.$scrollbarWidth,this.inner.style.height=this.element.style.height=(this.height||15)+5+"px"};i.inherits(l,s),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(l.prototype),t.ScrollBar=a,t.ScrollBarV=a,t.ScrollBarH=l,t.VScrollBar=a,t.HScrollBar=l}),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(e,t){"use strict";var i=e("./lib/event"),n=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;i.nextFrame(function(){t.pending=!1;for(var e;e=t.changes;)t.changes=0,t.onRender(e)},this.window)}}}).call(n.prototype),t.RenderLoop=n}),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){var i=e("../lib/oop"),n=e("../lib/dom"),o=e("../lib/lang"),r=e("../lib/useragent"),s=e("../lib/event_emitter").EventEmitter,a=0,l=t.FontMetrics=function(e){this.el=n.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=n.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=n.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),a||this.$testFractionalRect(),this.$measureNode.innerHTML=o.stringRepeat("X",a),this.$characterSize={width:0,height:0},this.checkForSizeChanges()};(function(){i.implement(this,s),this.$characterSize={width:0,height:0},this.$testFractionalRect=function(){var e=n.createElement("div");this.$setMeasureNodeStyles(e.style),e.style.width="0.2px",document.documentElement.appendChild(e);var t=e.getBoundingClientRect().width;a=t>0&&1>t?50:100,e.parentNode.removeChild(e)},this.$setMeasureNodeStyles=function(e,t){e.width=e.height="auto",e.left=e.top="-100px",e.visibility="hidden",e.position="fixed",e.whiteSpace="pre",r.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&&this.$pollSizeChangesTimer},this.$measureSizes=function(){if(50===a){var e=null;try{e=this.$measureNode.getBoundingClientRect()}catch(t){e={width:0,height:0}}var i={height:e.height,width:e.width/a}}else var i={height:this.$measureNode.clientHeight,width:this.$measureNode.clientWidth/a};return 0===i.width||0===i.height?null:i},this.$measureCharWidth=function(e){this.$main.innerHTML=o.stringRepeat(e,a);var t=this.$main.getBoundingClientRect();return t.width/a},this.getCharacterWidth=function(e){var t=this.charSizes[e];return void 0===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(l.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){"use strict";var i=e("./lib/oop"),n=e("./lib/dom"),o=e("./config"),r=e("./lib/useragent"),s=e("./layer/gutter").Gutter,a=e("./layer/marker").Marker,l=e("./layer/text").Text,c=e("./layer/cursor").Cursor,h=e("./scrollbar").HScrollBar,u=e("./scrollbar").VScrollBar,d=e("./renderloop").RenderLoop,g=e("./layer/font_metrics").FontMetrics,f=e("./lib/event_emitter").EventEmitter,p='.ace_editor { position: relative; overflow: hidden; font: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'source-code-pro\', monospace; direction: ltr; } .ace_scroller { position: absolute; overflow: hidden; top: 0; bottom: 0; background-color: inherit; -ms-user-select: none; -moz-user-select: none; -webkit-user-select: none; user-select: none; cursor: text; } .ace_content { position: absolute; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; min-width: 100%; } .ace_dragging .ace_scroller:before{ position: absolute; top: 0; left: 0; right: 0; bottom: 0; content: \'\'; background: rgba(250, 250, 250, 0.01); z-index: 1000; } .ace_dragging.ace_dark .ace_scroller:before{ background: rgba(0, 0, 0, 0.01); } .ace_selecting, .ace_selecting * { cursor: text !important; } .ace_gutter { position: absolute; overflow : hidden; width: auto; top: 0; bottom: 0; left: 0; cursor: default; z-index: 4; -ms-user-select: none; -moz-user-select: none; -webkit-user-select: none; user-select: none; } .ace_gutter-active-line { position: absolute; left: 0; right: 0; } .ace_scroller.ace_scroll-left { box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset; } .ace_gutter-cell { padding-left: 19px; padding-right: 6px; background-repeat: no-repeat; } .ace_gutter-cell.ace_error { background-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=="); background-repeat: no-repeat; background-position: 2px center; } .ace_gutter-cell.ace_warning { background-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=="); background-position: 2px center; } .ace_gutter-cell.ace_info { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII="); background-position: 2px center; } .ace_dark .ace_gutter-cell.ace_info { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC"); } .ace_scrollbar { position: absolute; right: 0; bottom: 0; z-index: 6; } .ace_scrollbar-inner { position: absolute; cursor: text; left: 0; top: 0; } .ace_scrollbar-v{ overflow-x: hidden; overflow-y: scroll; top: 0; } .ace_scrollbar-h { overflow-x: scroll; overflow-y: hidden; left: 0; } .ace_print-margin { position: absolute; height: 100%; } .ace_text-input { position: absolute; z-index: 0; width: 0.5em; height: 1em; opacity: 0; background: transparent; -moz-appearance: none; appearance: none; border: none; resize: none; outline: none; overflow: hidden; font: inherit; padding: 0 1px; margin: 0 -1px; text-indent: -1em; -ms-user-select: text; -moz-user-select: text; -webkit-user-select: text; user-select: text; } .ace_text-input.ace_composition { background: inherit; color: inherit; z-index: 1000; opacity: 1; text-indent: 0; } .ace_layer { z-index: 1; position: absolute; overflow: hidden; white-space: pre; height: 100%; width: 100%; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; pointer-events: none; } .ace_gutter-layer { position: relative; width: auto; text-align: right; pointer-events: auto; } .ace_text-layer { font: inherit !important; } .ace_cjk { display: inline-block; text-align: center; } .ace_cursor-layer { z-index: 4; } .ace_cursor { z-index: 4; position: absolute; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; border-left: 2px solid } .ace_slim-cursors .ace_cursor { border-left-width: 1px; } .ace_overwrite-cursors .ace_cursor { border-left-width: 0; border-bottom: 1px solid; } .ace_hidden-cursors .ace_cursor { opacity: 0.2; } .ace_smooth-blinking .ace_cursor { -webkit-transition: opacity 0.18s; transition: opacity 0.18s; } .ace_editor.ace_multiselect .ace_cursor { border-left-width: 1px; } .ace_marker-layer .ace_step, .ace_marker-layer .ace_stack { position: absolute; z-index: 3; } .ace_marker-layer .ace_selection { position: absolute; z-index: 5; } .ace_marker-layer .ace_bracket { position: absolute; z-index: 6; } .ace_marker-layer .ace_active-line { position: absolute; z-index: 2; } .ace_marker-layer .ace_selected-word { position: absolute; z-index: 4; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; } .ace_line .ace_fold { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; display: inline-block; height: 11px; margin-top: -2px; vertical-align: middle; background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="), url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII="); background-repeat: no-repeat, repeat-x; background-position: center center, top left; color: transparent; border: 1px solid black; border-radius: 2px; cursor: pointer; pointer-events: auto; } .ace_dark .ace_fold { } .ace_fold:hover{ background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="), url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC"); } .ace_tooltip { background-color: #FFF; background-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.1)); background-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1)); border: 1px solid gray; border-radius: 1px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); color: black; max-width: 100%; padding: 3px 4px; position: fixed; z-index: 999999; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; cursor: default; white-space: pre; word-wrap: break-word; line-height: normal; font-style: normal; font-weight: normal; letter-spacing: normal; pointer-events: none; } .ace_folding-enabled > .ace_gutter-cell { padding-right: 13px; } .ace_fold-widget { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; margin: 0 -12px 0 1px; display: none; width: 11px; vertical-align: top; background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg=="); background-repeat: no-repeat; background-position: center; border-radius: 3px; border: 1px solid transparent; cursor: pointer; } .ace_folding-enabled .ace_fold-widget { display: inline-block; } .ace_fold-widget.ace_end { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg=="); } .ace_fold-widget.ace_closed { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA=="); } .ace_fold-widget:hover { border: 1px solid rgba(0, 0, 0, 0.3); background-color: rgba(255, 255, 255, 0.2); box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7); } .ace_fold-widget:active { border: 1px solid rgba(0, 0, 0, 0.4); background-color: rgba(0, 0, 0, 0.05); box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8); } .ace_dark .ace_fold-widget { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC"); } .ace_dark .ace_fold-widget.ace_end { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg=="); } .ace_dark .ace_fold-widget.ace_closed { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg=="); } .ace_dark .ace_fold-widget:hover { box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2); background-color: rgba(255, 255, 255, 0.1); } .ace_dark .ace_fold-widget:active { box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2); } .ace_fold-widget.ace_invalid { background-color: #FFB4B4; border-color: #DE5555; } .ace_fade-fold-widgets .ace_fold-widget { -webkit-transition: opacity 0.4s ease 0.05s; transition: opacity 0.4s ease 0.05s; opacity: 0; } .ace_fade-fold-widgets:hover .ace_fold-widget { -webkit-transition: opacity 0.05s ease 0.05s; transition: opacity 0.05s ease 0.05s; opacity:1; } .ace_underline { text-decoration: underline; } .ace_bold { font-weight: bold; } .ace_nobold .ace_bold { font-weight: normal; } .ace_italic { font-style: italic; } .ace_error-marker { background-color: rgba(255, 0, 0,0.2); position: absolute; z-index: 9; } .ace_highlight-marker { background-color: rgba(255, 255, 0,0.2); position: absolute; z-index: 8; } '; -n.importCssString(p,"ace_editor");var m=function(e,t){var i=this;this.container=e||n.createElement("div"),this.$keepTextAreaAtCursor=!r.isOldIE,n.addCssClass(this.container,"ace_editor"),this.setTheme(t),this.$gutter=n.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.scroller=n.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=n.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new s(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new a(this.content);var f=this.$textLayer=new l(this.content);this.canvas=f.element,this.$markerFront=new a(this.content),this.$cursorLayer=new c(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new u(this.container,this),this.scrollBarH=new h(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 g(this.container,500),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 d(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,i.implement(this,f),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.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.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 o=this.container;n||(n=o.clientHeight||o.scrollHeight),i||(i=o.clientWidth||o.scrollWidth);var r=this.$updateCachedSize(e,t,i,n);if(!this.$size.scrollerHeight||!i&&!n)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(r|this.$changes,!0):this.$loop.schedule(r|this.$changes),this.resizing&&(this.resizing=0)}},this.$updateCachedSize=function(e,t,i,n){n-=this.$extraHeight||0;var o=0,r=this.$size,s={width:r.width,height:r.height,scrollerHeight:r.scrollerHeight,scrollerWidth:r.scrollerWidth};return n&&(e||r.height!=n)&&(r.height=n,o|=this.CHANGE_SIZE,r.scrollerHeight=r.height,this.$horizScroll&&(r.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",o|=this.CHANGE_SCROLL),i&&(e||r.width!=i)&&(o|=this.CHANGE_SIZE,r.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",r.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)&&(o|=this.CHANGE_FULL)),r.$dirty=!i||!n,o&&this._signal("resize",s),o},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.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=n.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=n.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.content},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.lineHeight;if(!(0>t||t>e.height-n)){var o=this.characterWidth;if(this.$composition){var r=this.textarea.value.replace(/^\x01+/,"");o*=this.session.$getStringScreenWidth(r)[0]+2,n+=2}i-=this.scrollLeft,i>this.$size.scrollerWidth-o&&(i=this.$size.scrollerWidth-o),i+=this.gutterWidth,this.textarea.style.height=n+"px",this.textarea.style.width=o+"px",this.textarea.style.left=Math.min(i,this.$size.scrollerWidth-o)+"px",this.textarea.style.top=Math.min(t,this.$size.height-n)+"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=Math.floor((this.layerConfig.height+this.layerConfig.offset)/this.layerConfig.lineHeight);return this.layerConfig.firstRow-1+e},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 o=this.scrollMargin;o.top=0|e,o.bottom=0|t,o.right=0|n,o.left=0|i,o.v=o.top+o.bottom,o.h=o.left+o.right,o.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-o.top),this.updateFull()},this.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},this.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},this.getVScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},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");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.max((this.$minLines||1)*this.lineHeight,Math.min(t,e))+this.scrollMargin.v+(this.$extraHeight||0),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 o=this.container.clientWidth;this.container.style.height=i+"px",this.$updateCachedSize(!0,this.$gutterWidth,o,i),this.desiredHeight=i,this._signal("autosize")}},this.$computeLayerConfig=function(){this.$maxLines&&this.lineHeight>1&&this.$autosize();var e=this.session,t=this.$size,i=t.height<=2*this.lineHeight,n=this.session.getScreenLength(),o=n*this.lineHeight,r=this.scrollTop%this.lineHeight,s=t.scrollerHeight+this.lineHeight,a=this.$getLongestLine(),l=!i&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-a-2*this.$padding<0),c=this.$horizScroll!==l;c&&(this.$horizScroll=l,this.scrollBarH.setVisible(l));var h=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;o+=h,this.session.setScrollTop(Math.max(-this.scrollMargin.top,Math.min(this.scrollTop,o-t.scrollerHeight+this.scrollMargin.bottom))),this.session.setScrollLeft(Math.max(-this.scrollMargin.left,Math.min(this.scrollLeft,a+2*this.$padding-t.scrollerWidth+this.scrollMargin.right)));var u=!i&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-o+h<0||this.scrollTop),d=this.$vScroll!==u;d&&(this.$vScroll=u,this.scrollBarV.setVisible(u));var g,f,p=Math.ceil(s/this.lineHeight)-1,m=Math.max(0,Math.round((this.scrollTop-r)/this.lineHeight)),v=m+p,A=this.lineHeight;m=e.screenToDocumentRow(m,0);var w=e.getFoldLine(m);w&&(m=w.start.row),g=e.documentToScreenRow(m,0),f=e.getRowLength(m)*A,v=Math.min(e.screenToDocumentRow(v,0),e.getLength()-1),s=t.scrollerHeight+e.getRowLength(v)*A+f,r=this.scrollTop-g*A;var C=0;return this.layerConfig.width!=a&&(C=this.CHANGE_H_SCROLL),(c||d)&&(C=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),d&&(a=this.$getLongestLine())),this.layerConfig={width:a,padding:this.$padding,firstRow:m,firstRowScreen:g,lastRow:v,lineHeight:A,characterWidth:this.characterWidth,minHeight:s,maxHeight:o,offset:r,gutterOffset:Math.max(0,Math.ceil((r+t.height-t.scrollerHeight)/A)),height:this.$size.scrollerHeight},C},this.$updateLines=function(){var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var i=this.layerConfig;return e>i.lastRow+1||tr?(t&&(r-=t*this.$size.scrollerHeight),0===r&&(r=-this.scrollMargin.top),this.session.setScrollTop(r)):l+this.$size.scrollerHeight-ao?(oi;++i)o.push(r(i/this.STEPS,e,t-e));return o},this.scrollToLine=function(e,t,i,n){var o=this.$cursorLayer.getPixelPosition({row:e,column:0}),r=o.top;t&&(r-=this.$size.scrollerHeight/2);var s=this.scrollTop;this.session.setScrollTop(r),i!==!1&&this.animateScrolling(s,n)},this.animateScrolling=function(e,t){var i=this.scrollTop;if(this.$animatedScroll){var n=this;if(e!=i){if(this.$scrollAnimation){var o=this.$scrollAnimation.steps;if(o.length&&(e=o[0],e==i))return}var r=n.$calcSteps(e,i);this.$scrollAnimation={from:e,to:i,steps:r},clearInterval(this.$timer),n.session.setScrollTop(r.shift()),n.session.$scrollTop=i,this.$timer=setInterval(function(){r.length?(n.session.setScrollTop(r.shift()),n.session.$scrollTop=i):null!=i?(n.session.$scrollTop=-1,n.session.setScrollTop(i),i=null):(n.$timer=clearInterval(n.$timer),n.$scrollAnimation=null,t&&t())},10)}}},this.scrollToY=function(e){this.scrollTop!==e&&(this.$loop.schedule(this.CHANGE_SCROLL),this.scrollTop=e)},this.scrollToX=function(e){this.scrollLeft!==e&&(this.scrollLeft=e),this.$loop.schedule(this.CHANGE_H_SCROLL)},this.scrollTo=function(e,t){this.session.setScrollTop(t),this.session.setScrollLeft(t)},this.scrollBy=function(e,t){t&&this.session.setScrollTop(this.session.getScrollTop()+t),e&&this.session.setScrollLeft(this.session.getScrollLeft()+e)},this.isScrollableBy=function(e,t){return 0>t&&this.session.getScrollTop()>=1-this.scrollMargin.top?!0:t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom?!0:0>e&&this.session.getScrollLeft()>=1-this.scrollMargin.left?!0:e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right?!0:void 0},this.pixelToScreenCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=(e+this.scrollLeft-i.left-this.$padding)/this.characterWidth,o=Math.floor((t+this.scrollTop-i.top)/this.lineHeight),r=Math.round(n);return{row:o,column:r,side:n-r>0?1:-1}},this.screenToTextCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=Math.round((e+this.scrollLeft-i.left-this.$padding)/this.characterWidth),o=(t+this.scrollTop-i.top)/this.lineHeight;return this.session.screenToDocumentPosition(o,Math.max(n,0))},this.textToScreenCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=this.session.documentToScreenPosition(e,t),o=this.$padding+Math.round(n.column*this.characterWidth),r=n.row*this.lineHeight;return{pageX:i.left+o-this.scrollLeft,pageY:i.top+r-this.scrollTop}},this.visualizeFocus=function(){n.addCssClass(this.container,"ace_focus")},this.visualizeBlur=function(){n.removeCssClass(this.container,"ace_focus")},this.showComposition=function(){this.$composition||(this.$composition={keepTextAreaAtCursor:this.$keepTextAreaAtCursor,cssText:this.textarea.style.cssText}),this.$keepTextAreaAtCursor=!0,n.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor()},this.setCompositionText=function(){this.$moveTextAreaToCursor()},this.hideComposition=function(){this.$composition&&(n.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(r.$themeId!=e)return t&&t();if(i.cssClass){n.importCssString(i.cssText,i.cssClass,r.container.ownerDocument),r.theme&&n.removeCssClass(r.container,r.theme.cssClass);var o="padding"in i?i.padding:"padding"in(r.theme||{})?4:r.$padding;r.$padding&&o!=r.$padding&&r.setPadding(o),r.$theme=i.cssClass,r.theme=i,n.addCssClass(r.container,i.cssClass),n.setCssClass(r.container,"ace_dark",i.isDark),r.$size&&(r.$size.width=0,r.$updateSizeAsync()),r._dispatchEvent("themeLoaded",{theme:i}),t&&t()}}var r=this;if(this.$themeId=e,r._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){n.setCssClass(this.container,e,t!==!1)},this.unsetStyle=function(e){n.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(m.prototype),o.defineOptions(m.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){n.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){return this.$gutterLineHighlight?(this.$gutterLineHighlight.style.display=e?"":"none",void(this.$cursorLayer.$pixelPos&&this.$updateGutterLineHighlight())):(this.$gutterLineHighlight=n.createElement("div"),this.$gutterLineHighlight.className="ace_gutter-active-line",void this.$gutter.appendChild(this.$gutterLineHighlight))},initialValue:!1,value:!0},hScrollBarAlwaysVisible:{set:function(){this.$hScrollBarAlwaysVisible&&this.$horizScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(){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(){this.updateFull()}},minLines:{set:function(){this.updateFull()}},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=m}),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(e,t){"use strict";var n=e("../lib/oop"),o=e("../lib/net"),r=e("../lib/event_emitter").EventEmitter,s=e("../config"),a=function(t,n,o,r){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),s.get("packaged")||!e.toUrl)r=r||s.moduleUrl(n.id,"worker");else{var a=this.$normalizePath;r=r||a(e.toUrl("ace/worker/worker.js",null,"_"));var l={};t.forEach(function(t){l[t]=a(e.toUrl(t,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}try{var c=n.src,h=i(18),u=new h([c],{type:"application/javascript"}),d=(window.URL||window.webkitURL).createObjectURL(u);this.$worker=new Worker(d)}catch(g){if(!(g instanceof window.DOMException))throw g;var u=this.$workerBlob(r),f=window.URL||window.webkitURL,p=f.createObjectURL(u);this.$worker=new Worker(p),f.revokeObjectURL(p)}this.$worker.postMessage({init:!0,tlns:l,module:n.id,classname:o}),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){n.implement(this,r),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 o.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(i){console.error(i.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.push(e.data):(this.deltaQueue=[e.data],setTimeout(this.$sendDeltaQueue,0))},this.$sendDeltaQueue=function(){var e=this.deltaQueue;e&&(this.deltaQueue=null,e.length>20&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e}))},this.$workerBlob=function(e){var t="importScripts('"+o.qualifyURL(e)+"');";try{return new Blob([t],{type:"application/javascript"})}catch(i){var n=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,r=new n;return r.append(t),r.getBlob("application/javascript")}}}).call(a.prototype);var l=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,o=!1,a=Object.create(r),l=this;this.$worker={},this.$worker.terminate=function(){},this.$worker.postMessage=function(e){l.messageBuffer.push(e),n&&(o?setTimeout(c):c())},this.setEmitSync=function(e){o=e};var c=function(){var e=l.messageBuffer.shift();e.command?n[e.command].apply(n,e.args):e.event&&a._signal(e.event,e.data)};a.postMessage=function(e){l.onMessage({data:e})},a.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},a.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},s.loadModule(["worker",t],function(e){for(n=new e[i](a);l.messageBuffer.length;)c()})};l.prototype=a.prototype,t.UIWorkerClient=l,t.WorkerClient=a}),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(e,t){"use strict";var i=e("./range").Range,n=e("./lib/event_emitter").EventEmitter,o=e("./lib/oop"),r=function(e,t,i,n,o,r){var s=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=o,this.othersClass=r,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,n),this.setup=function(){var e=this,t=this.doc,n=this.session,o=this.$pos;this.selectionBefore=n.selection.toJSON(),n.selection.inMultiSelectMode&&n.selection.toSingleRange(),this.pos=t.createAnchor(o.row,o.column),this.markerId=n.addMarker(new i(o.row,o.column,o.row,o.column+this.length),this.mainClass,null,!1),this.pos.on("change",function(t){n.removeMarker(e.markerId),e.markerId=n.addMarker(new i(t.value.row,t.value.column,t.value.row,t.value.column+e.length),e.mainClass,null,!1)}),this.others=[],this.$others.forEach(function(i){var n=t.createAnchor(i.row,i.column);e.others.push(n)}),n.setUndoSelect(!1)},this.showOtherMarkers=function(){if(!this.othersActive){var e=this.session,t=this;this.othersActive=!0,this.others.forEach(function(n){n.markerId=e.addMarker(new i(n.row,n.column,n.row,n.column+t.length),t.othersClass,null,!1),n.on("change",function(o){e.removeMarker(n.markerId),n.markerId=e.addMarker(new i(o.value.row,o.value.column,o.value.row,o.value.column+t.length),t.othersClass,null,!1)})})}},this.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var e=0;ee&&(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.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 o=this.container;n||(n=o.clientHeight||o.scrollHeight),i||(i=o.clientWidth||o.scrollWidth);var r=this.$updateCachedSize(e,t,i,n);if(!this.$size.scrollerHeight||!i&&!n)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(r|this.$changes,!0):this.$loop.schedule(r|this.$changes),this.resizing&&(this.resizing=0)}},this.$updateCachedSize=function(e,t,i,n){n-=this.$extraHeight||0;var o=0,r=this.$size,s={width:r.width,height:r.height,scrollerHeight:r.scrollerHeight,scrollerWidth:r.scrollerWidth};return n&&(e||r.height!=n)&&(r.height=n,o|=this.CHANGE_SIZE,r.scrollerHeight=r.height,this.$horizScroll&&(r.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",o|=this.CHANGE_SCROLL),i&&(e||r.width!=i)&&(o|=this.CHANGE_SIZE,r.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",r.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)&&(o|=this.CHANGE_FULL)),r.$dirty=!i||!n,o&&this._signal("resize",s),o},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.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=n.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=n.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.content},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.lineHeight;if(!(0>t||t>e.height-n)){var o=this.characterWidth;if(this.$composition){var r=this.textarea.value.replace(/^\x01+/,"");o*=this.session.$getStringScreenWidth(r)[0]+2,n+=2}i-=this.scrollLeft,i>this.$size.scrollerWidth-o&&(i=this.$size.scrollerWidth-o),i+=this.gutterWidth,this.textarea.style.height=n+"px",this.textarea.style.width=o+"px",this.textarea.style.left=Math.min(i,this.$size.scrollerWidth-o)+"px",this.textarea.style.top=Math.min(t,this.$size.height-n)+"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=Math.floor((this.layerConfig.height+this.layerConfig.offset)/this.layerConfig.lineHeight);return this.layerConfig.firstRow-1+e},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 o=this.scrollMargin;o.top=0|e,o.bottom=0|t,o.right=0|n,o.left=0|i,o.v=o.top+o.bottom,o.h=o.left+o.right,o.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-o.top),this.updateFull()},this.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},this.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},this.getVScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},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");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.max((this.$minLines||1)*this.lineHeight,Math.min(t,e))+this.scrollMargin.v+(this.$extraHeight||0),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 o=this.container.clientWidth;this.container.style.height=i+"px",this.$updateCachedSize(!0,this.$gutterWidth,o,i),this.desiredHeight=i,this._signal("autosize")}},this.$computeLayerConfig=function(){this.$maxLines&&this.lineHeight>1&&this.$autosize();var e=this.session,t=this.$size,i=t.height<=2*this.lineHeight,n=this.session.getScreenLength(),o=n*this.lineHeight,r=this.scrollTop%this.lineHeight,s=t.scrollerHeight+this.lineHeight,a=this.$getLongestLine(),l=!i&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-a-2*this.$padding<0),c=this.$horizScroll!==l;c&&(this.$horizScroll=l,this.scrollBarH.setVisible(l));var h=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;o+=h,this.session.setScrollTop(Math.max(-this.scrollMargin.top,Math.min(this.scrollTop,o-t.scrollerHeight+this.scrollMargin.bottom))),this.session.setScrollLeft(Math.max(-this.scrollMargin.left,Math.min(this.scrollLeft,a+2*this.$padding-t.scrollerWidth+this.scrollMargin.right)));var u=!i&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-o+h<0||this.scrollTop),d=this.$vScroll!==u;d&&(this.$vScroll=u,this.scrollBarV.setVisible(u));var g,f,p=Math.ceil(s/this.lineHeight)-1,m=Math.max(0,Math.round((this.scrollTop-r)/this.lineHeight)),v=m+p,A=this.lineHeight;m=e.screenToDocumentRow(m,0);var w=e.getFoldLine(m);w&&(m=w.start.row),g=e.documentToScreenRow(m,0),f=e.getRowLength(m)*A,v=Math.min(e.screenToDocumentRow(v,0),e.getLength()-1),s=t.scrollerHeight+e.getRowLength(v)*A+f,r=this.scrollTop-g*A;var C=0;return this.layerConfig.width!=a&&(C=this.CHANGE_H_SCROLL),(c||d)&&(C=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),d&&(a=this.$getLongestLine())),this.layerConfig={width:a,padding:this.$padding,firstRow:m,firstRowScreen:g,lastRow:v,lineHeight:A,characterWidth:this.characterWidth,minHeight:s,maxHeight:o,offset:r,gutterOffset:Math.max(0,Math.ceil((r+t.height-t.scrollerHeight)/A)),height:this.$size.scrollerHeight},C},this.$updateLines=function(){var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var i=this.layerConfig;return e>i.lastRow+1||tr?(t&&(r-=t*this.$size.scrollerHeight),0===r&&(r=-this.scrollMargin.top),this.session.setScrollTop(r)):l+this.$size.scrollerHeight-ao?(oi;++i)o.push(r(i/this.STEPS,e,t-e));return o},this.scrollToLine=function(e,t,i,n){var o=this.$cursorLayer.getPixelPosition({row:e,column:0}),r=o.top;t&&(r-=this.$size.scrollerHeight/2);var s=this.scrollTop;this.session.setScrollTop(r),i!==!1&&this.animateScrolling(s,n)},this.animateScrolling=function(e,t){var i=this.scrollTop;if(this.$animatedScroll){var n=this;if(e!=i){if(this.$scrollAnimation){var o=this.$scrollAnimation.steps;if(o.length&&(e=o[0],e==i))return}var r=n.$calcSteps(e,i);this.$scrollAnimation={from:e,to:i,steps:r},clearInterval(this.$timer),n.session.setScrollTop(r.shift()),n.session.$scrollTop=i,this.$timer=setInterval(function(){r.length?(n.session.setScrollTop(r.shift()),n.session.$scrollTop=i):null!=i?(n.session.$scrollTop=-1,n.session.setScrollTop(i),i=null):(n.$timer=clearInterval(n.$timer),n.$scrollAnimation=null,t&&t())},10)}}},this.scrollToY=function(e){this.scrollTop!==e&&(this.$loop.schedule(this.CHANGE_SCROLL),this.scrollTop=e)},this.scrollToX=function(e){this.scrollLeft!==e&&(this.scrollLeft=e),this.$loop.schedule(this.CHANGE_H_SCROLL)},this.scrollTo=function(e,t){this.session.setScrollTop(t),this.session.setScrollLeft(t)},this.scrollBy=function(e,t){t&&this.session.setScrollTop(this.session.getScrollTop()+t),e&&this.session.setScrollLeft(this.session.getScrollLeft()+e)},this.isScrollableBy=function(e,t){return 0>t&&this.session.getScrollTop()>=1-this.scrollMargin.top?!0:t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom?!0:0>e&&this.session.getScrollLeft()>=1-this.scrollMargin.left?!0:e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right?!0:void 0},this.pixelToScreenCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=(e+this.scrollLeft-i.left-this.$padding)/this.characterWidth,o=Math.floor((t+this.scrollTop-i.top)/this.lineHeight),r=Math.round(n);return{row:o,column:r,side:n-r>0?1:-1}},this.screenToTextCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=Math.round((e+this.scrollLeft-i.left-this.$padding)/this.characterWidth),o=(t+this.scrollTop-i.top)/this.lineHeight;return this.session.screenToDocumentPosition(o,Math.max(n,0))},this.textToScreenCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=this.session.documentToScreenPosition(e,t),o=this.$padding+Math.round(n.column*this.characterWidth),r=n.row*this.lineHeight;return{pageX:i.left+o-this.scrollLeft,pageY:i.top+r-this.scrollTop}},this.visualizeFocus=function(){n.addCssClass(this.container,"ace_focus")},this.visualizeBlur=function(){n.removeCssClass(this.container,"ace_focus")},this.showComposition=function(){this.$composition||(this.$composition={keepTextAreaAtCursor:this.$keepTextAreaAtCursor,cssText:this.textarea.style.cssText}),this.$keepTextAreaAtCursor=!0,n.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor()},this.setCompositionText=function(){this.$moveTextAreaToCursor()},this.hideComposition=function(){this.$composition&&(n.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(r.$themeId!=e)return t&&t();if(i.cssClass){n.importCssString(i.cssText,i.cssClass,r.container.ownerDocument),r.theme&&n.removeCssClass(r.container,r.theme.cssClass);var o="padding"in i?i.padding:"padding"in(r.theme||{})?4:r.$padding;r.$padding&&o!=r.$padding&&r.setPadding(o),r.$theme=i.cssClass,r.theme=i,n.addCssClass(r.container,i.cssClass),n.setCssClass(r.container,"ace_dark",i.isDark),r.$size&&(r.$size.width=0,r.$updateSizeAsync()),r._dispatchEvent("themeLoaded",{theme:i}),t&&t()}}var r=this;if(this.$themeId=e,r._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){n.setCssClass(this.container,e,t!==!1)},this.unsetStyle=function(e){n.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(m.prototype),o.defineOptions(m.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){n.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){return this.$gutterLineHighlight?(this.$gutterLineHighlight.style.display=e?"":"none",void(this.$cursorLayer.$pixelPos&&this.$updateGutterLineHighlight())):(this.$gutterLineHighlight=n.createElement("div"),this.$gutterLineHighlight.className="ace_gutter-active-line",void this.$gutter.appendChild(this.$gutterLineHighlight))},initialValue:!1,value:!0},hScrollBarAlwaysVisible:{set:function(){this.$hScrollBarAlwaysVisible&&this.$horizScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(){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(){this.updateFull()}},minLines:{set:function(){this.updateFull()}},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=m}),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(e,t){"use strict";var n=e("../lib/oop"),o=e("../lib/net"),r=e("../lib/event_emitter").EventEmitter,s=e("../config"),a=function(t,n,o,r){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),s.get("packaged")||!e.toUrl)r=r||s.moduleUrl(n.id,"worker");else{var a=this.$normalizePath;r=r||a(e.toUrl("ace/worker/worker.js",null,"_"));var l={};t.forEach(function(t){l[t]=a(e.toUrl(t,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}try{var c=n.src,h=i(21),u=new h([c],{type:"application/javascript"}),d=(window.URL||window.webkitURL).createObjectURL(u);this.$worker=new Worker(d)}catch(g){if(!(g instanceof window.DOMException))throw g;var u=this.$workerBlob(r),f=window.URL||window.webkitURL,p=f.createObjectURL(u);this.$worker=new Worker(p),f.revokeObjectURL(p)}this.$worker.postMessage({init:!0,tlns:l,module:n.id,classname:o}),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){n.implement(this,r),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 o.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(i){console.error(i.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.push(e.data):(this.deltaQueue=[e.data],setTimeout(this.$sendDeltaQueue,0))},this.$sendDeltaQueue=function(){var e=this.deltaQueue;e&&(this.deltaQueue=null,e.length>20&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e}))},this.$workerBlob=function(e){var t="importScripts('"+o.qualifyURL(e)+"');";try{return new Blob([t],{type:"application/javascript"})}catch(i){var n=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,r=new n;return r.append(t),r.getBlob("application/javascript")}}}).call(a.prototype);var l=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,o=!1,a=Object.create(r),l=this;this.$worker={},this.$worker.terminate=function(){},this.$worker.postMessage=function(e){l.messageBuffer.push(e),n&&(o?setTimeout(c):c())},this.setEmitSync=function(e){o=e};var c=function(){var e=l.messageBuffer.shift();e.command?n[e.command].apply(n,e.args):e.event&&a._signal(e.event,e.data)};a.postMessage=function(e){l.onMessage({data:e})},a.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},a.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},s.loadModule(["worker",t],function(e){for(n=new e[i](a);l.messageBuffer.length;)c()})};l.prototype=a.prototype,t.UIWorkerClient=l,t.WorkerClient=a}),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(e,t){"use strict";var i=e("./range").Range,n=e("./lib/event_emitter").EventEmitter,o=e("./lib/oop"),r=function(e,t,i,n,o,r){var s=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=o,this.othersClass=r,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,n),this.setup=function(){var e=this,t=this.doc,n=this.session,o=this.$pos;this.selectionBefore=n.selection.toJSON(),n.selection.inMultiSelectMode&&n.selection.toSingleRange(),this.pos=t.createAnchor(o.row,o.column),this.markerId=n.addMarker(new i(o.row,o.column,o.row,o.column+this.length),this.mainClass,null,!1),this.pos.on("change",function(t){n.removeMarker(e.markerId),e.markerId=n.addMarker(new i(t.value.row,t.value.column,t.value.row,t.value.column+e.length),e.mainClass,null,!1)}),this.others=[],this.$others.forEach(function(i){var n=t.createAnchor(i.row,i.column);e.others.push(n)}),n.setUndoSelect(!1)},this.showOtherMarkers=function(){if(!this.othersActive){var e=this.session,t=this;this.othersActive=!0,this.others.forEach(function(n){n.markerId=e.addMarker(new i(n.row,n.column,n.row,n.column+t.length),t.othersClass,null,!1),n.on("change",function(o){e.removeMarker(n.markerId),n.markerId=e.addMarker(new i(o.value.row,o.value.column,o.value.row,o.value.column+t.length),t.othersClass,null,!1)})})}},this.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var e=0;e=this.pos.column&&n.start.column<=this.pos.column+this.length+1){var r=n.start.column-this.pos.column;if(this.length+=o,!this.session.$fromUndo){if("insertText"===t.action)for(var s=this.others.length-1;s>=0;s--){var a=this.others[s],l={row:a.row,column:a.column+r};a.row===n.start.row&&n.start.column=0;s--){var a=this.others[s],l={row:a.row,column:a.column+r};a.row===n.start.row&&n.start.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.markerId),this.hideOtherMarkers(),this.doc.removeEventListener("change",this.$onUpdate),this.session.selection.removeEventListener("changeCursor",this.$onCursorChange),this.pos.detach();for(var e=0;ei;i++)e.undo(!0);this.selectionBefore&&this.session.selection.fromJSON(this.selectionBefore)}}).call(r.prototype),t.PlaceHolder=r}),ace.define("ace/mouse/multi_select_handler",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(e,t){function i(e,t){return e.row==t.row&&e.column==t.column}function n(e){var t=e.domEvent,n=t.altKey,s=t.shiftKey,a=t.ctrlKey,l=e.getAccelKey(),c=e.getButton();if(a&&r.isMac&&(c=t.button),e.editor.inMultiSelectMode&&2==c)return void e.editor.textInput.onContextMenu(e.domEvent);if(!a&&!n&&!l)return void(0===c&&e.editor.inMultiSelectMode&&e.editor.exitMultiSelectMode());if(0===c){var h,u=e.editor,d=u.selection,g=u.inMultiSelectMode,f=e.getDocumentPosition(),p=d.getCursor(),m=e.inSelection()||d.isEmpty()&&i(f,p),v=e.x,A=e.y,w=function(e){v=e.clientX,A=e.clientY},C=u.session,E=u.renderer.pixelToScreenCoordinates(v,A),F=E;if(u.$mouseHandler.$enableJumpToDef)a&&n||l&&n?h="add":n&&(h="block");else if(l&&!n){if(h="add",!g&&s)return}else n&&(h="block");if(h&&r.isMac&&t.ctrlKey&&u.$mouseHandler.cancelContextMenu(),"add"==h){if(!g&&m)return;if(!g){var y=d.toOrientedRange();u.addSelectionMarker(y)}var b=d.rangeList.rangeAtPoint(f);u.$blockScrolling++,u.inVirtualSelectionMode=!0,s&&(b=null,y=d.ranges[0],u.removeSelectionMarker(y)),u.once("mouseup",function(){var e=d.toOrientedRange();b&&e.isEmpty()&&i(b.cursor,e.cursor)?d.substractPoint(e.cursor):(s?d.substractPoint(y.cursor):y&&(u.removeSelectionMarker(y),d.addRange(y)),d.addRange(e)),u.$blockScrolling--,u.inVirtualSelectionMode=!1})}else if("block"==h){e.stop(),u.inVirtualSelectionMode=!0;var x,S=[],$=function(){var e=u.renderer.pixelToScreenCoordinates(v,A),t=C.screenToDocumentPosition(e.row,e.column);i(F,e)&&i(t,d.lead)||(F=e,u.selection.moveToPosition(t),u.renderer.scrollCursorIntoView(),u.removeSelectionMarkers(S),S=d.rectangularRangeBlock(F,E),u.$mouseHandler.$clickSelection&&1==S.length&&S[0].isEmpty()&&(S[0]=u.$mouseHandler.$clickSelection.clone()),S.forEach(u.addSelectionMarker,u),u.updateSelectionMarkers())};g&&!l?d.toSingleRange():!g&&l&&(x=d.toOrientedRange(),u.addSelectionMarker(x)),s?E=C.documentToScreenPosition(d.lead):d.moveToPosition(f),F={row:-1,column:-1};var B=function(){clearInterval(k),u.removeSelectionMarkers(S),S.length||(S=[d.toOrientedRange()]),u.$blockScrolling++,x&&(u.removeSelectionMarker(x),d.toSingleRange(x));for(var e=0;e1&&!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);return t?(this.$onRemoveRange(t),t[0]):void 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&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new s,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=a.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(i,t.cursor==t.start)}else{var i=this.getRange(),n=this.isBackwards(),o=i.start.row,r=i.end.row;if(o==r){if(n)var s=i.end,l=i.start;else var s=i.start,l=i.end;return this.addRange(a.fromPoints(l,l)),void this.addRange(a.fromPoints(s,s))}var c=[],h=this.getLineRange(o,!0);h.start.column=i.start.column,c.push(h);for(var u=o+1;r>u;u++)c.push(this.getLineRange(u,!0));h=this.getLineRange(r,!0),h.end.column=i.end.column,c.push(h),c.forEach(this.addRange,this)}},this.toggleBlockSelection=function(){if(this.rangeCount>1){var e=this.rangeList.ranges,t=e[e.length-1],i=a.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(i,t.cursor==t.start)}else{var n=this.session.documentToScreenPosition(this.selectionLead),o=this.session.documentToScreenPosition(this.selectionAnchor),r=this.rectangularRangeBlock(n,o);r.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,i){var o=[],r=e.columns&&(s=0),0>h&&(h=0),h==u&&(i=!0);for(var d=h;u>=d;d++){var g=a.fromPoints(this.session.screenToDocumentPosition(d,s),this.session.screenToDocumentPosition(d,l));if(g.isEmpty()){if(f&&n(g.end,f))break;var f=g.end}g.cursor=r?g.start:g.end,o.push(g)}if(c&&o.reverse(),!i){for(var p=o.length-1;o[p].isEmpty()&&p>0;)p--;if(p>0)for(var m=0;o[m].isEmpty();)m++;for(var v=p;v>=m;v--)o[v].isEmpty()&&o.splice(v,1)}return o}}.call(l.prototype);var m=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 o=t.indexOf(n);-1!=o&&t.splice(o,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(){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(d.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(d.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,o=i&&i.keepOrder,r=1==i||i&&i.$byLines,s=this.session,a=this.selection,c=a.rangeList,h=(o?a:c).ranges;if(!h.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var u=a._eventRegistry;a._eventRegistry={};var d=new l(s);this.inVirtualSelectionMode=!0;for(var g=h.length;g--;){if(r)for(;g>0&&h[g].start.row==h[g-1].end.row;)g--;d.fromOrientedRange(h[g]),d.index=g,this.selection=s.selection=d;var f=e.exec?e.exec(this,t||{}):e(this,t||{});n||void 0===f||(n=f),d.toOrientedRange(h[g])}d.detach(),this.selection=s.selection=a,this.inVirtualSelectionMode=!1,a._eventRegistry=u,a.mergeOverlappingRanges();var p=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),p&&p.from==p.to&&this.renderer.animateScrolling(p.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;nn.length||i.length<2||!i[1])return this.commands.exec("insertstring",this,e);for(var o=n.length;o--;){var r=n[o];r.isEmpty()||this.session.remove(r),this.session.insert(r.start,i[o])}}},this.findAll=function(e,t,i){if(t=t||{},t.needle=e||t.needle,void 0==t.needle){var n=this.selection.isEmpty()?this.selection.getWordRange():this.selection.getRange();t.needle=this.session.getTextRange(n)}this.$search.set(t);var o=this.$search.findAll(this.session);if(!o.length)return 0;this.$blockScrolling+=1;var r=this.multiSelect;i||r.toSingleRange(o[0]);for(var s=o.length;s--;)r.addRange(o[s],!0);return n&&r.rangeList.rangeAtPoint(n.start)&&r.addRange(n,!0),this.$blockScrolling-=1,o.length},this.selectMoreLines=function(e,t){var i=this.selection.toOrientedRange(),n=i.cursor==i.end,o=this.session.documentToScreenPosition(i.cursor);this.selection.$desiredColumn&&(o.column=this.selection.$desiredColumn);var r=this.session.screenToDocumentPosition(o.row+e,o.column);if(i.isEmpty())var s=r;else var l=this.session.documentToScreenPosition(n?i.end:i.start),s=this.session.screenToDocumentPosition(l.row+e,l.column);if(n){var c=a.fromPoints(r,s);c.cursor=c.start}else{var c=a.fromPoints(s,r);c.cursor=c.end}if(c.desiredColumn=o.column,this.selection.inMultiSelectMode){if(t)var h=i.cursor}else this.selection.addRange(i);this.selection.addRange(c),h&&this.selection.substractPoint(h)},this.transposeSelections=function(e){for(var t=this.session,i=t.multiSelect,n=i.ranges,o=n.length;o--;){var r=n[o];if(r.isEmpty()){var s=t.getWordRange(r.start.row,r.start.column);r.start.row=s.start.row,r.start.column=s.start.column,r.end.row=s.end.row,r.end.column=s.end.column}}i.mergeOverlappingRanges();for(var a=[],o=n.length;o--;){var r=n[o];a.unshift(t.getTextRange(r))}0>e?a.unshift(a.pop()):a.push(a.shift());for(var o=n.length;o--;){var r=n[o],s=r.clone();t.replace(r,a[o]),r.start.row=s.start.row,r.start.column=s.start.column}},this.selectMore=function(e,t,n){var o=this.session,r=o.multiSelect,s=r.toOrientedRange();if(!s.isEmpty()||(s=o.getWordRange(s.start.row,s.start.column),s.cursor=-1==e?s.start:s.end,this.multiSelect.addRange(s),!n)){var a=o.getTextRange(s),l=i(o,a,e);l&&(l.cursor=-1==e?l.start:l.end,this.$blockScrolling+=1,this.session.unfold(l),this.multiSelect.addRange(l),this.$blockScrolling-=1,this.renderer.scrollCursorIntoView(null,.5)),t&&this.multiSelect.substractPoint(s.cursor)}},this.alignCursors=function(){var e=this.session,t=e.multiSelect,i=t.ranges,n=-1,o=i.filter(function(e){return e.cursor.row==n?!0:void(n=e.cursor.row)});if(i.length&&o.length!=i.length-1){o.forEach(function(e){t.substractPoint(e.cursor)});var r=0,s=1/0,l=i.map(function(t){var i=t.cursor,n=e.getLine(i.row),o=n.substr(i.column).search(/\S/g);return-1==o&&(o=0),i.column>r&&(r=i.column),s>o&&(s=o),o});i.forEach(function(t,i){var n=t.cursor,o=r-n.column,c=l[i]-s;o>c?e.insert(n,u.stringRepeat(" ",o-c)):e.remove(new a(n.row,n.column,n.row,n.column-o+c)),t.start.column=t.end.column=r,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,g=h==d;if(g){var f,p=this.session.getLength();do f=this.session.getLine(d);while(/[=:]/.test(f)&&++d0);0>h&&(h=0),d>=p&&(d=p-1)}var m=this.session.doc.removeLines(h,d);m=this.$reAlignText(m,g),this.session.doc.insert({row:h,column:0},m.join("\n")+"\n"),g||(c.start.column=0,c.end.column=m[m.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 o(e){return e[2]?i(s+a-e[2].length)+e[2]+i(l," ")+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function r(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?o:n:r)}}).call(m.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(m.prototype,"editor",{enableMultiselect:{set:function(e){o(this),e?(this.on("changeSession",this.$multiselectOnSessionChange),this.on("mousedown",c)):(this.off("changeSession",this.$multiselectOnSessionChange),this.off("mousedown",c))},value:!0}})}),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(e,t){"use strict";var i=e("../../range").Range,n=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(){return null},this.indentationBlock=function(e,t,n){var o=/\S/,r=e.getLine(t),s=r.search(o);if(-1!=s){for(var a=n||r.length,l=e.getLength(),c=t,h=t;++t=u)break;h=t}}if(h>c){var d=e.getLine(h).length;return new i(c,a,h,d)}}},this.openingBracketBlock=function(e,t,n,o,r){var s={row:n,column:o+1},a=e.$findClosingBracket(t,s,r);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),i.fromPoints(s,a)}},this.closingBracketBlock=function(e,t,n,o){var r={row:n,column:o},s=e.$findOpeningBracket(t,r);return s?(s.column++,r.column--,i.fromPoints(s,r)):void 0}}).call(n.prototype)}),ace.define("ace/theme/textmate",["require","exports","module","ace/lib/dom"],function(e,t){"use strict";t.isDark=!1,t.cssClass="ace-tm",t.cssText='.ace-tm .ace_gutter { background: #f0f0f0; color: #333; } .ace-tm .ace_print-margin { width: 1px; background: #e8e8e8; } .ace-tm .ace_fold { background-color: #6B72E6; } .ace-tm { background-color: #FFFFFF; color: black; } .ace-tm .ace_cursor { color: black; } .ace-tm .ace_invisible { color: rgb(191, 191, 191); } .ace-tm .ace_storage, .ace-tm .ace_keyword { color: blue; } .ace-tm .ace_constant { color: rgb(197, 6, 11); } .ace-tm .ace_constant.ace_buildin { color: rgb(88, 72, 246); } .ace-tm .ace_constant.ace_language { color: rgb(88, 92, 246); } .ace-tm .ace_constant.ace_library { color: rgb(6, 150, 14); } .ace-tm .ace_invalid { background-color: rgba(255, 0, 0, 0.1); color: red; } .ace-tm .ace_support.ace_function { color: rgb(60, 76, 114); } .ace-tm .ace_support.ace_constant { color: rgb(6, 150, 14); } .ace-tm .ace_support.ace_type, .ace-tm .ace_support.ace_class { color: rgb(109, 121, 222); } .ace-tm .ace_keyword.ace_operator { color: rgb(104, 118, 135); } .ace-tm .ace_string { color: rgb(3, 106, 7); } .ace-tm .ace_comment { color: rgb(76, 136, 107); } .ace-tm .ace_comment.ace_doc { color: rgb(0, 102, 255); } .ace-tm .ace_comment.ace_doc.ace_tag { color: rgb(128, 159, 191); } .ace-tm .ace_constant.ace_numeric { color: rgb(0, 0, 205); } .ace-tm .ace_variable { color: rgb(49, 132, 149); } .ace-tm .ace_xml-pe { color: rgb(104, 104, 91); } .ace-tm .ace_entity.ace_name.ace_function { color: #0000A2; } .ace-tm .ace_heading { color: rgb(12, 7, 255); } .ace-tm .ace_list { color:rgb(185, 6, 144); } .ace-tm .ace_meta.ace_tag { color:rgb(0, 22, 142); } .ace-tm .ace_string.ace_regex { color: rgb(255, 0, 0) } .ace-tm .ace_marker-layer .ace_selection { background: rgb(181, 213, 255); } .ace-tm.ace_multiselect .ace_selection.ace_start { box-shadow: 0 0 3px 0px white; border-radius: 2px; } .ace-tm .ace_marker-layer .ace_step { background: rgb(252, 255, 0); } .ace-tm .ace_marker-layer .ace_stack { background: rgb(164, 229, 101); } .ace-tm .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid rgb(192, 192, 192); } .ace-tm .ace_marker-layer .ace_active-line { background: rgba(0, 0, 0, 0.07); } .ace-tm .ace_gutter-active-line { background-color : #dcdcdc; } .ace-tm .ace_marker-layer .ace_selected-word { background: rgb(250, 250, 255); border: 1px solid rgb(200, 200, 250); } .ace-tm .ace_indent-guide { background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y; } ';var i=e("../lib/dom");i.importCssString(t.cssText,t.cssClass)}),ace.define("ace/line_widgets",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/range"],function(e,t){"use strict";function i(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("changeEditor",this.$onChangeEditor)}{var n=(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&&(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(){var e=this.editor;if(e){this.editor=null,e.widgetManager=null,e.renderer.off("beforeRender",this.measureWidgets),e.renderer.off("afterRender",this.renderWidgets);var t=this.session.lineWidgets;t&&t.forEach(function(e){e&&e.el&&e.el.parentNode&&(e._inDocument=!1,e.el.parentNode.removeChild(e.el))})}},this.updateOnChange=function(e){var t=this.session.lineWidgets;if(t){var i=e.data,n=i.range,o=n.start.row,r=n.end.row-o;if(0===r);else if("removeText"==i.action||"removeLines"==i.action){var s=t.splice(o+1,r);s.forEach(function(e){e&&this.removeLineWidget(e)},this),this.$updateRows()}else{var a=new Array(r);a.unshift(o,0),t.splice.apply(t,a),this.$updateRows()}}},this.$updateRows=function(){var e=this.session.lineWidgets;if(e){var t=!0;e.forEach(function(e,i){e&&(t=!1,e.row=i)}),t&&(this.session.lineWidgets=null)}},this.addLineWidget=function(e){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength())),this.session.lineWidgets[e.row]=e;var t=this.editor.renderer;return e.html&&!e.el&&(e.el=n.createElement("div"),e.el.innerHTML=e.html),e.el&&(n.addCssClass(e.el,"ace_lineWidgetContainer"),e.el.style.position="absolute",e.el.style.zIndex=5,t.container.appendChild(e.el),e._inDocument=!0),e.coverGutter||(e.el.style.zIndex=3),e.pixelHeight||(e.pixelHeight=e.el.offsetHeight),null==e.rowCount&&(e.rowCount=e.pixelHeight/t.layerConfig.lineHeight),this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows(),this.renderWidgets(null,t),e},this.removeLineWidget=function(e){if(e._inDocument=!1,e.el&&e.el.parentNode&&e.el.parentNode.removeChild(e.el),e.editor&&e.editor.destroy)try{e.editor.destroy()}catch(t){}this.session.lineWidgets&&(this.session.lineWidgets[e.row]=void 0),this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows()},this.onWidgetChanged=function(e){this.session._changedWidgets.push(e),this.editor&&this.editor.renderer.updateFull()},this.measureWidgets=function(e,t){var i=this.session._changedWidgets,n=t.layerConfig;if(i&&i.length){for(var o=1/0,r=0;ra&&(a=0)),s.rowCount!=a&&(s.rowCount=a,s.row0&&!n[o];)o--;this.firstRow=i.firstRow,this.lastRow=i.lastRow,t.$cursorLayer.config=i;for(var s=o;r>=s;s++){var a=n[s];if(a&&a.el){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.el.style.right=a.fixedWidth?t.scrollBar.getWidth()+"px":""}}}}}).call(i.prototype),t.LineWidgets=i}),ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range"],function(e,t){"use strict";function i(e,t,i){for(var n=0,o=e.length-1;o>=n;){var r=n+o>>1,s=i(t,e[r]);if(s>0)n=r+1;else{if(!(0>s))return r;o=r-1}}return-(n+1)}function n(e,t,n){var o=e.getAnnotations().sort(s.comparePoints);if(o.length){var r=i(o,{row:t,column:-1},s.comparePoints);0>r&&(r=-r-1),r>=o.length-1?r=n>0?0:o.length-1:0===r&&0>n&&(r=o.length-1);var a=o[r];if(a&&n){if(a.row===t){do a=o[r+=n];while(a&&a.row===t);if(!a)return o.slice()}var l=[];t=a.row;do l[0>n?"unshift":"push"](a),a=o[r+=n];while(a&&a.row==t);return l.length&&l}}}var o=e("../line_widgets").LineWidgets,r=e("../lib/dom"),s=e("../range").Range;t.showErrorMarker=function(e,t){var i=e.session;i.widgetManager||(i.widgetManager=new o(i),i.widgetManager.attach(e));var s=e.getCursorPosition(),a=s.row,l=i.lineWidgets&&i.lineWidgets[a];l?l.destroy():a-=t;var c,h=n(i,a,t);if(h){var u=h[0];s.column=(u.pos&&"number"!=typeof u.column?u.pos.sc:u.column)||0,s.row=u.row,c=e.renderer.$gutterLayer.$annotations[s.row]}else{if(l)return;c={text:["Looks good!"],className:"ace_ok"}}e.session.unfold(s.row),e.selection.moveToPosition(s);var d={row:s.row,fixedWidth:!0,coverGutter:!0,el:r.createElement("div")},g=d.el.appendChild(r.createElement("div")),f=d.el.appendChild(r.createElement("div"));f.className="error_widget_arrow "+c.className; var p=e.renderer.$cursorLayer.getPixelPosition(s).left;f.style.left=p+e.renderer.gutterWidth-5+"px",d.el.className="error_widget_wrapper",g.className="error_widget "+c.className,g.innerHTML=c.text.join("
"),g.appendChild(r.createElement("div"));var m=function(e,t,i){return 0!==t||"esc"!==i&&"return"!==i?void 0:(d.destroy(),{command:"null"})};d.destroy=function(){e.$mouseHandler.isMousePressed||(e.keyBinding.removeKeyboardHandler(m),i.widgetManager.removeLineWidget(d),e.off("changeSelection",d.destroy),e.off("changeSession",d.destroy),e.off("mouseup",d.destroy),e.off("change",d.destroy))},e.keyBinding.addKeyboardHandler(m),e.on("changeSelection",d.destroy),e.on("changeSession",d.destroy),e.on("mouseup",d.destroy),e.on("change",d.destroy),e.session.widgetManager.addLineWidget(d),d.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:d.el.offsetHeight})},r.importCssString(" .error_widget_wrapper { background: inherit; color: inherit; border:none } .error_widget { border-top: solid 2px; border-bottom: solid 2px; margin: 5px 0; padding: 10px 40px; white-space: pre-wrap; } .error_widget.ace_error, .error_widget_arrow.ace_error{ border-color: #ff5a5a } .error_widget.ace_warning, .error_widget_arrow.ace_warning{ border-color: #F1D817 } .error_widget.ace_info, .error_widget_arrow.ace_info{ border-color: #5a5a5a } .error_widget.ace_ok, .error_widget_arrow.ace_ok{ border-color: #5aaa5a } .error_widget_arrow { position: absolute; border: solid 5px; border-top-color: transparent!important; border-right-color: transparent!important; border-left-color: transparent!important; top: -5px; } ","")}),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){"use strict";e("./lib/fixoldbrowsers");var i=e("./lib/dom"),n=e("./lib/event"),o=e("./editor").Editor,r=e("./edit_session").EditSession,s=e("./undomanager").UndoManager,a=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.edit=function(e){if("string"==typeof e){var r=e;if(e=document.getElementById(r),!e)throw new Error("ace.edit can't find div #"+r)}if(e&&e.env&&e.env.editor instanceof o)return e.env.editor;var s="";if(e&&/input|textarea/i.test(e.tagName)){var l=e;s=l.value,e=i.createElement("pre"),l.parentNode.replaceChild(e,l)}else s=i.getInnerText(e),e.innerHTML="";var c=t.createEditSession(s),h=new o(new a(e));h.setSession(c);var u={document:c,editor:h,onResize:h.resize.bind(h,null)};return l&&(u.textarea=l),n.addListener(window,"resize",u.onResize),h.on("destroy",function(){n.removeListener(window,"resize",u.onResize),u.editor.container.env=null}),h.container.env=h.env=u,h},t.createEditSession=function(e,t){var i=new r(e,t);return i.setUndoManager(new s),i},t.EditSession=r,t.UndoManager=s}),function(){ace.acequire(["ace/ace"],function(e){e&&e.config.init(!0),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,i){ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t){"use strict";var i=e("../lib/oop"),n=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:"invalid.illegal",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"invalid.illegal",regex:"\\/\\/.*$"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'[^"\\\\]+'},{token:"string",regex:'"',next:"start"},{token:"string",regex:"",next:"start"}]}};i.inherits(o,n),t.JsonHighlightRules=o}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t){"use strict";var i=e("../range").Range,n=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},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(n.prototype),t.MatchingBraceOutdent=n}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t){"use strict";var i,n=e("../../lib/oop"),o=e("../behaviour").Behaviour,r=e("../../token_iterator").TokenIterator,s=e("../../lib/lang"),a=["text","paren.rparen","punctuation.operator"],l=["text","paren.rparen","punctuation.operator","comment"],c={},h=function(e){var t=-1;return e.multiSelect&&(t=e.selection.index,c.rangeCount!=e.multiSelect.rangeCount&&(c={rangeCount:e.multiSelect.rangeCount})),c[t]?i=c[t]:void(i=c[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""})},u=function(){this.add("braces","insertion",function(e,t,n,o,r){var a=n.getCursorPosition(),l=o.doc.getLine(a.row);if("{"==r){h(n);var c=n.getSelectionRange(),d=o.doc.getTextRange(c);if(""!==d&&"{"!==d&&n.getWrapBehavioursEnabled())return{text:"{"+d+"}",selection:!1};if(u.isSaneInsertion(n,o))return/[\]\}\)]/.test(l[a.column])||n.inMultiSelectMode?(u.recordAutoInsert(n,o,"}"),{text:"{}",selection:[1,1]}):(u.recordMaybeInsert(n,o,"{"),{text:"{",selection:[1,1]})}else if("}"==r){h(n);var g=l.substring(a.column,a.column+1);if("}"==g){var f=o.$findOpeningBracket("}",{column:a.column+1,row:a.row});if(null!==f&&u.isAutoInsertedClosing(a,l,r))return u.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if("\n"==r||"\r\n"==r){h(n);var p="";u.isMaybeInsertedClosing(a,l)&&(p=s.stringRepeat("}",i.maybeInsertedBrackets),u.clearMaybeInsertedClosing());var g=l.substring(a.column,a.column+1);if("}"===g){var m=o.findMatchingBracket({row:a.row,column:a.column+1},"}");if(!m)return null;var v=this.$getIndent(o.getLine(m.row))}else{if(!p)return void u.clearMaybeInsertedClosing();var v=this.$getIndent(l)}var A=v+o.getTabString();return{text:"\n"+A+"\n"+v+p,selection:[1,A.length,1,A.length]}}u.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,o,r){var s=o.doc.getTextRange(r);if(!r.isMultiLine()&&"{"==s){h(n);var a=o.doc.getLine(r.start.row),l=a.substring(r.end.column,r.end.column+1);if("}"==l)return r.end.column++,r;i.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,i,n,o){if("("==o){h(i);var r=i.getSelectionRange(),s=n.doc.getTextRange(r);if(""!==s&&i.getWrapBehavioursEnabled())return{text:"("+s+")",selection:!1};if(u.isSaneInsertion(i,n))return u.recordAutoInsert(i,n,")"),{text:"()",selection:[1,1]}}else if(")"==o){h(i);var a=i.getCursorPosition(),l=n.doc.getLine(a.row),c=l.substring(a.column,a.column+1);if(")"==c){var d=n.$findOpeningBracket(")",{column:a.column+1,row:a.row});if(null!==d&&u.isAutoInsertedClosing(a,l,o))return u.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,i,n,o){var r=n.doc.getTextRange(o);if(!o.isMultiLine()&&"("==r){h(i);var s=n.doc.getLine(o.start.row),a=s.substring(o.start.column+1,o.start.column+2);if(")"==a)return o.end.column++,o}}),this.add("brackets","insertion",function(e,t,i,n,o){if("["==o){h(i);var r=i.getSelectionRange(),s=n.doc.getTextRange(r);if(""!==s&&i.getWrapBehavioursEnabled())return{text:"["+s+"]",selection:!1};if(u.isSaneInsertion(i,n))return u.recordAutoInsert(i,n,"]"),{text:"[]",selection:[1,1]}}else if("]"==o){h(i);var a=i.getCursorPosition(),l=n.doc.getLine(a.row),c=l.substring(a.column,a.column+1);if("]"==c){var d=n.$findOpeningBracket("]",{column:a.column+1,row:a.row});if(null!==d&&u.isAutoInsertedClosing(a,l,o))return u.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,i,n,o){var r=n.doc.getTextRange(o);if(!o.isMultiLine()&&"["==r){h(i);var s=n.doc.getLine(o.start.row),a=s.substring(o.start.column+1,o.start.column+2);if("]"==a)return o.end.column++,o}}),this.add("string_dquotes","insertion",function(e,t,i,n,o){if('"'==o||"'"==o){h(i);var r=o,s=i.getSelectionRange(),a=n.doc.getTextRange(s);if(""!==a&&"'"!==a&&'"'!=a&&i.getWrapBehavioursEnabled())return{text:r+a+r,selection:!1};var l=i.getCursorPosition(),c=n.doc.getLine(l.row),d=c.substring(l.column-1,l.column);if("\\"==d)return null;for(var g,f=n.getTokens(s.start.row),p=0,m=-1,v=0;vm&&(m=g.value.indexOf(r)),!(g.value.length+p>s.start.column));v++)p+=f[v].value.length;if(!g||0>m&&"comment"!==g.type&&("string"!==g.type||s.start.column!==g.value.length+p-1&&g.value.lastIndexOf(r)===g.value.length-1)){if(!u.isSaneInsertion(i,n))return;return{text:r+r,selection:[1,1]}}if(g&&"string"===g.type){var A=c.substring(l.column,l.column+1);if(A==r)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,i,n,o){var r=n.doc.getTextRange(o);if(!o.isMultiLine()&&('"'==r||"'"==r)){h(i);var s=n.doc.getLine(o.start.row),a=s.substring(o.start.column+1,o.start.column+2);if(a==r)return o.end.column++,o}})};u.isSaneInsertion=function(e,t){var i=e.getCursorPosition(),n=new r(t,i.row,i.column);if(!this.$matchTokenType(n.getCurrentToken()||"text",a)){var o=new r(t,i.row,i.column+1);if(!this.$matchTokenType(o.getCurrentToken()||"text",a))return!1}return n.stepForward(),n.getCurrentTokenRow()!==i.row||this.$matchTokenType(n.getCurrentToken()||"text",l)},u.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},u.recordAutoInsert=function(e,t,n){var o=e.getCursorPosition(),r=t.doc.getLine(o.row);this.isAutoInsertedClosing(o,r,i.autoInsertedLineEnd[0])||(i.autoInsertedBrackets=0),i.autoInsertedRow=o.row,i.autoInsertedLineEnd=n+r.substr(o.column),i.autoInsertedBrackets++},u.recordMaybeInsert=function(e,t,n){var o=e.getCursorPosition(),r=t.doc.getLine(o.row);this.isMaybeInsertedClosing(o,r)||(i.maybeInsertedBrackets=0),i.maybeInsertedRow=o.row,i.maybeInsertedLineStart=r.substr(0,o.column)+n,i.maybeInsertedLineEnd=r.substr(o.column),i.maybeInsertedBrackets++},u.isAutoInsertedClosing=function(e,t,n){return i.autoInsertedBrackets>0&&e.row===i.autoInsertedRow&&n===i.autoInsertedLineEnd[0]&&t.substr(e.column)===i.autoInsertedLineEnd},u.isMaybeInsertedClosing=function(e,t){return i.maybeInsertedBrackets>0&&e.row===i.maybeInsertedRow&&t.substr(e.column)===i.maybeInsertedLineEnd&&t.substr(0,e.column)==i.maybeInsertedLineStart},u.popAutoInsertedClosing=function(){i.autoInsertedLineEnd=i.autoInsertedLineEnd.substr(1),i.autoInsertedBrackets--},u.clearMaybeInsertedClosing=function(){i&&(i.maybeInsertedBrackets=0,i.maybeInsertedRow=-1)},n.inherits(u,o),t.CstyleBehaviour=u}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t){"use strict";var i=e("../../lib/oop"),n=e("../../range").Range,o=e("./fold_mode").FoldMode,r=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(r,o),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(e,t,i,n){var o=e.getLine(i),r=o.match(this.foldingStartMarker);if(r){var s=r.index;if(r[1])return this.openingBracketBlock(e,r[1],i,s);var a=e.getCommentFoldRange(i,s+r[0].length,1);return a&&!a.isMultiLine()&&(n?a=this.getSectionRange(e,i):"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],i,s):e.getCommentFoldRange(i,s,-1)}}},this.getSectionRange=function(e,t){var i=e.getLine(t),o=i.search(/\S/),r=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<=r)break;if(h.isMultiLine())t=h.end.row;else if(o==c)break}a=t}}return new n(r,s,a,e.getLine(a).length)}}.call(r.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){"use strict";var n=e("../lib/oop"),o=e("./text").Mode,r=e("./json_highlight_rules").JsonHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("./behaviour/cstyle").CstyleBehaviour,l=e("./folding/cstyle").FoldMode,c=e("../worker/worker_client").WorkerClient,h=function(){this.HighlightRules=r,this.$outdent=new s,this.$behaviour=new a,this.foldingRules=new l};n.inherits(h,o),function(){this.getNextLineIndent=function(e,t,i){var n=this.$getIndent(t);if("start"==e){var o=t.match(/^.*[\{\(\[]\s*$/);o&&(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 c(["ace"],i(16),"JsonWorker");return t.attachToDocument(e.getDocument()),t.on("error",function(t){e.setAnnotations([t.data])}),t.on("ok",function(){e.clearAnnotations()}),t},this.$id="ace/mode/json"}.call(h.prototype),t.Mode=h})},function(){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){"use strict";var i=e("../lib/dom"),n=e("../lib/lang"),o=e("../lib/event"),r=" .ace_search { background-color: #ddd; border: 1px solid #cbcbcb; border-top: 0 none; max-width: 325px; overflow: hidden; margin: 0; padding: 4px; padding-right: 6px; padding-bottom: 0; position: absolute; top: 0px; z-index: 99; white-space: normal; } .ace_search.left { border-left: 0 none; border-radius: 0px 0px 5px 0px; left: 0; } .ace_search.right { border-radius: 0px 0px 0px 5px; border-right: 0 none; right: 0; } .ace_search_form, .ace_replace_form { border-radius: 3px; border: 1px solid #cbcbcb; float: left; margin-bottom: 4px; overflow: hidden; } .ace_search_form.ace_nomatch { outline: 1px solid red; } .ace_search_field { background-color: white; border-right: 1px solid #cbcbcb; border: 0 none; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; float: left; height: 22px; outline: 0; padding: 0 7px; width: 214px; margin: 0; } .ace_searchbtn, .ace_replacebtn { background: #fff; border: 0 none; border-left: 1px solid #dcdcdc; cursor: pointer; float: left; height: 22px; margin: 0; padding: 0; position: relative; } .ace_searchbtn:last-child, .ace_replacebtn:last-child { border-top-right-radius: 3px; border-bottom-right-radius: 3px; } .ace_searchbtn:disabled { background: none; cursor: default; } .ace_searchbtn { background-position: 50% 50%; background-repeat: no-repeat; width: 27px; } .ace_searchbtn.prev { background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADFJREFUeNpiSU1NZUAC/6E0I0yACYskCpsJiySKIiY0SUZk40FyTEgCjGgKwTRAgAEAQJUIPCE+qfkAAAAASUVORK5CYII=); } .ace_searchbtn.next { background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADRJREFUeNpiTE1NZQCC/0DMyIAKwGJMUAYDEo3M/s+EpvM/mkKwCQxYjIeLMaELoLMBAgwAU7UJObTKsvAAAAAASUVORK5CYII=); } .ace_searchbtn_close { background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0; border-radius: 50%; border: 0 none; color: #656565; cursor: pointer; float: right; font: 16px/16px Arial; height: 14px; margin: 5px 1px 9px 5px; padding: 0; text-align: center; width: 14px; } .ace_searchbtn_close:hover { background-color: #656565; background-position: 50% 100%; color: white; } .ace_replacebtn.prev { width: 54px } .ace_replacebtn.next { width: 27px } .ace_button { margin-left: 2px; cursor: pointer; -webkit-user-select: none; -moz-user-select: none; -o-user-select: none; -ms-user-select: none; user-select: none; overflow: hidden; opacity: 0.7; border: 1px solid rgba(100,100,100,0.23); padding: 1px; -moz-box-sizing: border-box; box-sizing: border-box; color: black; } .ace_button:hover { background-color: #eee; opacity:1; } .ace_button:active { background-color: #ddd; } .ace_button.checked { border-color: #3399ff; opacity:1; } .ace_search_options{ margin-bottom: 3px; text-align: right; -webkit-user-select: none; -moz-user-select: none; -o-user-select: none; -ms-user-select: none; user-select: none; }",s=e("../keyboard/hash_handler").HashHandler,a=e("../lib/keys");i.importCssString(r,"ace_searchbox");var l=''.replace(/>\s+/g,">"),c=function(e){var t=i.createElement("div");t.innerHTML=l,this.element=t.firstChild,this.$init(),this.setEditor(e)};(function(){this.setEditor=function(e){e.searchBox=this,e.container.appendChild(this.element),this.editor=e},this.$initElements=function(e){this.searchBox=e.querySelector(".ace_search_form"),this.replaceBox=e.querySelector(".ace_replace_form"),this.searchOptions=e.querySelector(".ace_search_options"),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.$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=n.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|Ctrl-H|Command-Option-F":function(e){var t=e.isReplace=!e.isReplace;e.replaceBox.style.display=t?"":"none",e[t?"replaceInput":"searchInput"].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()}}]),this.$syncOptions=function(){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.find(!1,!1)},this.highlight=function(e){this.editor.session.highlight(e||this.editor.$search.$options.re),this.editor.renderer.updateBackMarkers()},this.find=function(e,t){var n=this.editor.find(this.searchInput.value,{skipCurrent:e,backwards:t,wrap:!0,regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked}),o=!n&&this.searchInput.value;i.setCssClass(this.searchBox,"ace_nomatch",o),this.editor._emit("findSearchBox",{match:!o}),this.highlight()},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.element.style.display="none",this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb),this.editor.focus()},this.show=function(e,t){this.element.style.display="",this.replaceBox.style.display=t?"":"none",this.isReplace=t,e&&(this.searchInput.value=e),this.searchInput.focus(),this.searchInput.select(),this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb)},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){var i=e.searchBox||new c(e);i.show(e.session.getTextRange(),t)}}),function(){ace.acequire(["ace/ext/searchbox"],function(){})}()},function(e,t,i){function n(e,t){function i(e,t,o){o.forEach(function(o){if("separator"==o.type){var r=document.createElement("div");r.className="separator",a=document.createElement("li"),a.appendChild(r),e.appendChild(a)}else{var s={},a=document.createElement("li");e.appendChild(a);var l=document.createElement("button");if(l.className=o.className,s.button=l,o.title&&(l.title=o.title),o.click&&(l.onclick=function(){n.hide(),o.click()}),a.appendChild(l),o.submenu){var c=document.createElement("div");c.className="icon",l.appendChild(c),l.appendChild(document.createTextNode(o.text));var h;if(o.click){l.className+=" default";var u=document.createElement("button");s.buttonExpand=u,u.className="expand",u.innerHTML='
',a.appendChild(u),o.submenuTitle&&(u.title=o.submenuTitle),h=u}else{var d=document.createElement("div");d.className="expand",l.appendChild(d),h=l}h.onclick=function(){n._onExpandItem(s),h.focus()};var g=[];s.subItems=g;var f=document.createElement("ul");s.ul=f,f.className="menu",f.style.height="0",a.appendChild(f),i(f,g,o.submenu)}else l.innerHTML='
'+o.text;t.push(s)}})}this.dom={};var n=this,o=this.dom;this.anchor=void 0,this.items=e,this.eventListeners={},this.selection=void 0,this.visibleSubmenu=void 0,this.onClose=t?t.close:void 0;var r=document.createElement("div");r.className="jsoneditor-contextmenu",o.menu=r;var s=document.createElement("ul");s.className="menu",r.appendChild(s),o.list=s,o.items=[];var a=document.createElement("button");o.focusButton=a;var l=document.createElement("li");l.style.overflow="hidden",l.style.height="0",l.appendChild(a),s.appendChild(l),i(s,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(3);n.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},n.visibleMenu=void 0,n.prototype.show=function(e){this.hide();var t=window.innerHeight,i=window.pageYOffset||document.scrollTop||0,r=t+i,s=e.offsetHeight,a=this.maxHeight,l=o.getAbsoluteLeft(e),c=o.getAbsoluteTop(e);r>c+s+a?(this.dom.menu.style.left=l+"px",this.dom.menu.style.top=c+s+"px",this.dom.menu.style.bottom=""):(this.dom.menu.style.left=l+"px",this.dom.menu.style.top="",this.dom.menu.style.bottom=t-c+"px"),document.body.appendChild(this.dom.menu);var h=this,u=this.dom.list;this.eventListeners.mousedown=o.addEventListener(document,"mousedown",function(e){var t=e.target;t==u||h._isChildOf(t,u)||(h.hide(),e.stopPropagation(),e.preventDefault())}),this.eventListeners.mousewheel=o.addEventListener(document,"mousewheel",function(e){e.stopPropagation(),e.preventDefault()}),this.eventListeners.keydown=o.addEventListener(document,"keydown",function(e){h._onKeyDown(e)}),this.selection=o.getSelection(),this.anchor=e,setTimeout(function(){h.dom.focusButton.focus()},0),n.visibleMenu&&n.visibleMenu.hide(),n.visibleMenu=this},n.prototype.hide=function(){this.dom.menu.parentNode&&(this.dom.menu.parentNode.removeChild(this.dom.menu),this.onClose&&this.onClose());for(var e in this.eventListeners)if(this.eventListeners.hasOwnProperty(e)){var t=this.eventListeners[e];t&&o.removeEventListener(document,e,t),delete this.eventListeners[e]}n.visibleMenu==this&&(n.visibleMenu=void 0)},n.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,"selected"))},300),this.expandedItem=void 0),!i){var r=e.ul;r.style.display="block";{r.clientHeight}setTimeout(function(){t.expandedItem==e&&(r.style.height=24*r.childNodes.length+"px",r.style.padding="5px 10px")},0),o.addClassName(r.parentNode,"selected"),this.expandedItem=e}},n.prototype._onKeyDown=function(e){var t,i,n,r,s=e.target,a=e.which,l=!1;27==a?(this.selection&&o.setSelection(this.selection),this.anchor&&this.anchor.focus(),this.hide(),l=!0):9==a?e.shiftKey?(t=this._getVisibleButtons(),i=t.indexOf(s),0==i&&(t[t.length-1].focus(),l=!0)):(t=this._getVisibleButtons(),i=t.indexOf(s),i==t.length-1&&(t[0].focus(),l=!0)):37==a?("expand"==s.className&&(t=this._getVisibleButtons(),i=t.indexOf(s),n=t[i-1],n&&n.focus()),l=!0):38==a?(t=this._getVisibleButtons(),i=t.indexOf(s),n=t[i-1],n&&"expand"==n.className&&(n=t[i-2]),n||(n=t[t.length-1]),n&&n.focus(),l=!0):39==a?(t=this._getVisibleButtons(),i=t.indexOf(s),r=t[i+1],r&&"expand"==r.className&&r.focus(),l=!0):40==a&&(t=this._getVisibleButtons(),i=t.indexOf(s),r=t[i+1],r&&"expand"==r.className&&(r=t[i+2]),r||(r=t[0]),r&&(r.focus(),l=!0),l=!0),l&&(e.stopPropagation(),e.preventDefault())},n.prototype._isChildOf=function(e,t){for(var i=e.parentNode;i;){if(i==t)return!0;i=i.parentNode}return!1},e.exports=n},function(e,t,i){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.node=this,e.tr=t,this.editable.field){e.tdDrag=document.createElement("td");var i=document.createElement("td");e.tdMenu=i;var n=document.createElement("button");n.className="contextmenu",n.title="Click to open the actions menu (Ctrl+M)",e.menu=n,i.appendChild(e.menu)}var o=document.createElement("td"),r=document.createElement("div");return r.innerHTML="(empty)",r.className="readonly",o.appendChild(r),e.td=o,e.text=r,this.updateDom(),t},t.prototype.updateDom=function(){var e=this.dom,t=e.td;t&&(t.style.paddingLeft=24*this.getLevel()+26+"px");var i=e.text;i&&(i.innerHTML="(empty "+this.parent.type+")");var n=e.tr;this.isVisible()?e.tr.firstChild||(e.tdDrag&&n.appendChild(e.tdDrag),e.tdMenu&&n.appendChild(e.tdMenu),n.appendChild(t)):e.tr.firstChild&&(e.tdDrag&&n.removeChild(e.tdDrag),e.tdMenu&&n.removeChild(e.tdMenu),n.removeChild(t))},t.prototype.isVisible=function(){return 0==this.parent.childs.length},t.prototype.showContextMenu=function(t,i){var n=this,o=e.TYPE_TITLES,s=[{text:"Append",title:"Append a new field with type 'auto' (Ctrl+Shift+Ins)",submenuTitle:"Select the type of the field to be appended",className:"insert",click:function(){n._onAppend("","","auto")},submenu:[{text:"Auto",className:"type-auto",title:o.auto,click:function(){n._onAppend("","","auto")}},{text:"Array",className:"type-array",title:o.array,click:function(){n._onAppend("",[])}},{text:"Object",className:"type-object",title:o.object,click:function(){n._onAppend("",{})}},{text:"String",className:"type-string",title:o.string,click:function(){n._onAppend("","","string")}}]}],a=new r(s,{close:i});a.show(t)},t.prototype.onEvent=function(e){var t=e.type,i=e.target||e.srcElement,n=this.dom,r=n.menu;if(i==r&&("mouseover"==t?this.editor.highlighter.highlight(this.parent):"mouseout"==t&&this.editor.highlighter.unhighlight()),"click"==t&&i==n.menu){var s=this.editor.highlighter;s.highlight(this.parent),s.lock(),o.addClassName(n.menu,"selected"),this.showContextMenu(n.menu,function(){o.removeClassName(n.menu,"selected"),s.unlock(),s.unhighlight()})}"keydown"==t&&this.onKeyDown(e)},t}var o=i(3),r=i(13);e.exports=n},function(e,t,i){(function(e,n){var o=function(){var e={trace:function(){},yy:{},symbols_:{error:2,JSONString:3,STRING:4,JSONNumber:5,NUMBER:6,JSONNullLiteral:7,NULL:8,JSONBooleanLiteral:9,TRUE:10,FALSE:11,JSONText:12,JSONValue:13,EOF:14,JSONObject:15,JSONArray:16,"{":17,"}":18,JSONMemberList:19,JSONMember:20,":":21,",":22,"[":23,"]":24,JSONElementList:25,$accept:0,$end:1},terminals_:{2:"error",4:"STRING",6:"NUMBER",8:"NULL",10:"TRUE",11:"FALSE",14:"EOF",17:"{",18:"}",21:":",22:",",23:"[",24:"]"},productions_:[0,[3,1],[5,1],[7,1],[9,1],[9,1],[12,2],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[15,2],[15,3],[20,3],[19,1],[19,3],[16,2],[16,3],[25,1],[25,3]],performAction:function(e,t,i,n,o,r){var s=r.length-1; -switch(o){case 1:this.$=e.replace(/\\(\\|")/g,"$1").replace(/\\n/g,"\n").replace(/\\r/g,"\r").replace(/\\t/g," ").replace(/\\v/g," ").replace(/\\f/g,"\f").replace(/\\b/g,"\b");break;case 2:this.$=Number(e);break;case 3:this.$=null;break;case 4:this.$=!0;break;case 5:this.$=!1;break;case 6:return this.$=r[s-1];case 13:this.$={};break;case 14:this.$=r[s-1];break;case 15:this.$=[r[s-2],r[s]];break;case 16:this.$={},this.$[r[s][0]]=r[s][1];break;case 17:this.$=r[s-2],r[s-2][r[s][0]]=r[s][1];break;case 18:this.$=[];break;case 19:this.$=r[s-1];break;case 20:this.$=[r[s]];break;case 21:this.$=r[s-2],r[s-2].push(r[s])}},table:[{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],12:1,13:2,15:7,16:8,17:[1,14],23:[1,15]},{1:[3]},{14:[1,16]},{14:[2,7],18:[2,7],22:[2,7],24:[2,7]},{14:[2,8],18:[2,8],22:[2,8],24:[2,8]},{14:[2,9],18:[2,9],22:[2,9],24:[2,9]},{14:[2,10],18:[2,10],22:[2,10],24:[2,10]},{14:[2,11],18:[2,11],22:[2,11],24:[2,11]},{14:[2,12],18:[2,12],22:[2,12],24:[2,12]},{14:[2,3],18:[2,3],22:[2,3],24:[2,3]},{14:[2,4],18:[2,4],22:[2,4],24:[2,4]},{14:[2,5],18:[2,5],22:[2,5],24:[2,5]},{14:[2,1],18:[2,1],21:[2,1],22:[2,1],24:[2,1]},{14:[2,2],18:[2,2],22:[2,2],24:[2,2]},{3:20,4:[1,12],18:[1,17],19:18,20:19},{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],13:23,15:7,16:8,17:[1,14],23:[1,15],24:[1,21],25:22},{1:[2,6]},{14:[2,13],18:[2,13],22:[2,13],24:[2,13]},{18:[1,24],22:[1,25]},{18:[2,16],22:[2,16]},{21:[1,26]},{14:[2,18],18:[2,18],22:[2,18],24:[2,18]},{22:[1,28],24:[1,27]},{22:[2,20],24:[2,20]},{14:[2,14],18:[2,14],22:[2,14],24:[2,14]},{3:20,4:[1,12],20:29},{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],13:30,15:7,16:8,17:[1,14],23:[1,15]},{14:[2,19],18:[2,19],22:[2,19],24:[2,19]},{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],13:31,15:7,16:8,17:[1,14],23:[1,15]},{18:[2,17],22:[2,17]},{18:[2,15],22:[2,15]},{22:[2,21],24:[2,21]}],defaultActions:{16:[2,6]},parseError:function(e){throw new Error(e)},parse:function(e){function t(e){o.length=o.length-2*e,r.length=r.length-e,s.length=s.length-e}function i(){var e;return e=n.lexer.lex()||1,"number"!=typeof e&&(e=n.symbols_[e]||e),e}var n=this,o=[0],r=[null],s=[],a=this.table,l="",c=0,h=0,u=0,d=2,g=1;this.lexer.setInput(e),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,"undefined"==typeof this.lexer.yylloc&&(this.lexer.yylloc={});var f=this.lexer.yylloc;s.push(f),"function"==typeof this.yy.parseError&&(this.parseError=this.yy.parseError);for(var p,m,v,A,w,C,E,F,y,b={};;){if(v=o[o.length-1],this.defaultActions[v]?A=this.defaultActions[v]:(null==p&&(p=i()),A=a[v]&&a[v][p]),"undefined"==typeof A||!A.length||!A[0]){if(!u){y=[];for(C in a[v])this.terminals_[C]&&C>2&&y.push("'"+this.terminals_[C]+"'");var x="";x=this.lexer.showPosition?"Parse error on line "+(c+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+y.join(", ")+", got '"+this.terminals_[p]+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==p?"end of input":"'"+(this.terminals_[p]||p)+"'"),this.parseError(x,{text:this.lexer.match,token:this.terminals_[p]||p,line:this.lexer.yylineno,loc:f,expected:y})}if(3==u){if(p==g)throw new Error(x||"Parsing halted.");h=this.lexer.yyleng,l=this.lexer.yytext,c=this.lexer.yylineno,f=this.lexer.yylloc,p=i()}for(;;){if(d.toString()in a[v])break;if(0==v)throw new Error(x||"Parsing halted.");t(1),v=o[o.length-1]}m=p,p=d,v=o[o.length-1],A=a[v]&&a[v][d],u=3}if(A[0]instanceof Array&&A.length>1)throw new Error("Parse Error: multiple actions possible at state: "+v+", token: "+p);switch(A[0]){case 1:o.push(p),r.push(this.lexer.yytext),s.push(this.lexer.yylloc),o.push(A[1]),p=null,m?(p=m,m=null):(h=this.lexer.yyleng,l=this.lexer.yytext,c=this.lexer.yylineno,f=this.lexer.yylloc,u>0&&u--);break;case 2:if(E=this.productions_[A[1]][1],b.$=r[r.length-E],b._$={first_line:s[s.length-(E||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(E||1)].first_column,last_column:s[s.length-1].last_column},w=this.performAction.call(b,l,h,c,this.yy,A[1],r,s),"undefined"!=typeof w)return w;E&&(o=o.slice(0,-1*E*2),r=r.slice(0,-1*E),s=s.slice(0,-1*E)),o.push(this.productions_[A[1]][0]),r.push(b.$),s.push(b._$),F=a[o[o.length-2]][o[o.length-1]],o.push(F);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];this.yytext+=e,this.yyleng++,this.match+=e,this.matched+=e;var t=e.match(/\n/);return t&&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,o;this._more||(this.yytext="",this.match="");for(var r=this._currentRules(),s=0;st[0].length)||(t=i,n=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[n],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e?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"undefined"!=typeof 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=o,t.parse=function(){return o.parse.apply(o,arguments)},t.main=function(n){if(!n[1])throw new Error("Usage: "+n[0]+" FILE");if("undefined"!=typeof e)var o=i(!function(){var e=new Error('Cannot find module "fs"');throw e.code="MODULE_NOT_FOUND",e}()).readFileSync(i(20).join(e.cwd(),n[1]),"utf8");else var r=i(!function(){var e=new Error('Cannot find module "file"');throw e.code="MODULE_NOT_FOUND",e}()).path(i(!function(){var e=new Error('Cannot find module "file"');throw e.code="MODULE_NOT_FOUND",e}()).cwd()),o=r.join(n[1]).read({charset:"utf-8"});return t.parser.parse(o)},"undefined"!=typeof n&&i.c[0]===n&&t.main("undefined"!=typeof e?e.argv.slice(1):i(!function(){var e=new Error('Cannot find module "system"');throw e.code="MODULE_NOT_FOUND",e}()).args)}).call(t,i(21),i(19)(e))},function(e){e.exports.id="ace/mode/json_worker",e.exports.src='"no use strict";(function(window){if(void 0===window.window||!window.document){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,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(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;var chunks=id.split("/");if(!window.acequire.tlns)return console.log("unable to load "+id);chunks[0]=window.acequire.tlns[chunks[0]]||chunks[0];var path=chunks.join("/")+".js";return window.acequire.id=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={},window.initBaseUrls=function initBaseUrls(topLevelNamespaces){acequire.tlns=topLevelNamespaces},window.initSender=function initSender(){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.command){if(!main[msg.command])throw Error("Unknown command:"+msg.command);main[msg.command].apply(main,msg.args)}else if(msg.init){initBaseUrls(msg.tlns),acequire("ace/lib/es5-shim"),sender=window.sender=initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}else msg.event&&sender&&sender._signal(msg.event,msg.data)}}})(this),ace.define("ace/lib/oop",["require","exports","module"],function(acequire,exports){"use strict";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define("ace/lib/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/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/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(){oop.implement(this,EventEmitter),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){var delta=e.data,range=delta.range;if(!(range.start.row==range.end.row&&range.start.row!=this.row||range.start.row>this.row||range.start.row==this.row&&range.start.column>this.column)){var row=this.row,column=this.column,start=range.start,end=range.end;"insertText"===delta.action?start.row===row&&column>=start.column?start.column===column&&this.$insertRight||(start.row===end.row?column+=end.column-start.column:(column-=start.column,row+=end.row-start.row)):start.row!==end.row&&row>start.row&&(row+=end.row-start.row):"insertLines"===delta.action?start.row===row&&0===column&&this.$insertRight||row>=start.row&&(row+=end.row-start.row):"removeText"===delta.action?start.row===row&&column>start.column?column=end.column>=column?start.column:Math.max(0,column-(end.column-start.column)):start.row!==end.row&&row>start.row?(end.row===row&&(column=Math.max(0,column-end.column)+start.column),row-=end.row-start.row):end.row===row&&(row-=end.row-start.row,column=Math.max(0,column-end.column)+start.column):"removeLines"==delta.action&&row>=start.row&&(row>=end.row?row-=end.row-start.row:(row=start.row,column=0)),this.setPosition(row,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/lib/event_emitter","ace/range","ace/anchor"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),EventEmitter=acequire("./lib/event_emitter").EventEmitter,Range=acequire("./range").Range,Anchor=acequire("./anchor").Anchor,Document=function(text){this.$lines=[],0===text.length?this.$lines=[""]:Array.isArray(text)?this._insertLines(0,text):this.insert({row:0,column:0},text)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength();this.remove(new Range(0,0,len,this.getLine(len-1).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){if(range.start.row==range.end.row)return this.getLine(range.start.row).substring(range.start.column,range.end.column);var lines=this.getLines(range.start.row,range.end.row);lines[0]=(lines[0]||"").substring(range.start.column);var l=lines.length-1;return range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column)),lines.join(this.getNewLineCharacter())},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):0>position.row&&(position.row=0),position},this.insert=function(position,text){if(!text||0===text.length)return position;position=this.$clipPosition(position),1>=this.getLength()&&this.$detectNewLine(text);var lines=this.$split(text),firstLine=lines.splice(0,1)[0],lastLine=0==lines.length?null:lines.splice(lines.length-1,1)[0];return position=this.insertInLine(position,firstLine),null!==lastLine&&(position=this.insertNewLine(position),position=this._insertLines(position.row,lines),position=this.insertInLine(position,lastLine||"")),position},this.insertLines=function(row,lines){return row>=this.getLength()?this.insert({row:row,column:0},"\\n"+lines.join("\\n")):this._insertLines(Math.max(row,0),lines)},this._insertLines=function(row,lines){if(0==lines.length)return{row:row,column:0};for(;lines.length>61440;){var end=this._insertLines(row,lines.slice(0,61440));lines=lines.slice(61440),row=end.row}var args=[row,0];args.push.apply(args,lines),this.$lines.splice.apply(this.$lines,args);var range=new Range(row,0,row+lines.length,0),delta={action:"insertLines",range:range,lines:lines};return this._signal("change",{data:delta}),range.end},this.insertNewLine=function(position){position=this.$clipPosition(position);var line=this.$lines[position.row]||"";this.$lines[position.row]=line.substring(0,position.column),this.$lines.splice(position.row+1,0,line.substring(position.column,line.length));var end={row:position.row+1,column:0},delta={action:"insertText",range:Range.fromPoints(position,end),text:this.getNewLineCharacter()};return this._signal("change",{data:delta}),end},this.insertInLine=function(position,text){if(0==text.length)return position;var line=this.$lines[position.row]||"";this.$lines[position.row]=line.substring(0,position.column)+text+line.substring(position.column);var end={row:position.row,column:position.column+text.length},delta={action:"insertText",range:Range.fromPoints(position,end),text:text};return this._signal("change",{data:delta}),end},this.remove=function(range){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),range.start=this.$clipPosition(range.start),range.end=this.$clipPosition(range.end),range.isEmpty())return range.start;var firstRow=range.start.row,lastRow=range.end.row;if(range.isMultiLine()){var firstFullRow=0==range.start.column?firstRow:firstRow+1,lastFullRow=lastRow-1;range.end.column>0&&this.removeInLine(lastRow,0,range.end.column),lastFullRow>=firstFullRow&&this._removeLines(firstFullRow,lastFullRow),firstFullRow!=firstRow&&(this.removeInLine(firstRow,range.start.column,this.getLine(firstRow).length),this.removeNewLine(range.start.row))}else this.removeInLine(firstRow,range.start.column,range.end.column);return range.start},this.removeInLine=function(row,startColumn,endColumn){if(startColumn!=endColumn){var range=new Range(row,startColumn,row,endColumn),line=this.getLine(row),removed=line.substring(startColumn,endColumn),newLine=line.substring(0,startColumn)+line.substring(endColumn,line.length);this.$lines.splice(row,1,newLine);var delta={action:"removeText",range:range,text:removed};return this._signal("change",{data:delta}),range.start}},this.removeLines=function(firstRow,lastRow){return 0>firstRow||lastRow>=this.getLength()?this.remove(new Range(firstRow,0,lastRow+1,0)):this._removeLines(firstRow,lastRow)},this._removeLines=function(firstRow,lastRow){var range=new Range(firstRow,0,lastRow+1,0),removed=this.$lines.splice(firstRow,lastRow-firstRow+1),delta={action:"removeLines",range:range,nl:this.getNewLineCharacter(),lines:removed};return this._signal("change",{data:delta}),removed},this.removeNewLine=function(row){var firstLine=this.getLine(row),secondLine=this.getLine(row+1),range=new Range(row,firstLine.length,row+1,0),line=firstLine+secondLine;this.$lines.splice(row,2,line);var delta={action:"removeText",range:range,text:this.getNewLineCharacter()};this._signal("change",{data:delta})},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;if(this.remove(range),text)var end=this.insert(range.start,text);else end=range.start;return end},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++){var delta=deltas[i],range=Range.fromPoints(delta.range.start,delta.range.end);"insertLines"==delta.action?this.insertLines(range.start.row,delta.lines):"insertText"==delta.action?this.insert(range.start,delta.text):"removeLines"==delta.action?this._removeLines(range.start.row,range.end.row-1):"removeText"==delta.action&&this.remove(range)}},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--){var delta=deltas[i],range=Range.fromPoints(delta.range.start,delta.range.end);"insertLines"==delta.action?this._removeLines(range.start.row,range.end.row-1):"insertText"==delta.action?this.remove(range):"removeLines"==delta.action?this._insertLines(range.start.row,delta.lines):"removeText"==delta.action&&this.insert(range.start,delta.text)}},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(obj){if("object"!=typeof obj||!obj)return obj;var cons=obj.constructor;if(cons===RegExp)return obj;var copy=cons();for(var key in obj)copy[key]="object"==typeof obj[key]?exports.deepCopy(obj[key]):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(/="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();try{value&&parse(value)}catch(e){var pos=this.doc.indexToPosition(e.at-1);return this.sender.emit("error",{row:pos.row,column:pos.column,text:e.message,type:"error"}),void 0}this.sender.emit("ok")}}.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}()){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;\nfor(;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=" \\n \\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)}});' -},function(e){e.exports=function(){throw new Error("define cannot be used indirect")}},function(e,t){(function(t){function i(){if(t.Blob)try{return new Blob(["asdf"],{type:"text/plain"}),Blob}catch(e){}var i=t.WebKitBlobBuilder||t.MozBlobBuilder||t.MSBlobBuilder;return function(e,t){var n=new i,o=t.endings,r=t.type;if(o)for(var s=0,a=e.length;a>s;++s)n.append(e[s],o);else for(var s=0,a=e.length;a>s;++s)n.append(e[s]);return r?n.getBlob(r):n.getBlob()}}e.exports=i()}).call(t,function(){return this}())},function(e){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children=[],e.webpackPolyfill=1),e}},function(e,t,i){(function(e){function i(e,t){for(var i=0,n=e.length-1;n>=0;n--){var o=e[n];"."===o?e.splice(n,1):".."===o?(e.splice(n,1),i++):i&&(e.splice(n,1),i--)}if(t)for(;i--;i)e.unshift("..");return e}function n(e,t){if(e.filter)return e.filter(t);for(var i=[],n=0;n=-1&&!o;r--){var s=r>=0?arguments[r]:e.cwd();if("string"!=typeof s)throw new TypeError("Arguments to path.resolve must be strings");s&&(t=s+"/"+t,o="/"===s.charAt(0))}return t=i(n(t.split("/"),function(e){return!!e}),!o).join("/"),(o?"/":"")+t||"."},t.normalize=function(e){var o=t.isAbsolute(e),r="/"===s(e,-1);return e=i(n(e.split("/"),function(e){return!!e}),!o).join("/"),e||o||(e="."),e&&r&&(e+="/"),(o?"/":"")+e},t.isAbsolute=function(e){return"/"===e.charAt(0)},t.join=function(){var e=Array.prototype.slice.call(arguments,0);return t.normalize(n(e,function(e){if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");return e}).join("/"))},t.relative=function(e,i){function n(e){for(var t=0;t=0&&""===e[i];i--);return t>i?[]:e.slice(t,i-t+1)}e=t.resolve(e).substr(1),i=t.resolve(i).substr(1);for(var o=n(e.split("/")),r=n(i.split("/")),s=Math.min(o.length,r.length),a=s,l=0;s>l;l++)if(o[l]!==r[l]){a=l;break}for(var c=[],l=a;lt&&(t=e.length+t),e.substr(t,i)}}).call(t,i(21))},function(e){function t(){}var i=e.exports={};i.nextTick=function(){var e="undefined"!=typeof window&&window.setImmediate,t="undefined"!=typeof window&&window.MutationObserver,i="undefined"!=typeof window&&window.postMessage&&window.addEventListener;if(e)return function(e){return window.setImmediate(e)};var n=[];if(t){var o=document.createElement("div"),r=new MutationObserver(function(){var e=n.slice();n.length=0,e.forEach(function(e){e()})});return r.observe(o,{attributes:!0}),function(e){n.length||o.setAttribute("yes","no"),n.push(e)}}return i?(window.addEventListener("message",function(e){var t=e.source;if((t===window||null===t)&&"process-tick"===e.data&&(e.stopPropagation(),n.length>0)){var i=n.shift();i()}},!0),function(e){n.push(e),window.postMessage("process-tick","*")}):function(e){setTimeout(e,0)}}(),i.title="browser",i.browser=!0,i.env={},i.argv=[],i.on=t,i.addListener=t,i.once=t,i.off=t,i.removeListener=t,i.removeAllListeners=t,i.emit=t,i.binding=function(){throw new Error("process.binding is not supported")},i.cwd=function(){return"/"},i.chdir=function(){throw new Error("process.chdir is not supported")}}])}); +switch(o){case 1:this.$=e.replace(/\\(\\|")/g,"$1").replace(/\\n/g,"\n").replace(/\\r/g,"\r").replace(/\\t/g," ").replace(/\\v/g," ").replace(/\\f/g,"\f").replace(/\\b/g,"\b");break;case 2:this.$=Number(e);break;case 3:this.$=null;break;case 4:this.$=!0;break;case 5:this.$=!1;break;case 6:return this.$=r[s-1];case 13:this.$={};break;case 14:this.$=r[s-1];break;case 15:this.$=[r[s-2],r[s]];break;case 16:this.$={},this.$[r[s][0]]=r[s][1];break;case 17:this.$=r[s-2],r[s-2][r[s][0]]=r[s][1];break;case 18:this.$=[];break;case 19:this.$=r[s-1];break;case 20:this.$=[r[s]];break;case 21:this.$=r[s-2],r[s-2].push(r[s])}},table:[{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],12:1,13:2,15:7,16:8,17:[1,14],23:[1,15]},{1:[3]},{14:[1,16]},{14:[2,7],18:[2,7],22:[2,7],24:[2,7]},{14:[2,8],18:[2,8],22:[2,8],24:[2,8]},{14:[2,9],18:[2,9],22:[2,9],24:[2,9]},{14:[2,10],18:[2,10],22:[2,10],24:[2,10]},{14:[2,11],18:[2,11],22:[2,11],24:[2,11]},{14:[2,12],18:[2,12],22:[2,12],24:[2,12]},{14:[2,3],18:[2,3],22:[2,3],24:[2,3]},{14:[2,4],18:[2,4],22:[2,4],24:[2,4]},{14:[2,5],18:[2,5],22:[2,5],24:[2,5]},{14:[2,1],18:[2,1],21:[2,1],22:[2,1],24:[2,1]},{14:[2,2],18:[2,2],22:[2,2],24:[2,2]},{3:20,4:[1,12],18:[1,17],19:18,20:19},{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],13:23,15:7,16:8,17:[1,14],23:[1,15],24:[1,21],25:22},{1:[2,6]},{14:[2,13],18:[2,13],22:[2,13],24:[2,13]},{18:[1,24],22:[1,25]},{18:[2,16],22:[2,16]},{21:[1,26]},{14:[2,18],18:[2,18],22:[2,18],24:[2,18]},{22:[1,28],24:[1,27]},{22:[2,20],24:[2,20]},{14:[2,14],18:[2,14],22:[2,14],24:[2,14]},{3:20,4:[1,12],20:29},{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],13:30,15:7,16:8,17:[1,14],23:[1,15]},{14:[2,19],18:[2,19],22:[2,19],24:[2,19]},{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],13:31,15:7,16:8,17:[1,14],23:[1,15]},{18:[2,17],22:[2,17]},{18:[2,15],22:[2,15]},{22:[2,21],24:[2,21]}],defaultActions:{16:[2,6]},parseError:function(e){throw new Error(e)},parse:function(e){function t(e){o.length=o.length-2*e,r.length=r.length-e,s.length=s.length-e}function i(){var e;return e=n.lexer.lex()||1,"number"!=typeof e&&(e=n.symbols_[e]||e),e}var n=this,o=[0],r=[null],s=[],a=this.table,l="",c=0,h=0,u=0,d=2,g=1;this.lexer.setInput(e),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,"undefined"==typeof this.lexer.yylloc&&(this.lexer.yylloc={});var f=this.lexer.yylloc;s.push(f),"function"==typeof this.yy.parseError&&(this.parseError=this.yy.parseError);for(var p,m,v,A,w,C,E,F,y,b={};;){if(v=o[o.length-1],this.defaultActions[v]?A=this.defaultActions[v]:(null==p&&(p=i()),A=a[v]&&a[v][p]),"undefined"==typeof A||!A.length||!A[0]){if(!u){y=[];for(C in a[v])this.terminals_[C]&&C>2&&y.push("'"+this.terminals_[C]+"'");var x="";x=this.lexer.showPosition?"Parse error on line "+(c+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+y.join(", ")+", got '"+this.terminals_[p]+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==p?"end of input":"'"+(this.terminals_[p]||p)+"'"),this.parseError(x,{text:this.lexer.match,token:this.terminals_[p]||p,line:this.lexer.yylineno,loc:f,expected:y})}if(3==u){if(p==g)throw new Error(x||"Parsing halted.");h=this.lexer.yyleng,l=this.lexer.yytext,c=this.lexer.yylineno,f=this.lexer.yylloc,p=i()}for(;;){if(d.toString()in a[v])break;if(0==v)throw new Error(x||"Parsing halted.");t(1),v=o[o.length-1]}m=p,p=d,v=o[o.length-1],A=a[v]&&a[v][d],u=3}if(A[0]instanceof Array&&A.length>1)throw new Error("Parse Error: multiple actions possible at state: "+v+", token: "+p);switch(A[0]){case 1:o.push(p),r.push(this.lexer.yytext),s.push(this.lexer.yylloc),o.push(A[1]),p=null,m?(p=m,m=null):(h=this.lexer.yyleng,l=this.lexer.yytext,c=this.lexer.yylineno,f=this.lexer.yylloc,u>0&&u--);break;case 2:if(E=this.productions_[A[1]][1],b.$=r[r.length-E],b._$={first_line:s[s.length-(E||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(E||1)].first_column,last_column:s[s.length-1].last_column},w=this.performAction.call(b,l,h,c,this.yy,A[1],r,s),"undefined"!=typeof w)return w;E&&(o=o.slice(0,-1*E*2),r=r.slice(0,-1*E),s=s.slice(0,-1*E)),o.push(this.productions_[A[1]][0]),r.push(b.$),s.push(b._$),F=a[o[o.length-2]][o[o.length-1]],o.push(F);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];this.yytext+=e,this.yyleng++,this.match+=e,this.matched+=e;var t=e.match(/\n/);return t&&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,o;this._more||(this.yytext="",this.match="");for(var r=this._currentRules(),s=0;st[0].length)||(t=i,n=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[n],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e?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"undefined"!=typeof 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=o,t.parse=function(){return o.parse.apply(o,arguments)},t.main=function(n){if(!n[1])throw new Error("Usage: "+n[0]+" FILE");if("undefined"!=typeof e)var o=i(!function(){var e=new Error('Cannot find module "fs"');throw e.code="MODULE_NOT_FOUND",e}()).readFileSync(i(19).join(e.cwd(),n[1]),"utf8");else var r=i(!function(){var e=new Error('Cannot find module "file"');throw e.code="MODULE_NOT_FOUND",e}()).path(i(!function(){var e=new Error('Cannot find module "file"');throw e.code="MODULE_NOT_FOUND",e}()).cwd()),o=r.join(n[1]).read({charset:"utf-8"});return t.parser.parse(o)},"undefined"!=typeof n&&i.c[0]===n&&t.main("undefined"!=typeof e?e.argv.slice(1):i(!function(){var e=new Error('Cannot find module "system"');throw e.code="MODULE_NOT_FOUND",e}()).args)}).call(t,i(20),i(18)(e))},function(e){e.exports.id="ace/mode/json_worker",e.exports.src='"no use strict";(function(window){if(void 0===window.window||!window.document){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,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(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;var chunks=id.split("/");if(!window.acequire.tlns)return console.log("unable to load "+id);chunks[0]=window.acequire.tlns[chunks[0]]||chunks[0];var path=chunks.join("/")+".js";return window.acequire.id=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={},window.initBaseUrls=function initBaseUrls(topLevelNamespaces){acequire.tlns=topLevelNamespaces},window.initSender=function initSender(){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.command){if(!main[msg.command])throw Error("Unknown command:"+msg.command);main[msg.command].apply(main,msg.args)}else if(msg.init){initBaseUrls(msg.tlns),acequire("ace/lib/es5-shim"),sender=window.sender=initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}else msg.event&&sender&&sender._signal(msg.event,msg.data)}}})(this),ace.define("ace/lib/oop",["require","exports","module"],function(acequire,exports){"use strict";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define("ace/lib/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/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/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(){oop.implement(this,EventEmitter),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){var delta=e.data,range=delta.range;if(!(range.start.row==range.end.row&&range.start.row!=this.row||range.start.row>this.row||range.start.row==this.row&&range.start.column>this.column)){var row=this.row,column=this.column,start=range.start,end=range.end;"insertText"===delta.action?start.row===row&&column>=start.column?start.column===column&&this.$insertRight||(start.row===end.row?column+=end.column-start.column:(column-=start.column,row+=end.row-start.row)):start.row!==end.row&&row>start.row&&(row+=end.row-start.row):"insertLines"===delta.action?start.row===row&&0===column&&this.$insertRight||row>=start.row&&(row+=end.row-start.row):"removeText"===delta.action?start.row===row&&column>start.column?column=end.column>=column?start.column:Math.max(0,column-(end.column-start.column)):start.row!==end.row&&row>start.row?(end.row===row&&(column=Math.max(0,column-end.column)+start.column),row-=end.row-start.row):end.row===row&&(row-=end.row-start.row,column=Math.max(0,column-end.column)+start.column):"removeLines"==delta.action&&row>=start.row&&(row>=end.row?row-=end.row-start.row:(row=start.row,column=0)),this.setPosition(row,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/lib/event_emitter","ace/range","ace/anchor"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),EventEmitter=acequire("./lib/event_emitter").EventEmitter,Range=acequire("./range").Range,Anchor=acequire("./anchor").Anchor,Document=function(text){this.$lines=[],0===text.length?this.$lines=[""]:Array.isArray(text)?this._insertLines(0,text):this.insert({row:0,column:0},text)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength();this.remove(new Range(0,0,len,this.getLine(len-1).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){if(range.start.row==range.end.row)return this.getLine(range.start.row).substring(range.start.column,range.end.column);var lines=this.getLines(range.start.row,range.end.row);lines[0]=(lines[0]||"").substring(range.start.column);var l=lines.length-1;return range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column)),lines.join(this.getNewLineCharacter())},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):0>position.row&&(position.row=0),position},this.insert=function(position,text){if(!text||0===text.length)return position;position=this.$clipPosition(position),1>=this.getLength()&&this.$detectNewLine(text);var lines=this.$split(text),firstLine=lines.splice(0,1)[0],lastLine=0==lines.length?null:lines.splice(lines.length-1,1)[0];return position=this.insertInLine(position,firstLine),null!==lastLine&&(position=this.insertNewLine(position),position=this._insertLines(position.row,lines),position=this.insertInLine(position,lastLine||"")),position},this.insertLines=function(row,lines){return row>=this.getLength()?this.insert({row:row,column:0},"\\n"+lines.join("\\n")):this._insertLines(Math.max(row,0),lines)},this._insertLines=function(row,lines){if(0==lines.length)return{row:row,column:0};for(;lines.length>61440;){var end=this._insertLines(row,lines.slice(0,61440));lines=lines.slice(61440),row=end.row}var args=[row,0];args.push.apply(args,lines),this.$lines.splice.apply(this.$lines,args);var range=new Range(row,0,row+lines.length,0),delta={action:"insertLines",range:range,lines:lines};return this._signal("change",{data:delta}),range.end},this.insertNewLine=function(position){position=this.$clipPosition(position);var line=this.$lines[position.row]||"";this.$lines[position.row]=line.substring(0,position.column),this.$lines.splice(position.row+1,0,line.substring(position.column,line.length));var end={row:position.row+1,column:0},delta={action:"insertText",range:Range.fromPoints(position,end),text:this.getNewLineCharacter()};return this._signal("change",{data:delta}),end},this.insertInLine=function(position,text){if(0==text.length)return position;var line=this.$lines[position.row]||"";this.$lines[position.row]=line.substring(0,position.column)+text+line.substring(position.column);var end={row:position.row,column:position.column+text.length},delta={action:"insertText",range:Range.fromPoints(position,end),text:text};return this._signal("change",{data:delta}),end},this.remove=function(range){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),range.start=this.$clipPosition(range.start),range.end=this.$clipPosition(range.end),range.isEmpty())return range.start;var firstRow=range.start.row,lastRow=range.end.row;if(range.isMultiLine()){var firstFullRow=0==range.start.column?firstRow:firstRow+1,lastFullRow=lastRow-1;range.end.column>0&&this.removeInLine(lastRow,0,range.end.column),lastFullRow>=firstFullRow&&this._removeLines(firstFullRow,lastFullRow),firstFullRow!=firstRow&&(this.removeInLine(firstRow,range.start.column,this.getLine(firstRow).length),this.removeNewLine(range.start.row))}else this.removeInLine(firstRow,range.start.column,range.end.column);return range.start},this.removeInLine=function(row,startColumn,endColumn){if(startColumn!=endColumn){var range=new Range(row,startColumn,row,endColumn),line=this.getLine(row),removed=line.substring(startColumn,endColumn),newLine=line.substring(0,startColumn)+line.substring(endColumn,line.length);this.$lines.splice(row,1,newLine);var delta={action:"removeText",range:range,text:removed};return this._signal("change",{data:delta}),range.start}},this.removeLines=function(firstRow,lastRow){return 0>firstRow||lastRow>=this.getLength()?this.remove(new Range(firstRow,0,lastRow+1,0)):this._removeLines(firstRow,lastRow)},this._removeLines=function(firstRow,lastRow){var range=new Range(firstRow,0,lastRow+1,0),removed=this.$lines.splice(firstRow,lastRow-firstRow+1),delta={action:"removeLines",range:range,nl:this.getNewLineCharacter(),lines:removed};return this._signal("change",{data:delta}),removed},this.removeNewLine=function(row){var firstLine=this.getLine(row),secondLine=this.getLine(row+1),range=new Range(row,firstLine.length,row+1,0),line=firstLine+secondLine;this.$lines.splice(row,2,line);var delta={action:"removeText",range:range,text:this.getNewLineCharacter()};this._signal("change",{data:delta})},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;if(this.remove(range),text)var end=this.insert(range.start,text);else end=range.start;return end},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++){var delta=deltas[i],range=Range.fromPoints(delta.range.start,delta.range.end);"insertLines"==delta.action?this.insertLines(range.start.row,delta.lines):"insertText"==delta.action?this.insert(range.start,delta.text):"removeLines"==delta.action?this._removeLines(range.start.row,range.end.row-1):"removeText"==delta.action&&this.remove(range)}},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--){var delta=deltas[i],range=Range.fromPoints(delta.range.start,delta.range.end);"insertLines"==delta.action?this._removeLines(range.start.row,range.end.row-1):"insertText"==delta.action?this.remove(range):"removeLines"==delta.action?this._insertLines(range.start.row,delta.lines):"removeText"==delta.action&&this.insert(range.start,delta.text)}},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(obj){if("object"!=typeof obj||!obj)return obj;var cons=obj.constructor;if(cons===RegExp)return obj;var copy=cons();for(var key in obj)copy[key]="object"==typeof obj[key]?exports.deepCopy(obj[key]):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(/="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();try{value&&parse(value)}catch(e){var pos=this.doc.indexToPosition(e.at-1);return this.sender.emit("error",{row:pos.row,column:pos.column,text:e.message,type:"error"}),void 0}this.sender.emit("ok")}}.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}()){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;\nfor(;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=" \\n \\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)}});' +},function(e){e.exports=function(){throw new Error("define cannot be used indirect")}},function(e){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children=[],e.webpackPolyfill=1),e}},function(e,t,i){(function(e){function i(e,t){for(var i=0,n=e.length-1;n>=0;n--){var o=e[n];"."===o?e.splice(n,1):".."===o?(e.splice(n,1),i++):i&&(e.splice(n,1),i--)}if(t)for(;i--;i)e.unshift("..");return e}function n(e,t){if(e.filter)return e.filter(t);for(var i=[],n=0;n=-1&&!o;r--){var s=r>=0?arguments[r]:e.cwd();if("string"!=typeof s)throw new TypeError("Arguments to path.resolve must be strings");s&&(t=s+"/"+t,o="/"===s.charAt(0))}return t=i(n(t.split("/"),function(e){return!!e}),!o).join("/"),(o?"/":"")+t||"."},t.normalize=function(e){var o=t.isAbsolute(e),r="/"===s(e,-1);return e=i(n(e.split("/"),function(e){return!!e}),!o).join("/"),e||o||(e="."),e&&r&&(e+="/"),(o?"/":"")+e},t.isAbsolute=function(e){return"/"===e.charAt(0)},t.join=function(){var e=Array.prototype.slice.call(arguments,0);return t.normalize(n(e,function(e){if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");return e}).join("/"))},t.relative=function(e,i){function n(e){for(var t=0;t=0&&""===e[i];i--);return t>i?[]:e.slice(t,i-t+1)}e=t.resolve(e).substr(1),i=t.resolve(i).substr(1);for(var o=n(e.split("/")),r=n(i.split("/")),s=Math.min(o.length,r.length),a=s,l=0;s>l;l++)if(o[l]!==r[l]){a=l;break}for(var c=[],l=a;lt&&(t=e.length+t),e.substr(t,i)}}).call(t,i(20))},function(e){function t(){}var i=e.exports={};i.nextTick=function(){var e="undefined"!=typeof window&&window.setImmediate,t="undefined"!=typeof window&&window.MutationObserver,i="undefined"!=typeof window&&window.postMessage&&window.addEventListener;if(e)return function(e){return window.setImmediate(e)};var n=[];if(t){var o=document.createElement("div"),r=new MutationObserver(function(){var e=n.slice();n.length=0,e.forEach(function(e){e()})});return r.observe(o,{attributes:!0}),function(e){n.length||o.setAttribute("yes","no"),n.push(e)}}return i?(window.addEventListener("message",function(e){var t=e.source;if((t===window||null===t)&&"process-tick"===e.data&&(e.stopPropagation(),n.length>0)){var i=n.shift();i()}},!0),function(e){n.push(e),window.postMessage("process-tick","*")}):function(e){setTimeout(e,0)}}(),i.title="browser",i.browser=!0,i.env={},i.argv=[],i.on=t,i.addListener=t,i.once=t,i.off=t,i.removeListener=t,i.removeAllListeners=t,i.emit=t,i.binding=function(){throw new Error("process.binding is not supported")},i.cwd=function(){return"/"},i.chdir=function(){throw new Error("process.chdir is not supported")}},function(e,t){(function(t){function i(){if(t.Blob)try{return new Blob(["asdf"],{type:"text/plain"}),Blob}catch(e){}var i=t.WebKitBlobBuilder||t.MozBlobBuilder||t.MSBlobBuilder;return function(e,t){var n=new i,o=t.endings,r=t.type;if(o)for(var s=0,a=e.length;a>s;++s)n.append(e[s],o);else for(var s=0,a=e.length;a>s;++s)n.append(e[s]);return r?n.getBlob(r):n.getBlob()}}e.exports=i()}).call(t,function(){return this}())}])}); //# sourceMappingURL=jsoneditor.map \ No newline at end of file