http://git-wip-us.apache.org/repos/asf/drill/blob/27dc0d27/exec/java-exec/src/main/resources/rest/static/js/ace-code-editor/ace.js
----------------------------------------------------------------------
diff --git 
a/exec/java-exec/src/main/resources/rest/static/js/ace-code-editor/ace.js 
b/exec/java-exec/src/main/resources/rest/static/js/ace-code-editor/ace.js
new file mode 100644
index 0000000..0d70ea5
--- /dev/null
+++ b/exec/java-exec/src/main/resources/rest/static/js/ace-code-editor/ace.js
@@ -0,0 +1,14 @@
+(function(){function o(n){var 
i=e;n&&(e[n]||(e[n]={}),i=e[n]);if(!i.define||!i.define.packaged)t.original=i.define,i.define=t,i.define.packaged=!0;if(!i.require||!i.require.packaged)r.original=i.require,i.require=r,i.require.packaged=!0}var
 ACE_NAMESPACE = "ace",e=function(){return this}();!e&&typeof 
window!="undefined"&&(e=window);if(!ACE_NAMESPACE&&typeof 
requirejs!="undefined")return;var t=function(e,n,r){if(typeof 
e!="string"){t.original?t.original.apply(this,arguments):(console.error("dropping
 module because define wasn't a 
string."),console.trace());return}arguments.length==2&&(r=n),t.modules[e]||(t.payloads[e]=r,t.modules[e]=null)};t.modules={},t.payloads={};var
 n=function(e,t,n){if(typeof t=="string"){var i=s(e,t);if(i!=undefined)return 
n&&n(),i}else if(Object.prototype.toString.call(t)==="[object Array]"){var 
o=[];for(var u=0,a=t.length;u<a;++u){var 
f=s(e,t[u]);if(f==undefined&&r.original)return;o.push(f)}return 
n&&n.apply(null,o)||!0}},r=function(e,t){var i=n("",e,t);retur
 n 
i==undefined&&r.original?r.original.apply(this,arguments):i},i=function(e,t){if(t.indexOf("!")!==-1){var
 n=t.split("!");return i(e,n[0])+"!"+i(e,n[1])}if(t.charAt(0)=="."){var 
r=e.split("/").slice(0,-1).join("/");t=r+"/"+t;while(t.indexOf(".")!==-1&&s!=t){var
 s=t;t=t.replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return 
t},s=function(e,r){r=i(e,r);var s=t.modules[r];if(!s){s=t.payloads[r];if(typeof 
s=="function"){var 
o={},u={id:r,uri:"",exports:o,packaged:!0},a=function(e,t){return 
n(r,e,t)},f=s(a,o,u);o=f||u.exports,t.modules[r]=o,delete 
t.payloads[r]}s=t.modules[r]=o||s}return 
s};o(ACE_NAMESPACE)})(),ace.define("ace/lib/regexp",["require","exports","module"],function(e,t,n){"use
 strict";function 
o(e){return(e.global?"g":"")+(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.extended?"x":"")+(e.sticky?"y":"")}function
 u(e,t,n){if(Array.prototype.indexOf)return e.indexOf(t,n);for(var 
r=n||0;r<e.length;r++)if(e[r]===t)return r;return-1}var 
r={exec:RegExp.prototype.exec,test:RegExp.
 
prototype.test,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split},i=r.exec.call(/()??/,"")[1]===undefined,s=function(){var
 e=/^/g;return 
r.test.call(e,""),!e.lastIndex}();if(s&&i)return;RegExp.prototype.exec=function(e){var
 t=r.exec.apply(this,arguments),n,a;if(typeof 
e=="string"&&t){!i&&t.length>1&&u(t,"")>-1&&(a=RegExp(this.source,r.replace.call(o(this),"g","")),r.replace.call(e.slice(t.index),a,function(){for(var
 
e=1;e<arguments.length-2;e++)arguments[e]===undefined&&(t[e]=undefined)}));if(this._xregexp&&this._xregexp.captureNames)for(var
 
f=1;f<t.length;f++)n=this._xregexp.captureNames[f-1],n&&(t[n]=t[f]);!s&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--}return
 t},s||(RegExp.prototype.test=function(e){var t=r.exec.call(this,e);return 
t&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--,!!t})}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(e,t,n){function
 r(){}function w(e){try
 {return Object.defineProperty(e,"sentinel",{}),"sentinel"in 
e}catch(t){}}function H(e){return 
e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function
 B(e){var t=typeof e;return 
e===null||t==="undefined"||t==="boolean"||t==="number"||t==="string"}function 
j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof 
n=="function"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof 
r=="function"){t=r.call(e);if(B(t))return t}throw new 
TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var 
n=this;if(typeof n!="function")throw new TypeError("Function.prototype.bind 
called on incompatible "+n);var i=u.call(arguments,1),s=function(){if(this 
instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return 
Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return 
n.prototype&&(r.prototype=n.prototype,s.prototype=new 
r,r.prototype=null),s});var 
i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bin
 
d(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,"__defineGetter__"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function
 e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var 
t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,"XXX"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var
 n=this.length;e>0?e>n&&(e=n):e==void 
0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var 
r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var
 o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var 
h=0;h<l;++h)this[f+h]=this[a+h];else 
if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return
 r};else{var 
v=Array.prototype.splice;Array.prototype.splice=function(e,t){return 
arguments.lengt
 h?v.apply(this,[e===void 0?0:e,t===void 
0?this.length-e:t].concat(u.call(arguments,2))):[]}}Array.isArray||(Array.isArray=function(t){return
 a(t)=="[object Array]"});var m=Object("a"),g=m[0]!="a"||!(0 in 
m);Array.prototype.forEach||(Array.prototype.forEach=function(t){var 
n=F(this),r=g&&a(this)=="[object 
String]"?this.split(""):n,i=arguments[1],s=-1,o=r.length>>>0;if(a(t)!="[object 
Function]")throw new TypeError;while(++s<o)s in 
r&&t.call(i,r[s],s,n)}),Array.prototype.map||(Array.prototype.map=function(t){var
 n=F(this),r=g&&a(this)=="[object 
String]"?this.split(""):n,i=r.length>>>0,s=Array(i),o=arguments[1];if(a(t)!="[object
 Function]")throw new TypeError(t+" is not a function");for(var u=0;u<i;u++)u 
in r&&(s[u]=t.call(o,r[u],u,n));return 
s}),Array.prototype.filter||(Array.prototype.filter=function(t){var 
n=F(this),r=g&&a(this)=="[object 
String]"?this.split(""):n,i=r.length>>>0,s=[],o,u=arguments[1];if(a(t)!="[object
 Function]")throw new TypeError(t+" is not a function");for(var f=0
 ;f<i;f++)f in r&&(o=r[f],t.call(u,o,f,n)&&s.push(o));return 
s}),Array.prototype.every||(Array.prototype.every=function(t){var 
n=F(this),r=g&&a(this)=="[object 
String]"?this.split(""):n,i=r.length>>>0,s=arguments[1];if(a(t)!="[object 
Function]")throw new TypeError(t+" is not a function");for(var o=0;o<i;o++)if(o 
in 
r&&!t.call(s,r[o],o,n))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(t){var
 n=F(this),r=g&&a(this)=="[object 
String]"?this.split(""):n,i=r.length>>>0,s=arguments[1];if(a(t)!="[object 
Function]")throw new TypeError(t+" is not a function");for(var o=0;o<i;o++)if(o 
in 
r&&t.call(s,r[o],o,n))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(t){var
 n=F(this),r=g&&a(this)=="[object 
String]"?this.split(""):n,i=r.length>>>0;if(a(t)!="[object Function]")throw new 
TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new 
TypeError("reduce of empty array with no initial value");var 
s=0,o;if(arguments.length>=2)o=argume
 nts[1];else do{if(s in r){o=r[s++];break}if(++s>=i)throw new TypeError("reduce 
of empty array with no initial value")}while(!0);for(;s<i;s++)s in 
r&&(o=t.call(void 0,o,r[s],s,n));return 
o}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(t){var 
n=F(this),r=g&&a(this)=="[object 
String]"?this.split(""):n,i=r.length>>>0;if(a(t)!="[object Function]")throw new 
TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new 
TypeError("reduceRight of empty array with no initial value");var 
s,o=i-1;if(arguments.length>=2)s=arguments[1];else do{if(o in 
r){s=r[o--];break}if(--o<0)throw new TypeError("reduceRight of empty array with 
no initial value")}while(!0);do o in this&&(s=t.call(void 
0,s,r[o],o,n));while(o--);return 
s});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(t){var
 n=g&&a(this)=="[object 
String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var 
i=0;arguments.length>1&&(i=H(arguments[1])),i=i>=0?i:Math.max(0,r
 +i);for(;i<r;i++)if(i in n&&n[i]===t)return 
i;return-1};if(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)Array.prototype.lastIndexOf=function(t){var
 n=g&&a(this)=="[object 
String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var 
i=r-1;arguments.length>1&&(i=Math.min(i,H(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i
 in n&&t===n[i])return 
i;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return 
t.__proto__||(t.constructor?t.constructor.prototype:o)});if(!Object.getOwnPropertyDescriptor){var
 y="Object.getOwnPropertyDescriptor called on a non-object: 
";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!="object"&&typeof 
t!="function"||t===null)throw new TypeError(y+t);if(!f(t,n))return;var 
r,i,s;r={enumerable:!0,configurable:!0};if(d){var 
u=t.__proto__;t.__proto__=o;var i=h(t,n),s=p(t,n);t.__proto__=u;if(i||s)return 
i&&(r.get=i),s&&(r.set=s),r}return 
r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=functi
 on(t){return Object.keys(t)});if(!Object.create){var 
b;Object.prototype.__proto__===null?b=function(){return{__proto__:null}}:b=function(){var
 e={};for(var t in e)e[t]=null;return 
e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var
 r;if(t===null)r=b();else{if(typeof t!="object")throw new TypeError("typeof 
prototype["+typeof t+"] != 'object'");var i=function(){};i.prototype=t,r=new 
i,r.__proto__=t}return n!==void 
0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var 
E=w({}),S=typeof 
document=="undefined"||w(document.createElement("div"));if(!E||!S)var 
x=Object.defineProperty}if(!Object.defineProperty||x){var T="Property 
description must be an object: ",N="Object.defineProperty called on non-object: 
",C="getters & setters can not be defined on this javascript 
engine";Object.defineProperty=function(t,n,r){if(typeof t!="object"&&typeof 
t!="function"||t===null)throw new 
 TypeError(N+t);if(typeof r!="object"&&typeof r!="function"||r===null)throw new 
TypeError(T+r);if(x)try{return 
x.call(Object,t,n,r)}catch(i){}if(f(r,"value"))if(d&&(h(t,n)||p(t,n))){var 
s=t.__proto__;t.__proto__=o,delete t[n],t[n]=r.value,t.__proto__=s}else 
t[n]=r.value;else{if(!d)throw new 
TypeError(C);f(r,"get")&&l(t,n,r.get),f(r,"set")&&c(t,n,r.set)}return 
t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in 
n)f(n,r)&&Object.defineProperty(t,r,n[r]);return 
t}),Object.seal||(Object.seal=function(t){return 
t}),Object.freeze||(Object.freeze=function(t){return 
t});try{Object.freeze(function(){})}catch(k){Object.freeze=function(t){return 
function(n){return typeof 
n=="function"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return
 
t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)thr
 ow new TypeError;var n="";while(f(t,n))n+="?";t[n]=!0;var r=f(t,n);return 
delete t[n],r});if(!Object.keys){var 
L=!0,A=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],O=A.length;for(var
 M in{toString:null})L=!1;Object.keys=function I(e){if(typeof 
e!="object"&&typeof e!="function"||e===null)throw new TypeError("Object.keys 
called on a non-object");var I=[];for(var t in e)f(e,t)&&I.push(t);if(L)for(var 
n=0,r=O;n<r;n++){var i=A[n];f(e,i)&&I.push(i)}return 
I}}Date.now||(Date.now=function(){return(new Date).getTime()});var _="   
\n\f\r 
\u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff";if(!String.prototype.trim||_.trim()){_="["+_+"]";var
 D=new RegExp("^"+_+_+"*"),P=new 
