function ne(E){return E&&E.__esModule&&Object.prototype.hasOwnProperty.call(E,"default")?E.default:E}(function(){var E="ace",w=function(){return this}();!w&&typeof window<"u"&&(w=window);var P=function(t,e,r){if(typeof t!="string"){P.original?P.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace());return}arguments.length==2&&(r=e),P.modules[t]||(P.payloads[t]=r,P.modules[t]=null)};P.modules={},P.payloads={};var b=function(t,e,r){if(typeof e=="string"){var n=a(t,e);if(n!=null)return r&&r(),n}else if(Object.prototype.toString.call(e)==="[object Array]"){for(var i=[],o=0,c=e.length;o1&&s(e,"")>-1&&(n=RegExp(this.source,b.replace.call(a(this),"g","")),b.replace.call(t.slice(e.index),n,function(){for(var o=1;oe.index&&this.lastIndex--}return e},d||(RegExp.prototype.test=function(t){var e=b.exec.call(this,t);return e&&this.global&&!e[0].length&&this.lastIndex>e.index&&this.lastIndex--,!!e});function a(t){return(t.global?"g":"")+(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.extended?"x":"")+(t.sticky?"y":"")}function s(t,e,r){if(Array.prototype.indexOf)return t.indexOf(e,r);for(var n=r||0;n0?R>k&&(R=k):R==null?R=0:R<0&&(R=Math.max(k+R,0)),R+$T)for(X=j;X--;)this[U+X]=this[T+X];if(H&&R===Q)this.length=Q,this.push.apply(this,M);else for(this.length=Q+H,X=0;X>>0;if(t($)!="[object Function]")throw new TypeError;for(;++H>>0,H=Array(M),K=arguments[1];if(t($)!="[object Function]")throw new TypeError($+" is not a function");for(var T=0;T>>0,H=[],K,T=arguments[1];if(t($)!="[object Function]")throw new TypeError($+" is not a function");for(var U=0;U>>0,H=arguments[1];if(t($)!="[object Function]")throw new TypeError($+" is not a function");for(var K=0;K>>0,H=arguments[1];if(t($)!="[object Function]")throw new TypeError($+" is not a function");for(var K=0;K>>0;if(t($)!="[object Function]")throw new TypeError($+" is not a function");if(!M&&arguments.length==1)throw new TypeError("reduce of empty array with no initial value");var H=0,K;if(arguments.length>=2)K=arguments[1];else do{if(H in L){K=L[H++];break}if(++H>=M)throw new TypeError("reduce of empty array with no initial value")}while(!0);for(;H>>0;if(t($)!="[object Function]")throw new TypeError($+" is not a function");if(!M&&arguments.length==1)throw new TypeError("reduceRight of empty array with no initial value");var H,K=M-1;if(arguments.length>=2)H=arguments[1];else do{if(K in L){H=L[K--];break}if(--K<0)throw new TypeError("reduceRight of empty array with no initial value")}while(!0);do K in this&&(H=$.call(void 0,H,L[K],K,k));while(K--);return H}),(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)&&(Array.prototype.indexOf=function($){var k=_&&t(this)=="[object String]"?this.split(""):V(this),L=k.length>>>0;if(!L)return-1;var M=0;for(arguments.length>1&&(M=z(arguments[1])),M=M>=0?M:Math.max(0,L+M);M>>0;if(!L)return-1;var M=L-1;for(arguments.length>1&&(M=Math.min(M,z(arguments[1]))),M=M>=0?M:L-Math.abs(M);M>=0;M--)if(M in k&&$===k[M])return M;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function($){return $.__proto__||($.constructor?$.constructor.prototype:a)}),!Object.getOwnPropertyDescriptor){var u="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function($,k){if(typeof $!="object"&&typeof $!="function"||$===null)throw new TypeError(u+$);if(e($,k)){var L,M,H;if(L={enumerable:!0,configurable:!0},c){var K=$.__proto__;$.__proto__=a;var M=i($,k),H=o($,k);if($.__proto__=K,M||H)return M&&(L.get=M),H&&(L.set=H),L}return L.value=$[k],L}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function($){return Object.keys($)}),!Object.create){var p;Object.prototype.__proto__===null?p=function(){return{__proto__:null}}:p=function(){var R={};for(var $ in R)R[$]=null;return R.constructor=R.hasOwnProperty=R.propertyIsEnumerable=R.isPrototypeOf=R.toLocaleString=R.toString=R.valueOf=R.__proto__=null,R},Object.create=function($,k){var L;if($===null)L=p();else{if(typeof $!="object")throw new TypeError("typeof prototype["+typeof $+"] != 'object'");var M=function(){};M.prototype=$,L=new M,L.__proto__=$}return k!==void 0&&Object.defineProperties(L,k),L}}function l(R){try{return Object.defineProperty(R,"sentinel",{}),"sentinel"in R}catch{}}if(Object.defineProperty){var g=l({}),C=typeof document>"u"||l(document.createElement("div"));if(!g||!C)var F=Object.defineProperty}if(!Object.defineProperty||F){var h="Property description must be an object: ",v="Object.defineProperty called on non-object: ",y="getters & setters can not be defined on this javascript engine";Object.defineProperty=function($,k,L){if(typeof $!="object"&&typeof $!="function"||$===null)throw new TypeError(v+$);if(typeof L!="object"&&typeof L!="function"||L===null)throw new TypeError(h+L);if(F)try{return F.call(Object,$,k,L)}catch{}if(e(L,"value"))if(c&&(i($,k)||o($,k))){var M=$.__proto__;$.__proto__=a,delete $[k],$[k]=L.value,$.__proto__=M}else $[k]=L.value;else{if(!c)throw new TypeError(y);e(L,"get")&&r($,k,L.get),e(L,"set")&&n($,k,L.set)}return $}}Object.defineProperties||(Object.defineProperties=function($,k){for(var L in k)e(k,L)&&Object.defineProperty($,L,k[L]);return $}),Object.seal||(Object.seal=function($){return $}),Object.freeze||(Object.freeze=function($){return $});try{Object.freeze(function(){})}catch{Object.freeze=function(k){return function(M){return typeof M=="function"?M:k(M)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function($){return $}),Object.isSealed||(Object.isSealed=function($){return!1}),Object.isFrozen||(Object.isFrozen=function($){return!1}),Object.isExtensible||(Object.isExtensible=function($){if(Object($)===$)throw new TypeError;for(var k="";e($,k);)k+="?";$[k]=!0;var L=e($,k);return delete $[k],L}),!Object.keys){var B=!0,x=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],D=x.length;for(var S in{toString:null})B=!1;Object.keys=function($){if(typeof $!="object"&&typeof $!="function"||$===null)throw new TypeError("Object.keys called on a non-object");var k=[];for(var L in $)e($,L)&&k.push(L);if(B)for(var M=0,H=D;M0||-1)*Math.floor(Math.abs(R))),R}var V=function(R){if(R==null)throw new TypeError("can't convert "+R+" to object");return Object(R)}});ace.define("ace/lib/fixoldbrowsers",["require","exports","module","ace/lib/regexp","ace/lib/es5-shim"],function(E,w,P){E("./regexp"),E("./es5-shim")});ace.define("ace/lib/dom",["require","exports","module"],function(E,w,P){var b="http://www.w3.org/1999/xhtml";if(w.getDocumentHead=function(A){return A||(A=document),A.head||A.getElementsByTagName("head")[0]||A.documentElement},w.createElement=function(A,d){return document.createElementNS?document.createElementNS(d||b,A):document.createElement(A)},w.hasCssClass=function(A,d){var a=(A.className+"").split(/\s+/g);return a.indexOf(d)!==-1},w.addCssClass=function(A,d){w.hasCssClass(A,d)||(A.className+=" "+d)},w.removeCssClass=function(A,d){for(var a=A.className.split(/\s+/g);;){var s=a.indexOf(d);if(s==-1)break;a.splice(s,1)}A.className=a.join(" ")},w.toggleCssClass=function(A,d){for(var a=A.className.split(/\s+/g),s=!0;;){var t=a.indexOf(d);if(t==-1)break;s=!1,a.splice(t,1)}return s&&a.push(d),A.className=a.join(" "),s},w.setCssClass=function(A,d,a){a?w.addCssClass(A,d):w.removeCssClass(A,d)},w.hasCssString=function(A,d){var a=0,s;if(d=d||document,d.createStyleSheet&&(s=d.styleSheets)){for(;a"u"){w.importCssString=function(){};return}window.pageYOffset!==void 0?(w.getPageScrollTop=function(){return window.pageYOffset},w.getPageScrollLeft=function(){return window.pageXOffset}):(w.getPageScrollTop=function(){return document.body.scrollTop},w.getPageScrollLeft=function(){return document.body.scrollLeft}),window.getComputedStyle?w.computedStyle=function(A,d){return d?(window.getComputedStyle(A,"")||{})[d]||"":window.getComputedStyle(A,"")||{}}:w.computedStyle=function(A,d){return d?A.currentStyle[d]:A.currentStyle},w.setInnerHtml=function(A,d){var a=A.cloneNode(!1);return a.innerHTML=d,A.parentNode.replaceChild(a,A),a},"textContent"in document.documentElement?(w.setInnerText=function(A,d){A.textContent=d},w.getInnerText=function(A){return A.textContent}):(w.setInnerText=function(A,d){A.innerText=d},w.getInnerText=function(A){return A.innerText}),w.getParentWindow=function(A){return A.defaultView||A.parentWindow}});ace.define("ace/lib/oop",["require","exports","module"],function(E,w,P){w.inherits=function(b,A){b.super_=A,b.prototype=Object.create(A.prototype,{constructor:{value:b,enumerable:!1,writable:!0,configurable:!0}})},w.mixin=function(b,A){for(var d in A)b[d]=A[d];return b},w.implement=function(b,A){w.mixin(b,A)}});ace.define("ace/lib/keys",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/oop"],function(E,w,P){E("./fixoldbrowsers");var b=E("./oop"),A=function(){var d={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,super:8,meta:8,command:8,cmd:8},FUNCTION_KEYS:{8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",96:"Numpad0",97:"Numpad1",98:"Numpad2",99:"Numpad3",100:"Numpad4",101:"Numpad5",102:"Numpad6",103:"Numpad7",104:"Numpad8",105:"Numpad9","-13":"NumpadEnter",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",111:"/",106:"*"}},a,s;for(s in d.FUNCTION_KEYS)a=d.FUNCTION_KEYS[s].toLowerCase(),d[a]=parseInt(s,10);for(s in d.PRINTABLE_KEYS)a=d.PRINTABLE_KEYS[s].toLowerCase(),d[a]=parseInt(s,10);return b.mixin(d,d.MODIFIER_KEYS),b.mixin(d,d.PRINTABLE_KEYS),b.mixin(d,d.FUNCTION_KEYS),d.enter=d.return,d.escape=d.esc,d.del=d.delete,d[173]="-",function(){for(var t=["cmd","ctrl","alt","shift"],e=Math.pow(2,t.length);e--;)d.KEY_MODS[e]=t.filter(function(r){return e&d.KEY_MODS[r]}).join("-")+"-"}(),d.KEY_MODS[0]="",d.KEY_MODS[-1]="input-",d}();b.mixin(w,A),w.keyCodeToString=function(d){var a=A[d];return typeof a!="string"&&(a=String.fromCharCode(d)),a.toLowerCase()}});ace.define("ace/lib/useragent",["require","exports","module"],function(E,w,P){if(w.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},w.getOS=function(){return w.isMac?w.OS.MAC:w.isLinux?w.OS.LINUX:w.OS.WINDOWS},typeof navigator=="object"){var b=(navigator.platform.match(/mac|win|linux/i)||["other"])[0].toLowerCase(),A=navigator.userAgent;w.isWin=b=="win",w.isMac=b=="mac",w.isLinux=b=="linux",w.isIE=navigator.appName=="Microsoft Internet Explorer"||navigator.appName.indexOf("MSAppHost")>=0?parseFloat((A.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((A.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),w.isOldIE=w.isIE&&w.isIE<9,w.isGecko=w.isMozilla=(window.Controllers||window.controllers)&&window.navigator.product==="Gecko",w.isOldGecko=w.isGecko&&parseInt((A.match(/rv:(\d+)/)||[])[1],10)<4,w.isOpera=window.opera&&Object.prototype.toString.call(window.opera)=="[object Opera]",w.isWebKit=parseFloat(A.split("WebKit/")[1])||void 0,w.isChrome=parseFloat(A.split(" Chrome/")[1])||void 0,w.isAIR=A.indexOf("AdobeAIR")>=0,w.isIPad=A.indexOf("iPad")>=0,w.isChromeOS=A.indexOf(" CrOS ")>=0,w.isIOS=/iPad|iPhone|iPod/.test(A)&&!window.MSStream,w.isIOS&&(w.isMac=!0)}});ace.define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(E,w,P){var b=E("./keys"),A=E("./useragent"),d=null,a=0;w.addListener=function(n,i,o){if(n.addEventListener)return n.addEventListener(i,o,!1);if(n.attachEvent){var c=function(){o.call(n,window.event)};o._wrapper=c,n.attachEvent("on"+i,c)}},w.removeListener=function(n,i,o){if(n.removeEventListener)return n.removeEventListener(i,o,!1);n.detachEvent&&n.detachEvent("on"+i,o._wrapper||o)},w.stopEvent=function(n){return w.stopPropagation(n),w.preventDefault(n),!1},w.stopPropagation=function(n){n.stopPropagation?n.stopPropagation():n.cancelBubble=!0},w.preventDefault=function(n){n.preventDefault?n.preventDefault():n.returnValue=!1},w.getButton=function(n){return n.type=="dblclick"?0:n.type=="contextmenu"||A.isMac&&n.ctrlKey&&!n.altKey&&!n.shiftKey?2:n.preventDefault?n.button:{1:0,2:2,4:1}[n.button]},w.capture=function(n,i,o){function c(f){i&&i(f),o&&o(f),w.removeListener(document,"mousemove",i,!0),w.removeListener(document,"mouseup",c,!0),w.removeListener(document,"dragstart",c,!0)}return w.addListener(document,"mousemove",i,!0),w.addListener(document,"mouseup",c,!0),w.addListener(document,"dragstart",c,!0),c},w.addTouchMoveListener=function(n,i){var o,c;w.addListener(n,"touchstart",function(f){var m=f.touches,_=m[0];o=_.clientX,c=_.clientY}),w.addListener(n,"touchmove",function(f){var m=f.touches;if(!(m.length>1)){var _=m[0];f.wheelX=o-_.clientX,f.wheelY=c-_.clientY,o=_.clientX,c=_.clientY,i(f)}})},w.addMouseWheelListener=function(n,i){"onmousewheel"in n?w.addListener(n,"mousewheel",function(o){var c=8;o.wheelDeltaX!==void 0?(o.wheelX=-o.wheelDeltaX/c,o.wheelY=-o.wheelDeltaY/c):(o.wheelX=0,o.wheelY=-o.wheelDelta/c),i(o)}):"onwheel"in n?w.addListener(n,"wheel",function(o){var c=.35;switch(o.deltaMode){case o.DOM_DELTA_PIXEL:o.wheelX=o.deltaX*c||0,o.wheelY=o.deltaY*c||0;break;case o.DOM_DELTA_LINE:case o.DOM_DELTA_PAGE:o.wheelX=(o.deltaX||0)*5,o.wheelY=(o.deltaY||0)*5;break}i(o)}):w.addListener(n,"DOMMouseScroll",function(o){o.axis&&o.axis==o.HORIZONTAL_AXIS?(o.wheelX=(o.detail||0)*5,o.wheelY=0):(o.wheelX=0,o.wheelY=(o.detail||0)*5),i(o)})},w.addMultiMouseDownListener=function(n,i,o,c){var f=0,m,_,u,p={2:"dblclick",3:"tripleclick",4:"quadclick"};function l(C){if(w.getButton(C)!==0?f=0:C.detail>1?(f++,f>4&&(f=1)):f=1,A.isIE){var F=Math.abs(C.clientX-m)>5||Math.abs(C.clientY-_)>5;(!u||F)&&(f=1),u&&clearTimeout(u),u=setTimeout(function(){u=null},i[f-1]||600),f==1&&(m=C.clientX,_=C.clientY)}if(C._clicks=f,o[c]("mousedown",C),f>4)f=0;else if(f>1)return o[c](p[f],C)}function g(C){f=2,u&&clearTimeout(u),u=setTimeout(function(){u=null},i[f-1]||600),o[c]("mousedown",C),o[c](p[f],C)}Array.isArray(n)||(n=[n]),n.forEach(function(C){w.addListener(C,"mousedown",l),A.isOldIE&&w.addListener(C,"dblclick",g)})};var s=A.isMac&&A.isOpera&&!("KeyboardEvent"in window)?function(n){return 0|(n.metaKey?1:0)|(n.altKey?2:0)|(n.shiftKey?4:0)|(n.ctrlKey?8:0)}:function(n){return 0|(n.ctrlKey?1:0)|(n.altKey?2:0)|(n.shiftKey?4:0)|(n.metaKey?8:0)};w.getModifierString=function(n){return b.KEY_MODS[s(n)]};function t(n,i,o){var c=s(i);if(!A.isMac&&d){if(i.getModifierState&&(i.getModifierState("OS")||i.getModifierState("Win"))&&(c|=8),d.altGr)if((3&c)!=3)d.altGr=0;else return;if(o===18||o===17){var f="location"in i?i.location:i.keyLocation;if(o===17&&f===1)d[o]==1&&(a=i.timeStamp);else if(o===18&&c===3&&f===2){var m=i.timeStamp-a;m<50&&(d.altGr=!0)}}}if(o in b.MODIFIER_KEYS&&(o=-1),c&8&&o>=91&&o<=93&&(o=-1),!c&&o===13){var f="location"in i?i.location:i.keyLocation;if(f===3&&(n(i,c,-o),i.defaultPrevented))return}if(A.isChromeOS&&c&8){if(n(i,c,o),i.defaultPrevented)return;c&=-9}return!c&&!(o in b.FUNCTION_KEYS)&&!(o in b.PRINTABLE_KEYS)?!1:n(i,c,o)}w.addCommandKeyListener=function(n,i){var o=w.addListener;if(A.isOldGecko||A.isOpera&&!("KeyboardEvent"in window)){var c=null;o(n,"keydown",function(m){c=m.keyCode}),o(n,"keypress",function(m){return t(i,m,c)})}else{var f=null;o(n,"keydown",function(m){d[m.keyCode]=(d[m.keyCode]||0)+1;var _=t(i,m,m.keyCode);return f=m.defaultPrevented,_}),o(n,"keypress",function(m){f&&(m.ctrlKey||m.altKey||m.shiftKey||m.metaKey)&&(w.stopEvent(m),f=null)}),o(n,"keyup",function(m){d[m.keyCode]=null}),d||(e(),o(window,"focus",e))}};function e(){d=Object.create(null)}if(typeof window=="object"&&window.postMessage&&!A.isOldIE){var r=1;w.nextTick=function(n,i){i=i||window;var o="zero-timeout-message-"+r;w.addListener(i,"message",function c(f){f.data==o&&(w.stopPropagation(f),w.removeListener(i,"message",c),n())}),i.postMessage(o,"*")}}w.nextFrame=typeof window=="object"&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),w.nextFrame?w.nextFrame=w.nextFrame.bind(window):w.nextFrame=function(n){setTimeout(n,17)}});ace.define("ace/lib/lang",["require","exports","module"],function(E,w,P){w.last=function(d){return d[d.length-1]},w.stringReverse=function(d){return d.split("").reverse().join("")},w.stringRepeat=function(d,a){for(var s="";a>0;)a&1&&(s+=d),(a>>=1)&&(d+=d);return s};var b=/^\s\s*/,A=/\s\s*$/;w.stringTrimLeft=function(d){return d.replace(b,"")},w.stringTrimRight=function(d){return d.replace(A,"")},w.copyObject=function(d){var a={};for(var s in d)a[s]=d[s];return a},w.copyArray=function(d){for(var a=[],s=0,t=d.length;sf.length?N=N.substr(9):N.substr(0,4)==f.substr(0,4)?N=N.substr(4,N.length-f.length+1):N.charAt(N.length-1)==f.charAt(0)&&(N=N.slice(0,-1)),N==f.charAt(0)||N.charAt(N.length-1)==f.charAt(0)&&(N=N.slice(0,-1)),N&&o.onTextInput(N)),m&&(m=!1),S&&(S=!1))},I=function(N){if(!p){var G=c.value;O(G),y()}},W=function(N,G,Y){var Z=N.clipboardData||window.clipboardData;if(!(!Z||e)){var J=r||Y?"Text":"text/plain";try{return G?Z.setData(J,G)!==!1:Z.getData(J)}catch(q){if(!Y)return W(q,G,!0)}}},z=function(N,G){var Y=o.getCopyText();if(!Y)return b.preventDefault(N);W(N,Y)?(A.isIOS&&(_=G,c.value=` aa`+Y+`a a `,c.setSelectionRange(4,4+Y.length),m={value:Y}),G?o.onCut():o.onCopy(),A.isIOS||b.preventDefault(N)):(m=!0,c.value=Y,c.select(),setTimeout(function(){m=!1,y(),v(),G?o.onCut():o.onCopy()}))},V=function(N){z(N,!0)},R=function(N){z(N,!1)},$=function(N){var G=W(N);typeof G=="string"?(G&&o.onPaste(G,N),A.isIE&&setTimeout(v),b.preventDefault(N)):(c.value="",u=!0)};b.addCommandKeyListener(c,o.onCommandKey.bind(o)),b.addListener(c,"select",x),b.addListener(c,"input",I),b.addListener(c,"cut",V),b.addListener(c,"copy",R),b.addListener(c,"paste",$);var k=function(N){p||!o.onCompositionStart||o.$readOnly||(p={},p.canUndo=o.session.$undoManager,o.onCompositionStart(),setTimeout(L,0),o.on("mousedown",M),p.canUndo&&!o.selection.isEmpty()&&(o.insert(""),o.session.markUndoGroup(),o.selection.clearSelection()),o.session.markUndoGroup())},L=function(){if(!(!p||!o.onCompositionUpdate||o.$readOnly)){var N=c.value.replace(/\x01/g,"");if(p.lastValue!==N&&(o.onCompositionUpdate(N),p.lastValue&&o.undo(),p.canUndo&&(p.lastValue=N),p.lastValue)){var G=o.selection.getRange();o.insert(p.lastValue),o.session.markUndoGroup(),p.range=o.selection.getRange(),o.selection.setRange(G),o.selection.clearSelection()}}},M=function(N){if(!(!o.onCompositionEnd||o.$readOnly)){var G=p;p=!1;var Y=setTimeout(function(){Y=null;var J=c.value.replace(/\x01/g,"");p||(J==G.lastValue?y():!G.lastValue&&J&&(y(),O(J)))});D=function(q){return Y&&clearTimeout(Y),q=q.replace(/\x01/g,""),q==G.lastValue?"":(G.lastValue&&Y&&o.undo(),q)},o.onCompositionEnd(),o.removeListener("mousedown",M),N.type=="compositionend"&&G.range&&o.selection.setRange(G.range);var Z=!!A.isChrome&&A.isChrome>=53||!!A.isWebKit&&A.isWebKit>=603;Z&&I()}},H=a.delayedCall(L,50);b.addListener(c,"compositionstart",k),A.isGecko?b.addListener(c,"text",function(){H.schedule()}):(b.addListener(c,"keyup",function(){H.schedule()}),b.addListener(c,"keydown",function(){H.schedule()})),b.addListener(c,"compositionend",M),this.getElement=function(){return c},this.setReadOnly=function(N){c.readOnly=N},this.onContextMenu=function(N){S=!0,v(o.selection.isEmpty()),o._emit("nativecontextmenu",{target:o,domEvent:N}),this.moveToMouse(N,!0)},this.moveToMouse=function(N,G){l||(l=c.style.cssText),c.style.cssText=(G?"z-index:100000;":"")+"height:"+c.style.height+";"+(A.isIE?"opacity:0.1;":"");var Y=o.container.getBoundingClientRect(),Z=d.computedStyle(o.container),J=Y.top+(parseInt(Z.borderTopWidth)||0),q=Y.left+(parseInt(Y.borderLeftWidth)||0),ie=Y.bottom-J-c.clientHeight-2,ee=function(te){c.style.left=te.clientX-q-2+"px",c.style.top=Math.min(te.clientY-J-2,ie)+"px"};ee(N),N.type=="mousedown"&&(o.renderer.$keepTextAreaAtCursor&&(o.renderer.$keepTextAreaAtCursor=null),clearTimeout(K),A.isWin&&b.capture(o.container,ee,T))},this.onContextMenuClose=T;var K;function T(){clearTimeout(K),K=setTimeout(function(){l&&(c.style.cssText=l,l=""),o.renderer.$keepTextAreaAtCursor==null&&(o.renderer.$keepTextAreaAtCursor=!0,o.renderer.$moveTextAreaToCursor())},0)}var U=function(N){o.textInput.onContextMenu(N),T()};if(b.addListener(c,"mouseup",U),b.addListener(c,"mousedown",function(N){N.preventDefault(),T()}),b.addListener(o.renderer.scroller,"contextmenu",U),b.addListener(c,"contextmenu",U),A.isIOS){var j=null,Q=!1;i.addEventListener("keydown",function(N){j&&clearTimeout(j),Q=!0}),i.addEventListener("keyup",function(N){j=setTimeout(function(){Q=!1},100)});var X=function(N){if(document.activeElement===c&&!Q){if(_)return setTimeout(function(){_=!1},100);var G=c.selectionStart,Y=c.selectionEnd;if(c.setSelectionRange(4,5),G==Y)switch(G){case 0:o.onCommandKey(null,0,s.up);break;case 1:o.onCommandKey(null,0,s.home);break;case 2:o.onCommandKey(null,t.option,s.left);break;case 4:o.onCommandKey(null,0,s.left);break;case 5:o.onCommandKey(null,0,s.right);break;case 7:o.onCommandKey(null,t.option,s.right);break;case 8:o.onCommandKey(null,0,s.end);break;case 9:o.onCommandKey(null,0,s.down);break}else{switch(Y){case 6:o.onCommandKey(null,t.shift,s.right);break;case 7:o.onCommandKey(null,t.shift|t.option,s.right);break;case 8:o.onCommandKey(null,t.shift,s.end);break;case 9:o.onCommandKey(null,t.shift,s.down);break}switch(G){case 0:o.onCommandKey(null,t.shift,s.up);break;case 1:o.onCommandKey(null,t.shift,s.home);break;case 2:o.onCommandKey(null,t.shift|t.option,s.left);break;case 3:o.onCommandKey(null,t.shift,s.left);break}}}};document.addEventListener("selectionchange",X),o.on("destroy",function(){document.removeEventListener("selectionchange",X)})}};w.TextInput=n});ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/keyboard/textinput_ios"],function(E,w,P){var b=E("../lib/event"),A=E("../lib/useragent"),d=E("../lib/dom"),a=E("../lib/lang"),s=A.isChrome<18,t=A.isIE,e=E("./textinput_ios").TextInput,r=function(n,i){if(A.isIOS)return e.call(this,n,i);var o=d.createElement("textarea");o.className="ace_text-input",o.setAttribute("wrap","off"),o.setAttribute("autocorrect","off"),o.setAttribute("autocapitalize","off"),o.setAttribute("spellcheck",!1),o.style.opacity="0",n.insertBefore(o,n.firstChild);var c="\u2028\u2028",f=!1,m=!1,_=!1,u="",p=!0;try{var l=document.activeElement===o}catch{}b.addListener(o,"blur",function(T){i.onBlur(T),l=!1}),b.addListener(o,"focus",function(T){l=!0,i.onFocus(T),F()}),this.focus=function(){if(u)return o.focus();var T=o.style.top;o.style.position="fixed",o.style.top="0px",o.focus(),setTimeout(function(){o.style.position="",o.style.top=="0px"&&(o.style.top=T)},0)},this.blur=function(){o.blur()},this.isFocused=function(){return l};var g=a.delayedCall(function(){l&&F(p)}),C=a.delayedCall(function(){_||(o.value=c,l&&F())});function F(T){if(!_){if(_=!0,B)var U=0,j=T?0:o.value.length-1;else var U=T?2:1,j=2;try{o.setSelectionRange(U,j)}catch{}_=!1}}function h(){_||(o.value=c,A.isWebKit&&C.schedule())}A.isWebKit||i.addEventListener("changeSelection",function(){i.selection.isEmpty()!=p&&(p=!p,g.schedule())}),h(),l&&i.onFocus();var v=function(T){return T.selectionStart===0&&T.selectionEnd===T.value.length},y=function(T){f?f=!1:v(o)?(i.selectAll(),F()):B&&F(i.selection.isEmpty())},B=null;this.setInputHandler=function(T){B=T},this.getInputHandler=function(){return B};var x=!1,D=function(T){B&&(T=B(T),B=null),m?(F(),T&&i.onPaste(T),m=!1):T==c.charAt(0)?x?i.execCommand("del",{source:"ace"}):i.execCommand("backspace",{source:"ace"}):(T.substring(0,2)==c?T=T.substr(2):T.charAt(0)==c.charAt(0)?T=T.substr(1):T.charAt(T.length-1)==c.charAt(0)&&(T=T.slice(0,-1)),T.charAt(T.length-1)==c.charAt(0)&&(T=T.slice(0,-1)),T&&i.onTextInput(T)),x&&(x=!1)},S=function(T){if(!_){var U=o.value;D(U),h()}},O=function(T,U,j){var Q=T.clipboardData||window.clipboardData;if(!(!Q||s)){var X=t||j?"Text":"text/plain";try{return U?Q.setData(X,U)!==!1:Q.getData(X)}catch(N){if(!j)return O(N,U,!0)}}},I=function(T,U){var j=i.getCopyText();if(!j)return b.preventDefault(T);O(T,j)?(U?i.onCut():i.onCopy(),b.preventDefault(T)):(f=!0,o.value=j,o.select(),setTimeout(function(){f=!1,h(),F(),U?i.onCut():i.onCopy()}))},W=function(T){I(T,!0)},z=function(T){I(T,!1)},V=function(T){var U=O(T);typeof U=="string"?(U&&i.onPaste(U,T),A.isIE&&setTimeout(F),b.preventDefault(T)):(o.value="",m=!0)};b.addCommandKeyListener(o,i.onCommandKey.bind(i)),b.addListener(o,"select",y),b.addListener(o,"input",S),b.addListener(o,"cut",W),b.addListener(o,"copy",z),b.addListener(o,"paste",V),(!("oncut"in o)||!("oncopy"in o)||!("onpaste"in o))&&b.addListener(n,"keydown",function(T){if(!(A.isMac&&!T.metaKey||!T.ctrlKey))switch(T.keyCode){case 67:z(T);break;case 86:V(T);break;case 88:W(T);break}});var R=function(T){_||!i.onCompositionStart||i.$readOnly||(_={},_.canUndo=i.session.$undoManager,i.onCompositionStart(),setTimeout($,0),i.on("mousedown",k),_.canUndo&&!i.selection.isEmpty()&&(i.insert(""),i.session.markUndoGroup(),i.selection.clearSelection()),i.session.markUndoGroup())},$=function(){if(!(!_||!i.onCompositionUpdate||i.$readOnly)){var T=o.value.replace(/\u2028/g,"");if(_.lastValue!==T&&(i.onCompositionUpdate(T),_.lastValue&&i.undo(),_.canUndo&&(_.lastValue=T),_.lastValue)){var U=i.selection.getRange();i.insert(_.lastValue),i.session.markUndoGroup(),_.range=i.selection.getRange(),i.selection.setRange(U),i.selection.clearSelection()}}},k=function(T){if(!(!i.onCompositionEnd||i.$readOnly)){var U=_;_=!1;var j=setTimeout(function(){j=null;var X=o.value.replace(/\u2028/g,"");_||(X==U.lastValue?h():!U.lastValue&&X&&(h(),D(X)))});B=function(N){return j&&clearTimeout(j),N=N.replace(/\u2028/g,""),N==U.lastValue?"":(U.lastValue&&j&&i.undo(),N)},i.onCompositionEnd(),i.removeListener("mousedown",k),T.type=="compositionend"&&U.range&&i.selection.setRange(U.range);var Q=!!A.isChrome&&A.isChrome>=53||!!A.isWebKit&&A.isWebKit>=603;Q&&S()}},L=a.delayedCall($,50);b.addListener(o,"compositionstart",R),A.isGecko?b.addListener(o,"text",function(){L.schedule()}):(b.addListener(o,"keyup",function(){L.schedule()}),b.addListener(o,"keydown",function(){L.schedule()})),b.addListener(o,"compositionend",k),this.getElement=function(){return o},this.setReadOnly=function(T){o.readOnly=T},this.onContextMenu=function(T){x=!0,F(i.selection.isEmpty()),i._emit("nativecontextmenu",{target:i,domEvent:T}),this.moveToMouse(T,!0)},this.moveToMouse=function(T,U){u||(u=o.style.cssText),o.style.cssText=(U?"z-index:100000;":"")+"height:"+o.style.height+";"+(A.isIE?"opacity:0.1;":"");var j=i.container.getBoundingClientRect(),Q=d.computedStyle(i.container),X=j.top+(parseInt(Q.borderTopWidth)||0),N=j.left+(parseInt(j.borderLeftWidth)||0),G=j.bottom-X-o.clientHeight-2,Y=function(Z){o.style.left=Z.clientX-N-2+"px",o.style.top=Math.min(Z.clientY-X-2,G)+"px"};Y(T),T.type=="mousedown"&&(i.renderer.$keepTextAreaAtCursor&&(i.renderer.$keepTextAreaAtCursor=null),clearTimeout(M),A.isWin&&b.capture(i.container,Y,H))},this.onContextMenuClose=H;var M;function H(){clearTimeout(M),M=setTimeout(function(){u&&(o.style.cssText=u,u=""),i.renderer.$keepTextAreaAtCursor==null&&(i.renderer.$keepTextAreaAtCursor=!0,i.renderer.$moveTextAreaToCursor())},0)}var K=function(T){i.textInput.onContextMenu(T),H()};b.addListener(o,"mouseup",K),b.addListener(o,"mousedown",function(T){T.preventDefault(),H()}),b.addListener(i.renderer.scroller,"contextmenu",K),b.addListener(o,"contextmenu",K)};w.TextInput=r});ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(E,w,P){E("../lib/dom"),E("../lib/event");var b=E("../lib/useragent"),A=0,d=250;function a(e){e.$clickSelection=null;var r=e.editor;r.setDefaultHandler("mousedown",this.onMouseDown.bind(e)),r.setDefaultHandler("dblclick",this.onDoubleClick.bind(e)),r.setDefaultHandler("tripleclick",this.onTripleClick.bind(e)),r.setDefaultHandler("quadclick",this.onQuadClick.bind(e)),r.setDefaultHandler("mousewheel",this.onMouseWheel.bind(e)),r.setDefaultHandler("touchmove",this.onTouchMove.bind(e));var n=["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"];n.forEach(function(i){e[i]=this[i]},this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}(function(){this.onMouseDown=function(e){var r=e.inSelection(),n=e.getDocumentPosition();this.mousedownEvent=e;var i=this.editor,o=e.getButton();if(o!==0){var c=i.getSelectionRange(),f=c.isEmpty();i.$blockScrolling++,(f||o==1)&&i.selection.moveToPosition(n),i.$blockScrolling--,o==2&&(i.textInput.onContextMenu(e.domEvent),b.isMozilla||e.preventDefault());return}if(this.mousedownEvent.time=Date.now(),r&&!i.isFocused()&&(i.focus(),this.$focusTimout&&!this.$clickSelection&&!i.inMultiSelectMode)){this.setState("focusWait"),this.captureMouse(e);return}return this.captureMouse(e),this.startSelect(n,e.domEvent._clicks>1),e.preventDefault()},this.startSelect=function(e,r){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var n=this.editor;n.$blockScrolling++,this.mousedownEvent.getShiftKey()?n.selection.selectToPosition(e):r||n.selection.moveToPosition(e),r||this.select(),n.renderer.scroller.setCapture&&n.renderer.scroller.setCapture(),n.setStyle("ace_selecting"),this.setState("select"),n.$blockScrolling--},this.select=function(){var e,r=this.editor,n=r.renderer.screenToTextCoordinates(this.x,this.y);if(r.$blockScrolling++,this.$clickSelection){var i=this.$clickSelection.comparePoint(n);if(i==-1)e=this.$clickSelection.end;else if(i==1)e=this.$clickSelection.start;else{var o=t(this.$clickSelection,n);n=o.cursor,e=o.anchor}r.selection.setSelectionAnchor(e.row,e.column)}r.selection.selectToPosition(n),r.$blockScrolling--,r.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(e){var r,n=this.editor,i=n.renderer.screenToTextCoordinates(this.x,this.y),o=n.selection[e](i.row,i.column);if(n.$blockScrolling++,this.$clickSelection){var c=this.$clickSelection.comparePoint(o.start),f=this.$clickSelection.comparePoint(o.end);if(c==-1&&f<=0)r=this.$clickSelection.end,(o.end.row!=i.row||o.end.column!=i.column)&&(i=o.start);else if(f==1&&c>=0)r=this.$clickSelection.start,(o.start.row!=i.row||o.start.column!=i.column)&&(i=o.end);else if(c==-1&&f==1)i=o.end,r=o.start;else{var m=t(this.$clickSelection,i);i=m.cursor,r=m.anchor}n.selection.setSelectionAnchor(r.row,r.column)}n.selection.selectToPosition(i),n.$blockScrolling--,n.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=s(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),r=Date.now();(e>A||r-this.mousedownEvent.time>this.$focusTimout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.onDoubleClick=function(e){var r=e.getDocumentPosition(),n=this.editor,i=n.session,o=i.getBracketRange(r);o?(o.isEmpty()&&(o.start.column--,o.end.column++),this.setState("select")):(o=n.selection.getWordRange(r.row,r.column),this.setState("selectByWords")),this.$clickSelection=o,this.select()},this.onTripleClick=function(e){var r=e.getDocumentPosition(),n=this.editor;this.setState("selectByLines");var i=n.getSelectionRange();i.isMultiLine()&&i.contains(r.row,r.column)?(this.$clickSelection=n.selection.getLineRange(i.start.row),this.$clickSelection.end=n.selection.getLineRange(i.end.row).end):this.$clickSelection=n.selection.getLineRange(r.row),this.select()},this.onQuadClick=function(e){var r=this.editor;r.selectAll(),this.$clickSelection=r.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 r=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var n=this.$lastScroll,i=e.domEvent.timeStamp,o=i-n.t,c=e.wheelX/o,f=e.wheelY/o;o=1&&r.renderer.isScrollableBy(e.wheelX*e.speed,0)&&(_=!0),m<=1&&r.renderer.isScrollableBy(0,e.wheelY*e.speed)&&(_=!0),_)n.allowed=i;else if(i-n.allowedr.session.documentToScreenRow(F.row,F.column))return _()}if(f!=l)if(f=l.text.join("
"),i.setHtml(f),i.show(),r._signal("showGutterTooltip",i),r.on("mousewheel",_),e.$tooltipFollowsMouse)u(c);else{var h=c.domEvent.target,v=h.getBoundingClientRect(),y=i.getElement().style;y.left=v.right+"px",y.top=v.bottom+"px"}}function _(){o&&(o=clearTimeout(o)),f&&(i.hide(),f=null,r._signal("hideGutterTooltip",i),r.removeEventListener("mousewheel",_))}function u(p){i.setPosition(p.x,p.y)}e.editor.setDefaultHandler("guttermousemove",function(p){var l=p.domEvent.target||p.domEvent.srcElement;if(b.hasCssClass(l,"ace_fold-widget"))return _();f&&e.$tooltipFollowsMouse&&u(p),c=p,!o&&(o=setTimeout(function(){o=null,c&&!e.isMousePressed?m():_()},50))}),d.addListener(r.renderer.$gutter,"mouseout",function(p){c=null,!(!f||o)&&(o=setTimeout(function(){o=null,_()},50))}),r.on("changeSession",_)}function t(e){a.call(this,e)}A.inherits(t,a),(function(){this.setPosition=function(e,r){var n=window.innerWidth||document.documentElement.clientWidth,i=window.innerHeight||document.documentElement.clientHeight,o=this.getWidth(),c=this.getHeight();e+=15,r+=15,e+o>n&&(e-=e+o-n),r+c>i&&(r-=20+c),a.prototype.setPosition.call(this,e,r)}}).call(t.prototype),w.GutterHandler=s});ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(E,w,P){var b=E("../lib/event"),A=E("../lib/useragent"),d=w.MouseEvent=function(a,s){this.domEvent=a,this.editor=s,this.x=this.clientX=a.clientX,this.y=this.clientY=a.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){b.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){b.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(this.$inSelection!==null)return this.$inSelection;var a=this.editor,s=a.getSelectionRange();if(s.isEmpty())this.$inSelection=!1;else{var t=this.getDocumentPosition();this.$inSelection=s.contains(t.row,t.column)}return this.$inSelection},this.getButton=function(){return b.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=A.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}).call(d.prototype)});ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(E,w,P){var b=E("../lib/dom"),A=E("../lib/event"),d=E("../lib/useragent"),a=200,s=200,t=5;function e(n){var i=n.editor,o=b.createElement("img");o.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",d.isOpera&&(o.style.cssText="width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;");var c=["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"];c.forEach(function($){n[$]=this[$]},this),i.addEventListener("mousedown",this.onMouseDown.bind(n));var f=i.container,m,_,u,p,l,g,C=0,F,h,v,y,B;this.onDragStart=function($){if(this.cancelDrag||!f.draggable){var k=this;return setTimeout(function(){k.startSelect(),k.captureMouse($)},0),$.preventDefault()}l=i.getSelectionRange();var L=$.dataTransfer;L.effectAllowed=i.getReadOnly()?"copy":"copyMove",d.isOpera&&(i.container.appendChild(o),o.scrollTop=0),L.setDragImage&&L.setDragImage(o,0,0),d.isOpera&&i.container.removeChild(o),L.clearData(),L.setData("Text",i.session.getTextRange()),h=!0,this.setState("drag")},this.onDragEnd=function($){if(f.draggable=!1,h=!1,this.setState(null),!i.getReadOnly()){var k=$.dataTransfer.dropEffect;!F&&k=="move"&&i.session.remove(i.getSelectionRange()),i.renderer.$cursorLayer.setBlinking(!0)}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function($){if(!(i.getReadOnly()||!V($.dataTransfer)))return _=$.clientX,u=$.clientY,m||O(),C++,$.dataTransfer.dropEffect=F=R($),A.preventDefault($)},this.onDragOver=function($){if(!(i.getReadOnly()||!V($.dataTransfer)))return _=$.clientX,u=$.clientY,m||(O(),C++),W!==null&&(W=null),$.dataTransfer.dropEffect=F=R($),A.preventDefault($)},this.onDragLeave=function($){if(C--,C<=0&&m)return I(),F=null,A.preventDefault($)},this.onDrop=function($){if(g){var k=$.dataTransfer;if(h)switch(F){case"move":l.contains(g.row,g.column)?l={start:g,end:g}:l=i.moveText(l,g);break;case"copy":l=i.moveText(l,g,!0);break}else{var L=k.getData("Text");l={start:g,end:i.session.insert(g,L)},i.focus(),F=null}return I(),A.preventDefault($)}},A.addListener(f,"dragstart",this.onDragStart.bind(n)),A.addListener(f,"dragend",this.onDragEnd.bind(n)),A.addListener(f,"dragenter",this.onDragEnter.bind(n)),A.addListener(f,"dragover",this.onDragOver.bind(n)),A.addListener(f,"dragleave",this.onDragLeave.bind(n)),A.addListener(f,"drop",this.onDrop.bind(n));function x($,k){var L=Date.now(),M=!k||$.row!=k.row,H=!k||$.column!=k.column;if(!y||M||H)i.$blockScrolling+=1,i.moveCursorToPosition($),i.$blockScrolling-=1,y=L,B={x:_,y:u};else{var K=r(B.x,B.y,_,u);K>t?y=null:L-y>=s&&(i.renderer.scrollCursorIntoView(),y=null)}}function D($,k){var L=Date.now(),M=i.renderer.layerConfig.lineHeight,H=i.renderer.layerConfig.characterWidth,K=i.renderer.scroller.getBoundingClientRect(),T={x:{left:_-K.left,right:K.right-_},y:{top:u-K.top,bottom:K.bottom-u}},U=Math.min(T.x.left,T.x.right),j=Math.min(T.y.top,T.y.bottom),Q={row:$.row,column:$.column};U/H<=2&&(Q.column+=T.x.left=a&&i.renderer.scrollCursorIntoView(Q):v=L:v=null}function S(){var $=g;g=i.renderer.screenToTextCoordinates(_,u),x(g,$),D(g,$)}function O(){l=i.selection.toOrientedRange(),m=i.session.addMarker(l,"ace_selection",i.getSelectionStyle()),i.clearSelection(),i.isFocused()&&i.renderer.$cursorLayer.setBlinking(!1),clearInterval(p),S(),p=setInterval(S,20),C=0,A.addListener(document,"mousemove",z)}function I(){clearInterval(p),i.session.removeMarker(m),m=null,i.$blockScrolling+=1,i.selection.fromOrientedRange(l),i.$blockScrolling-=1,i.isFocused()&&!h&&i.renderer.$cursorLayer.setBlinking(!i.getReadOnly()),l=null,g=null,C=0,v=null,y=null,A.removeListener(document,"mousemove",z)}var W=null;function z(){W==null&&(W=setTimeout(function(){W!=null&&m&&I()},20))}function V($){var k=$.types;return!k||Array.prototype.some.call(k,function(L){return L=="text/plain"||L=="Text"})}function R($){var k=["copy","copymove","all","uninitialized"],L=["move","copymove","linkmove","all","uninitialized"],M=d.isMac?$.altKey:$.ctrlKey,H="uninitialized";try{H=$.dataTransfer.effectAllowed.toLowerCase()}catch{}var K="none";return M&&k.indexOf(H)>=0?K="copy":L.indexOf(H)>=0?K="move":k.indexOf(H)>=0&&(K="copy"),K}}(function(){this.dragWait=function(){var n=Date.now()-this.mousedownEvent.time;n>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){var n=this.editor.container;n.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(n){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 n=this.editor,i=n.container;i.draggable=!0,n.renderer.$cursorLayer.setBlinking(!1),n.setStyle("ace_dragging");var o=d.isWin?"default":"move";n.renderer.setCursorStyle(o),this.setState("dragReady")},this.onMouseDrag=function(n){var i=this.editor.container;if(d.isIE&&this.state=="dragReady"){var o=r(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);o>3&&i.dragDrop()}if(this.state==="dragWait"){var o=r(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);o>0&&(i.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(n){if(this.$dragEnabled){this.mousedownEvent=n;var i=this.editor,o=n.inSelection(),c=n.getButton(),f=n.domEvent.detail||1;if(f===1&&c===0&&o){if(n.editor.inMultiSelectMode&&(n.getAccelKey()||n.getShiftKey()))return;this.mousedownEvent.time=Date.now();var m=n.domEvent.target||n.domEvent.srcElement;if("unselectable"in m&&(m.unselectable="on"),i.getDragDelay()){if(d.isWebKit){this.cancelDrag=!0;var _=i.container;_.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(n,this.onMouseDrag.bind(this)),n.defaultPrevented=!0}}}}).call(e.prototype);function r(n,i,o,c){return Math.sqrt(Math.pow(o-n,2)+Math.pow(c-i,2))}w.DragdropHandler=e});ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(E,w,P){var b=E("./dom");w.get=function(A,d){var a=new XMLHttpRequest;a.open("GET",A,!0),a.onreadystatechange=function(){a.readyState===4&&d(a.responseText)},a.send(null)},w.loadScript=function(A,d){var a=b.getDocumentHead(),s=document.createElement("script");s.src=A,a.appendChild(s),s.onload=s.onreadystatechange=function(t,e){(e||!s.readyState||s.readyState=="loaded"||s.readyState=="complete")&&(s=s.onload=s.onreadystatechange=null,e||d())}},w.qualifyURL=function(A){var d=document.createElement("a");return d.href=A,d.href}});ace.define("ace/lib/event_emitter",["require","exports","module"],function(E,w,P){var b={},A=function(){this.propagationStopped=!0},d=function(){this.defaultPrevented=!0};b._emit=b._dispatchEvent=function(a,s){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var t=this._eventRegistry[a]||[],e=this._defaultHandlers[a];if(!(!t.length&&!e)){(typeof s!="object"||!s)&&(s={}),s.type||(s.type=a),s.stopPropagation||(s.stopPropagation=A),s.preventDefault||(s.preventDefault=d),t=t.slice();for(var r=0;r1&&(c=i[i.length-2]);var m=s[n+"Path"];return m==null?m=s.basePath:o=="/"&&(n=o=""),m&&m.slice(-1)!="/"&&(m+="/"),m+n+o+c+this.get("suffix")},w.setModuleUrl=function(r,n){return s.$moduleUrls[r]=n},w.$loading={},w.loadModule=function(r,n){var i,o;Array.isArray(r)&&(o=r[0],r=r[1]);try{i=E(r)}catch{}if(i&&!w.$loading[r])return n&&n(i);if(w.$loading[r]||(w.$loading[r]=[]),w.$loading[r].push(n),!(w.$loading[r].length>1)){var c=function(){E([r],function(f){w._emit("load.module",{name:r,module:f});var m=w.$loading[r];w.$loading[r]=null,m.forEach(function(_){_&&_(f)})})};if(!w.get("packaged"))return c();A.loadScript(w.moduleUrl(r,o),c)}},t(!0);function t(r){if(!(!a||!a.document)){s.packaged=r||E.packaged||P.packaged||a.define&&(void 0).packaged;for(var n={},i="",o=document.currentScript||document._currentScript,c=o&&o.ownerDocument||document,f=c.getElementsByTagName("script"),m=0;m0)if(Q==16){for(G=N;G-1){for(G=N;G=0&&M[J]==l;J--)k[J]=b}}}function z($,k,L){if(!(A<$)){if($==1&&b==n&&!a){L.reverse();return}for(var M=L.length,H=0,K,T,U,j;H=$){for(K=H+1;K=$;)K++;for(T=H,U=K-1;T=k.length||(K=L[M-1])!=c&&K!=f||(T=k[M+1])!=c&&T!=f?m:(d&&(T=f),T==K?T:m);case C:return K=M>0?L[M-1]:_,K==c&&M+10&&L[M-1]==c)return c;if(d)return m;for(j=M+1,U=k.length;j=1425&&Q<=2303||Q==64286;if(K=k[j],X&&(K==o||K==p))return o}return M<1||(K=k[M-1])==_?m:L[M-1];case _:return d=!1,a=!0,b;case u:return s=!0,m;case v:case y:case x:case D:case B:d=!1;case S:return m}}function R($){var k=$.charCodeAt(0),L=k>>8;return L==0?k>191?i:O[k]:L==5?/[\u0591-\u05f4]/.test($)?o:i:L==6?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test($)?h:/[\u0660-\u0669\u066b-\u066c]/.test($)?f:k==1642?F:/[\u06f0-\u06f9]/.test($)?c:p:L==32&&k<=8287?I[k&255]:L==254&&k>=65136?p:m}w.L=i,w.R=o,w.EN=c,w.ON_R=3,w.AN=4,w.R_H=5,w.B=6,w.DOT="·",w.doBidiReorder=function($,k,L){if($.length<2)return{};var M=$.split(""),H=new Array(M.length),K=new Array(M.length),T=[];b=L?n:r,W(M,T,M.length,k);for(var U=0;Up&&k[U]0&&M[U-1]==="ل"&&/\u0622|\u0623|\u0625|\u0627/.test(M[U])&&(T[U-1]=T[U]=w.R_H,U++);M[M.length-1]===w.DOT&&(T[M.length-1]=w.B);for(var U=0;U=0&&(t=this.session.$docRowCache[r])}return t},this.getSplitIndex=function(){var t=0,e=this.session.$screenRowCache;if(e.length)for(var r,n=this.session.$getRowCacheIndex(e,this.currentRow);this.currentRow-t>0&&(r=this.session.$getRowCacheIndex(e,this.currentRow-t-1),r===n);)n=r,t++;return t},this.updateRowLine=function(t,e){if(t===void 0&&(t=this.getDocumentRow()),this.wrapIndent=0,this.isLastRow=t===this.session.getLength()-1,this.line=this.session.getLine(t),this.session.$useWrapMode){var r=this.session.$wrapData[t];r&&(e===void 0&&(e=this.getSplitIndex()),e>0&&r.length?(this.wrapIndent=r.indent,this.line=e0?t-1:0,this.bidiMap),r=this.bidiMap.bidiLevels,n=0;t===0&&r[e]%2!==0&&e++;for(var i=0;i=f&&ln+c/2;){if(n+=c,i===o.length-1){c=0;break}c=this.charWidths[o[++i]]}return i>0&&o[i-1]%2!==0&&o[i]%2===0?(r0&&o[i-1]%2===0&&o[i]%2!==0?e=1+(r>n?this.bidiMap.logicalFromVisual[i]:this.bidiMap.logicalFromVisual[i-1]):this.isRtlDir&&i===o.length-1&&c===0&&o[i-1]%2===0||!this.isRtlDir&&i===0&&o[i]%2!==0?e=1+this.bidiMap.logicalFromVisual[i]:(i>0&&o[i-1]%2!==0&&c!==0&&i--,e=this.bidiMap.logicalFromVisual[i]),e+this.wrapIndent}}).call(s.prototype),w.BidiHandler=s});ace.define("ace/range",["require","exports","module"],function(E,w,P){var b=function(d,a){return d.row-a.row||d.column-a.column},A=function(d,a,s,t){this.start={row:d,column:a},this.end={row:s,column:t}};(function(){this.isEqual=function(d){return this.start.row===d.start.row&&this.end.row===d.end.row&&this.start.column===d.start.column&&this.end.column===d.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(d,a){return this.compare(d,a)==0},this.compareRange=function(d){var a,s=d.end,t=d.start;return a=this.compare(s.row,s.column),a==1?(a=this.compare(t.row,t.column),a==1?2:a==0?1:0):a==-1?-2:(a=this.compare(t.row,t.column),a==-1?-1:a==1?42:0)},this.comparePoint=function(d){return this.compare(d.row,d.column)},this.containsRange=function(d){return this.comparePoint(d.start)==0&&this.comparePoint(d.end)==0},this.intersects=function(d){var a=this.compareRange(d);return a==-1||a==0||a==1},this.isEnd=function(d,a){return this.end.row==d&&this.end.column==a},this.isStart=function(d,a){return this.start.row==d&&this.start.column==a},this.setStart=function(d,a){typeof d=="object"?(this.start.column=d.column,this.start.row=d.row):(this.start.row=d,this.start.column=a)},this.setEnd=function(d,a){typeof d=="object"?(this.end.column=d.column,this.end.row=d.row):(this.end.row=d,this.end.column=a)},this.inside=function(d,a){return this.compare(d,a)==0?!(this.isEnd(d,a)||this.isStart(d,a)):!1},this.insideStart=function(d,a){return this.compare(d,a)==0?!this.isEnd(d,a):!1},this.insideEnd=function(d,a){return this.compare(d,a)==0?!this.isStart(d,a):!1},this.compare=function(d,a){return!this.isMultiLine()&&d===this.start.row?athis.end.column?1:0:dthis.end.row?1:this.start.row===d?a>=this.start.column?0:-1:this.end.row===d?a<=this.end.column?0:1:0},this.compareStart=function(d,a){return this.start.row==d&&this.start.column==a?-1:this.compare(d,a)},this.compareEnd=function(d,a){return this.end.row==d&&this.end.column==a?1:this.compare(d,a)},this.compareInside=function(d,a){return this.end.row==d&&this.end.column==a?1:this.start.row==d&&this.start.column==a?-1:this.compare(d,a)},this.clipRows=function(d,a){if(this.end.row>a)var s={row:a+1,column:0};else if(this.end.rowa)var t={row:a+1,column:0};else if(this.start.rowe.row||t.row==e.row&&t.column>e.column},this.getRange=function(){var t=this.anchor,e=this.lead;return this.isEmpty()?a.fromPoints(e,e):this.isBackwards()?a.fromPoints(e,t):a.fromPoints(t,e)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){var t=this.doc.getLength()-1;this.setSelectionAnchor(0,0),this.moveCursorTo(t,this.doc.getLine(t).length)},this.setRange=this.setSelectionRange=function(t,e){e?(this.setSelectionAnchor(t.end.row,t.end.column),this.selectTo(t.start.row,t.start.column)):(this.setSelectionAnchor(t.start.row,t.start.column),this.selectTo(t.end.row,t.end.column)),this.getRange().isEmpty()&&(this.$isEmpty=!0),this.$desiredColumn=null},this.$moveSelection=function(t){var e=this.lead;this.$isEmpty&&this.setSelectionAnchor(e.row,e.column),t.call(this)},this.selectTo=function(t,e){this.$moveSelection(function(){this.moveCursorTo(t,e)})},this.selectToPosition=function(t){this.$moveSelection(function(){this.moveCursorToPosition(t)})},this.moveTo=function(t,e){this.clearSelection(),this.moveCursorTo(t,e)},this.moveToPosition=function(t){this.clearSelection(),this.moveCursorToPosition(t)},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(t,e){if(typeof e>"u"){var r=t||this.lead;t=r.row,e=r.column}return this.session.getWordRange(t,e)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var t=this.getCursor(),e=this.session.getAWordRange(t.row,t.column);this.setSelectionRange(e)},this.getLineRange=function(t,e){var r=typeof t=="number"?t:this.lead.row,n,i=this.session.getFoldLine(r);return i?(r=i.start.row,n=i.end.row):n=r,e===!0?new a(r,0,n,this.session.getLine(n).length):new a(r,0,n+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.wouldMoveIntoSoftTab=function(t,e,r){var n=t.column,i=t.column+e;return r<0&&(n=t.column-e,i=t.column),this.session.isTabStop(t)&&this.doc.getLine(t.row).slice(n,i).split(" ").length-1==e},this.moveCursorLeft=function(){var t=this.lead.getPosition(),e;if(e=this.session.getFoldAt(t.row,t.column,-1))this.moveCursorTo(e.start.row,e.start.column);else if(t.column===0)t.row>0&&this.moveCursorTo(t.row-1,this.doc.getLine(t.row-1).length);else{var r=this.session.getTabSize();this.wouldMoveIntoSoftTab(t,r,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-r):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var t=this.lead.getPosition(),e;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&&(e.column=n)}}this.moveCursorTo(e.row,e.column)},this.moveCursorFileEnd=function(){var t=this.doc.getLength()-1,e=this.doc.getLine(t).length;this.moveCursorTo(t,e)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var t=this.lead.row,e=this.lead.column,r=this.doc.getLine(t),n=r.substring(e);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var i=this.session.getFoldAt(t,e,1);if(i){this.moveCursorTo(i.end.row,i.end.column);return}if(this.session.nonTokenRe.exec(n)&&(e+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,n=r.substring(e)),e>=r.length){this.moveCursorTo(t,r.length),this.moveCursorRight(),t0&&this.moveCursorWordLeft();return}this.session.tokenRe.exec(i)&&(e-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(t,e)},this.$shortWordEndIndex=function(t){var e=0,r,n=/\s/,i=this.session.tokenRe;if(i.lastIndex=0,this.session.tokenRe.exec(t))e=this.session.tokenRe.lastIndex;else{for(;(r=t[e])&&n.test(r);)e++;if(e<1){for(i.lastIndex=0;(r=t[e])&&!i.test(r);)if(i.lastIndex=0,e++,n.test(r))if(e>2){e--;break}else{for(;(r=t[e])&&n.test(r);)e++;if(e>2)break}}}return i.lastIndex=0,e},this.moveCursorShortWordRight=function(){var t=this.lead.row,e=this.lead.column,r=this.doc.getLine(t),n=r.substring(e),i=this.session.getFoldAt(t,e,1);if(i)return this.moveCursorTo(i.end.row,i.end.column);if(e==r.length){var o=this.doc.getLength();do t++,n=this.doc.getLine(t);while(t0&&/^\s*$/.test(n));e=n.length,/\s+$/.test(n)||(n="")}var i=A.stringReverse(n),o=this.$shortWordEndIndex(i);return this.moveCursorTo(t,e-o)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(t,e){var r=this.session.documentToScreenPosition(this.lead.row,this.lead.column),n;e===0&&(t!==0&&(this.session.$bidiHandler.isBidiRow(r.row,this.lead.row)?(n=this.session.$bidiHandler.getPosLeft(r.column),r.column=Math.round(n/this.session.$bidiHandler.charWidths[0])):n=r.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?r.column=this.$desiredColumn:this.$desiredColumn=r.column);var i=this.session.screenToDocumentPosition(r.row+t,r.column,n);t!==0&&e===0&&i.row===this.lead.row&&i.column===this.lead.column&&this.session.lineWidgets&&this.session.lineWidgets[i.row]&&(i.row>0||t>0)&&i.row++,this.moveCursorTo(i.row,i.column+e,e===0)},this.moveCursorToPosition=function(t){this.moveCursorTo(t.row,t.column)},this.moveCursorTo=function(t,e,r){var n=this.session.getFoldAt(t,e,1);n&&(t=n.start.row,e=n.start.column),this.$keepDesiredColumnOnChange=!0;var i=this.session.getLine(t);/[\uDC00-\uDFFF]/.test(i.charAt(e))&&i.charAt(e-1)&&(this.lead.row==t&&this.lead.column==e+1?e=e-1:e=e+1),this.lead.setPosition(t,e),this.$keepDesiredColumnOnChange=!1,r||(this.$desiredColumn=null)},this.moveCursorToScreen=function(t,e,r){var n=this.session.screenToDocumentPosition(t,e);this.moveCursorTo(n.row,n.column,r)},this.detach=function(){this.lead.detach(),this.anchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(t){this.setSelectionRange(t,t.cursor==t.start),this.$desiredColumn=t.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(t){var e=this.getRange();return t?(t.start.column=e.start.column,t.start.row=e.start.row,t.end.column=e.end.column,t.end.row=e.end.row):t=e,t.cursor=this.isBackwards()?t.start:t.end,t.desiredColumn=this.$desiredColumn,t},this.getRangeOfMovements=function(t){var e=this.getCursor();try{t(this);var r=this.getCursor();return a.fromPoints(e,r)}catch{return a.fromPoints(e,e)}finally{this.moveCursorToPosition(e)}},this.toJSON=function(){if(this.rangeCount)var t=this.ranges.map(function(e){var r=e.clone();return r.isBackwards=e.cursor==e.start,r});else{var t=this.getRange();t.isBackwards=this.isBackwards()}return t},this.fromJSON=function(t){if(t.start==null)if(this.rangeList){this.toSingleRange(t[0]);for(var e=t.length;e--;){var r=a.fromPoints(t[e].start,t[e].end);t[e].isBackwards&&(r.cursor=r.start),this.addRange(r,!0)}return}else t=t[0];this.rangeList&&this.toSingleRange(t),this.setSelectionRange(t,t.isBackwards)},this.isEqual=function(t){if((t.length||this.rangeCount)&&t.length!=this.rangeCount)return!1;if(!t.length||!this.ranges)return this.getRange().isEqual(t);for(var e=this.ranges.length;e--;)if(!this.ranges[e].isEqual(t[e]))return!1;return!0}}).call(s.prototype),w.Selection=s});ace.define("ace/tokenizer",["require","exports","module","ace/config"],function(E,w,P){var b=E("./config"),A=2e3,d=function(a){this.states=a,this.regExps={},this.matchMappings={};for(var s in this.states){for(var t=this.states[s],e=[],r=0,n=this.matchMappings[s]={defaultToken:"text"},i="g",o=[],c=0;c1?f.onMatch=this.$applyToken:f.onMatch=f.token),_>1&&(/\\\d/.test(f.regex)?m=f.regex.replace(/\\([0-9]+)/g,function(u,p){return"\\"+(parseInt(p,10)+r+1)}):(_=1,m=this.removeCapturingGroups(f.regex)),!f.splitRegex&&typeof f.token!="string"&&o.push(f)),n[r]=c,r+=_,e.push(m),f.onMatch||(f.onMatch=null)}}e.length||(n[0]=0,e.push("$")),o.forEach(function(u){u.splitRegex=this.createSplitterRegexp(u.regex,i)},this),this.regExps[s]=new RegExp("("+e.join(")|(")+")|($)",i)}};(function(){this.$setMaxTokenCount=function(a){A=a|0},this.$applyToken=function(a){var s=this.splitRegex.exec(a).slice(1),t=this.token.apply(this,s);if(typeof t=="string")return[{type:t,value:a}];for(var e=[],r=0,n=t.length;rf){var C=a.substring(f,g-l.length);_.type==u?_.value+=C:(_.type&&c.push(_),_={type:u,value:C})}for(var F=0;FA){for(m>2*a.length&&this.reportError("infinite loop with in ace tokenizer",{startState:s,line:a});f1&&t[0]!==e&&t.unshift("#tmp",e),{tokens:c,state:t.length?t:e}},this.reportError=b.reportError}).call(d.prototype),w.Tokenizer=d});ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],function(E,w,P){var b=E("../lib/lang"),A=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(s,t){if(!t){for(var e in s)this.$rules[e]=s[e];return}for(var e in s){for(var r=s[e],n=0;n=this.$rowTokens.length;){if(this.$row+=1,d||(d=this.$session.getLength()),this.$row>=d)return this.$row=d-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 d=this.$rowTokens,a=this.$tokenIndex,s=d[a].start;if(s!==void 0)return s;for(s=0;a>0;)a-=1,s+=d[a].value.length;return s},this.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},this.getCurrentTokenRange=function(){var d=this.$rowTokens[this.$tokenIndex],a=this.getCurrentTokenColumn();return new b(this.$row,a,this.$row,a+d.value.length)}}).call(A.prototype),w.TokenIterator=A});ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(E,w,P){var b=E("../../lib/oop"),A=E("../behaviour").Behaviour,d=E("../../token_iterator").TokenIterator,a=E("../../lib/lang"),s=["text","paren.rparen","punctuation.operator"],t=["text","paren.rparen","punctuation.operator","comment"],e,r={},n={'"':'"',"'":"'"},i=function(f){var m=-1;if(f.multiSelect&&(m=f.selection.index,r.rangeCount!=f.multiSelect.rangeCount&&(r={rangeCount:f.multiSelect.rangeCount})),r[m])return e=r[m];e=r[m]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},o=function(f,m,_,u){var p=f.end.row-f.start.row;return{text:_+m+u,selection:[0,f.start.column+1,p,f.end.column+(p?0:1)]}},c=function(f){this.add("braces","insertion",function(m,_,u,p,l){var g=u.getCursorPosition(),C=p.doc.getLine(g.row);if(l=="{"){i(u);var F=u.getSelectionRange(),h=p.doc.getTextRange(F);if(h!==""&&h!=="{"&&u.getWrapBehavioursEnabled())return o(F,h,"{","}");if(c.isSaneInsertion(u,p))return/[\]\}\)]/.test(C[g.column])||u.inMultiSelectMode||f&&f.braces?(c.recordAutoInsert(u,p,"}"),{text:"{}",selection:[1,1]}):(c.recordMaybeInsert(u,p,"{"),{text:"{",selection:[1,1]})}else if(l=="}"){i(u);var v=C.substring(g.column,g.column+1);if(v=="}"){var y=p.$findOpeningBracket("}",{column:g.column+1,row:g.row});if(y!==null&&c.isAutoInsertedClosing(g,C,l))return c.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(l==` `||l==`\r `){i(u);var B="";c.isMaybeInsertedClosing(g,C)&&(B=a.stringRepeat("}",e.maybeInsertedBrackets),c.clearMaybeInsertedClosing());var v=C.substring(g.column,g.column+1);if(v==="}"){var x=p.findMatchingBracket({row:g.row,column:g.column+1},"}");if(!x)return null;var D=this.$getIndent(p.getLine(x.row))}else if(B)var D=this.$getIndent(C);else{c.clearMaybeInsertedClosing();return}var S=D+p.getTabString();return{text:` `+S+` `+D+B,selection:[1,S.length,1,S.length]}}else c.clearMaybeInsertedClosing()}),this.add("braces","deletion",function(m,_,u,p,l){var g=p.doc.getTextRange(l);if(!l.isMultiLine()&&g=="{"){i(u);var C=p.doc.getLine(l.start.row),F=C.substring(l.end.column,l.end.column+1);if(F=="}")return l.end.column++,l;e.maybeInsertedBrackets--}}),this.add("parens","insertion",function(m,_,u,p,l){if(l=="("){i(u);var g=u.getSelectionRange(),C=p.doc.getTextRange(g);if(C!==""&&u.getWrapBehavioursEnabled())return o(g,C,"(",")");if(c.isSaneInsertion(u,p))return c.recordAutoInsert(u,p,")"),{text:"()",selection:[1,1]}}else if(l==")"){i(u);var F=u.getCursorPosition(),h=p.doc.getLine(F.row),v=h.substring(F.column,F.column+1);if(v==")"){var y=p.$findOpeningBracket(")",{column:F.column+1,row:F.row});if(y!==null&&c.isAutoInsertedClosing(F,h,l))return c.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(m,_,u,p,l){var g=p.doc.getTextRange(l);if(!l.isMultiLine()&&g=="("){i(u);var C=p.doc.getLine(l.start.row),F=C.substring(l.start.column+1,l.start.column+2);if(F==")")return l.end.column++,l}}),this.add("brackets","insertion",function(m,_,u,p,l){if(l=="["){i(u);var g=u.getSelectionRange(),C=p.doc.getTextRange(g);if(C!==""&&u.getWrapBehavioursEnabled())return o(g,C,"[","]");if(c.isSaneInsertion(u,p))return c.recordAutoInsert(u,p,"]"),{text:"[]",selection:[1,1]}}else if(l=="]"){i(u);var F=u.getCursorPosition(),h=p.doc.getLine(F.row),v=h.substring(F.column,F.column+1);if(v=="]"){var y=p.$findOpeningBracket("]",{column:F.column+1,row:F.row});if(y!==null&&c.isAutoInsertedClosing(F,h,l))return c.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(m,_,u,p,l){var g=p.doc.getTextRange(l);if(!l.isMultiLine()&&g=="["){i(u);var C=p.doc.getLine(l.start.row),F=C.substring(l.start.column+1,l.start.column+2);if(F=="]")return l.end.column++,l}}),this.add("string_dquotes","insertion",function(m,_,u,p,l){var g=p.$mode.$quotes||n;if(l.length==1&&g[l]){if(this.lineCommentStart&&this.lineCommentStart.indexOf(l)!=-1)return;i(u);var C=l,F=u.getSelectionRange(),h=p.doc.getTextRange(F);if(h!==""&&(h.length!=1||!g[h])&&u.getWrapBehavioursEnabled())return o(F,h,C,C);if(!h){var v=u.getCursorPosition(),y=p.doc.getLine(v.row),B=y.substring(v.column-1,v.column),x=y.substring(v.column,v.column+1),D=p.getTokenAt(v.row,v.column),S=p.getTokenAt(v.row,v.column+1);if(B=="\\"&&D&&/escape/.test(D.type))return null;var O=D&&/string|escape/.test(D.type),I=!S||/string|escape/.test(S.type),W;if(x==C)W=O!==I,W&&/string\.end/.test(S.type)&&(W=!1);else{if(O&&!I||O&&I)return null;var z=p.$mode.tokenRe;z.lastIndex=0;var V=z.test(B);z.lastIndex=0;var R=z.test(B);if(V||R||x&&!/[\s;,.})\]\\]/.test(x))return null;W=!0}return{text:W?C+C:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(m,_,u,p,l){var g=p.doc.getTextRange(l);if(!l.isMultiLine()&&(g=='"'||g=="'")){i(u);var C=p.doc.getLine(l.start.row),F=C.substring(l.start.column+1,l.start.column+2);if(F==g)return l.end.column++,l}})};c.isSaneInsertion=function(f,m){var _=f.getCursorPosition(),u=new d(m,_.row,_.column);if(!this.$matchTokenType(u.getCurrentToken()||"text",s)){var p=new d(m,_.row,_.column+1);if(!this.$matchTokenType(p.getCurrentToken()||"text",s))return!1}return u.stepForward(),u.getCurrentTokenRow()!==_.row||this.$matchTokenType(u.getCurrentToken()||"text",t)},c.$matchTokenType=function(f,m){return m.indexOf(f.type||f)>-1},c.recordAutoInsert=function(f,m,_){var u=f.getCursorPosition(),p=m.doc.getLine(u.row);this.isAutoInsertedClosing(u,p,e.autoInsertedLineEnd[0])||(e.autoInsertedBrackets=0),e.autoInsertedRow=u.row,e.autoInsertedLineEnd=_+p.substr(u.column),e.autoInsertedBrackets++},c.recordMaybeInsert=function(f,m,_){var u=f.getCursorPosition(),p=m.doc.getLine(u.row);this.isMaybeInsertedClosing(u,p)||(e.maybeInsertedBrackets=0),e.maybeInsertedRow=u.row,e.maybeInsertedLineStart=p.substr(0,u.column)+_,e.maybeInsertedLineEnd=p.substr(u.column),e.maybeInsertedBrackets++},c.isAutoInsertedClosing=function(f,m,_){return e.autoInsertedBrackets>0&&f.row===e.autoInsertedRow&&_===e.autoInsertedLineEnd[0]&&m.substr(f.column)===e.autoInsertedLineEnd},c.isMaybeInsertedClosing=function(f,m){return e.maybeInsertedBrackets>0&&f.row===e.maybeInsertedRow&&m.substr(f.column)===e.maybeInsertedLineEnd&&m.substr(0,f.column)==e.maybeInsertedLineStart},c.popAutoInsertedClosing=function(){e.autoInsertedLineEnd=e.autoInsertedLineEnd.substr(1),e.autoInsertedBrackets--},c.clearMaybeInsertedClosing=function(){e&&(e.maybeInsertedBrackets=0,e.maybeInsertedRow=-1)},b.inherits(c,A),w.CstyleBehaviour=c});ace.define("ace/unicode",["require","exports","module"],function(E,w,P){w.packages={},b({L:"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",Ll:"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A",Lu:"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A",Lt:"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC",Lm:"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F",Lo:"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",M:"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26",Mn:"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26",Mc:"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC",Me:"0488048906DE20DD-20E020E2-20E4A670-A672",N:"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nd:"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nl:"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF",No:"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835",P:"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65",Pd:"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D",Ps:"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62",Pe:"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63",Pi:"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20",Pf:"00BB2019201D203A2E032E052E0A2E0D2E1D2E21",Pc:"005F203F20402054FE33FE34FE4D-FE4FFF3F",Po:"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65",S:"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD",Sm:"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC",Sc:"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6",Sk:"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3",So:"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD",Z:"002000A01680180E2000-200A20282029202F205F3000",Zs:"002000A01680180E2000-200A202F205F3000",Zl:"2028",Zp:"2029",C:"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF",Cc:"0000-001F007F-009F",Cf:"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB",Co:"E000-F8FF",Cs:"D800-DFFF",Cn:"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF"});function b(A){var d=/\w{4}/g;for(var a in A)w.packages[a]=A[a].replace(d,"\\u$&")}});ace.define("ace/mode/text",["require","exports","module","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/behaviour/cstyle","ace/unicode","ace/lib/lang","ace/token_iterator","ace/range"],function(E,w,P){var b=E("../tokenizer").Tokenizer,A=E("./text_highlight_rules").TextHighlightRules,d=E("./behaviour/cstyle").CstyleBehaviour,a=E("../unicode"),s=E("../lib/lang"),t=E("../token_iterator").TokenIterator,e=E("../range").Range,r=function(){this.HighlightRules=A};(function(){this.$defaultBehaviour=new d,this.tokenRe=new RegExp("^["+a.packages.L+a.packages.Mn+a.packages.Mc+a.packages.Nd+a.packages.Pc+"\\$_]+","g"),this.nonTokenRe=new RegExp("^(?:[^"+a.packages.L+a.packages.Mn+a.packages.Mc+a.packages.Nd+a.packages.Pc+"\\$_]|\\s])+","g"),this.getTokenizer=function(){return this.$tokenizer||(this.$highlightRules=this.$highlightRules||new this.HighlightRules(this.$highlightRuleConfig),this.$tokenizer=new b(this.$highlightRules.getRules())),this.$tokenizer},this.lineCommentStart="",this.blockComment="",this.toggleCommentLines=function(n,i,o,c){var f=i.doc,m=!0,_=!0,u=1/0,p=i.getTabSize(),l=!1;if(this.lineCommentStart){if(Array.isArray(this.lineCommentStart))var F=this.lineCommentStart.map(s.escapeRegExp).join("|"),g=this.lineCommentStart[0];else var F=s.escapeRegExp(this.lineCommentStart),g=this.lineCommentStart;F=new RegExp("^(\\s*)(?:"+F+") ?"),l=i.getUseSoftTabs();var y=function(V,R){var $=V.match(F);if($){var k=$[1].length,L=$[0].length;!D(V,k,L)&&$[0][L-1]==" "&&L--,f.removeInLine(R,k,L)}},x=g+" ",v=function(V,R){(!m||/\S/.test(V))&&(D(V,u,u)?f.insertInLine({row:R,column:u},x):f.insertInLine({row:R,column:u},g))},B=function(V,R){return F.test(V)},D=function(V,R,$){for(var k=0;R--&&V.charAt(R)==" ";)k++;if(k%p!=0)return!1;for(var k=0;V.charAt($++)==" ";)k++;return p>2?k%p!=p-1:k%p==0}}else{if(!this.blockComment)return!1;var g=this.blockComment.start,C=this.blockComment.end,F=new RegExp("^(\\s*)(?:"+s.escapeRegExp(g)+")"),h=new RegExp("(?:"+s.escapeRegExp(C)+")\\s*$"),v=function(I,W){B(I,W)||(!m||/\S/.test(I))&&(f.insertInLine({row:W,column:I.length},C),f.insertInLine({row:W,column:u},g))},y=function(I,W){var z;(z=I.match(h))&&f.removeInLine(W,I.length-z[0].length,I.length),(z=I.match(F))&&f.removeInLine(W,z[1].length,z[0].length)},B=function(I,W){if(F.test(I))return!0;for(var z=i.getTokens(W),V=0;VI.length&&(O=I.length)}),u==1/0&&(u=O,m=!1,_=!1),l&&u%p!=0&&(u=Math.floor(u/p)*p),S(_?y:v)},this.toggleBlockComment=function(n,i,o,c){var f=this.blockComment;if(f){!f.start&&f[0]&&(f=f[0]);var m=new t(i,c.row,c.column),_=m.getCurrentToken();i.selection;var u=i.selection.toOrientedRange(),p,l;if(_&&/comment/.test(_.type)){for(var g,C;_&&/comment/.test(_.type);){var F=_.value.indexOf(f.start);if(F!=-1){var h=m.getCurrentTokenRow(),v=m.getCurrentTokenColumn()+F;g=new e(h,v,h,v+f.start.length);break}_=m.stepBackward()}for(var m=new t(i,c.row,c.column),_=m.getCurrentToken();_&&/comment/.test(_.type);){var F=_.value.indexOf(f.end);if(F!=-1){var h=m.getCurrentTokenRow(),v=m.getCurrentTokenColumn()+F;C=new e(h,v,h,v+f.end.length);break}_=m.stepForward()}C&&i.remove(C),g&&(i.remove(g),p=g.start.row,l=-f.start.length)}else l=f.start.length,p=o.start.row,i.insert(o.end,f.end),i.insert(o.start,f.start);u.start.row==p&&(u.start.column+=l),u.end.row==p&&(u.end.column+=l),i.selection.fromOrientedRange(u)}},this.getNextLineIndent=function(n,i,o){return this.$getIndent(i)},this.checkOutdent=function(n,i,o){return!1},this.autoOutdent=function(n,i,o){},this.$getIndent=function(n){return n.match(/^\s*/)[0]},this.createWorker=function(n){return null},this.createModeDelegates=function(n){this.$embeds=[],this.$modes={};for(var i in n)n[i]&&(this.$embeds.push(i),this.$modes[i]=new n[i]);for(var o=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"],i=0;i"u"?this.setPosition(s.row,s.column):this.setPosition(s,t)};(function(){b.implement(this,A),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(t){if(!(t.start.row==t.end.row&&t.start.row!=this.row)&&!(t.start.row>this.row)){var e=s(t,{row:this.row,column:this.column},this.$insertRight);this.setPosition(e.row,e.column,!0)}};function a(t,e,r){var n=r?t.column<=e.column:t.column=this.document.getLength()?(r.row=Math.max(0,this.document.getLength()-1),r.column=this.document.getLine(r.row).length):t<0?(r.row=0,r.column=0):(r.row=t,r.column=Math.min(this.document.getLine(r.row).length,Math.max(0,e))),e<0&&(r.column=0),r}}).call(d.prototype)});ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(E,w,P){var b=E("./lib/oop"),A=E("./apply_delta").applyDelta,d=E("./lib/event_emitter").EventEmitter,a=E("./range").Range,s=E("./anchor").Anchor,t=function(e){this.$lines=[""],e.length===0?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){b.implement(this,d),this.setValue=function(e){var r=this.getLength()-1;this.remove(new a(0,0,r,this.getLine(r).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,r){return new s(this,e,r)},"aaa".split(/a/).length===0?this.$split=function(e){return e.replace(/\r\n|\r/g,` `).split(` `)}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var r=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=r?r[1]:` `,this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return`\r `;case"unix":return` `;default:return this.$autoNewLine||` `}},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 e==`\r `||e=="\r"||e==` `},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,r){return this.$lines.slice(e,r+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var r;if(e.start.row===e.end.row)r=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{r=this.getLines(e.start.row,e.end.row),r[0]=(r[0]||"").substring(e.start.column);var n=r.length-1;e.end.row-e.start.row==n&&(r[n]=r[n].substring(0,e.end.column))}return r},this.insertLines=function(e,r){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,r)},this.removeLines=function(e,r){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,r)},this.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},this.insert=function(e,r){return this.getLength()<=1&&this.$detectNewLine(r),this.insertMergedLines(e,this.$split(r))},this.insertInLine=function(e,r){var n=this.clippedPos(e.row,e.column),i=this.pos(e.row,e.column+r.length);return this.applyDelta({start:n,end:i,action:"insert",lines:[r]},!0),this.clonePos(i)},this.clippedPos=function(e,r){var n=this.getLength();e===void 0?e=n:e<0?e=0:e>=n&&(e=n-1,r=void 0);var i=this.getLine(e);return r==null&&(r=i.length),r=Math.min(Math.max(r,0),i.length),{row:e,column:r}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,r){return{row:e,column:r}},this.$clipPosition=function(e){var r=this.getLength();return e.row>=r?(e.row=Math.max(0,r-1),e.column=this.getLine(r-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,r){e=Math.min(Math.max(e,0),this.getLength());var n=0;e0,i=r=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},this.replace=function(e,r){if(e instanceof a||(e=a.fromPoints(e.start,e.end)),r.length===0&&e.isEmpty())return e.start;if(r==this.getTextRange(e))return e.end;this.remove(e);var n;return r?n=this.insert(e.start,r):n=e.start,n},this.applyDeltas=function(e){for(var r=0;r=0;r--)this.revertDelta(e[r])},this.applyDelta=function(e,r){var n=e.action=="insert";(n?e.lines.length<=1&&!e.lines[0]:!a.comparePoints(e.start,e.end))||(n&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),A(this.$lines,e,r),this._signal("change",e))},this.$splitAndapplyLargeDelta=function(e,r){var n=e.lines,i=n.length,o=e.start.row,c=e.start.column,f=0,m=0;do{f=m,m+=r-1;var _=n.slice(f,m);if(m>i){e.lines=_,e.start.row=o+f,e.start.column=c;break}_.push(""),this.applyDelta({start:this.pos(o+f,c),end:this.pos(o+m,c=0),action:e.action,lines:_},!0)}while(!0)},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:e.action=="insert"?"remove":"insert",lines:e.lines.slice()})},this.indexToPosition=function(e,r){for(var n=this.$lines||this.getAllLines(),i=this.getNewLineCharacter().length,o=r||0,c=n.length;o20){t.running=setTimeout(t.$worker,20);break}}t.currentLine=r,n==-1&&(n=r),o<=n&&t.fireUpdateEvent(o,n)}}};(function(){b.implement(this,A),this.setTokenizer=function(a){this.tokenizer=a,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(a){this.doc=a,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(a,s){var t={first:a,last:s};this._signal("update",{data:t})},this.start=function(a){this.currentLine=Math.min(a||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(a){var s=a.start.row,t=a.end.row-s;if(t===0)this.lines[s]=null;else if(a.action=="remove")this.lines.splice(s,t+1,null),this.states.splice(s,t+1,null);else{var e=Array(t+1);e.unshift(s,1),this.lines.splice.apply(this.lines,e),this.states.splice.apply(this.states,e)}this.currentLine=Math.min(s,this.currentLine,this.doc.getLength()),this.stop()},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(a){return this.lines[a]||this.$tokenizeRow(a)},this.getState=function(a){return this.currentLine==a&&this.$tokenizeRow(a),this.states[a]||"start"},this.$tokenizeRow=function(a){var s=this.doc.getLine(a),t=this.states[a-1],e=this.tokenizer.getLineTokens(s,t,a);return this.states[a]+""!=e.state+""?(this.states[a]=e.state,this.lines[a+1]=null,this.currentLine>a+1&&(this.currentLine=a+1)):this.currentLine==a&&(this.currentLine=a+1),this.lines[a]=e.tokens}}).call(d.prototype),w.BackgroundTokenizer=d});ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(E,w,P){var b=E("./lib/lang");E("./lib/oop");var A=E("./range").Range,d=function(a,s,t){this.setRegexp(a),this.clazz=s,this.type=t||"text"};(function(){this.MAX_RANGES=500,this.setRegexp=function(a){this.regExp+""!=a+""&&(this.regExp=a,this.cache=[])},this.update=function(a,s,t,e){if(this.regExp)for(var r=e.firstRow,n=e.lastRow,i=r;i<=n;i++){var o=this.cache[i];o==null&&(o=b.getMatchOffsets(t.getLine(i),this.regExp),o.length>this.MAX_RANGES&&(o=o.slice(0,this.MAX_RANGES)),o=o.map(function(f){return new A(i,f.offset,i,f.offset+f.length)}),this.cache[i]=o.length?o:"");for(var c=o.length;c--;)s.drawSingleLineMarker(a,o[c].toScreenRange(t),this.clazz,e)}}}).call(d.prototype),w.SearchHighlight=d});ace.define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(E,w,P){var b=E("../range").Range;function A(d,a){this.foldData=d,Array.isArray(a)?this.folds=a:a=this.folds=[a];var s=a[a.length-1];this.range=new b(a[0].start.row,a[0].start.column,s.end.row,s.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(t){t.setFoldLine(this)},this)}(function(){this.shiftRow=function(d){this.start.row+=d,this.end.row+=d,this.folds.forEach(function(a){a.start.row+=d,a.end.row+=d})},this.addFold=function(d){if(d.sameRow){if(d.start.rowthis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(d),this.folds.sort(function(a,s){return-a.range.compareEnd(s.start.row,s.start.column)}),this.range.compareEnd(d.start.row,d.start.column)>0?(this.end.row=d.end.row,this.end.column=d.end.column):this.range.compareStart(d.end.row,d.end.column)<0&&(this.start.row=d.start.row,this.start.column=d.start.column)}else if(d.start.row==this.end.row)this.folds.push(d),this.end.row=d.end.row,this.end.column=d.end.column;else if(d.end.row==this.start.row)this.folds.unshift(d),this.start.row=d.start.row,this.start.column=d.start.column;else throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");d.foldLine=this},this.containsRow=function(d){return d>=this.start.row&&d<=this.end.row},this.walk=function(d,a,s){var t=0,e=this.folds,r,n,i,o=!0;a==null&&(a=this.end.row,s=this.end.column);for(var c=0;c0)){var o=A(a,n.start);return i===0?s&&o!==0?-r-2:r:o>0||o===0&&!s?r:-r-1}}return-r-1},this.add=function(a){var s=!a.isEmpty(),t=this.pointIndex(a.start,s);t<0&&(t=-t-1);var e=this.pointIndex(a.end,s,t);return e<0?e=-e-1:e++,this.ranges.splice(t,e-t,a)},this.addList=function(a){for(var s=[],t=a.length;t--;)s.push.apply(s,this.add(a[t]));return s},this.substractPoint=function(a){var s=this.pointIndex(a);if(s>=0)return this.ranges.splice(s,1)},this.merge=function(){var a=[],s=this.ranges;s=s.sort(function(i,o){return A(i.start,o.start)});for(var t=s[0],e,r=1;r=0},this.containsPoint=function(a){return this.pointIndex(a)>=0},this.rangeAtPoint=function(a){var s=this.pointIndex(a);if(s>=0)return this.ranges[s]},this.clipRows=function(a,s){var t=this.ranges;if(t[0].start.row>s||t[t.length-1].start.rowe)break;if(m.start.row==e&&m.start.column>=s.column&&(m.start.column==s.column&&this.$insertRight||(m.start.column+=i,m.start.row+=n)),m.end.row==e&&m.end.column>=s.column){if(m.end.column==s.column&&this.$insertRight)continue;m.end.column==s.column&&i>0&&cm.start.column&&m.end.column==o[c+1].start.column&&(m.end.column-=i),m.end.column+=i,m.end.row+=n}}}if(n!=0&&c=t)return i;if(i.end.row>t)return null}return null},this.getNextFoldLine=function(t,e){var r=this.$foldData,n=0;for(e&&(n=r.indexOf(e)),n==-1&&(n=0),n;n=t)return i}return null},this.getFoldedRowCount=function(t,e){for(var r=this.$foldData,n=e-t+1,i=0;i=e){f=t?n-=e-f:n=0);break}else c>=t&&(f>=t?n-=c-f:n-=c-t+1)}return n},this.$addFoldLine=function(t){return this.$foldData.push(t),this.$foldData.sort(function(e,r){return e.start.row-r.start.row}),t},this.addFold=function(t,e){var r=this.$foldData,n=!1,i;t instanceof d?i=t:(i=new d(e,t),i.collapseChildren=e.collapseChildren),this.$clipRangeToDocument(i.range);var o=i.start.row,c=i.start.column,f=i.end.row,m=i.end.column;if(!(o0&&(this.removeFolds(p),p.forEach(function(F){i.addSubFold(F)}));for(var l=0;l0&&this.foldAll(t.start.row+1,t.end.row,t.collapseChildren-1),t.subFolds=[]},this.expandFolds=function(t){t.forEach(function(e){this.expandFold(e)},this)},this.unfold=function(t,e){var r,n;if(t==null?(r=new b(0,0,this.getLength(),0),e=!0):typeof t=="number"?r=new b(t,0,t,this.getLine(t).length):"row"in t?r=b.fromPoints(t,t):r=t,n=this.getFoldsInRangeList(r),e)this.removeFolds(n);else for(var i=n;i.length;)this.expandFolds(i),i=this.getFoldsInRangeList(r);if(n.length)return n},this.isRowFolded=function(t,e){return!!this.getFoldLine(t,e)},this.getRowFoldEnd=function(t,e){var r=this.getFoldLine(t,e);return r?r.end.row:t},this.getRowFoldStart=function(t,e){var r=this.getFoldLine(t,e);return r?r.start.row:t},this.getFoldDisplayLine=function(t,e,r,n,i){n==null&&(n=t.start.row),i==null&&(i=0),e==null&&(e=t.end.row),r==null&&(r=this.getLine(e).length);var o=this.doc,c="";return t.walk(function(f,m,_,u){if(!(mm)break;while(i&&c.test(i.type));i=n.stepBackward()}else i=n.getCurrentToken();return f.end.row=n.getCurrentTokenRow(),f.end.column=n.getCurrentTokenColumn()+i.value.length-2,f}},this.foldAll=function(t,e,r){r==null&&(r=1e5);var n=this.foldWidgets;if(n){e=e||this.getLength(),t=t||0;for(var i=t;i=t){i=o.end.row;try{var c=this.addFold("...",o);c&&(c.collapseChildren=r)}catch{}}}}},this.$foldStyles={manual:1,markbegin:1,markbeginend:1},this.$foldStyle="markbegin",this.setFoldStyle=function(t){if(!this.$foldStyles[t])throw new Error("invalid fold style: "+t+"["+Object.keys(this.$foldStyles).join(", ")+"]");if(this.$foldStyle!=t){this.$foldStyle=t,t=="manual"&&this.unfold();var e=this.$foldMode;this.$setFolding(null),this.$setFolding(e)}},this.$setFolding=function(t){if(this.$foldMode!=t){if(this.$foldMode=t,this.off("change",this.$updateFoldWidgets),this.off("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets),this._signal("changeAnnotation"),!t||this.$foldStyle=="manual"){this.foldWidgets=null;return}this.foldWidgets=[],this.getFoldWidget=t.getFoldWidget.bind(t,this,this.$foldStyle),this.getFoldWidgetRange=t.getFoldWidgetRange.bind(t,this,this.$foldStyle),this.$updateFoldWidgets=this.updateFoldWidgets.bind(this),this.$tokenizerUpdateFoldWidgets=this.tokenizerUpdateFoldWidgets.bind(this),this.on("change",this.$updateFoldWidgets),this.on("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets)}},this.getParentFoldRangeData=function(t,e){var r=this.foldWidgets;if(!r||e&&r[t])return{};for(var n=t-1,i;n>=0;){var o=r[n];if(o==null&&(o=r[n]=this.getFoldWidget(n)),o=="start"){var c=this.getFoldWidgetRange(n);if(i||(i=c),c&&c.end.row>=t)break}n--}return{range:n!==-1&&c,firstRange:i}},this.onFoldWidgetClick=function(t,e){e=e.domEvent;var r={children:e.shiftKey,all:e.ctrlKey||e.metaKey,siblings:e.altKey},n=this.$toggleFoldWidget(t,r);if(!n){var i=e.target||e.srcElement;i&&/ace_fold-widget/.test(i.className)&&(i.className+=" ace_invalid")}},this.$toggleFoldWidget=function(t,e){if(this.getFoldWidget){var r=this.getFoldWidget(t),n=this.getLine(t),i=r==="end"?-1:1,o=this.getFoldAt(t,i===-1?0:n.length,i);if(o)return e.children||e.all?this.removeFold(o):this.expandFold(o),o;var c=this.getFoldWidgetRange(t,!0);if(c&&!c.isMultiLine()&&(o=this.getFoldAt(c.start.row,c.start.column,1),o&&c.isEqual(o.range)))return this.removeFold(o),o;if(e.siblings){var f=this.getParentFoldRangeData(t);if(f.range)var m=f.range.start.row+1,_=f.range.end.row;this.foldAll(m,_,e.all?1e4:0)}else e.children?(_=c?c.end.row:this.getLength(),this.foldAll(t+1,_,e.all?1e4:0)):c&&(e.all&&(c.collapseChildren=1e4),this.addFold("...",c));return c}},this.toggleFoldWidget=function(t){var e=this.selection.getCursor().row;e=this.getRowFoldStart(e);var r=this.$toggleFoldWidget(e,{});if(!r){var n=this.getParentFoldRangeData(e,!0);if(r=n.range||n.firstRange,r){e=r.start.row;var i=this.getFoldAt(e,this.getLine(e).length,1);i?this.removeFold(i):this.addFold("...",r)}}},this.updateFoldWidgets=function(t){var e=t.start.row,r=t.end.row-e;if(r===0)this.foldWidgets[e]=null;else if(t.action=="remove")this.foldWidgets.splice(e,r+1,null);else{var n=Array(r+1);n.unshift(e,1),this.foldWidgets.splice.apply(this.foldWidgets,n)}},this.tokenizerUpdateFoldWidgets=function(t){var e=t.data;e.first!=e.last&&this.foldWidgets.length>e.first&&this.foldWidgets.splice(e.first,this.foldWidgets.length)}}w.Folding=s});ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(E,w,P){var b=E("../token_iterator").TokenIterator,A=E("../range").Range;function d(){this.findMatchingBracket=function(a,s){if(a.column==0)return null;var t=s||this.getLine(a.row).charAt(a.column-1);if(t=="")return null;var e=t.match(/([\(\[\{])|([\)\]\}])/);return e?e[1]?this.$findClosingBracket(e[1],a):this.$findOpeningBracket(e[2],a):null},this.getBracketRange=function(a){var s=this.getLine(a.row),t=!0,e,r=s.charAt(a.column-1),n=r&&r.match(/([\(\[\{])|([\)\]\}])/);if(n||(r=s.charAt(a.column),a={row:a.row,column:a.column+1},n=r&&r.match(/([\(\[\{])|([\)\]\}])/),t=!1),!n)return null;if(n[1]){var i=this.$findClosingBracket(n[1],a);if(!i)return null;e=A.fromPoints(a,i),t||(e.end.column++,e.start.column--),e.cursor=e.end}else{var i=this.$findOpeningBracket(n[2],a);if(!i)return null;e=A.fromPoints(i,a),t||(e.start.column++,e.end.column--),e.cursor=e.start}return e},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{"},this.$findOpeningBracket=function(a,s,t){var e=this.$brackets[a],r=1,n=new b(this,s.row,s.column),i=n.getCurrentToken();if(i||(i=n.stepForward()),!!i){t||(t=new RegExp("(\\.?"+i.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)")+")+"));for(var o=s.column-n.getCurrentTokenColumn()-2,c=i.value;;){for(;o>=0;){var f=c.charAt(o);if(f==e){if(r-=1,r==0)return{row:n.getCurrentTokenRow(),column:o+n.getCurrentTokenColumn()}}else f==a&&(r+=1);o-=1}do i=n.stepBackward();while(i&&!t.test(i.type));if(i==null)break;c=i.value,o=c.length-1}return null}},this.$findClosingBracket=function(a,s,t){var e=this.$brackets[a],r=1,n=new b(this,s.row,s.column),i=n.getCurrentToken();if(i||(i=n.stepForward()),!!i){t||(t=new RegExp("(\\.?"+i.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)")+")+"));for(var o=s.column-n.getCurrentTokenColumn();;){for(var c=i.value,f=c.length;oy&&(this.$docRowCache.splice(y,v),this.$screenRowCache.splice(y,v))},this.$getRowCacheIndex=function(h,v){for(var y=0,B=h.length-1;y<=B;){var x=y+B>>1,D=h[x];if(v>D)y=x+1;else if(v=v));D++);return B=y[D],B?(B.index=D,B.start=x-B.value.length,B):null},this.setUndoManager=function(h){if(this.$undoManager=h,this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel(),h){var v=this;this.$syncInformUndoManager=function(){v.$informUndoManager.cancel(),v.$deltasFold.length&&(v.$deltas.push({group:"fold",deltas:v.$deltasFold}),v.$deltasFold=[]),v.$deltasDoc.length&&(v.$deltas.push({group:"doc",deltas:v.$deltasDoc}),v.$deltasDoc=[]),v.$deltas.length>0&&h.execute({action:"aceupdate",args:[v.$deltas,v],merge:v.mergeUndoDeltas}),v.mergeUndoDeltas=!1,v.$deltas=[]},this.$informUndoManager=A.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()?A.stringRepeat(" ",this.getTabSize()):" "},this.setUseSoftTabs=function(h){this.setOption("useSoftTabs",h)},this.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},this.setTabSize=function(h){this.setOption("tabSize",h)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(h){return this.$useSoftTabs&&h.column%this.$tabSize===0},this.setNavigateWithinSoftTabs=function(h){this.setOption("navigateWithinSoftTabs",h)},this.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},this.$overwrite=!1,this.setOverwrite=function(h){this.setOption("overwrite",h)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(h,v){this.$decorations[h]||(this.$decorations[h]=""),this.$decorations[h]+=" "+v,this._signal("changeBreakpoint",{})},this.removeGutterDecoration=function(h,v){this.$decorations[h]=(this.$decorations[h]||"").replace(" "+v,""),this._signal("changeBreakpoint",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(h){this.$breakpoints=[];for(var v=0;v0&&(B=!!y.charAt(v-1).match(this.tokenRe)),B||(B=!!y.charAt(v).match(this.tokenRe)),B)var x=this.tokenRe;else if(/^\s+$/.test(y.slice(v-1,v+1)))var x=/\s/;else var x=this.nonTokenRe;var D=v;if(D>0){do D--;while(D>=0&&y.charAt(D).match(x));D++}for(var S=v;Sh&&(h=v.screenWidth)}),this.lineWidgetWidth=h},this.$computeWidth=function(h){if(this.$modified||h){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var v=this.doc.getAllLines(),y=this.$rowLengthCache,B=0,x=0,D=this.$foldData[x],S=D?D.start.row:1/0,O=v.length,I=0;IS){if(I=D.end.row+1,I>=O)break;D=this.$foldData[x++],S=D?D.start.row:1/0}y[I]==null&&(y[I]=this.$getStringScreenWidth(v[I])[0]),y[I]>B&&(B=y[I])}this.screenWidth=B}},this.getLine=function(h){return this.doc.getLine(h)},this.getLines=function(h,v){return this.doc.getLines(h,v)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(h){return this.doc.getTextRange(h||this.selection.getRange())},this.insert=function(h,v){return this.doc.insert(h,v)},this.remove=function(h){return this.doc.remove(h)},this.removeFullLines=function(h,v){return this.doc.removeFullLines(h,v)},this.undoChanges=function(h,v){if(h.length){this.$fromUndo=!0;for(var y=null,B=h.length-1;B!=-1;B--){var x=h[B];x.group=="doc"?(this.doc.revertDeltas(x.deltas),y=this.$getUndoSelection(x.deltas,!0,y)):x.deltas.forEach(function(D){this.addFolds(D.folds)},this)}return this.$fromUndo=!1,y&&this.$undoSelect&&!v&&this.selection.setSelectionRange(y),y}},this.redoChanges=function(h,v){if(h.length){this.$fromUndo=!0;for(var y=null,B=0;Bh.end.column&&(D.start.column+=O),D.end.row==h.end.row&&D.end.column>h.end.column&&(D.end.column+=O)),S&&D.start.row>=h.end.row&&(D.start.row+=S,D.end.row+=S)}if(D.end=this.insert(D.start,B),x.length){var I=h.start,W=D.start,S=W.row-I.row,O=W.column-I.column;this.addFolds(x.map(function(R){return R=R.clone(),R.start.row==I.row&&(R.start.column+=O),R.end.row==I.row&&(R.end.column+=O),R.start.row+=S,R.end.row+=S,R}))}return D},this.indentRows=function(h,v,y){y=y.replace(/\t/g,this.getTabString());for(var B=h;B<=v;B++)this.doc.insertInLine({row:B,column:0},y)},this.outdentRows=function(h){for(var v=h.collapseRows(),y=new r(0,0,0,0),B=this.getTabSize(),x=v.start.row;x<=v.end.row;++x){var D=this.getLine(x);y.start.row=x,y.end.row=x;for(var S=0;S0){var B=this.getRowFoldEnd(v+y);if(B>this.doc.getLength()-1)return 0;var x=B-v}else{h=this.$clipRowToDocument(h),v=this.$clipRowToDocument(v);var x=v-h+1}var D=new r(h,0,v,Number.MAX_VALUE),S=this.getFoldsInRange(D).map(function(I){return I=I.clone(),I.start.row+=x,I.end.row+=x,I}),O=y==0?this.doc.getLines(h,v):this.doc.removeFullLines(h,v);return this.doc.insertFullLines(h+x,O),S.length&&this.addFolds(S),x},this.moveLinesUp=function(h,v){return this.$moveLines(h,v,-1)},this.moveLinesDown=function(h,v){return this.$moveLines(h,v,1)},this.duplicateLines=function(h,v){return this.$moveLines(h,v,0)},this.$clipRowToDocument=function(h){return Math.max(0,Math.min(h,this.doc.getLength()-1))},this.$clipColumnToRow=function(h,v){return v<0?0:Math.min(this.doc.getLine(h).length,v)},this.$clipPositionToDocument=function(h,v){if(v=Math.max(0,v),h<0)h=0,v=0;else{var y=this.doc.getLength();h>=y?(h=y-1,v=this.doc.getLine(y-1).length):v=Math.min(this.doc.getLine(h).length,v)}return{row:h,column:v}},this.$clipRangeToDocument=function(h){h.start.row<0?(h.start.row=0,h.start.column=0):h.start.column=this.$clipColumnToRow(h.start.row,h.start.column);var v=this.doc.getLength()-1;return h.end.row>v?(h.end.row=v,h.end.column=this.doc.getLine(v).length):h.end.column=this.$clipColumnToRow(h.end.row,h.end.column),h},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(h){if(h!=this.$useWrapMode){if(this.$useWrapMode=h,this.$modified=!0,this.$resetRowCache(0),h){var v=this.getLength();this.$wrapData=Array(v),this.$updateWrapData(0,v-1)}this._signal("changeWrapMode")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(h,v){(this.$wrapLimitRange.min!==h||this.$wrapLimitRange.max!==v)&&(this.$wrapLimitRange={min:h,max:v},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},this.adjustWrapLimit=function(h,v){var y=this.$wrapLimitRange;y.max<0&&(y={min:v,max:v});var B=this.$constrainWrapLimit(h,y.min,y.max);return B!=this.$wrapLimit&&B>1?(this.$wrapLimit=B,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0):!1},this.$constrainWrapLimit=function(h,v,y){return v&&(h=Math.max(v,h)),y&&(h=Math.min(y,h)),h},this.getWrapLimit=function(){return this.$wrapLimit},this.setWrapLimit=function(h){this.setWrapLimitRange(h,h)},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(h){var v=this.$useWrapMode,y=h.action,B=h.start,x=h.end,D=B.row,S=x.row,O=S-D,I=null;if(this.$updating=!0,O!=0)if(y==="remove"){this[v?"$wrapData":"$rowLengthCache"].splice(D,O);var W=this.$foldData;I=this.getFoldsInRange(h),this.removeFolds(I);var z=this.getFoldLine(x.row),V=0;if(z){z.addRemoveChars(x.row,x.column,B.column-x.column),z.shiftRow(-O);var R=this.getFoldLine(D);R&&R!==z&&(R.merge(z),z=R),V=W.indexOf(z)+1}for(V;V=x.row&&z.shiftRow(-O)}S=D}else{var $=Array(O);$.unshift(D,0);var k=v?this.$wrapData:this.$rowLengthCache;k.splice.apply(k,$);var W=this.$foldData,z=this.getFoldLine(D),V=0;if(z){var L=z.range.compareInside(B.row,B.column);L==0?(z=z.split(B.row,B.column),z&&(z.shiftRow(O),z.addRemoveChars(S,0,x.column-B.column))):L==-1&&(z.addRemoveChars(D,0,x.column-B.column),z.shiftRow(O)),V=W.indexOf(z)+1}for(V;V=D&&z.shiftRow(O)}}else{O=Math.abs(h.start.column-h.end.column),y==="remove"&&(I=this.getFoldsInRange(h),this.removeFolds(I),O=-O);var z=this.getFoldLine(D);z&&z.addRemoveChars(D,B.column,O)}return v&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,v?this.$updateWrapData(D,S):this.$updateRowLengthCache(D,S),I},this.$updateRowLengthCache=function(h,v,y){this.$rowLengthCache[h]=null,this.$rowLengthCache[v]=null},this.$updateWrapData=function(h,v){var y=this.doc.getAllLines(),B=this.getTabSize(),x=this.$wrapData,D=this.$wrapLimit,S,O,I=h;for(v=Math.min(v,y.length-1);I<=v;)O=this.getFoldLine(I,O),O?(S=[],O.walk((function(W,z,V,R){var $;if(W!=null){$=this.$getDisplayTokens(W,S.length),$[0]=_;for(var k=1;k<$.length;k++)$[k]=u}else $=this.$getDisplayTokens(y[z].substring(R,V),S.length);S=S.concat($)}).bind(this),O.end.row,y[O.end.row].length+1),x[O.start.row]=this.$computeWrapSplits(S,D,B),I=O.end.row+1):(S=this.$getDisplayTokens(y[I]),x[I]=this.$computeWrapSplits(S,D,B),I++)};var f=1,m=2,_=3,u=4,p=9,l=10,g=11,C=12;this.$computeWrapSplits=function(h,v,y){if(h.length==0)return[];var B=[],x=h.length,D=0,S=0,O=this.$wrapAsCode,I=this.$indentedSoftWrap,W=v<=Math.max(2*y,8)||I===!1?0:Math.floor(v/2);function z(){var L=0;if(W===0)return L;if(I)for(var M=0;Mv-R;){var $=D+v-R;if(h[$-1]>=l&&h[$]>=l){V($);continue}if(h[$]==_||h[$]==u){for($;$!=D-1&&h[$]!=_;$--);if($>D){V($);continue}for($=D+v,$;$>2)),D-1);$>k&&h[$]<_;)$--;if(O){for(;$>k&&h[$]<_;)$--;for(;$>k&&h[$]==p;)$--}else for(;$>k&&h[$]k){V(++$);continue}$=D+v,h[$]==m&&$--,V($-R)}return B},this.$getDisplayTokens=function(h,v){var y=[],B;v=v||0;for(var x=0;x39&&D<48||D>57&&D<64?y.push(p):D>=4352&&F(D)?y.push(f,m):y.push(f)}return y},this.$getStringScreenWidth=function(h,v,y){if(v==0)return[0,0];v==null&&(v=1/0),y=y||0;var B,x;for(x=0;x=4352&&F(B)?y+=2:y+=1,!(y>v));x++);return[y,x]},this.lineWidgets=null,this.getRowLength=function(h){if(this.lineWidgets)var v=this.lineWidgets[h]&&this.lineWidgets[h].rowCount||0;else v=0;return!this.$useWrapMode||!this.$wrapData[h]?1+v:this.$wrapData[h].length+1+v},this.getRowLineCount=function(h){return!this.$useWrapMode||!this.$wrapData[h]?1:this.$wrapData[h].length+1},this.getRowWrapIndent=function(h){if(this.$useWrapMode){var v=this.screenToDocumentPosition(h,Number.MAX_VALUE),y=this.$wrapData[v.row];return y.length&&y[0]=0)var O=W[z],x=this.$docRowCache[z],R=h>W[V-1];else var R=!V;for(var $=this.getLength()-1,k=this.getNextFoldLine(x),L=k?k.start.row:1/0;O<=h&&(I=this.getRowLength(x),!(O+I>h||x>=$));)O+=I,x++,x>L&&(x=k.end.row+1,k=this.getNextFoldLine(x,k),L=k?k.start.row:1/0),R&&(this.$docRowCache.push(x),this.$screenRowCache.push(O));if(k&&k.start.row<=x)B=this.getFoldDisplayLine(k),x=k.start.row;else{if(O+I<=h||x>$)return{row:$,column:this.getLine($).length};B=this.getLine(x),k=null}var M=0,H=Math.floor(h-O);if(this.$useWrapMode){var K=this.$wrapData[x];K&&(S=K[H],H>0&&K.length&&(M=K.indent,D=K[H-1]||K[K.length-1],B=B.substring(D)))}return y!==void 0&&this.$bidiHandler.isBidiRow(O+H,x,H)&&(v=this.$bidiHandler.offsetToCol(y)),D+=this.$getStringScreenWidth(B,v-M)[1],this.$useWrapMode&&D>=S&&(D=S-1),k?k.idxToPosition(D):{row:x,column:D}},this.documentToScreenPosition=function(h,v){if(typeof v>"u")var y=this.$clipPositionToDocument(h.row,h.column);else y=this.$clipPositionToDocument(h,v);h=y.row,v=y.column;var B=0,x=null,D=null;D=this.getFoldAt(h,v,1),D&&(h=D.start.row,v=D.start.column);var S,O=0,I=this.$docRowCache,W=this.$getRowCacheIndex(I,h),z=I.length;if(z&&W>=0)var O=I[W],B=this.$screenRowCache[W],V=h>I[z-1];else var V=!z;for(var R=this.getNextFoldLine(O),$=R?R.start.row:1/0;O=$){if(S=R.end.row+1,S>h)break;R=this.getNextFoldLine(S,R),$=R?R.start.row:1/0}else S=O+1;B+=this.getRowLength(O),O=S,V&&(this.$docRowCache.push(O),this.$screenRowCache.push(B))}var k="";R&&O>=$?(k=this.getFoldDisplayLine(R,h,v),x=R.start.row):(k=this.getLine(h).substring(0,v),x=h);var L=0;if(this.$useWrapMode){var M=this.$wrapData[x];if(M){for(var H=0;k.length>=M[H];)B++,H++;k=k.substring(M[H-1]||0,k.length),L=H>0?M.indent:0}}return{row:B,column:L+this.$getStringScreenWidth(k)[0]}},this.documentToScreenColumn=function(h,v){return this.documentToScreenPosition(h,v).column},this.documentToScreenRow=function(h,v){return this.documentToScreenPosition(h,v).row},this.getScreenLength=function(){var h=0,v=null;if(this.$useWrapMode)for(var x=this.$wrapData.length,D=0,B=0,v=this.$foldData[B++],S=v?v.start.row:1/0;DS&&(D=v.end.row+1,v=this.$foldData[B++],S=v?v.start.row:1/0)}else{h=this.getLength();for(var y=this.$foldData,B=0;By));D++);return[B,D]})},this.destroy=function(){this.bgTokenizer&&(this.bgTokenizer.setDocument(null),this.bgTokenizer=null),this.$stopWorker()},this.isFullWidth=F;function F(h){return h<4352?!1:h>=4352&&h<=4447||h>=4515&&h<=4519||h>=4602&&h<=4607||h>=9001&&h<=9002||h>=11904&&h<=11929||h>=11931&&h<=12019||h>=12032&&h<=12245||h>=12272&&h<=12283||h>=12288&&h<=12350||h>=12353&&h<=12438||h>=12441&&h<=12543||h>=12549&&h<=12589||h>=12593&&h<=12686||h>=12688&&h<=12730||h>=12736&&h<=12771||h>=12784&&h<=12830||h>=12832&&h<=12871||h>=12880&&h<=13054||h>=13056&&h<=19903||h>=19968&&h<=42124||h>=42128&&h<=42182||h>=43360&&h<=43388||h>=44032&&h<=55203||h>=55216&&h<=55238||h>=55243&&h<=55291||h>=63744&&h<=64255||h>=65040&&h<=65049||h>=65072&&h<=65106||h>=65108&&h<=65126||h>=65128&&h<=65131||h>=65281&&h<=65376||h>=65504&&h<=65510}}).call(c.prototype),E("./edit_session/folding").Folding.call(c.prototype),E("./edit_session/bracket_match").BracketMatch.call(c.prototype),a.defineOptions(c.prototype,"session",{wrap:{set:function(f){if(!f||f=="off"?f=!1:f=="free"?f=!0:f=="printMargin"?f=-1:typeof f=="string"&&(f=parseInt(f,10)||!1),this.$wrap!=f)if(this.$wrap=f,!f)this.setUseWrapMode(!1);else{var m=typeof f=="number"?f:null;this.setWrapLimitRange(m,m),this.setUseWrapMode(!0)}},get:function(){return this.getUseWrapMode()?this.$wrap==-1?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(f){f=f=="auto"?this.$mode.type!="text":f!="text",f!=this.$wrapAsCode&&(this.$wrapAsCode=f,this.$useWrapMode&&(this.$modified=!0,this.$resetRowCache(0),this.$updateWrapData(0,this.getLength()-1)))},initialValue:"auto"},indentedSoftWrap:{initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(f){this.$useWorker=f,this.$stopWorker(),f&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(f){isNaN(f)||this.$tabSize===f||(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=f,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},overwrite:{set:function(f){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(f){this.doc.setNewLineMode(f)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(f){this.setMode(f)},get:function(){return this.$modeId}}}),w.EditSession=c});ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(E,w,P){var b=E("./lib/lang"),A=E("./lib/oop"),d=E("./range").Range,a=function(){this.$options={}};(function(){this.set=function(t){return A.mixin(this.$options,t),this},this.getOptions=function(){return b.copyObject(this.$options)},this.setOptions=function(t){this.$options=t},this.find=function(t){var e=this.$options,r=this.$matchIterator(t,e);if(!r)return!1;var n=null;return r.forEach(function(i,o,c,f){return n=new d(i,o,c,f),o==f&&e.start&&e.start.start&&e.skipCurrent!=!1&&n.isEqual(e.start)?(n=null,!1):!0}),n},this.findAll=function(t){var e=this.$options;if(!e.needle)return[];this.$assembleRegExp(e);var r=e.range,n=r?t.getLines(r.start.row,r.end.row):t.doc.getAllLines(),i=[],o=e.re;if(e.$isMultiLine){var c=o.length,f=n.length-c,m;e:for(var _=o.offset||0;_<=f;_++){for(var u=0;ug||(i.push(m=new d(_,g,_+c-1,C)),c>2&&(_=_+c-2))}}else for(var F=0;FB&&i[u].end.row==r.end.row;)u--;for(i=i.slice(F,u+1),F=0,u=i.length;F=f;g--)if(p(g,Number.MAX_VALUE,l))return;if(e.wrap!=!1){for(g=m,f=c.row;g>=f;g--)if(p(g,Number.MAX_VALUE,l))return}}};else var _=function(g){var C=c.row;if(!p(C,c.column,g)){for(C=C+1;C<=m;C++)if(p(C,0,g))return;if(e.wrap!=!1){for(C=f,m=c.row;C<=m;C++)if(p(C,0,g))return}}};if(e.$isMultiLine)var u=r.length,p=function(l,g,C){var F=n?l-u+1:l;if(!(F<0)){var h=t.getLine(F),v=h.search(r[0]);if(!(!n&&vg)&&C(F,v,F+u-1,B))return!0}}};else if(n)var p=function(g,C,F){var h=t.getLine(g),v=[],y,B=0;for(r.lastIndex=0;y=r.exec(h);){var x=y[0].length;if(B=y.index,!x){if(B>=h.length)break;r.lastIndex=B+=1}if(y.index+x>C)break;v.push(y.index,x)}for(var D=v.length-1;D>=0;D-=2){var S=v[D-1],x=v[D];if(F(g,S,g,S+x))return!0}};else var p=function(g,C,F){var h=t.getLine(g),v,y=C;for(r.lastIndex=C;v=r.exec(h);){var B=v[0].length;if(y=v.index,F(g,y,g,y+B))return!0;if(!B&&(r.lastIndex=y+=1,y>=h.length))return!1}};return{forEach:_}}}).call(a.prototype);function s(t,e){function r(n){return/\w/.test(n)||e.regExp?"\\b":""}return r(t[0])+t+r(t[t.length-1])}w.Search=a});ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(E,w,P){var b=E("../lib/keys"),A=E("../lib/useragent"),d=b.KEY_MODS;function a(t,e){this.platform=e||(A.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(t),this.$singleCommand=!0}function s(t,e){a.call(this,t,e),this.$singleCommand=!1}s.prototype=a.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,r){var n=e&&(typeof e=="string"?e:e.name);e=this.commands[n],r||delete this.commands[n];var i=this.commandKeyBinding;for(var o in i){var c=i[o];if(c==e)delete i[o];else if(Array.isArray(c)){var f=c.indexOf(e);f!=-1&&(c.splice(f,1),c.length==1&&(i[o]=c[0]))}}},this.bindKey=function(e,r,n){if(typeof e=="object"&&e&&(n==null&&(n=e.position),e=e[this.platform]),!!e){if(typeof r=="function")return this.addCommand({exec:r,bindKey:e,name:r.name||e});e.split("|").forEach(function(i){var o="";if(i.indexOf(" ")!=-1){var c=i.split(/\s+/);i=c.pop(),c.forEach(function(_){var u=this.parseKeys(_),p=d[u.hashId]+u.key;o+=(o?" ":"")+p,this._addCommandToBinding(o,"chainKeys")},this),o+=" "}var f=this.parseKeys(i),m=d[f.hashId]+f.key;this._addCommandToBinding(o+m,r,n)},this)}};function t(e){return typeof e=="object"&&e.bindKey&&e.bindKey.position||(e.isDefault?-100:0)}this._addCommandToBinding=function(e,r,n){var i=this.commandKeyBinding,o;if(!r)delete i[e];else if(!i[e]||this.$singleCommand)i[e]=r;else{Array.isArray(i[e])?(o=i[e].indexOf(r))!=-1&&i[e].splice(o,1):i[e]=[i[e]],typeof n!="number"&&(n=t(r));var c=i[e];for(o=0;on)break}c.splice(o,0,r)}},this.addCommands=function(e){e&&Object.keys(e).forEach(function(r){var n=e[r];if(n){if(typeof n=="string")return this.bindKey(n,r);typeof n=="function"&&(n={exec:n}),typeof n=="object"&&(n.name||(n.name=r),this.addCommand(n))}},this)},this.removeCommands=function(e){Object.keys(e).forEach(function(r){this.removeCommand(e[r])},this)},this.bindKeys=function(e){Object.keys(e).forEach(function(r){this.bindKey(r,e[r])},this)},this._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},this.parseKeys=function(e){var r=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(m){return m}),n=r.pop(),i=b[n];if(b.FUNCTION_KEYS[i])n=b.FUNCTION_KEYS[i].toLowerCase();else if(r.length){if(r.length==1&&r[0]=="shift")return{key:n.toUpperCase(),hashId:-1}}else return{key:n,hashId:-1};for(var o=0,c=r.length;c--;){var f=b.KEY_MODS[r[c]];if(f==null)return typeof console<"u"&&console.error("invalid modifier "+r[c]+" in "+e),!1;o|=f}return{key:n,hashId:o}},this.findKeyCommand=function(r,n){var i=d[r]+n;return this.commandKeyBinding[i]},this.handleKeyboard=function(e,r,n,i){if(!(i<0)){var o=d[r]+n,c=this.commandKeyBinding[o];return e.$keyChain&&(e.$keyChain+=" "+o,c=this.commandKeyBinding[e.$keyChain]||c),c&&(c=="chainKeys"||c[c.length-1]=="chainKeys")?(e.$keyChain=e.$keyChain||o,{command:"null"}):(e.$keyChain&&((!r||r==4)&&n.length==1?e.$keyChain=e.$keyChain.slice(0,-o.length-1):(r==-1||i>0)&&(e.$keyChain="")),{command:c})}},this.getStatusText=function(e,r){return r.$keyChain||""}}).call(a.prototype),w.HashHandler=a,w.MultiHashHandler=s});ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(E,w,P){var b=E("../lib/oop"),A=E("../keyboard/hash_handler").MultiHashHandler,d=E("../lib/event_emitter").EventEmitter,a=function(s,t){A.call(this,t,s),this.byName=this.commands,this.setDefaultHandler("exec",function(e){return e.command.exec(e.editor,e.args||{})})};b.inherits(a,A),(function(){b.implement(this,d),this.exec=function(s,t,e){if(Array.isArray(s)){for(var r=s.length;r--;)if(this.exec(s[r],t,e))return!0;return!1}if(typeof s=="string"&&(s=this.commands[s]),!s||t&&t.$readOnly&&!s.readOnly||s.isAvailable&&!s.isAvailable(t))return!1;var n={editor:t,command:s,args:e};return n.returnValue=this._emit("exec",n),this._signal("afterExec",n),n.returnValue!==!1},this.toggleRecording=function(s){if(!this.$inReplay)return s&&s._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(t){this.macro.push([t.command,t.args])}).bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},this.replay=function(s){if(!(this.$inReplay||!this.macro)){if(this.recording)return this.toggleRecording(s);try{this.$inReplay=!0,this.macro.forEach(function(t){typeof t=="string"?this.exec(t,s):this.exec(t[0],s,t[1])},this)}finally{this.$inReplay=!1}}},this.trimMacro=function(s){return s.map(function(t){return typeof t[0]!="string"&&(t[0]=t[0].name),t[1]||(t=t[0]),t})}}).call(a.prototype),w.CommandManager=a});ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function(E,w,P){var b=E("../lib/lang"),A=E("../config"),d=E("../range").Range;function a(s,t){return{win:s,mac:t}}w.commands=[{name:"showSettingsMenu",bindKey:a("Ctrl-,","Command-,"),exec:function(s){A.loadModule("ace/ext/settings_menu",function(t){t.init(s),s.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",bindKey:a("Alt-E","F4"),exec:function(s){A.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(s,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",bindKey:a("Alt-Shift-E","Shift-F4"),exec:function(s){A.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(s,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",bindKey:a("Ctrl-A","Command-A"),exec:function(s){s.selectAll()},readOnly:!0},{name:"centerselection",bindKey:a(null,"Ctrl-L"),exec:function(s){s.centerSelection()},readOnly:!0},{name:"gotoline",bindKey:a("Ctrl-L","Command-L"),exec:function(s){var t=parseInt(prompt("Enter line number:"),10);isNaN(t)||s.gotoLine(t)},readOnly:!0},{name:"fold",bindKey:a("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(s){s.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:a("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(s){s.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",bindKey:a("F2","F2"),exec:function(s){s.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",bindKey:a("Alt-F2","Alt-F2"),exec:function(s){s.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",bindKey:a(null,"Ctrl-Command-Option-0"),exec:function(s){s.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",bindKey:a("Alt-0","Command-Option-0"),exec:function(s){s.session.foldAll(),s.session.unfold(s.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",bindKey:a("Alt-Shift-0","Command-Option-Shift-0"),exec:function(s){s.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",bindKey:a("Ctrl-K","Command-G"),exec:function(s){s.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",bindKey:a("Ctrl-Shift-K","Command-Shift-G"),exec:function(s){s.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",bindKey:a("Alt-K","Ctrl-G"),exec:function(s){s.selection.isEmpty()?s.selection.selectWord():s.findNext()},readOnly:!0},{name:"selectOrFindPrevious",bindKey:a("Alt-Shift-K","Ctrl-Shift-G"),exec:function(s){s.selection.isEmpty()?s.selection.selectWord():s.findPrevious()},readOnly:!0},{name:"find",bindKey:a("Ctrl-F","Command-F"),exec:function(s){A.loadModule("ace/ext/searchbox",function(t){t.Search(s)})},readOnly:!0},{name:"overwrite",bindKey:"Insert",exec:function(s){s.toggleOverwrite()},readOnly:!0},{name:"selecttostart",bindKey:a("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(s){s.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",bindKey:a("Ctrl-Home","Command-Home|Command-Up"),exec:function(s){s.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",bindKey:a("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(s){s.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",bindKey:a("Up","Up|Ctrl-P"),exec:function(s,t){s.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",bindKey:a("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(s){s.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",bindKey:a("Ctrl-End","Command-End|Command-Down"),exec:function(s){s.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",bindKey:a("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(s){s.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",bindKey:a("Down","Down|Ctrl-N"),exec:function(s,t){s.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",bindKey:a("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(s){s.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",bindKey:a("Ctrl-Left","Option-Left"),exec:function(s){s.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",bindKey:a("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(s){s.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",bindKey:a("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(s){s.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",bindKey:a("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(s){s.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",bindKey:a("Left","Left|Ctrl-B"),exec:function(s,t){s.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",bindKey:a("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(s){s.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",bindKey:a("Ctrl-Right","Option-Right"),exec:function(s){s.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",bindKey:a("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(s){s.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",bindKey:a("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(s){s.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",bindKey:a("Shift-Right","Shift-Right"),exec:function(s){s.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",bindKey:a("Right","Right|Ctrl-F"),exec:function(s,t){s.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",bindKey:"Shift-PageDown",exec:function(s){s.selectPageDown()},readOnly:!0},{name:"pagedown",bindKey:a(null,"Option-PageDown"),exec:function(s){s.scrollPageDown()},readOnly:!0},{name:"gotopagedown",bindKey:a("PageDown","PageDown|Ctrl-V"),exec:function(s){s.gotoPageDown()},readOnly:!0},{name:"selectpageup",bindKey:"Shift-PageUp",exec:function(s){s.selectPageUp()},readOnly:!0},{name:"pageup",bindKey:a(null,"Option-PageUp"),exec:function(s){s.scrollPageUp()},readOnly:!0},{name:"gotopageup",bindKey:"PageUp",exec:function(s){s.gotoPageUp()},readOnly:!0},{name:"scrollup",bindKey:a("Ctrl-Up",null),exec:function(s){s.renderer.scrollBy(0,-2*s.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",bindKey:a("Ctrl-Down",null),exec:function(s){s.renderer.scrollBy(0,2*s.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",bindKey:"Shift-Home",exec:function(s){s.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",bindKey:"Shift-End",exec:function(s){s.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",bindKey:a("Ctrl-Alt-E","Command-Option-E"),exec:function(s){s.commands.toggleRecording(s)},readOnly:!0},{name:"replaymacro",bindKey:a("Ctrl-Shift-E","Command-Shift-E"),exec:function(s){s.commands.replay(s)},readOnly:!0},{name:"jumptomatching",bindKey:a("Ctrl-P","Ctrl-P"),exec:function(s){s.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",bindKey:a("Ctrl-Shift-P","Ctrl-Shift-P"),exec:function(s){s.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",bindKey:a("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(s){s.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",bindKey:a(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",exec:function(s){},readOnly:!0},{name:"cut",exec:function(s){var t=s.getSelectionRange();s._emit("cut",t),s.selection.isEmpty()||(s.session.remove(t),s.clearSelection())},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",exec:function(s,t){s.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",bindKey:a("Ctrl-D","Command-D"),exec:function(s){s.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",bindKey:a("Ctrl-Shift-D","Command-Shift-D"),exec:function(s){s.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",bindKey:a("Ctrl-Alt-S","Command-Alt-S"),exec:function(s){s.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",bindKey:a("Ctrl-/","Command-/"),exec:function(s){s.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",bindKey:a("Ctrl-Shift-/","Command-Shift-/"),exec:function(s){s.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",bindKey:a("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(s){s.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",bindKey:a("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(s){s.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",bindKey:a("Ctrl-H","Command-Option-F"),exec:function(s){A.loadModule("ace/ext/searchbox",function(t){t.Search(s,!0)})}},{name:"undo",bindKey:a("Ctrl-Z","Command-Z"),exec:function(s){s.undo()}},{name:"redo",bindKey:a("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(s){s.redo()}},{name:"copylinesup",bindKey:a("Alt-Shift-Up","Command-Option-Up"),exec:function(s){s.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",bindKey:a("Alt-Up","Option-Up"),exec:function(s){s.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",bindKey:a("Alt-Shift-Down","Command-Option-Down"),exec:function(s){s.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",bindKey:a("Alt-Down","Option-Down"),exec:function(s){s.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",bindKey:a("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(s){s.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",bindKey:a("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(s){s.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",bindKey:a("Shift-Delete",null),exec:function(s){if(s.selection.isEmpty())s.remove("left");else return!1},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",bindKey:a("Alt-Backspace","Command-Backspace"),exec:function(s){s.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",bindKey:a("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(s){s.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",bindKey:a("Ctrl-Shift-Backspace",null),exec:function(s){var t=s.selection.getRange();t.start.column=0,s.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",bindKey:a("Ctrl-Shift-Delete",null),exec:function(s){var t=s.selection.getRange();t.end.column=Number.MAX_VALUE,s.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",bindKey:a("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(s){s.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",bindKey:a("Ctrl-Delete","Alt-Delete"),exec:function(s){s.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",bindKey:a("Shift-Tab","Shift-Tab"),exec:function(s){s.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",bindKey:a("Tab","Tab"),exec:function(s){s.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",bindKey:a("Ctrl-[","Ctrl-["),exec:function(s){s.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",bindKey:a("Ctrl-]","Ctrl-]"),exec:function(s){s.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",exec:function(s,t){s.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",exec:function(s,t){s.insert(b.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",bindKey:a(null,"Ctrl-O"),exec:function(s){s.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",bindKey:a("Alt-Shift-X","Ctrl-T"),exec:function(s){s.transposeLetters()},multiSelectAction:function(s){s.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",bindKey:a("Ctrl-U","Ctrl-U"),exec:function(s){s.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",bindKey:a("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(s){s.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"expandtoline",bindKey:a("Ctrl-Shift-L","Command-Shift-L"),exec:function(s){var t=s.selection.getRange();t.start.column=t.end.column=0,t.end.row++,s.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"joinlines",bindKey:a(null,null),exec:function(s){for(var t=s.selection.isBackwards(),e=t?s.selection.getSelectionLead():s.selection.getSelectionAnchor(),r=t?s.selection.getSelectionAnchor():s.selection.getSelectionLead(),n=s.session.doc.getLine(e.row).length,i=s.session.doc.getTextRange(s.selection.getRange()),o=i.replace(/\n\s*/," ").length,c=s.session.doc.getLine(e.row),f=e.row+1;f<=r.row+1;f++){var m=b.stringTrimLeft(b.stringTrimRight(s.session.doc.getLine(f)));m.length!==0&&(m=" "+m),c+=m}r.row+10?(s.selection.moveCursorTo(e.row,e.column),s.selection.selectTo(e.row,e.column+o)):(n=s.session.doc.getLine(e.row).length>n?n+1:n,s.selection.moveCursorTo(e.row,n))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",bindKey:a(null,null),exec:function(s){var t=s.session.doc.getLength()-1,e=s.session.doc.getLine(t).length,r=s.selection.rangeList.ranges,n=[];r.length<1&&(r=[s.selection.getRange()]);for(var i=0;i0&&this.$blockScrolling--;var C=g&&g.scrollIntoView;if(C){switch(C){case"center-animate":C="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var F=this.selection.getRange(),h=this.renderer.layerConfig;(F.start.row>=h.lastRow||F.end.row<=h.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead);break}C=="animate"&&this.renderer.animateScrolling(this.curOp.scrollTop)}this.prevOp=this.curOp,this.curOp=null}},this.$mergeableCommands=["backspace","del","insertstring"],this.$historyTracker=function(l){if(this.$mergeUndoDeltas){var g=this.prevOp,C=this.$mergeableCommands,F=g.command&&l.command.name==g.command.name;if(l.command.name=="insertstring"){var h=l.args;this.mergeNextCommand===void 0&&(this.mergeNextCommand=!0),F=F&&this.mergeNextCommand&&(!/\s/.test(h)||/\s/.test(g.args)),this.mergeNextCommand=!0}else F=F&&C.indexOf(l.command.name)!==-1;this.$mergeUndoDeltas!="always"&&Date.now()-this.sequenceStartTime>2e3&&(F=!1),F?this.session.mergeUndoDeltas=!0:C.indexOf(l.command.name)!==-1&&(this.sequenceStartTime=Date.now())}},this.setKeyboardHandler=function(l,g){if(l&&typeof l=="string"){this.$keybindingId=l;var C=this;_.loadModule(["keybinding",l],function(F){C.$keybindingId==l&&C.keyBinding.setKeyboardHandler(F&&F.handler),g&&g()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(l),g&&g()},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(l){if(this.session!=l){this.curOp&&this.endOperation(),this.curOp={};var g=this.session;if(g){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var C=this.session.getSelection();C.off("changeCursor",this.$onCursorChange),C.off("changeSelection",this.$onSelectionChange)}this.session=l,l?(this.$onDocumentChange=this.onDocumentChange.bind(this),l.on("change",this.$onDocumentChange),this.renderer.setSession(l),this.$onChangeMode=this.onChangeMode.bind(this),l.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),l.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),l.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),l.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),l.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),l.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=l.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.$blockScrolling+=1,this.onCursorChange(),this.$blockScrolling-=1,this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(l)),this._signal("changeSession",{session:l,oldSession:g}),this.curOp=null,g&&g._signal("changeEditor",{oldEditor:this}),l&&l._signal("changeEditor",{editor:this}),l&&l.bgTokenizer&&l.bgTokenizer.scheduleStart()}},this.getSession=function(){return this.session},this.setValue=function(l,g){return this.session.doc.setValue(l),g?g==1?this.navigateFileEnd():g==-1&&this.navigateFileStart():this.selectAll(),l},this.getValue=function(){return this.session.getValue()},this.getSelection=function(){return this.selection},this.resize=function(l){this.renderer.onResize(l)},this.setTheme=function(l,g){this.renderer.setTheme(l,g)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(l){this.renderer.setStyle(l)},this.unsetStyle=function(l){this.renderer.unsetStyle(l)},this.getFontSize=function(){return this.getOption("fontSize")||A.computedStyle(this.container,"fontSize")},this.setFontSize=function(l){this.setOption("fontSize",l)},this.$highlightBrackets=function(){if(this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null),!this.$highlightPending){var l=this;this.$highlightPending=!0,setTimeout(function(){l.$highlightPending=!1;var g=l.session;if(!(!g||!g.bgTokenizer)){var C=g.findMatchingBracket(l.getCursorPosition());if(C)var F=new o(C.row,C.column,C.row,C.column+1);else if(g.$mode.getMatching)var F=g.$mode.getMatching(l.session);F&&(g.$bracketHighlight=g.addMarker(F,"ace_bracket","text"))}},50)}},this.$highlightTags=function(){if(!this.$highlightTagPending){var l=this;this.$highlightTagPending=!0,setTimeout(function(){l.$highlightTagPending=!1;var g=l.session;if(!(!g||!g.bgTokenizer)){var C=l.getCursorPosition(),F=new u(l.session,C.row,C.column),h=F.getCurrentToken();if(!h||!/\b(?:tag-open|tag-name)/.test(h.type)){g.removeMarker(g.$tagHighlight),g.$tagHighlight=null;return}if(!(h.type.indexOf("tag-open")!=-1&&(h=F.stepForward(),!h))){var v=h.value,y=0,B=F.stepBackward();if(B.value=="<")do B=h,h=F.stepForward(),h&&h.value===v&&h.type.indexOf("tag-name")!==-1&&(B.value==="<"?y++:B.value==="=0);else{do h=B,B=F.stepBackward(),h&&h.value===v&&h.type.indexOf("tag-name")!==-1&&(B.value==="<"?y++:B.value==="1)&&(g=!1)),l.$highlightLineMarker&&!g)l.removeMarker(l.$highlightLineMarker.id),l.$highlightLineMarker=null;else if(!l.$highlightLineMarker&&g){var C=new o(g.row,g.column,g.row,1/0);C.id=l.addMarker(C,"ace_active-line","screenLine"),l.$highlightLineMarker=C}else g&&(l.$highlightLineMarker.start.row=g.row,l.$highlightLineMarker.end.row=g.row,l.$highlightLineMarker.start.column=g.column,l._signal("changeBackMarker"))},this.onSelectionChange=function(l){var g=this.session;if(g.$selectionMarker&&g.removeMarker(g.$selectionMarker),g.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var C=this.selection.getRange(),F=this.getSelectionStyle();g.$selectionMarker=g.addMarker(C,"ace_selection",F)}var h=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(h),this._signal("changeSelection")},this.$getSelectionHighLightRegexp=function(){var l=this.session,g=this.getSelectionRange();if(!(g.isEmpty()||g.isMultiLine())){var C=g.start.column-1,F=g.end.column+1,h=l.getLine(g.start.row),v=h.length,y=h.substring(Math.max(C,0),Math.min(F,v));if(!(C>=0&&/^[\w\d]/.test(y)||F<=v&&/[\w\d]$/.test(y))&&(y=h.substring(g.start.column,g.end.column),!!/^[\w\d]+$/.test(y))){var B=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:y});return B}}},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(l){this.renderer.updateText(),this._emit("changeMode",l)},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 l=this.getSelectedText();return this._signal("copy",l),l},this.onCopy=function(){this.commands.exec("copy",this)},this.onCut=function(){this.commands.exec("cut",this)},this.onPaste=function(l,g){var C={text:l,event:g};this.commands.exec("paste",this,C)},this.$handlePaste=function(l){typeof l=="string"&&(l={text:l}),this._signal("paste",l);var g=l.text;if(!this.inMultiSelectMode||this.inVirtualSelectionMode)this.insert(g);else{var C=g.split(/\r\n|\r|\n/),F=this.selection.rangeList.ranges;if(C.length>F.length||C.length<2||!C[1])return this.commands.exec("insertstring",this,g);for(var h=F.length;h--;){var v=F[h];v.isEmpty()||this.session.remove(v),this.session.insert(v.start,C[h])}}},this.execCommand=function(l,g){return this.commands.exec(l,this,g)},this.insert=function(l,g){var C=this.session,F=C.getMode(),h=this.getCursorPosition();if(this.getBehavioursEnabled()&&!g){var v=F.transformAction(C.getState(h.row),"insertion",this,C,l);v&&(l!==v.text&&(this.session.mergeUndoDeltas=!1,this.$mergeNextCommand=!1),l=v.text)}if(l==" "&&(l=this.session.getTabString()),this.selection.isEmpty()){if(this.session.getOverwrite()&&l.indexOf(` `)==-1){var y=new o.fromPoints(h,h);y.end.column+=l.length,this.session.remove(y)}}else{var y=this.getSelectionRange();h=this.session.remove(y),this.clearSelection()}if(l==` `||l==`\r `){var S=C.getLine(h.row);if(h.column>S.search(/\S|$/)){var B=S.substr(h.column).search(/\S|$/);C.doc.removeInLine(h.row,h.column,h.column+B)}}this.clearSelection();var x=h.column,D=C.getState(h.row),S=C.getLine(h.row),O=F.checkOutdent(D,S,l);if(C.insert(h,l),v&&v.selection&&(v.selection.length==2?this.selection.setSelectionRange(new o(h.row,x+v.selection[0],h.row,x+v.selection[1])):this.selection.setSelectionRange(new o(h.row+v.selection[0],v.selection[1],h.row+v.selection[2],v.selection[3]))),C.getDocument().isNewLine(l)){var I=F.getNextLineIndent(D,S.slice(0,h.column),C.getTabString());C.insert({row:h.row+1,column:0},I)}O&&F.autoOutdent(D,C,h.row)},this.onTextInput=function(l){this.keyBinding.onTextInput(l)},this.onCommandKey=function(l,g,C){this.keyBinding.onCommandKey(l,g,C)},this.setOverwrite=function(l){this.session.setOverwrite(l)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(l){this.setOption("scrollSpeed",l)},this.getScrollSpeed=function(){return this.getOption("scrollSpeed")},this.setDragDelay=function(l){this.setOption("dragDelay",l)},this.getDragDelay=function(){return this.getOption("dragDelay")},this.setSelectionStyle=function(l){this.setOption("selectionStyle",l)},this.getSelectionStyle=function(){return this.getOption("selectionStyle")},this.setHighlightActiveLine=function(l){this.setOption("highlightActiveLine",l)},this.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},this.setHighlightGutterLine=function(l){this.setOption("highlightGutterLine",l)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.setHighlightSelectedWord=function(l){this.setOption("highlightSelectedWord",l)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(l){this.renderer.setAnimatedScroll(l)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(l){this.renderer.setShowInvisibles(l)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(l){this.renderer.setDisplayIndentGuides(l)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setShowPrintMargin=function(l){this.renderer.setShowPrintMargin(l)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(l){this.renderer.setPrintMarginColumn(l)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(l){this.setOption("readOnly",l)},this.getReadOnly=function(){return this.getOption("readOnly")},this.setBehavioursEnabled=function(l){this.setOption("behavioursEnabled",l)},this.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},this.setWrapBehavioursEnabled=function(l){this.setOption("wrapBehavioursEnabled",l)},this.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},this.setShowFoldWidgets=function(l){this.setOption("showFoldWidgets",l)},this.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},this.setFadeFoldWidgets=function(l){this.setOption("fadeFoldWidgets",l)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.remove=function(l){this.selection.isEmpty()&&(l=="left"?this.selection.selectLeft():this.selection.selectRight());var g=this.getSelectionRange();if(this.getBehavioursEnabled()){var C=this.session,F=C.getState(g.start.row),h=C.getMode().transformAction(F,"deletion",this,C,g);if(g.end.column===0){var v=C.getTextRange(g);if(v[v.length-1]==` `){var y=C.getLine(g.end.row);/^\s+$/.test(y)&&(g.end.column=y.length)}}h&&(g=h)}this.session.remove(g),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 l=this.getSelectionRange();l.start.column==l.end.column&&l.start.row==l.end.row&&(l.end.column=0,l.end.row++),this.session.remove(l),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var l=this.getCursorPosition();this.insert(` `),this.moveCursorToPosition(l)},this.transposeLetters=function(){if(this.selection.isEmpty()){var l=this.getCursorPosition(),g=l.column;if(g!==0){var C=this.session.getLine(l.row),F,h;gB.toLowerCase()?1:0});for(var h=new o(0,0,0,0),F=l.first;F<=l.last;F++){var v=g.getLine(F);h.start.row=F,h.end.row=F,h.end.column=v.length,g.replace(h,C[F-l.first])}},this.toggleCommentLines=function(){var l=this.session.getState(this.getCursorPosition().row),g=this.$getSelectedRows();this.session.getMode().toggleCommentLines(l,this.session,g.first,g.last)},this.toggleBlockComment=function(){var l=this.getCursorPosition(),g=this.session.getState(l.row),C=this.getSelectionRange();this.session.getMode().toggleBlockComment(g,this.session,C,l)},this.getNumberAt=function(l,g){var C=/[\-]?[0-9]+(?:\.[0-9]+)?/g;C.lastIndex=0;for(var F=this.session.getLine(l);C.lastIndex=g){var v={value:h[0],start:h.index,end:h.index+h[0].length};return v}}return null},this.modifyNumber=function(l){var g=this.selection.getCursor().row,C=this.selection.getCursor().column,F=new o(g,C-1,g,C),h=this.session.getTextRange(F);if(!isNaN(parseFloat(h))&&isFinite(h)){var v=this.getNumberAt(g,C);if(v){var y=v.value.indexOf(".")>=0?v.start+v.value.indexOf(".")+1:v.end,B=v.start+v.value.length-y,x=parseFloat(v.value);x*=Math.pow(10,B),y!==v.end&&CW+1)break;W=z.last}for(S--,B=this.session.$moveLines(I,W,g?0:l),g&&l==-1&&(O=S+1);O<=S;)y[O].moveBy(B,0),O++;g||(B=0),x+=B}h.fromOrientedRange(h.ranges[0]),h.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},this.$getSelectedRows=function(l){return l=(l||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(l.start.row),last:this.session.getRowFoldEnd(l.end.row)}},this.onCompositionStart=function(l){this.renderer.showComposition(this.getCursorPosition())},this.onCompositionUpdate=function(l){this.renderer.setCompositionText(l)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(l){return l>=this.getFirstVisibleRow()&&l<=this.getLastVisibleRow()},this.isRowFullyVisible=function(l){return l>=this.renderer.getFirstFullyVisibleRow()&&l<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(l,g){var C=this.renderer,F=this.renderer.layerConfig,h=l*Math.floor(F.height/F.lineHeight);this.$blockScrolling++,g===!0?this.selection.$moveSelection(function(){this.moveCursorBy(h,0)}):g===!1&&(this.selection.moveCursorBy(h,0),this.selection.clearSelection()),this.$blockScrolling--;var v=C.scrollTop;C.scrollBy(0,h*F.lineHeight),g!=null&&C.scrollCursorIntoView(null,.5),C.animateScrolling(v)},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(l){this.renderer.scrollToRow(l)},this.scrollToLine=function(l,g,C,F){this.renderer.scrollToLine(l,g,C,F)},this.centerSelection=function(){var l=this.getSelectionRange(),g={row:Math.floor(l.start.row+(l.end.row-l.start.row)/2),column:Math.floor(l.start.column+(l.end.column-l.start.column)/2)};this.renderer.alignCursor(g,.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(l,g){this.selection.moveCursorTo(l,g)},this.moveCursorToPosition=function(l){this.selection.moveCursorToPosition(l)},this.jumpToMatching=function(l,g){var C=this.getCursorPosition(),F=new u(this.session,C.row,C.column),h=F.getCurrentToken(),v=h||F.stepForward();if(v){var y,B=!1,x={},D=C.column-v.start,S,O={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(v.value.match(/[{}()\[\]]/g)){for(;D=0;--v)this.$tryReplace(C[v],l)&&F++;return this.selection.setSelectionRange(h),this.$blockScrolling-=1,F},this.$tryReplace=function(l,g){var C=this.session.getTextRange(l);return g=this.$search.replace(C,g),g!==null?(l.end=this.session.replace(l,g),l):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(l,g,C){g||(g={}),typeof l=="string"||l instanceof RegExp?g.needle=l:typeof l=="object"&&b.mixin(g,l);var F=this.selection.getRange();g.needle==null&&(l=this.session.getTextRange(F)||this.$search.$options.needle,l||(F=this.session.getWordRange(F.start.row,F.start.column),l=this.session.getTextRange(F)),this.$search.set({needle:l})),this.$search.set(g),g.start||this.$search.set({start:F});var h=this.$search.find(this.session);if(g.preventScroll)return h;if(h)return this.revealRange(h,C),h;g.backwards?F.start=F.end:F.end=F.start,this.selection.setRange(F)},this.findNext=function(l,g){this.find({skipCurrent:!0,backwards:!1},l,g)},this.findPrevious=function(l,g){this.find(l,{skipCurrent:!0,backwards:!0},g)},this.revealRange=function(l,g){this.$blockScrolling+=1,this.session.unfold(l),this.selection.setSelectionRange(l),this.$blockScrolling-=1;var C=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(l.start,l.end,.5),g!==!1&&this.renderer.animateScrolling(C)},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(l){if(l){var g,C=this,F=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var h=this.$scrollAnchor;h.style.cssText="position:absolute",this.container.insertBefore(h,this.container.firstChild);var v=this.on("changeSelection",function(){F=!0}),y=this.renderer.on("beforeRender",function(){F&&(g=C.renderer.container.getBoundingClientRect())}),B=this.renderer.on("afterRender",function(){if(F&&g&&(C.isFocused()||C.searchBox&&C.searchBox.isFocused())){var x=C.renderer,D=x.$cursorLayer.$pixelPos,S=x.layerConfig,O=D.top-S.offset;D.top>=0&&O+g.top<0?F=!0:D.topwindow.innerHeight?F=!1:F=null,F!=null&&(h.style.top=O+"px",h.style.left=D.left+"px",h.style.height=S.lineHeight+"px",h.scrollIntoView(F)),F=g=null}});this.setAutoScrollEditorIntoView=function(x){x||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",v),this.renderer.off("afterRender",B),this.renderer.off("beforeRender",y))}}},this.$resetCursorStyle=function(){var l=this.$cursorStyle||"ace",g=this.renderer.$cursorLayer;g&&(g.setSmoothBlinking(/smooth/.test(l)),g.isBlinking=!this.$readOnly&&l!="wide",A.setCssClass(g.element,"ace_slim-cursors",/slim/.test(l)))}}).call(p.prototype),_.defineOptions(p.prototype,"editor",{selectionStyle:{set:function(l){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:l})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(l){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(l){this.$resetCursorStyle()},initialValue:!1},cursorStyle:{set:function(l){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(l){this.setAutoScrollEditorIntoView(l)}},keyboardHandler:{set:function(l){this.setKeyboardHandler(l)},get:function(){return this.keybindingId},handlesSet:!0},hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",showLineNumbers:"renderer",showGutter:"renderer",displayIndentGuides:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"}),w.Editor=p});ace.define("ace/undomanager",["require","exports","module"],function(E,w,P){var b=function(){this.reset()};(function(){this.execute=function(s){var t=s.args[0];this.$doc=s.args[1],s.merge&&this.hasUndo()&&(this.dirtyCounter--,t=this.$undoStack.pop().concat(t)),this.$undoStack.push(t),this.$redoStack=[],this.dirtyCounter<0&&(this.dirtyCounter=NaN),this.dirtyCounter++},this.undo=function(s){var t=this.$undoStack.pop(),e=null;return t&&(e=this.$doc.undoChanges(t,s),this.$redoStack.push(t),this.dirtyCounter--),e},this.redo=function(s){var t=this.$redoStack.pop(),e=null;return t&&(e=this.$doc.redoChanges(this.$deserializeDeltas(t),s),this.$undoStack.push(t),this.dirtyCounter++),e},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 this.dirtyCounter===0},this.$serializeDeltas=function(s){return a(s,A)},this.$deserializeDeltas=function(s){return a(s,d)};function A(s){return{action:s.action,start:s.start,end:s.end,lines:s.lines.length==1?null:s.lines,text:s.lines.length==1?s.lines[0]:null}}function d(s){return{action:s.action,start:s.start,end:s.end,lines:s.lines||[s.text]}}function a(s,t){for(var e=new Array(s.length),r=0;ro&&(C=i.end.row+1,i=e.getNextFoldLine(C,i),o=i?i.start.row:1/0),C>n){for(;this.$cells.length>g+1;)l=this.$cells.pop(),this.element.removeChild(l.element);break}l=this.$cells[++g],l||(l={element:null,textNode:null,foldWidget:null},l.element=b.createElement("div"),l.textNode=document.createTextNode(""),l.element.appendChild(l.textNode),this.element.appendChild(l.element),this.$cells[g]=l);var F="ace_gutter-cell ";f[C]&&(F+=f[C]),m[C]&&(F+=m[C]),this.$annotations[C]&&(F+=this.$annotations[C].className),l.element.className!=F&&(l.element.className=F);var h=e.getRowLength(C)*t.lineHeight+"px";if(h!=l.element.style.height&&(l.element.style.height=h),c){var v=c[C];v==null&&(v=c[C]=e.getFoldWidget(C))}if(v){l.foldWidget||(l.foldWidget=b.createElement("span"),l.element.appendChild(l.foldWidget));var F="ace_fold-widget ace_"+v;v=="start"&&C==o&&Cr.right-e.right)return"foldWidgets"}}).call(s.prototype),w.Gutter=s});ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(E,w,P){var b=E("../range").Range,A=E("../lib/dom"),d=function(a){this.element=A.createElement("div"),this.element.className="ace_layer ace_marker-layer",a.appendChild(this.element)};(function(){this.$padding=0,this.setPadding=function(s){this.$padding=s},this.setSession=function(s){this.session=s},this.setMarkers=function(s){this.markers=s},this.update=function(s){if(s){this.config=s;var t=[];for(var e in this.markers){var r=this.markers[e];if(!r.range){r.update(t,this,this.session,s);continue}var n=r.range.clipRows(s.firstRow,s.lastRow);if(!n.isEmpty())if(n=n.toScreenRange(this.session),r.renderer){var i=this.$getTop(n.start.row,s),o=this.$padding+(this.session.$bidiHandler.isBidiRow(n.start.row)?this.session.$bidiHandler.getPosLeft(n.start.column):n.start.column*s.characterWidth);r.renderer(t,n,o,i,s)}else r.type=="fullLine"?this.drawFullLineMarker(t,n,r.clazz,s):r.type=="screenLine"?this.drawScreenLineMarker(t,n,r.clazz,s):n.isMultiLine()?r.type=="text"?this.drawTextMarker(t,n,r.clazz,s):this.drawMultiLineMarker(t,n,r.clazz,s):this.session.$bidiHandler.isBidiRow(n.start.row)?this.drawBidiSingleLineMarker(t,n,r.clazz+" ace_start ace_br15",s):this.drawSingleLineMarker(t,n,r.clazz+" ace_start ace_br15",s)}this.element.innerHTML=t.join("")}},this.$getTop=function(s,t){return(s-t.firstRowScreen)*t.lineHeight};function a(s,t,e,r){return(s?1:0)|(t?2:0)|(e?4:0)|(r?8:0)}this.drawTextMarker=function(s,t,e,r,n){for(var i=this.session,o=t.start.row,c=t.end.row,f=o,m=0,_=0,u=i.getScreenLastRowColumn(f),p=null,l=new b(f,t.start.column,f,_);f<=c;f++)l.start.row=l.end.row=f,l.start.column=f==o?t.start.column:i.getRowWrapIndent(f),l.end.column=u,m=_,_=u,u=f+1u,f==c),this.session.$bidiHandler.isBidiRow(f)?this.drawBidiSingleLineMarker(s,l,p,r,f==c?0:1,n):this.drawSingleLineMarker(s,l,p,r,f==c?0:1,n)},this.drawMultiLineMarker=function(s,t,e,r,n){var i=this.$padding,o,c,f;if(n=n||"",this.session.$bidiHandler.isBidiRow(t.start.row)){var m=t.clone();m.end.row=m.start.row,m.end.column=this.session.getLine(m.start.row).length,this.drawBidiSingleLineMarker(s,m,e+" ace_br1 ace_start",r,null,n)}else o=r.lineHeight,c=this.$getTop(t.start.row,r),f=i+t.start.column*r.characterWidth,s.push("
");if(this.session.$bidiHandler.isBidiRow(t.end.row)){var m=t.clone();m.start.row=m.end.row,m.start.column=0,this.drawBidiSingleLineMarker(s,m,e+" ace_br12",r,null,n)}else{var _=t.end.column*r.characterWidth;o=r.lineHeight,c=this.$getTop(t.end.row,r),s.push("
")}if(o=(t.end.row-t.start.row-1)*r.lineHeight,!(o<=0)){c=this.$getTop(t.start.row+1,r);var u=(t.start.column?1:0)|(t.end.column?0:8);s.push("
")}},this.drawSingleLineMarker=function(s,t,e,r,n,i){var o=r.lineHeight,c=(t.end.column+(n||0)-t.start.column)*r.characterWidth,f=this.$getTop(t.start.row,r),m=this.$padding+t.start.column*r.characterWidth;s.push("
")},this.drawBidiSingleLineMarker=function(s,t,e,r,n,i){var o=r.lineHeight,c=this.$getTop(t.start.row,r),f=this.$padding,m=this.session.$bidiHandler.getSelections(t.start.column,t.end.column);m.forEach(function(_){s.push("
")})},this.drawFullLineMarker=function(s,t,e,r,n){var i=this.$getTop(t.start.row,r),o=r.lineHeight;t.start.row!=t.end.row&&(o+=this.$getTop(t.end.row,r)-i),s.push("
")},this.drawScreenLineMarker=function(s,t,e,r,n){var i=this.$getTop(t.start.row,r),o=r.lineHeight;s.push("
")}}).call(d.prototype),w.Marker=d});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,w,P){var b=E("../lib/oop"),A=E("../lib/dom"),d=E("../lib/lang");E("../lib/useragent");var a=E("../lib/event_emitter").EventEmitter,s=function(t){this.element=A.createElement("div"),this.element.className="ace_layer ace_text-layer",t.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this)};(function(){b.implement(this,a),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 t=this.session.doc.getNewLineCharacter()==` `?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=t)return this.EOL_CHAR=t,!0},this.setPadding=function(t){this.$padding=t,this.element.style.padding="0 "+t+"px"},this.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},this.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},this.$setFontMetrics=function(t){this.$fontMetrics=t,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(t){this.session=t,t&&this.$computeTabString()},this.showInvisibles=!1,this.setShowInvisibles=function(t){return this.showInvisibles==t?!1:(this.showInvisibles=t,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(t){return this.displayIndentGuides==t?!1:(this.displayIndentGuides=t,this.$computeTabString(),!0)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var t=this.session.getTabSize();this.tabSize=t;for(var e=this.$tabStrings=[0],r=1;r"+d.stringRepeat(this.TAB_CHAR,r)+""):e.push(d.stringRepeat(" ",r));if(this.displayIndentGuides){this.$indentGuideRe=/\s\S| \t|\t |\s$/;var n="ace_indent-guide",i="",o="";if(this.showInvisibles){n+=" ace_invisible",i=" ace_invisible_space",o=" ace_invisible_tab";var c=d.stringRepeat(this.SPACE_CHAR,this.tabSize),f=d.stringRepeat(this.TAB_CHAR,this.tabSize)}else var c=d.stringRepeat(" ",this.tabSize),f=c;this.$tabStrings[" "]=""+c+"",this.$tabStrings[" "]=""+f+""}},this.updateLines=function(t,e,r){(this.config.lastRow!=t.lastRow||this.config.firstRow!=t.firstRow)&&this.scrollLines(t),this.config=t;for(var n=Math.max(e,t.firstRow),i=Math.min(r,t.lastRow),o=this.element.childNodes,c=0,f=t.firstRow;f_&&(f=m.end.row+1,m=this.session.getNextFoldLine(f,m),_=m?m.start.row:1/0),!(f>i);){var u=o[c++];if(u){var p=[];this.$renderLine(p,f,!this.$useLineGroups(),f==_?m:!1),u.style.height=t.lineHeight*this.session.getRowLength(f)+"px",u.innerHTML=p.join("")}f++}},this.scrollLines=function(t){var e=this.config;if(this.config=t,!e||e.lastRow0;n--)r.removeChild(r.firstChild);if(e.lastRow>t.lastRow)for(var n=this.session.getFoldedRowCount(t.lastRow+1,e.lastRow);n>0;n--)r.removeChild(r.lastChild);if(t.firstRowe.lastRow){var i=this.$renderLinesFragment(t,e.lastRow+1,t.lastRow);r.appendChild(i)}},this.$renderLinesFragment=function(t,e,r){for(var n=this.element.ownerDocument.createDocumentFragment(),i=e,o=this.session.getNextFoldLine(i),c=o?o.start.row:1/0;i>c&&(i=o.end.row+1,o=this.session.getNextFoldLine(i,o),c=o?o.start.row:1/0),!(i>r);){var f=A.createElement("div"),m=[];if(this.$renderLine(m,i,!1,i==c?o:!1),f.innerHTML=m.join(""),this.$useLineGroups())f.className="ace_line_group",n.appendChild(f),f.style.height=t.lineHeight*this.session.getRowLength(i)+"px";else for(;f.firstChild;)n.appendChild(f.firstChild);i++}return n},this.update=function(t){this.config=t;for(var e=[],r=t.firstRow,n=t.lastRow,i=r,o=this.session.getNextFoldLine(i),c=o?o.start.row:1/0;i>c&&(i=o.end.row+1,o=this.session.getNextFoldLine(i,o),c=o?o.start.row:1/0),!(i>n);)this.$useLineGroups()&&e.push("
"),this.$renderLine(e,i,!1,i==c?o:!1),this.$useLineGroups()&&e.push("
"),i++;this.element.innerHTML=e.join("")},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(t,e,r,n){var i=this,o=/\t|&|<|>|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\u3000\uFEFF\uFFF9-\uFFFC])|[\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3000-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,c=function(u,p,l,g,C){if(p)return i.showInvisibles?""+d.stringRepeat(i.SPACE_CHAR,u.length)+"":u;if(u=="&")return"&";if(u=="<")return"<";if(u==">")return">";if(u==" "){var F=i.session.getScreenTabSize(e+g);return e+=F-1,i.$tabStrings[F]}else if(u==" "){var h=i.showInvisibles?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",v=i.showInvisibles?i.SPACE_CHAR:"";return e+=1,""+v+""}else return l?""+i.SPACE_CHAR+"":(e+=1,""+u+"")},f=n.replace(o,c);if(this.$textToken[r.type])t.push(f);else{var m="ace_"+r.type.replace(/\./g," ace_"),_="";r.type=="fold"&&(_=" style='width:"+r.value.length*this.config.characterWidth+"px;' "),t.push("",f,"")}return e+n.length},this.renderIndentGuide=function(t,e,r){var n=e.search(this.$indentGuideRe);return n<=0||n>=r?e:e[0]==" "?(n-=n%this.tabSize,t.push(d.stringRepeat(this.$tabStrings[" "],n/this.tabSize)),e.substr(n)):e[0]==" "?(t.push(d.stringRepeat(this.$tabStrings[" "],n)),e.substr(n)):e},this.$renderWrappedLine=function(t,e,r,n){for(var i=0,o=0,c=r[0],f=0,m=0;m=c;)f=this.$renderToken(t,f,_,u.substring(0,c-i)),u=u.substring(c-i),i=c,n||t.push("","
"),t.push(d.stringRepeat(" ",r.indent)),o++,f=0,c=r[o]||Number.MAX_VALUE;u.length!=0&&(i+=u.length,f=this.$renderToken(t,f,_,u))}}},this.$renderSimpleLine=function(t,e){var r=0,n=e[0],i=n.value;this.displayIndentGuides&&(i=this.renderIndentGuide(t,i)),i&&(r=this.$renderToken(t,r,n,i));for(var o=1;o"),i.length){var o=this.session.getRowSplitData(e);o&&o.length?this.$renderWrappedLine(t,i,o,r):this.$renderSimpleLine(t,i)}this.showInvisibles&&(n&&(e=n.end.row),t.push("",e==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,"")),r||t.push("
")},this.$getFoldLineTokens=function(t,e){var r=this.session,n=[];function i(c,f,m){for(var _=0,u=0;u+c[_].value.lengthm-f&&(p=p.substring(0,m-f)),n.push({type:c[_].type,value:p}),u=f+p.length,_+=1}for(;um?n.push({type:c[_].type,value:p.substring(0,m-u)}):n.push(c[_]),u+=p.length,_+=1}}var o=r.getTokens(t);return e.walk(function(c,f,m,_,u){c!=null?n.push({type:"fold",value:c}):(u&&(o=r.getTokens(f)),o.length&&i(o,_,m))},e.end.row,this.session.getLine(e.end.row).length),n},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),w.Text=s});ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(E,w,P){var b=E("../lib/dom"),A,d=function(a){this.element=b.createElement("div"),this.element.className="ace_layer ace_cursor-layer",a.appendChild(this.element),A===void 0&&(A=!("opacity"in this.element.style)),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),b.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=(A?this.$updateVisibility:this.$updateOpacity).bind(this)};(function(){this.$updateVisibility=function(a){for(var s=this.cursors,t=s.length;t--;)s[t].style.visibility=a?"":"hidden"},this.$updateOpacity=function(a){for(var s=this.cursors,t=s.length;t--;)s[t].style.opacity=a?"":"0"},this.$padding=0,this.setPadding=function(a){this.$padding=a},this.setSession=function(a){this.session=a},this.setBlinking=function(a){a!=this.isBlinking&&(this.isBlinking=a,this.restartTimer())},this.setBlinkInterval=function(a){a!=this.blinkInterval&&(this.blinkInterval=a,this.restartTimer())},this.setSmoothBlinking=function(a){a!=this.smoothBlinking&&!A&&(this.smoothBlinking=a,b.setCssClass(this.element,"ace_smooth-blinking",a),this.$updateCursors(!0),this.$updateCursors=this.$updateOpacity.bind(this),this.restartTimer())},this.addCursor=function(){var a=b.createElement("div");return a.className="ace_cursor",this.element.appendChild(a),this.cursors.push(a),a},this.removeCursor=function(){if(this.cursors.length>1){var a=this.cursors.pop();return a.parentNode.removeChild(a),a}},this.hideCursor=function(){this.isVisible=!1,b.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,b.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.restartTimer=function(){var a=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.smoothBlinking&&b.removeCssClass(this.element,"ace_smooth-blinking"),a(!0),!(!this.isBlinking||!this.blinkInterval||!this.isVisible)){this.smoothBlinking&&setTimeout((function(){b.addCssClass(this.element,"ace_smooth-blinking")}).bind(this));var s=(function(){this.timeoutId=setTimeout(function(){a(!1)},.6*this.blinkInterval)}).bind(this);this.intervalId=setInterval(function(){a(!0),s()},this.blinkInterval),s()}},this.getPixelPosition=function(a,s){if(!this.config||!this.session)return{left:0,top:0};a||(a=this.session.selection.getCursor());var t=this.session.documentToScreenPosition(a),e=this.$padding+(this.session.$bidiHandler.isBidiRow(t.row,a.row)?this.session.$bidiHandler.getPosLeft(t.column):t.column*this.config.characterWidth),r=(t.row-(s?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:e,top:r}},this.update=function(a){this.config=a;var s=this.session.$selectionMarkers,t=0,e=0;(s===void 0||s.length===0)&&(s=[{cursor:null}]);for(var t=0,r=s.length;ta.height+a.offset||n.top<0)&&t>1)){var i=(this.cursors[e++]||this.addCursor()).style;this.drawCursor?this.drawCursor(i,n,a,s[t],this.session):(i.left=n.left+"px",i.top=n.top+"px",i.width=a.characterWidth+"px",i.height=a.lineHeight+"px")}}for(;this.cursors.length>e;)this.removeCursor();var o=this.session.getOverwrite();this.$setOverwrite(o),this.$pixelPos=n,this.restartTimer()},this.drawCursor=null,this.$setOverwrite=function(a){a!=this.overwrite&&(this.overwrite=a,a?b.addCssClass(this.element,"ace_overwrite-cursors"):b.removeCssClass(this.element,"ace_overwrite-cursors"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(d.prototype),w.Cursor=d});ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(E,w,P){var b=E("./lib/oop"),A=E("./lib/dom"),d=E("./lib/event"),a=E("./lib/event_emitter").EventEmitter,s=32768,t=function(n){this.element=A.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+this.classSuffix,this.inner=A.createElement("div"),this.inner.className="ace_scrollbar-inner",this.element.appendChild(this.inner),n.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,d.addListener(this.element,"scroll",this.onScroll.bind(this)),d.addListener(this.element,"mousedown",d.preventDefault)};(function(){b.implement(this,a),this.setVisible=function(n){this.element.style.display=n?"":"none",this.isVisible=n,this.coeff=1}}).call(t.prototype);var e=function(n,i){t.call(this,n),this.scrollTop=0,this.scrollHeight=0,i.$scrollbarWidth=this.width=A.scrollbarWidth(n.ownerDocument),this.inner.style.width=this.element.style.width=(this.width||15)+5+"px",this.$minWidth=0};b.inherits(e,t),(function(){this.classSuffix="-v",this.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,this.coeff!=1){var n=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-n)/(this.coeff-n)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},this.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},this.setHeight=function(n){this.element.style.height=n+"px"},this.setInnerHeight=this.setScrollHeight=function(n){this.scrollHeight=n,n>s?(this.coeff=s/n,n=s):this.coeff!=1&&(this.coeff=1),this.inner.style.height=n+"px"},this.setScrollTop=function(n){this.scrollTop!=n&&(this.skipEvent=!0,this.scrollTop=n,this.element.scrollTop=n*this.coeff)}}).call(e.prototype);var r=function(n,i){t.call(this,n),this.scrollLeft=0,this.height=i.$scrollbarWidth,this.inner.style.height=this.element.style.height=(this.height||15)+5+"px"};b.inherits(r,t),(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(n){this.element.style.width=n+"px"},this.setInnerWidth=function(n){this.inner.style.width=n+"px"},this.setScrollWidth=function(n){this.inner.style.width=n+"px"},this.setScrollLeft=function(n){this.scrollLeft!=n&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=n)}}).call(r.prototype),w.ScrollBar=e,w.ScrollBarV=e,w.ScrollBarH=r,w.VScrollBar=e,w.HScrollBar=r});ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(E,w,P){var b=E("./lib/event"),A=function(d,a){this.onRender=d,this.pending=!1,this.changes=0,this.window=a||window};(function(){this.schedule=function(d){if(this.changes=this.changes|d,!this.pending&&this.changes){this.pending=!0;var a=this;b.nextFrame(function(){a.pending=!1;for(var s;s=a.changes;)a.changes=0,a.onRender(s)},this.window)}}}).call(A.prototype),w.RenderLoop=A});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,w,P){var b=E("../lib/oop"),A=E("../lib/dom"),d=E("../lib/lang"),a=E("../lib/useragent"),s=E("../lib/event_emitter").EventEmitter,t=0,e=w.FontMetrics=function(r){this.el=A.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=A.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=A.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),r.appendChild(this.el),t||this.$testFractionalRect(),this.$measureNode.innerHTML=d.stringRepeat("X",t),this.$characterSize={width:0,height:0},this.checkForSizeChanges()};(function(){b.implement(this,s),this.$characterSize={width:0,height:0},this.$testFractionalRect=function(){var r=A.createElement("div");this.$setMeasureNodeStyles(r.style),r.style.width="0.2px",document.documentElement.appendChild(r);var n=r.getBoundingClientRect().width;n>0&&n<1?t=50:t=100,r.parentNode.removeChild(r)},this.$setMeasureNodeStyles=function(r,n){r.width=r.height="auto",r.left=r.top="0px",r.visibility="hidden",r.position="absolute",r.whiteSpace="pre",a.isIE<8?r["font-family"]="inherit":r.font="inherit",r.overflow=n?"hidden":"visible"},this.checkForSizeChanges=function(){var r=this.$measureSizes();if(r&&(this.$characterSize.width!==r.width||this.$characterSize.height!==r.height)){this.$measureNode.style.fontWeight="bold";var n=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=r,this.charSizes=Object.create(null),this.allowBoldFonts=n&&n.width===r.width&&n.height===r.height,this._emit("changeCharacterSize",{data:r})}},this.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer)return this.$pollSizeChangesTimer;var r=this;return this.$pollSizeChangesTimer=setInterval(function(){r.checkForSizeChanges()},500)},this.setPolling=function(r){r?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},this.$measureSizes=function(){if(t===50){var r=null;try{r=this.$measureNode.getBoundingClientRect()}catch{r={width:0,height:0}}var n={height:r.height,width:r.width/t}}else var n={height:this.$measureNode.clientHeight,width:this.$measureNode.clientWidth/t};return n.width===0||n.height===0?null:n},this.$measureCharWidth=function(r){this.$main.innerHTML=d.stringRepeat(r,t);var n=this.$main.getBoundingClientRect();return n.width/t},this.getCharacterWidth=function(r){var n=this.charSizes[r];return n===void 0&&(n=this.charSizes[r]=this.$measureCharWidth(r)/this.$characterSize.width),n},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)}}).call(e.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,w,P){var b=E("./lib/oop"),A=E("./lib/dom"),d=E("./config"),a=E("./lib/useragent"),s=E("./layer/gutter").Gutter,t=E("./layer/marker").Marker,e=E("./layer/text").Text,r=E("./layer/cursor").Cursor,n=E("./scrollbar").HScrollBar,i=E("./scrollbar").VScrollBar,o=E("./renderloop").RenderLoop,c=E("./layer/font_metrics").FontMetrics,f=E("./lib/event_emitter").EventEmitter,m=`.ace_editor {position: relative;overflow: hidden;font: 12px/normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace;direction: ltr;text-align: left;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);}.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;white-space: pre!important;}.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;word-wrap: normal;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;transform: translatez(0);}.ace_multiselect .ace_cursor {border-left-width: 1px;}.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_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;}.ace_br1 {border-top-left-radius : 3px;}.ace_br2 {border-top-right-radius : 3px;}.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}.ace_br4 {border-bottom-right-radius: 3px;}.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}.ace_br8 {border-bottom-left-radius : 3px;}.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_text-input-ios {position: absolute !important;top: -100000px !important;left: -100000px !important;}`;A.importCssString(m,"ace_editor.css");var _=function(u,p){var l=this;this.container=u||A.createElement("div"),this.$keepTextAreaAtCursor=!a.isOldIE,A.addCssClass(this.container,"ace_editor"),this.setTheme(p),this.$gutter=A.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden",!0),this.scroller=A.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=A.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 t(this.content);var g=this.$textLayer=new e(this.content);this.canvas=g.element,this.$markerFront=new t(this.content),this.$cursorLayer=new r(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new i(this.container,this),this.scrollBarH=new n(this.container,this),this.scrollBarV.addEventListener("scroll",function(C){l.$scrollAnimation||l.session.setScrollTop(C.data-l.scrollMargin.top)}),this.scrollBarH.addEventListener("scroll",function(C){l.$scrollAnimation||l.session.setScrollLeft(C.data-l.scrollMargin.left)}),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new c(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.addEventListener("changeCharacterSize",function(C){l.updateCharacterSize(),l.onResize(!0,l.gutterWidth,l.$size.width,l.$size.height),l._signal("changeCharacterSize",C)}),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 o(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),d.resetOptions(this),d._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,b.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(u){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=u,u&&this.scrollMargin.top&&u.getScrollTop()<=0&&u.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(u),this.$markerBack.setSession(u),this.$markerFront.setSession(u),this.$gutterLayer.setSession(u),this.$textLayer.setSession(u),u&&(this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode))},this.updateLines=function(u,p,l){if(p===void 0&&(p=1/0),this.$changedLines?(this.$changedLines.firstRow>u&&(this.$changedLines.firstRow=u),this.$changedLines.lastRowthis.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},this.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},this.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},this.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},this.updateFull=function(u){u?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(u,p,l,g){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=u?1:0;var C=this.container;g||(g=C.clientHeight||C.scrollHeight),l||(l=C.clientWidth||C.scrollWidth);var F=this.$updateCachedSize(u,p,l,g);if(!this.$size.scrollerHeight||!l&&!g)return this.resizing=0;u&&(this.$gutterLayer.$padding=null),u?this.$renderChanges(F|this.$changes,!0):this.$loop.schedule(F|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarV.scrollLeft=this.scrollBarV.scrollTop=null}},this.$updateCachedSize=function(u,p,l,g){g-=this.$extraHeight||0;var C=0,F=this.$size,h={width:F.width,height:F.height,scrollerHeight:F.scrollerHeight,scrollerWidth:F.scrollerWidth};return g&&(u||F.height!=g)&&(F.height=g,C|=this.CHANGE_SIZE,F.scrollerHeight=F.height,this.$horizScroll&&(F.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",C=C|this.CHANGE_SCROLL),l&&(u||F.width!=l)&&(C|=this.CHANGE_SIZE,F.width=l,p==null&&(p=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=p,this.scrollBarH.element.style.left=this.scroller.style.left=p+"px",F.scrollerWidth=Math.max(0,l-p-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()||u)&&(C|=this.CHANGE_FULL)),F.$dirty=!l||!g,C&&this._signal("resize",h),C},this.onGutterResize=function(){var u=this.$showGutter?this.$gutter.offsetWidth:0;u!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,u,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 u=this.$size.scrollerWidth-this.$padding*2,p=Math.floor(u/this.characterWidth);return this.session.adjustWrapLimit(p,this.$showPrintMargin&&this.$printMarginColumn)},this.setAnimatedScroll=function(u){this.setOption("animatedScroll",u)},this.getAnimatedScroll=function(){return this.$animatedScroll},this.setShowInvisibles=function(u){this.setOption("showInvisibles",u),this.session.$bidiHandler.setShowInvisibles(u)},this.getShowInvisibles=function(){return this.getOption("showInvisibles")},this.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},this.setDisplayIndentGuides=function(u){this.setOption("displayIndentGuides",u)},this.setShowPrintMargin=function(u){this.setOption("showPrintMargin",u)},this.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},this.setPrintMarginColumn=function(u){this.setOption("printMarginColumn",u)},this.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},this.getShowGutter=function(){return this.getOption("showGutter")},this.setShowGutter=function(u){return this.setOption("showGutter",u)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.setFadeFoldWidgets=function(u){this.setOption("fadeFoldWidgets",u)},this.setHighlightGutterLine=function(u){this.setOption("highlightGutterLine",u)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.$updateGutterLineHighlight=function(){var u=this.$cursorLayer.$pixelPos,p=this.layerConfig.lineHeight;if(this.session.getUseWrapMode()){var l=this.session.selection.getCursor();l.column=0,u=this.$cursorLayer.getPixelPosition(l,!0),p*=this.session.getRowLength(l.row)}this.$gutterLineHighlight.style.top=u.top-this.layerConfig.offset+"px",this.$gutterLineHighlight.style.height=p+"px"},this.$updatePrintMargin=function(){if(!(!this.$showPrintMargin&&!this.$printMarginEl)){if(!this.$printMarginEl){var u=A.createElement("div");u.className="ace_layer ace_print-margin-layer",this.$printMarginEl=A.createElement("div"),this.$printMarginEl.className="ace_print-margin",u.appendChild(this.$printMarginEl),this.content.insertBefore(u,this.content.firstChild)}var p=this.$printMarginEl.style;p.left=this.characterWidth*this.$printMarginColumn+this.$padding+"px",p.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&this.session.$wrap==-1&&this.adjustWrapLimit()}},this.getContainerElement=function(){return this.container},this.getMouseEventTarget=function(){return this.scroller},this.getTextAreaContainer=function(){return this.container},this.$moveTextAreaToCursor=function(){if(this.$keepTextAreaAtCursor){var u=this.layerConfig,p=this.$cursorLayer.$pixelPos.top,l=this.$cursorLayer.$pixelPos.left;p-=u.offset;var g=this.textarea.style,C=this.lineHeight;if(p<0||p>u.height-C){g.top=g.left="0";return}var F=this.characterWidth;if(this.$composition){var h=this.textarea.value.replace(/^\x01+/,"");F*=this.session.$getStringScreenWidth(h)[0]+2,C+=2}l-=this.scrollLeft,l>this.$size.scrollerWidth-F&&(l=this.$size.scrollerWidth-F),l+=this.gutterWidth,g.height=C+"px",g.width=F+"px",g.left=Math.min(l,this.$size.scrollerWidth-F)+"px",g.top=Math.min(p,this.$size.height-C)+"px"}},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(this.layerConfig.offset===0?0:1)},this.getLastFullyVisibleRow=function(){var u=this.layerConfig,p=u.lastRow,l=this.session.documentToScreenRow(p,0)*u.lineHeight;return l-this.session.getScrollTop()>u.height-u.lineHeight?p-1:p},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(u){this.$padding=u,this.$textLayer.setPadding(u),this.$cursorLayer.setPadding(u),this.$markerFront.setPadding(u),this.$markerBack.setPadding(u),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.setScrollMargin=function(u,p,l,g){var C=this.scrollMargin;C.top=u|0,C.bottom=p|0,C.right=g|0,C.left=l|0,C.v=C.top+C.bottom,C.h=C.left+C.right,C.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-C.top),this.updateFull()},this.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},this.setHScrollBarAlwaysVisible=function(u){this.setOption("hScrollBarAlwaysVisible",u)},this.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},this.setVScrollBarAlwaysVisible=function(u){this.setOption("vScrollBarAlwaysVisible",u)},this.$updateScrollBarV=function(){var u=this.layerConfig.maxHeight,p=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(u-=(p-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>u-p&&(u=this.scrollTop+p,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(u+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(u,p){if(this.$changes&&(u|=this.$changes,this.$changes=0),!this.session||!this.container.offsetWidth||this.$frozen||!u&&!p){this.$changes|=u;return}if(this.$size.$dirty)return this.$changes|=u,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender"),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var l=this.layerConfig;if(u&this.CHANGE_FULL||u&this.CHANGE_SIZE||u&this.CHANGE_TEXT||u&this.CHANGE_LINES||u&this.CHANGE_SCROLL||u&this.CHANGE_H_SCROLL){if(u|=this.$computeLayerConfig(),l.firstRow!=this.layerConfig.firstRow&&l.firstRowScreen==this.layerConfig.firstRowScreen){var g=this.scrollTop+(l.firstRow-this.layerConfig.firstRow)*this.lineHeight;g>0&&(this.scrollTop=g,u=u|this.CHANGE_SCROLL,u|=this.$computeLayerConfig())}l=this.layerConfig,this.$updateScrollBarV(),u&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),this.$gutterLayer.element.style.marginTop=-l.offset+"px",this.content.style.marginTop=-l.offset+"px",this.content.style.width=l.width+2*this.$padding+"px",this.content.style.height=l.minHeight+"px"}if(u&this.CHANGE_H_SCROLL&&(this.content.style.marginLeft=-this.scrollLeft+"px",this.scroller.className=this.scrollLeft<=0?"ace_scroller":"ace_scroller ace_scroll-left"),u&this.CHANGE_FULL){this.$textLayer.update(l),this.$showGutter&&this.$gutterLayer.update(l),this.$markerBack.update(l),this.$markerFront.update(l),this.$cursorLayer.update(l),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this._signal("afterRender");return}if(u&this.CHANGE_SCROLL){u&this.CHANGE_TEXT||u&this.CHANGE_LINES?this.$textLayer.update(l):this.$textLayer.scrollLines(l),this.$showGutter&&this.$gutterLayer.update(l),this.$markerBack.update(l),this.$markerFront.update(l),this.$cursorLayer.update(l),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this.$moveTextAreaToCursor(),this._signal("afterRender");return}u&this.CHANGE_TEXT?(this.$textLayer.update(l),this.$showGutter&&this.$gutterLayer.update(l)):u&this.CHANGE_LINES?(this.$updateLines()||u&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(l):(u&this.CHANGE_TEXT||u&this.CHANGE_GUTTER)&&this.$showGutter&&this.$gutterLayer.update(l),u&this.CHANGE_CURSOR&&(this.$cursorLayer.update(l),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight()),u&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(l),u&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(l),this._signal("afterRender")},this.$autosize=function(){var u=this.session.getScreenLength()*this.lineHeight,p=this.$maxLines*this.lineHeight,l=Math.min(p,Math.max((this.$minLines||1)*this.lineHeight,u))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(l+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&l>this.$maxPixelHeight&&(l=this.$maxPixelHeight);var g=u>p;if(l!=this.desiredHeight||this.$size.height!=this.desiredHeight||g!=this.$vScroll){g!=this.$vScroll&&(this.$vScroll=g,this.scrollBarV.setVisible(g));var C=this.container.clientWidth;this.container.style.height=l+"px",this.$updateCachedSize(!0,this.$gutterWidth,C,l),this.desiredHeight=l,this._signal("autosize")}},this.$computeLayerConfig=function(){var u=this.session,p=this.$size,l=p.height<=2*this.lineHeight,g=this.session.getScreenLength(),C=g*this.lineHeight,F=this.$getLongestLine(),h=!l&&(this.$hScrollBarAlwaysVisible||p.scrollerWidth-F-2*this.$padding<0),v=this.$horizScroll!==h;v&&(this.$horizScroll=h,this.scrollBarH.setVisible(h));var y=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var B=this.scrollTop%this.lineHeight,x=p.scrollerHeight+this.lineHeight,D=!this.$maxLines&&this.$scrollPastEnd?(p.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;C+=D;var S=this.scrollMargin;this.session.setScrollTop(Math.max(-S.top,Math.min(this.scrollTop,C-p.scrollerHeight+S.bottom))),this.session.setScrollLeft(Math.max(-S.left,Math.min(this.scrollLeft,F+2*this.$padding-p.scrollerWidth+S.right)));var O=!l&&(this.$vScrollBarAlwaysVisible||p.scrollerHeight-C+D<0||this.scrollTop>S.top),I=y!==O;I&&(this.$vScroll=O,this.scrollBarV.setVisible(O));var W=Math.ceil(x/this.lineHeight)-1,z=Math.max(0,Math.round((this.scrollTop-B)/this.lineHeight)),V=z+W,R,$,k=this.lineHeight;z=u.screenToDocumentRow(z,0);var L=u.getFoldLine(z);L&&(z=L.start.row),R=u.documentToScreenRow(z,0),$=u.getRowLength(z)*k,V=Math.min(u.screenToDocumentRow(V,0),u.getLength()-1),x=p.scrollerHeight+u.getRowLength(V)*k+$,B=this.scrollTop-R*k;var M=0;return this.layerConfig.width!=F&&(M=this.CHANGE_H_SCROLL),(v||I)&&(M=this.$updateCachedSize(!0,this.gutterWidth,p.width,p.height),this._signal("scrollbarVisibilityChanged"),I&&(F=this.$getLongestLine())),this.layerConfig={width:F,padding:this.$padding,firstRow:z,firstRowScreen:R,lastRow:V,lineHeight:k,characterWidth:this.characterWidth,minHeight:x,maxHeight:C,offset:B,gutterOffset:k?Math.max(0,Math.ceil((B+p.height-p.scrollerHeight)/k)):0,height:this.$size.scrollerHeight},M},this.$updateLines=function(){if(this.$changedLines){var u=this.$changedLines.firstRow,p=this.$changedLines.lastRow;this.$changedLines=null;var l=this.layerConfig;if(!(u>l.lastRow+1)&&!(pF?(p&&y+h>F+this.lineHeight&&(F-=p*this.$size.scrollerHeight),F===0&&(F=-this.scrollMargin.top),this.session.setScrollTop(F)):y+this.$size.scrollerHeight-vC?(C=1-this.scrollMargin.top||p>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||u<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||u>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right)return!0},this.pixelToScreenCoordinates=function(u,p){var l=this.scroller.getBoundingClientRect(),g=u+this.scrollLeft-l.left-this.$padding,C=g/this.characterWidth,F=Math.floor((p+this.scrollTop-l.top)/this.lineHeight),h=Math.round(C);return{row:F,column:h,side:C-h>0?1:-1,offsetX:g}},this.screenToTextCoordinates=function(u,p){var l=this.scroller.getBoundingClientRect(),g=u+this.scrollLeft-l.left-this.$padding,C=Math.round(g/this.characterWidth),F=(p+this.scrollTop-l.top)/this.lineHeight;return this.session.screenToDocumentPosition(F,Math.max(C,0),g)},this.textToScreenCoordinates=function(u,p){var l=this.scroller.getBoundingClientRect(),g=this.session.documentToScreenPosition(u,p),C=this.$padding+(this.session.$bidiHandler.isBidiRow(g.row,u)?this.session.$bidiHandler.getPosLeft(g.column):Math.round(g.column*this.characterWidth)),F=g.row*this.lineHeight;return{pageX:l.left+C-this.scrollLeft,pageY:l.top+F-this.scrollTop}},this.visualizeFocus=function(){A.addCssClass(this.container,"ace_focus")},this.visualizeBlur=function(){A.removeCssClass(this.container,"ace_focus")},this.showComposition=function(u){this.$composition||(this.$composition={keepTextAreaAtCursor:this.$keepTextAreaAtCursor,cssText:this.textarea.style.cssText}),this.$keepTextAreaAtCursor=!0,A.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor()},this.setCompositionText=function(u){this.$moveTextAreaToCursor()},this.hideComposition=function(){this.$composition&&(A.removeCssClass(this.textarea,"ace_composition"),this.$keepTextAreaAtCursor=this.$composition.keepTextAreaAtCursor,this.textarea.style.cssText=this.$composition.cssText,this.$composition=null)},this.setTheme=function(u,p){var l=this;if(this.$themeId=u,l._dispatchEvent("themeChange",{theme:u}),!u||typeof u=="string"){var g=u||this.$options.theme.initialValue;d.loadModule(["theme",g],C)}else C(u);function C(F){if(l.$themeId!=u)return p&&p();if(!F||!F.cssClass)throw new Error("couldn't load module "+u+" or it didn't call define");A.importCssString(F.cssText,F.cssClass,l.container.ownerDocument),l.theme&&A.removeCssClass(l.container,l.theme.cssClass);var h="padding"in F?F.padding:"padding"in(l.theme||{})?4:l.$padding;l.$padding&&h!=l.$padding&&l.setPadding(h),l.$theme=F.cssClass,l.theme=F,A.addCssClass(l.container,F.cssClass),A.setCssClass(l.container,"ace_dark",F.isDark),l.$size&&(l.$size.width=0,l.$updateSizeAsync()),l._dispatchEvent("themeLoaded",{theme:F}),p&&p()}},this.getTheme=function(){return this.$themeId},this.setStyle=function(u,p){A.setCssClass(this.container,u,p!==!1)},this.unsetStyle=function(u){A.removeCssClass(this.container,u)},this.setCursorStyle=function(u){this.scroller.style.cursor!=u&&(this.scroller.style.cursor=u)},this.setMouseCursor=function(u){this.scroller.style.cursor=u},this.destroy=function(){this.$textLayer.destroy(),this.$cursorLayer.destroy()}}).call(_.prototype),d.defineOptions(_.prototype,"renderer",{animatedScroll:{initialValue:!1},showInvisibles:{set:function(u){this.$textLayer.setShowInvisibles(u)&&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(u){typeof u=="number"&&(this.$printMarginColumn=u),this.$showPrintMargin=!!u,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(u){this.$gutter.style.display=u?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},fadeFoldWidgets:{set:function(u){A.setCssClass(this.$gutter,"ace_fade-fold-widgets",u)},initialValue:!1},showFoldWidgets:{set:function(u){this.$gutterLayer.setShowFoldWidgets(u)},initialValue:!0},showLineNumbers:{set:function(u){this.$gutterLayer.setShowLineNumbers(u),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(u){this.$textLayer.setDisplayIndentGuides(u)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightGutterLine:{set:function(u){if(!this.$gutterLineHighlight){this.$gutterLineHighlight=A.createElement("div"),this.$gutterLineHighlight.className="ace_gutter-active-line",this.$gutter.appendChild(this.$gutterLineHighlight);return}this.$gutterLineHighlight.style.display=u?"":"none",this.$cursorLayer.$pixelPos&&this.$updateGutterLineHighlight()},initialValue:!1,value:!0},hScrollBarAlwaysVisible:{set:function(u){(!this.$hScrollBarAlwaysVisible||!this.$horizScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(u){(!this.$vScrollBarAlwaysVisible||!this.$vScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(u){typeof u=="number"&&(u=u+"px"),this.container.style.fontSize=u,this.updateFontSize()},initialValue:12},fontFamily:{set:function(u){this.container.style.fontFamily=u,this.updateFontSize()}},maxLines:{set:function(u){this.updateFull()}},minLines:{set:function(u){this.updateFull()}},maxPixelHeight:{set:function(u){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(u){u=+u||0,this.$scrollPastEnd!=u&&(this.$scrollPastEnd=u,this.$loop.schedule(this.CHANGE_SCROLL))},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(u){this.$gutterLayer.$fixedWidth=!!u,this.$loop.schedule(this.CHANGE_GUTTER)}},theme:{set:function(u){this.setTheme(u)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0}}),w.VirtualRenderer=_});ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(E,w,P){var b=E("../lib/oop"),A=E("../lib/net"),d=E("../lib/event_emitter").EventEmitter,a=E("../config");function s(n,i){var o=i.src;""+A.qualifyURL(n);try{return new Blob([o],{type:"application/javascript"})}catch{var c=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,f=new c;return f.append(o),f.getBlob("application/javascript")}}function t(n,i){var o=s(n,i),c=window.URL||window.webkitURL,f=c.createObjectURL(o);return new Worker(f)}var e=function(n,i,o,c,f){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),a.get("packaged")||!E.toUrl)c=c||a.moduleUrl(i.id,"worker");else{var m=this.$normalizePath;c=c||m(E.toUrl("ace/worker/worker.js",null,"_"));var _={};n.forEach(function(u){_[u]=m(E.toUrl(u,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}this.$worker=t(c,i),f&&this.send("importScripts",f),this.$worker.postMessage({init:!0,tlns:_,module:i.id,classname:o}),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){b.implement(this,d),this.onMessage=function(n){var i=n.data;switch(i.type){case"event":this._signal(i.name,{data:i.data});break;case"call":var o=this.callbacks[i.id];o&&(o(i.data),delete this.callbacks[i.id]);break;case"error":this.reportError(i.data);break;case"log":window.console&&console.log&&console.log.apply(console,i.data);break}},this.reportError=function(n){window.console&&console.error&&console.error(n)},this.$normalizePath=function(n){return A.qualifyURL(n)},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(n,i){this.$worker.postMessage({command:n,args:i})},this.call=function(n,i,o){if(o){var c=this.callbackId++;this.callbacks[c]=o,i.push(c)}this.send(n,i)},this.emit=function(n,i){try{this.$worker.postMessage({event:n,data:{data:i.data}})}catch(o){console.error(o.stack)}},this.attachToDocument=function(n){this.$doc&&this.terminate(),this.$doc=n,this.call("setValue",[n.getValue()]),n.on("change",this.changeListener)},this.changeListener=function(n){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),n.action=="insert"?this.deltaQueue.push(n.start,n.lines):this.deltaQueue.push(n.start,n.end)},this.$sendDeltaQueue=function(){var n=this.deltaQueue;n&&(this.deltaQueue=null,n.length>50&&n.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:n}))}}).call(e.prototype);var r=function(n,i,o){this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.callbackId=1,this.callbacks={},this.messageBuffer=[];var c=null,f=!1,m=Object.create(d),_=this;this.$worker={},this.$worker.terminate=function(){},this.$worker.postMessage=function(p){_.messageBuffer.push(p),c&&(f?setTimeout(u):u())},this.setEmitSync=function(p){f=p};var u=function(){var p=_.messageBuffer.shift();p.command?c[p.command].apply(c,p.args):p.event&&m._signal(p.event,p.data)};m.postMessage=function(p){_.onMessage({data:p})},m.callback=function(p,l){this.postMessage({type:"call",id:l,data:p})},m.emit=function(p,l){this.postMessage({type:"event",name:p,data:l})},a.loadModule(["worker",i],function(p){for(c=new p[o](m);_.messageBuffer.length;)u()})};r.prototype=e.prototype,w.UIWorkerClient=r,w.WorkerClient=e,w.createWorker=t});ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(E,w,P){var b=E("./range").Range,A=E("./lib/event_emitter").EventEmitter,d=E("./lib/oop"),a=function(s,t,e,r,n,i){var o=this;this.length=t,this.session=s,this.doc=s.getDocument(),this.mainClass=n,this.othersClass=i,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate),this.$others=r,this.$onCursorChange=function(){setTimeout(function(){o.onCursorChange()})},this.$pos=e;var c=s.getUndoManager().$undoStack||s.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=c.length,this.setup(),s.selection.on("changeCursor",this.$onCursorChange)};(function(){d.implement(this,A),this.setup=function(){var s=this,t=this.doc,e=this.session;this.selectionBefore=e.selection.toJSON(),e.selection.inMultiSelectMode&&e.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var r=this.pos;r.$insertRight=!0,r.detach(),r.markerId=e.addMarker(new b(r.row,r.column,r.row,r.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(n){var i=t.createAnchor(n.row,n.column);i.$insertRight=!0,i.detach(),s.others.push(i)}),e.setUndoSelect(!1)},this.showOtherMarkers=function(){if(!this.othersActive){var s=this.session,t=this;this.othersActive=!0,this.others.forEach(function(e){e.markerId=s.addMarker(new b(e.row,e.column,e.row,e.column+t.length),t.othersClass,null,!1)})}},this.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var s=0;s=this.pos.column&&t.start.column<=this.pos.column+this.length+1,n=t.start.column-this.pos.column;if(this.updateAnchors(s),r&&(this.length+=e),r&&!this.session.$fromUndo){if(s.action==="insert")for(var i=this.others.length-1;i>=0;i--){var o=this.others[i],c={row:o.row,column:o.column+n};this.doc.insertMergedLines(c,s.lines)}else if(s.action==="remove")for(var i=this.others.length-1;i>=0;i--){var o=this.others[i],c={row:o.row,column:o.column+n};this.doc.remove(new b(c.row,c.column,c.row,c.column-e))}}this.$updating=!1,this.updateMarkers()}},this.updateAnchors=function(s){this.pos.onChange(s);for(var t=this.others.length;t--;)this.others[t].onChange(s);this.updateMarkers()},this.updateMarkers=function(){if(!this.$updating){var s=this,t=this.session,e=function(n,i){t.removeMarker(n.markerId),n.markerId=t.addMarker(new b(n.row,n.column,n.row,n.column+s.length),i,null,!1)};e(this.pos,this.mainClass);for(var r=this.others.length;r--;)e(this.others[r],this.othersClass)}},this.onCursorChange=function(s){if(!(this.$updating||!this.session)){var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",s)):(this.hideOtherMarkers(),this._emit("cursorLeave",s))}},this.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.removeEventListener("change",this.$onUpdate),this.session.selection.removeEventListener("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},this.cancel=function(){if(this.$undoStackDepth!==-1){for(var s=this.session.getUndoManager(),t=(s.$undoStack||s.$undostack).length-this.$undoStackDepth,e=0;e1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),p||this.fromOrientedRange(u)}},this.toSingleRange=function(u){u=u||this.ranges[0];var p=this.rangeList.removeAll();p.length&&this.$onRemoveRange(p),u&&this.fromOrientedRange(u)},this.substractPoint=function(u){var p=this.rangeList.substractPoint(u);if(p)return this.$onRemoveRange(p),p[0]},this.mergeOverlappingRanges=function(){var u=this.rangeList.merge();u.length?this.$onRemoveRange(u):this.ranges[0]&&this.fromOrientedRange(this.ranges[0])},this.$onAddRange=function(u){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(u),this._signal("addRange",{range:u})},this.$onRemoveRange=function(u){if(this.rangeCount=this.rangeList.ranges.length,this.rangeCount==1&&this.inMultiSelectMode){var p=this.rangeList.ranges.pop();u.push(p),this.rangeCount=0}for(var l=u.length;l--;){var g=this.ranges.indexOf(u[l]);this.ranges.splice(g,1)}this._signal("removeRange",{ranges:u}),this.rangeCount===0&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),p=p||this.ranges[0],p&&!p.isEqual(this.getRange())&&this.fromOrientedRange(p)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new b,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 u=this.rangeList.ranges,p=u[u.length-1],l=A.fromPoints(u[0].start,p.end);this.toSingleRange(),this.setSelectionRange(l,p.cursor==p.start)}else{var l=this.getRange(),g=this.isBackwards(),C=l.start.row,F=l.end.row;if(C==F){if(g)var h=l.end,v=l.start;else var h=l.start,v=l.end;this.addRange(A.fromPoints(v,v)),this.addRange(A.fromPoints(h,h));return}var y=[],B=this.getLineRange(C,!0);B.start.column=l.start.column,y.push(B);for(var x=C+1;x1){var u=this.rangeList.ranges,p=u[u.length-1],l=A.fromPoints(u[0].start,p.end);this.toSingleRange(),this.setSelectionRange(l,p.cursor==p.start)}else{var g=this.session.documentToScreenPosition(this.selectionLead),C=this.session.documentToScreenPosition(this.selectionAnchor),F=this.rectangularRangeBlock(g,C);F.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(u,p,l){var g=[],C=u.column0;)W--;if(W>0)for(var z=0;g[z].isEmpty();)z++;for(var V=W;V>=z;V--)g[V].isEmpty()&&g.splice(V,1)}return g}}).call(d.prototype);var c=E("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(u){u.cursor||(u.cursor=u.end);var p=this.getSelectionStyle();return u.marker=this.session.addMarker(u,"ace_selection",p),this.session.$selectionMarkers.push(u),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,u},this.removeSelectionMarker=function(u){if(u.marker){this.session.removeMarker(u.marker);var p=this.session.$selectionMarkers.indexOf(u);p!=-1&&this.session.$selectionMarkers.splice(p,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(u){for(var p=this.session.$selectionMarkers,l=u.length;l--;){var g=u[l];if(g.marker){this.session.removeMarker(g.marker);var C=p.indexOf(g);C!=-1&&p.splice(C,1)}}this.session.selectionMarkerCount=p.length},this.$onAddRange=function(u){this.addSelectionMarker(u.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(u){this.removeSelectionMarkers(u.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(u){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(e.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(u){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(e.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection"))},this.$onMultiSelectExec=function(u){var p=u.command,l=u.editor;if(l.multiSelect){if(p.multiSelectAction)p.multiSelectAction=="forEach"?g=l.forEachSelection(p,u.args):p.multiSelectAction=="forEachLine"?g=l.forEachSelection(p,u.args,!0):p.multiSelectAction=="single"?(l.exitMultiSelectMode(),g=p.exec(l,u.args||{})):g=p.multiSelectAction(l,u.args||{});else{var g=p.exec(l,u.args||{});l.multiSelect.addRange(l.multiSelect.toOrientedRange()),l.multiSelect.mergeOverlappingRanges()}return g}},this.forEachSelection=function(u,p,l){if(!this.inVirtualSelectionMode){var g=l&&l.keepOrder,C=l==!0||l&&l.$byLines,F=this.session,h=this.selection,v=h.rangeList,y=(g?h:v).ranges,B;if(!y.length)return u.exec?u.exec(this,p||{}):u(this,p||{});var x=h._eventRegistry;h._eventRegistry={};var D=new d(F);this.inVirtualSelectionMode=!0;for(var S=y.length;S--;){if(C)for(;S>0&&y[S].start.row==y[S-1].end.row;)S--;D.fromOrientedRange(y[S]),D.index=S,this.selection=F.selection=D;var O=u.exec?u.exec(this,p||{}):u(this,p||{});!B&&O!==void 0&&(B=O),D.toOrientedRange(y[S])}D.detach(),this.selection=F.selection=h,this.inVirtualSelectionMode=!1,h._eventRegistry=x,h.mergeOverlappingRanges();var I=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),I&&I.from==I.to&&this.renderer.animateScrolling(I.from),B}},this.exitMultiSelectMode=function(){!this.inMultiSelectMode||this.inVirtualSelectionMode||this.multiSelect.toSingleRange()},this.getSelectedText=function(){var u="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var p=this.multiSelect.rangeList.ranges,l=[],g=0;g0);h<0&&(h=0),v>=B&&(v=B-1)}var D=this.session.removeFullLines(h,v);D=this.$reAlignText(D,y),this.session.insert({row:h,column:0},D.join(` `)+` `),y||(F.start.column=0,F.end.column=D[D.length-1].length),this.selection.setRange(F)}else{C.forEach(function(W){p.substractPoint(W.cursor)});var S=0,O=1/0,I=l.map(function(W){var z=W.cursor,V=u.getLine(z.row),R=V.substr(z.column).search(/\S/g);return R==-1&&(R=0),z.column>S&&(S=z.column),R$?u.insert(V,t.stringRepeat(" ",R-$)):u.remove(new A(V.row,V.column,V.row,V.column-R+$)),W.start.column=W.end.column=S,W.start.row=W.end.row=V.row,W.cursor=W.end}),p.fromOrientedRange(l[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}},this.$reAlignText=function(u,p){var l=!0,g=!0,C,F,h;return u.map(function(D){var S=D.match(/(\s*)(.*?)(\s*)([=:].*)/);return S?C==null?(C=S[1].length,F=S[2].length,h=S[3].length,S):(C+F+h!=S[1].length+S[2].length+S[3].length&&(g=!1),C!=S[1].length&&(l=!1),C>S[1].length&&(C=S[1].length),FS[3].length&&(h=S[3].length),S):[D]}).map(p?y:l?g?B:y:x);function v(D){return t.stringRepeat(" ",D)}function y(D){return D[2]?v(C)+D[2]+v(F-D[2].length+h)+D[4].replace(/^([=:])\s+/,"$1 "):D[0]}function B(D){return D[2]?v(C+F-D[2].length)+D[2]+v(h)+D[4].replace(/^([=:])\s+/,"$1 "):D[0]}function x(D){return D[2]?v(C)+D[2]+v(h)+D[4].replace(/^([=:])\s+/,"$1 "):D[0]}}}).call(c.prototype);function f(u,p){return u.row==p.row&&u.column==p.column}w.onSessionChange=function(u){var p=u.session;p&&!p.multiSelect&&(p.$selectionMarkers=[],p.selection.$initRangeList(),p.multiSelect=p.selection),this.multiSelect=p&&p.multiSelect;var l=u.oldSession;l&&(l.multiSelect.off("addRange",this.$onAddRange),l.multiSelect.off("removeRange",this.$onRemoveRange),l.multiSelect.off("multiSelect",this.$onMultiSelect),l.multiSelect.off("singleSelect",this.$onSingleSelect),l.multiSelect.lead.off("change",this.$checkMultiselectChange),l.multiSelect.anchor.off("change",this.$checkMultiselectChange)),p&&(p.multiSelect.on("addRange",this.$onAddRange),p.multiSelect.on("removeRange",this.$onRemoveRange),p.multiSelect.on("multiSelect",this.$onMultiSelect),p.multiSelect.on("singleSelect",this.$onSingleSelect),p.multiSelect.lead.on("change",this.$checkMultiselectChange),p.multiSelect.anchor.on("change",this.$checkMultiselectChange)),p&&this.inMultiSelectMode!=p.selection.inMultiSelectMode&&(p.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())};function m(u){u.$multiselectOnSessionChange||(u.$onAddRange=u.$onAddRange.bind(u),u.$onRemoveRange=u.$onRemoveRange.bind(u),u.$onMultiSelect=u.$onMultiSelect.bind(u),u.$onSingleSelect=u.$onSingleSelect.bind(u),u.$multiselectOnSessionChange=w.onSessionChange.bind(u),u.$checkMultiselectChange=u.$checkMultiselectChange.bind(u),u.$multiselectOnSessionChange(u),u.on("changeSession",u.$multiselectOnSessionChange),u.on("mousedown",a),u.commands.addCommands(e.defaultCommands),_(u))}function _(u){var p=u.textInput.getElement(),l=!1;s.addListener(p,"keydown",function(C){var F=C.keyCode==18&&!(C.ctrlKey||C.shiftKey||C.metaKey);u.$blockSelectEnabled&&F?l||(u.renderer.setMouseCursor("crosshair"),l=!0):l&&g()}),s.addListener(p,"keyup",g),s.addListener(p,"blur",g);function g(C){l&&(u.renderer.setMouseCursor(""),l=!1)}}w.MultiSelect=m,E("./config").defineOptions(c.prototype,"editor",{enableMultiselect:{set:function(u){m(this),u?(this.on("changeSession",this.$multiselectOnSessionChange),this.on("mousedown",a)):(this.off("changeSession",this.$multiselectOnSessionChange),this.off("mousedown",a))},value:!0},enableBlockSelect:{set:function(u){this.$blockSelectEnabled=u},value:!0}})});ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(E,w,P){var b=E("../../range").Range,A=w.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(d,a,s){var t=d.getLine(s);return this.foldingStartMarker.test(t)?"start":a=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(t)?"end":""},this.getFoldWidgetRange=function(d,a,s){return null},this.indentationBlock=function(d,a,s){var t=/\S/,e=d.getLine(a),r=e.search(t);if(r!=-1){for(var n=s||e.length,i=d.getLength(),o=a,c=a;++ao){var m=d.getLine(c).length;return new b(o,n,c,m)}}},this.openingBracketBlock=function(d,a,s,t,e){var r={row:s,column:t+1},n=d.$findClosingBracket(a,r,e);if(n){var i=d.foldWidgets[n.row];return i==null&&(i=d.getFoldWidget(n.row)),i=="start"&&n.row>r.row&&(n.row--,n.column=d.getLine(n.row).length),b.fromPoints(r,n)}},this.closingBracketBlock=function(d,a,s,t,e){var r={row:s,column:t},n=d.$findOpeningBracket(a,r);if(n)return n.column++,r.column--,b.fromPoints(n,r)}}).call(A.prototype)});ace.define("ace/theme/textmate",["require","exports","module","ace/lib/dom"],function(E,w,P){w.isDark=!1,w.cssClass="ace-tm",w.cssText='.ace-tm .ace_gutter {background: #f0f0f0;color: #333;}.ace-tm .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-tm .ace_fold {background-color: #6B72E6;}.ace-tm {background-color: #FFFFFF;color: black;}.ace-tm .ace_cursor {color: black;}.ace-tm .ace_invisible {color: rgb(191, 191, 191);}.ace-tm .ace_storage,.ace-tm .ace_keyword {color: blue;}.ace-tm .ace_constant {color: rgb(197, 6, 11);}.ace-tm .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-tm .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-tm .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-tm .ace_invalid {background-color: rgba(255, 0, 0, 0.1);color: red;}.ace-tm .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-tm .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-tm .ace_support.ace_type,.ace-tm .ace_support.ace_class {color: rgb(109, 121, 222);}.ace-tm .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-tm .ace_string {color: rgb(3, 106, 7);}.ace-tm .ace_comment {color: rgb(76, 136, 107);}.ace-tm .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-tm .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-tm .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-tm .ace_variable {color: rgb(49, 132, 149);}.ace-tm .ace_xml-pe {color: rgb(104, 104, 91);}.ace-tm .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-tm .ace_heading {color: rgb(12, 7, 255);}.ace-tm .ace_list {color:rgb(185, 6, 144);}.ace-tm .ace_meta.ace_tag {color:rgb(0, 22, 142);}.ace-tm .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-tm .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-tm.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px white;}.ace-tm .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-tm .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-tm .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-tm .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-tm .ace_gutter-active-line {background-color : #dcdcdc;}.ace-tm .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-tm .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}';var b=E("../lib/dom");b.importCssString(w.cssText,w.cssClass)});ace.define("ace/line_widgets",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/range"],function(E,w,P){E("./lib/oop");var b=E("./lib/dom");E("./range").Range;function A(d){this.session=d,this.session.widgetManager=this,this.session.getRowLength=this.getRowLength,this.session.$getWidgetScreenLength=this.$getWidgetScreenLength,this.updateOnChange=this.updateOnChange.bind(this),this.renderWidgets=this.renderWidgets.bind(this),this.measureWidgets=this.measureWidgets.bind(this),this.session._changedWidgets=[],this.$onChangeEditor=this.$onChangeEditor.bind(this),this.session.on("change",this.updateOnChange),this.session.on("changeFold",this.updateOnFold),this.session.on("changeEditor",this.$onChangeEditor)}(function(){this.getRowLength=function(d){var a;return this.lineWidgets?a=this.lineWidgets[d]&&this.lineWidgets[d].rowCount||0:a=0,!this.$useWrapMode||!this.$wrapData[d]?1+a:this.$wrapData[d].length+1+a},this.$getWidgetScreenLength=function(){var d=0;return this.lineWidgets.forEach(function(a){a&&a.rowCount&&!a.hidden&&(d+=a.rowCount)}),d},this.$onChangeEditor=function(d){this.attach(d.editor)},this.attach=function(d){d&&d.widgetManager&&d.widgetManager!=this&&d.widgetManager.detach(),this.editor!=d&&(this.detach(),this.editor=d,d&&(d.widgetManager=this,d.renderer.on("beforeRender",this.measureWidgets),d.renderer.on("afterRender",this.renderWidgets)))},this.detach=function(d){var a=this.editor;if(a){this.editor=null,a.widgetManager=null,a.renderer.off("beforeRender",this.measureWidgets),a.renderer.off("afterRender",this.renderWidgets);var s=this.session.lineWidgets;s&&s.forEach(function(t){t&&t.el&&t.el.parentNode&&(t._inDocument=!1,t.el.parentNode.removeChild(t.el))})}},this.updateOnFold=function(d,a){var s=a.lineWidgets;if(!(!s||!d.action)){for(var t=d.data,e=t.start.row,r=t.end.row,n=d.action=="add",i=e+1;i0&&!t[e];)e--;this.firstRow=s.firstRow,this.lastRow=s.lastRow,a.$cursorLayer.config=s;for(var n=e;n<=r;n++){var i=t[n];if(!(!i||!i.el)){if(i.hidden){i.el.style.top=-100-(i.pixelHeight||0)+"px";continue}i._inDocument||(i._inDocument=!0,a.container.appendChild(i.el));var o=a.$cursorLayer.getPixelPosition({row:n,column:0},!0).top;i.coverLine||(o+=s.lineHeight*this.session.getRowLineCount(i.row)),i.el.style.top=o-s.offset+"px";var c=i.coverGutter?0:a.gutterWidth;i.fixedWidth||(c-=a.scrollLeft),i.el.style.left=c+"px",i.fullWidth&&i.screenWidth&&(i.el.style.minWidth=s.width+2*s.padding+"px"),i.fixedWidth?i.el.style.right=a.scrollBar.getWidth()+"px":i.el.style.right=""}}}}}).call(A.prototype),w.LineWidgets=A});ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range"],function(E,w,P){var b=E("../line_widgets").LineWidgets,A=E("../lib/dom"),d=E("../range").Range;function a(t,e,r){for(var n=0,i=t.length-1;n<=i;){var o=n+i>>1,c=r(e,t[o]);if(c>0)n=o+1;else if(c<0)i=o-1;else return o}return-(n+1)}function s(t,e,r){var n=t.getAnnotations().sort(d.comparePoints);if(n.length){var i=a(n,{row:e,column:-1},d.comparePoints);i<0&&(i=-i-1),i>=n.length?i=r>0?0:n.length-1:i===0&&r<0&&(i=n.length-1);var o=n[i];if(!(!o||!r)){if(o.row===e){do o=n[i+=r];while(o&&o.row===e);if(!o)return n.slice()}var c=[];e=o.row;do c[r<0?"unshift":"push"](o),o=n[i+=r];while(o&&o.row==e);return c.length&&c}}}w.showErrorMarker=function(t,e){var r=t.session;r.widgetManager||(r.widgetManager=new b(r),r.widgetManager.attach(t));var n=t.getCursorPosition(),i=n.row,o=r.widgetManager.getWidgetsAtRow(i).filter(function(C){return C.type=="errorMarker"})[0];o?o.destroy():i-=e;var c=s(r,i,e),f;if(c){var m=c[0];n.column=(m.pos&&typeof m.column!="number"?m.pos.sc:m.column)||0,n.row=m.row,f=t.renderer.$gutterLayer.$annotations[n.row]}else{if(o)return;f={text:["Looks good!"],className:"ace_ok"}}t.session.unfold(n.row),t.selection.moveToPosition(n);var _={row:n.row,fixedWidth:!0,coverGutter:!0,el:A.createElement("div"),type:"errorMarker"},u=_.el.appendChild(A.createElement("div")),p=_.el.appendChild(A.createElement("div"));p.className="error_widget_arrow "+f.className;var l=t.renderer.$cursorLayer.getPixelPosition(n).left;p.style.left=l+t.renderer.gutterWidth-5+"px",_.el.className="error_widget_wrapper",u.className="error_widget "+f.className,u.innerHTML=f.text.join("
"),u.appendChild(A.createElement("div"));var g=function(C,F,h){if(F===0&&(h==="esc"||h==="return"))return _.destroy(),{command:"null"}};_.destroy=function(){t.$mouseHandler.isMousePressed||(t.keyBinding.removeKeyboardHandler(g),r.widgetManager.removeLineWidget(_),t.off("changeSelection",_.destroy),t.off("changeSession",_.destroy),t.off("mouseup",_.destroy),t.off("change",_.destroy))},t.keyBinding.addKeyboardHandler(g),t.on("changeSelection",_.destroy),t.on("changeSession",_.destroy),t.on("mouseup",_.destroy),t.on("change",_.destroy),t.session.widgetManager.addLineWidget(_),_.el.onmousedown=t.focus.bind(t),t.renderer.scrollCursorIntoView(null,.5,{bottom:_.el.offsetHeight})},A.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,w,P){E("./lib/fixoldbrowsers");var b=E("./lib/dom"),A=E("./lib/event"),d=E("./editor").Editor,a=E("./edit_session").EditSession,s=E("./undomanager").UndoManager,t=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"),w.config=E("./config"),w.acequire=E,w.edit=function(e){if(typeof e=="string"){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 d)return e.env.editor;var n="";if(e&&/input|textarea/i.test(e.tagName)){var i=e;n=i.value,e=b.createElement("pre"),i.parentNode.replaceChild(e,i)}else e&&(n=b.getInnerText(e),e.innerHTML="");var o=w.createEditSession(n),c=new d(new t(e));c.setSession(o);var f={document:o,editor:c,onResize:c.resize.bind(c,null)};return i&&(f.textarea=i),A.addListener(window,"resize",f.onResize),c.on("destroy",function(){A.removeListener(window,"resize",f.onResize),f.editor.container.env=null}),c.container.env=c.env=f,c},w.createEditSession=function(e,r){var n=new a(e,r);return n.setUndoManager(new s),n},w.EditSession=a,w.UndoManager=s,w.version="1.2.9"});(function(){ace.acequire(["ace/ace"],function(E){E&&(E.config.init(!0),E.define=ace.define),window.ace||(window.ace=E);for(var w in E)E.hasOwnProperty(w)&&(window.ace[w]=E[w])})})();var re=window.ace.acequire("ace/ace");const se=ne(re);ace.define("ace/mode/ini_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(E,w,P){var b=E("../lib/oop"),A=E("./text_highlight_rules").TextHighlightRules,d="\\\\(?:[\\\\0abtrn;#=:]|x[a-fA-F\\d]{4})",a=function(){this.$rules={start:[{token:"punctuation.definition.comment.ini",regex:"#.*",push_:[{token:"comment.line.number-sign.ini",regex:"$|^",next:"pop"},{defaultToken:"comment.line.number-sign.ini"}]},{token:"punctuation.definition.comment.ini",regex:";.*",push_:[{token:"comment.line.semicolon.ini",regex:"$|^",next:"pop"},{defaultToken:"comment.line.semicolon.ini"}]},{token:["keyword.other.definition.ini","text","punctuation.separator.key-value.ini"],regex:"\\b([a-zA-Z0-9_.-]+)\\b(\\s*)(=)"},{token:["punctuation.definition.entity.ini","constant.section.group-title.ini","punctuation.definition.entity.ini"],regex:"^(\\[)(.*?)(\\])"},{token:"punctuation.definition.string.begin.ini",regex:"'",push:[{token:"punctuation.definition.string.end.ini",regex:"'",next:"pop"},{token:"constant.language.escape",regex:d},{defaultToken:"string.quoted.single.ini"}]},{token:"punctuation.definition.string.begin.ini",regex:'"',push:[{token:"constant.language.escape",regex:d},{token:"punctuation.definition.string.end.ini",regex:'"',next:"pop"},{defaultToken:"string.quoted.double.ini"}]}]},this.normalizeRules()};a.metaData={fileTypes:["ini","conf"],keyEquivalent:"^~I",name:"Ini",scopeName:"source.ini"},b.inherits(a,A),w.IniHighlightRules=a});ace.define("ace/mode/folding/ini",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(E,w,P){var b=E("../../lib/oop"),A=E("../../range").Range,d=E("./fold_mode").FoldMode,a=w.FoldMode=function(){};b.inherits(a,d),(function(){this.foldingStartMarker=/^\s*\[([^\])]*)]\s*(?:$|[;#])/,this.getFoldWidgetRange=function(s,t,e){var r=this.foldingStartMarker,n=s.getLine(e),i=n.match(r);if(i){for(var o=i[1]+".",c=n.length,f=s.getLength(),m=e,_=e;++em){var u=s.getLine(_).length;return new A(m,c,_,u)}}}}).call(a.prototype)});ace.define("ace/mode/ini",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/ini_highlight_rules","ace/mode/folding/ini"],function(E,w,P){var b=E("../lib/oop"),A=E("./text").Mode,d=E("./ini_highlight_rules").IniHighlightRules,a=E("./folding/ini").FoldMode,s=function(){this.HighlightRules=d,this.foldingRules=new a,this.$behaviour=this.$defaultBehaviour};b.inherits(s,A),(function(){this.lineCommentStart=";",this.blockComment=null,this.$id="ace/mode/ini"}).call(s.prototype),w.Mode=s});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,w,P){var b=E("../lib/dom"),A=E("../lib/lang"),d=E("../lib/event"),a='.ace_search {background-color: #ddd;color: #666;border: 1px solid #cbcbcb;border-top: 0 none;overflow: hidden;margin: 0;padding: 4px 6px 0 4px;position: absolute;top: 0;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 {margin: 0 20px 4px 0;overflow: hidden;line-height: 1.9;}.ace_replace_form {margin-right: 0;}.ace_search_form.ace_nomatch {outline: 1px solid red;}.ace_search_field {border-radius: 3px 0 0 3px;background-color: white;color: black;border: 1px solid #cbcbcb;border-right: 0 none;box-sizing: border-box!important;outline: 0;padding: 0;font-size: inherit;margin: 0;line-height: inherit;padding: 0 6px;min-width: 17em;vertical-align: top;}.ace_searchbtn {border: 1px solid #cbcbcb;line-height: inherit;display: inline-block;padding: 0 6px;background: #fff;border-right: 0 none;border-left: 1px solid #dcdcdc;cursor: pointer;margin: 0;position: relative;box-sizing: content-box!important;color: #666;}.ace_searchbtn:last-child {border-radius: 0 3px 3px 0;border-right: 1px solid #cbcbcb;}.ace_searchbtn:disabled {background: none;cursor: default;}.ace_searchbtn:hover {background-color: #eef1f6;}.ace_searchbtn.prev, .ace_searchbtn.next {padding: 0px 0.7em}.ace_searchbtn.prev:after, .ace_searchbtn.next:after {content: "";border: solid 2px #888;width: 0.5em;height: 0.5em;border-width: 2px 0 0 2px;display:inline-block;transform: rotate(-45deg);}.ace_searchbtn.next:after {border-width: 0 2px 2px 0 ;}.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;font: 16px/16px Arial;padding: 0;height: 14px;width: 14px;top: 9px;right: 7px;position: absolute;}.ace_searchbtn_close:hover {background-color: #656565;background-position: 50% 100%;color: white;}.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;box-sizing: border-box!important;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;clear: both;}.ace_search_counter {float: left;font-family: arial;padding: 0 8px;}',s=E("../keyboard/hash_handler").HashHandler,t=E("../lib/keys"),e=999;b.importCssString(a,"ace_searchbox");var r=''.replace(/> +/g,">"),n=function(i,o,c){var f=b.createElement("div");f.innerHTML=r,this.element=f.firstChild,this.setSession=this.setSession.bind(this),this.$init(),this.setEditor(i)};(function(){this.setEditor=function(i){i.searchBox=this,i.renderer.scroller.appendChild(this.element),this.editor=i},this.setSession=function(i){this.searchRange=null,this.$syncOptions(!0)},this.$initElements=function(i){this.searchBox=i.querySelector(".ace_search_form"),this.replaceBox=i.querySelector(".ace_replace_form"),this.searchOption=i.querySelector("[action=searchInSelection]"),this.replaceOption=i.querySelector("[action=toggleReplace]"),this.regExpOption=i.querySelector("[action=toggleRegexpMode]"),this.caseSensitiveOption=i.querySelector("[action=toggleCaseSensitive]"),this.wholeWordOption=i.querySelector("[action=toggleWholeWords]"),this.searchInput=this.searchBox.querySelector(".ace_search_field"),this.replaceInput=this.replaceBox.querySelector(".ace_search_field"),this.searchCounter=i.querySelector(".ace_search_counter")},this.$init=function(){var i=this.element;this.$initElements(i);var o=this;d.addListener(i,"mousedown",function(c){setTimeout(function(){o.activeInput.focus()},0),d.stopPropagation(c)}),d.addListener(i,"click",function(c){var f=c.target||c.srcElement,m=f.getAttribute("action");m&&o[m]?o[m]():o.$searchBarKb.commands[m]&&o.$searchBarKb.commands[m].exec(o),d.stopPropagation(c)}),d.addCommandKeyListener(i,function(c,f,m){var _=t.keyCodeToString(m),u=o.$searchBarKb.findKeyCommand(f,_);u&&u.exec&&(u.exec(o),d.stopEvent(c))}),this.$onChange=A.delayedCall(function(){o.find(!1,!1)}),d.addListener(this.searchInput,"input",function(){o.$onChange.schedule(20)}),d.addListener(this.searchInput,"focus",function(){o.activeInput=o.searchInput,o.searchInput.value&&o.highlight()}),d.addListener(this.replaceInput,"focus",function(){o.activeInput=o.replaceInput,o.searchInput.value&&o.highlight()})},this.$closeSearchBarKb=new s([{bindKey:"Esc",name:"closeSearchBar",exec:function(i){i.searchBox.hide()}}]),this.$searchBarKb=new s,this.$searchBarKb.bindKeys({"Ctrl-f|Command-f":function(i){var o=i.isReplace=!i.isReplace;i.replaceBox.style.display=o?"":"none",i.replaceOption.checked=!1,i.$syncOptions(),i.searchInput.focus()},"Ctrl-H|Command-Option-F":function(i){i.replaceOption.checked=!0,i.$syncOptions(),i.replaceInput.focus()},"Ctrl-G|Command-G":function(i){i.findNext()},"Ctrl-Shift-G|Command-Shift-G":function(i){i.findPrev()},esc:function(i){setTimeout(function(){i.hide()})},Return:function(i){i.activeInput==i.replaceInput&&i.replace(),i.findNext()},"Shift-Return":function(i){i.activeInput==i.replaceInput&&i.replace(),i.findPrev()},"Alt-Return":function(i){i.activeInput==i.replaceInput&&i.replaceAll(),i.findAll()},Tab:function(i){(i.activeInput==i.replaceInput?i.searchInput:i.replaceInput).focus()}}),this.$searchBarKb.addCommands([{name:"toggleRegexpMode",bindKey:{win:"Alt-R|Alt-/",mac:"Ctrl-Alt-R|Ctrl-Alt-/"},exec:function(i){i.regExpOption.checked=!i.regExpOption.checked,i.$syncOptions()}},{name:"toggleCaseSensitive",bindKey:{win:"Alt-C|Alt-I",mac:"Ctrl-Alt-R|Ctrl-Alt-I"},exec:function(i){i.caseSensitiveOption.checked=!i.caseSensitiveOption.checked,i.$syncOptions()}},{name:"toggleWholeWords",bindKey:{win:"Alt-B|Alt-W",mac:"Ctrl-Alt-B|Ctrl-Alt-W"},exec:function(i){i.wholeWordOption.checked=!i.wholeWordOption.checked,i.$syncOptions()}},{name:"toggleReplace",exec:function(i){i.replaceOption.checked=!i.replaceOption.checked,i.$syncOptions()}},{name:"searchInSelection",exec:function(i){i.searchOption.checked=!i.searchRange,i.setSearchRange(i.searchOption.checked&&i.editor.getSelectionRange()),i.$syncOptions()}}]),this.setSearchRange=function(i){this.searchRange=i,i?this.searchRangeMarker=this.editor.session.addMarker(i,"ace_active-line"):this.searchRangeMarker&&(this.editor.session.removeMarker(this.searchRangeMarker),this.searchRangeMarker=null)},this.$syncOptions=function(i){b.setCssClass(this.replaceOption,"checked",this.searchRange),b.setCssClass(this.searchOption,"checked",this.searchOption.checked),this.replaceOption.textContent=this.replaceOption.checked?"-":"+",b.setCssClass(this.regExpOption,"checked",this.regExpOption.checked),b.setCssClass(this.wholeWordOption,"checked",this.wholeWordOption.checked),b.setCssClass(this.caseSensitiveOption,"checked",this.caseSensitiveOption.checked),this.replaceBox.style.display=this.replaceOption.checked?"":"none",this.find(!1,!1,i)},this.highlight=function(i){this.editor.session.highlight(i||this.editor.$search.$options.re),this.editor.renderer.updateBackMarkers()},this.find=function(i,o,c){var f=this.editor.find(this.searchInput.value,{skipCurrent:i,backwards:o,wrap:!0,regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked,preventScroll:c,range:this.searchRange}),m=!f&&this.searchInput.value;b.setCssClass(this.searchBox,"ace_nomatch",m),this.editor._emit("findSearchBox",{match:!m}),this.highlight(),this.updateCounter()},this.updateCounter=function(){var i=this.editor,o=i.$search.$options.re,c=0,f=0;if(o){var m=this.searchRange?i.session.getTextRange(this.searchRange):i.getValue(),_=i.session.doc.positionToIndex(i.selection.anchor);this.searchRange&&(_-=i.session.doc.positionToIndex(this.searchRange.start));for(var u=o.lastIndex=0,p;(p=o.exec(m))&&(c++,u=p.index,u<=_&&f++,!(c>e||!p[0]&&(o.lastIndex=u+=1,u>=m.length))););}this.searchCounter.textContent=f+" of "+(c>e?e+"+":c)},this.findNext=function(){this.find(!0,!1)},this.findPrev=function(){this.find(!0,!0)},this.findAll=function(){var i=this.editor.findAll(this.searchInput.value,{regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked}),o=!i&&this.searchInput.value;b.setCssClass(this.searchBox,"ace_nomatch",o),this.editor._emit("findSearchBox",{match:!o}),this.highlight(),this.hide()},this.replace=function(){this.editor.getReadOnly()||this.editor.replace(this.replaceInput.value)},this.replaceAndFindNext=function(){this.editor.getReadOnly()||(this.editor.replace(this.replaceInput.value),this.findNext())},this.replaceAll=function(){this.editor.getReadOnly()||this.editor.replaceAll(this.replaceInput.value)},this.hide=function(){this.active=!1,this.setSearchRange(null),this.editor.off("changeSession",this.setSession),this.element.style.display="none",this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb),this.editor.focus()},this.show=function(i,o){this.active=!0,this.editor.on("changeSession",this.setSession),this.element.style.display="",this.replaceOption.checked=o,i&&(this.searchInput.value=i),this.searchInput.focus(),this.searchInput.select(),this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb),this.$syncOptions(!0)},this.isFocused=function(){var i=document.activeElement;return i==this.searchInput||i==this.replaceInput}}).call(n.prototype),w.SearchBox=n,w.Search=function(i,o){var c=i.searchBox||new n(i);c.show(i.session.getTextRange(),o)}});(function(){ace.acequire(["ace/ext/searchbox"],function(){})})();ace.define("ace/theme/vito",["require","exports","module","ace/lib/dom"],function(E,w){w.isDark=!0,w.cssClass="ace-vito rounded-lg w-full",w.cssText=` .ace-vito .ace_scrollbar::-webkit-scrollbar { width: 12px;} .ace-vito .ace_scrollbar::-webkit-scrollbar-track { background: #111827;} .ace-vito .ace_scrollbar::-webkit-scrollbar-thumb { background: #374151; border-radius: 4px;} .ace-vito .ace_gutter {background: #151c27;color: rgb(128,145,160)} .ace-vito .ace_print-margin {width: 1px;background: #555555} .ace-vito {background-color: #0f172a;color: #F9FAFB} .ace-vito .ace_cursor {color: #F9FAFB} .ace-vito .ace_marker-layer .ace_selection {background: rgba(179, 101, 57, 0.75)} .ace-vito.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #002240;} .ace-vito .ace_marker-layer .ace_step {background: rgb(127, 111, 19)} .ace-vito .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(255, 255, 255, 0.15)} .ace-vito .ace_marker-layer .ace_active-line {background: rgba(24, 182, 155, 0.10)} .ace-vito .ace_gutter-active-line {background-color: rgba(0, 0, 0, 0.35)} .ace-vito .ace_marker-layer .ace_selected-word {border: 1px solid rgba(179, 101, 57, 0.75)} .ace-vito .ace_invisible {color: rgba(255, 255, 255, 0.15)} .ace-vito .ace_keyword,.ace-vito .ace_meta {color: #FF9D00} .ace-vito .ace_constant,.ace-vito .ace_constant.ace_character,.ace-vito .ace_constant.ace_character.ace_escape,.ace-vito .ace_constant.ace_other {color: #FF628C} .ace-vito .ace_invalid {color: #F8F8F8;background-color: #800F00} .ace-vito .ace_support {color: #80FFBB} .ace-vito .ace_support.ace_constant {color: #EB939A} .ace-vito .ace_fold {background-color: #FF9D00;border-color: #F9FAFB} .ace-vito .ace_support.ace_function {color: #FFB054} .ace-vito .ace_storage {color: #FFEE80} .ace-vito .ace_entity {color: #FFDD00} .ace-vito .ace_string {color: #7cd827} .ace-vito .ace_string.ace_regexp {color: #80FFC2} .ace-vito .ace_comment {font-style: italic;color: #6B7280} .ace-vito .ace_heading,.ace-vito .ace_markup.ace_heading {color: #C8E4FD;background-color: #001221} .ace-vito .ace_list,.ace-vito .ace_markup.ace_list {background-color: #130D26} .ace-vito .ace_variable {color: #CCCCCC} .ace-vito .ace_variable.ace_language {color: #FF80E1} .ace-vito .ace_meta.ace_tag {color: #9EFFFF} .ace-vito .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYHCLSvkPAAP3AgSDTRd4AAAAAElFTkSuQmCC) right repeat-y} `;var P=E("../lib/dom");P.importCssString(w.cssText,w.cssClass)});ace.define("ace/mode/env",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/env_highlight_rules","ace/mode/folding/ini","ace/mode/behaviour"],function(E,w){var P=E("../lib/oop"),b=E("./text").Mode,A=E("./behaviour").Behaviour,d=E("./env_highlight_rules").envHighlightRules,a=function(){this.HighlightRules=d,this.$behaviour=new A};P.inherits(a,b),(function(){this.lineCommentStart="#",this.blockComment=null,this.$id="ace/mode/env"}).call(a.prototype),w.Mode=a});ace.define("ace/mode/env_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(E,w,P){var b=E("../lib/oop"),A=E("./text_highlight_rules").TextHighlightRules,d=function(){this.$rules={start:[{token:"punctuation.definition.comment.env",regex:"#.*",push_:[{token:"comment.line.number-sign.env",regex:"$|^",next:"pop"},{defaultToken:"comment.line.number-sign.env"}]},{token:"punctuation.definition.comment.env",regex:"#.*",push_:[{token:"comment.line.semicolon.env",regex:"$|^",next:"pop"},{defaultToken:"comment.line.semicolon.env"}]},{token:["keyword.other.definition.env","text","punctuation.separator.key-value.env"],regex:"\\b([a-zA-Z0-9_.-]+)\\b(\\s*)(=)"},{token:["punctuation.definition.entity.env","constant.section.group-title.env","punctuation.definition.entity.env"],regex:"^(\\[)(.*?)(\\])"},{token:"punctuation.definition.string.begin.env",regex:"'",push:[{token:"punctuation.definition.string.end.env",regex:"'",next:"pop"},{token:"constant.language.escape",regex:"\\\\(?:[\\\\0abtrn;#=:]|x[a-fA-F\\d]{4})"},{defaultToken:"string.quoted.single.env"}]},{token:"punctuation.definition.string.begin.env",regex:'"',push:[{token:"constant.language.escape",regex:"\\\\(?:[\\\\0abtrn;#=:]|x[a-fA-F\\d]{4})"},{token:"support.constant.color",regex:/\${[\w]+}/},{token:"punctuation.definition.string.end.env",regex:'"',next:"pop"},{defaultToken:"string.quoted.double.env"}]},{token:"constant.language.boolean",regex:/(?:true|false)\b/}]},this.normalizeRules()};d.metaData={fileTypes:["env"],keyEquivalent:"^~I",name:"Env",scopeName:"source.env"},b.inherits(d,A),w.envHighlightRules=d});ace.define("ace/mode/nginx_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(E,w){var P=E("../lib/oop"),b=E("./text_highlight_rules").TextHighlightRules,A=function(){var d="include|index|absolute_redirect|aio|output_buffers|directio|sendfile|aio_write|alias|root|chunked_transfer_encoding|client_body_buffer_size|client_body_in_file_only|client_body_in_single_buffer|client_body_temp_path|client_body_timeout|client_header_buffer_size|client_header_timeout|client_max_body_size|connection_pool_size|default_type|disable_symlinks|directio_alignment|error_page|etag|if_modified_since|ignore_invalid_headers|internal|keepalive_requests|keepalive_disable|keepalive_timeout|limit_except|large_client_header_buffers|limit_rate|limit_rate_after|lingering_close|lingering_time|lingering_timeout|listen|log_not_found|log_subrequest|max_ranges|merge_slashes|msie_padding|msie_refresh|open_file_cache|open_file_cache_errors|open_file_cache_min_uses|open_file_cache_valid|output_buffers|port_in_redirect|postpone_output|read_ahead|recursive_error_pages|request_pool_size|reset_timedout_connection|resolver|resolver_timeout|satisfy|send_lowat|send_timeout|sendfile|sendfile_max_chunk|server_name|server_name_in_redirect|server_names_hash_bucket_size|server_names_hash_max_size|server_tokens|subrequest_output_buffer_size|tcp_nodelay|tcp_nopush|try_files|types|types_hash_bucket_size|types_hash_max_size|underscores_in_headers|variables_hash_bucket_size|variables_hash_max_size|accept_mutex|accept_mutex_delay|debug_connection|error_log|daemon|debug_points|env|load_module|lock_file|master_process|multi_accept|pcre_jit|pid|ssl_engine|thread_pool|timer_resolution|use|user|worker_aio_requests|worker_connections|worker_cpu_affinity|worker_priority|worker_processes|worker_rlimit_core|worker_rlimit_nofile|worker_shutdown_timeout|working_directory|allow|deny|add_before_body|add_after_body|addition_types|api|status_zone|auth_basic|auth_basic_user_file|auth_jwt|auth_jwt|auth_jwt_claim_set|auth_jwt_header_set|auth_jwt_key_file|auth_jwt_key_request|auth_jwt_leeway|auth_request|auth_request_set|autoindex|autoindex_exact_size|autoindex_format|autoindex_localtime|ancient_browser|ancient_browser_value|modern_browser|modern_browser_value|charset|charset_map|charset_types|override_charset|source_charset|create_full_put_path|dav_access|dav_methods|min_delete_depth|empty_gif|f4f|f4f_buffer_size|fastcgi_bind|fastcgi_buffer_size|fastcgi_buffering|fastcgi_buffers|fastcgi_busy_buffers_size|fastcgi_cache|fastcgi_cache_background_update|fastcgi_cache_bypass|fastcgi_cache_key|fastcgi_cache_lock|fastcgi_cache_lock_age|fastcgi_cache_lock_timeout|fastcgi_cache_max_range_offset|fastcgi_cache_methods|fastcgi_cache_min_uses|fastcgi_cache_min_uses|fastcgi_cache_path|fastcgi_cache_purge|fastcgi_cache_revalidate|fastcgi_cache_use_stale|fastcgi_cache_valid|fastcgi_catch_stderr|fastcgi_connect_timeout|fastcgi_force_ranges|fastcgi_hide_header|fastcgi_ignore_client_abort|fastcgi_ignore_headers|fastcgi_index|fastcgi_intercept_errors|fastcgi_keep_conn|fastcgi_limit_rate|fastcgi_max_temp_file_size|fastcgi_next_upstream|fastcgi_next_upstream_timeout|fastcgi_next_upstream_tries|fastcgi_no_cache|fastcgi_param|fastcgi_pass|fastcgi_pass_header|fastcgi_pass_request_body|fastcgi_pass_request_headers|fastcgi_read_timeout|fastcgi_request_buffering|fastcgi_send_lowat|fastcgi_send_timeout|fastcgi_socket_keepalive|fastcgi_split_path_info|fastcgi_store|fastcgi_store_access|fastcgi_temp_file_write_size|fastcgi_temp_path|flv|geoip_country|geoip_city|geoip_org|geoip_proxy|geoip_proxy_recursive|grpc_bind|grpc_buffer_size|grpc_connect_timeout|grpc_hide_header|grpc_ignore_headers|grpc_intercept_errors|grpc_next_upstream|grpc_next_upstream_timeout|grpc_next_upstream_tries|grpc_pass|grpc_pass_header|grpc_read_timeout|grpc_send_timeout|grpc_set_header|grpc_socket_keepalive|grpc_ssl_certificate|grpc_ssl_certificate_key|grpc_ssl_ciphers|grpc_ssl_crl|grpc_ssl_name|grpc_ssl_password_file|grpc_ssl_protocols|grpc_ssl_server_name|grpc_ssl_session_reuse|grpc_ssl_trusted_certificate|grpc_ssl_verify|grpc_ssl_verify_depth|gunzip|gunzip_buffers|gzip|gzip_buffers|gzip_comp_level|gzip_disable|gzip_http_version|gzip_min_length|gzip_proxied|gzip_types|gzip_vary|gzip_static|add_header|add_trailer|expires|hlshls_buffers|hls_forward_args|hls_fragment|hls_mp4_buffer_size|hls_mp4_max_buffer_size|image_filter|image_filter_buffer|image_filter_interlace|image_filter_jpeg_quality|image_filter_sharpen|image_filter_transparency|image_filter_webp_quality|js_content|js_include|js_set|keyval|keyval_zone|limit_conn|limit_conn_log_level|limit_conn_status|limit_conn_zone|limit_zone|limit_req|limit_req_log_level|limit_req_status|limit_req_zone|access_log|log_format|open_log_file_cache|map_hash_bucket_size|map_hash_max_size|memcached_bind|memcached_buffer_size|memcached_connect_timeout|memcached_force_ranges|memcached_gzip_flag|memcached_next_upstream|memcached_next_upstream_timeout|memcached_next_upstream_tries|memcached_pass|memcached_read_timeout|memcached_send_timeout|memcached_socket_keepalive|mirror|mirror_request_body|mp4|mp4_buffer_size|mp4_max_buffer_size|mp4_limit_rate|mp4_limit_rate_after|perl_modules|perl_require|perl_set|proxy_bind|proxy_buffer_size|proxy_buffering|proxy_buffers|proxy_busy_buffers_size|proxy_cache|proxy_cache_background_update|proxy_cache_bypass|proxy_cache_convert_head|proxy_cache_key|proxy_cache_lock|proxy_cache_lock_age|proxy_cache_lock_timeout|proxy_cache_max_range_offset|proxy_cache_methods|proxy_cache_min_uses|proxy_cache_path|proxy_cache_purge|proxy_cache_revalidate|proxy_cache_use_stale|proxy_cache_valid|proxy_connect_timeout|proxy_cookie_domain|proxy_cookie_path|proxy_force_ranges|proxy_headers_hash_bucket_size|proxy_headers_hash_max_size|proxy_hide_header|proxy_http_version|proxy_ignore_client_abort|proxy_ignore_headers|proxy_intercept_errors|proxy_limit_rate|proxy_max_temp_file_size|proxy_method|proxy_next_upstream|proxy_next_upstream_timeout|proxy_next_upstream_tries|proxy_no_cache|proxy_pass|proxy_pass_header|proxy_pass_request_body|proxy_pass_request_headers|proxy_read_timeout|proxy_redirect|proxy_send_lowat|proxy_send_timeout|proxy_set_body|proxy_set_header|proxy_socket_keepalive|proxy_ssl_certificate|proxy_ssl_certificate_key|proxy_ssl_ciphers|proxy_ssl_crl|proxy_ssl_name|proxy_ssl_password_file|proxy_ssl_protocols|proxy_ssl_server_name|proxy_ssl_session_reuse|proxy_ssl_trusted_certificate|proxy_ssl_verify|proxy_ssl_verify_depth|proxy_store|proxy_store_access|proxy_temp_file_write_size|proxy_temp_path|random_index|set_real_ip_from|real_ip_header|real_ip_recursive|referer_hash_bucket_size|referer_hash_max_size|valid_referers|break|return|rewrite_log|set|uninitialized_variable_warn|scgi_bind|scgi_buffer_size|scgi_buffering|scgi_buffers|scgi_busy_buffers_size|scgi_cache|scgi_cache_background_update|scgi_cache_key|scgi_cache_lock|scgi_cache_lock_age|scgi_cache_lock_timeout|scgi_cache_max_range_offset|scgi_cache_methods|scgi_cache_min_uses|scgi_cache_path|scgi_cache_purge|scgi_cache_revalidate|scgi_cache_use_stale|scgi_cache_valid|scgi_connect_timeout|scgi_force_ranges|scgi_hide_header|scgi_ignore_client_abort|scgi_ignore_headers|scgi_intercept_errors|scgi_limit_rate|scgi_max_temp_file_size|scgi_next_upstream|scgi_next_upstream_timeout|scgi_next_upstream_tries|scgi_no_cache|scgi_param|scgi_pass|scgi_pass_header|scgi_pass_request_body|scgi_pass_request_headers|scgi_read_timeout|scgi_request_buffering|scgi_send_timeout|scgi_socket_keepalive|scgi_store|scgi_store_access|scgi_temp_file_write_size|scgi_temp_path|secure_link|secure_link_md5|secure_link_secret|session_log|session_log_format|session_log_zone|slice|spdy_chunk_size|spdy_headers_comp|ssi|ssi_last_modified|ssi_min_file_chunk|ssi_silent_errors|ssi_types|ssi_value_length|ssl|ssl_buffer_size|ssl_certificate|ssl_certificate_key|ssl_ciphers|ssl_client_certificate|ssl_crl|ssl_dhparam|ssl_early_data|ssl_ecdh_curve|ssl_password_file|ssl_prefer_server_ciphers|ssl_protocols|ssl_session_cache|ssl_session_ticket_key|ssl_session_tickets|ssl_session_timeout|ssl_stapling|ssl_stapling_file|ssl_stapling_responder|ssl_stapling_verify|ssl_trusted_certificate|ssl_verify_client|ssl_verify_depth|status|status_format|status_zone|stub_status|sub_filter|sub_filter_last_modified|sub_filter_once|sub_filter_types|server|zone|state|hash|ip_hash|keepalive|keepalive_requests|keepalive_timeout|ntlm|least_conn|least_time|queue|random|sticky|sticky_cookie_insert|upstream_conf|health_check|userid|userid_domain|userid_expires|userid_mark|userid_name|userid_p3p|userid_path|userid_service|uwsgi_bind|uwsgi_buffer_size|uwsgi_buffering|uwsgi_buffers|uwsgi_busy_buffers_size|uwsgi_cache|uwsgi_cache_background_update|uwsgi_cache_bypass|uwsgi_cache_key|uwsgi_cache_lock|uwsgi_cache_lock_age|uwsgi_cache_lock_timeout|uwsgi_cache_max_range_offset|uwsgi_cache_methods|uwsgi_cache_min_uses|uwsgi_cache_path|uwsgi_cache_purge|uwsgi_cache_revalidate|uwsgi_cache_use_stale|uwsgi_cache_valid|uwsgi_connect_timeout|uwsgi_force_ranges|uwsgi_hide_header|uwsgi_ignore_client_abort|uwsgi_ignore_headers|uwsgi_intercept_errors|uwsgi_limit_rate|uwsgi_max_temp_file_size|uwsgi_modifier1|uwsgi_modifier2|uwsgi_next_upstream|uwsgi_next_upstream_timeout|uwsgi_next_upstream_tries|uwsgi_no_cache|uwsgi_param|uwsgi_pass|uwsgi_pass_header|uwsgi_pass_request_body|uwsgi_pass_request_headers|uwsgi_read_timeout|uwsgi_request_buffering|uwsgi_send_timeout|uwsgi_socket_keepalive|uwsgi_ssl_certificate|uwsgi_ssl_certificate_key|uwsgi_ssl_ciphers|uwsgi_ssl_crl|uwsgi_ssl_name|uwsgi_ssl_password_file|uwsgi_ssl_protocols|uwsgi_ssl_server_name|uwsgi_ssl_session_reuse|uwsgi_ssl_trusted_certificate|uwsgi_ssl_verify|uwsgi_ssl_verify_depth|uwsgi_store|uwsgi_store_access|uwsgi_temp_file_write_size|uwsgi_temp_path|http2_body_preread_size|http2_chunk_size|http2_idle_timeout|http2_max_concurrent_pushes|http2_max_concurrent_streams|http2_max_field_size|http2_max_header_size|http2_max_requests|http2_push|http2_push_preload|http2_recv_buffer_size|http2_recv_timeout|xml_entities|xslt_last_modified|xslt_param|xslt_string_param|xslt_stylesheet|xslt_types|listen|protocol|resolver|resolver_timeout|timeout|auth_http|auth_http_header|auth_http_pass_client_cert|auth_http_timeout|proxy_buffer|proxy_pass_error_message|proxy_timeout|xclient|starttls|imap_auth|imap_capabilities|imap_client_buffer|pop3_auth|pop3_capabilities|smtp_auth|smtp_capabilities|smtp_client_buffer|smtp_greeting_delay|preread_buffer_size|preread_timeout|proxy_protocol_timeout|js_access|js_filter|js_preread|proxy_download_rate|proxy_requests|proxy_responses|proxy_upload_rate|ssl_handshake_timeout|ssl_preread|health_check_timeout|zone_sync|zone_sync_buffers|zone_sync_connect_retry_interval|zone_sync_connect_timeout|zone_sync_interval|zone_sync_recv_buffer_size|zone_sync_server|zone_sync_ssl|zone_sync_ssl_certificate|zone_sync_ssl_certificate_key|zone_sync_ssl_ciphers|zone_sync_ssl_crl|zone_sync_ssl_name|zone_sync_ssl_password_file|zone_sync_ssl_protocols|zone_sync_ssl_server_name|zone_sync_ssl_trusted_certificate|zone_sync_ssl_verify_depth|zone_sync_timeout|google_perftools_profiles|proxy|perl";this.$rules={start:[{token:["storage.type","text","string.regexp","paren.lparen"],regex:"\\b(location)(\\s+)([\\^]?~[\\*]?\\s+.*?)({)"},{token:["storage.type","text","text","paren.lparen"],regex:"\\b(location|match|upstream)(\\s+)(.*?)({)"},{token:["storage.type","text","string","text","variable","text","paren.lparen"],regex:'\\b(split_clients|map)(\\s+)(\\".*\\")(\\s+)(\\$[\\w_]+)(\\s*)({)'},{token:["storage.type","text","paren.lparen"],regex:"\\b(http|events|server|mail|stream)(\\s*)({)"},{token:["storage.type","text","variable","text","variable","text","paren.lparen"],regex:"\\b(geo|map)(\\s+)(\\$[\\w_]+)?(\\s*)(\\$[\\w_]+)(\\s*)({)"},{token:"paren.rparen",regex:"(})"},{token:"paren.lparen",regex:"({)"},{token:["storage.type","text","paren.lparen"],regex:"\\b(if)(\\s+)(\\()",push:[{token:"paren.rparen",regex:"\\)|$",next:"pop"},{include:"lexical"}]},{token:"keyword",regex:"\\b("+d+")\\b",push:[{token:"punctuation",regex:";",next:"pop"},{include:"lexical"}]},{token:["keyword","text","string.regexp","text","punctuation"],regex:"\\b(rewrite)(\\s)(\\S*)(\\s.*)(;)"},{include:"lexical"},{include:"comments"}],comments:[{token:"comment",regex:"#.*$"}],lexical:[{token:"string",regex:"'",push:[{token:"string",regex:"'",next:"pop"},{include:"variables"},{defaultToken:"string"}]},{token:"string",regex:'"',push:[{token:"string",regex:'"',next:"pop"},{include:"variables"},{defaultToken:"string"}]},{token:"string.regexp",regex:/[!]?[~][*]?\s+.*(?=\))/},{token:"string.regexp",regex:/[\^]\S*(?=;$)/},{token:"string.regexp",regex:/[\^]\S*(?=;|\s|$)/},{token:"keyword.operator",regex:"\\B(\\+|\\-|\\*|\\=|!=)\\B"},{token:"constant.language",regex:"\\b(true|false|on|off|all|any|main|always)\\b"},{token:"text",regex:"\\s+"},{include:"variables"}],variables:[{token:"variable",regex:"\\$[\\w_]+"},{token:"variable.language",regex:"\\b(GET|POST|HEAD)\\b"}]},this.normalizeRules()};P.inherits(A,b),w.NginxHighlightRules=A});ace.define("ace/mode/nginx",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/nginx_highlight_rules"],function(E,w,P){var b=E("../lib/oop"),A=E("./text").Mode,d=E("./nginx_highlight_rules").NginxHighlightRules,a=function(){this.HighlightRules=d};b.inherits(a,A),(function(){this.$id="ace/mode/nginx"}).call(a.prototype),w.Mode=a});const oe=E=>{E.data("codeEditorFormComponent",({state:w,options:P})=>({state:w,options:P,init:function(){this.render()},render(){this.editor=null;const b=JSON.parse(this.options.value||"");this.editor=se.edit(this.options.id),this.editor.$blockScrolling=1/0,this.editor.setTheme("ace/theme/vito"),this.editor.setValue(b,-1),this.editor.getSession().setMode(`ace/mode/${this.options.lang||"plain_text"}`),this.editor.clearSelection(),this.editor.focus(),this.editor.setOptions({printMargin:!1}),this.editor.renderer.setScrollMargin(15,15,0,0),this.editor.renderer.setPadding(15),this.editor.getSession().on("change",()=>{this.state=this.editor.getValue()}),window.addEventListener("resize",()=>{this.editor.resize()}),this.state=b}}))};document.addEventListener("alpine:init",()=>{window.Alpine.plugin(oe)});window.copyToClipboard=async function(E){try{await navigator.clipboard.writeText(E)}catch{const P=document.createElement("textarea");P.value=E,P.style.position="absolute",P.style.left="-999999px",document.body.prepend(P),P.select();try{document.execCommand("copy")}catch{}finally{P.remove()}}};