RegExp(_+_+"*$");String.prototype.trim=function(){return 
String(this).replace(D,"").replace(P,"")}}var F=function(e){if(e==null)throw 
new TypeError("can't convert "+e+" to object");return Objec
 
t(e)}}),ace.define("ace/lib/fixoldbrowsers",["require","exports","module","ace/lib/regexp","ace/lib/es5-shim"],function(e,t,n){"use
 
strict";e("./regexp"),e("./es5-shim")}),ace.define("ace/lib/dom",["require","exports","module"],function(e,t,n){"use
 strict";var 
r="http://www.w3.org/1999/xhtml";t.getDocumentHead=function(e){return 
e||(e=document),e.head||e.getElementsByTagName("head")[0]||e.documentElement},t.createElement=function(e,t){return
 
document.createElementNS?document.createElementNS(t||r,e):document.createElement(e)},t.hasCssClass=function(e,t){var
 n=(e.className+"").split(/\s+/g);return 
n.indexOf(t)!==-1},t.addCssClass=function(e,n){t.hasCssClass(e,n)||(e.className+="
 "+n)},t.removeCssClass=function(e,t){var 
n=e.className.split(/\s+/g);for(;;){var 
r=n.indexOf(t);if(r==-1)break;n.splice(r,1)}e.className=n.join(" 
")},t.toggleCssClass=function(e,t){var 
n=e.className.split(/\s+/g),r=!0;for(;;){var 
i=n.indexOf(t);if(i==-1)break;r=!1,n.splice(i,1)}return 
r&&n.push(t),e.className=
 n.join(" 
"),r},t.setCssClass=function(e,n,r){r?t.addCssClass(e,n):t.removeCssClass(e,n)},t.hasCssString=function(e,t){var
 
n=0,r;t=t||document;if(t.createStyleSheet&&(r=t.styleSheets)){while(n<r.length)if(r[n++].owningElement.id===e)return!0}else
 
if(r=t.getElementsByTagName("style"))while(n<r.length)if(r[n++].id===e)return!0;return!1},t.importCssString=function(n,r,i){i=i||document;if(r&&t.hasCssString(r,i))return
 null;var s;r&&(n+="\n/*# sourceURL=ace/css/"+r+" 
*/"),i.createStyleSheet?(s=i.createStyleSheet(),s.cssText=n,r&&(s.owningElement.id=r)):(s=t.createElement("style"),s.appendChild(i.createTextNode(n)),r&&(s.id=r),t.getDocumentHead(i).appendChild(s))},t.importCssStylsheet=function(e,n){if(n.createStyleSheet)n.createStyleSheet(e);else{var
 
r=t.createElement("link");r.rel="stylesheet",r.href=e,t.getDocumentHead(n).appendChild(r)}},t.getInnerWidth=function(e){return
 
parseInt(t.computedStyle(e,"paddingLeft"),10)+parseInt(t.computedStyle(e,"paddingRight"),10)+e.clientWidth},t.getInn
 erHeight=function(e){return 
parseInt(t.computedStyle(e,"paddingTop"),10)+parseInt(t.computedStyle(e,"paddingBottom"),10)+e.clientHeight},t.scrollbarWidth=function(e){var
 
n=t.createElement("ace_inner");n.style.width="100%",n.style.minWidth="0px",n.style.height="200px",n.style.display="block";var
 
r=t.createElement("ace_outer"),i=r.style;i.position="absolute",i.left="-10000px",i.overflow="hidden",i.width="200px",i.minWidth="0px",i.height="150px",i.display="block",r.appendChild(n);var
 s=e.documentElement;s.appendChild(r);var 
o=n.offsetWidth;i.overflow="scroll";var u=n.offsetWidth;return 
o==u&&(u=r.clientWidth),s.removeChild(r),o-u};if(typeof 
document=="undefined"){t.importCssString=function(){};return}window.pageYOffset!==undefined?(t.getPageScrollTop=function(){return
 window.pageYOffset},t.getPageScrollLeft=function(){return 
window.pageXOffset}):(t.getPageScrollTop=function(){return 
document.body.scrollTop},t.getPageScrollLeft=function(){return 
document.body.scrollLeft}),window.getComp
 utedStyle?t.computedStyle=function(e,t){return 
t?(window.getComputedStyle(e,"")||{})[t]||"":window.getComputedStyle(e,"")||{}}:t.computedStyle=function(e,t){return
 t?e.currentStyle[t]:e.currentStyle},t.setInnerHtml=function(e,t){var 
n=e.cloneNode(!1);return 
n.innerHTML=t,e.parentNode.replaceChild(n,e),n},"textContent"in 
document.documentElement?(t.setInnerText=function(e,t){e.textContent=t},t.getInnerText=function(e){return
 
e.textContent}):(t.setInnerText=function(e,t){e.innerText=t},t.getInnerText=function(e){return
 e.innerText}),t.getParentWindow=function(e){return 
e.defaultView||e.parentWindow}}),ace.define("ace/lib/oop",["require","exports","module"],function(e,t,n){"use
 
strict";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var
 n in t)e[n]=t[n];return 
e},t.implement=function(e,n){t.mixin(e,n)}}),ace.define("ace/lib/keys",["require","exports","module","ace/lib
 /fixoldbrowsers","ace/lib/oop"],function(e,t,n){"use 
strict";e("./fixoldbrowsers");var r=e("./oop"),i=function(){var 
e={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",8
 
5:"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:"*"}},t,n;for(n
 in 
e.FUNCTION_KEYS)t=e.FUNCTION_KEYS[n].toLowerCase(),e[t]=parseInt(n,10);for(n in 
e.PRINTABLE_KEYS)t=e.PRINTABLE_KEYS[n].toLowerCase(),e[t]=parseInt(n,10);return 
r.mixin(e,e.MODIFIER_KEYS),r.mixin(e,e.PRINTABLE_KEYS),r.mixin(e,e.FUNCTION_KEYS),e.enter=e["return"],e.escape=e.esc,e.del=e["delete"],e[173]="-",function(){var
 t=["cmd","ctrl","alt","shift"];for(var 
n=Math.pow(2,t.length);n--;)e.KEY_MODS[n]=t.filter(function(t){return 
n&e.KEY_MODS[t]}).join("-")+"-"}(),e.KEY_MODS[0]="",e.KEY_MODS[-1]="input-",e}();r.mixin(t,i),t.keyCodeToString=function(e){var
 t=i[e];return typeof 
t!="string"&&(t=String.fromCharCode(e)),t.toLowerCase()}}),ace.define("ace/lib/useragent",["require","exports","module"],function(e,t,n){"use
 
strict";t.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},t.getOS=function(){return
 t.isMac?
 t.OS.MAC:t.isLinux?t.OS.LINUX:t.OS.WINDOWS};if(typeof 
navigator!="object")return;var 
r=(navigator.platform.match(/mac|win|linux/i)||["other"])[0].toLowerCase(),i=navigator.userAgent;t.isWin=r=="win",t.isMac=r=="mac",t.isLinux=r=="linux",t.isIE=navigator.appName=="Microsoft
 Internet 
Explorer"||navigator.appName.indexOf("MSAppHost")>=0?parseFloat((i.match(/(?:MSIE
 
|Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((i.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=(window.Controllers||window.controllers)&&window.navigator.product==="Gecko",t.isOldGecko=t.isGecko&&parseInt((i.match(/rv:(\d+)/)||[])[1],10)<4,t.isOpera=window.opera&&Object.prototype.toString.call(window.opera)=="[object
 
Opera]",t.isWebKit=parseFloat(i.split("WebKit/")[1])||undefined,t.isChrome=parseFloat(i.split("
 
Chrome/")[1])||undefined,t.isAIR=i.indexOf("AdobeAIR")>=0,t.isIPad=i.indexOf("iPad")>=0,t.isChromeOS=i.indexOf("
 CrOS ")>=
 
0,t.isIOS=/iPad|iPhone|iPod/.test(i)&&!window.MSStream,t.isIOS&&(t.isMac=!0)}),ace.define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,n){"use
 strict";function a(e,t,n){var 
a=u(t);if(!i.isMac&&s){t.getModifierState&&(t.getModifierState("OS")||t.getModifierState("Win"))&&(a|=8);if(s.altGr){if((3&a)==3)return;s.altGr=0}if(n===18||n===17){var
 f="location"in 
t?t.location:t.keyLocation;if(n===17&&f===1)s[n]==1&&(o=t.timeStamp);else 
if(n===18&&a===3&&f===2){var l=t.timeStamp-o;l<50&&(s.altGr=!0)}}}n in 
r.MODIFIER_KEYS&&(n=-1),a&8&&n>=91&&n<=93&&(n=-1);if(!a&&n===13){var 
f="location"in 
t?t.location:t.keyLocation;if(f===3){e(t,a,-n);if(t.defaultPrevented)return}}if(i.isChromeOS&&a&8){e(t,a,n);if(t.defaultPrevented)return;a&=-9}return!!a||n
 in r.FUNCTION_KEYS||n in r.PRINTABLE_KEYS?e(t,a,n):!1}function 
f(){s=Object.create(null)}var 
r=e("./keys"),i=e("./useragent"),s=null,o=0;t.addListener=function(e,t,n){if(e.addEventListener)return
 e.addEven
 tListener(t,n,!1);if(e.attachEvent){var 
r=function(){n.call(e,window.event)};n._wrapper=r,e.attachEvent("on"+t,r)}},t.removeListener=function(e,t,n){if(e.removeEventListener)return
 
e.removeEventListener(t,n,!1);e.detachEvent&&e.detachEvent("on"+t,n._wrapper||n)},t.stopEvent=function(e){return
 
t.stopPropagation(e),t.preventDefault(e),!1},t.stopPropagation=function(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0},t.preventDefault=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1},t.getButton=function(e){return
 
e.type=="dblclick"?0:e.type=="contextmenu"||i.isMac&&e.ctrlKey&&!e.altKey&&!e.shiftKey?2:e.preventDefault?e.button:{1:0,2:2,4:1}[e.button]},t.capture=function(e,n,r){function
 
i(e){n&&n(e),r&&r(e),t.removeListener(document,"mousemove",n,!0),t.removeListener(document,"mouseup",i,!0),t.removeListener(document,"dragstart",i,!0)}return
 
t.addListener(document,"mousemove",n,!0),t.addListener(document,"mouseup",i,!0),t.addListener(document,"dragstart",i,!0),i},
 t.addTouchMoveListener=function(e,n){if("ontouchmove"in e){var 
r,i;t.addListener(e,"touchstart",function(e){var 
t=e.changedTouches[0];r=t.clientX,i=t.clientY}),t.addListener(e,"touchmove",function(e){var
 
t=1,s=e.changedTouches[0];e.wheelX=-(s.clientX-r)/t,e.wheelY=-(s.clientY-i)/t,r=s.clientX,i=s.clientY,n(e)})}},t.addMouseWheelListener=function(e,n){"onmousewheel"in
 e?t.addListener(e,"mousewheel",function(e){var 
t=8;e.wheelDeltaX!==undefined?(e.wheelX=-e.wheelDeltaX/t,e.wheelY=-e.wheelDeltaY/t):(e.wheelX=0,e.wheelY=-e.wheelDelta/t),n(e)}):"onwheel"in
 e?t.addListener(e,"wheel",function(e){var t=.35;switch(e.deltaMode){case 
e.DOM_DELTA_PIXEL:e.wheelX=e.deltaX*t||0,e.wheelY=e.deltaY*t||0;break;case 
e.DOM_DELTA_LINE:case 
e.DOM_DELTA_PAGE:e.wheelX=(e.deltaX||0)*5,e.wheelY=(e.deltaY||0)*5}n(e)}):t.addListener(e,"DOMMouseScroll",function(e){e.axis&&e.axis==e.HORIZONTAL_AXIS?(e.wheelX=(e.detail||0)*5,e.wheelY=0):(e.wheelX=0,e.wheelY=(e.detail||0)*5),n(e)})},t.addMultiMouseDownListener=func
 tion(e,n,r,s){function 
c(e){t.getButton(e)!==0?o=0:e.detail>1?(o++,o>4&&(o=1)):o=1;if(i.isIE){var 
c=Math.abs(e.clientX-u)>5||Math.abs(e.clientY-a)>5;if(!f||c)o=1;f&&clearTimeout(f),f=setTimeout(function(){f=null},n[o-1]||600),o==1&&(u=e.clientX,a=e.clientY)}e._clicks=o,r[s]("mousedown",e);if(o>4)o=0;else
 if(o>1)return r[s](l[o],e)}function 
h(e){o=2,f&&clearTimeout(f),f=setTimeout(function(){f=null},n[o-1]||600),r[s]("mousedown",e),r[s](l[o],e)}var
 
o=0,u,a,f,l={2:"dblclick",3:"tripleclick",4:"quadclick"};Array.isArray(e)||(e=[e]),e.forEach(function(e){t.addListener(e,"mousedown",c),i.isOldIE&&t.addListener(e,"dblclick",h)})};var
 u=!i.isMac||!i.isOpera||"KeyboardEvent"in window?function(e){return 
0|(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0)}:function(e){return
 
0|(e.metaKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.ctrlKey?8:0)};t.getModifierString=function(e){return
 r.KEY_MODS[u(e)]},t.addCommandKeyListener=function(e,n){var 
r=t.addListener;if(i.isOldGecko||i.isOper
 a&&!("KeyboardEvent"in window)){var 
o=null;r(e,"keydown",function(e){o=e.keyCode}),r(e,"keypress",function(e){return
 a(n,e,o)})}else{var 
u=null;r(e,"keydown",function(e){s[e.keyCode]=(s[e.keyCode]||0)+1;var 
t=a(n,e,e.keyCode);return 
u=e.defaultPrevented,t}),r(e,"keypress",function(e){u&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),u=null)}),r(e,"keyup",function(e){s[e.keyCode]=null}),s||(f(),r(window,"focus",f))}};if(typeof
 window=="object"&&window.postMessage&&!i.isOldIE){var 
l=1;t.nextTick=function(e,n){n=n||window;var 
r="zero-timeout-message-"+l;t.addListener(n,"message",function 
i(s){s.data==r&&(t.stopPropagation(s),t.removeListener(n,"message",i),e())}),n.postMessage(r,"*")}}t.nextFrame=typeof
 
window=="object"&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}}
 
),ace.define("ace/lib/lang",["require","exports","module"],function(e,t,n){"use 
strict";t.last=function(e){return 
e[e.length-1]},t.stringReverse=function(e){return 
e.split("").reverse().join("")},t.stringRepeat=function(e,t){var 
n="";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var 
r=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return 
e.replace(r,"")},t.stringTrimRight=function(e){return 
e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in 
e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var 
n=0,r=e.length;n<r;n++)e[n]&&typeof 
e[n]=="object"?t[n]=this.copyObject(e[n]):t[n]=e[n];return 
t},t.deepCopy=function s(e){if(typeof e!="object"||!e)return e;var 
t;if(Array.isArray(e)){t=[];for(var n=0;n<e.length;n++)t[n]=s(e[n]);return 
t}if(Object.prototype.toString.call(e)!=="[object Object]")return 
e;t={};for(var n in e)t[n]=s(e[n]);return t},t.arrayToMap=function(e){var 
t={};for(var n=0;n<e.length;n++)t[e[n]]=1;return t},t.createMap=function(e){var 
t=Object.create(
 null);for(var n in e)t[n]=e[n];return t},t.arrayRemove=function(e,t){for(var 
n=0;n<=e.length;n++)t===e[n]&&e.splice(n,1)},t.escapeRegExp=function(e){return 
e.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1")},t.escapeHTML=function(e){return 
e.replace(/&/g,"&#38;").replace(/"/g,"&#34;").replace(/'/g,"&#39;").replace(/</g,"&#60;")},t.getMatchOffsets=function(e,t){var
 n=[];return 
e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var
 t=null,n=function(){t=null,e()},r=function(e){return 
r.cancel(),t=setTimeout(n,e||0),r};return r.schedule=r,r.call=function(){return 
this.cancel(),e(),r},r.cancel=function(){return 
clearTimeout(t),t=null,r},r.isPending=function(){return 
t},r},t.delayedCall=function(e,t){var 
n=null,r=function(){n=null,e()},i=function(e){n==null&&(n=setTimeout(r,e||t))};return
 
i.delay=function(e){n&&clearTimeout(n),n=setTimeout(r,e||t)},i.schedule=i,i.call=function(){this.cancel(),e()},i.cancel=function(){n&&clearTi
 meout(n),n=null},i.isPending=function(){return 
n},i}}),ace.define("ace/keyboard/textinput_ios",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/lib/keys"],function(e,t,n){"use
 strict";var 
r=e("../lib/event"),i=e("../lib/useragent"),s=e("../lib/dom"),o=e("../lib/lang"),u=e("../lib/keys"),a=u.KEY_MODS,f=i.isChrome<18,l=i.isIE,c=function(e,t){function
 x(e){if(m)return;m=!0;if(k)t=0,n=e?0:c.value.length-1;else var 
t=4,n=5;try{c.setSelectionRange(t,n)}catch(r){}m=!1}function 
T(){if(m)return;c.value=h,i.isWebKit&&S.schedule()}function 
R(){clearTimeout(q),q=setTimeout(function(){g&&(c.style.cssText=g,g=""),t.renderer.$keepTextAreaAtCursor==null&&(t.renderer.$keepTextAreaAtCursor=!0,t.renderer.$moveTextAreaToCursor())},0)}var
 n=this,c=s.createElement("textarea");c.className=i.isIOS?"ace_text-input 
ace_text-input-ios":"ace_text-input",i.isTouchPad&&c.setAttribute("x-palm-disable-auto-cap",!0),c.setAttribute("wrap","off"),c.setAttribute("auto
 
correct","off"),c.setAttribute("autocapitalize","off"),c.setAttribute("spellcheck",!1),c.style.opacity="0",e.insertBefore(c,e.firstChild);var
 h="\n aaaa a\n",p=!1,d=!1,v=!1,m=!1,g="",y=!0;try{var 
b=document.activeElement===c}catch(w){}r.addListener(c,"blur",function(e){t.onBlur(e),b=!1}),r.addListener(c,"focus",function(e){b=!0,t.onFocus(e),x()}),this.focus=function(){if(g)return
 
c.focus();c.style.position="fixed",c.focus()},this.blur=function(){c.blur()},this.isFocused=function(){return
 b};var 
E=o.delayedCall(function(){b&&x(y)}),S=o.delayedCall(function(){m||(c.value=h,b&&x())});i.isWebKit||t.addEventListener("changeSelection",function(){t.selection.isEmpty()!=y&&(y=!y,E.schedule())}),T(),b&&t.onFocus();var
 N=function(e){return 
e.selectionStart===0&&e.selectionEnd===e.value.length},C=function(e){N(c)?(t.selectAll(),x()):k&&x(t.selection.isEmpty())},k=null;this.setInputHandler=function(e){k=e},this.getInputHandler=function(){return
 k};var L=!1,A=function(e){if(c.selectionStart===4&
 
&c.selectionEnd===5)return;k&&(e=k(e),k=null),v?(x(),e&&t.onPaste(e),v=!1):e==h.substr(0)&&c.selectionStart===4?L?t.execCommand("del",{source:"ace"}):t.execCommand("backspace",{source:"ace"}):p||(e.substring(0,9)==h&&e.length>h.length?e=e.substr(9):e.substr(0,4)==h.substr(0,4)?e=e.substr(4,e.length-h.length+1):e.charAt(e.length-1)==h.charAt(0)&&(e=e.slice(0,-1)),e!=h.charAt(0)&&e.charAt(e.length-1)==h.charAt(0)&&(e=e.slice(0,-1)),e&&t.onTextInput(e)),p&&(p=!1),L&&(L=!1)},O=function(e){if(m)return;var
 t=c.value;A(t),T()},M=function(e,t,n){var 
r=e.clipboardData||window.clipboardData;if(!r||f)return;var 
i=l||n?"Text":"text/plain";try{return 
t?r.setData(i,t)!==!1:r.getData(i)}catch(e){if(!n)return 
M(e,t,!0)}},_=function(e,n){var s=t.getCopyText();if(!s)return 
r.preventDefault(e);M(e,s)?(i.isIOS&&(d=n,c.value="\n aa"+s+"a 
a\n",c.setSelectionRange(4,4+s.length),p={value:s}),n?t.onCut():t.onCopy(),i.isIOS||r.preventDefault(e)):(p=!0,c.value=s,c.select(),setTimeout(function(){p=!1,T(),x(),n
 
?t.onCut():t.onCopy()}))},D=function(e){_(e,!0)},P=function(e){_(e,!1)},H=function(e){var
 n=M(e);typeof 
n=="string"?(n&&t.onPaste(n,e),i.isIE&&setTimeout(x),r.preventDefault(e)):(c.value="",v=!0)};r.addCommandKeyListener(c,t.onCommandKey.bind(t)),r.addListener(c,"select",C),r.addListener(c,"input",O),r.addListener(c,"cut",D),r.addListener(c,"copy",P),r.addListener(c,"paste",H);var
 
B=function(e){if(m||!t.onCompositionStart||t.$readOnly)return;m={},m.canUndo=t.session.$undoManager,t.onCompositionStart(),setTimeout(j,0),t.on("mousedown",F),m.canUndo&&!t.selection.isEmpty()&&(t.insert(""),t.session.markUndoGroup(),t.selection.clearSelection()),t.session.markUndoGroup()},j=function(){if(!m||!t.onCompositionUpdate||t.$readOnly)return;var
 
e=c.value.replace(/\x01/g,"");if(m.lastValue===e)return;t.onCompositionUpdate(e),m.lastValue&&t.undo(),m.canUndo&&(m.lastValue=e);if(m.lastValue){var
 
n=t.selection.getRange();t.insert(m.lastValue),t.session.markUndoGroup(),m.range=t.selection.getRange(),t
 
.selection.setRange(n),t.selection.clearSelection()}},F=function(e){if(!t.onCompositionEnd||t.$readOnly)return;var
 n=m;m=!1;var r=setTimeout(function(){r=null;var 
e=c.value.replace(/\x01/g,"");if(m)return;e==n.lastValue?T():!n.lastValue&&e&&(T(),A(e))});k=function(i){return
 
r&&clearTimeout(r),i=i.replace(/\x01/g,""),i==n.lastValue?"":(n.lastValue&&r&&t.undo(),i)},t.onCompositionEnd(),t.removeListener("mousedown",F),e.type=="compositionend"&&n.range&&t.selection.setRange(n.range);var
 
s=!!i.isChrome&&i.isChrome>=53||!!i.isWebKit&&i.isWebKit>=603;s&&O()},I=o.delayedCall(j,50);r.addListener(c,"compositionstart",B),i.isGecko?r.addListener(c,"text",function(){I.schedule()}):(r.addListener(c,"keyup",function(){I.schedule()}),r.addListener(c,"keydown",function(){I.schedule()})),r.addListener(c,"compositionend",F),this.getElement=function(){return
 
c},this.setReadOnly=function(e){c.readOnly=e},this.onContextMenu=function(e){L=!0,x(t.selection.isEmpty()),t._emit("nativecontextmenu",{target:t,d
 
omEvent:e}),this.moveToMouse(e,!0)},this.moveToMouse=function(e,n){g||(g=c.style.cssText),c.style.cssText=(n?"z-index:100000;":"")+"height:"+c.style.height+";"+(i.isIE?"opacity:0.1;":"");var
 
o=t.container.getBoundingClientRect(),u=s.computedStyle(t.container),a=o.top+(parseInt(u.borderTopWidth)||0),f=o.left+(parseInt(o.borderLeftWidth)||0),l=o.bottom-a-c.clientHeight-2,h=function(e){c.style.left=e.clientX-f-2+"px",c.style.top=Math.min(e.clientY-a-2,l)+"px"};h(e);if(e.type!="mousedown")return;t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=null),clearTimeout(q),i.isWin&&r.capture(t.container,h,R)},this.onContextMenuClose=R;var
 
q,U=function(e){t.textInput.onContextMenu(e),R()};r.addListener(c,"mouseup",U),r.addListener(c,"mousedown",function(e){e.preventDefault(),R()}),r.addListener(t.renderer.scroller,"contextmenu",U),r.addListener(c,"contextmenu",U);if(i.isIOS){var
 
z=null,W=!1;e.addEventListener("keydown",function(e){z&&clearTimeout(z),W=!0}),e.addEventListener("
 keyup",function(e){z=setTimeout(function(){W=!1},100)});var 
X=function(e){if(document.activeElement!==c)return;if(W)return;if(d)return 
setTimeout(function(){d=!1},100);var 
n=c.selectionStart,r=c.selectionEnd;c.setSelectionRange(4,5);if(n==r)switch(n){case
 0:t.onCommandKey(null,0,u.up);break;case 
1:t.onCommandKey(null,0,u.home);break;case 
2:t.onCommandKey(null,a.option,u.left);break;case 
4:t.onCommandKey(null,0,u.left);break;case 
5:t.onCommandKey(null,0,u.right);break;case 
7:t.onCommandKey(null,a.option,u.right);break;case 
8:t.onCommandKey(null,0,u.end);break;case 
9:t.onCommandKey(null,0,u.down)}else{switch(r){case 
6:t.onCommandKey(null,a.shift,u.right);break;case 
7:t.onCommandKey(null,a.shift|a.option,u.right);break;case 
8:t.onCommandKey(null,a.shift,u.end);break;case 
9:t.onCommandKey(null,a.shift,u.down)}switch(n){case 
0:t.onCommandKey(null,a.shift,u.up);break;case 
1:t.onCommandKey(null,a.shift,u.home);break;case 
2:t.onCommandKey(null,a.shift|a.option,u.left);break;case 3:t.onComma
 
ndKey(null,a.shift,u.left)}}};document.addEventListener("selectionchange",X),t.on("destroy",function(){document.removeEventListener("selectionchange",X)})}};t.TextInput=c}),ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/keyboard/textinput_ios"],function(e,t,n){"use
 strict";var 
r=e("../lib/event"),i=e("../lib/useragent"),s=e("../lib/dom"),o=e("../lib/lang"),u=i.isChrome<18,a=i.isIE,f=e("./textinput_ios").TextInput,l=function(e,t){function
 w(e){if(p)return;p=!0;if(T)t=0,r=e?0:n.value.length-1;else var 
t=e?2:1,r=2;try{n.setSelectionRange(t,r)}catch(i){}p=!1}function 
E(){if(p)return;n.value=l,i.isWebKit&&b.schedule()}function 
F(){clearTimeout(j),j=setTimeout(function(){d&&(n.style.cssText=d,d=""),t.renderer.$keepTextAreaAtCursor==null&&(t.renderer.$keepTextAreaAtCursor=!0,t.renderer.$moveTextAreaToCursor())},0)}if(i.isIOS)return
 f.call(this,e,t);var n=s.createElement("textarea");n.className="ace_tex
 
t-input",n.setAttribute("wrap","off"),n.setAttribute("autocorrect","off"),n.setAttribute("autocapitalize","off"),n.setAttribute("spellcheck",!1),n.style.opacity="0",e.insertBefore(n,e.firstChild);var
 l="\u2028\u2028",c=!1,h=!1,p=!1,d="",v=!0;try{var 
m=document.activeElement===n}catch(g){}r.addListener(n,"blur",function(e){t.onBlur(e),m=!1}),r.addListener(n,"focus",function(e){m=!0,t.onFocus(e),w()}),this.focus=function(){if(d)return
 n.focus();var 
e=n.style.top;n.style.position="fixed",n.style.top="0px",n.focus(),setTimeout(function(){n.style.position="",n.style.top=="0px"&&(n.style.top=e)},0)},this.blur=function(){n.blur()},this.isFocused=function(){return
 m};var 
y=o.delayedCall(function(){m&&w(v)}),b=o.delayedCall(function(){p||(n.value=l,m&&w())});i.isWebKit||t.addEventListener("changeSelection",function(){t.selection.isEmpty()!=v&&(v=!v,y.schedule())}),E(),m&&t.onFocus();var
 S=function(e){return 
e.selectionStart===0&&e.selectionEnd===e.value.length},x=function(e){c?c=!1:S(n)?(t.s
 
electAll(),w()):T&&w(t.selection.isEmpty())},T=null;this.setInputHandler=function(e){T=e},this.getInputHandler=function(){return
 T};var 
N=!1,C=function(e){T&&(e=T(e),T=null),h?(w(),e&&t.onPaste(e),h=!1):e==l.charAt(0)?N?t.execCommand("del",{source:"ace"}):t.execCommand("backspace",{source:"ace"}):(e.substring(0,2)==l?e=e.substr(2):e.charAt(0)==l.charAt(0)?e=e.substr(1):e.charAt(e.length-1)==l.charAt(0)&&(e=e.slice(0,-1)),e.charAt(e.length-1)==l.charAt(0)&&(e=e.slice(0,-1)),e&&t.onTextInput(e)),N&&(N=!1)},k=function(e){if(p)return;var
 t=n.value;C(t),E()},L=function(e,t,n){var 
r=e.clipboardData||window.clipboardData;if(!r||u)return;var 
i=a||n?"Text":"text/plain";try{return 
t?r.setData(i,t)!==!1:r.getData(i)}catch(e){if(!n)return 
L(e,t,!0)}},A=function(e,i){var s=t.getCopyText();if(!s)return 
r.preventDefault(e);L(e,s)?(i?t.onCut():t.onCopy(),r.preventDefault(e)):(c=!0,n.value=s,n.select(),setTimeout(function(){c=!1,E(),w(),i?t.onCut():t.onCopy()}))},O=function(e){A(e,!0)},M=function(e)
 {A(e,!1)},_=function(e){var s=L(e);typeof 
s=="string"?(s&&t.onPaste(s,e),i.isIE&&setTimeout(w),r.preventDefault(e)):(n.value="",h=!0)};r.addCommandKeyListener(n,t.onCommandKey.bind(t)),r.addListener(n,"select",x),r.addListener(n,"input",k),r.addListener(n,"cut",O),r.addListener(n,"copy",M),r.addListener(n,"paste",_),(!("oncut"in
 n)||!("oncopy"in n)||!("onpaste"in 
n))&&r.addListener(e,"keydown",function(e){if(i.isMac&&!e.metaKey||!e.ctrlKey)return;switch(e.keyCode){case
 67:M(e);break;case 86:_(e);break;case 88:O(e)}});var 
D=function(e){if(p||!t.onCompositionStart||t.$readOnly)return;p={},p.canUndo=t.session.$undoManager,t.onCompositionStart(),setTimeout(P,0),t.on("mousedown",H),p.canUndo&&!t.selection.isEmpty()&&(t.insert(""),t.session.markUndoGroup(),t.selection.clearSelection()),t.session.markUndoGroup()},P=function(){if(!p||!t.onCompositionUpdate||t.$readOnly)return;var
 
e=n.value.replace(/\u2028/g,"");if(p.lastValue===e)return;t.onCompositionUpdate(e),p.lastValue&&t.undo(),p.canUn
 do&&(p.lastValue=e);if(p.lastValue){var 
r=t.selection.getRange();t.insert(p.lastValue),t.session.markUndoGroup(),p.range=t.selection.getRange(),t.selection.setRange(r),t.selection.clearSelection()}},H=function(e){if(!t.onCompositionEnd||t.$readOnly)return;var
 r=p;p=!1;var s=setTimeout(function(){s=null;var 
e=n.value.replace(/\u2028/g,"");if(p)return;e==r.lastValue?E():!r.lastValue&&e&&(E(),C(e))});T=function(n){return
 
s&&clearTimeout(s),n=n.replace(/\u2028/g,""),n==r.lastValue?"":(r.lastValue&&s&&t.undo(),n)},t.onCompositionEnd(),t.removeListener("mousedown",H),e.type=="compositionend"&&r.range&&t.selection.setRange(r.range);var
 
o=!!i.isChrome&&i.isChrome>=53||!!i.isWebKit&&i.isWebKit>=603;o&&k()},B=o.delayedCall(P,50);r.addListener(n,"compositionstart",D),i.isGecko?r.addListener(n,"text",function(){B.schedule()}):(r.addListener(n,"keyup",function(){B.schedule()}),r.addListener(n,"keydown",function(){B.schedule()})),r.addListener(n,"compositionend",H),this.getElement=function(){retu
 rn 
n},this.setReadOnly=function(e){n.readOnly=e},this.onContextMenu=function(e){N=!0,w(t.selection.isEmpty()),t._emit("nativecontextmenu",{target:t,domEvent:e}),this.moveToMouse(e,!0)},this.moveToMouse=function(e,o){d||(d=n.style.cssText),n.style.cssText=(o?"z-index:100000;":"")+"height:"+n.style.height+";"+(i.isIE?"opacity:0.1;":"");var
 
u=t.container.getBoundingClientRect(),a=s.computedStyle(t.container),f=u.top+(parseInt(a.borderTopWidth)||0),l=u.left+(parseInt(u.borderLeftWidth)||0),c=u.bottom-f-n.clientHeight-2,h=function(e){n.style.left=e.clientX-l-2+"px",n.style.top=Math.min(e.clientY-f-2,c)+"px"};h(e);if(e.type!="mousedown")return;t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=null),clearTimeout(j),i.isWin&&r.capture(t.container,h,F)},this.onContextMenuClose=F;var
 
j,I=function(e){t.textInput.onContextMenu(e),F()};r.addListener(n,"mouseup",I),r.addListener(n,"mousedown",function(e){e.preventDefault(),F()}),r.addListener(t.renderer.scroller,"contextmenu",I)
 
,r.addListener(n,"contextmenu",I)};t.TextInput=l}),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,n){"use
 strict";function u(e){e.$clickSelection=null;var 
t=e.editor;t.setDefaultHandler("mousedown",this.onMouseDown.bind(e)),t.setDefaultHandler("dblclick",this.onDoubleClick.bind(e)),t.setDefaultHandler("tripleclick",this.onTripleClick.bind(e)),t.setDefaultHandler("quadclick",this.onQuadClick.bind(e)),t.setDefaultHandler("mousewheel",this.onMouseWheel.bind(e)),t.setDefaultHandler("touchmove",this.onTouchMove.bind(e));var
 
n=["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"];n.forEach(function(t){e[t]=this[t]},this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}function
 a(e,t,n,r){return Math.sqrt(Math.pow(n-e,2)+Math.pow(r-t,2))}function 
f(e,t){if(e
 .start.row==e.end.row)var n=2*t.column-e.start.column-e.end.column;else 
if(e.start.row==e.end.row-1&&!e.start.column&&!e.end.column)var 
n=t.column-4;else var n=2*t.row-e.start.row-e.end.row;return 
n<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}var 
r=e("../lib/dom"),i=e("../lib/event"),s=e("../lib/useragent"),o=0;(function(){this.onMouseDown=function(e){var
 t=e.inSelection(),n=e.getDocumentPosition();this.mousedownEvent=e;var 
r=this.editor,i=e.getButton();if(i!==0){var 
o=r.getSelectionRange(),u=o.isEmpty();r.$blockScrolling++,(u||i==1)&&r.selection.moveToPosition(n),r.$blockScrolling--,i==2&&(r.textInput.onContextMenu(e.domEvent),s.isMozilla||e.preventDefault());return}this.mousedownEvent.time=Date.now();if(t&&!r.isFocused()){r.focus();if(this.$focusTimout&&!this.$clickSelection&&!r.inMultiSelectMode){this.setState("focusWait"),this.captureMouse(e);return}}return
 
this.captureMouse(e),this.startSelect(n,e.domEvent._clicks>1),e.preventDefault()},this.startSelect=functi
 on(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var 
n=this.editor;n.$blockScrolling++,this.mousedownEvent.getShiftKey()?n.selection.selectToPosition(e):t||n.selection.moveToPosition(e),t||this.select(),n.renderer.scroller.setCapture&&n.renderer.scroller.setCapture(),n.setStyle("ace_selecting"),this.setState("select"),n.$blockScrolling--},this.select=function(){var
 
e,t=this.editor,n=t.renderer.screenToTextCoordinates(this.x,this.y);t.$blockScrolling++;if(this.$clickSelection){var
 
r=this.$clickSelection.comparePoint(n);if(r==-1)e=this.$clickSelection.end;else 
if(r==1)e=this.$clickSelection.start;else{var 
i=f(this.$clickSelection,n);n=i.cursor,e=i.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(n),t.$blockScrolling--,t.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(e){var
 
t,n=this.editor,r=n.renderer.screenToTextCoordinates(this.x,this.y),i=n.selection[e](r.row,r.column);n.$blockScrolling++;if(this.$clickSele
 ction){var 
s=this.$clickSelection.comparePoint(i.start),o=this.$clickSelection.comparePoint(i.end);if(s==-1&&o<=0){t=this.$clickSelection.end;if(i.end.row!=r.row||i.end.column!=r.column)r=i.start}else
 
if(o==1&&s>=0){t=this.$clickSelection.start;if(i.start.row!=r.row||i.start.column!=r.column)r=i.end}else
 if(s==-1&&o==1)r=i.end,t=i.start;else{var 
u=f(this.$clickSelection,r);r=u.cursor,t=u.anchor}n.selection.setSelectionAnchor(t.row,t.column)}n.selection.selectToPosition(r),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=a(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),t=Date.now();(e>o||t-this.mousedownEvent.time>this.$focusTimout)&&this.startSelect(this.mousedownEvent.getDocumentPosition()
 )},this.onDoubleClick=function(e){var 
t=e.getDocumentPosition(),n=this.editor,r=n.session,i=r.getBracketRange(t);i?(i.isEmpty()&&(i.start.column--,i.end.column++),this.setState("select")):(i=n.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=i,this.select()},this.onTripleClick=function(e){var
 t=e.getDocumentPosition(),n=this.editor;this.setState("selectByLines");var 
r=n.getSelectionRange();r.isMultiLine()&&r.contains(t.row,t.column)?(this.$clickSelection=n.selection.getLineRange(r.start.row),this.$clickSelection.end=n.selection.getLineRange(r.end.row).end):this.$clickSelection=n.selection.getLineRange(t.row),this.select()},this.onQuadClick=function(e){var
 
t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("selectAll")},this.onMouseWheel=function(e){if(e.getAccelKey())return;e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var
 t=e.domEvent.timeStamp,n=t-(this.$lastScrollTime||0),r=this.ed
 
itor,i=r.renderer.isScrollableBy(e.wheelX*e.speed,e.wheelY*e.speed);if(i||n<200)return
 
this.$lastScrollTime=t,r.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()},this.onTouchMove=function(e){var
 
t=e.domEvent.timeStamp,n=t-(this.$lastScrollTime||0),r=this.editor,i=r.renderer.isScrollableBy(e.wheelX*e.speed,e.wheelY*e.speed);if(i||n<200)return
 
this.$lastScrollTime=t,r.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()}}).call(u.prototype),t.DefaultHandlers=u}),ace.define("ace/tooltip",["require","exports","module","ace/lib/oop","ace/lib/dom"],function(e,t,n){"use
 strict";function s(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}var 
r=e("./lib/oop"),i=e("./lib/dom");(function(){this.$init=function(){return 
this.$element=i.createElement("div"),this.$element.className="ace_tooltip",this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},this.getElement=function(){return
 this.$element||this.$init()},this.setText=functi
 
on(e){i.setInnerText(this.getElement(),e)},this.setHtml=function(e){this.getElement().innerHTML=e},this.setPosition=function(e,t){this.getElement().style.left=e+"px",this.getElement().style.top=t+"px"},this.setClassName=function(e){i.addCssClass(this.getElement(),e)},this.show=function(e,t,n){e!=null&&this.setText(e),t!=null&&n!=null&&this.setPosition(t,n),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},this.hide=function(){this.isOpen&&(this.getElement().style.display="none",this.isOpen=!1)},this.getHeight=function(){return
 this.getElement().offsetHeight},this.getWidth=function(){return 
this.getElement().offsetWidth},this.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)}}).call(s.prototype),t.Tooltip=s}),ace.define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event","ace/tooltip"],function(e,t,n){"use
 strict";function u(e){fun
 ction l(){var r=u.getDocumentPosition().row,s=n.$annotations[r];if(!s)return 
c();var o=t.session.getLength();if(r==o){var 
a=t.renderer.pixelToScreenCoordinates(0,u.y).row,l=u.$pos;if(a>t.session.documentToScreenRow(l.row,l.column))return
 
c()}if(f==s)return;f=s.text.join("<br/>"),i.setHtml(f),i.show(),t._signal("showGutterTooltip",i),t.on("mousewheel",c);if(e.$tooltipFollowsMouse)h(u);else{var
 
p=u.domEvent.target,d=p.getBoundingClientRect(),v=i.getElement().style;v.left=d.right+"px",v.top=d.bottom+"px"}}function
 
c(){o&&(o=clearTimeout(o)),f&&(i.hide(),f=null,t._signal("hideGutterTooltip",i),t.removeEventListener("mousewheel",c))}function
 h(e){i.setPosition(e.x,e.y)}var t=e.editor,n=t.renderer.$gutterLayer,i=new 
a(t.container);e.editor.setDefaultHandler("guttermousedown",function(r){if(!t.isFocused()||r.getButton()!=0)return;var
 i=n.getRegion(r);if(i=="foldWidgets")return;var 
s=r.getDocumentPosition().row,o=t.session.selection;if(r.getShiftKey())o.selectTo(s,0);else{if(r.domEvent.deta
 il==2)return 
t.selectAll(),r.preventDefault();e.$clickSelection=t.selection.getLineRange(s)}return
 e.setState("selectByLines"),e.captureMouse(r),r.preventDefault()});var 
o,u,f;e.editor.setDefaultHandler("guttermousemove",function(t){var 
n=t.domEvent.target||t.domEvent.srcElement;if(r.hasCssClass(n,"ace_fold-widget"))return
 
c();f&&e.$tooltipFollowsMouse&&h(t),u=t;if(o)return;o=setTimeout(function(){o=null,u&&!e.isMousePressed?l():c()},50)}),s.addListener(t.renderer.$gutter,"mouseout",function(e){u=null;if(!f||o)return;o=setTimeout(function(){o=null,c()},50)}),t.on("changeSession",c)}function
 a(e){o.call(this,e)}var 
r=e("../lib/dom"),i=e("../lib/oop"),s=e("../lib/event"),o=e("../tooltip").Tooltip;i.inherits(a,o),function(){this.setPosition=function(e,t){var
 
n=window.innerWidth||document.documentElement.clientWidth,r=window.innerHeight||document.documentElement.clientHeight,i=this.getWidth(),s=this.getHeight();e+=15,t+=15,e+i>n&&(e-=e+i-n),t+s>r&&(t-=20+s),o.prototype.setPosition.call(
 
this,e,t)}}.call(a.prototype),t.GutterHandler=u}),ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(e,t,n){"use
 strict";var 
r=e("../lib/event"),i=e("../lib/useragent"),s=t.MouseEvent=function(e,t){this.domEvent=e,this.editor=t,this.x=this.clientX=e.clientX,this.y=this.clientY=e.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){r.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){r.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 e=this.editor,t=e.getSelectionRange();if(t.isEmpty())t
 his.$inSelection=!1;else{var 
n=this.getDocumentPosition();this.$inSelection=t.contains(n.row,n.column)}return
 this.$inSelection},this.getButton=function(){return 
r.getButton(this.domEvent)},this.getShiftKey=function(){return 
this.domEvent.shiftKey},this.getAccelKey=i.isMac?function(){return 
this.domEvent.metaKey}:function(){return 
this.domEvent.ctrlKey}}).call(s.prototype)}),ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,n){"use
 strict";function f(e){function T(e,n){var 
r=Date.now(),i=!n||e.row!=n.row,s=!n||e.column!=n.column;if(!S||i||s)t.$blockScrolling+=1,t.moveCursorToPosition(e),t.$blockScrolling-=1,S=r,x={x:p,y:d};else{var
 
o=l(x.x,x.y,p,d);o>a?S=null:r-S>=u&&(t.renderer.scrollCursorIntoView(),S=null)}}function
 N(e,n){var 
r=Date.now(),i=t.renderer.layerConfig.lineHeight,s=t.renderer.layerConfig.characterWidth,u=t.renderer.scroller.getBoundingClientRect(),a={x:{left:p-u.left,right:u.right-p},y
 
:{top:d-u.top,bottom:u.bottom-d}},f=Math.min(a.x.left,a.x.right),l=Math.min(a.y.top,a.y.bottom),c={row:e.row,column:e.column};f/s<=2&&(c.column+=a.x.left<a.x.right?-3:2),l/i<=1&&(c.row+=a.y.top<a.y.bottom?-1:1);var
 
h=e.row!=c.row,v=e.column!=c.column,m=!n||e.row!=n.row;h||v&&!m?E?r-E>=o&&t.renderer.scrollCursorIntoView(c):E=r:E=null}function
 C(){var e=g;g=t.renderer.screenToTextCoordinates(p,d),T(g,e),N(g,e)}function 
k(){m=t.selection.toOrientedRange(),h=t.session.addMarker(m,"ace_selection",t.getSelectionStyle()),t.clearSelection(),t.isFocused()&&t.renderer.$cursorLayer.setBlinking(!1),clearInterval(v),C(),v=setInterval(C,20),y=0,i.addListener(document,"mousemove",O)}function
 
L(){clearInterval(v),t.session.removeMarker(h),h=null,t.$blockScrolling+=1,t.selection.fromOrientedRange(m),t.$blockScrolling-=1,t.isFocused()&&!w&&t.renderer.$cursorLayer.setBlinking(!t.getReadOnly()),m=null,g=null,y=0,E=null,S=null,i.removeListener(document,"mousemove",O)}function
 O(){A==null&&(A=setTimeout(
 function(){A!=null&&h&&L()},20))}function M(e){var 
t=e.types;return!t||Array.prototype.some.call(t,function(e){return 
e=="text/plain"||e=="Text"})}function _(e){var 
t=["copy","copymove","all","uninitialized"],n=["move","copymove","linkmove","all","uninitialized"],r=s.isMac?e.altKey:e.ctrlKey,i="uninitialized";try{i=e.dataTransfer.effectAllowed.toLowerCase()}catch(e){}var
 o="none";return 
r&&t.indexOf(i)>=0?o="copy":n.indexOf(i)>=0?o="move":t.indexOf(i)>=0&&(o="copy"),o}var
 
t=e.editor,n=r.createElement("img");n.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",s.isOpera&&(n.style.cssText="width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;");var
 
f=["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"];f.forEach(function(t){e[t]=this[t]},this),t.addEventListener("mousedown",this.onMouseDown.bind(e));var
 
c=t.container,h,p,d,v,m,g,y=0,b,w,E,S,x;this.onDragStart=function(e){if(this.cancelDrag||!c.draggable){var
 r=this;
 return 
setTimeout(function(){r.startSelect(),r.captureMouse(e)},0),e.preventDefault()}m=t.getSelectionRange();var
 
i=e.dataTransfer;i.effectAllowed=t.getReadOnly()?"copy":"copyMove",s.isOpera&&(t.container.appendChild(n),n.scrollTop=0),i.setDragImage&&i.setDragImage(n,0,0),s.isOpera&&t.container.removeChild(n),i.clearData(),i.setData("Text",t.session.getTextRange()),w=!0,this.setState("drag")},this.onDragEnd=function(e){c.draggable=!1,w=!1,this.setState(null);if(!t.getReadOnly()){var
 
n=e.dataTransfer.dropEffect;!b&&n=="move"&&t.session.remove(t.getSelectionRange()),t.renderer.$cursorLayer.setBlinking(!0)}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){if(t.getReadOnly()||!M(e.dataTransfer))return;return
 
p=e.clientX,d=e.clientY,h||k(),y++,e.dataTransfer.dropEffect=b=_(e),i.preventDefault(e)},this.onDragOver=function(e){if(t.getReadOnly()||!M(e.dataTransfer))return;return
 p=e.clientX,d=e.clientY,h||(k(),y++),A!==null&&(A=null
 
),e.dataTransfer.dropEffect=b=_(e),i.preventDefault(e)},this.onDragLeave=function(e){y--;if(y<=0&&h)return
 L(),b=null,i.preventDefault(e)},this.onDrop=function(e){if(!g)return;var 
n=e.dataTransfer;if(w)switch(b){case"move":m.contains(g.row,g.column)?m={start:g,end:g}:m=t.moveText(m,g);break;case"copy":m=t.moveText(m,g,!0)}else{var
 
r=n.getData("Text");m={start:g,end:t.session.insert(g,r)},t.focus(),b=null}return
 
L(),i.preventDefault(e)},i.addListener(c,"dragstart",this.onDragStart.bind(e)),i.addListener(c,"dragend",this.onDragEnd.bind(e)),i.addListener(c,"dragenter",this.onDragEnter.bind(e)),i.addListener(c,"dragover",this.onDragOver.bind(e)),i.addListener(c,"dragleave",this.onDragLeave.bind(e)),i.addListener(c,"drop",this.onDrop.bind(e));var
 A=null}function l(e,t,n,r){return 
Math.sqrt(Math.pow(n-e,2)+Math.pow(r-t,2))}var 
r=e("../lib/dom"),i=e("../lib/event"),s=e("../lib/useragent"),o=200,u=200,a=5;(function(){this.dragWait=function(){var
 e=Date.now()-this.mousedownEvent.time;e>this.
 editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){var 
e=this.editor.container;e.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly()),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var
 
e=this.editor,t=e.container;t.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var
 
n=s.isWin?"default":"move";e.renderer.setCursorStyle(n),this.setState("dragReady")},this.onMouseDrag=function(e){var
 t=this.editor.container;if(s.isIE&&this.state=="dragReady"){var 
n=l(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);n>3&&t.dragDrop()}if(this.state==="dragWait"){var
 
n=l(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);n>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},
 
this.onMouseDown=function(e){if(!this.$dragEnabled)return;this.mousedownEvent=e;var
 
t=this.editor,n=e.inSelection(),r=e.getButton(),i=e.domEvent.detail||1;if(i===1&&r===0&&n){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var
 o=e.domEvent.target||e.domEvent.srcElement;"unselectable"in 
o&&(o.unselectable="on");if(t.getDragDelay()){if(s.isWebKit){this.cancelDrag=!0;var
 u=t.container;u.draggable=!0}this.setState("dragWait")}else 
this.startDrag();this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}).call(f.prototype),t.DragdropHandler=f}),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(e,t,n){"use
 strict";var r=e("./dom");t.get=function(e,t){var n=new 
XMLHttpRequest;n.open("GET",e,!0),n.onreadystatechange=function(){n.readyState===4&&t(n.responseText)},n.send(null)},t.loadScript=function(e,t){var
 n=r.getDocumentHead(),i=document.createElement("script");i.src=e,n.appendChild(
 
i),i.onload=i.onreadystatechange=function(e,n){if(n||!i.readyState||i.readyState=="loaded"||i.readyState=="complete")i=i.onload=i.onreadystatechange=null,n||t()}},t.qualifyURL=function(e){var
 t=document.createElement("a");return 
t.href=e,t.href}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(e,t,n){"use
 strict";var 
r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var
 
n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof
 
t!="object"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var
 
o=0;o<n.length;o++){n[o](t,this);if(t.propagationStopped)break}if(r&&!t.defaultPrevented)return
 r(t,this)},r._signal=function(e,t){var 
n=(this._eventRegistry||{})[e];if(!n)return;n=n.slice();for(v
 ar r=0;r<n.length;r++)n[r](t,this)},r.once=function(e,t){var 
n=this;t&&this.addEventListener(e,function 
r(){n.removeEventListener(e,r),t.apply(null,arguments)})},r.setDefaultHandler=function(e,t){var
 
n=this._defaultHandlers;n||(n=this._defaultHandlers={_disabled_:{}});if(n[e]){var
 r=n[e],i=n._disabled_[e];i||(n._disabled_[e]=i=[]),i.push(r);var 
s=i.indexOf(t);s!=-1&&i.splice(s,1)}n[e]=t},r.removeDefaultHandler=function(e,t){var
 n=this._defaultHandlers;if(!n)return;var r=n._disabled_[e];if(n[e]==t){var 
i=n[e];r&&this.setDefaultHandler(e,r.pop())}else if(r){var 
s=r.indexOf(t);s!=-1&&r.splice(s,1)}},r.on=r.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var
 r=this._eventRegistry[e];return 
r||(r=this._eventRegistry[e]=[]),r.indexOf(t)==-1&&r[n?"unshift":"push"](t),t},r.off=r.removeListener=r.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var
 n=this._eventRegistry[e];if(!n)return;var 
r=n.indexOf(t);r!==-1&&n.splice(r,1)},r.remov
 
eAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=r}),ace.define("ace/lib/app_config",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"no
 use strict";function o(e){typeof 
console!="undefined"&&console.warn&&console.warn.apply(console,arguments)}function
 u(e,t){var n=new Error(e);n.data=t,typeof 
console=="object"&&console.error&&console.error(n),setTimeout(function(){throw 
n})}var 
r=e("./oop"),i=e("./event_emitter").EventEmitter,s={setOptions:function(e){Object.keys(e).forEach(function(t){this.setOption(t,e[t])},this)},getOptions:function(e){var
 t={};return 
e?Array.isArray(e)||(t=e,e=Object.keys(t)):e=Object.keys(this.$options),e.forEach(function(e){t[e]=this.getOption(e)},this),t},setOption:function(e,t){if(this["$"+e]===t)return;var
 n=this.$options[e];if(!n)return o('misspelled option 
"'+e+'"');if(n.forwardTo)return 
this[n.forwardTo]&&this[n.forwardTo].setOption(e,t);n.handlesSet||(this["$"+e]=t),n&&n.set
 &&n.set.call(this,t)},getOption:function(e){var t=this.$options[e];return 
t?t.forwardTo?this[t.forwardTo]&&this[t.forwardTo].getOption(e):t&&t.get?t.get.call(this):this["$"+e]:o('misspelled
 option 
"'+e+'"')}},a=function(){this.$defaultOptions={}};(function(){r.implement(this,i),this.defineOptions=function(e,t,n){return
 
e.$options||(this.$defaultOptions[t]=e.$options={}),Object.keys(n).forEach(function(t){var
 r=n[t];typeof 
r=="string"&&(r={forwardTo:r}),r.name||(r.name=t),e.$options[r.name]=r,"initialValue"in
 
r&&(e["$"+r.name]=r.initialValue)}),r.implement(e,s),this},this.resetOptions=function(e){Object.keys(e.$options).forEach(function(t){var
 n=e.$options[t];"value"in 
n&&e.setOption(t,n.value)})},this.setDefaultValue=function(e,t,n){var 
r=this.$defaultOptions[e]||(this.$defaultOptions[e]={});r[t]&&(r.forwardTo?this.setDefaultValue(r.forwardTo,t,n):r[t].value=n)},this.setDefaultValues=function(e,t){Object.keys(t).forEach(function(n){this.setDefaultValue(e,n,t[n])},this)},this.warn=o,
 
this.reportError=u}).call(a.prototype),t.AppConfig=a}),ace.define("ace/config",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/lib/net","ace/lib/app_config"],function(e,t,n){"no
 use strict";function 
f(r){if(!u||!u.document)return;a.packaged=r||e.packaged||n.packaged||u.define&&define.packaged;var
 
i={},s="",o=document.currentScript||document._currentScript,f=o&&o.ownerDocument||document,c=f.getElementsByTagName("script");for(var
 h=0;h<c.length;h++){var 
p=c[h],d=p.src||p.getAttribute("src");if(!d)continue;var v=p.attributes;for(var 
m=0,g=v.length;m<g;m++){var 
y=v[m];y.name.indexOf("data-ace-")===0&&(i[l(y.name.replace(/^data-ace-/,""))]=y.value)}var
 
b=d.match(/^(.*)\/ace(\-\w+)?\.js(\?|$)/);b&&(s=b[1])}s&&(i.base=i.base||s,i.packaged=!0),i.basePath=i.base,i.workerPath=i.workerPath||i.base,i.modePath=i.modePath||i.base,i.themePath=i.themePath||i.base,delete
 i.base;for(var w in i)typeof i[w]!="undefined"&&t.set(w,i[w])}function 
l(e){return e.replace(/-(.)/g,function(e,t)
 {return t.toUpperCase()})}var 
r=e("./lib/lang"),i=e("./lib/oop"),s=e("./lib/net"),o=e("./lib/app_config").AppConfig;n.exports=t=new
 o;var u=function(){return this||typeof 
window!="undefined"&&window}(),a={packaged:!1,workerPath:null,modePath:null,themePath:null,basePath:"",suffix:".js",$moduleUrls:{}};t.get=function(e){if(!a.hasOwnProperty(e))throw
 new Error("Unknown config key: "+e);return 
a[e]},t.set=function(e,t){if(!a.hasOwnProperty(e))throw new Error("Unknown 
config key: "+e);a[e]=t},t.all=function(){return 
r.copyObject(a)},t.moduleUrl=function(e,t){if(a.$moduleUrls[e])return 
a.$moduleUrls[e];var n=e.split("/");t=t||n[n.length-2]||"";var 
r=t=="snippets"?"/":"-",i=n[n.length-1];if(t=="worker"&&r=="-"){var s=new 
RegExp("^"+t+"[\\-_]|[\\-_]"+t+"$","g");i=i.replace(s,"")}(!i||i==t)&&n.length>1&&(i=n[n.length-2]);var
 o=a[t+"Path"];return 
o==null?o=a.basePath:r=="/"&&(t=r=""),o&&o.slice(-1)!="/"&&(o+="/"),o+t+r+i+this.get("suffix")},t.setModuleUrl=function(e,t){return
 a.$moduleUrls[e
 ]=t},t.$loading={},t.loadModule=function(n,r){var 
i,o;Array.isArray(n)&&(o=n[0],n=n[1]);try{i=e(n)}catch(u){}if(i&&!t.$loading[n])return
 
r&&r(i);t.$loading[n]||(t.$loading[n]=[]),t.$loading[n].push(r);if(t.$loading[n].length>1)return;var
 a=function(){e([n],function(e){t._emit("load.module",{name:n,module:e});var 
r=t.$loading[n];t.$loading[n]=null,r.forEach(function(t){t&&t(e)})})};if(!t.get("packaged"))return
 
a();s.loadScript(t.moduleUrl(n,o),a)},t.init=f}),ace.define("ace/mouse/mouse_handler",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/mouse/default_handlers","ace/mouse/default_gutter_handler","ace/mouse/mouse_event","ace/mouse/dragdrop_handler","ace/config"],function(e,t,n){"use
 strict";var 
r=e("../lib/event"),i=e("../lib/useragent"),s=e("./default_handlers").DefaultHandlers,o=e("./default_gutter_handler").GutterHandler,u=e("./mouse_event").MouseEvent,a=e("./dragdrop_handler").DragdropHandler,f=e("../config"),l=function(e){var
 t=this;this.editor=e,new s(
 this),new o(this),new a(this);var n=function(t){var 
n=!document.hasFocus||!document.hasFocus()||!e.isFocused()&&document.activeElement==(e.textInput&&e.textInput.getElement());n&&window.focus(),e.focus()},u=e.renderer.getMouseEventTarget();r.addListener(u,"click",this.onMouseEvent.bind(this,"click")),r.addListener(u,"mousemove",this.onMouseMove.bind(this,"mousemove")),r.addMultiMouseDownListener([u,e.renderer.scrollBarV&&e.renderer.scrollBarV.inner,e.renderer.scrollBarH&&e.renderer.scrollBarH.inner,e.textInput&&e.textInput.getElement()].filter(Boolean),[400,300,250],this,"onMouseEvent"),r.addMouseWheelListener(e.container,this.onMouseWheel.bind(this,"mousewheel")),r.addTouchMoveListener(e.container,this.onTouchMove.bind(this,"touchmove"));var
 
f=e.renderer.$gutter;r.addListener(f,"mousedown",this.onMouseEvent.bind(this,"guttermousedown")),r.addListener(f,"click",this.onMouseEvent.bind(this,"gutterclick")),r.addListener(f,"dblclick",this.onMouseEvent.bind(this,"gutterdblclick")),r.add
 
Listener(f,"mousemove",this.onMouseEvent.bind(this,"guttermousemove")),r.addListener(u,"mousedown",n),r.addListener(f,"mousedown",n),i.isIE&&e.renderer.scrollBarV&&(r.addListener(e.renderer.scrollBarV.element,"mousedown",n),r.addListener(e.renderer.scrollBarH.element,"mousedown",n)),e.on("mousemove",function(n){if(t.state||t.$dragDelay||!t.$dragEnabled)return;var
 
r=e.renderer.screenToTextCoordinates(n.x,n.y),i=e.session.selection.getRange(),s=e.renderer;!i.isEmpty()&&i.insideStart(r.row,r.column)?s.setCursorStyle("default"):s.setCursorStyle("")})};(function(){this.onMouseEvent=function(e,t){this.editor._emit(e,new
 u(t,this.editor))},this.onMouseMove=function(e,t){var 
n=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;if(!n||!n.length)return;this.editor._emit(e,new
 u(t,this.editor))},this.onMouseWheel=function(e,t){var n=new 
u(t,this.editor);n.speed=this.$scrollSpeed*2,n.wheelX=t.wheelX,n.wheelY=t.wheelY,this.editor._emit(e,n)},this.onTouchMove=function(e,t){var
 n=new
  
u(t,this.editor);n.speed=1,n.wheelX=t.wheelX,n.wheelY=t.wheelY,this.editor._emit(e,n)},this.setState=function(e){this.state=e},this.captureMouse=function(e,t){this.x=e.x,this.y=e.y,this.isMousePressed=!0;var
 
n=this.editor.renderer;n.$keepTextAreaAtCursor&&(n.$keepTextAreaAtCursor=null);var
 
s=this,o=function(e){if(!e)return;if(i.isWebKit&&!e.which&&s.releaseMouse)return
 s.releaseMouse();s.x=e.clientX,s.y=e.clientY,t&&t(e),s.mouseEvent=new 
u(e,s.editor),s.$mouseMoved=!0},a=function(e){clearInterval(l),f(),s[s.state+"End"]&&s[s.state+"End"](e),s.state="",n.$keepTextAreaAtCursor==null&&(n.$keepTextAreaAtCursor=!0,n.$moveTextAreaToCursor()),s.isMousePressed=!1,s.$onCaptureMouseMove=s.releaseMouse=null,e&&s.onMouseEvent("mouseup",e)},f=function(){s[s.state]&&s[s.state](),s.$mouseMoved=!1};if(i.isOldIE&&e.domEvent.type=="dblclick")return
 
setTimeout(function(){a(e)});s.$onCaptureMouseMove=o,s.releaseMouse=r.capture(this.editor.container,o,a);var
 l=setInterval(f,20)},this.releaseMouse=null,
 this.cancelContextMenu=function(){var 
e=function(t){if(t&&t.domEvent&&t.domEvent.type!="contextmenu")return;this.editor.off("nativecontextmenu",e),t&&t.domEvent&&r.stopEvent(t.domEvent)}.bind(this);setTimeout(e,10),this.editor.on("nativecontextmenu",e)}}).call(l.prototype),f.defineOptions(l.prototype,"mouseHandler",{scrollSpeed:{initialValue:2},dragDelay:{initialValue:i.isMac?150:0},dragEnabled:{initialValue:!0},focusTimout:{initialValue:0},tooltipFollowsMouse:{initialValue:!0}}),t.MouseHandler=l}),ace.define("ace/mouse/fold_handler",["require","exports","module"],function(e,t,n){"use
 strict";function r(e){e.on("click",function(t){var 
n=t.getDocumentPosition(),r=e.session,i=r.getFoldAt(n.row,n.column,1);i&&(t.getAccelKey()?r.removeFold(i):r.expandFold(i),t.stop())}),e.on("gutterclick",function(t){var
 n=e.renderer.$gutterLayer.getRegion(t);if(n=="foldWidgets"){var 
r=t.getDocumentPosition().row,i=e.session;i.foldWidgets&&i.foldWidgets[r]&&e.session.onFoldWidgetClick(r,t),e.isFocused()
 ||e.focus(),t.stop()}}),e.on("gutterdblclick",function(t){var 
n=e.renderer.$gutterLayer.getRegion(t);if(n=="foldWidgets"){var 
r=t.getDocumentPosition().row,i=e.session,s=i.getParentFoldRangeData(r,!0),o=s.range||s.firstRange;if(o){r=o.start.row;var
 
u=i.getFoldAt(r,i.getLine(r).length,1);u?i.removeFold(u):(i.addFold("...",o),e.renderer.scrollCursorIntoView({row:o.start.row,column:0}))}t.stop()}})}t.FoldHandler=r}),ace.define("ace/keyboard/keybinding",["require","exports","module","ace/lib/keys","ace/lib/event"],function(e,t,n){"use
 strict";var 
r=e("../lib/keys"),i=e("../lib/event"),s=function(e){this.$editor=e,this.$data={editor:e},this.$handlers=[],this.setDefaultHandler(e.commands)};(function(){this.setDefaultHandler=function(e){this.removeKeyboardHandler(this.$defaultHandler),this.$defaultHandler=e,this.addKeyboardHandler(e,0)},this.setKeyboardHandler=function(e){var
 
t=this.$handlers;if(t[t.length-1]==e)return;while(t[t.length-1]&&t[t.length-1]!=this.$defaultHandler)this.removeKey
 
boardHandler(t[t.length-1]);this.addKeyboardHandler(e,1)},this.addKeyboardHandler=function(e,t){if(!e)return;typeof
 e=="function"&&!e.handleKeyboard&&(e.handleKeyboard=e);var 
n=this.$handlers.indexOf(e);n!=-1&&this.$handlers.splice(n,1),t==undefined?this.$handlers.push(e):this.$handlers.splice(t,0,e),n==-1&&e.attach&&e.attach(this.$editor)},this.removeKeyboardHandler=function(e){var
 t=this.$handlers.indexOf(e);return 
t==-1?!1:(this.$handlers.splice(t,1),e.detach&&e.detach(this.$editor),!0)},this.getKeyboardHandler=function(){return
 this.$handlers[this.$handlers.length-1]},this.getStatusText=function(){var 
e=this.$data,t=e.editor;return this.$handlers.map(function(n){return 
n.getStatusText&&n.getStatusText(t,e)||""}).filter(Boolean).join(" 
")},this.$callKeyboardHandlers=function(e,t,n,r){var 
s,o=!1,u=this.$editor.commands;for(var 
a=this.$handlers.length;a--;){s=this.$handlers[a].handleKeyboard(this.$data,e,t,n,r);if(!s||!s.command)continue;s.command=="null"?o=!0:o=u.exec(s.command,th
 
is.$editor,s.args,r),o&&r&&e!=-1&&s.passEvent!=1&&s.command.passEvent!=1&&i.stopEvent(r);if(o)break}return!o&&e==-1&&(s={command:"insertstring"},o=u.exec("insertstring",this.$editor,t)),o&&this.$editor._signal&&this.$editor._signal("keyboardActivity",s),o},this.onCommandKey=function(e,t,n){var
 
i=r.keyCodeToString(n);this.$callKeyboardHandlers(t,i,n,e)},this.onTextInput=function(e){this.$callKeyboardHandlers(-1,e)}}).call(s.prototype),t.KeyBinding=s}),ace.define("ace/range",["require","exports","module"],function(e,t,n){"use
 strict";var r=function(e,t){return 
e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return
 
this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return"Range:
 ["+this.start.row+"/"+this.start.column+"] -> 
["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){ret
 urn this.compare(e,t)==0},this.compareRange=function(e){var 
t,n=e.end,r=e.start;return 
t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return
 this.compare(e.row,e.column)},this.containsRange=function(e){return 
this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var
 t=this.compareRange(e);return 
t==-1||t==0||t==1},this.isEnd=function(e,t){return 
this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return 
this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof 
e=="object"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof
 
e=="object"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return
 this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insid
 eStart=function(e,t){return 
this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return
 
this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?t<this.start.column?-1:t>this.end.column?1:0:e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return
 
this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return
 
this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return
 
this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var
 n={row:t+1,column:0};else if(this.end.row<e)var 
n={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else 
if(this.start.row<e)var r={row:e,column:0};return 
i.fromPoints(r||this.start,n||this.end)},t
 his.extend=function(e,t){var n=this.compare(e,t);if(n==0)return 
this;if(n==-1)var r={row:e,column:t};else var s={row:e,column:t};return 
i.fromPoints(r||this.start,s||this.end)},this.isEmpty=function(){return 
this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return
 this.start.row!==this.end.row},this.clone=function(){return 
i.fromPoints(this.start,this.end)},this.collapseRows=function(){return 
this.end.column==0?new 
i(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new 
i(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var 
t=e.documentToScreenPosition(this.start),n=e.documentToScreenPosition(this.end);return
 new 
i(t.row,t.column,n.row,n.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(i.prototype),i.fromPoints=function(e,t){return
 new 
i(e.row,e.column,t.row,t.column)},i.comparePoints=r,i.comparePoints=function(e,t){return
 e.row-t.row||e.column-
 
t.column},t.Range=i}),ace.define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],function(e,t,n){"use
 strict";var 
r=e("./lib/oop"),i=e("./lib/lang"),s=e("./lib/event_emitter").EventEmitter,o=e("./range").Range,u=function(e){this.session=e,this.doc=e.getDocument(),this.clearSelection(),this.lead=this.selectionLead=this.doc.createAnchor(0,0),this.anchor=this.selectionAnchor=this.doc.createAnchor(0,0);var
 
t=this;this.lead.on("change",function(e){t._emit("changeCursor"),t.$isEmpty||t._emit("changeSelection"),!t.$keepDesiredColumnOnChange&&e.old.column!=e.value.column&&(t.$desiredColumn=null)}),this.selectionAnchor.on("change",function(){t.$isEmpty||t._emit("changeSelection")})};(function(){r.implement(this,s),this.isEmpty=function(){return
 
this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},this.isMultiLine=function(){return
 this.isEmpty()?!1:this.getRange().isMultiLine()},this.getCursor=fun
 ction(){return 
this.lead.getPosition()},this.setSelectionAnchor=function(e,t){this.anchor.setPosition(e,t),this.$isEmpty&&(this.$isEmpty=!1,this._emit("changeSelection"))},this.getSelectionAnchor=function(){return
 
this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},this.getSelectionLead=function(){return
 
this.lead.getPosition()},this.shiftSelection=function(e){if(this.$isEmpty){this.moveCursorTo(this.lead.row,this.lead.column+e);return}var
 
t=this.getSelectionAnchor(),n=this.getSelectionLead(),r=this.isBackwards();(!r||t.column!==0)&&this.setSelectionAnchor(t.row,t.column+e),(r||n.column!==0)&&this.$moveSelection(function(){this.moveCursorTo(n.row,n.column+e)})},this.isBackwards=function(){var
 e=this.anchor,t=this.lead;return 
e.row>t.row||e.row==t.row&&e.column>t.column},this.getRange=function(){var 
e=this.anchor,t=this.lead;return 
this.isEmpty()?o.fromPoints(t,t):this.isBackwards()?o.fromPoints(t,e):o.fromPoints(e,t)},this.clearSelection=function(){this.$isEmpty||(this.
 $isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){var 
e=this.doc.getLength()-1;this.setSelectionAnchor(0,0),this.moveCursorTo(e,this.doc.getLine(e).length)},this.setRange=this.setSelectionRange=function(e,t){t?(this.setSelectionAnchor(e.end.row,e.end.column),this.selectTo(e.start.row,e.start.column)):(this.setSelectionAnchor(e.start.row,e.start.column),this.selectTo(e.end.row,e.end.column)),this.getRange().isEmpty()&&(this.$isEmpty=!0),this.$desiredColumn=null},this.$moveSelection=function(e){var
 
t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},this.selectTo=function(e,t){this.$moveSelection(function(){this.moveCursorTo(e,t)})},this.selectToPosition=function(e){this.$moveSelection(function(){this.moveCursorToPosition(e)})},this.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},this.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},this.selectUp=function(){this.$moveSelection(this.moveCu
 
rsorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(e,t){if(typeof
 t=="undefined"){var n=e||this.lead;e=n.row,t=n.column}return 
this.session.getWordRange(e,t)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var
 e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSele
 ctionRange(t)},this.getLineRange=function(e,t){var n=typeof 
e=="number"?e:this.lead.row,r,i=this.session.getFoldLine(n);return 
i?(n=i.start.row,r=i.end.row):r=n,t===!0?new 
o(n,0,r,this.session.getLine(r).length):new 
o(n,0,r+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.wouldMoveIntoSoftTab=function(e,t,n){var
 r=e.column,i=e.column+t;return 
n<0&&(r=e.column-t,i=e.column),this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(r,i).split("
 ").length-1==t},this.moveCursorLeft=function(){var 
e=this.lead.getPosition(),t;if(t=this.session.getFoldAt(e.row,e.column,-1))this.moveCursorTo(t.start.row,t.start.column);else
 
if(e.column===0)e.row>0&&this.moveCursorTo(e.row-1,this.doc.getLine(e.row-1).length);else{var
 
n=this.session.getTabSize();this.wouldMoveIntoSoftTab(e,n,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-n):this.mov
 eCursorBy(0,-1)}},this.moveCursorRight=function(){var 
e=this.lead.getPosition(),t;if(t=this.session.getFoldAt(e.row,e.column,1))this.moveCursorTo(t.end.row,t.end.column);else
 
if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row<this.doc.getLength()-1&&this.moveCursorTo(this.lead.row+1,0);else{var
 
n=this.session.getTabSize(),e=this.lead;this.wouldMoveIntoSoftTab(e,n,1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,n):this.moveCursorBy(0,1)}},this.moveCursorLineStart=function(){var
 
e=this.lead.row,t=this.lead.column,n=this.session.documentToScreenRow(e,t),r=this.session.screenToDocumentPosition(n,0),i=this.session.getDisplayLine(e,null,r.row,r.column),s=i.match(/^\s*/);s[0].length!=t&&!this.session.$useEmacsStyleLineStart&&(r.column+=s[0].length),this.moveCursorToPosition(r)},this.moveCursorLineEnd=function(){var
 
e=this.lead,t=this.session.getDocumentLastRowColumnPosition(e.row,e.column);if(this.lead.column==t.column){var
 n=this.session.getLine(t.
 row);if(t.column==n.length){var 
r=n.search(/\s+$/);r>0&&(t.column=r)}}this.moveCursorTo(t.row,t.column)},this.moveCursorFileEnd=function(){var
 
e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var
 
e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),r=n.substring(t),i;this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var
 
s=this.session.getFoldAt(e,t,1);if(s){this.moveCursorTo(s.end.row,s.end.column);return}if(i=this.session.nonTokenRe.exec(r))t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,r=n.substring(t);if(t>=n.length){this.moveCursorTo(e,n.length),this.moveCursorRight(),e<this.doc.getLength()-1&&this.moveCursorWordRight();return}if(i=this.session.tokenRe.exec(r))t+=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0;this.moveCursorTo(e,t)},this.moveCursorLongWordLeft=function(){var
 e=this.lead.
 
row,t=this.lead.column,n;if(n=this.session.getFoldAt(e,t,-1)){this.moveCursorTo(n.start.row,n.start.column);return}var
 
r=this.session.getFoldStringAt(e,t,-1);r==null&&(r=this.doc.getLine(e).substring(0,t));var
 
s=i.stringReverse(r),o;this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;if(o=this.session.nonTokenRe.exec(s))t-=this.session.nonTokenRe.lastIndex,s=s.slice(this.session.nonTokenRe.lastIndex),this.session.nonTokenRe.lastIndex=0;if(t<=0){this.moveCursorTo(e,0),this.moveCursorLeft(),e>0&&this.moveCursorWordLeft();return}if(o=this.session.tokenRe.exec(s))t-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0;this.moveCursorTo(e,t)},this.$shortWordEndIndex=function(e){var
 
t,n=0,r,i=/\s/,s=this.session.tokenRe;s.lastIndex=0;if(t=this.session.tokenRe.exec(e))n=this.session.tokenRe.lastIndex;else{while((r=e[n])&&i.test(r))n++;if(n<1){s.lastIndex=0;while((r=e[n])&&!s.test(r)){s.lastIndex=0,n++;if(i.test(r)){if(n>2){n--;break}while((r=e[n])&&i.test(r))n++
 ;if(n>2)break}}}}return 
s.lastIndex=0,n},this.moveCursorShortWordRight=function(){var 
e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),r=n.substring(t),i=this.session.getFoldAt(e,t,1);if(i)return
 this.moveCursorTo(i.end.row,i.end.column);if(t==n.length){var 
s=this.doc.getLength();do 
e++,r=this.doc.getLine(e);while(e<s&&/^\s*$/.test(r));/^\s+/.test(r)||(r=""),t=0}var
 
o=this.$shortWordEndIndex(r);this.moveCursorTo(e,t+o)},this.moveCursorShortWordLeft=function(){var
 
e=this.lead.row,t=this.lead.column,n;if(n=this.session.getFoldAt(e,t,-1))return 
this.moveCursorTo(n.start.row,n.start.column);var 
r=this.session.getLine(e).substring(0,t);if(t===0){do 
e--,r=this.doc.getLine(e);while(e>0&&/^\s*$/.test(r));t=r.length,/\s+$/.test(r)||(r="")}var
 s=i.stringReverse(r),o=this.$shortWordEndIndex(s);return 
this.moveCursorTo(e,t-o)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function
 
(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(e,t){var
 
n=this.session.documentToScreenPosition(this.lead.row,this.lead.column);t===0&&(this.$desiredColumn?n.column=this.$desiredColumn:this.$desiredColumn=n.column);var
 
r=this.session.screenToDocumentPosition(n.row+e,n.column);e!==0&&t===0&&r.row===this.lead.row&&r.column===this.lead.column&&this.session.lineWidgets&&this.session.lineWidgets[r.row]&&(r.row>0||e>0)&&r.row++,this.moveCursorTo(r.row,r.column+t,t===0)},this.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},this.moveCursorTo=function(e,t,n){var
 
r=this.session.getFoldAt(e,t,1);r&&(e=r.start.row,t=r.start.column),this.$keepDesiredColumnOnChange=!0,this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,n||(this.$desiredColumn=null)},this.moveCursorToScreen=function(e,t,n){var
 
r=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(r.row,r.column,n)},this.detach=function
 
(){this.lead.detach(),this.anchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(e){var
 t=this.getRange();return 
e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},this.getRangeOfMovements=function(e){var
 t=this.getCursor();try{e(this);var n=this.getCursor();return 
o.fromPoints(t,n)}catch(r){return 
o.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},this.toJSON=function(){if(this.rangeCount)var
 e=this.ranges.map(function(e){var t=e.clone();return 
t.isBackwards=e.cursor==e.start,t});else{var 
e=this.getRange();e.isBackwards=this.isBackwards()}return 
e},this.fromJSON=function(e){if(e.start==undefined){if(this.rangeList){this.toSingleRange(e[0]);for(var
 t=e.length;t--;){var n=o.fromPoints(e[t
 
].start,e[t].end);e[t].isBackwards&&(n.cursor=n.start),this.addRange(n,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},this.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return
 this.getRange().isEqual(e);for(var 
t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0}}).call(u.prototype),t.Selection=u}),ace.define("ace/tokenizer",["require","exports","module","ace/config"],function(e,t,n){"use
 strict";var 
r=e("./config"),i=2e3,s=function(e){this.states=e,this.regExps={},this.matchMappings={};for(var
 t in this.states){var 
n=this.states[t],r=[],i=0,s=this.matchMappings[t]={defaultToken:"text"},o="g",u=[];for(var
 a=0;a<n.length;a++){var 
f=n[a];f.defaultToken&&(s.defaultToken=f.defaultToken),f.caseInsensitive&&(o="gi");if(f.regex==null)continue;f.regex
 instanceof RegExp&&(f.regex=f.regex.toString().slice(1,-1));var 
l=f.regex,c=(new RegExp("(?:("+l+")|
 
(.))")).exec("a").length-2;Array.isArray(f.token)?f.token.length==1||c==1?f.token=f.token[0]:c-1!=f.token.length?(this.reportError("number
 of classes and regexp groups doesn't 
match",{rule:f,groupCount:c-1}),f.token=f.token[0]):(f.tokenArray=f.token,f.token=null,f.onMatch=this.$arrayTokens):typeof
 
f.token=="function"&&!f.onMatch&&(c>1?f.onMatch=this.$applyToken:f.onMatch=f.token),c>1&&(/\\\d/.test(f.regex)?l=f.regex.replace(/\\([0-9]+)/g,function(e,t){return"\\"+(parseInt(t,10)+i+1)}):(c=1,l=this.removeCapturingGroups(f.regex)),!f.splitRegex&&typeof
 
f.token!="string"&&u.push(f)),s[i]=a,i+=c,r.push(l),f.onMatch||(f.onMatch=null)}r.length||(s[0]=0,r.push("$")),u.forEach(function(e){e.splitRegex=this.createSplitterRegexp(e.regex,o)},this),this.regExps[t]=new
 
RegExp("("+r.join(")|(")+")|($)",o)}};(function(){this.$setMaxTokenCount=function(e){i=e|0},this.$applyToken=function(e){var
 t=this.splitRegex.exec(e).slice(1),n=this.token.apply(this,t);if(typeof 
n=="string")return[{type:n,value:e
 }];var r=[];for(var 
i=0,s=n.length;i<s;i++)t[i]&&(r[r.length]={type:n[i],value:t[i]});return 
r},this.$arrayTokens=function(e){if(!e)return[];var 
t=this.splitRegex.exec(e);if(!t)return"text";var n=[],r=this.tokenArray;for(var 
i=0,s=r.length;i<s;i++)t[i+1]&&(n[n.length]={type:r[i],value:t[i+1]});return 
n},this.removeCapturingGroups=function(e){var 
t=e.replace(/\[(?:\\.|[^\]])*?\]|\\.|\(\?[:=!]|(\()/g,function(e,t){return 
t?"(?:":e});return 
t},this.createSplitterRegexp=function(e,t){if(e.indexOf("(?=")!=-1){var 
n=0,r=!1,i={};e.replace(/(\\.)|(\((?:\?[=!])?)|(\))|([\[\]])/g,function(e,t,s,o,u,a){return
 
r?r=u!="]":u?r=!0:o?(n==i.stack&&(i.end=a+1,i.stack=-1),n--):s&&(n++,s.length!=1&&(i.stack=n,i.start=a)),e}),i.end!=null&&/^\)*$/.test(e.substr(i.end))&&(e=e.substring(0,i.start)+e.substr(i.end))}return
 e.charAt(0)!="^"&&(e="^"+e),e.charAt(e.length-1)!="$"&&(e+="$"),new 
RegExp(e,(t||"").replace("g",""))},this.getLineTokens=function(e,t){if(t&&typeof
 t!="string"){var n=t.slice(0);t=n[0],t=
 =="#tmp"&&(n.shift(),t=n.shift())}else var n=[];var 
r=t||"start",s=this.states[r];s||(r="start",s=this.states[r]);var 
o=this.matchMappings[r],u=this.regExps[r];u.lastIndex=0;var 
a,f=[],l=0,c=0,h={type:null,value:""};while(a=u.exec(e)){var 
p=o.defaultToken,d=null,v=a[0],m=u.lastIndex;if(m-v.length>l){var 
g=e.substring(l,m-v.length);h.type==p?h.value+=g:(h.type&&f.push(h),h={type:p,value:g})}for(var
 
y=0;y<a.length-2;y++){if(a[y+1]===undefined)continue;d=s[o[y]],d.onMatch?p=d.onMatch(v,r,n,e):p=d.token,d.next&&(typeof
 
d.next=="string"?r=d.next:r=d.next(r,n),s=this.states[r],s||(this.reportError("state
 doesn't 
exist",r),r="start",s=this.states[r]),o=this.matchMappings[r],l=m,u=this.regExps[r],u.lastIndex=m),d.consumeLineEnd&&(l=m);break}if(v)if(typeof
 
p=="string")!!d&&d.merge===!1||h.type!==p?(h.type&&f.push(h),h={type:p,value:v}):h.value+=v;else
 if(p){h.type&&f.push(h),h={type:null,value:""};for(var 
y=0;y<p.length;y++)f.push(p[y])}if(l==e.length)break;l=m;if(c++>i){c>2*e.length&&this.r
 eportError("infinite loop with in ace 
tokenizer",{startState:t,line:e});while(l<e.length)h.type&&f.push(h),h={value:e.substring(l,l+=2e3),type:"overflow"};r="start",n=[];break}}return
 
h.type&&f.push(h),n.length>1&&n[0]!==r&&n.unshift("#tmp",r),{tokens:f,state:n.length?n:r}},this.reportError=r.reportError}).call(s.prototype),t.Tokenizer=s}),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],function(e,t,n){"use
 strict";var 
r=e("../lib/lang"),i=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(e,t){if(!t){for(var
 n in e)this.$rules[n]=e[n];return}for(var n in e){var r=e[n];for(var 
i=0;i<r.length;i++){var s=r[i];if(s.next||s.onMatch)typeof 
s.next=="string"&&s.next.indexOf(t)!==0&&(s.next=t+s.next),s.nextState&&s.nextState.indexOf(t)!==0&&(s.nextState=t+s.nextState)}this.$rules[t+n]=r}},this.getRules=function(){return
 this.$rules},this.embedRules=function(e,t,n,i,s){var o=typeo
 f e=="function"?(new e).getRules():e;if(i)for(var 
u=0;u<i.length;u++)i[u]=t+i[u];else{i=[];for(var a in 
o)i.push(t+a)}this.addRules(o,t);if(n){var 
f=Array.prototype[s?"push":"unshift"];for(var 
u=0;u<i.length;u++)f.apply(this.$rules[i[u]],r.

<TRUNCATED>

Reply via email to