From 4da6b3a3916ce4d986275a1f7f90e7fb0984b822 Mon Sep 17 00:00:00 2001 From: Bart Visscher Date: Wed, 13 Jun 2012 09:05:00 +0200 Subject: [PATCH 01/52] Calendar: Make button of #datecontrol_date --- apps/calendar/js/calendar.js | 2 +- apps/calendar/templates/calendar.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/calendar/js/calendar.js b/apps/calendar/js/calendar.js index 7ae4a3a6eb..0d44722abb 100644 --- a/apps/calendar/js/calendar.js +++ b/apps/calendar/js/calendar.js @@ -845,7 +845,7 @@ $(document).ready(function(){ dayNamesShort: dayNamesShort, allDayText: allDayText, viewDisplay: function(view) { - $('#datecontrol_date').html(view.title); + $('#datecontrol_date').val(view.title); if (view.name != defaultView) { $.post(OC.filePath('calendar', 'ajax', 'changeview.php'), {v:view.name}); defaultView = view.name; diff --git a/apps/calendar/templates/calendar.php b/apps/calendar/templates/calendar.php index b0cb20f2f1..2246a0178e 100644 --- a/apps/calendar/templates/calendar.php +++ b/apps/calendar/templates/calendar.php @@ -46,7 +46,7 @@
- +
From 7a8e7f18dbb473552c1427c24402104d9bc181a4 Mon Sep 17 00:00:00 2001 From: Bart Visscher Date: Wed, 13 Jun 2012 09:05:35 +0200 Subject: [PATCH 02/52] Calendar: Clicking #datecontrol_date gives datepicker to jump to date --- apps/calendar/js/calendar.js | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/apps/calendar/js/calendar.js b/apps/calendar/js/calendar.js index 0d44722abb..1cbe5c6764 100644 --- a/apps/calendar/js/calendar.js +++ b/apps/calendar/js/calendar.js @@ -845,7 +845,7 @@ $(document).ready(function(){ dayNamesShort: dayNamesShort, allDayText: allDayText, viewDisplay: function(view) { - $('#datecontrol_date').val(view.title); + $('#datecontrol_date').val($('

').html(view.title).text()); if (view.name != defaultView) { $.post(OC.filePath('calendar', 'ajax', 'changeview.php'), {v:view.name}); defaultView = view.name; @@ -884,6 +884,22 @@ $(document).ready(function(){ loading: Calendar.UI.loading, eventSources: eventSources }); + $('#datecontrol_date').datepicker({ + changeMonth: true, + changeYear: true, + showButtonPanel: true, + beforeShow: function(input, inst) { + var calendar_holder = $('#calendar_holder'); + var date = calendar_holder.fullCalendar('getDate'); + inst.input.datepicker('setDate', date); + inst.input.val(calendar_holder.fullCalendar('getView').title); + return inst; + }, + onSelect: function(value, inst) { + var date = inst.input.datepicker('getDate'); + $('#calendar_holder').fullCalendar('gotoDate', date); + } + }); fillWindow($('#content')); OCCategories.changed = Calendar.UI.categoriesChanged; OCCategories.app = 'calendar'; From 61b044e00e8f0bf155f57d71924efb66547ccbf5 Mon Sep 17 00:00:00 2001 From: Bart Visscher Date: Wed, 13 Jun 2012 21:16:14 +0200 Subject: [PATCH 03/52] Files Texteditor: Use our own "Droid Sans Mono" font-face and fonts --- apps/files_texteditor/appinfo/app.php | 1 + .../DroidSansMono/DroidSansMono-webfont.eot | Bin 0 -> 78034 bytes .../DroidSansMono/DroidSansMono-webfont.svg | 630 ++++++++++++++++++ .../DroidSansMono/DroidSansMono-webfont.ttf | Bin 0 -> 77800 bytes .../DroidSansMono/DroidSansMono-webfont.woff | Bin 0 -> 46192 bytes .../DroidSansMono/Google Android License.txt | 18 + .../css/DroidSansMono/demo.html | 33 + .../css/DroidSansMono/stylesheet.css | 15 + apps/files_texteditor/js/aceeditor/ace.js | 3 +- 9 files changed, 698 insertions(+), 2 deletions(-) create mode 100644 apps/files_texteditor/css/DroidSansMono/DroidSansMono-webfont.eot create mode 100644 apps/files_texteditor/css/DroidSansMono/DroidSansMono-webfont.svg create mode 100644 apps/files_texteditor/css/DroidSansMono/DroidSansMono-webfont.ttf create mode 100644 apps/files_texteditor/css/DroidSansMono/DroidSansMono-webfont.woff create mode 100644 apps/files_texteditor/css/DroidSansMono/Google Android License.txt create mode 100644 apps/files_texteditor/css/DroidSansMono/demo.html create mode 100644 apps/files_texteditor/css/DroidSansMono/stylesheet.css diff --git a/apps/files_texteditor/appinfo/app.php b/apps/files_texteditor/appinfo/app.php index a08077ebb6..c745170018 100644 --- a/apps/files_texteditor/appinfo/app.php +++ b/apps/files_texteditor/appinfo/app.php @@ -1,5 +1,6 @@ fVH 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 literal 0 HcmV?d00001 diff --git a/apps/files_texteditor/css/DroidSansMono/DroidSansMono-webfont.svg b/apps/files_texteditor/css/DroidSansMono/DroidSansMono-webfont.svg new file mode 100644 index 0000000000..4ca5fc20dc --- /dev/null +++ b/apps/files_texteditor/css/DroidSansMono/DroidSansMono-webfont.svg @@ -0,0 +1,630 @@ + + + + +This is a custom SVG webfont generated by Font Squirrel. +Copyright : Digitized data copyright 2006 Google Corporation +Foundry : Ascender Corporation +Foundry URL : httpwwwascendercorpcom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apps/files_texteditor/css/DroidSansMono/DroidSansMono-webfont.ttf b/apps/files_texteditor/css/DroidSansMono/DroidSansMono-webfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..e125bc1f314316f8f1cb856b9ddeb6c781820f76 GIT binary patch literal 77800 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

GjQEv}F=W34J21m?uYsS4 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 literal 0 HcmV?d00001 diff --git a/apps/files_texteditor/css/DroidSansMono/Google Android License.txt b/apps/files_texteditor/css/DroidSansMono/Google Android License.txt new file mode 100644 index 0000000000..0a010886a1 --- /dev/null +++ b/apps/files_texteditor/css/DroidSansMono/Google Android License.txt @@ -0,0 +1,18 @@ +Copyright (C) 2008 The Android Open Source Project + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +########## + +This directory contains the fonts for the platform. They are licensed +under the Apache 2 license. diff --git a/apps/files_texteditor/css/DroidSansMono/demo.html b/apps/files_texteditor/css/DroidSansMono/demo.html new file mode 100644 index 0000000000..e305598817 --- /dev/null +++ b/apps/files_texteditor/css/DroidSansMono/demo.html @@ -0,0 +1,33 @@ + + + + + + + Font Face Demo + + + + + +

+ + diff --git a/apps/files_texteditor/css/DroidSansMono/stylesheet.css b/apps/files_texteditor/css/DroidSansMono/stylesheet.css new file mode 100644 index 0000000000..5bf9122ed7 --- /dev/null +++ b/apps/files_texteditor/css/DroidSansMono/stylesheet.css @@ -0,0 +1,15 @@ +/* Generated by Font Squirrel (http://www.fontsquirrel.com) on June 13, 2012 02:50:54 PM America/New_York */ + + + +@font-face { + font-family: 'Droid Sans Mono'; + src: url('%appswebroot%/apps/files_texteditor/css/DroidSansMono/DroidSansMono-webfont.eot'); + src: url('%appswebroot%/apps/files_texteditor/css/DroidSansMono/DroidSansMono-webfont.eot?#iefix') format('embedded-opentype'), + url('%appswebroot%/apps/files_texteditor/css/DroidSansMono/DroidSansMono-webfont.woff') format('woff'), + url('%appswebroot%/apps/files_texteditor/css/DroidSansMono/DroidSansMono-webfont.ttf') format('truetype'), + url('%appswebroot%/apps/files_texteditor/css/DroidSansMono/DroidSansMono-webfont.svg#DroidSansMonoRegular') format('svg'); + font-weight: normal; + font-style: normal; + +} diff --git a/apps/files_texteditor/js/aceeditor/ace.js b/apps/files_texteditor/js/aceeditor/ace.js index 6043589ac1..679230926e 100644 --- a/apps/files_texteditor/js/aceeditor/ace.js +++ b/apps/files_texteditor/js/aceeditor/ace.js @@ -1,4 +1,4 @@ -(function(){function g(a){if(typeof requirejs!="undefined"){var e=b.define;b.define=function(a,b,c){return typeof c!="function"?e.apply(this,arguments):e(a,b,function(a,d,e){return b[2]=="module"&&(e.packaged=!0),c.apply(this,arguments)})},b.define.packaged=!0;return}var f=function(a,b){return d("",a,b)};f.packaged=!0;var g=b;a&&(b[a]||(b[a]={}),g=b[a]),g.define&&(c.original=g.define),g.define=c,g.require&&(d.original=g.require),g.require=f}var a="",b=function(){return this}(),c=function(a,b,d){if(typeof a!="string"){c.original?c.original.apply(window,arguments):(console.error("dropping module because define wasn't a string."),console.trace());return}arguments.length==2&&(d=b),c.modules||(c.modules={}),c.modules[a]=d},d=function(a,b,c){if(Object.prototype.toString.call(b)==="[object Array]"){var e=[];for(var g=0,h=b.length;g1&&h(b,"")>-1&&(i=RegExp(this.source,d.replace.call(g(this),"g","")),d.replace.call(a.slice(b.index),i,function(){for(var a=1;ab.index&&this.lastIndex--}return b},f||(RegExp.prototype.test=function(a){var b=d.exec.call(this,a);return b&&this.global&&!b[0].length&&this.lastIndex>b.index&&this.lastIndex--,!!b})}),define("ace/lib/es5-shim",["require","exports","module"],function(a,b,c){function p(a){try{return Object.defineProperty(a,"sentinel",{}),"sentinel"in a}catch(b){}}Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=g.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,h=c.apply(f,d.concat(g.call(arguments)));return h!==null&&Object(h)===h?h:f}return c.apply(b,d.concat(g.call(arguments)))};return e});var d=Function.prototype.call,e=Array.prototype,f=Object.prototype,g=e.slice,h=d.bind(f.toString),i=d.bind(f.hasOwnProperty),j,k,l,m,n;if(n=i(f,"__defineGetter__"))j=d.bind(f.__defineGetter__),k=d.bind(f.__defineSetter__),l=d.bind(f.__lookupGetter__),m=d.bind(f.__lookupSetter__);Array.isArray||(Array.isArray=function(b){return h(b)=="[object Array]"}),Array.prototype.forEach||(Array.prototype.forEach=function(b){var c=G(this),d=arguments[1],e=0,f=c.length>>>0;if(h(b)!="[object Function]")throw new TypeError;while(e>>0,e=Array(d),f=arguments[1];if(h(b)!="[object Function]")throw new TypeError;for(var g=0;g>>0,e=[],f=arguments[1];if(h(b)!="[object Function]")throw new TypeError;for(var g=0;g>>0,e=arguments[1];if(h(b)!="[object Function]")throw new TypeError;for(var f=0;f>>0,e=arguments[1];if(h(b)!="[object Function]")throw new TypeError;for(var f=0;f>>0;if(h(b)!="[object Function]")throw new TypeError;if(!d&&arguments.length==1)throw new TypeError;var e=0,f;if(arguments.length>=2)f=arguments[1];else do{if(e in c){f=c[e++];break}if(++e>=d)throw new TypeError}while(!0);for(;e>>0;if(h(b)!="[object Function]")throw new TypeError;if(!d&&arguments.length==1)throw new TypeError;var e,f=d-1;if(arguments.length>=2)e=arguments[1];else do{if(f in c){e=c[f--];break}if(--f<0)throw new TypeError}while(!0);do f in this&&(e=b.call(void 0,e,c[f],f,c));while(f--);return e}),Array.prototype.indexOf||(Array.prototype.indexOf=function(b){var c=G(this),d=c.length>>>0;if(!d)return-1;var e=0;arguments.length>1&&(e=E(arguments[1])),e=e>=0?e:Math.max(0,d+e);for(;e>>0;if(!d)return-1;var e=d-1;arguments.length>1&&(e=Math.min(e,E(arguments[1]))),e=e>=0?e:d-Math.abs(e);for(;e>=0;e--)if(e in c&&b===c[e])return e;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(b){return b.__proto__||(b.constructor?b.constructor.prototype:f)});if(!Object.getOwnPropertyDescriptor){var o="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(b,c){if(typeof b!="object"&&typeof b!="function"||b===null)throw new TypeError(o+b);if(!i(b,c))return;var d,e,g;d={enumerable:!0,configurable:!0};if(n){var h=b.__proto__;b.__proto__=f;var e=l(b,c),g=m(b,c);b.__proto__=h;if(e||g)return e&&(d.get=e),g&&(d.set=g),d}return d.value=b[c],d}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(b){return Object.keys(b)}),Object.create||(Object.create=function(b,c){var d;if(b===null)d={__proto__:null};else{if(typeof b!="object")throw new TypeError("typeof prototype["+typeof b+"] != 'object'");var e=function(){};e.prototype=b,d=new e,d.__proto__=b}return c!==void 0&&Object.defineProperties(d,c),d});if(Object.defineProperty){var q=p({}),r=typeof document=="undefined"||p(document.createElement("div"));if(!q||!r)var s=Object.defineProperty}if(!Object.defineProperty||s){var t="Property description must be an object: ",u="Object.defineProperty called on non-object: ",v="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(b,c,d){if(typeof b!="object"&&typeof b!="function"||b===null)throw new TypeError(u+b);if(typeof d!="object"&&typeof d!="function"||d===null)throw new TypeError(t+d);if(s)try{return s.call(Object,b,c,d)}catch(e){}if(i(d,"value"))if(n&&(l(b,c)||m(b,c))){var g=b.__proto__;b.__proto__=f,delete b[c],b[c]=d.value,b.__proto__=g}else b[c]=d.value;else{if(!n)throw new TypeError(v);i(d,"get")&&j(b,c,d.get),i(d,"set")&&k(b,c,d.set)}return b}}Object.defineProperties||(Object.defineProperties=function(b,c){for(var d in c)i(c,d)&&Object.defineProperty(b,d,c[d]);return b}),Object.seal||(Object.seal=function(b){return b}),Object.freeze||(Object.freeze=function(b){return b});try{Object.freeze(function(){})}catch(w){Object.freeze=function(b){return function(c){return typeof c=="function"?c:b(c)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(b){return b}),Object.isSealed||(Object.isSealed=function(b){return!1}),Object.isFrozen||(Object.isFrozen=function(b){return!1}),Object.isExtensible||(Object.isExtensible=function(b){if(Object(b)===b)throw new TypeError;var c="";while(i(b,c))c+="?";b[c]=!0;var d=i(b,c);return delete b[c],d});if(!Object.keys){var x=!0,y=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],z=y.length;for(var A in{toString:null})x=!1;Object.keys=function H(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var H=[];for(var b in a)i(a,b)&&H.push(b);if(x)for(var c=0,d=z;c9999?"+":"")+("00000"+Math.abs(e)).slice(0<=e&&e<=9999?-4:-6),c=b.length;while(c--)d=b[c],d<10&&(b[c]="0"+d);return e+"-"+b.slice(0,2).join("-")+"T"+b.slice(2).join(":")+"."+("000"+this.getUTCMilliseconds()).slice(-3)+"Z"};Date.now||(Date.now=function(){return(new Date).getTime()}),Date.prototype.toJSON||(Date.prototype.toJSON=function(b){if(typeof this.toISOString!="function")throw new TypeError;return this.toISOString()}),Date.parse("+275760-09-13T00:00:00.000Z")!==864e13&&(Date=function(a){var b=function e(b,c,d,f,g,h,i){var j=arguments.length;if(this instanceof a){var k=j==1&&String(b)===b?new a(e.parse(b)):j>=7?new a(b,c,d,f,g,h,i):j>=6?new a(b,c,d,f,g,h):j>=5?new a(b,c,d,f,g):j>=4?new a(b,c,d,f):j>=3?new a(b,c,d):j>=2?new a(b,c):j>=1?new a(b):new a;return k.constructor=e,k}return a.apply(this,arguments)},c=new RegExp("^(\\d{4}|[+-]\\d{6})(?:-(\\d{2})(?:-(\\d{2})(?:T(\\d{2}):(\\d{2})(?::(\\d{2})(?:\\.(\\d{3}))?)?(?:Z|(?:([-+])(\\d{2}):(\\d{2})))?)?)?)?$");for(var d in a)b[d]=a[d];return b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function(d){var e=c.exec(d);if(e){e.shift();for(var f=1;f<7;f++)e[f]=+(e[f]||(f<3?1:0)),f==1&&e[f]--;var g=+e.pop(),h=+e.pop(),i=e.pop(),j=0;if(i){if(h>23||g>59)return NaN;j=(h*60+g)*6e4*(i=="+"?-1:1)}var k=+e[0];return 0<=k&&k<=99?(e[0]=k+400,a.UTC.apply(this,e)+j-126227808e5):a.UTC.apply(this,e)+j}return a.parse.apply(this,arguments)},b}(Date));var B=" \n \f\r   ᠎              \u2028\u2029";if(!String.prototype.trim||B.trim()){B="["+B+"]";var C=new RegExp("^"+B+B+"*"),D=new RegExp(B+B+"*$");String.prototype.trim=function(){return String(this).replace(C,"").replace(D,"")}}var E=function(a){return a=+a,a!==a?a=0:a!==0&&a!==1/0&&a!==-Infinity&&(a=(a>0||-1)*Math.floor(Math.abs(a))),a},F="a"[0]!="a",G=function(a){if(a==null)throw new TypeError;return F&&typeof a=="string"&&a?a.split(""):Object(a)}}),define("ace/lib/dom",["require","exports","module"],function(a,b,c){"use strict";var d="http://www.w3.org/1999/xhtml";b.createElement=function(a,b){return document.createElementNS?document.createElementNS(b||d,a):document.createElement(a)},b.setText=function(a,b){a.innerText!==undefined&&(a.innerText=b),a.textContent!==undefined&&(a.textContent=b)},b.hasCssClass=function(a,b){var c=a.className.split(/\s+/g);return c.indexOf(b)!==-1},b.addCssClass=function(a,c){b.hasCssClass(a,c)||(a.className+=" "+c)},b.removeCssClass=function(a,b){var c=a.className.split(/\s+/g);for(;;){var d=c.indexOf(b);if(d==-1)break;c.splice(d,1)}a.className=c.join(" ")},b.toggleCssClass=function(a,b){var c=a.className.split(/\s+/g),d=!0;for(;;){var e=c.indexOf(b);if(e==-1)break;d=!1,c.splice(e,1)}return d&&c.push(b),a.className=c.join(" "),d},b.setCssClass=function(a,c,d){d?b.addCssClass(a,c):b.removeCssClass(a,c)},b.hasCssString=function(a,b){var c=0,d;b=b||document;if(b.createStyleSheet&&(d=b.styleSheets)){while(c5||Math.abs(a.clientY-j)>5)h=0;h==d&&(h=0,g(a));if(e)return b.preventDefault(a)};b.addListener(a,"mousedown",k),e.isOldIE&&b.addListener(a,"dblclick",k)},b.addCommandKeyListener=function(a,c){var d=b.addListener;if(e.isOldGecko||e.isOpera){var f=null;d(a,"keydown",function(a){f=a.keyCode}),d(a,"keypress",function(a){return g(c,a,f)})}else{var h=null;d(a,"keydown",function(a){return h=a.keyIdentifier||a.keyCode,g(c,a,a.keyCode)})}};if(window.postMessage){var h=1;b.nextTick=function(a,c){c=c||window;var d="zero-timeout-message-"+h;b.addListener(c,"message",function e(f){f.data==d&&(b.stopPropagation(f),b.removeListener(c,"message",e),a())}),c.postMessage(d,"*")}}else b.nextTick=function(a,b){b=b||window,window.setTimeout(a,0)}}),define("ace/lib/keys",["require","exports","module","ace/lib/oop"],function(a,b,c){"use strict";var d=a("./oop"),e=function(){var a={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,meta:8,command: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",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:".",188:",",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:'"'}};for(var b in a.FUNCTION_KEYS){var c=a.FUNCTION_KEYS[b].toUpperCase();a[c]=parseInt(b,10)}return d.mixin(a,a.MODIFIER_KEYS),d.mixin(a,a.PRINTABLE_KEYS),d.mixin(a,a.FUNCTION_KEYS),a}();d.mixin(b,e),b.keyCodeToString=function(a){return(e[a]||String.fromCharCode(a)).toLowerCase()}}),define("ace/lib/oop",["require","exports","module"],function(a,b,c){"use strict",b.inherits=function(){var a=function(){};return function(b,c){a.prototype=c.prototype,b.super_=c.prototype,b.prototype=new a,b.prototype.constructor=b}}(),b.mixin=function(a,b){for(var c in b)a[c]=b[c]},b.implement=function(a,c){b.mixin(a,c)}}),define("ace/lib/useragent",["require","exports","module"],function(a,b,c){"use strict";var d=(navigator.platform.match(/mac|win|linux/i)||["other"])[0].toLowerCase(),e=navigator.userAgent;b.isWin=d=="win",b.isMac=d=="mac",b.isLinux=d=="linux",b.isIE=navigator.appName=="Microsoft Internet Explorer"&&parseFloat(navigator.userAgent.match(/MSIE ([0-9]+[\.0-9]+)/)[1]),b.isOldIE=b.isIE&&b.isIE<9,b.isGecko=b.isMozilla=window.controllers&&window.navigator.product==="Gecko",b.isOldGecko=b.isGecko&&parseInt((navigator.userAgent.match(/rv\:(\d+)/)||[])[1],10)<4,b.isOpera=window.opera&&Object.prototype.toString.call(window.opera)=="[object Opera]",b.isWebKit=parseFloat(e.split("WebKit/")[1])||undefined,b.isChrome=parseFloat(e.split(" Chrome/")[1])||undefined,b.isAIR=e.indexOf("AdobeAIR")>=0,b.isIPad=e.indexOf("iPad")>=0,b.isTouchPad=e.indexOf("TouchPad")>=0,b.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},b.getOS=function(){return b.isMac?b.OS.MAC:b.isLinux?b.OS.LINUX:b.OS.WINDOWS}}),define("ace/editor",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/oop","ace/lib/lang","ace/lib/useragent","ace/keyboard/textinput","ace/mouse/mouse_handler","ace/mouse/fold_handler","ace/keyboard/keybinding","ace/edit_session","ace/search","ace/range","ace/lib/event_emitter","ace/commands/command_manager","ace/commands/default_commands"],function(a,b,c){"use strict",a("./lib/fixoldbrowsers");var d=a("./lib/oop"),e=a("./lib/lang"),f=a("./lib/useragent"),g=a("./keyboard/textinput").TextInput,h=a("./mouse/mouse_handler").MouseHandler,i=a("./mouse/fold_handler").FoldHandler,j=a("./keyboard/keybinding").KeyBinding,k=a("./edit_session").EditSession,l=a("./search").Search,m=a("./range").Range,n=a("./lib/event_emitter").EventEmitter,o=a("./commands/command_manager").CommandManager,p=a("./commands/default_commands").commands,q=function(a,b){var c=a.getContainerElement();this.container=c,this.renderer=a,this.textInput=new g(a.getTextAreaContainer(),this),this.keyBinding=new j(this),f.isIPad||(this.$mouseHandler=new h(this),new i(this)),this.$blockScrolling=0,this.$search=(new l).set({wrap:!0}),this.commands=new o(f.isMac?"mac":"win",p),this.setSession(b||new k(""))};(function(){d.implement(this,n),this.setKeyboardHandler=function(a){this.keyBinding.setKeyboardHandler(a)},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(a){if(this.session==a)return;if(this.session){var b=this.session;this.session.removeEventListener("change",this.$onDocumentChange),this.session.removeEventListener("changeMode",this.$onChangeMode),this.session.removeEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.session.removeEventListener("changeTabSize",this.$onChangeTabSize),this.session.removeEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.session.removeEventListener("changeWrapMode",this.$onChangeWrapMode),this.session.removeEventListener("onChangeFold",this.$onChangeFold),this.session.removeEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.session.removeEventListener("changeBackMarker",this.$onChangeBackMarker),this.session.removeEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.session.removeEventListener("changeAnnotation",this.$onChangeAnnotation),this.session.removeEventListener("changeOverwrite",this.$onCursorChange),this.session.removeEventListener("changeScrollTop",this.$onScrollTopChange),this.session.removeEventListener("changeLeftTop",this.$onScrollLeftChange);var c=this.session.getSelection();c.removeEventListener("changeCursor",this.$onCursorChange),c.removeEventListener("changeSelection",this.$onSelectionChange)}this.session=a,this.$onDocumentChange=this.onDocumentChange.bind(this),a.addEventListener("change",this.$onDocumentChange),this.renderer.setSession(a),this.$onChangeMode=this.onChangeMode.bind(this),a.addEventListener("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),a.addEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.updateText.bind(this.renderer),a.addEventListener("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),a.addEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),a.addEventListener("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),a.addEventListener("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.addEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.addEventListener("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.addEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.addEventListener("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.addEventListener("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.addEventListener("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.addEventListener("changeScrollLeft",this.$onScrollLeftChange),this.selection=a.getSelection(),this.selection.addEventListener("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.addEventListener("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.$blockScrolling+=1,this.onCursorChange(),this.$blockScrolling-=1,this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull(),this._emit("changeSession",{session:a,oldSession:b})},this.getSession=function(){return this.session},this.getSelection=function(){return this.selection},this.resize=function(){this.renderer.onResize()},this.setTheme=function(a){this.renderer.setTheme(a)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(a){this.renderer.setStyle(a)},this.unsetStyle=function(a){this.renderer.unsetStyle(a)},this.setFontSize=function(a){this.container.style.fontSize=a,this.renderer.updateFontSize()},this.$highlightBrackets=function(){this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null);if(this.$highlightPending)return;var a=this;this.$highlightPending=!0,setTimeout(function(){a.$highlightPending=!1;var b=a.session.findMatchingBracket(a.getCursorPosition());if(b){var c=new m(b.row,b.column,b.row,b.column+1);a.session.$bracketHighlight=a.session.addMarker(c,"ace_bracket","text")}},10)},this.focus=function(){var a=this;setTimeout(function(){a.textInput.focus()}),this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(){this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus")},this.onBlur=function(){this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur")},this.onDocumentChange=function(a){var b=a.data,c=b.range,d;c.start.row==c.end.row&&b.action!="insertLines"&&b.action!="removeLines"?d=c.end.row:d=Infinity,this.renderer.updateLines(c.start.row,d),this._emit("change",a),this.onCursorChange()},this.onTokenizerUpdate=function(a){var b=a.data;this.renderer.updateLines(b.first,b.last)},this.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},this.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},this.onCursorChange=function(){this.renderer.updateCursor(),this.$blockScrolling||this.renderer.scrollCursorIntoView(),this.renderer.moveTextAreaToCursor(this.textInput.getElement()),this.$highlightBrackets(),this.$updateHighlightActiveLine()},this.$updateHighlightActiveLine=function(){var a=this.getSession();a.$highlightLineMarker&&a.removeMarker(a.$highlightLineMarker),typeof this.$lastrow=="number"&&this.renderer.removeGutterDecoration(this.$lastrow,"ace_gutter_active_line"),a.$highlightLineMarker=null,this.$lastrow=null;if(this.getHighlightActiveLine()){var b=this.getCursorPosition(),c=this.session.getFoldLine(b.row);if(this.getSelectionStyle()!="line"||!this.selection.isMultiLine()){var d;c?d=new m(c.start.row,0,c.end.row+1,0):d=new m(b.row,0,b.row+1,0),a.$highlightLineMarker=a.addMarker(d,"ace_active_line","background")}this.renderer.addGutterDecoration(this.$lastrow=b.row,"ace_gutter_active_line")}},this.onSelectionChange=function(a){var b=this.getSession();b.$selectionMarker&&b.removeMarker(b.$selectionMarker),b.$selectionMarker=null;if(!this.selection.isEmpty()){var c=this.selection.getRange(),d=this.getSelectionStyle();b.$selectionMarker=b.addMarker(c,"ace_selection",d)}else this.$updateHighlightActiveLine();this.$highlightSelectedWord&&this.session.getMode().highlightSelection(this)},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.setBreakpoints(this.session.getBreakpoints())},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(){this.renderer.updateText()},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getCopyText=function(){var a="";return this.selection.isEmpty()||(a=this.session.getTextRange(this.getSelectionRange())),this._emit("copy",a),a},this.onCut=function(){this.commands.exec("cut",this)},this.insert=function(a){var b=this.session,c=b.getMode(),d=this.getCursorPosition();if(this.getBehavioursEnabled()){var e=c.transformAction(b.getState(d.row),"insertion",this,b,a);e&&(a=e.text)}a=a.replace(" ",this.session.getTabString());if(!this.selection.isEmpty())d=this.session.remove(this.getSelectionRange()),this.clearSelection();else if(this.session.getOverwrite()){var f=new m.fromPoints(d,d);f.end.column+=a.length,this.session.remove(f)}this.clearSelection();var g=d.column,h=b.getState(d.row),i=c.checkOutdent(h,b.getLine(d.row),a),j=b.getLine(d.row),k=c.getNextLineIndent(h,j.slice(0,d.column),b.getTabString()),l=b.insert(d,a);e&&e.selection&&(e.selection.length==2?this.selection.setSelectionRange(new m(d.row,g+e.selection[0],d.row,g+e.selection[1])):this.selection.setSelectionRange(new m(d.row+e.selection[0],e.selection[1],d.row+e.selection[2],e.selection[3])));var h=b.getState(d.row);if(b.getDocument().isNewLine(a)){this.moveCursorTo(d.row+1,0);var n=b.getTabSize(),o=Number.MAX_VALUE;for(var p=d.row+1;p<=l.row;++p){var q=0;j=b.getLine(p);for(var r=0;r0;++r)j.charAt(r)==" "?s-=n:j.charAt(r)==" "&&(s-=1);b.remove(new m(p,0,p,r))}b.indentRows(d.row+1,l.row,k)}i&&c.autoOutdent(h,b,d.row)},this.onTextInput=function(a,b){b&&this._emit("paste",a),this.keyBinding.onTextInput(a,b)},this.onCommandKey=function(a,b,c){this.keyBinding.onCommandKey(a,b,c)},this.setOverwrite=function(a){this.session.setOverwrite(a)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(a){this.$mouseHandler.setScrollSpeed(a)},this.getScrollSpeed=function(){return this.$mouseHandler.getScrollSpeed()},this.setDragDelay=function(a){this.$mouseHandler.setDragDelay(a)},this.getDragDelay=function(){return this.$mouseHandler.getDragDelay()},this.$selectionStyle="line",this.setSelectionStyle=function(a){if(this.$selectionStyle==a)return;this.$selectionStyle=a,this.onSelectionChange(),this._emit("changeSelectionStyle",{data:a})},this.getSelectionStyle=function(){return this.$selectionStyle},this.$highlightActiveLine=!0,this.setHighlightActiveLine=function(a){if(this.$highlightActiveLine==a)return;this.$highlightActiveLine=a,this.$updateHighlightActiveLine()},this.getHighlightActiveLine=function(){return this.$highlightActiveLine},this.$highlightSelectedWord=!0,this.setHighlightSelectedWord=function(a){if(this.$highlightSelectedWord==a)return;this.$highlightSelectedWord=a,a?this.session.getMode().highlightSelection(this):this.session.getMode().clearSelectionHighlight(this)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(a){this.renderer.setAnimatedScroll(a)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(a){if(this.getShowInvisibles()==a)return;this.renderer.setShowInvisibles(a)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setShowPrintMargin=function(a){this.renderer.setShowPrintMargin(a)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(a){this.renderer.setPrintMarginColumn(a)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.$readOnly=!1,this.setReadOnly=function(a){this.$readOnly=a},this.getReadOnly=function(){return this.$readOnly},this.$modeBehaviours=!0,this.setBehavioursEnabled=function(a){this.$modeBehaviours=a},this.getBehavioursEnabled=function(){return this.$modeBehaviours},this.setShowFoldWidgets=function(a){var b=this.renderer.$gutterLayer;if(b.getShowFoldWidgets()==a)return;this.renderer.$gutterLayer.setShowFoldWidgets(a),this.$showFoldWidgets=a,this.renderer.updateFull()},this.getShowFoldWidgets=function(){return this.renderer.$gutterLayer.getShowFoldWidgets()},this.remove=function(a){this.selection.isEmpty()&&(a=="left"?this.selection.selectLeft():this.selection.selectRight());var b=this.getSelectionRange();if(this.getBehavioursEnabled()){var c=this.session,d=c.getState(b.start.row),e=c.getMode().transformAction(d,"deletion",this,c,b);e&&(b=e)}this.session.remove(b),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 a=this.getSelectionRange();a.start.column==a.end.column&&a.start.row==a.end.row&&(a.end.column=0,a.end.row++),this.session.remove(a),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var a=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(a)},this.transposeLetters=function(){if(!this.selection.isEmpty())return;var a=this.getCursorPosition(),b=a.column;if(b===0)return;var c=this.session.getLine(a.row),d,e;b=this.getFirstVisibleRow()&&a<=this.getLastVisibleRow()},this.isRowFullyVisible=function(a){return a>=this.renderer.getFirstFullyVisibleRow()&&a<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$getPageDownRow=function(){return this.renderer.getScrollBottomRow()},this.$getPageUpRow=function(){var a=this.renderer.getScrollTopRow(),b=this.renderer.getScrollBottomRow();return a-(b-a)},this.selectPageDown=function(){var a=this.$getPageDownRow()+Math.floor(this.$getVisibleRowCount()/2);this.scrollPageDown();var b=this.getSelection(),c=this.session.documentToScreenPosition(b.getSelectionLead()),d=this.session.screenToDocumentPosition(a,c.column);b.selectTo(d.row,d.column)},this.selectPageUp=function(){var a=this.renderer.getScrollTopRow()-this.renderer.getScrollBottomRow(),b=this.$getPageUpRow()+Math.round(a/2);this.scrollPageUp();var c=this.getSelection(),d=this.session.documentToScreenPosition(c.getSelectionLead()),e=this.session.screenToDocumentPosition(b,d.column);c.selectTo(e.row,e.column)},this.gotoPageDown=function(){var a=this.$getPageDownRow(),b=this.getCursorPositionScreen().column;this.scrollToRow(a),this.getSelection().moveCursorToScreen(a,b)},this.gotoPageUp=function(){var a=this.$getPageUpRow(),b=this.getCursorPositionScreen().column;this.scrollToRow(a),this.getSelection().moveCursorToScreen(a,b)},this.scrollPageDown=function(){this.scrollToRow(this.$getPageDownRow())},this.scrollPageUp=function(){this.renderer.scrollToRow(this.$getPageUpRow())},this.scrollToRow=function(a){this.renderer.scrollToRow(a)},this.scrollToLine=function(a,b){this.renderer.scrollToLine(a,b)},this.centerSelection=function(){var a=this.getSelectionRange(),b=Math.floor(a.start.row+(a.end.row-a.start.row)/2);this.renderer.scrollToLine(b,!0)},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(a,b){this.selection.moveCursorTo(a,b)},this.moveCursorToPosition=function(a){this.selection.moveCursorToPosition(a)},this.jumpToMatching=function(){var a=this.getCursorPosition(),b=this.session.findMatchingBracket(a);b||(a.column+=1,b=this.session.findMatchingBracket(a)),b||(a.column-=2,b=this.session.findMatchingBracket(a)),b&&(this.clearSelection(),this.moveCursorTo(b.row,b.column))},this.gotoLine=function(a,b){this.selection.clearSelection(),this.session.unfold({row:a-1,column:b||0}),this.$blockScrolling+=1,this.moveCursorTo(a-1,b||0),this.$blockScrolling-=1,this.isRowFullyVisible(this.getCursorPosition().row)||this.scrollToLine(a,!0)},this.navigateTo=function(a,b){this.clearSelection(),this.moveCursorTo(a,b)},this.navigateUp=function(a){this.selection.clearSelection(),a=a||1,this.selection.moveCursorBy(-a,0)},this.navigateDown=function(a){this.selection.clearSelection(),a=a||1,this.selection.moveCursorBy(a,0)},this.navigateLeft=function(a){if(!this.selection.isEmpty()){var b=this.getSelectionRange().start;this.moveCursorToPosition(b)}else{a=a||1;while(a--)this.selection.moveCursorLeft()}this.clearSelection()},this.navigateRight=function(a){if(!this.selection.isEmpty()){var b=this.getSelectionRange().end;this.moveCursorToPosition(b)}else{a=a||1;while(a--)this.selection.moveCursorRight()}this.clearSelection()},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection()},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection()},this.navigateFileEnd=function(){this.selection.moveCursorFileEnd(),this.clearSelection()},this.navigateFileStart=function(){this.selection.moveCursorFileStart(),this.clearSelection()},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection()},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection()},this.replace=function(a,b){b&&this.$search.set(b);var c=this.$search.find(this.session),d=0;return c?(this.$tryReplace(c,a)&&(d=1),c!==null&&(this.selection.setSelectionRange(c),this.renderer.scrollSelectionIntoView(c.start,c.end)),d):d},this.replaceAll=function(a,b){b&&this.$search.set(b);var c=this.$search.findAll(this.session),d=0;if(!c.length)return d;var e=this.getSelectionRange();this.clearSelection(),this.selection.moveCursorTo(0,0),this.$blockScrolling+=1;for(var f=c.length-1;f>=0;--f)this.$tryReplace(c[f],a)&&d++;return this.selection.setSelectionRange(e),this.$blockScrolling-=1,d},this.$tryReplace=function(a,b){var c=this.session.getTextRange(a);return b=this.$search.replace(c,b),b!==null?(a.end=this.session.replace(a,b),a):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(a,b){this.clearSelection(),b=b||{},b.needle=a,this.$search.set(b),this.$find()},this.findNext=function(a){a=a||{},typeof a.backwards=="undefined"&&(a.backwards=!1),this.$search.set(a),this.$find()},this.findPrevious=function(a){a=a||{},typeof a.backwards=="undefined"&&(a.backwards=!0),this.$search.set(a),this.$find()},this.$find=function(a){this.selection.isEmpty()||this.$search.set({needle:this.session.getTextRange(this.getSelectionRange())}),typeof a!="undefined"&&this.$search.set({backwards:a});var b=this.$search.find(this.session);if(b){this.session.unfold(b),this.$blockScrolling+=1,this.selection.setSelectionRange(b),this.$blockScrolling-=1;if(this.getAnimatedScroll()){var c=this.getCursorPosition();this.isRowFullyVisible(c.row)||this.scrollToLine(c.row,!0)}else this.renderer.scrollSelectionIntoView(b.start,b.end)}},this.undo=function(){this.session.getUndoManager().undo()},this.redo=function(){this.session.getUndoManager().redo()},this.destroy=function(){this.renderer.destroy()}}).call(q.prototype),b.Editor=q}),define("ace/lib/lang",["require","exports","module"],function(a,b,c){"use strict",b.stringReverse=function(a){return a.split("").reverse().join("")},b.stringRepeat=function(a,b){return(new Array(b+1)).join(a)};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"")},b.stringTrimRight=function(a){return a.replace(e,"")},b.copyObject=function(a){var b={};for(var c in a)b[c]=a[c];return b},b.copyArray=function(a){var b=[];for(var c=0,d=a.length;c128)return;setTimeout(function(){h||m()},0)},p=function(a){h=!0,b.onCompositionStart(),e.isGecko||setTimeout(q,0)},q=function(){if(!h)return;b.onCompositionUpdate(c.value)},r=function(a){h=!1,b.onCompositionEnd()},s=function(a){i=!0;var d=b.getCopyText();d?c.value=d:a.preventDefault(),l(),setTimeout(function(){m()},0)},t=function(a){i=!0;var d=b.getCopyText();d?(c.value=d,b.onCut()):a.preventDefault(),l(),setTimeout(function(){m()},0)};d.addCommandKeyListener(c,b.onCommandKey.bind(b));if(e.isOldIE){var u={13:1,27:1};d.addListener(c,"keyup",function(a){h&&(!c.value||u[a.keyCode])&&setTimeout(r,0);if((c.value.charCodeAt(0)|0)<129)return;h?q():p()})}"onpropertychange"in c&&!("oninput"in c)?d.addListener(c,"propertychange",o):d.addListener(c,"input",n),d.addListener(c,"paste",function(a){j=!0,a.clipboardData&&a.clipboardData.getData?(m(a.clipboardData.getData("text/plain")),a.preventDefault()):o()}),"onbeforecopy"in c&&typeof clipboardData!="undefined"?(d.addListener(c,"beforecopy",function(a){var c=b.getCopyText();c?clipboardData.setData("Text",c):a.preventDefault()}),d.addListener(a,"keydown",function(a){if(a.ctrlKey&&a.keyCode==88){var c=b.getCopyText();c&&(clipboardData.setData("Text",c),b.onCut()),d.preventDefault(a)}})):(d.addListener(c,"copy",s),d.addListener(c,"cut",t)),d.addListener(c,"compositionstart",p),e.isGecko&&d.addListener(c,"text",q),e.isWebKit&&d.addListener(c,"keyup",q),d.addListener(c,"compositionend",r),d.addListener(c,"blur",function(){b.onBlur()}),d.addListener(c,"focus",function(){b.onFocus(),l()}),this.focus=function(){b.onFocus(),l(),c.focus()},this.blur=function(){c.blur()},this.isFocused=v,this.getElement=function(){return c},this.onContextMenu=function(a,b){a&&(k||(k=c.style.cssText),c.style.cssText="position:fixed; z-index:1000;left:"+(a.x-2)+"px; top:"+(a.y-2)+"px;"),b&&(c.value="")},this.onContextMenuClose=function(){setTimeout(function(){k&&(c.style.cssText=k,k=""),m()},0)}};b.TextInput=g}),define("ace/mouse/mouse_handler",["require","exports","module","ace/lib/event","ace/mouse/default_handlers","ace/mouse/default_gutter_handler","ace/mouse/mouse_event"],function(a,b,c){"use strict";var d=a("../lib/event"),e=a("./default_handlers").DefaultHandlers,f=a("./default_gutter_handler").GutterHandler,g=a("./mouse_event").MouseEvent,h=function(a){this.editor=a,new e(a),new f(a),d.addListener(a.container,"mousedown",function(b){return a.focus(),d.preventDefault(b)}),d.addListener(a.container,"selectstart",function(a){return d.preventDefault(a)});var b=a.renderer.getMouseEventTarget();d.addListener(b,"mousedown",this.onMouseEvent.bind(this,"mousedown")),d.addListener(b,"click",this.onMouseEvent.bind(this,"click")),d.addListener(b,"mousemove",this.onMouseMove.bind(this,"mousemove")),d.addMultiMouseDownListener(b,0,2,500,this.onMouseEvent.bind(this,"dblclick")),d.addMultiMouseDownListener(b,0,3,600,this.onMouseEvent.bind(this,"tripleclick")),d.addMultiMouseDownListener(b,0,4,600,this.onMouseEvent.bind(this,"quadclick")),d.addMouseWheelListener(a.container,this.onMouseWheel.bind(this,"mousewheel"));var c=a.renderer.$gutter;d.addListener(c,"mousedown",this.onMouseEvent.bind(this,"guttermousedown")),d.addListener(c,"click",this.onMouseEvent.bind(this,"gutterclick")),d.addListener(c,"dblclick",this.onMouseEvent.bind(this,"gutterdblclick")),d.addListener(c,"mousemove",this.onMouseMove.bind(this,"gutter"))};(function(){this.$scrollSpeed=1,this.setScrollSpeed=function(a){this.$scrollSpeed=a},this.getScrollSpeed=function(){return this.$scrollSpeed},this.onMouseEvent=function(a,b){this.editor._emit(a,new g(b,this.editor))},this.$dragDelay=250,this.setDragDelay=function(a){this.$dragDelay=a},this.getDragDelay=function(){return this.$dragDelay},this.onMouseMove=function(a,b){var c=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;if(!c||!c.length)return;this.editor._emit(a,new g(b,this.editor))},this.onMouseWheel=function(a,b){var c=new g(b,this.editor);c.speed=this.$scrollSpeed*2,c.wheelX=b.wheelX,c.wheelY=b.wheelY,this.editor._emit(a,c)}}).call(h.prototype),b.MouseHandler=h}),define("ace/mouse/default_handlers",["require","exports","module","ace/lib/event","ace/lib/dom","ace/lib/browser_focus"],function(a,b,c){function k(a){this.editor=a,this.$clickSelection=null,this.browserFocus=new f,a.setDefaultHandler("mousedown",this.onMouseDown.bind(this)),a.setDefaultHandler("dblclick",this.onDoubleClick.bind(this)),a.setDefaultHandler("tripleclick",this.onTripleClick.bind(this)),a.setDefaultHandler("quadclick",this.onQuadClick.bind(this)),a.setDefaultHandler("mousewheel",this.onScroll.bind(this))}function l(a,b,c,d){return Math.sqrt(Math.pow(c-a,2)+Math.pow(d-b,2))}"use strict";var d=a("../lib/event"),e=a("../lib/dom"),f=a("../lib/browser_focus").BrowserFocus,g=0,h=1,i=2,j=5;(function(){this.onMouseDown=function(a){function C(b){a.getShiftKey()?m.selection.selectToPosition(b):n.$clickSelection||(m.moveCursorToPosition(b),m.selection.clearSelection()),q=h}var b=a.inSelection(),c=a.pageX,f=a.pageY,k=a.getDocumentPosition(),m=this.editor,n=this,o=m.getSelectionRange(),p=o.isEmpty(),q=g;if(b&&(!this.browserFocus.isFocused()||(new Date).getTime()-this.browserFocus.lastFocus<20||!m.isFocused())){m.focus();return}var r=a.getButton();if(r!==0){p&&m.moveCursorToPosition(k),r==2&&(m.textInput.onContextMenu({x:a.clientX,y:a.clientY},p),d.capture(m.container,function(){},m.textInput.onContextMenuClose));return}b||C(k);var s=c,t=f,u=(new Date).getTime(),v,w,x,y=function(a){s=d.getDocumentX(a),t=d.getDocumentY(a)},z=function(a){clearInterval(F),q==g?C(k):q==i&&A(a),n.$clickSelection=null,q=g},A=function(a){e.removeCssClass(m.container,"ace_dragging"),m.session.removeMarker(x),m.$mouseHandler.$clickSelection||v||(m.moveCursorToPosition(k),m.selection.clearSelection());if(!v)return;if(w.contains(v.row,v.column)){v=null;return}m.clearSelection();if(a&&(a.ctrlKey||a.altKey))var b=m.session,c=b.insert(v,b.getTextRange(w));else var c=m.moveText(w,v);if(!c){v=null;return}m.selection.setSelectionRange(c)},B=function(){if(q==g){var a=l(c,f,s,t),b=(new Date).getTime();if(a>j){q=h;var d=m.renderer.screenToTextCoordinates(s,t);C(d)}else if(b-u>m.getDragDelay()){q=i,w=m.getSelectionRange();var k=m.getSelectionStyle();x=m.session.addMarker(w,"ace_selection",k),m.clearSelection(),e.addCssClass(m.container,"ace_dragging")}}q==i?E():q==h&&D()},D=function(){var a,b=m.renderer.screenToTextCoordinates(s,t);n.$clickSelection?n.$clickSelection.contains(b.row,b.column)?m.selection.setSelectionRange(n.$clickSelection):(n.$clickSelection.compare(b.row,b.column)==-1?a=n.$clickSelection.end:a=n.$clickSelection.start,m.selection.setSelectionAnchor(a.row,a.column),m.selection.selectToPosition(b)):m.selection.selectToPosition(b),m.renderer.scrollCursorIntoView()},E=function(){v=m.renderer.screenToTextCoordinates(s,t),m.moveCursorToPosition(v)};d.capture(m.container,y,z);var F=setInterval(B,20);return a.preventDefault()},this.onDoubleClick=function(a){var b=a.getDocumentPosition(),c=this.editor;c.moveCursorToPosition(b),c.selection.selectWord(),this.$clickSelection=c.getSelectionRange()},this.onTripleClick=function(a){var b=a.getDocumentPosition(),c=this.editor;c.moveCursorToPosition(b),c.selection.selectLine(),this.$clickSelection=c.getSelectionRange()},this.onQuadClick=function(a){var b=this.editor;b.selectAll(),this.$clickSelection=b.getSelectionRange()},this.onScroll=function(a){var b=this.editor;b.renderer.scrollBy(a.wheelX*a.speed,a.wheelY*a.speed);if(b.renderer.isScrollableBy(a.wheelX*a.speed,a.wheelY*a.speed))return a.preventDefault()}}).call(k.prototype),b.DefaultHandlers=k}),define("ace/lib/browser_focus",["require","exports","module","ace/lib/oop","ace/lib/event","ace/lib/event_emitter"],function(a,b,c){"use strict";var d=a("./oop"),e=a("./event"),f=a("./event_emitter").EventEmitter,g=function(a){a=a||window,this.lastFocus=(new Date).getTime(),this._isFocused=!0;var b=this;"onfocusin"in a.document?(e.addListener(a.document,"focusin",function(a){b._setFocused(!0)}),e.addListener(a.document,"focusout",function(a){b._setFocused(!!a.toElement)})):(e.addListener(a,"blur",function(a){b._setFocused(!1)}),e.addListener(a,"focus",function(a){b._setFocused(!0)}))};(function(){d.implement(this,f),this.isFocused=function(){return this._isFocused},this._setFocused=function(a){if(this._isFocused==a)return;a&&(this.lastFocus=(new Date).getTime()),this._isFocused=a,this._emit("changeFocus")}}).call(g.prototype),b.BrowserFocus=g}),define("ace/lib/event_emitter",["require","exports","module"],function(a,b,c){"use strict";var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{},this._defaultHandlers=this._defaultHandlers||{};var c=this._eventRegistry[a]||[],d=this._defaultHandlers[a];if(!c.length&&!d)return;b=b||{},b.type=a,b.stopPropagation||(b.stopPropagation=function(){this.propagationStopped=!0}),b.preventDefault||(b.preventDefault=function(){this.defaultPrevented=!0});for(var e=0;e=4352&&a<=4447||a>=4515&&a<=4519||a>=4602&&a<=4607||a>=9001&&a<=9002||a>=11904&&a<=11929||a>=11931&&a<=12019||a>=12032&&a<=12245||a>=12272&&a<=12283||a>=12288&&a<=12350||a>=12353&&a<=12438||a>=12441&&a<=12543||a>=12549&&a<=12589||a>=12593&&a<=12686||a>=12688&&a<=12730||a>=12736&&a<=12771||a>=12784&&a<=12830||a>=12832&&a<=12871||a>=12880&&a<=13054||a>=13056&&a<=19903||a>=19968&&a<=42124||a>=42128&&a<=42182||a>=43360&&a<=43388||a>=44032&&a<=55203||a>=55216&&a<=55238||a>=55243&&a<=55291||a>=63744&&a<=64255||a>=65040&&a<=65049||a>=65072&&a<=65106||a>=65108&&a<=65126||a>=65128&&a<=65131||a>=65281&&a<=65376||a>=65504&&a<=65510}e.implement(this,h),this.setDocument=function(a){if(this.doc)throw new Error("Document is already set");this.doc=a,a.on("change",this.onChange.bind(this)),this.on("changeFold",this.onChangeFold.bind(this)),this.bgTokenizer&&(this.bgTokenizer.setDocument(this.getDocument()),this.bgTokenizer.start(0))},this.getDocument=function(){return this.doc},this.$resetRowCache=function(a){if(a==0){this.$rowCache=[];return}var b=this.$rowCache;for(var c=0;c=a){b.splice(c,b.length);return}},this.onChangeFold=function(a){var b=a.data;this.$resetRowCache(b.start.row)},this.onChange=function(a){var b=a.data;this.$modified=!0,this.$resetRowCache(b.range.start.row);var c=this.$updateInternalDataOnChange(a);!this.$fromUndo&&this.$undoManager&&!b.ignore&&(this.$deltasDoc.push(b),c&&c.length!=0&&this.$deltasFold.push({action:"removeFolds",folds:c}),this.$informUndoManager.schedule()),this.bgTokenizer.start(b.range.start.row),this._emit("change",a)},this.setValue=function(a){this.doc.setValue(a),this.selection.moveCursorTo(0,0),this.selection.clearSelection(),this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.getUndoManager().reset()},this.getValue=this.toString=function(){return this.doc.getValue()},this.getSelection=function(){return this.selection},this.getState=function(a){return this.bgTokenizer.getState(a)},this.getTokens=function(a,b){return this.bgTokenizer.getTokens(a,b)},this.getTokenAt=function(a,b){var c=this.bgTokenizer.getTokens(a,a)[0].tokens,d,e=0;if(b==null)f=c.length-1,e=this.getLine(a).length;else for(var f=0;f=b)break}return d=c[f],d?(d.index=f,d.start=e-d.value.length,d):null},this.setUndoManager=function(a){this.$undoManager=a,this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel();if(a){var b=this;this.$syncInformUndoManager=function(){b.$informUndoManager.cancel(),b.$deltasFold.length&&(b.$deltas.push({group:"fold",deltas:b.$deltasFold}),b.$deltasFold=[]),b.$deltasDoc.length&&(b.$deltas.push({group:"doc",deltas:b.$deltasDoc}),b.$deltasDoc=[]),b.$deltas.length>0&&a.execute({action:"aceupdate",args:[b.$deltas,b]}),b.$deltas=[]},this.$informUndoManager=f.deferredCall(this.$syncInformUndoManager)}},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?f.stringRepeat(" ",this.getTabSize()):" "},this.$useSoftTabs=!0,this.setUseSoftTabs=function(a){if(this.$useSoftTabs===a)return;this.$useSoftTabs=a},this.getUseSoftTabs=function(){return this.$useSoftTabs},this.$tabSize=4,this.setTabSize=function(a){if(isNaN(a)||this.$tabSize===a)return;this.$modified=!0,this.$tabSize=a,this._emit("changeTabSize")},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(a){return this.$useSoftTabs&&a.column%this.$tabSize==0},this.$overwrite=!1,this.setOverwrite=function(a){if(this.$overwrite==a)return;this.$overwrite=a,this._emit("changeOverwrite")},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(a){this.$breakpoints=[];for(var b=0;b0&&(d=!!c.charAt(b-1).match(this.tokenRe)),d||(d=!!c.charAt(b).match(this.tokenRe));var e=d?this.tokenRe:this.nonTokenRe,f=b;if(f>0){do f--;while(f>=0&&c.charAt(f).match(e));f++}var g=b;while(g=this.doc.getLength()-1)return 0;var c=this.doc.removeLines(a,b);return this.doc.insertLines(a+1,c),1},this.duplicateLines=function(a,b){var a=this.$clipRowToDocument(a),b=this.$clipRowToDocument(b),c=this.getLines(a,b);this.doc.insertLines(a,c);var d=b-a+1;return d},this.$clipRowToDocument=function(a){return Math.max(0,Math.min(a,this.doc.getLength()-1))},this.$clipColumnToRow=function(a,b){return b<0?0:Math.min(this.doc.getLine(a).length,b)},this.$clipPositionToDocument=function(a,b){b=Math.max(0,b);if(a<0)a=0,b=0;else{var c=this.doc.getLength();a>=c?(a=c-1,b=this.doc.getLine(c-1).length):b=Math.min(this.doc.getLine(a).length,b)}return{row:a,column:b}},this.$clipRangeToDocument=function(a){a.start.row<0?(a.start.row=0,a.start.column=0):a.start.column=this.$clipColumnToRow(a.start.row,a.start.column);var b=this.doc.getLength()-1;return a.end.row>b?(a.end.row=b,a.end.column=this.doc.getLine(b).length):a.end.column=this.$clipColumnToRow(a.end.row,a.end.column),a},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(a){if(a!=this.$useWrapMode){this.$useWrapMode=a,this.$modified=!0,this.$resetRowCache(0);if(a){var b=this.getLength();this.$wrapData=[];for(var c=0;c0?(this.$wrapLimit=b,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._emit("changeWrapLimit")),!0):!1},this.$constrainWrapLimit=function(a){var b=this.$wrapLimitRange.min;b&&(a=Math.max(b,a));var c=this.$wrapLimitRange.max;return c&&(a=Math.min(c,a)),Math.max(1,a)},this.getWrapLimit=function(){return this.$wrapLimit},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(a){var b=this.$useWrapMode,c,d=a.data.action,e=a.data.range.start.row,f=a.data.range.end.row,g=a.data.range.start,h=a.data.range.end,i=null;d.indexOf("Lines")!=-1?(d=="insertLines"?f=e+a.data.lines.length:f=e,c=a.data.lines?a.data.lines.length:f-e):c=f-e;if(c!=0)if(d.indexOf("remove")!=-1){b&&this.$wrapData.splice(e,c);var j=this.$foldData;i=this.getFoldsInRange(a.data.range),this.removeFolds(i);var k=this.getFoldLine(h.row),l=0;if(k){k.addRemoveChars(h.row,h.column,g.column-h.column),k.shiftRow(-c);var m=this.getFoldLine(e);m&&m!==k&&(m.merge(k),k=m),l=j.indexOf(k)+1}for(l;l=h.row&&k.shiftRow(-c)}f=e}else{var n;if(b){n=[e,0];for(var o=0;o=e&&k.shiftRow(c)}}else{c=Math.abs(a.data.range.start.column-a.data.range.end.column),d.indexOf("remove")!=-1&&(i=this.getFoldsInRange(a.data.range),this.removeFolds(i),c=-c);var k=this.getFoldLine(e);k&&k.addRemoveChars(e,g.column,c)}return b&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),b&&this.$updateWrapData(e,f),i},this.$updateWrapData=function(a,b){var c=this.doc.getAllLines(),d=this.getTabSize(),e=this.$wrapData,g=this.$wrapLimit,h,k,l=a;b=Math.min(b,c.length-1);while(l<=b){k=this.getFoldLine(l,k);if(!k)h=this.$getDisplayTokens(f.stringTrimRight(c[l])),e[l]=this.$computeWrapSplits(h,g,d),l++;else{h=[],k.walk(function(a,b,d,e){var f;if(a){f=this.$getDisplayTokens(a,h.length),f[0]=i;for(var g=1;g=n)h.pop();e[k.start.row]=this.$computeWrapSplits(h,g,d),l=k.end.row+1}}};var b=1,c=2,i=3,j=4,l=9,n=10,o=11,p=12;this.$computeWrapSplits=function(a,b){function g(b){var d=a.slice(e,b),g=d.length;d.join("").replace(/12/g,function(){g-=1}).replace(/2/g,function(){g-=1}),f+=g,c.push(f),e=b}if(a.length==0)return[];var c=[],d=a.length,e=0,f=0;while(d-e>b){var h=e+b;if(a[h]>=n){while(a[h]>=n)h++;g(h);continue}if(a[h]==i||a[h]==j){for(h;h!=e-1;h--)if(a[h]==i)break;if(h>e){g(h);continue}h=e+b;for(h;hk&&a[h]k&&a[h]==l)h--;if(h>k){g(++h);continue}h=e+b,g(h)}return c},this.$getDisplayTokens=function(a,d){var e=[],f;d=d||0;for(var g=0;g39&&h<48||h>57&&h<64?e.push(l):h>=4352&&q(h)?e.push(b,c):e.push(b)}return e},this.$getStringScreenWidth=function(a,b,c){if(b==0)return[0,0];b==null&&(b=c+a.length*Math.max(this.getTabSize(),2)),c=c||0;var d,e;for(e=0;e=4352&&q(d)?c+=2:c+=1;if(c>b)break}return[c,e]},this.getRowLength=function(a){return!this.$useWrapMode||!this.$wrapData[a]?1:this.$wrapData[a].length+1},this.getRowHeight=function(a,b){return this.getRowLength(b)*a.lineHeight},this.getScreenLastRowColumn=function(a){var b=this.screenToDocumentPosition(a,Number.MAX_VALUE);return this.documentToScreenColumn(b.row,b.column)},this.getDocumentLastRowColumn=function(a,b){var c=this.documentToScreenRow(a,b);return this.getScreenLastRowColumn(c)},this.getDocumentLastRowColumnPosition=function(a,b){var c=this.documentToScreenRow(a,b);return this.screenToDocumentPosition(c,Number.MAX_VALUE/10)},this.getRowSplitData=function(a){return this.$useWrapMode?this.$wrapData[a]:undefined},this.getScreenTabSize=function(a){return this.$tabSize-a%this.$tabSize},this.screenToDocumentRow=function(a,b){return this.screenToDocumentPosition(a,b).row},this.screenToDocumentColumn=function(a,b){return this.screenToDocumentPosition(a,b).column},this.screenToDocumentPosition=function(a,b){if(a<0)return{row:0,column:0};var c,d=0,e=0,f,g=0,h=0,i=this.$rowCache;for(var j=0;j=a||d>=l)break;g+=h,d++,d>n&&(d=m.end.row+1,m=this.getNextFoldLine(d,m),n=m?m.start.row:Infinity),k&&i.push({docRow:d,screenRow:g})}if(m&&m.start.row<=d)c=this.getFoldDisplayLine(m),d=m.start.row;else{if(g+h<=a||d>l)return{row:l,column:this.getLine(l).length};c=this.getLine(d),m=null}if(this.$useWrapMode){var o=this.$wrapData[d];o&&(f=o[a-g],a>g&&o.length&&(e=o[a-g-1]||o[o.length-1],c=c.substring(e)))}return e+=this.$getStringScreenWidth(c,b)[1],this.$useWrapMode&&e>=f&&(e=f-1),m?m.idxToPosition(e):{row:d,column:e}},this.documentToScreenPosition=function(a,b){if(typeof b=="undefined")var c=this.$clipPositionToDocument(a.row,a.column);else c=this.$clipPositionToDocument(a,b);a=c.row,b=c.column;var d;if(this.$useWrapMode){d=this.$wrapData;if(a>d.length-1)return{row:this.getScreenLength(),column:d.length==0?0:d[d.length-1].length-1}}var e=0,f=null,g=null;g=this.getFoldAt(a,b,1),g&&(a=g.start.row,b=g.start.column);var h,i=0,j=this.$rowCache;for(var k=0;k=n){h=m.end.row+1;if(h>a)break;m=this.getNextFoldLine(h,m),n=m?m.start.row:Infinity}else h=i+1;e+=this.getRowLength(i),i=h,l&&j.push({docRow:i,screenRow:e})}var o="";m&&i>=n?(o=this.getFoldDisplayLine(m,a,b),f=m.start.row):(o=this.getLine(a).substring(0,b),f=a);if(this.$useWrapMode){var p=d[f],q=0;while(o.length>=p[q])e++,q++;o=o.substring(p[q-1]||0,o.length)}return{row:e,column:this.$getStringScreenWidth(o)[0]}},this.documentToScreenColumn=function(a,b){return this.documentToScreenPosition(a,b).column},this.documentToScreenRow=function(a,b){return this.documentToScreenPosition(a,b).row},this.getScreenLength=function(){var a=0,b=null;if(!this.$useWrapMode){a=this.getLength();var c=this.$foldData;for(var d=0;dg&&(f=b.end.row+1,b=this.$foldData[d++],g=b?b.start.row:Infinity)}return a}}).call(n.prototype),a("./edit_session/folding").Folding.call(n.prototype),a("./edit_session/bracket_match").BracketMatch.call(n.prototype),b.EditSession=n}),define("ace/config",["require","exports","module","ace/lib/lang"],function(a,b,c){function g(a){return a.replace(/-(.)/g,function(a,b){return b.toUpperCase()})}"no use strict";var d=a("./lib/lang"),e=function(){return this}(),f={packaged:!1,workerPath:"",modePath:"",themePath:"",suffix:".js"};b.get=function(a){if(!f.hasOwnProperty(a))throw new Error("Unknown confik key: "+a);return f[a]},b.set=function(a,b){if(!f.hasOwnProperty(a))throw new Error("Unknown confik key: "+a);f[a]=b},b.all=function(){return d.copyObject(f)},b.init=function(){f.packaged=a.packaged||c.packaged||e.define&&define.packaged;if(!e.document)return"";var d={},h="",i,j=document.getElementsByTagName("script");for(var k=0;kb.row||a.row==b.row&&a.column>b.column},this.getRange=function(){var a=this.selectionAnchor,b=this.selectionLead;return this.isEmpty()?g.fromPoints(b,b):this.isBackwards()?g.fromPoints(b,a):g.fromPoints(a,b)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){var a=this.doc.getLength()-1;this.setSelectionAnchor(a,this.doc.getLine(a).length),this.moveCursorTo(0,0)},this.setSelectionRange=function(a,b){b?(this.setSelectionAnchor(a.end.row,a.end.column),this.selectTo(a.start.row,a.start.column)):(this.setSelectionAnchor(a.start.row,a.start.column),this.selectTo(a.end.row,a.end.column)),this.$desiredColumn=null},this.$moveSelection=function(a){var b=this.selectionLead;this.$isEmpty&&this.setSelectionAnchor(b.row,b.column),a.call(this)},this.selectTo=function(a,b){this.$moveSelection(function(){this.moveCursorTo(a,b)})},this.selectToPosition=function(a){this.$moveSelection(function(){this.moveCursorToPosition(a)})},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.selectWord=function(){var a=this.getCursor(),b=this.session.getWordRange(a.row,a.column);this.setSelectionRange(b)},this.selectAWord=function(){var a=this.getCursor(),b=this.session.getAWordRange(a.row,a.column);this.setSelectionRange(b)},this.selectLine=function(){var a=this.selectionLead.row,b,c=this.session.getFoldLine(a);c?(a=c.start.row,b=c.end.row):b=a,this.setSelectionAnchor(a,0),this.$moveSelection(function(){this.moveCursorTo(b+1,0)})},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.moveCursorLeft=function(){var a=this.selectionLead.getPosition(),b;if(b=this.session.getFoldAt(a.row,a.column,-1))this.moveCursorTo(b.start.row,b.start.column);else if(a.column==0)a.row>0&&this.moveCursorTo(a.row-1,this.doc.getLine(a.row-1).length);else{var c=this.session.getTabSize();this.session.isTabStop(a)&&this.doc.getLine(a.row).slice(a.column-c,a.column).split(" ").length-1==c?this.moveCursorBy(0,-c):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var a=this.selectionLead.getPosition(),b;if(b=this.session.getFoldAt(a.row,a.column,1))this.moveCursorTo(b.end.row,b.end.column);else if(this.selectionLead.column==this.doc.getLine(this.selectionLead.row).length)this.selectionLead.row=c.length){this.moveCursorTo(a,c.length),this.moveCursorRight(),a0&&this.moveCursorWordLeft();return}if(g=this.session.tokenRe.exec(f))b-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0;this.moveCursorTo(a,b)},this.moveCursorBy=function(a,b){var c=this.session.documentToScreenPosition(this.selectionLead.row,this.selectionLead.column);b===0&&(this.$desiredColumn?c.column=this.$desiredColumn:this.$desiredColumn=c.column);var d=this.session.screenToDocumentPosition(c.row+a,c.column);this.moveCursorTo(d.row,d.column+b,b===0)},this.moveCursorToPosition=function(a){this.moveCursorTo(a.row,a.column)},this.moveCursorTo=function(a,b,c){var d=this.session.getFoldAt(a,b,1);d&&(a=d.start.row,b=d.start.column),this.$keepDesiredColumnOnChange=!0,this.selectionLead.setPosition(a,b),this.$keepDesiredColumnOnChange=!1,c||(this.$desiredColumn=null)},this.moveCursorToScreen=function(a,b,c){var d=this.session.screenToDocumentPosition(a,b);this.moveCursorTo(d.row,d.column,c)},this.detach=function(){this.selectionLead.detach(),this.selectionAnchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(a){this.setSelectionRange(a,a.cursor==a.start),this.$desiredColumn=a.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(a){var b=this.getRange();return a?(a.start.column=b.start.column,a.start.row=b.start.row,a.end.column=b.end.column,a.end.row=b.end.row):a=b,a.cursor=this.isBackwards()?a.start:a.end,a.desiredColumn=this.$desiredColumn,a}}).call(h.prototype),b.Selection=h}),define("ace/range",["require","exports","module"],function(a,b,c){"use strict";var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d}};(function(){this.isEqual=function(a){return this.start.row==a.start.row&&this.end.row==a.end.row&&this.start.column==a.start.column&&this.end.column==a.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;return b=this.compare(c.row,c.column),b==1?(b=this.compare(d.row,d.column),b==1?2:b==0?1:0):b==-1?-2:(b=this.compare(d.row,d.column),b==-1?-1:b==1?42:0)},this.comparePoint=function(a){return this.compare(a.row,a.column)},this.containsRange=function(a){return this.comparePoint(a.start)==0&&this.comparePoint(a.end)==0},this.intersectsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){return this.compare(a,b)==0?this.isEnd(a,b)||this.isStart(a,b)?!1:!0:!1},this.insideStart=function(a,b){return this.compare(a,b)==0?this.isEnd(a,b)?!1:!0:!1},this.insideEnd=function(a,b){return this.compare(a,b)==0?this.isStart(a,b)?!1:!0:!1},this.compare=function(a,b){return!this.isMultiLine()&&a===this.start.row?bthis.end.column?1:0:athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.row=0&&/^[\w\d]/.test(h)||e<=g&&/[\w\d]$/.test(h))return;h=f.substring(c.start.column,c.end.column);if(!/^[\w\d]+$/.test(h))return;var i=a.getCursorPosition(),j={wrap:!0,wholeWord:!0,caseSensitive:!0,needle:h},k=a.$search.getOptions();a.$search.set(j);var l=a.$search.findAll(b);l.forEach(function(a){if(!a.contains(i.row,i.column)){var c=b.addMarker(a,"ace_selected_word","text");b.$selectionOccurrences.push(c)}}),a.$search.set(k)},this.clearSelectionHighlight=function(a){if(!a.session.$selectionOccurrences)return;a.session.$selectionOccurrences.forEach(function(b){a.session.removeMarker(b)}),a.session.$selectionOccurrences=[]},this.createModeDelegates=function(a){if(!this.$embeds)return;this.$modes={};for(var b=0;b1&&e[i].token.length!==j-1)throw new Error("Matching groups and length of the token array don't match in rule #"+i+" of state "+c);h[g]={rule:i,len:j},g+=j,f.push(k)}this.regExps[c]=new RegExp("(?:("+f.join(")|(")+")|(.))",b)}};(function(){this.getLineTokens=function(a,b){var c=b,d=this.rules[c],e=this.matchMappings[c],f=this.regExps[c];f.lastIndex=0;var g,h=[],i=0,j={type:null,value:""};while(g=f.exec(a)){var k="text",l=null,m=[g[0]];for(var n=0;n1&&(m=g.slice(n+2,n+1+e[n].len)),typeof l.token=="function"?k=l.token.apply(this,m):k=l.token;var o=l.next;o&&o!==c&&(c=o,d=this.rules[c],e=this.matchMappings[c],i=f.lastIndex,f=this.regExps[c],f.lastIndex=i);break}if(m[0]){typeof k=="string"&&(m=[m.join("")],k=[k]);for(var n=0;n=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length),a},this.insert=function(a,b){if(!b||b.length===0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];return a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||"")),a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};return this._emit("change",{data:e}),d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};return this._emit("change",{data:d}),c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};return this._emit("change",{data:e}),d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b==c)return;var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};return this._emit("change",{data:i}),d.start},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};return this._emit("change",{data:e}),d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._emit("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(a,b,c){"use strict";var d=a("./lib/oop"),e=a("./lib/event_emitter").EventEmitter,f=b.Anchor=function(a,b,c){this.document=a,typeof c=="undefined"?this.setPosition(b.row,b.column):this.setPosition(b,c),this.$onChange=this.onChange.bind(this),a.on("change",this.$onChange)};(function(){d.implement(this,e),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.onChange=function(a){var b=a.data,c=b.range;if(c.start.row==c.end.row&&c.start.row!=this.row)return;if(c.start.row>this.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0),c}}).call(f.prototype)}),define("ace/background_tokenizer",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(a,b,c){"use strict";var d=a("./lib/oop"),e=a("./lib/event_emitter").EventEmitter,f=function(a,b){this.running=!1,this.lines=[],this.currentLine=0,this.tokenizer=a;var c=this;this.$worker=function(){if(!c.running)return;var a=new Date,b=c.currentLine,d=c.doc,e=0,f=d.getLength();while(c.currentLine20){c.fireUpdateEvent(b,c.currentLine-1),c.running=setTimeout(c.$worker,20);return}}c.running=!1,c.fireUpdateEvent(b,f-1)}};(function(){d.implement(this,e),this.setTokenizer=function(a){this.tokenizer=a,this.lines=[],this.start(0)},this.setDocument=function(a){this.doc=a,this.lines=[],this.stop()},this.fireUpdateEvent=function(a,b){var c={first:a,last:b};this._emit("update",{data:c})},this.start=function(a){this.currentLine=Math.min(a||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(a,b){return this.$tokenizeRows(a,b)},this.getState=function(a){return this.$tokenizeRows(a,a)[0].state},this.$tokenizeRows=function(a,b){if(!this.doc||isNaN(a)||isNaN(b))return[{state:"start",tokens:[]}];var c=[],d="start",e=!1;a>0&&this.lines[a-1]?(d=this.lines[a-1].state,e=!0):a==0?(d="start",e=!0):this.lines.length>0&&(d=this.lines[this.lines.length-1].state);var f=this.doc.getLines(a,b);for(var g=a;g<=b;g++)if(!this.lines[g]){var h=this.tokenizer.getLineTokens(f[g-a]||"",d),d=h.state;c.push(h),e&&(this.lines[g]=h)}else{var h=this.lines[g];d=h.state,c.push(h)}return c}}).call(f.prototype),b.BackgroundTokenizer=f}),define("ace/edit_session/folding",["require","exports","module","ace/range","ace/edit_session/fold_line","ace/edit_session/fold","ace/token_iterator"],function(a,b,c){function h(){this.getFoldAt=function(a,b,c){var d=this.getFoldLine(a);if(!d)return null;var e=d.folds;for(var f=0;f=a)return e;if(e.end.row>a)return null}return null},this.getNextFoldLine=function(a,b){var c=this.$foldData,d=0;b&&(d=c.indexOf(b)),d==-1&&(d=0);for(d;d=a)return e}return null},this.getFoldedRowCount=function(a,b){var c=this.$foldData,d=b-a+1;for(var e=0;e=b){h=a?d-=b-h:d=0);break}g>=a&&(h>=a?d-=g-h:d-=g-a+1)}return d},this.$addFoldLine=function(a){return this.$foldData.push(a),this.$foldData.sort(function(a,b){return a.start.row-b.start.row}),a},this.addFold=function(a,b){var c=this.$foldData,d=!1,g;a instanceof f?g=a:g=new f(b,a),this.$clipRangeToDocument(g.range);var h=g.start.row,i=g.start.column,j=g.end.row,k=g.end.column;if(g.placeholder.length<2)throw"Placeholder has to be at least 2 characters";if(h==j&&k-i<2)throw"The range has to be at least 2 characters width";var l=this.getFoldAt(h,i,1),m=this.getFoldAt(j,k,-1);if(l&&m==l)return l.addSubFold(g);if(l&&!l.range.isStart(h,i)||m&&!m.range.isEnd(j,k))throw"A fold can't intersect already existing fold"+g.range+l.range;var n=this.getFoldsInRange(g.range);n.length>0&&(this.removeFolds(n),g.subFolds=n);for(var o=0;othis.endRow)throw"Can't add a fold to this FoldLine as it has no connection";this.folds.push(a),this.folds.sort(function(a,b){return-a.range.compareEnd(b.start.row,b.start.column)}),this.range.compareEnd(a.start.row,a.start.column)>0?(this.end.row=a.end.row,this.end.column=a.end.column):this.range.compareStart(a.end.row,a.end.column)<0&&(this.start.row=a.start.row,this.start.column=a.start.column)}else if(a.start.row==this.end.row)this.folds.push(a),this.end.row=a.end.row,this.end.column=a.end.column;else{if(a.end.row!=this.start.row)throw"Trying to add fold to FoldRow that doesn't have a matching row";this.folds.unshift(a),this.start.row=a.start.row,this.start.column=a.start.column}a.foldLine=this},this.containsRow=function(a){return a>=this.start.row&&a<=this.end.row},this.walk=function(a,b,c){var d=0,e=this.folds,f,g,h,i=!0;b==null&&(b=this.end.row,c=this.end.column);for(var j=0;j=this.$rowTokens.length){this.$row+=1;if(this.$row>=a)return this.$row=a-1,null;this.$rowTokens=this.$session.getTokens(this.$row,this.$row)[0].tokens,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 a=this.$rowTokens,b=this.$tokenIndex,c=a[b].start;if(c!==undefined)return c;c=0;while(b>0)b-=1,c+=a[b].value.length;return c}}).call(d.prototype),b.TokenIterator=d}),define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator"],function(a,b,c){function e(){this.findMatchingBracket=function(a){if(a.column==0)return null;var b=this.getLine(a.row).charAt(a.column-1);if(b=="")return null;var c=b.match(/([\(\[\{])|([\)\]\}])/);return c?c[1]?this.$findClosingBracket(c[1],a):this.$findOpeningBracket(c[2],a):null},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{"},this.$findOpeningBracket=function(a,b){var c=this.$brackets[a],e=1,f=new d(this,b.row,b.column),g=f.getCurrentToken();if(!g)return null;var h=new RegExp("(\\.?"+g.type.replace(".","|").replace("rparen","lparen|rparen")+")+"),i=b.column-f.getCurrentTokenColumn()-2,j=g.value;for(;;){while(i>=0){var k=j.charAt(i);if(k==c){e-=1;if(e==0)return{row:f.getCurrentTokenRow(),column:i+f.getCurrentTokenColumn()}}else k==a&&(e+=1);i-=1}do g=f.stepBackward();while(g&&!h.test(g.type));if(g==null)break;j=g.value,i=j.length-1}return null},this.$findClosingBracket=function(a,b){var c=this.$brackets[a],e=1,f=new d(this,b.row,b.column),g=f.getCurrentToken();if(!g)return null;var h=new RegExp("(\\.?"+g.type.replace(".","|").replace("lparen","lparen|rparen")+")+"),i=b.column-f.getCurrentTokenColumn();for(;;){var j=g.value,k=j.length;while(i=0;h--){var i=g[h],j=c.$rangeFromMatch(f,i.offset,i.str.length);if(d(j))return!0}})}}},this.$rangeFromMatch=function(a,b,c){return new f(a,b,a,b+c)},this.$assembleRegExp=function(){if(this.$options.regExp)var a=this.$options.needle;else a=d.escapeRegExp(this.$options.needle);this.$options.wholeWord&&(a="\\b"+a+"\\b");var b="g";this.$options.caseSensitive||(b+="i");var c=new RegExp(a,b);return c},this.$forwardLineIterator=function(a){function k(e){var f=a.getLine(e);return b&&e==c.end.row&&(f=f.substring(0,c.end.column)),j&&e==d.row&&(f=f.substring(0,d.column)),f}var b=this.$options.scope==g.SELECTION,c=this.$options.range||a.getSelection().getRange(),d=this.$options.start||c[b?"start":"end"],e=b?c.start.row:0,f=b?c.start.column:0,h=b?c.end.row:a.getLength()-1,i=this.$options.wrap,j=!1;return{forEach:function(a){var b=d.row,c=k(b),g=d.column,l=!1;j=!1;while(!a(c,g,b)){if(l)return;b++,g=0;if(b>h){if(!i)return;b=e,g=f,j=!0}b==d.row&&(l=!0),c=k(b)}}}},this.$backwardLineIterator=function(a){var b=this.$options.scope==g.SELECTION,c=this.$options.range||a.getSelection().getRange(),d=this.$options.start||c[b?"end":"start"],e=b?c.start.row:0,f=b?c.start.column:0,h=b?c.end.row:a.getLength()-1,i=this.$options.wrap;return{forEach:function(g){var j=d.row,k=a.getLine(j).substring(0,d.column),l=0,m=!1,n=!1;while(!g(k,l,j)){if(m)return;j--,l=0;if(j0},this.hasRedo=function(){return this.$redoStack.length>0}}).call(d.prototype),b.UndoManager=d}),define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/useragent","ace/config","ace/lib/net","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/renderloop","ace/lib/event_emitter","text!ace/css/editor.css"],function(a,b,c){"use strict";var d=a("./lib/oop"),e=a("./lib/dom"),f=a("./lib/event"),g=a("./lib/useragent"),h=a("./config"),i=a("./lib/net"),j=a("./layer/gutter").Gutter,k=a("./layer/marker").Marker,l=a("./layer/text").Text,m=a("./layer/cursor").Cursor,n=a("./scrollbar").ScrollBar,o=a("./renderloop").RenderLoop,p=a("./lib/event_emitter").EventEmitter,q=a("text!./css/editor.css");e.importCssString(q,"ace_editor");var r=function(a,b){var c=this;this.container=a,e.addCssClass(a,"ace_editor"),this.setTheme(b),this.$gutter=e.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.scroller=e.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=e.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new j(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onResize.bind(this,!0)),this.$markerBack=new k(this.content);var d=this.$textLayer=new l(this.content);this.canvas=d.element,this.$markerFront=new k(this.content),this.characterWidth=d.getCharacterWidth(),this.lineHeight=d.getLineHeight(),this.$cursorLayer=new m(this.content),this.$cursorPadding=8,this.$horizScroll=!0,this.$horizScrollAlwaysVisible=!0,this.$animatedScroll=!1,this.scrollBar=new n(a),this.scrollBar.addEventListener("scroll",function(a){c.session.setScrollTop(a.data)}),this.scrollTop=0,this.scrollLeft=0,f.addListener(this.scroller,"scroll",function(){var a=c.scroller.scrollLeft;c.scrollLeft=a,c.session.setScrollLeft(a),a==0?c.$gutter.className="ace_gutter":c.$gutter.className="ace_gutter horscroll"}),this.cursorPos={row:0,column:0},this.$textLayer.addEventListener("changeCharacterSize",function(){c.characterWidth=d.getCharacterWidth(),c.lineHeight=d.getLineHeight(),c.$updatePrintMargin(),c.onResize(!0),c.$loop.schedule(c.CHANGE_FULL)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:1,characterWidth:1,minHeight:1,maxHeight:1,offset:0,height:1},this.$loop=new o(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.setPadding(4),this.$updatePrintMargin()};(function(){this.showGutter=!0,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,d.implement(this,p),this.setSession=function(a){this.session=a,this.$cursorLayer.setSession(a),this.$markerBack.setSession(a),this.$markerFront.setSession(a),this.$gutterLayer.setSession(a),this.$textLayer.setSession(a),this.$loop.schedule(this.CHANGE_FULL)},this.updateLines=function(a,b){b===undefined&&(b=Infinity),this.$changedLines?(this.$changedLines.firstRow>a&&(this.$changedLines.firstRow=a),this.$changedLines.lastRowc.lastRow+1)return;if(bd&&this.session.setScrollTop(d),this.scrollTop+this.$size.scrollerHeightc&&(c0)return!0;if(b>0&&this.session.getScrollTop()+this.$size.scrollerHeighth&&(e=g.end.row+1,g=this.session.getNextFoldLine(e,g),h=g?g.start.row:Infinity);if(e>f)break;var j=this.$annotations[e]||b;c.push("
",e+1);if(i){var k=i[e];k==null&&(k=i[e]=this.session.getFoldWidget(e)),k&&c.push("")}var l=this.session.getRowLength(e)-1;while(l--)c.push("
¦");c.push("
"),e++}this.element=d.setInnerHtml(this.element,c.join("")),this.element.style.height=a.minHeight+"px";var m=this.element.offsetWidth;m!==this.gutterWidth&&(this.gutterWidth=m,this._emit("changeGutterWidth",m))},this.$showFoldWidgets=!0,this.setShowFoldWidgets=function(a){a?d.addCssClass(this.element,"ace_folding-enabled"):d.removeCssClass(this.element,"ace_folding-enabled"),this.$showFoldWidgets=a},this.getShowFoldWidgets=function(){return this.$showFoldWidgets}}).call(g.prototype),b.Gutter=g}),define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(a,b,c){"use strict";var d=a("../range").Range,e=a("../lib/dom"),f=function(a){this.element=e.createElement("div"),this.element.className="ace_layer ace_marker-layer",a.appendChild(this.element)};(function(){this.$padding=0,this.setPadding=function(a){this.$padding=a},this.setSession=function(a){this.session=a},this.setMarkers=function(a){this.markers=a},this.update=function(a){var a=a||this.config;if(!a)return;this.config=a;var b=[];for(var c in this.markers){var d=this.markers[c],f=d.range.clipRows(a.firstRow,a.lastRow);if(f.isEmpty())continue;f=f.toScreenRange(this.session);if(d.renderer){var g=this.$getTop(f.start.row,a),h=Math.round(this.$padding+f.start.column*a.characterWidth);d.renderer(b,f,h,g,a)}else f.isMultiLine()?d.type=="text"?this.drawTextMarker(b,f,d.clazz,a):this.drawMultiLineMarker(b,f,d.clazz,a,d.type):this.drawSingleLineMarker(b,f,d.clazz,a,null,d.type)}this.element=e.setInnerHtml(this.element,b.join(""))},this.$getTop=function(a,b){return(a-b.firstRowScreen)*b.lineHeight},this.drawTextMarker=function(a,b,c,e){var f=b.start.row,g=new d(f,b.start.column,f,this.session.getScreenLastRowColumn(f));this.drawSingleLineMarker(a,g,c,e,1,"text"),f=b.end.row,g=new d(f,0,f,b.end.column),this.drawSingleLineMarker(a,g,c,e,0,"text");for(f=b.start.row+1;f"),j=this.$getTop(b.end.row,d),i=Math.round(b.end.column*d.characterWidth),a.push("
"),h=(b.end.row-b.start.row-1)*d.lineHeight;if(h<0)return;j=this.$getTop(b.start.row+1,d),a.push("
")},this.drawSingleLineMarker=function(a,b,c,d,e,f){var g=f==="background"?0:this.$padding,h=d.lineHeight;if(f==="background")var i=d.width;else i=Math.round((b.end.column+(e||0)-b.start.column)*d.characterWidth);var j=this.$getTop(b.start.row,d),k=Math.round(g+b.start.column*d.characterWidth);a.push("
")}}).call(f.prototype),b.Marker=f}),define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("../lib/dom"),f=a("../lib/lang"),g=a("../lib/useragent"),h=a("../lib/event_emitter").EventEmitter,i=function(a){this.element=e.createElement("div"),this.element.className="ace_layer ace_text-layer",a.appendChild(this.element),this.$characterSize=this.$measureSizes()||{width:0,height:0},this.$pollSizeChanges()};(function(){d.implement(this,h),this.EOF_CHAR="¶",this.EOL_CHAR="¬",this.TAB_CHAR="→",this.SPACE_CHAR="·",this.$padding=0,this.setPadding=function(a){this.$padding=a,this.element.style.padding="0 "+a+"px"},this.getLineHeight=function(){return this.$characterSize.height||1},this.getCharacterWidth=function(){return this.$characterSize.width||1},this.checkForSizeChanges=function(){var a=this.$measureSizes();a&&(this.$characterSize.width!==a.width||this.$characterSize.height!==a.height)&&(this.$characterSize=a,this._emit("changeCharacterSize",{data:a}))},this.$pollSizeChanges=function(){var a=this;this.$pollSizeChangesTimer=setInterval(function(){a.checkForSizeChanges()},500)},this.$fontStyles={fontFamily:1,fontSize:1,fontWeight:1,fontStyle:1,lineHeight:1},this.$measureSizes=g.isIE||g.isOldGecko?function(){var a=1e3;if(!this.$measureNode){var b=this.$measureNode=e.createElement("div"),c=b.style;c.width=c.height="auto",c.left=c.top=-a*40+"px",c.visibility="hidden",c.position="fixed",c.overflow="visible",c.whiteSpace="nowrap",b.innerHTML=f.stringRepeat("Xy",a);if(this.element.ownerDocument.body)this.element.ownerDocument.body.appendChild(b);else{var d=this.element.parentNode;while(!e.hasCssClass(d,"ace_editor"))d=d.parentNode;d.appendChild(b)}}if(!this.element.offsetWidth)return null;var c=this.$measureNode.style,g=e.computedStyle(this.element);for(var h in this.$fontStyles)c[h]=g[h];var i={height:this.$measureNode.offsetHeight,width:this.$measureNode.offsetWidth/(a*2)};return i.width==0||i.height==0?null:i}:function(){if(!this.$measureNode){var a=this.$measureNode=e.createElement("div"),b=a.style;b.width=b.height="auto",b.left=b.top="-100px",b.visibility="hidden",b.position="fixed",b.overflow="visible",b.whiteSpace="nowrap",a.innerHTML="X";var c=this.element.parentNode;while(c&&!e.hasCssClass(c,"ace_editor"))c=c.parentNode;if(!c)return this.$measureNode=null;c.appendChild(a)}var d=this.$measureNode.getBoundingClientRect(),f={height:d.height,width:d.width};return f.width==0||f.height==0?null:f},this.setSession=function(a){this.session=a},this.showInvisibles=!1,this.setShowInvisibles=function(a){return this.showInvisibles==a?!1:(this.showInvisibles=a,!0)},this.$tabStrings=[],this.$computeTabString=function(){var a=this.session.getTabSize(),b=this.$tabStrings=[0];for(var c=1;c"+this.TAB_CHAR+(new Array(c)).join(" ")+""):b.push((new Array(c+1)).join(" "))},this.updateLines=function(a,b,c){this.$computeTabString(),(this.config.lastRow!=a.lastRow||this.config.firstRow!=a.firstRow)&&this.scrollLines(a),this.config=a;var d=Math.max(b,a.firstRow),f=Math.min(c,a.lastRow),g=this.element.childNodes,h=0;for(var i=a.firstRow;i0;d--)c.removeChild(c.firstChild);if(b.lastRow>a.lastRow)for(var d=this.session.getFoldedRowCount(a.lastRow+1,b.lastRow);d>0;d--)c.removeChild(c.lastChild);if(a.firstRowb.lastRow){var e=this.$renderLinesFragment(a,b.lastRow+1,a.lastRow);c.appendChild(e)}},this.$renderLinesFragment=function(a,b,c){var d=this.element.ownerDocument.createDocumentFragment(),f=b,g=this.session.getNextFoldLine(f),h=g?g.start.row:Infinity;for(;;){f>h&&(f=g.end.row+1,g=this.session.getNextFoldLine(f,g),h=g?g.start.row:Infinity);if(f>c)break;var i=e.createElement("div"),j=[],k=this.session.getTokens(f,f);k.length==1&&this.$renderLine(j,f,k[0].tokens,!1),i.innerHTML=j.join("");if(this.$useLineGroups())i.className="ace_line_group",d.appendChild(i);else{var l=i.childNodes;while(l.length)d.appendChild(l[0])}f++}return d},this.update=function(a){this.$computeTabString(),this.config=a;var b=[],c=a.firstRow,d=a.lastRow,f=c,g=this.session.getNextFoldLine(f),h=g?g.start.row:Infinity;for(;;){f>h&&(f=g.end.row+1,g=this.session.getNextFoldLine(f,g),h=g?g.start.row:Infinity);if(f>d)break;this.$useLineGroups()&&b.push("
");var i=this.session.getTokens(f,f);i.length==1&&this.$renderLine(b,f,i[0].tokens,!1),this.$useLineGroups()&&b.push("
"),f++}this.element=e.setInnerHtml(this.element,b.join(""))},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(a,b,c,d){var e=this,f=/\t|&|<|( +)|([\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000])|[\u1100-\u115F]|[\u11A3-\u11A7]|[\u11FA-\u11FF]|[\u2329-\u232A]|[\u2E80-\u2E99]|[\u2E9B-\u2EF3]|[\u2F00-\u2FD5]|[\u2FF0-\u2FFB]|[\u3000-\u303E]|[\u3041-\u3096]|[\u3099-\u30FF]|[\u3105-\u312D]|[\u3131-\u318E]|[\u3190-\u31BA]|[\u31C0-\u31E3]|[\u31F0-\u321E]|[\u3220-\u3247]|[\u3250-\u32FE]|[\u3300-\u4DBF]|[\u4E00-\uA48C]|[\uA490-\uA4C6]|[\uA960-\uA97C]|[\uAC00-\uD7A3]|[\uD7B0-\uD7C6]|[\uD7CB-\uD7FB]|[\uF900-\uFAFF]|[\uFE10-\uFE19]|[\uFE30-\uFE52]|[\uFE54-\uFE66]|[\uFE68-\uFE6B]|[\uFF01-\uFF60]|[\uFFE0-\uFFE6]/g,h=function(a,c,d,f,h){if(a.charCodeAt(0)==32)return(new Array(a.length+1)).join(" ");if(a==" "){var i=e.session.getScreenTabSize(b+f);return b+=i-1,e.$tabStrings[i]}if(a=="&")return g.isOldGecko?"&":"&";if(a=="<")return"<";if(a==" "){var j=e.showInvisibles?"ace_cjk ace_invisible":"ace_cjk",k=e.showInvisibles?e.SPACE_CHAR:"";return b+=1,""+k+""}if(a.match(/[\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000]/)){if(e.showInvisibles){var k=(new Array(a.length+1)).join(e.SPACE_CHAR);return""+k+""}return" "}return b+=1,""+a+""},i=d.replace(f,h);if(!this.$textToken[c.type]){var j="ace_"+c.type.replace(/\./g," ace_"),k="";c.type=="fold"&&(k=" style='width:"+c.value.length*this.config.characterWidth+"px;' "),a.push("",i,"")}else a.push(i);return b+d.length},this.$renderLineCore=function(a,b,c,d,e){var f=0,g=0,h,i=0,j=this;!d||d.length==0?h=Number.MAX_VALUE:h=d[0],e||a.push("
");for(var k=0;k=h)i=j.$renderToken(a,i,l,m.substring(0,h-f)),m=m.substring(h-f),f=h,e||a.push("
","
"),g++,i=0,h=d[g]||Number.MAX_VALUE;m.length!=0&&(f+=m.length,i=j.$renderToken(a,i,l,m))}}this.showInvisibles&&(b!==this.session.getLength()-1?a.push(""+this.EOL_CHAR+""):a.push(""+this.EOF_CHAR+"")),e||a.push("
")},this.$renderLine=function(a,b,c,d){if(!this.session.isRowFolded(b)){var e=this.session.getRowSplitData(b);this.$renderLineCore(a,b,c,e,d)}else this.$renderFoldLine(a,b,c,d)},this.$renderFoldLine=function(a,b,c,d){function h(a,b,c){var d=0,e=0;while(e+a[d].value.lengthc-b&&(f=f.substring(0,c-b)),g.push({type:a[d].type,value:f}),e=b+f.length,d+=1}while(ec&&(f=f.substring(0,c-e)),g.push({type:a[d].type,value:f}),e+=f.length,d+=1}}var e=this.session,f=e.getFoldLine(b),g=[];f.walk(function(a,b,d,e,f){a?g.push({type:"fold",value:a}):(f&&(c=this.session.getTokens(b,b)[0].tokens),c.length!=0&&h(c,e,d))}.bind(this),f.end.row,this.session.getLine(f.end.row).length);var i=this.session.$useWrapMode?this.session.$wrapData[b]:null;this.$renderLineCore(a,b,g,i,d)},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(i.prototype),b.Text=i}),define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(a,b,c){"use strict";var d=a("../lib/dom"),e=function(a){this.element=d.createElement("div"),this.element.className="ace_layer ace_cursor-layer",a.appendChild(this.element),this.isVisible=!1,this.cursors=[],this.cursor=this.addCursor()};(function(){this.$padding=0,this.setPadding=function(a){this.$padding=a},this.setSession=function(a){this.session=a},this.addCursor=function(){var a=d.createElement("div"),b="ace_cursor";return this.isVisible||(b+=" ace_hidden"),this.overwrite&&(b+=" ace_overwrite"),a.className=b,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;for(var a=this.cursors.length;a--;)d.addCssClass(this.cursors[a],"ace_hidden");clearInterval(this.blinkId)},this.showCursor=function(){this.isVisible=!0;for(var a=this.cursors.length;a--;)d.removeCssClass(this.cursors[a],"ace_hidden");this.element.style.visibility="",this.restartTimer()},this.restartTimer=function(){clearInterval(this.blinkId);if(!this.isVisible)return;var a=this.element;this.blinkId=setInterval(function(){a.style.visibility="hidden",setTimeout(function(){a.style.visibility="visible"},400)},1e3)},this.getPixelPosition=function(a,b){if(!this.config||!this.session)return{left:0,top:0};a||(a=this.session.selection.getCursor());var c=this.session.documentToScreenPosition(a),d=Math.round(this.$padding+c.column*this.config.characterWidth),e=(c.row-(b?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:d,top:e}},this.update=function(a){this.config=a;if(this.session.selectionMarkerCount>1){var b=this.session.$selectionMarkers,c=0,d,e=0;for(var c=b.length;c--;){d=b[c];var f=this.getPixelPosition(d.cursor,!0),g=(this.cursors[e++]||this.addCursor()).style;g.left=f.left+"px",g.top=f.top+"px",g.width=a.characterWidth+"px",g.height=a.lineHeight+"px"}if(e>1)while(this.cursors.length>e)this.removeCursor()}else{var f=this.getPixelPosition(null,!0),g=this.cursor.style;g.left=f.left+"px",g.top=f.top+"px",g.width=a.characterWidth+"px",g.height=a.lineHeight+"px";while(this.cursors.length>1)this.removeCursor()}var h=this.session.getOverwrite();h!=this.overwrite&&this.$setOverite(h),this.restartTimer()},this.$setOverite=function(a){this.overwrite=a;for(var b=this.cursors.length;b--;)a?d.addCssClass(this.cursors[b],"ace_overwrite"):d.removeCssClass(this.cursors[b],"ace_overwrite")},this.destroy=function(){clearInterval(this.blinkId)}}).call(e.prototype),b.Cursor=e}),define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(a,b,c){"use strict";var d=a("./lib/oop"),e=a("./lib/dom"),f=a("./lib/event"),g=a("./lib/event_emitter").EventEmitter,h=function(a){this.element=e.createElement("div"),this.element.className="ace_sb",this.inner=e.createElement("div"),this.element.appendChild(this.inner),a.appendChild(this.element),this.width=e.scrollbarWidth(a.ownerDocument),this.element.style.width=(this.width||15)+5+"px",f.addListener(this.element,"scroll",this.onScroll.bind(this))};(function(){d.implement(this,g),this.onScroll=function(){this._emit("scroll",{data:this.element.scrollTop})},this.getWidth=function(){return this.width},this.setHeight=function(a){this.element.style.height=a+"px"},this.setInnerHeight=function(a){this.inner.style.height=a+"px"},this.setScrollTop=function(a){this.element.scrollTop=a}}).call(h.prototype),b.ScrollBar=h}),define("ace/renderloop",["require","exports","module","ace/lib/event"],function(a,b,c){"use strict";var d=a("./lib/event"),e=function(a,b){this.onRender=a,this.pending=!1,this.changes=0,this.window=b||window};(function(){this.schedule=function(a){this.changes=this.changes|a;if(!this.pending){this.pending=!0;var b=this;d.nextTick(function(){b.pending=!1;var a;while(a=b.changes)b.changes=0,b.onRender(a)},this.window)}}}).call(e.prototype),b.RenderLoop=e}),define("text!ace/css/editor.css",[],"@import url(//fonts.googleapis.com/css?family=Droid+Sans+Mono);\n\n.ace_editor {\n position: absolute;\n overflow: hidden;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Droid Sans Mono', 'Consolas', monospace;\n font-size: 12px;\n}\n\n.ace_scroller {\n position: absolute;\n overflow-x: scroll;\n overflow-y: hidden;\n}\n\n.ace_content {\n position: absolute;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n cursor: text;\n}\n\n.ace_composition {\n position: absolute;\n background: #555;\n color: #DDD;\n z-index: 4;\n}\n\n.ace_gutter {\n position: absolute;\n overflow : hidden;\n height: 100%;\n width: auto;\n cursor: default;\n z-index: 1000;\n}\n\n.ace_gutter.horscroll {\n box-shadow: 0px 0px 20px rgba(0,0,0,0.4);\n}\n\n.ace_gutter-cell {\n padding-left: 19px;\n padding-right: 6px;\n}\n\n.ace_gutter-cell.ace_error {\n background-image: url(\"data:image/gif,GIF89a%10%00%10%00%D5%00%00%F5or%F5%87%88%F5nr%F4ns%EBmq%F5z%7F%DDJT%DEKS%DFOW%F1Yc%F2ah%CE(7%CE)8%D18E%DD%40M%F2KZ%EBU%60%F4%60m%DCir%C8%16(%C8%19*%CE%255%F1%3FR%F1%3FS%E6%AB%B5%CA%5DI%CEn%5E%F7%A2%9A%C9G%3E%E0a%5B%F7%89%85%F5yy%F6%82%80%ED%82%80%FF%BF%BF%E3%C4%C4%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%25%00%2C%00%00%00%00%10%00%10%00%00%06p%C0%92pH%2C%1A%8F%C8%D2H%93%E1d4%23%E4%88%D3%09mB%1DN%B48%F5%90%40%60%92G%5B%94%20%3E%22%D2%87%24%FA%20%24%C5%06A%00%20%B1%07%02B%A38%89X.v%17%82%11%13q%10%0Fi%24%0F%8B%10%7BD%12%0Ei%09%92%09%0EpD%18%15%24%0A%9Ci%05%0C%18F%18%0B%07%04%01%04%06%A0H%18%12%0D%14%0D%12%A1I%B3%B4%B5IA%00%3B\");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_warning {\n background-image: url(\"data:image/gif,GIF89a%10%00%10%00%D5%00%00%FF%DBr%FF%DE%81%FF%E2%8D%FF%E2%8F%FF%E4%96%FF%E3%97%FF%E5%9D%FF%E6%9E%FF%EE%C1%FF%C8Z%FF%CDk%FF%D0s%FF%D4%81%FF%D5%82%FF%D5%83%FF%DC%97%FF%DE%9D%FF%E7%B8%FF%CCl%7BQ%13%80U%15%82W%16%81U%16%89%5B%18%87%5B%18%8C%5E%1A%94d%1D%C5%83-%C9%87%2F%C6%84.%C6%85.%CD%8B2%C9%871%CB%8A3%CD%8B5%DC%98%3F%DF%9BB%E0%9CC%E1%A5U%CB%871%CF%8B5%D1%8D6%DB%97%40%DF%9AB%DD%99B%E3%B0p%E7%CC%AE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%2F%00%2C%00%00%00%00%10%00%10%00%00%06a%C0%97pH%2C%1A%8FH%A1%ABTr%25%87%2B%04%82%F4%7C%B9X%91%08%CB%99%1C!%26%13%84*iJ9(%15G%CA%84%14%01%1A%97%0C%03%80%3A%9A%3E%81%84%3E%11%08%B1%8B%20%02%12%0F%18%1A%0F%0A%03'F%1C%04%0B%10%16%18%10%0B%05%1CF%1D-%06%07%9A%9A-%1EG%1B%A0%A1%A0U%A4%A5%A6BA%00%3B\");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_info {\n background-image: url(\"data:image/gif;base64,R0lGODlhEAAQAMQAAAAAAEFBQVJSUl5eXmRkZGtra39/f4WFhYmJiZGRkaampry8vMPDw8zMzNXV1dzc3OTk5Orq6vDw8P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAABQALAAAAAAQABAAAAUuICWOZGmeaBml5XGwFCQSBGyXRSAwtqQIiRuiwIM5BoYVbEFIyGCQoeJGrVptIQA7\");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n\n.ace_editor .ace_sb {\n position: absolute;\n overflow-x: hidden;\n overflow-y: scroll;\n right: 0;\n}\n\n.ace_editor .ace_sb div {\n position: absolute;\n width: 1px;\n left: 0;\n}\n\n.ace_editor .ace_print_margin_layer {\n z-index: 0;\n position: absolute;\n overflow: hidden;\n margin: 0;\n left: 0;\n height: 100%;\n width: 100%;\n}\n\n.ace_editor .ace_print_margin {\n position: absolute;\n height: 100%;\n}\n\n.ace_editor textarea {\n position: fixed;\n z-index: 0;\n width: 10px;\n height: 30px;\n opacity: 0;\n background: transparent;\n appearance: none;\n -moz-appearance: none;\n border: none;\n resize: none;\n outline: none;\n overflow: hidden;\n}\n\n.ace_layer {\n z-index: 1;\n position: absolute;\n overflow: hidden;\n white-space: nowrap;\n height: 100%;\n width: 100%;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n /* setting pointer-events: auto; on node under the mouse, which changes\n during scroll, will break mouse wheel scrolling in Safari */\n pointer-events: none;\n}\n\n.ace_gutter .ace_layer {\n position: relative;\n min-width: 40px;\n text-align: right;\n pointer-events: auto;\n}\n\n.ace_text-layer {\n color: black;\n}\n\n.ace_cjk {\n display: inline-block;\n text-align: center;\n}\n\n.ace_cursor-layer {\n z-index: 4;\n}\n\n.ace_cursor {\n z-index: 4;\n position: absolute;\n}\n\n.ace_cursor.ace_hidden {\n opacity: 0.2;\n}\n\n.ace_line {\n white-space: nowrap;\n}\n\n.ace_marker-layer .ace_step {\n position: absolute;\n z-index: 3;\n}\n\n.ace_marker-layer .ace_selection {\n position: absolute;\n z-index: 5;\n}\n\n.ace_marker-layer .ace_bracket {\n position: absolute;\n z-index: 6;\n}\n\n.ace_marker-layer .ace_active_line {\n position: absolute;\n z-index: 2;\n}\n\n.ace_gutter .ace_gutter_active_line{\n background-color : #dcdcdc;\n}\n\n.ace_marker-layer .ace_selected_word {\n position: absolute;\n z-index: 4;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n}\n\n.ace_line .ace_fold {\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n \n display: inline-block;\n height: 11px;\n margin-top: -2px;\n vertical-align: middle;\n\n background-image: \n url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%11%00%00%00%09%08%06%00%00%00%D4%E8%C7%0C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%00%B5IDAT(%15%A5%91%3D%0E%02!%10%85ac%E1%05%D6%CE%D6%C6%CE%D2%E8%ED%CD%DE%C0%C6%D6N.%E0V%F8%3D%9Ca%891XH%C2%BE%D9y%3F%90!%E6%9C%C3%BFk%E5%011%C6-%F5%C8N%04%DF%BD%FF%89%DFt%83DN%60%3E%F3%AB%A0%DE%1A%5Dg%BE%10Q%97%1B%40%9C%A8o%10%8F%5E%828%B4%1B%60%87%F6%02%26%85%1Ch%1E%C1%2B%5Bk%FF%86%EE%B7j%09%9A%DA%9B%ACe%A3%F9%EC%DA!9%B4%D5%A6%81%86%86%98%CC%3C%5B%40%FA%81%B3%E9%CB%23%94%C16Azo%05%D4%E1%C1%95a%3B%8A'%A0%E8%CC%17%22%85%1D%BA%00%A2%FA%DC%0A%94%D1%D1%8D%8B%3A%84%17B%C7%60%1A%25Z%FC%8D%00%00%00%00IEND%AEB%60%82\"),\n url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%007%08%06%00%00%00%C4%DD%80C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%00%3AIDAT8%11c%FC%FF%FF%7F%18%03%1A%60%01%F2%3F%A0%891%80%04%FF%11-%F8%17%9BJ%E2%05%B1ZD%81v%26t%E7%80%F8%A3%82h%A12%1A%20%A3%01%02%0F%01%BA%25%06%00%19%C0%0D%AEF%D5%3ES%00%00%00%00IEND%AEB%60%82\");\n background-repeat: no-repeat, repeat-x;\n background-position: center center, top left;\n color: transparent;\n\n border: 1px solid black;\n -moz-border-radius: 2px;\n -webkit-border-radius: 2px;\n border-radius: 2px;\n \n cursor: pointer;\n pointer-events: auto;\n}\n\n.ace_dark .ace_fold {\n}\n\n.ace_fold:hover{\n background-image: \n url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%11%00%00%00%09%08%06%00%00%00%D4%E8%C7%0C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%00%B5IDAT(%15%A5%91%3D%0E%02!%10%85ac%E1%05%D6%CE%D6%C6%CE%D2%E8%ED%CD%DE%C0%C6%D6N.%E0V%F8%3D%9Ca%891XH%C2%BE%D9y%3F%90!%E6%9C%C3%BFk%E5%011%C6-%F5%C8N%04%DF%BD%FF%89%DFt%83DN%60%3E%F3%AB%A0%DE%1A%5Dg%BE%10Q%97%1B%40%9C%A8o%10%8F%5E%828%B4%1B%60%87%F6%02%26%85%1Ch%1E%C1%2B%5Bk%FF%86%EE%B7j%09%9A%DA%9B%ACe%A3%F9%EC%DA!9%B4%D5%A6%81%86%86%98%CC%3C%5B%40%FA%81%B3%E9%CB%23%94%C16Azo%05%D4%E1%C1%95a%3B%8A'%A0%E8%CC%17%22%85%1D%BA%00%A2%FA%DC%0A%94%D1%D1%8D%8B%3A%84%17B%C7%60%1A%25Z%FC%8D%00%00%00%00IEND%AEB%60%82\"),\n url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%007%08%06%00%00%00%C4%DD%80C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%003IDAT8%11c%FC%FF%FF%7F%3E%03%1A%60%01%F2%3F%A3%891%80%04%FFQ%26%F8w%C0%B43%A1%DB%0C%E2%8F%0A%A2%85%CAh%80%8C%06%08%3C%04%E8%96%18%00%A3S%0D%CD%CF%D8%C1%9D%00%00%00%00IEND%AEB%60%82\");\n background-repeat: no-repeat, repeat-x;\n background-position: center center, top left;\n}\n\n.ace_dragging .ace_content {\n cursor: move;\n}\n\n.ace_folding-enabled > .ace_gutter-cell {\n padding-right: 13px;\n}\n\n.ace_fold-widget {\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n\n margin: 0 -12px 1px 1px;\n display: inline-block;\n height: 14px;\n width: 11px;\n vertical-align: text-bottom;\n \n background-image: url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%00%05%08%06%00%00%00%8Do%26%E5%00%00%004IDATx%DAe%8A%B1%0D%000%0C%C2%F2%2CK%96%BC%D0%8F9%81%88H%E9%D0%0E%96%C0%10%92%3E%02%80%5E%82%E4%A9*-%EEsw%C8%CC%11%EE%96w%D8%DC%E9*Eh%0C%151(%00%00%00%00IEND%AEB%60%82\");\n background-repeat: no-repeat;\n background-position: center 5px;\n\n border-radius: 3px;\n}\n\n.ace_fold-widget.end {\n background-image: url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%00%05%08%06%00%00%00%8Do%26%E5%00%00%004IDATx%DAm%C7%C1%09%000%08C%D1%8C%ECE%C8E(%8E%EC%02)%1EZJ%F1%C1'%04%07I%E1%E5%EE%CAL%F5%A2%99%99%22%E2%D6%1FU%B5%FE0%D9x%A7%26Wz5%0E%D5%00%00%00%00IEND%AEB%60%82\");\n}\n\n.ace_fold-widget.closed {\n background-image: url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%03%00%00%00%06%08%06%00%00%00%06%E5%24%0C%00%00%009IDATx%DA5%CA%C1%09%000%08%03%C0%AC*(%3E%04%C1%0D%BA%B1%23%A4Uh%E0%20%81%C0%CC%F8%82%81%AA%A2%AArGfr%88%08%11%11%1C%DD%7D%E0%EE%5B%F6%F6%CB%B8%05Q%2F%E9tai%D9%00%00%00%00IEND%AEB%60%82\");\n}\n\n.ace_fold-widget:hover {\n border: 1px solid rgba(0, 0, 0, 0.3);\n background-color: rgba(255, 255, 255, 0.2);\n -moz-box-shadow:inset 0 1px 1px rgba(255, 255, 255, 0.7);\n -moz-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\n -webkit-box-shadow:inset 0 1px 1px rgba(255, 255, 255, 0.7);\n -webkit-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\n box-shadow:inset 0 1px 1px rgba(255, 255, 255, 0.7);\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\n background-position: center 4px;\n}\n\n.ace_fold-widget:active {\n border: 1px solid rgba(0, 0, 0, 0.4);\n background-color: rgba(0, 0, 0, 0.05);\n -moz-box-shadow:inset 0 1px 1px rgba(255, 255, 255);\n -moz-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\n -webkit-box-shadow:inset 0 1px 1px rgba(255, 255, 255);\n -webkit-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\n box-shadow:inset 0 1px 1px rgba(255, 255, 255);\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\n}\n\n.ace_fold-widget.invalid {\n background-color: #FFB4B4;\n border-color: #DE5555;\n}\n"),define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor"],function(a,b,c){function j(a,b,c){return i.$options.wrap=!0,i.$options.needle=b,i.$options.backwards=c==-1,i.find(a)}function m(a,b){return a.row==b.row&&a.column==b.column}function n(a){a.$onAddRange=a.$onAddRange.bind(a),a.$onRemoveRange=a.$onRemoveRange.bind(a),a.$onMultiSelect=a.$onMultiSelect.bind(a),a.$onSingleSelect=a.$onSingleSelect.bind(a),b.onSessionChange.call(a,a),a.on("changeSession",b.onSessionChange.bind(a)),a.on("mousedown",g),a.commands.addCommands(b.commands.defaultCommands)}var d=a("./range_list").RangeList,e=a("./range").Range,f=a("./selection").Selection,g=a("./mouse/multi_select_handler").onMouseDown;b.commands=a("./commands/multi_select_commands");var h=a("./search").Search,i=new h,k=a("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(k.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(a){if(!this.inMultiSelectMode&&this.rangeCount==0){var b=this.toOrientedRange();if(!a||!a.isEqual(b))this.rangeList.add(b),this.$onAddRange(b)}if(!a)return;a.cursor||(a.cursor=a.end);var c=this.rangeList.add(a);this.$onAddRange(a),c.length&&this.$onRemoveRange(c),this.rangeCount>0&&!this.inMultiSelectMode&&(this._emit("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session))},this.toSingleRange=function(a){a=a||this.ranges[0];var b=this.rangeList.removeAll();b.length&&this.$onRemoveRange(b),a&&this.fromOrientedRange(a)},this.substractPoint=function(a){var b=this.rangeList.substractPoint(a);if(b)return this.$onRemoveRange(b),b[0]},this.mergeOverlappingRanges=function(){var a=this.rangeList.merge();a.length?this.$onRemoveRange(a):this.ranges[0]&&this.fromOrientedRange(this.ranges[0])},this.$onAddRange=function(a){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(a),this.fromOrientedRange(a),this._emit("addRange",{range:a})},this.$onRemoveRange=function(a){this.rangeCount=this.rangeList.ranges.length;if(this.rangeCount==1&&this.inMultiSelectMode){var b=this.rangeList.ranges.pop();a.push(b),this.rangeCount=0}for(var c=a.length;c--;){var d=this.ranges.indexOf(a[c]);this.ranges.splice(d,1)}this._emit("removeRange",{ranges:a}),this.rangeCount==0&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._emit("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),b=b||this.ranges[0],b&&!b.isEqual(this.getRange())&&this.fromOrientedRange(b)},this.$initRangeList=function(){if(this.rangeList)return;this.rangeList=new d,this.ranges=[],this.rangeCount=0},this.getAllRanges=function(){return this.rangeList.ranges.concat()},this.splitIntoLines=function(){if(this.rangeCount>1){var a=this.rangeList.ranges,b=a[a.length-1],c=e.fromPoints(a[0].start,b.end);this.toSingleRange(),this.setSelectionRange(c,b.cursor==b.start)}else{var d=this.session.documentToScreenPosition(this.selectionLead),f=this.session.documentToScreenPosition(this.selectionAnchor),g=this.rectangularRangeBlock(d,f);g.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(a,b,c){var d=[],f=a.column0)p--;if(p>0){var q=0;while(d[q].isEmpty())q++}for(var r=p;r>=q;r--)d[r].isEmpty()&&d.splice(r,1)}return d}}.call(f.prototype);var l=a("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(a){a.cursor||(a.cursor=a.end);var b=this.getSelectionStyle();return a.marker=this.session.addMarker(a,"ace_selection",b),this.session.$selectionMarkers.push(a),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,a},this.removeSelectionMarkers=function(a){for(var b=a.length;b--;){var c=a[b];if(!c.marker)continue;this.session.removeMarker(c.marker);var d=this.session.$selectionMarkers.indexOf(c);d!=-1&&this.session.$selectionMarkers.splice(d,1)}this.session.selectionMarkerCount=this.session.$selectionMarkers.length},this.$onAddRange=function(a){this.addSelectionMarker(a.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(a){this.removeSelectionMarkers(a.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(a){if(this.inMultiSelectMode)return;this.inMultiSelectMode=!0,this.setStyle("multiselect"),this.keyBinding.addKeyboardHandler(b.commands.keyboardHandler),this.commands.on("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onSingleSelect=function(a){if(this.session.multiSelect.inVirtualMode)return;this.inMultiSelectMode=!1,this.unsetStyle("multiselect"),this.keyBinding.removeKeyboardHandler(b.commands.keyboardHandler),this.commands.removeEventListener("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelectExec=function(a){var b=a.command,c=a.editor;b.multiSelectAction?b.multiSelectAction=="forEach"?c.forEachSelection(b,a.args):b.multiSelectAction=="single"?(c.exitMultiSelectMode(),b.exec(c,a.args||{})):b.multiSelectAction(c,a.args||{}):(b.exec(c,a.args||{}),c.multiSelect.addRange(c.multiSelect.toOrientedRange()),c.multiSelect.mergeOverlappingRanges()),a.preventDefault()},this.forEachSelection=function(a,b){if(this.inVirtualSelectionMode)return;var c=this.session,d=this.selection,e=d.rangeList,g=d._eventRegistry;d._eventRegistry={};var h=new f(c);this.inVirtualSelectionMode=!0;for(var i=e.ranges.length;i--;)h.fromOrientedRange(e.ranges[i]),this.selection=c.selection=h,a.exec(this,b||{}),h.toOrientedRange(e.ranges[i]);h.detach(),this.selection=c.selection=d,this.inVirtualSelectionMode=!1,d._eventRegistry=g,d.mergeOverlappingRanges(),this.onCursorChange(),this.onSelectionChange()},this.exitMultiSelectMode=function(){if(this.inVirtualSelectionMode)return;this.multiSelect.toSingleRange()},this.getCopyText=function(){var a="";if(this.inMultiSelectMode){var b=this.multiSelect.rangeList.ranges;a=[];for(var c=0;c0)continue;return f==0?d:(f=this.comparePoints(a,e.start),f>=0?d:-d-1)}return-d-1},this.add=function(a){var b=this.pointIndex(a.start);b<0&&(b=-b-1);var c=this.pointIndex(a.end,b);return c<0?c=-c-1:c++,this.ranges.splice(b,c-b,a)},this.addList=function(a){var b=[];for(var c=a.length;c--;)b.push.call(b,this.add(a[c]));return b},this.substractPoint=function(a){var b=this.pointIndex(a);if(b>=0)return this.ranges.splice(b,1)},this.merge=function(){var a=[],b=this.ranges,c=b[0],d;for(var e=1;e=0},this.containsPoint=function(a){return this.pointIndex(a)>=0},this.rangeAtPoint=function(a){var b=this.pointIndex(a);if(b>=0)return this.ranges[b]},this.clipRows=function(a,b){var c=this.ranges;if(c[0].start.row>b||c[c.length-1].start.rowe)break;l.start.row==e&&l.start.column>=c.column&&(l.start.column+=h,l.start.row+=g),l.end.row==e&&l.end.column>=c.column&&(l.end.column+=h,l.end.row+=g)}if(g!=0&&j=this.pos.column&&c.start.column<=this.pos.column+this.length+1){var f=c.start.column-this.pos.column;this.length+=e;if(!this.session.$fromUndo){if(b.action==="insertText")for(var g=this.others.length-1;g>=0;g--){var h=this.others[g],i={row:h.row,column:h.column+f};h.row===c.start.row&&c.start.column=0;g--){var h=this.others[g],i={row:h.row,column:h.column+f};h.row===c.start.row&&c.start.column=this.pos.column&&b.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",a)):(this.hideOtherMarkers(),this._emit("cursorLeave",a))},this.detach=function(){this.session.removeMarker(this.markerId),this.hideOtherMarkers(),this.doc.removeEventListener("change",this.$onUpdate),this.session.selection.removeEventListener("changeCursor",this.$onCursorChange),this.pos.detach();for(var a=0;a1&&h(b,"")>-1&&(i=RegExp(this.source,d.replace.call(g(this),"g","")),d.replace.call(a.slice(b.index),i,function(){for(var a=1;ab.index&&this.lastIndex--}return b},f||(RegExp.prototype.test=function(a){var b=d.exec.call(this,a);return b&&this.global&&!b[0].length&&this.lastIndex>b.index&&this.lastIndex--,!!b})}),define("ace/lib/es5-shim",["require","exports","module"],function(a,b,c){function p(a){try{return Object.defineProperty(a,"sentinel",{}),"sentinel"in a}catch(b){}}Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=g.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,h=c.apply(f,d.concat(g.call(arguments)));return h!==null&&Object(h)===h?h:f}return c.apply(b,d.concat(g.call(arguments)))};return e});var d=Function.prototype.call,e=Array.prototype,f=Object.prototype,g=e.slice,h=d.bind(f.toString),i=d.bind(f.hasOwnProperty),j,k,l,m,n;if(n=i(f,"__defineGetter__"))j=d.bind(f.__defineGetter__),k=d.bind(f.__defineSetter__),l=d.bind(f.__lookupGetter__),m=d.bind(f.__lookupSetter__);Array.isArray||(Array.isArray=function(b){return h(b)=="[object Array]"}),Array.prototype.forEach||(Array.prototype.forEach=function(b){var c=G(this),d=arguments[1],e=0,f=c.length>>>0;if(h(b)!="[object Function]")throw new TypeError;while(e>>0,e=Array(d),f=arguments[1];if(h(b)!="[object Function]")throw new TypeError;for(var g=0;g>>0,e=[],f=arguments[1];if(h(b)!="[object Function]")throw new TypeError;for(var g=0;g>>0,e=arguments[1];if(h(b)!="[object Function]")throw new TypeError;for(var f=0;f>>0,e=arguments[1];if(h(b)!="[object Function]")throw new TypeError;for(var f=0;f>>0;if(h(b)!="[object Function]")throw new TypeError;if(!d&&arguments.length==1)throw new TypeError;var e=0,f;if(arguments.length>=2)f=arguments[1];else do{if(e in c){f=c[e++];break}if(++e>=d)throw new TypeError}while(!0);for(;e>>0;if(h(b)!="[object Function]")throw new TypeError;if(!d&&arguments.length==1)throw new TypeError;var e,f=d-1;if(arguments.length>=2)e=arguments[1];else do{if(f in c){e=c[f--];break}if(--f<0)throw new TypeError}while(!0);do f in this&&(e=b.call(void 0,e,c[f],f,c));while(f--);return e}),Array.prototype.indexOf||(Array.prototype.indexOf=function(b){var c=G(this),d=c.length>>>0;if(!d)return-1;var e=0;arguments.length>1&&(e=E(arguments[1])),e=e>=0?e:Math.max(0,d+e);for(;e>>0;if(!d)return-1;var e=d-1;arguments.length>1&&(e=Math.min(e,E(arguments[1]))),e=e>=0?e:d-Math.abs(e);for(;e>=0;e--)if(e in c&&b===c[e])return e;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(b){return b.__proto__||(b.constructor?b.constructor.prototype:f)});if(!Object.getOwnPropertyDescriptor){var o="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(b,c){if(typeof b!="object"&&typeof b!="function"||b===null)throw new TypeError(o+b);if(!i(b,c))return;var d,e,g;d={enumerable:!0,configurable:!0};if(n){var h=b.__proto__;b.__proto__=f;var e=l(b,c),g=m(b,c);b.__proto__=h;if(e||g)return e&&(d.get=e),g&&(d.set=g),d}return d.value=b[c],d}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(b){return Object.keys(b)}),Object.create||(Object.create=function(b,c){var d;if(b===null)d={__proto__:null};else{if(typeof b!="object")throw new TypeError("typeof prototype["+typeof b+"] != 'object'");var e=function(){};e.prototype=b,d=new e,d.__proto__=b}return c!==void 0&&Object.defineProperties(d,c),d});if(Object.defineProperty){var q=p({}),r=typeof document=="undefined"||p(document.createElement("div"));if(!q||!r)var s=Object.defineProperty}if(!Object.defineProperty||s){var t="Property description must be an object: ",u="Object.defineProperty called on non-object: ",v="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(b,c,d){if(typeof b!="object"&&typeof b!="function"||b===null)throw new TypeError(u+b);if(typeof d!="object"&&typeof d!="function"||d===null)throw new TypeError(t+d);if(s)try{return s.call(Object,b,c,d)}catch(e){}if(i(d,"value"))if(n&&(l(b,c)||m(b,c))){var g=b.__proto__;b.__proto__=f,delete b[c],b[c]=d.value,b.__proto__=g}else b[c]=d.value;else{if(!n)throw new TypeError(v);i(d,"get")&&j(b,c,d.get),i(d,"set")&&k(b,c,d.set)}return b}}Object.defineProperties||(Object.defineProperties=function(b,c){for(var d in c)i(c,d)&&Object.defineProperty(b,d,c[d]);return b}),Object.seal||(Object.seal=function(b){return b}),Object.freeze||(Object.freeze=function(b){return b});try{Object.freeze(function(){})}catch(w){Object.freeze=function(b){return function(c){return typeof c=="function"?c:b(c)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(b){return b}),Object.isSealed||(Object.isSealed=function(b){return!1}),Object.isFrozen||(Object.isFrozen=function(b){return!1}),Object.isExtensible||(Object.isExtensible=function(b){if(Object(b)===b)throw new TypeError;var c="";while(i(b,c))c+="?";b[c]=!0;var d=i(b,c);return delete b[c],d});if(!Object.keys){var x=!0,y=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],z=y.length;for(var A in{toString:null})x=!1;Object.keys=function H(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var H=[];for(var b in a)i(a,b)&&H.push(b);if(x)for(var c=0,d=z;c9999?"+":"")+("00000"+Math.abs(e)).slice(0<=e&&e<=9999?-4:-6),c=b.length;while(c--)d=b[c],d<10&&(b[c]="0"+d);return e+"-"+b.slice(0,2).join("-")+"T"+b.slice(2).join(":")+"."+("000"+this.getUTCMilliseconds()).slice(-3)+"Z"};Date.now||(Date.now=function(){return(new Date).getTime()}),Date.prototype.toJSON||(Date.prototype.toJSON=function(b){if(typeof this.toISOString!="function")throw new TypeError;return this.toISOString()}),Date.parse("+275760-09-13T00:00:00.000Z")!==864e13&&(Date=function(a){var b=function e(b,c,d,f,g,h,i){var j=arguments.length;if(this instanceof a){var k=j==1&&String(b)===b?new a(e.parse(b)):j>=7?new a(b,c,d,f,g,h,i):j>=6?new a(b,c,d,f,g,h):j>=5?new a(b,c,d,f,g):j>=4?new a(b,c,d,f):j>=3?new a(b,c,d):j>=2?new a(b,c):j>=1?new a(b):new a;return k.constructor=e,k}return a.apply(this,arguments)},c=new RegExp("^(\\d{4}|[+-]\\d{6})(?:-(\\d{2})(?:-(\\d{2})(?:T(\\d{2}):(\\d{2})(?::(\\d{2})(?:\\.(\\d{3}))?)?(?:Z|(?:([-+])(\\d{2}):(\\d{2})))?)?)?)?$");for(var d in a)b[d]=a[d];return b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function(d){var e=c.exec(d);if(e){e.shift();for(var f=1;f<7;f++)e[f]=+(e[f]||(f<3?1:0)),f==1&&e[f]--;var g=+e.pop(),h=+e.pop(),i=e.pop(),j=0;if(i){if(h>23||g>59)return NaN;j=(h*60+g)*6e4*(i=="+"?-1:1)}var k=+e[0];return 0<=k&&k<=99?(e[0]=k+400,a.UTC.apply(this,e)+j-126227808e5):a.UTC.apply(this,e)+j}return a.parse.apply(this,arguments)},b}(Date));var B=" \n \f\r   ᠎              \u2028\u2029";if(!String.prototype.trim||B.trim()){B="["+B+"]";var C=new RegExp("^"+B+B+"*"),D=new RegExp(B+B+"*$");String.prototype.trim=function(){return String(this).replace(C,"").replace(D,"")}}var E=function(a){return a=+a,a!==a?a=0:a!==0&&a!==1/0&&a!==-Infinity&&(a=(a>0||-1)*Math.floor(Math.abs(a))),a},F="a"[0]!="a",G=function(a){if(a==null)throw new TypeError;return F&&typeof a=="string"&&a?a.split(""):Object(a)}}),define("ace/lib/dom",["require","exports","module"],function(a,b,c){"use strict";var d="http://www.w3.org/1999/xhtml";b.createElement=function(a,b){return document.createElementNS?document.createElementNS(b||d,a):document.createElement(a)},b.setText=function(a,b){a.innerText!==undefined&&(a.innerText=b),a.textContent!==undefined&&(a.textContent=b)},b.hasCssClass=function(a,b){var c=a.className.split(/\s+/g);return c.indexOf(b)!==-1},b.addCssClass=function(a,c){b.hasCssClass(a,c)||(a.className+=" "+c)},b.removeCssClass=function(a,b){var c=a.className.split(/\s+/g);for(;;){var d=c.indexOf(b);if(d==-1)break;c.splice(d,1)}a.className=c.join(" ")},b.toggleCssClass=function(a,b){var c=a.className.split(/\s+/g),d=!0;for(;;){var e=c.indexOf(b);if(e==-1)break;d=!1,c.splice(e,1)}return d&&c.push(b),a.className=c.join(" "),d},b.setCssClass=function(a,c,d){d?b.addCssClass(a,c):b.removeCssClass(a,c)},b.hasCssString=function(a,b){var c=0,d;b=b||document;if(b.createStyleSheet&&(d=b.styleSheets)){while(c5||Math.abs(a.clientY-j)>5)h=0;h==d&&(h=0,g(a));if(e)return b.preventDefault(a)};b.addListener(a,"mousedown",k),e.isOldIE&&b.addListener(a,"dblclick",k)},b.addCommandKeyListener=function(a,c){var d=b.addListener;if(e.isOldGecko||e.isOpera){var f=null;d(a,"keydown",function(a){f=a.keyCode}),d(a,"keypress",function(a){return g(c,a,f)})}else{var h=null;d(a,"keydown",function(a){return h=a.keyIdentifier||a.keyCode,g(c,a,a.keyCode)})}};if(window.postMessage){var h=1;b.nextTick=function(a,c){c=c||window;var d="zero-timeout-message-"+h;b.addListener(c,"message",function e(f){f.data==d&&(b.stopPropagation(f),b.removeListener(c,"message",e),a())}),c.postMessage(d,"*")}}else b.nextTick=function(a,b){b=b||window,window.setTimeout(a,0)}}),define("ace/lib/keys",["require","exports","module","ace/lib/oop"],function(a,b,c){"use strict";var d=a("./oop"),e=function(){var a={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,meta:8,command: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",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:".",188:",",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:'"'}};for(var b in a.FUNCTION_KEYS){var c=a.FUNCTION_KEYS[b].toUpperCase();a[c]=parseInt(b,10)}return d.mixin(a,a.MODIFIER_KEYS),d.mixin(a,a.PRINTABLE_KEYS),d.mixin(a,a.FUNCTION_KEYS),a}();d.mixin(b,e),b.keyCodeToString=function(a){return(e[a]||String.fromCharCode(a)).toLowerCase()}}),define("ace/lib/oop",["require","exports","module"],function(a,b,c){"use strict",b.inherits=function(){var a=function(){};return function(b,c){a.prototype=c.prototype,b.super_=c.prototype,b.prototype=new a,b.prototype.constructor=b}}(),b.mixin=function(a,b){for(var c in b)a[c]=b[c]},b.implement=function(a,c){b.mixin(a,c)}}),define("ace/lib/useragent",["require","exports","module"],function(a,b,c){"use strict";var d=(navigator.platform.match(/mac|win|linux/i)||["other"])[0].toLowerCase(),e=navigator.userAgent;b.isWin=d=="win",b.isMac=d=="mac",b.isLinux=d=="linux",b.isIE=navigator.appName=="Microsoft Internet Explorer"&&parseFloat(navigator.userAgent.match(/MSIE ([0-9]+[\.0-9]+)/)[1]),b.isOldIE=b.isIE&&b.isIE<9,b.isGecko=b.isMozilla=window.controllers&&window.navigator.product==="Gecko",b.isOldGecko=b.isGecko&&parseInt((navigator.userAgent.match(/rv\:(\d+)/)||[])[1],10)<4,b.isOpera=window.opera&&Object.prototype.toString.call(window.opera)=="[object Opera]",b.isWebKit=parseFloat(e.split("WebKit/")[1])||undefined,b.isChrome=parseFloat(e.split(" Chrome/")[1])||undefined,b.isAIR=e.indexOf("AdobeAIR")>=0,b.isIPad=e.indexOf("iPad")>=0,b.isTouchPad=e.indexOf("TouchPad")>=0,b.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},b.getOS=function(){return b.isMac?b.OS.MAC:b.isLinux?b.OS.LINUX:b.OS.WINDOWS}}),define("ace/editor",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/oop","ace/lib/lang","ace/lib/useragent","ace/keyboard/textinput","ace/mouse/mouse_handler","ace/mouse/fold_handler","ace/keyboard/keybinding","ace/edit_session","ace/search","ace/range","ace/lib/event_emitter","ace/commands/command_manager","ace/commands/default_commands"],function(a,b,c){"use strict",a("./lib/fixoldbrowsers");var d=a("./lib/oop"),e=a("./lib/lang"),f=a("./lib/useragent"),g=a("./keyboard/textinput").TextInput,h=a("./mouse/mouse_handler").MouseHandler,i=a("./mouse/fold_handler").FoldHandler,j=a("./keyboard/keybinding").KeyBinding,k=a("./edit_session").EditSession,l=a("./search").Search,m=a("./range").Range,n=a("./lib/event_emitter").EventEmitter,o=a("./commands/command_manager").CommandManager,p=a("./commands/default_commands").commands,q=function(a,b){var c=a.getContainerElement();this.container=c,this.renderer=a,this.textInput=new g(a.getTextAreaContainer(),this),this.keyBinding=new j(this),f.isIPad||(this.$mouseHandler=new h(this),new i(this)),this.$blockScrolling=0,this.$search=(new l).set({wrap:!0}),this.commands=new o(f.isMac?"mac":"win",p),this.setSession(b||new k(""))};(function(){d.implement(this,n),this.setKeyboardHandler=function(a){this.keyBinding.setKeyboardHandler(a)},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(a){if(this.session==a)return;if(this.session){var b=this.session;this.session.removeEventListener("change",this.$onDocumentChange),this.session.removeEventListener("changeMode",this.$onChangeMode),this.session.removeEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.session.removeEventListener("changeTabSize",this.$onChangeTabSize),this.session.removeEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.session.removeEventListener("changeWrapMode",this.$onChangeWrapMode),this.session.removeEventListener("onChangeFold",this.$onChangeFold),this.session.removeEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.session.removeEventListener("changeBackMarker",this.$onChangeBackMarker),this.session.removeEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.session.removeEventListener("changeAnnotation",this.$onChangeAnnotation),this.session.removeEventListener("changeOverwrite",this.$onCursorChange),this.session.removeEventListener("changeScrollTop",this.$onScrollTopChange),this.session.removeEventListener("changeLeftTop",this.$onScrollLeftChange);var c=this.session.getSelection();c.removeEventListener("changeCursor",this.$onCursorChange),c.removeEventListener("changeSelection",this.$onSelectionChange)}this.session=a,this.$onDocumentChange=this.onDocumentChange.bind(this),a.addEventListener("change",this.$onDocumentChange),this.renderer.setSession(a),this.$onChangeMode=this.onChangeMode.bind(this),a.addEventListener("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),a.addEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.updateText.bind(this.renderer),a.addEventListener("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),a.addEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),a.addEventListener("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),a.addEventListener("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.addEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.addEventListener("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.addEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.addEventListener("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.addEventListener("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.addEventListener("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.addEventListener("changeScrollLeft",this.$onScrollLeftChange),this.selection=a.getSelection(),this.selection.addEventListener("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.addEventListener("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.$blockScrolling+=1,this.onCursorChange(),this.$blockScrolling-=1,this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull(),this._emit("changeSession",{session:a,oldSession:b})},this.getSession=function(){return this.session},this.getSelection=function(){return this.selection},this.resize=function(){this.renderer.onResize()},this.setTheme=function(a){this.renderer.setTheme(a)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(a){this.renderer.setStyle(a)},this.unsetStyle=function(a){this.renderer.unsetStyle(a)},this.setFontSize=function(a){this.container.style.fontSize=a,this.renderer.updateFontSize()},this.$highlightBrackets=function(){this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null);if(this.$highlightPending)return;var a=this;this.$highlightPending=!0,setTimeout(function(){a.$highlightPending=!1;var b=a.session.findMatchingBracket(a.getCursorPosition());if(b){var c=new m(b.row,b.column,b.row,b.column+1);a.session.$bracketHighlight=a.session.addMarker(c,"ace_bracket","text")}},10)},this.focus=function(){var a=this;setTimeout(function(){a.textInput.focus()}),this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(){this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus")},this.onBlur=function(){this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur")},this.onDocumentChange=function(a){var b=a.data,c=b.range,d;c.start.row==c.end.row&&b.action!="insertLines"&&b.action!="removeLines"?d=c.end.row:d=Infinity,this.renderer.updateLines(c.start.row,d),this._emit("change",a),this.onCursorChange()},this.onTokenizerUpdate=function(a){var b=a.data;this.renderer.updateLines(b.first,b.last)},this.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},this.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},this.onCursorChange=function(){this.renderer.updateCursor(),this.$blockScrolling||this.renderer.scrollCursorIntoView(),this.renderer.moveTextAreaToCursor(this.textInput.getElement()),this.$highlightBrackets(),this.$updateHighlightActiveLine()},this.$updateHighlightActiveLine=function(){var a=this.getSession();a.$highlightLineMarker&&a.removeMarker(a.$highlightLineMarker),typeof this.$lastrow=="number"&&this.renderer.removeGutterDecoration(this.$lastrow,"ace_gutter_active_line"),a.$highlightLineMarker=null,this.$lastrow=null;if(this.getHighlightActiveLine()){var b=this.getCursorPosition(),c=this.session.getFoldLine(b.row);if(this.getSelectionStyle()!="line"||!this.selection.isMultiLine()){var d;c?d=new m(c.start.row,0,c.end.row+1,0):d=new m(b.row,0,b.row+1,0),a.$highlightLineMarker=a.addMarker(d,"ace_active_line","background")}this.renderer.addGutterDecoration(this.$lastrow=b.row,"ace_gutter_active_line")}},this.onSelectionChange=function(a){var b=this.getSession();b.$selectionMarker&&b.removeMarker(b.$selectionMarker),b.$selectionMarker=null;if(!this.selection.isEmpty()){var c=this.selection.getRange(),d=this.getSelectionStyle();b.$selectionMarker=b.addMarker(c,"ace_selection",d)}else this.$updateHighlightActiveLine();this.$highlightSelectedWord&&this.session.getMode().highlightSelection(this)},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.setBreakpoints(this.session.getBreakpoints())},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(){this.renderer.updateText()},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getCopyText=function(){var a="";return this.selection.isEmpty()||(a=this.session.getTextRange(this.getSelectionRange())),this._emit("copy",a),a},this.onCut=function(){this.commands.exec("cut",this)},this.insert=function(a){var b=this.session,c=b.getMode(),d=this.getCursorPosition();if(this.getBehavioursEnabled()){var e=c.transformAction(b.getState(d.row),"insertion",this,b,a);e&&(a=e.text)}a=a.replace(" ",this.session.getTabString());if(!this.selection.isEmpty())d=this.session.remove(this.getSelectionRange()),this.clearSelection();else if(this.session.getOverwrite()){var f=new m.fromPoints(d,d);f.end.column+=a.length,this.session.remove(f)}this.clearSelection();var g=d.column,h=b.getState(d.row),i=c.checkOutdent(h,b.getLine(d.row),a),j=b.getLine(d.row),k=c.getNextLineIndent(h,j.slice(0,d.column),b.getTabString()),l=b.insert(d,a);e&&e.selection&&(e.selection.length==2?this.selection.setSelectionRange(new m(d.row,g+e.selection[0],d.row,g+e.selection[1])):this.selection.setSelectionRange(new m(d.row+e.selection[0],e.selection[1],d.row+e.selection[2],e.selection[3])));var h=b.getState(d.row);if(b.getDocument().isNewLine(a)){this.moveCursorTo(d.row+1,0);var n=b.getTabSize(),o=Number.MAX_VALUE;for(var p=d.row+1;p<=l.row;++p){var q=0;j=b.getLine(p);for(var r=0;r0;++r)j.charAt(r)==" "?s-=n:j.charAt(r)==" "&&(s-=1);b.remove(new m(p,0,p,r))}b.indentRows(d.row+1,l.row,k)}i&&c.autoOutdent(h,b,d.row)},this.onTextInput=function(a,b){b&&this._emit("paste",a),this.keyBinding.onTextInput(a,b)},this.onCommandKey=function(a,b,c){this.keyBinding.onCommandKey(a,b,c)},this.setOverwrite=function(a){this.session.setOverwrite(a)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(a){this.$mouseHandler.setScrollSpeed(a)},this.getScrollSpeed=function(){return this.$mouseHandler.getScrollSpeed()},this.setDragDelay=function(a){this.$mouseHandler.setDragDelay(a)},this.getDragDelay=function(){return this.$mouseHandler.getDragDelay()},this.$selectionStyle="line",this.setSelectionStyle=function(a){if(this.$selectionStyle==a)return;this.$selectionStyle=a,this.onSelectionChange(),this._emit("changeSelectionStyle",{data:a})},this.getSelectionStyle=function(){return this.$selectionStyle},this.$highlightActiveLine=!0,this.setHighlightActiveLine=function(a){if(this.$highlightActiveLine==a)return;this.$highlightActiveLine=a,this.$updateHighlightActiveLine()},this.getHighlightActiveLine=function(){return this.$highlightActiveLine},this.$highlightSelectedWord=!0,this.setHighlightSelectedWord=function(a){if(this.$highlightSelectedWord==a)return;this.$highlightSelectedWord=a,a?this.session.getMode().highlightSelection(this):this.session.getMode().clearSelectionHighlight(this)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(a){this.renderer.setAnimatedScroll(a)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(a){if(this.getShowInvisibles()==a)return;this.renderer.setShowInvisibles(a)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setShowPrintMargin=function(a){this.renderer.setShowPrintMargin(a)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(a){this.renderer.setPrintMarginColumn(a)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.$readOnly=!1,this.setReadOnly=function(a){this.$readOnly=a},this.getReadOnly=function(){return this.$readOnly},this.$modeBehaviours=!0,this.setBehavioursEnabled=function(a){this.$modeBehaviours=a},this.getBehavioursEnabled=function(){return this.$modeBehaviours},this.setShowFoldWidgets=function(a){var b=this.renderer.$gutterLayer;if(b.getShowFoldWidgets()==a)return;this.renderer.$gutterLayer.setShowFoldWidgets(a),this.$showFoldWidgets=a,this.renderer.updateFull()},this.getShowFoldWidgets=function(){return this.renderer.$gutterLayer.getShowFoldWidgets()},this.remove=function(a){this.selection.isEmpty()&&(a=="left"?this.selection.selectLeft():this.selection.selectRight());var b=this.getSelectionRange();if(this.getBehavioursEnabled()){var c=this.session,d=c.getState(b.start.row),e=c.getMode().transformAction(d,"deletion",this,c,b);e&&(b=e)}this.session.remove(b),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 a=this.getSelectionRange();a.start.column==a.end.column&&a.start.row==a.end.row&&(a.end.column=0,a.end.row++),this.session.remove(a),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var a=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(a)},this.transposeLetters=function(){if(!this.selection.isEmpty())return;var a=this.getCursorPosition(),b=a.column;if(b===0)return;var c=this.session.getLine(a.row),d,e;b=this.getFirstVisibleRow()&&a<=this.getLastVisibleRow()},this.isRowFullyVisible=function(a){return a>=this.renderer.getFirstFullyVisibleRow()&&a<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$getPageDownRow=function(){return this.renderer.getScrollBottomRow()},this.$getPageUpRow=function(){var a=this.renderer.getScrollTopRow(),b=this.renderer.getScrollBottomRow();return a-(b-a)},this.selectPageDown=function(){var a=this.$getPageDownRow()+Math.floor(this.$getVisibleRowCount()/2);this.scrollPageDown();var b=this.getSelection(),c=this.session.documentToScreenPosition(b.getSelectionLead()),d=this.session.screenToDocumentPosition(a,c.column);b.selectTo(d.row,d.column)},this.selectPageUp=function(){var a=this.renderer.getScrollTopRow()-this.renderer.getScrollBottomRow(),b=this.$getPageUpRow()+Math.round(a/2);this.scrollPageUp();var c=this.getSelection(),d=this.session.documentToScreenPosition(c.getSelectionLead()),e=this.session.screenToDocumentPosition(b,d.column);c.selectTo(e.row,e.column)},this.gotoPageDown=function(){var a=this.$getPageDownRow(),b=this.getCursorPositionScreen().column;this.scrollToRow(a),this.getSelection().moveCursorToScreen(a,b)},this.gotoPageUp=function(){var a=this.$getPageUpRow(),b=this.getCursorPositionScreen().column;this.scrollToRow(a),this.getSelection().moveCursorToScreen(a,b)},this.scrollPageDown=function(){this.scrollToRow(this.$getPageDownRow())},this.scrollPageUp=function(){this.renderer.scrollToRow(this.$getPageUpRow())},this.scrollToRow=function(a){this.renderer.scrollToRow(a)},this.scrollToLine=function(a,b){this.renderer.scrollToLine(a,b)},this.centerSelection=function(){var a=this.getSelectionRange(),b=Math.floor(a.start.row+(a.end.row-a.start.row)/2);this.renderer.scrollToLine(b,!0)},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(a,b){this.selection.moveCursorTo(a,b)},this.moveCursorToPosition=function(a){this.selection.moveCursorToPosition(a)},this.jumpToMatching=function(){var a=this.getCursorPosition(),b=this.session.findMatchingBracket(a);b||(a.column+=1,b=this.session.findMatchingBracket(a)),b||(a.column-=2,b=this.session.findMatchingBracket(a)),b&&(this.clearSelection(),this.moveCursorTo(b.row,b.column))},this.gotoLine=function(a,b){this.selection.clearSelection(),this.session.unfold({row:a-1,column:b||0}),this.$blockScrolling+=1,this.moveCursorTo(a-1,b||0),this.$blockScrolling-=1,this.isRowFullyVisible(this.getCursorPosition().row)||this.scrollToLine(a,!0)},this.navigateTo=function(a,b){this.clearSelection(),this.moveCursorTo(a,b)},this.navigateUp=function(a){this.selection.clearSelection(),a=a||1,this.selection.moveCursorBy(-a,0)},this.navigateDown=function(a){this.selection.clearSelection(),a=a||1,this.selection.moveCursorBy(a,0)},this.navigateLeft=function(a){if(!this.selection.isEmpty()){var b=this.getSelectionRange().start;this.moveCursorToPosition(b)}else{a=a||1;while(a--)this.selection.moveCursorLeft()}this.clearSelection()},this.navigateRight=function(a){if(!this.selection.isEmpty()){var b=this.getSelectionRange().end;this.moveCursorToPosition(b)}else{a=a||1;while(a--)this.selection.moveCursorRight()}this.clearSelection()},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection()},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection()},this.navigateFileEnd=function(){this.selection.moveCursorFileEnd(),this.clearSelection()},this.navigateFileStart=function(){this.selection.moveCursorFileStart(),this.clearSelection()},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection()},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection()},this.replace=function(a,b){b&&this.$search.set(b);var c=this.$search.find(this.session),d=0;return c?(this.$tryReplace(c,a)&&(d=1),c!==null&&(this.selection.setSelectionRange(c),this.renderer.scrollSelectionIntoView(c.start,c.end)),d):d},this.replaceAll=function(a,b){b&&this.$search.set(b);var c=this.$search.findAll(this.session),d=0;if(!c.length)return d;var e=this.getSelectionRange();this.clearSelection(),this.selection.moveCursorTo(0,0),this.$blockScrolling+=1;for(var f=c.length-1;f>=0;--f)this.$tryReplace(c[f],a)&&d++;return this.selection.setSelectionRange(e),this.$blockScrolling-=1,d},this.$tryReplace=function(a,b){var c=this.session.getTextRange(a);return b=this.$search.replace(c,b),b!==null?(a.end=this.session.replace(a,b),a):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(a,b){this.clearSelection(),b=b||{},b.needle=a,this.$search.set(b),this.$find()},this.findNext=function(a){a=a||{},typeof a.backwards=="undefined"&&(a.backwards=!1),this.$search.set(a),this.$find()},this.findPrevious=function(a){a=a||{},typeof a.backwards=="undefined"&&(a.backwards=!0),this.$search.set(a),this.$find()},this.$find=function(a){this.selection.isEmpty()||this.$search.set({needle:this.session.getTextRange(this.getSelectionRange())}),typeof a!="undefined"&&this.$search.set({backwards:a});var b=this.$search.find(this.session);if(b){this.session.unfold(b),this.$blockScrolling+=1,this.selection.setSelectionRange(b),this.$blockScrolling-=1;if(this.getAnimatedScroll()){var c=this.getCursorPosition();this.isRowFullyVisible(c.row)||this.scrollToLine(c.row,!0)}else this.renderer.scrollSelectionIntoView(b.start,b.end)}},this.undo=function(){this.session.getUndoManager().undo()},this.redo=function(){this.session.getUndoManager().redo()},this.destroy=function(){this.renderer.destroy()}}).call(q.prototype),b.Editor=q}),define("ace/lib/lang",["require","exports","module"],function(a,b,c){"use strict",b.stringReverse=function(a){return a.split("").reverse().join("")},b.stringRepeat=function(a,b){return(new Array(b+1)).join(a)};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"")},b.stringTrimRight=function(a){return a.replace(e,"")},b.copyObject=function(a){var b={};for(var c in a)b[c]=a[c];return b},b.copyArray=function(a){var b=[];for(var c=0,d=a.length;c128)return;setTimeout(function(){h||m()},0)},p=function(a){h=!0,b.onCompositionStart(),e.isGecko||setTimeout(q,0)},q=function(){if(!h)return;b.onCompositionUpdate(c.value)},r=function(a){h=!1,b.onCompositionEnd()},s=function(a){i=!0;var d=b.getCopyText();d?c.value=d:a.preventDefault(),l(),setTimeout(function(){m()},0)},t=function(a){i=!0;var d=b.getCopyText();d?(c.value=d,b.onCut()):a.preventDefault(),l(),setTimeout(function(){m()},0)};d.addCommandKeyListener(c,b.onCommandKey.bind(b));if(e.isOldIE){var u={13:1,27:1};d.addListener(c,"keyup",function(a){h&&(!c.value||u[a.keyCode])&&setTimeout(r,0);if((c.value.charCodeAt(0)|0)<129)return;h?q():p()})}"onpropertychange"in c&&!("oninput"in c)?d.addListener(c,"propertychange",o):d.addListener(c,"input",n),d.addListener(c,"paste",function(a){j=!0,a.clipboardData&&a.clipboardData.getData?(m(a.clipboardData.getData("text/plain")),a.preventDefault()):o()}),"onbeforecopy"in c&&typeof clipboardData!="undefined"?(d.addListener(c,"beforecopy",function(a){var c=b.getCopyText();c?clipboardData.setData("Text",c):a.preventDefault()}),d.addListener(a,"keydown",function(a){if(a.ctrlKey&&a.keyCode==88){var c=b.getCopyText();c&&(clipboardData.setData("Text",c),b.onCut()),d.preventDefault(a)}})):(d.addListener(c,"copy",s),d.addListener(c,"cut",t)),d.addListener(c,"compositionstart",p),e.isGecko&&d.addListener(c,"text",q),e.isWebKit&&d.addListener(c,"keyup",q),d.addListener(c,"compositionend",r),d.addListener(c,"blur",function(){b.onBlur()}),d.addListener(c,"focus",function(){b.onFocus(),l()}),this.focus=function(){b.onFocus(),l(),c.focus()},this.blur=function(){c.blur()},this.isFocused=v,this.getElement=function(){return c},this.onContextMenu=function(a,b){a&&(k||(k=c.style.cssText),c.style.cssText="position:fixed; z-index:1000;left:"+(a.x-2)+"px; top:"+(a.y-2)+"px;"),b&&(c.value="")},this.onContextMenuClose=function(){setTimeout(function(){k&&(c.style.cssText=k,k=""),m()},0)}};b.TextInput=g}),define("ace/mouse/mouse_handler",["require","exports","module","ace/lib/event","ace/mouse/default_handlers","ace/mouse/default_gutter_handler","ace/mouse/mouse_event"],function(a,b,c){"use strict";var d=a("../lib/event"),e=a("./default_handlers").DefaultHandlers,f=a("./default_gutter_handler").GutterHandler,g=a("./mouse_event").MouseEvent,h=function(a){this.editor=a,new e(a),new f(a),d.addListener(a.container,"mousedown",function(b){return a.focus(),d.preventDefault(b)}),d.addListener(a.container,"selectstart",function(a){return d.preventDefault(a)});var b=a.renderer.getMouseEventTarget();d.addListener(b,"mousedown",this.onMouseEvent.bind(this,"mousedown")),d.addListener(b,"click",this.onMouseEvent.bind(this,"click")),d.addListener(b,"mousemove",this.onMouseMove.bind(this,"mousemove")),d.addMultiMouseDownListener(b,0,2,500,this.onMouseEvent.bind(this,"dblclick")),d.addMultiMouseDownListener(b,0,3,600,this.onMouseEvent.bind(this,"tripleclick")),d.addMultiMouseDownListener(b,0,4,600,this.onMouseEvent.bind(this,"quadclick")),d.addMouseWheelListener(a.container,this.onMouseWheel.bind(this,"mousewheel"));var c=a.renderer.$gutter;d.addListener(c,"mousedown",this.onMouseEvent.bind(this,"guttermousedown")),d.addListener(c,"click",this.onMouseEvent.bind(this,"gutterclick")),d.addListener(c,"dblclick",this.onMouseEvent.bind(this,"gutterdblclick")),d.addListener(c,"mousemove",this.onMouseMove.bind(this,"gutter"))};(function(){this.$scrollSpeed=1,this.setScrollSpeed=function(a){this.$scrollSpeed=a},this.getScrollSpeed=function(){return this.$scrollSpeed},this.onMouseEvent=function(a,b){this.editor._emit(a,new g(b,this.editor))},this.$dragDelay=250,this.setDragDelay=function(a){this.$dragDelay=a},this.getDragDelay=function(){return this.$dragDelay},this.onMouseMove=function(a,b){var c=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;if(!c||!c.length)return;this.editor._emit(a,new g(b,this.editor))},this.onMouseWheel=function(a,b){var c=new g(b,this.editor);c.speed=this.$scrollSpeed*2,c.wheelX=b.wheelX,c.wheelY=b.wheelY,this.editor._emit(a,c)}}).call(h.prototype),b.MouseHandler=h}),define("ace/mouse/default_handlers",["require","exports","module","ace/lib/event","ace/lib/dom","ace/lib/browser_focus"],function(a,b,c){function k(a){this.editor=a,this.$clickSelection=null,this.browserFocus=new f,a.setDefaultHandler("mousedown",this.onMouseDown.bind(this)),a.setDefaultHandler("dblclick",this.onDoubleClick.bind(this)),a.setDefaultHandler("tripleclick",this.onTripleClick.bind(this)),a.setDefaultHandler("quadclick",this.onQuadClick.bind(this)),a.setDefaultHandler("mousewheel",this.onScroll.bind(this))}function l(a,b,c,d){return Math.sqrt(Math.pow(c-a,2)+Math.pow(d-b,2))}"use strict";var d=a("../lib/event"),e=a("../lib/dom"),f=a("../lib/browser_focus").BrowserFocus,g=0,h=1,i=2,j=5;(function(){this.onMouseDown=function(a){function C(b){a.getShiftKey()?m.selection.selectToPosition(b):n.$clickSelection||(m.moveCursorToPosition(b),m.selection.clearSelection()),q=h}var b=a.inSelection(),c=a.pageX,f=a.pageY,k=a.getDocumentPosition(),m=this.editor,n=this,o=m.getSelectionRange(),p=o.isEmpty(),q=g;if(b&&(!this.browserFocus.isFocused()||(new Date).getTime()-this.browserFocus.lastFocus<20||!m.isFocused())){m.focus();return}var r=a.getButton();if(r!==0){p&&m.moveCursorToPosition(k),r==2&&(m.textInput.onContextMenu({x:a.clientX,y:a.clientY},p),d.capture(m.container,function(){},m.textInput.onContextMenuClose));return}b||C(k);var s=c,t=f,u=(new Date).getTime(),v,w,x,y=function(a){s=d.getDocumentX(a),t=d.getDocumentY(a)},z=function(a){clearInterval(F),q==g?C(k):q==i&&A(a),n.$clickSelection=null,q=g},A=function(a){e.removeCssClass(m.container,"ace_dragging"),m.session.removeMarker(x),m.$mouseHandler.$clickSelection||v||(m.moveCursorToPosition(k),m.selection.clearSelection());if(!v)return;if(w.contains(v.row,v.column)){v=null;return}m.clearSelection();if(a&&(a.ctrlKey||a.altKey))var b=m.session,c=b.insert(v,b.getTextRange(w));else var c=m.moveText(w,v);if(!c){v=null;return}m.selection.setSelectionRange(c)},B=function(){if(q==g){var a=l(c,f,s,t),b=(new Date).getTime();if(a>j){q=h;var d=m.renderer.screenToTextCoordinates(s,t);C(d)}else if(b-u>m.getDragDelay()){q=i,w=m.getSelectionRange();var k=m.getSelectionStyle();x=m.session.addMarker(w,"ace_selection",k),m.clearSelection(),e.addCssClass(m.container,"ace_dragging")}}q==i?E():q==h&&D()},D=function(){var a,b=m.renderer.screenToTextCoordinates(s,t);n.$clickSelection?n.$clickSelection.contains(b.row,b.column)?m.selection.setSelectionRange(n.$clickSelection):(n.$clickSelection.compare(b.row,b.column)==-1?a=n.$clickSelection.end:a=n.$clickSelection.start,m.selection.setSelectionAnchor(a.row,a.column),m.selection.selectToPosition(b)):m.selection.selectToPosition(b),m.renderer.scrollCursorIntoView()},E=function(){v=m.renderer.screenToTextCoordinates(s,t),m.moveCursorToPosition(v)};d.capture(m.container,y,z);var F=setInterval(B,20);return a.preventDefault()},this.onDoubleClick=function(a){var b=a.getDocumentPosition(),c=this.editor;c.moveCursorToPosition(b),c.selection.selectWord(),this.$clickSelection=c.getSelectionRange()},this.onTripleClick=function(a){var b=a.getDocumentPosition(),c=this.editor;c.moveCursorToPosition(b),c.selection.selectLine(),this.$clickSelection=c.getSelectionRange()},this.onQuadClick=function(a){var b=this.editor;b.selectAll(),this.$clickSelection=b.getSelectionRange()},this.onScroll=function(a){var b=this.editor;b.renderer.scrollBy(a.wheelX*a.speed,a.wheelY*a.speed);if(b.renderer.isScrollableBy(a.wheelX*a.speed,a.wheelY*a.speed))return a.preventDefault()}}).call(k.prototype),b.DefaultHandlers=k}),define("ace/lib/browser_focus",["require","exports","module","ace/lib/oop","ace/lib/event","ace/lib/event_emitter"],function(a,b,c){"use strict";var d=a("./oop"),e=a("./event"),f=a("./event_emitter").EventEmitter,g=function(a){a=a||window,this.lastFocus=(new Date).getTime(),this._isFocused=!0;var b=this;"onfocusin"in a.document?(e.addListener(a.document,"focusin",function(a){b._setFocused(!0)}),e.addListener(a.document,"focusout",function(a){b._setFocused(!!a.toElement)})):(e.addListener(a,"blur",function(a){b._setFocused(!1)}),e.addListener(a,"focus",function(a){b._setFocused(!0)}))};(function(){d.implement(this,f),this.isFocused=function(){return this._isFocused},this._setFocused=function(a){if(this._isFocused==a)return;a&&(this.lastFocus=(new Date).getTime()),this._isFocused=a,this._emit("changeFocus")}}).call(g.prototype),b.BrowserFocus=g}),define("ace/lib/event_emitter",["require","exports","module"],function(a,b,c){"use strict";var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{},this._defaultHandlers=this._defaultHandlers||{};var c=this._eventRegistry[a]||[],d=this._defaultHandlers[a];if(!c.length&&!d)return;b=b||{},b.type=a,b.stopPropagation||(b.stopPropagation=function(){this.propagationStopped=!0}),b.preventDefault||(b.preventDefault=function(){this.defaultPrevented=!0});for(var e=0;e=4352&&a<=4447||a>=4515&&a<=4519||a>=4602&&a<=4607||a>=9001&&a<=9002||a>=11904&&a<=11929||a>=11931&&a<=12019||a>=12032&&a<=12245||a>=12272&&a<=12283||a>=12288&&a<=12350||a>=12353&&a<=12438||a>=12441&&a<=12543||a>=12549&&a<=12589||a>=12593&&a<=12686||a>=12688&&a<=12730||a>=12736&&a<=12771||a>=12784&&a<=12830||a>=12832&&a<=12871||a>=12880&&a<=13054||a>=13056&&a<=19903||a>=19968&&a<=42124||a>=42128&&a<=42182||a>=43360&&a<=43388||a>=44032&&a<=55203||a>=55216&&a<=55238||a>=55243&&a<=55291||a>=63744&&a<=64255||a>=65040&&a<=65049||a>=65072&&a<=65106||a>=65108&&a<=65126||a>=65128&&a<=65131||a>=65281&&a<=65376||a>=65504&&a<=65510}e.implement(this,h),this.setDocument=function(a){if(this.doc)throw new Error("Document is already set");this.doc=a,a.on("change",this.onChange.bind(this)),this.on("changeFold",this.onChangeFold.bind(this)),this.bgTokenizer&&(this.bgTokenizer.setDocument(this.getDocument()),this.bgTokenizer.start(0))},this.getDocument=function(){return this.doc},this.$resetRowCache=function(a){if(a==0){this.$rowCache=[];return}var b=this.$rowCache;for(var c=0;c=a){b.splice(c,b.length);return}},this.onChangeFold=function(a){var b=a.data;this.$resetRowCache(b.start.row)},this.onChange=function(a){var b=a.data;this.$modified=!0,this.$resetRowCache(b.range.start.row);var c=this.$updateInternalDataOnChange(a);!this.$fromUndo&&this.$undoManager&&!b.ignore&&(this.$deltasDoc.push(b),c&&c.length!=0&&this.$deltasFold.push({action:"removeFolds",folds:c}),this.$informUndoManager.schedule()),this.bgTokenizer.start(b.range.start.row),this._emit("change",a)},this.setValue=function(a){this.doc.setValue(a),this.selection.moveCursorTo(0,0),this.selection.clearSelection(),this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.getUndoManager().reset()},this.getValue=this.toString=function(){return this.doc.getValue()},this.getSelection=function(){return this.selection},this.getState=function(a){return this.bgTokenizer.getState(a)},this.getTokens=function(a,b){return this.bgTokenizer.getTokens(a,b)},this.getTokenAt=function(a,b){var c=this.bgTokenizer.getTokens(a,a)[0].tokens,d,e=0;if(b==null)f=c.length-1,e=this.getLine(a).length;else for(var f=0;f=b)break}return d=c[f],d?(d.index=f,d.start=e-d.value.length,d):null},this.setUndoManager=function(a){this.$undoManager=a,this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel();if(a){var b=this;this.$syncInformUndoManager=function(){b.$informUndoManager.cancel(),b.$deltasFold.length&&(b.$deltas.push({group:"fold",deltas:b.$deltasFold}),b.$deltasFold=[]),b.$deltasDoc.length&&(b.$deltas.push({group:"doc",deltas:b.$deltasDoc}),b.$deltasDoc=[]),b.$deltas.length>0&&a.execute({action:"aceupdate",args:[b.$deltas,b]}),b.$deltas=[]},this.$informUndoManager=f.deferredCall(this.$syncInformUndoManager)}},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?f.stringRepeat(" ",this.getTabSize()):" "},this.$useSoftTabs=!0,this.setUseSoftTabs=function(a){if(this.$useSoftTabs===a)return;this.$useSoftTabs=a},this.getUseSoftTabs=function(){return this.$useSoftTabs},this.$tabSize=4,this.setTabSize=function(a){if(isNaN(a)||this.$tabSize===a)return;this.$modified=!0,this.$tabSize=a,this._emit("changeTabSize")},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(a){return this.$useSoftTabs&&a.column%this.$tabSize==0},this.$overwrite=!1,this.setOverwrite=function(a){if(this.$overwrite==a)return;this.$overwrite=a,this._emit("changeOverwrite")},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(a){this.$breakpoints=[];for(var b=0;b0&&(d=!!c.charAt(b-1).match(this.tokenRe)),d||(d=!!c.charAt(b).match(this.tokenRe));var e=d?this.tokenRe:this.nonTokenRe,f=b;if(f>0){do f--;while(f>=0&&c.charAt(f).match(e));f++}var g=b;while(g=this.doc.getLength()-1)return 0;var c=this.doc.removeLines(a,b);return this.doc.insertLines(a+1,c),1},this.duplicateLines=function(a,b){var a=this.$clipRowToDocument(a),b=this.$clipRowToDocument(b),c=this.getLines(a,b);this.doc.insertLines(a,c);var d=b-a+1;return d},this.$clipRowToDocument=function(a){return Math.max(0,Math.min(a,this.doc.getLength()-1))},this.$clipColumnToRow=function(a,b){return b<0?0:Math.min(this.doc.getLine(a).length,b)},this.$clipPositionToDocument=function(a,b){b=Math.max(0,b);if(a<0)a=0,b=0;else{var c=this.doc.getLength();a>=c?(a=c-1,b=this.doc.getLine(c-1).length):b=Math.min(this.doc.getLine(a).length,b)}return{row:a,column:b}},this.$clipRangeToDocument=function(a){a.start.row<0?(a.start.row=0,a.start.column=0):a.start.column=this.$clipColumnToRow(a.start.row,a.start.column);var b=this.doc.getLength()-1;return a.end.row>b?(a.end.row=b,a.end.column=this.doc.getLine(b).length):a.end.column=this.$clipColumnToRow(a.end.row,a.end.column),a},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(a){if(a!=this.$useWrapMode){this.$useWrapMode=a,this.$modified=!0,this.$resetRowCache(0);if(a){var b=this.getLength();this.$wrapData=[];for(var c=0;c0?(this.$wrapLimit=b,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._emit("changeWrapLimit")),!0):!1},this.$constrainWrapLimit=function(a){var b=this.$wrapLimitRange.min;b&&(a=Math.max(b,a));var c=this.$wrapLimitRange.max;return c&&(a=Math.min(c,a)),Math.max(1,a)},this.getWrapLimit=function(){return this.$wrapLimit},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(a){var b=this.$useWrapMode,c,d=a.data.action,e=a.data.range.start.row,f=a.data.range.end.row,g=a.data.range.start,h=a.data.range.end,i=null;d.indexOf("Lines")!=-1?(d=="insertLines"?f=e+a.data.lines.length:f=e,c=a.data.lines?a.data.lines.length:f-e):c=f-e;if(c!=0)if(d.indexOf("remove")!=-1){b&&this.$wrapData.splice(e,c);var j=this.$foldData;i=this.getFoldsInRange(a.data.range),this.removeFolds(i);var k=this.getFoldLine(h.row),l=0;if(k){k.addRemoveChars(h.row,h.column,g.column-h.column),k.shiftRow(-c);var m=this.getFoldLine(e);m&&m!==k&&(m.merge(k),k=m),l=j.indexOf(k)+1}for(l;l=h.row&&k.shiftRow(-c)}f=e}else{var n;if(b){n=[e,0];for(var o=0;o=e&&k.shiftRow(c)}}else{c=Math.abs(a.data.range.start.column-a.data.range.end.column),d.indexOf("remove")!=-1&&(i=this.getFoldsInRange(a.data.range),this.removeFolds(i),c=-c);var k=this.getFoldLine(e);k&&k.addRemoveChars(e,g.column,c)}return b&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),b&&this.$updateWrapData(e,f),i},this.$updateWrapData=function(a,b){var c=this.doc.getAllLines(),d=this.getTabSize(),e=this.$wrapData,g=this.$wrapLimit,h,k,l=a;b=Math.min(b,c.length-1);while(l<=b){k=this.getFoldLine(l,k);if(!k)h=this.$getDisplayTokens(f.stringTrimRight(c[l])),e[l]=this.$computeWrapSplits(h,g,d),l++;else{h=[],k.walk(function(a,b,d,e){var f;if(a){f=this.$getDisplayTokens(a,h.length),f[0]=i;for(var g=1;g=n)h.pop();e[k.start.row]=this.$computeWrapSplits(h,g,d),l=k.end.row+1}}};var b=1,c=2,i=3,j=4,l=9,n=10,o=11,p=12;this.$computeWrapSplits=function(a,b){function g(b){var d=a.slice(e,b),g=d.length;d.join("").replace(/12/g,function(){g-=1}).replace(/2/g,function(){g-=1}),f+=g,c.push(f),e=b}if(a.length==0)return[];var c=[],d=a.length,e=0,f=0;while(d-e>b){var h=e+b;if(a[h]>=n){while(a[h]>=n)h++;g(h);continue}if(a[h]==i||a[h]==j){for(h;h!=e-1;h--)if(a[h]==i)break;if(h>e){g(h);continue}h=e+b;for(h;hk&&a[h]k&&a[h]==l)h--;if(h>k){g(++h);continue}h=e+b,g(h)}return c},this.$getDisplayTokens=function(a,d){var e=[],f;d=d||0;for(var g=0;g39&&h<48||h>57&&h<64?e.push(l):h>=4352&&q(h)?e.push(b,c):e.push(b)}return e},this.$getStringScreenWidth=function(a,b,c){if(b==0)return[0,0];b==null&&(b=c+a.length*Math.max(this.getTabSize(),2)),c=c||0;var d,e;for(e=0;e=4352&&q(d)?c+=2:c+=1;if(c>b)break}return[c,e]},this.getRowLength=function(a){return!this.$useWrapMode||!this.$wrapData[a]?1:this.$wrapData[a].length+1},this.getRowHeight=function(a,b){return this.getRowLength(b)*a.lineHeight},this.getScreenLastRowColumn=function(a){var b=this.screenToDocumentPosition(a,Number.MAX_VALUE);return this.documentToScreenColumn(b.row,b.column)},this.getDocumentLastRowColumn=function(a,b){var c=this.documentToScreenRow(a,b);return this.getScreenLastRowColumn(c)},this.getDocumentLastRowColumnPosition=function(a,b){var c=this.documentToScreenRow(a,b);return this.screenToDocumentPosition(c,Number.MAX_VALUE/10)},this.getRowSplitData=function(a){return this.$useWrapMode?this.$wrapData[a]:undefined},this.getScreenTabSize=function(a){return this.$tabSize-a%this.$tabSize},this.screenToDocumentRow=function(a,b){return this.screenToDocumentPosition(a,b).row},this.screenToDocumentColumn=function(a,b){return this.screenToDocumentPosition(a,b).column},this.screenToDocumentPosition=function(a,b){if(a<0)return{row:0,column:0};var c,d=0,e=0,f,g=0,h=0,i=this.$rowCache;for(var j=0;j=a||d>=l)break;g+=h,d++,d>n&&(d=m.end.row+1,m=this.getNextFoldLine(d,m),n=m?m.start.row:Infinity),k&&i.push({docRow:d,screenRow:g})}if(m&&m.start.row<=d)c=this.getFoldDisplayLine(m),d=m.start.row;else{if(g+h<=a||d>l)return{row:l,column:this.getLine(l).length};c=this.getLine(d),m=null}if(this.$useWrapMode){var o=this.$wrapData[d];o&&(f=o[a-g],a>g&&o.length&&(e=o[a-g-1]||o[o.length-1],c=c.substring(e)))}return e+=this.$getStringScreenWidth(c,b)[1],this.$useWrapMode&&e>=f&&(e=f-1),m?m.idxToPosition(e):{row:d,column:e}},this.documentToScreenPosition=function(a,b){if(typeof b=="undefined")var c=this.$clipPositionToDocument(a.row,a.column);else c=this.$clipPositionToDocument(a,b);a=c.row,b=c.column;var d;if(this.$useWrapMode){d=this.$wrapData;if(a>d.length-1)return{row:this.getScreenLength(),column:d.length==0?0:d[d.length-1].length-1}}var e=0,f=null,g=null;g=this.getFoldAt(a,b,1),g&&(a=g.start.row,b=g.start.column);var h,i=0,j=this.$rowCache;for(var k=0;k=n){h=m.end.row+1;if(h>a)break;m=this.getNextFoldLine(h,m),n=m?m.start.row:Infinity}else h=i+1;e+=this.getRowLength(i),i=h,l&&j.push({docRow:i,screenRow:e})}var o="";m&&i>=n?(o=this.getFoldDisplayLine(m,a,b),f=m.start.row):(o=this.getLine(a).substring(0,b),f=a);if(this.$useWrapMode){var p=d[f],q=0;while(o.length>=p[q])e++,q++;o=o.substring(p[q-1]||0,o.length)}return{row:e,column:this.$getStringScreenWidth(o)[0]}},this.documentToScreenColumn=function(a,b){return this.documentToScreenPosition(a,b).column},this.documentToScreenRow=function(a,b){return this.documentToScreenPosition(a,b).row},this.getScreenLength=function(){var a=0,b=null;if(!this.$useWrapMode){a=this.getLength();var c=this.$foldData;for(var d=0;dg&&(f=b.end.row+1,b=this.$foldData[d++],g=b?b.start.row:Infinity)}return a}}).call(n.prototype),a("./edit_session/folding").Folding.call(n.prototype),a("./edit_session/bracket_match").BracketMatch.call(n.prototype),b.EditSession=n}),define("ace/config",["require","exports","module","ace/lib/lang"],function(a,b,c){function g(a){return a.replace(/-(.)/g,function(a,b){return b.toUpperCase()})}"no use strict";var d=a("./lib/lang"),e=function(){return this}(),f={packaged:!1,workerPath:"",modePath:"",themePath:"",suffix:".js"};b.get=function(a){if(!f.hasOwnProperty(a))throw new Error("Unknown confik key: "+a);return f[a]},b.set=function(a,b){if(!f.hasOwnProperty(a))throw new Error("Unknown confik key: "+a);f[a]=b},b.all=function(){return d.copyObject(f)},b.init=function(){f.packaged=a.packaged||c.packaged||e.define&&define.packaged;if(!e.document)return"";var d={},h="",i,j=document.getElementsByTagName("script");for(var k=0;kb.row||a.row==b.row&&a.column>b.column},this.getRange=function(){var a=this.selectionAnchor,b=this.selectionLead;return this.isEmpty()?g.fromPoints(b,b):this.isBackwards()?g.fromPoints(b,a):g.fromPoints(a,b)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){var a=this.doc.getLength()-1;this.setSelectionAnchor(a,this.doc.getLine(a).length),this.moveCursorTo(0,0)},this.setSelectionRange=function(a,b){b?(this.setSelectionAnchor(a.end.row,a.end.column),this.selectTo(a.start.row,a.start.column)):(this.setSelectionAnchor(a.start.row,a.start.column),this.selectTo(a.end.row,a.end.column)),this.$desiredColumn=null},this.$moveSelection=function(a){var b=this.selectionLead;this.$isEmpty&&this.setSelectionAnchor(b.row,b.column),a.call(this)},this.selectTo=function(a,b){this.$moveSelection(function(){this.moveCursorTo(a,b)})},this.selectToPosition=function(a){this.$moveSelection(function(){this.moveCursorToPosition(a)})},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.selectWord=function(){var a=this.getCursor(),b=this.session.getWordRange(a.row,a.column);this.setSelectionRange(b)},this.selectAWord=function(){var a=this.getCursor(),b=this.session.getAWordRange(a.row,a.column);this.setSelectionRange(b)},this.selectLine=function(){var a=this.selectionLead.row,b,c=this.session.getFoldLine(a);c?(a=c.start.row,b=c.end.row):b=a,this.setSelectionAnchor(a,0),this.$moveSelection(function(){this.moveCursorTo(b+1,0)})},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.moveCursorLeft=function(){var a=this.selectionLead.getPosition(),b;if(b=this.session.getFoldAt(a.row,a.column,-1))this.moveCursorTo(b.start.row,b.start.column);else if(a.column==0)a.row>0&&this.moveCursorTo(a.row-1,this.doc.getLine(a.row-1).length);else{var c=this.session.getTabSize();this.session.isTabStop(a)&&this.doc.getLine(a.row).slice(a.column-c,a.column).split(" ").length-1==c?this.moveCursorBy(0,-c):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var a=this.selectionLead.getPosition(),b;if(b=this.session.getFoldAt(a.row,a.column,1))this.moveCursorTo(b.end.row,b.end.column);else if(this.selectionLead.column==this.doc.getLine(this.selectionLead.row).length)this.selectionLead.row=c.length){this.moveCursorTo(a,c.length),this.moveCursorRight(),a0&&this.moveCursorWordLeft();return}if(g=this.session.tokenRe.exec(f))b-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0;this.moveCursorTo(a,b)},this.moveCursorBy=function(a,b){var c=this.session.documentToScreenPosition(this.selectionLead.row,this.selectionLead.column);b===0&&(this.$desiredColumn?c.column=this.$desiredColumn:this.$desiredColumn=c.column);var d=this.session.screenToDocumentPosition(c.row+a,c.column);this.moveCursorTo(d.row,d.column+b,b===0)},this.moveCursorToPosition=function(a){this.moveCursorTo(a.row,a.column)},this.moveCursorTo=function(a,b,c){var d=this.session.getFoldAt(a,b,1);d&&(a=d.start.row,b=d.start.column),this.$keepDesiredColumnOnChange=!0,this.selectionLead.setPosition(a,b),this.$keepDesiredColumnOnChange=!1,c||(this.$desiredColumn=null)},this.moveCursorToScreen=function(a,b,c){var d=this.session.screenToDocumentPosition(a,b);this.moveCursorTo(d.row,d.column,c)},this.detach=function(){this.selectionLead.detach(),this.selectionAnchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(a){this.setSelectionRange(a,a.cursor==a.start),this.$desiredColumn=a.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(a){var b=this.getRange();return a?(a.start.column=b.start.column,a.start.row=b.start.row,a.end.column=b.end.column,a.end.row=b.end.row):a=b,a.cursor=this.isBackwards()?a.start:a.end,a.desiredColumn=this.$desiredColumn,a}}).call(h.prototype),b.Selection=h}),define("ace/range",["require","exports","module"],function(a,b,c){"use strict";var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d}};(function(){this.isEqual=function(a){return this.start.row==a.start.row&&this.end.row==a.end.row&&this.start.column==a.start.column&&this.end.column==a.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;return b=this.compare(c.row,c.column),b==1?(b=this.compare(d.row,d.column),b==1?2:b==0?1:0):b==-1?-2:(b=this.compare(d.row,d.column),b==-1?-1:b==1?42:0)},this.comparePoint=function(a){return this.compare(a.row,a.column)},this.containsRange=function(a){return this.comparePoint(a.start)==0&&this.comparePoint(a.end)==0},this.intersectsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){return this.compare(a,b)==0?this.isEnd(a,b)||this.isStart(a,b)?!1:!0:!1},this.insideStart=function(a,b){return this.compare(a,b)==0?this.isEnd(a,b)?!1:!0:!1},this.insideEnd=function(a,b){return this.compare(a,b)==0?this.isStart(a,b)?!1:!0:!1},this.compare=function(a,b){return!this.isMultiLine()&&a===this.start.row?bthis.end.column?1:0:athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.row=0&&/^[\w\d]/.test(h)||e<=g&&/[\w\d]$/.test(h))return;h=f.substring(c.start.column,c.end.column);if(!/^[\w\d]+$/.test(h))return;var i=a.getCursorPosition(),j={wrap:!0,wholeWord:!0,caseSensitive:!0,needle:h},k=a.$search.getOptions();a.$search.set(j);var l=a.$search.findAll(b);l.forEach(function(a){if(!a.contains(i.row,i.column)){var c=b.addMarker(a,"ace_selected_word","text");b.$selectionOccurrences.push(c)}}),a.$search.set(k)},this.clearSelectionHighlight=function(a){if(!a.session.$selectionOccurrences)return;a.session.$selectionOccurrences.forEach(function(b){a.session.removeMarker(b)}),a.session.$selectionOccurrences=[]},this.createModeDelegates=function(a){if(!this.$embeds)return;this.$modes={};for(var b=0;b1&&e[i].token.length!==j-1)throw new Error("Matching groups and length of the token array don't match in rule #"+i+" of state "+c);h[g]={rule:i,len:j},g+=j,f.push(k)}this.regExps[c]=new RegExp("(?:("+f.join(")|(")+")|(.))",b)}};(function(){this.getLineTokens=function(a,b){var c=b,d=this.rules[c],e=this.matchMappings[c],f=this.regExps[c];f.lastIndex=0;var g,h=[],i=0,j={type:null,value:""};while(g=f.exec(a)){var k="text",l=null,m=[g[0]];for(var n=0;n1&&(m=g.slice(n+2,n+1+e[n].len)),typeof l.token=="function"?k=l.token.apply(this,m):k=l.token;var o=l.next;o&&o!==c&&(c=o,d=this.rules[c],e=this.matchMappings[c],i=f.lastIndex,f=this.regExps[c],f.lastIndex=i);break}if(m[0]){typeof k=="string"&&(m=[m.join("")],k=[k]);for(var n=0;n=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length),a},this.insert=function(a,b){if(!b||b.length===0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];return a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||"")),a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};return this._emit("change",{data:e}),d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};return this._emit("change",{data:d}),c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};return this._emit("change",{data:e}),d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b==c)return;var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};return this._emit("change",{data:i}),d.start},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};return this._emit("change",{data:e}),d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._emit("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(a,b,c){"use strict";var d=a("./lib/oop"),e=a("./lib/event_emitter").EventEmitter,f=b.Anchor=function(a,b,c){this.document=a,typeof c=="undefined"?this.setPosition(b.row,b.column):this.setPosition(b,c),this.$onChange=this.onChange.bind(this),a.on("change",this.$onChange)};(function(){d.implement(this,e),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.onChange=function(a){var b=a.data,c=b.range;if(c.start.row==c.end.row&&c.start.row!=this.row)return;if(c.start.row>this.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0),c}}).call(f.prototype)}),define("ace/background_tokenizer",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(a,b,c){"use strict";var d=a("./lib/oop"),e=a("./lib/event_emitter").EventEmitter,f=function(a,b){this.running=!1,this.lines=[],this.currentLine=0,this.tokenizer=a;var c=this;this.$worker=function(){if(!c.running)return;var a=new Date,b=c.currentLine,d=c.doc,e=0,f=d.getLength();while(c.currentLine20){c.fireUpdateEvent(b,c.currentLine-1),c.running=setTimeout(c.$worker,20);return}}c.running=!1,c.fireUpdateEvent(b,f-1)}};(function(){d.implement(this,e),this.setTokenizer=function(a){this.tokenizer=a,this.lines=[],this.start(0)},this.setDocument=function(a){this.doc=a,this.lines=[],this.stop()},this.fireUpdateEvent=function(a,b){var c={first:a,last:b};this._emit("update",{data:c})},this.start=function(a){this.currentLine=Math.min(a||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(a,b){return this.$tokenizeRows(a,b)},this.getState=function(a){return this.$tokenizeRows(a,a)[0].state},this.$tokenizeRows=function(a,b){if(!this.doc||isNaN(a)||isNaN(b))return[{state:"start",tokens:[]}];var c=[],d="start",e=!1;a>0&&this.lines[a-1]?(d=this.lines[a-1].state,e=!0):a==0?(d="start",e=!0):this.lines.length>0&&(d=this.lines[this.lines.length-1].state);var f=this.doc.getLines(a,b);for(var g=a;g<=b;g++)if(!this.lines[g]){var h=this.tokenizer.getLineTokens(f[g-a]||"",d),d=h.state;c.push(h),e&&(this.lines[g]=h)}else{var h=this.lines[g];d=h.state,c.push(h)}return c}}).call(f.prototype),b.BackgroundTokenizer=f}),define("ace/edit_session/folding",["require","exports","module","ace/range","ace/edit_session/fold_line","ace/edit_session/fold","ace/token_iterator"],function(a,b,c){function h(){this.getFoldAt=function(a,b,c){var d=this.getFoldLine(a);if(!d)return null;var e=d.folds;for(var f=0;f=a)return e;if(e.end.row>a)return null}return null},this.getNextFoldLine=function(a,b){var c=this.$foldData,d=0;b&&(d=c.indexOf(b)),d==-1&&(d=0);for(d;d=a)return e}return null},this.getFoldedRowCount=function(a,b){var c=this.$foldData,d=b-a+1;for(var e=0;e=b){h=a?d-=b-h:d=0);break}g>=a&&(h>=a?d-=g-h:d-=g-a+1)}return d},this.$addFoldLine=function(a){return this.$foldData.push(a),this.$foldData.sort(function(a,b){return a.start.row-b.start.row}),a},this.addFold=function(a,b){var c=this.$foldData,d=!1,g;a instanceof f?g=a:g=new f(b,a),this.$clipRangeToDocument(g.range);var h=g.start.row,i=g.start.column,j=g.end.row,k=g.end.column;if(g.placeholder.length<2)throw"Placeholder has to be at least 2 characters";if(h==j&&k-i<2)throw"The range has to be at least 2 characters width";var l=this.getFoldAt(h,i,1),m=this.getFoldAt(j,k,-1);if(l&&m==l)return l.addSubFold(g);if(l&&!l.range.isStart(h,i)||m&&!m.range.isEnd(j,k))throw"A fold can't intersect already existing fold"+g.range+l.range;var n=this.getFoldsInRange(g.range);n.length>0&&(this.removeFolds(n),g.subFolds=n);for(var o=0;othis.endRow)throw"Can't add a fold to this FoldLine as it has no connection";this.folds.push(a),this.folds.sort(function(a,b){return-a.range.compareEnd(b.start.row,b.start.column)}),this.range.compareEnd(a.start.row,a.start.column)>0?(this.end.row=a.end.row,this.end.column=a.end.column):this.range.compareStart(a.end.row,a.end.column)<0&&(this.start.row=a.start.row,this.start.column=a.start.column)}else if(a.start.row==this.end.row)this.folds.push(a),this.end.row=a.end.row,this.end.column=a.end.column;else{if(a.end.row!=this.start.row)throw"Trying to add fold to FoldRow that doesn't have a matching row";this.folds.unshift(a),this.start.row=a.start.row,this.start.column=a.start.column}a.foldLine=this},this.containsRow=function(a){return a>=this.start.row&&a<=this.end.row},this.walk=function(a,b,c){var d=0,e=this.folds,f,g,h,i=!0;b==null&&(b=this.end.row,c=this.end.column);for(var j=0;j=this.$rowTokens.length){this.$row+=1;if(this.$row>=a)return this.$row=a-1,null;this.$rowTokens=this.$session.getTokens(this.$row,this.$row)[0].tokens,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 a=this.$rowTokens,b=this.$tokenIndex,c=a[b].start;if(c!==undefined)return c;c=0;while(b>0)b-=1,c+=a[b].value.length;return c}}).call(d.prototype),b.TokenIterator=d}),define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator"],function(a,b,c){function e(){this.findMatchingBracket=function(a){if(a.column==0)return null;var b=this.getLine(a.row).charAt(a.column-1);if(b=="")return null;var c=b.match(/([\(\[\{])|([\)\]\}])/);return c?c[1]?this.$findClosingBracket(c[1],a):this.$findOpeningBracket(c[2],a):null},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{"},this.$findOpeningBracket=function(a,b){var c=this.$brackets[a],e=1,f=new d(this,b.row,b.column),g=f.getCurrentToken();if(!g)return null;var h=new RegExp("(\\.?"+g.type.replace(".","|").replace("rparen","lparen|rparen")+")+"),i=b.column-f.getCurrentTokenColumn()-2,j=g.value;for(;;){while(i>=0){var k=j.charAt(i);if(k==c){e-=1;if(e==0)return{row:f.getCurrentTokenRow(),column:i+f.getCurrentTokenColumn()}}else k==a&&(e+=1);i-=1}do g=f.stepBackward();while(g&&!h.test(g.type));if(g==null)break;j=g.value,i=j.length-1}return null},this.$findClosingBracket=function(a,b){var c=this.$brackets[a],e=1,f=new d(this,b.row,b.column),g=f.getCurrentToken();if(!g)return null;var h=new RegExp("(\\.?"+g.type.replace(".","|").replace("lparen","lparen|rparen")+")+"),i=b.column-f.getCurrentTokenColumn();for(;;){var j=g.value,k=j.length;while(i=0;h--){var i=g[h],j=c.$rangeFromMatch(f,i.offset,i.str.length);if(d(j))return!0}})}}},this.$rangeFromMatch=function(a,b,c){return new f(a,b,a,b+c)},this.$assembleRegExp=function(){if(this.$options.regExp)var a=this.$options.needle;else a=d.escapeRegExp(this.$options.needle);this.$options.wholeWord&&(a="\\b"+a+"\\b");var b="g";this.$options.caseSensitive||(b+="i");var c=new RegExp(a,b);return c},this.$forwardLineIterator=function(a){function k(e){var f=a.getLine(e);return b&&e==c.end.row&&(f=f.substring(0,c.end.column)),j&&e==d.row&&(f=f.substring(0,d.column)),f}var b=this.$options.scope==g.SELECTION,c=this.$options.range||a.getSelection().getRange(),d=this.$options.start||c[b?"start":"end"],e=b?c.start.row:0,f=b?c.start.column:0,h=b?c.end.row:a.getLength()-1,i=this.$options.wrap,j=!1;return{forEach:function(a){var b=d.row,c=k(b),g=d.column,l=!1;j=!1;while(!a(c,g,b)){if(l)return;b++,g=0;if(b>h){if(!i)return;b=e,g=f,j=!0}b==d.row&&(l=!0),c=k(b)}}}},this.$backwardLineIterator=function(a){var b=this.$options.scope==g.SELECTION,c=this.$options.range||a.getSelection().getRange(),d=this.$options.start||c[b?"end":"start"],e=b?c.start.row:0,f=b?c.start.column:0,h=b?c.end.row:a.getLength()-1,i=this.$options.wrap;return{forEach:function(g){var j=d.row,k=a.getLine(j).substring(0,d.column),l=0,m=!1,n=!1;while(!g(k,l,j)){if(m)return;j--,l=0;if(j0},this.hasRedo=function(){return this.$redoStack.length>0}}).call(d.prototype),b.UndoManager=d}),define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/useragent","ace/config","ace/lib/net","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/renderloop","ace/lib/event_emitter","text!ace/css/editor.css"],function(a,b,c){"use strict";var d=a("./lib/oop"),e=a("./lib/dom"),f=a("./lib/event"),g=a("./lib/useragent"),h=a("./config"),i=a("./lib/net"),j=a("./layer/gutter").Gutter,k=a("./layer/marker").Marker,l=a("./layer/text").Text,m=a("./layer/cursor").Cursor,n=a("./scrollbar").ScrollBar,o=a("./renderloop").RenderLoop,p=a("./lib/event_emitter").EventEmitter,q=a("text!./css/editor.css");e.importCssString(q,"ace_editor");var r=function(a,b){var c=this;this.container=a,e.addCssClass(a,"ace_editor"),this.setTheme(b),this.$gutter=e.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.scroller=e.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=e.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new j(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onResize.bind(this,!0)),this.$markerBack=new k(this.content);var d=this.$textLayer=new l(this.content);this.canvas=d.element,this.$markerFront=new k(this.content),this.characterWidth=d.getCharacterWidth(),this.lineHeight=d.getLineHeight(),this.$cursorLayer=new m(this.content),this.$cursorPadding=8,this.$horizScroll=!0,this.$horizScrollAlwaysVisible=!0,this.$animatedScroll=!1,this.scrollBar=new n(a),this.scrollBar.addEventListener("scroll",function(a){c.session.setScrollTop(a.data)}),this.scrollTop=0,this.scrollLeft=0,f.addListener(this.scroller,"scroll",function(){var a=c.scroller.scrollLeft;c.scrollLeft=a,c.session.setScrollLeft(a),a==0?c.$gutter.className="ace_gutter":c.$gutter.className="ace_gutter horscroll"}),this.cursorPos={row:0,column:0},this.$textLayer.addEventListener("changeCharacterSize",function(){c.characterWidth=d.getCharacterWidth(),c.lineHeight=d.getLineHeight(),c.$updatePrintMargin(),c.onResize(!0),c.$loop.schedule(c.CHANGE_FULL)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:1,characterWidth:1,minHeight:1,maxHeight:1,offset:0,height:1},this.$loop=new o(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.setPadding(4),this.$updatePrintMargin()};(function(){this.showGutter=!0,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,d.implement(this,p),this.setSession=function(a){this.session=a,this.$cursorLayer.setSession(a),this.$markerBack.setSession(a),this.$markerFront.setSession(a),this.$gutterLayer.setSession(a),this.$textLayer.setSession(a),this.$loop.schedule(this.CHANGE_FULL)},this.updateLines=function(a,b){b===undefined&&(b=Infinity),this.$changedLines?(this.$changedLines.firstRow>a&&(this.$changedLines.firstRow=a),this.$changedLines.lastRowc.lastRow+1)return;if(bd&&this.session.setScrollTop(d),this.scrollTop+this.$size.scrollerHeightc&&(c0)return!0;if(b>0&&this.session.getScrollTop()+this.$size.scrollerHeighth&&(e=g.end.row+1,g=this.session.getNextFoldLine(e,g),h=g?g.start.row:Infinity);if(e>f)break;var j=this.$annotations[e]||b;c.push("
",e+1);if(i){var k=i[e];k==null&&(k=i[e]=this.session.getFoldWidget(e)),k&&c.push("")}var l=this.session.getRowLength(e)-1;while(l--)c.push("
¦");c.push("
"),e++}this.element=d.setInnerHtml(this.element,c.join("")),this.element.style.height=a.minHeight+"px";var m=this.element.offsetWidth;m!==this.gutterWidth&&(this.gutterWidth=m,this._emit("changeGutterWidth",m))},this.$showFoldWidgets=!0,this.setShowFoldWidgets=function(a){a?d.addCssClass(this.element,"ace_folding-enabled"):d.removeCssClass(this.element,"ace_folding-enabled"),this.$showFoldWidgets=a},this.getShowFoldWidgets=function(){return this.$showFoldWidgets}}).call(g.prototype),b.Gutter=g}),define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(a,b,c){"use strict";var d=a("../range").Range,e=a("../lib/dom"),f=function(a){this.element=e.createElement("div"),this.element.className="ace_layer ace_marker-layer",a.appendChild(this.element)};(function(){this.$padding=0,this.setPadding=function(a){this.$padding=a},this.setSession=function(a){this.session=a},this.setMarkers=function(a){this.markers=a},this.update=function(a){var a=a||this.config;if(!a)return;this.config=a;var b=[];for(var c in this.markers){var d=this.markers[c],f=d.range.clipRows(a.firstRow,a.lastRow);if(f.isEmpty())continue;f=f.toScreenRange(this.session);if(d.renderer){var g=this.$getTop(f.start.row,a),h=Math.round(this.$padding+f.start.column*a.characterWidth);d.renderer(b,f,h,g,a)}else f.isMultiLine()?d.type=="text"?this.drawTextMarker(b,f,d.clazz,a):this.drawMultiLineMarker(b,f,d.clazz,a,d.type):this.drawSingleLineMarker(b,f,d.clazz,a,null,d.type)}this.element=e.setInnerHtml(this.element,b.join(""))},this.$getTop=function(a,b){return(a-b.firstRowScreen)*b.lineHeight},this.drawTextMarker=function(a,b,c,e){var f=b.start.row,g=new d(f,b.start.column,f,this.session.getScreenLastRowColumn(f));this.drawSingleLineMarker(a,g,c,e,1,"text"),f=b.end.row,g=new d(f,0,f,b.end.column),this.drawSingleLineMarker(a,g,c,e,0,"text");for(f=b.start.row+1;f"),j=this.$getTop(b.end.row,d),i=Math.round(b.end.column*d.characterWidth),a.push("
"),h=(b.end.row-b.start.row-1)*d.lineHeight;if(h<0)return;j=this.$getTop(b.start.row+1,d),a.push("
")},this.drawSingleLineMarker=function(a,b,c,d,e,f){var g=f==="background"?0:this.$padding,h=d.lineHeight;if(f==="background")var i=d.width;else i=Math.round((b.end.column+(e||0)-b.start.column)*d.characterWidth);var j=this.$getTop(b.start.row,d),k=Math.round(g+b.start.column*d.characterWidth);a.push("
")}}).call(f.prototype),b.Marker=f}),define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("../lib/dom"),f=a("../lib/lang"),g=a("../lib/useragent"),h=a("../lib/event_emitter").EventEmitter,i=function(a){this.element=e.createElement("div"),this.element.className="ace_layer ace_text-layer",a.appendChild(this.element),this.$characterSize=this.$measureSizes()||{width:0,height:0},this.$pollSizeChanges()};(function(){d.implement(this,h),this.EOF_CHAR="¶",this.EOL_CHAR="¬",this.TAB_CHAR="→",this.SPACE_CHAR="·",this.$padding=0,this.setPadding=function(a){this.$padding=a,this.element.style.padding="0 "+a+"px"},this.getLineHeight=function(){return this.$characterSize.height||1},this.getCharacterWidth=function(){return this.$characterSize.width||1},this.checkForSizeChanges=function(){var a=this.$measureSizes();a&&(this.$characterSize.width!==a.width||this.$characterSize.height!==a.height)&&(this.$characterSize=a,this._emit("changeCharacterSize",{data:a}))},this.$pollSizeChanges=function(){var a=this;this.$pollSizeChangesTimer=setInterval(function(){a.checkForSizeChanges()},500)},this.$fontStyles={fontFamily:1,fontSize:1,fontWeight:1,fontStyle:1,lineHeight:1},this.$measureSizes=g.isIE||g.isOldGecko?function(){var a=1e3;if(!this.$measureNode){var b=this.$measureNode=e.createElement("div"),c=b.style;c.width=c.height="auto",c.left=c.top=-a*40+"px",c.visibility="hidden",c.position="fixed",c.overflow="visible",c.whiteSpace="nowrap",b.innerHTML=f.stringRepeat("Xy",a);if(this.element.ownerDocument.body)this.element.ownerDocument.body.appendChild(b);else{var d=this.element.parentNode;while(!e.hasCssClass(d,"ace_editor"))d=d.parentNode;d.appendChild(b)}}if(!this.element.offsetWidth)return null;var c=this.$measureNode.style,g=e.computedStyle(this.element);for(var h in this.$fontStyles)c[h]=g[h];var i={height:this.$measureNode.offsetHeight,width:this.$measureNode.offsetWidth/(a*2)};return i.width==0||i.height==0?null:i}:function(){if(!this.$measureNode){var a=this.$measureNode=e.createElement("div"),b=a.style;b.width=b.height="auto",b.left=b.top="-100px",b.visibility="hidden",b.position="fixed",b.overflow="visible",b.whiteSpace="nowrap",a.innerHTML="X";var c=this.element.parentNode;while(c&&!e.hasCssClass(c,"ace_editor"))c=c.parentNode;if(!c)return this.$measureNode=null;c.appendChild(a)}var d=this.$measureNode.getBoundingClientRect(),f={height:d.height,width:d.width};return f.width==0||f.height==0?null:f},this.setSession=function(a){this.session=a},this.showInvisibles=!1,this.setShowInvisibles=function(a){return this.showInvisibles==a?!1:(this.showInvisibles=a,!0)},this.$tabStrings=[],this.$computeTabString=function(){var a=this.session.getTabSize(),b=this.$tabStrings=[0];for(var c=1;c"+this.TAB_CHAR+(new Array(c)).join(" ")+""):b.push((new Array(c+1)).join(" "))},this.updateLines=function(a,b,c){this.$computeTabString(),(this.config.lastRow!=a.lastRow||this.config.firstRow!=a.firstRow)&&this.scrollLines(a),this.config=a;var d=Math.max(b,a.firstRow),f=Math.min(c,a.lastRow),g=this.element.childNodes,h=0;for(var i=a.firstRow;i0;d--)c.removeChild(c.firstChild);if(b.lastRow>a.lastRow)for(var d=this.session.getFoldedRowCount(a.lastRow+1,b.lastRow);d>0;d--)c.removeChild(c.lastChild);if(a.firstRowb.lastRow){var e=this.$renderLinesFragment(a,b.lastRow+1,a.lastRow);c.appendChild(e)}},this.$renderLinesFragment=function(a,b,c){var d=this.element.ownerDocument.createDocumentFragment(),f=b,g=this.session.getNextFoldLine(f),h=g?g.start.row:Infinity;for(;;){f>h&&(f=g.end.row+1,g=this.session.getNextFoldLine(f,g),h=g?g.start.row:Infinity);if(f>c)break;var i=e.createElement("div"),j=[],k=this.session.getTokens(f,f);k.length==1&&this.$renderLine(j,f,k[0].tokens,!1),i.innerHTML=j.join("");if(this.$useLineGroups())i.className="ace_line_group",d.appendChild(i);else{var l=i.childNodes;while(l.length)d.appendChild(l[0])}f++}return d},this.update=function(a){this.$computeTabString(),this.config=a;var b=[],c=a.firstRow,d=a.lastRow,f=c,g=this.session.getNextFoldLine(f),h=g?g.start.row:Infinity;for(;;){f>h&&(f=g.end.row+1,g=this.session.getNextFoldLine(f,g),h=g?g.start.row:Infinity);if(f>d)break;this.$useLineGroups()&&b.push("
");var i=this.session.getTokens(f,f);i.length==1&&this.$renderLine(b,f,i[0].tokens,!1),this.$useLineGroups()&&b.push("
"),f++}this.element=e.setInnerHtml(this.element,b.join(""))},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(a,b,c,d){var e=this,f=/\t|&|<|( +)|([\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000])|[\u1100-\u115F]|[\u11A3-\u11A7]|[\u11FA-\u11FF]|[\u2329-\u232A]|[\u2E80-\u2E99]|[\u2E9B-\u2EF3]|[\u2F00-\u2FD5]|[\u2FF0-\u2FFB]|[\u3000-\u303E]|[\u3041-\u3096]|[\u3099-\u30FF]|[\u3105-\u312D]|[\u3131-\u318E]|[\u3190-\u31BA]|[\u31C0-\u31E3]|[\u31F0-\u321E]|[\u3220-\u3247]|[\u3250-\u32FE]|[\u3300-\u4DBF]|[\u4E00-\uA48C]|[\uA490-\uA4C6]|[\uA960-\uA97C]|[\uAC00-\uD7A3]|[\uD7B0-\uD7C6]|[\uD7CB-\uD7FB]|[\uF900-\uFAFF]|[\uFE10-\uFE19]|[\uFE30-\uFE52]|[\uFE54-\uFE66]|[\uFE68-\uFE6B]|[\uFF01-\uFF60]|[\uFFE0-\uFFE6]/g,h=function(a,c,d,f,h){if(a.charCodeAt(0)==32)return(new Array(a.length+1)).join(" ");if(a==" "){var i=e.session.getScreenTabSize(b+f);return b+=i-1,e.$tabStrings[i]}if(a=="&")return g.isOldGecko?"&":"&";if(a=="<")return"<";if(a==" "){var j=e.showInvisibles?"ace_cjk ace_invisible":"ace_cjk",k=e.showInvisibles?e.SPACE_CHAR:"";return b+=1,""+k+""}if(a.match(/[\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000]/)){if(e.showInvisibles){var k=(new Array(a.length+1)).join(e.SPACE_CHAR);return""+k+""}return" "}return b+=1,""+a+""},i=d.replace(f,h);if(!this.$textToken[c.type]){var j="ace_"+c.type.replace(/\./g," ace_"),k="";c.type=="fold"&&(k=" style='width:"+c.value.length*this.config.characterWidth+"px;' "),a.push("",i,"")}else a.push(i);return b+d.length},this.$renderLineCore=function(a,b,c,d,e){var f=0,g=0,h,i=0,j=this;!d||d.length==0?h=Number.MAX_VALUE:h=d[0],e||a.push("
");for(var k=0;k=h)i=j.$renderToken(a,i,l,m.substring(0,h-f)),m=m.substring(h-f),f=h,e||a.push("
","
"),g++,i=0,h=d[g]||Number.MAX_VALUE;m.length!=0&&(f+=m.length,i=j.$renderToken(a,i,l,m))}}this.showInvisibles&&(b!==this.session.getLength()-1?a.push(""+this.EOL_CHAR+""):a.push(""+this.EOF_CHAR+"")),e||a.push("
")},this.$renderLine=function(a,b,c,d){if(!this.session.isRowFolded(b)){var e=this.session.getRowSplitData(b);this.$renderLineCore(a,b,c,e,d)}else this.$renderFoldLine(a,b,c,d)},this.$renderFoldLine=function(a,b,c,d){function h(a,b,c){var d=0,e=0;while(e+a[d].value.lengthc-b&&(f=f.substring(0,c-b)),g.push({type:a[d].type,value:f}),e=b+f.length,d+=1}while(ec&&(f=f.substring(0,c-e)),g.push({type:a[d].type,value:f}),e+=f.length,d+=1}}var e=this.session,f=e.getFoldLine(b),g=[];f.walk(function(a,b,d,e,f){a?g.push({type:"fold",value:a}):(f&&(c=this.session.getTokens(b,b)[0].tokens),c.length!=0&&h(c,e,d))}.bind(this),f.end.row,this.session.getLine(f.end.row).length);var i=this.session.$useWrapMode?this.session.$wrapData[b]:null;this.$renderLineCore(a,b,g,i,d)},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(i.prototype),b.Text=i}),define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(a,b,c){"use strict";var d=a("../lib/dom"),e=function(a){this.element=d.createElement("div"),this.element.className="ace_layer ace_cursor-layer",a.appendChild(this.element),this.isVisible=!1,this.cursors=[],this.cursor=this.addCursor()};(function(){this.$padding=0,this.setPadding=function(a){this.$padding=a},this.setSession=function(a){this.session=a},this.addCursor=function(){var a=d.createElement("div"),b="ace_cursor";return this.isVisible||(b+=" ace_hidden"),this.overwrite&&(b+=" ace_overwrite"),a.className=b,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;for(var a=this.cursors.length;a--;)d.addCssClass(this.cursors[a],"ace_hidden");clearInterval(this.blinkId)},this.showCursor=function(){this.isVisible=!0;for(var a=this.cursors.length;a--;)d.removeCssClass(this.cursors[a],"ace_hidden");this.element.style.visibility="",this.restartTimer()},this.restartTimer=function(){clearInterval(this.blinkId);if(!this.isVisible)return;var a=this.element;this.blinkId=setInterval(function(){a.style.visibility="hidden",setTimeout(function(){a.style.visibility="visible"},400)},1e3)},this.getPixelPosition=function(a,b){if(!this.config||!this.session)return{left:0,top:0};a||(a=this.session.selection.getCursor());var c=this.session.documentToScreenPosition(a),d=Math.round(this.$padding+c.column*this.config.characterWidth),e=(c.row-(b?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:d,top:e}},this.update=function(a){this.config=a;if(this.session.selectionMarkerCount>1){var b=this.session.$selectionMarkers,c=0,d,e=0;for(var c=b.length;c--;){d=b[c];var f=this.getPixelPosition(d.cursor,!0),g=(this.cursors[e++]||this.addCursor()).style;g.left=f.left+"px",g.top=f.top+"px",g.width=a.characterWidth+"px",g.height=a.lineHeight+"px"}if(e>1)while(this.cursors.length>e)this.removeCursor()}else{var f=this.getPixelPosition(null,!0),g=this.cursor.style;g.left=f.left+"px",g.top=f.top+"px",g.width=a.characterWidth+"px",g.height=a.lineHeight+"px";while(this.cursors.length>1)this.removeCursor()}var h=this.session.getOverwrite();h!=this.overwrite&&this.$setOverite(h),this.restartTimer()},this.$setOverite=function(a){this.overwrite=a;for(var b=this.cursors.length;b--;)a?d.addCssClass(this.cursors[b],"ace_overwrite"):d.removeCssClass(this.cursors[b],"ace_overwrite")},this.destroy=function(){clearInterval(this.blinkId)}}).call(e.prototype),b.Cursor=e}),define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(a,b,c){"use strict";var d=a("./lib/oop"),e=a("./lib/dom"),f=a("./lib/event"),g=a("./lib/event_emitter").EventEmitter,h=function(a){this.element=e.createElement("div"),this.element.className="ace_sb",this.inner=e.createElement("div"),this.element.appendChild(this.inner),a.appendChild(this.element),this.width=e.scrollbarWidth(a.ownerDocument),this.element.style.width=(this.width||15)+5+"px",f.addListener(this.element,"scroll",this.onScroll.bind(this))};(function(){d.implement(this,g),this.onScroll=function(){this._emit("scroll",{data:this.element.scrollTop})},this.getWidth=function(){return this.width},this.setHeight=function(a){this.element.style.height=a+"px"},this.setInnerHeight=function(a){this.inner.style.height=a+"px"},this.setScrollTop=function(a){this.element.scrollTop=a}}).call(h.prototype),b.ScrollBar=h}),define("ace/renderloop",["require","exports","module","ace/lib/event"],function(a,b,c){"use strict";var d=a("./lib/event"),e=function(a,b){this.onRender=a,this.pending=!1,this.changes=0,this.window=b||window};(function(){this.schedule=function(a){this.changes=this.changes|a;if(!this.pending){this.pending=!0;var b=this;d.nextTick(function(){b.pending=!1;var a;while(a=b.changes)b.changes=0,b.onRender(a)},this.window)}}}).call(e.prototype),b.RenderLoop=e}),define("text!ace/css/editor.css",[],".ace_editor {\n position: absolute;\n overflow: hidden;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Droid Sans Mono', 'Consolas', monospace;\n font-size: 12px;\n}\n\n.ace_scroller {\n position: absolute;\n overflow-x: scroll;\n overflow-y: hidden;\n}\n\n.ace_content {\n position: absolute;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n cursor: text;\n}\n\n.ace_composition {\n position: absolute;\n background: #555;\n color: #DDD;\n z-index: 4;\n}\n\n.ace_gutter {\n position: absolute;\n overflow : hidden;\n height: 100%;\n width: auto;\n cursor: default;\n z-index: 1000;\n}\n\n.ace_gutter.horscroll {\n box-shadow: 0px 0px 20px rgba(0,0,0,0.4);\n}\n\n.ace_gutter-cell {\n padding-left: 19px;\n padding-right: 6px;\n}\n\n.ace_gutter-cell.ace_error {\n background-image: url(\"data:image/gif,GIF89a%10%00%10%00%D5%00%00%F5or%F5%87%88%F5nr%F4ns%EBmq%F5z%7F%DDJT%DEKS%DFOW%F1Yc%F2ah%CE(7%CE)8%D18E%DD%40M%F2KZ%EBU%60%F4%60m%DCir%C8%16(%C8%19*%CE%255%F1%3FR%F1%3FS%E6%AB%B5%CA%5DI%CEn%5E%F7%A2%9A%C9G%3E%E0a%5B%F7%89%85%F5yy%F6%82%80%ED%82%80%FF%BF%BF%E3%C4%C4%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%25%00%2C%00%00%00%00%10%00%10%00%00%06p%C0%92pH%2C%1A%8F%C8%D2H%93%E1d4%23%E4%88%D3%09mB%1DN%B48%F5%90%40%60%92G%5B%94%20%3E%22%D2%87%24%FA%20%24%C5%06A%00%20%B1%07%02B%A38%89X.v%17%82%11%13q%10%0Fi%24%0F%8B%10%7BD%12%0Ei%09%92%09%0EpD%18%15%24%0A%9Ci%05%0C%18F%18%0B%07%04%01%04%06%A0H%18%12%0D%14%0D%12%A1I%B3%B4%B5IA%00%3B\");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_warning {\n background-image: url(\"data:image/gif,GIF89a%10%00%10%00%D5%00%00%FF%DBr%FF%DE%81%FF%E2%8D%FF%E2%8F%FF%E4%96%FF%E3%97%FF%E5%9D%FF%E6%9E%FF%EE%C1%FF%C8Z%FF%CDk%FF%D0s%FF%D4%81%FF%D5%82%FF%D5%83%FF%DC%97%FF%DE%9D%FF%E7%B8%FF%CCl%7BQ%13%80U%15%82W%16%81U%16%89%5B%18%87%5B%18%8C%5E%1A%94d%1D%C5%83-%C9%87%2F%C6%84.%C6%85.%CD%8B2%C9%871%CB%8A3%CD%8B5%DC%98%3F%DF%9BB%E0%9CC%E1%A5U%CB%871%CF%8B5%D1%8D6%DB%97%40%DF%9AB%DD%99B%E3%B0p%E7%CC%AE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%2F%00%2C%00%00%00%00%10%00%10%00%00%06a%C0%97pH%2C%1A%8FH%A1%ABTr%25%87%2B%04%82%F4%7C%B9X%91%08%CB%99%1C!%26%13%84*iJ9(%15G%CA%84%14%01%1A%97%0C%03%80%3A%9A%3E%81%84%3E%11%08%B1%8B%20%02%12%0F%18%1A%0F%0A%03'F%1C%04%0B%10%16%18%10%0B%05%1CF%1D-%06%07%9A%9A-%1EG%1B%A0%A1%A0U%A4%A5%A6BA%00%3B\");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_info {\n background-image: url(\"data:image/gif;base64,R0lGODlhEAAQAMQAAAAAAEFBQVJSUl5eXmRkZGtra39/f4WFhYmJiZGRkaampry8vMPDw8zMzNXV1dzc3OTk5Orq6vDw8P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAABQALAAAAAAQABAAAAUuICWOZGmeaBml5XGwFCQSBGyXRSAwtqQIiRuiwIM5BoYVbEFIyGCQoeJGrVptIQA7\");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n\n.ace_editor .ace_sb {\n position: absolute;\n overflow-x: hidden;\n overflow-y: scroll;\n right: 0;\n}\n\n.ace_editor .ace_sb div {\n position: absolute;\n width: 1px;\n left: 0;\n}\n\n.ace_editor .ace_print_margin_layer {\n z-index: 0;\n position: absolute;\n overflow: hidden;\n margin: 0;\n left: 0;\n height: 100%;\n width: 100%;\n}\n\n.ace_editor .ace_print_margin {\n position: absolute;\n height: 100%;\n}\n\n.ace_editor textarea {\n position: fixed;\n z-index: 0;\n width: 10px;\n height: 30px;\n opacity: 0;\n background: transparent;\n appearance: none;\n -moz-appearance: none;\n border: none;\n resize: none;\n outline: none;\n overflow: hidden;\n}\n\n.ace_layer {\n z-index: 1;\n position: absolute;\n overflow: hidden;\n white-space: nowrap;\n height: 100%;\n width: 100%;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n /* setting pointer-events: auto; on node under the mouse, which changes\n during scroll, will break mouse wheel scrolling in Safari */\n pointer-events: none;\n}\n\n.ace_gutter .ace_layer {\n position: relative;\n min-width: 40px;\n text-align: right;\n pointer-events: auto;\n}\n\n.ace_text-layer {\n color: black;\n}\n\n.ace_cjk {\n display: inline-block;\n text-align: center;\n}\n\n.ace_cursor-layer {\n z-index: 4;\n}\n\n.ace_cursor {\n z-index: 4;\n position: absolute;\n}\n\n.ace_cursor.ace_hidden {\n opacity: 0.2;\n}\n\n.ace_line {\n white-space: nowrap;\n}\n\n.ace_marker-layer .ace_step {\n position: absolute;\n z-index: 3;\n}\n\n.ace_marker-layer .ace_selection {\n position: absolute;\n z-index: 5;\n}\n\n.ace_marker-layer .ace_bracket {\n position: absolute;\n z-index: 6;\n}\n\n.ace_marker-layer .ace_active_line {\n position: absolute;\n z-index: 2;\n}\n\n.ace_gutter .ace_gutter_active_line{\n background-color : #dcdcdc;\n}\n\n.ace_marker-layer .ace_selected_word {\n position: absolute;\n z-index: 4;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n}\n\n.ace_line .ace_fold {\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n \n display: inline-block;\n height: 11px;\n margin-top: -2px;\n vertical-align: middle;\n\n background-image: \n url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%11%00%00%00%09%08%06%00%00%00%D4%E8%C7%0C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%00%B5IDAT(%15%A5%91%3D%0E%02!%10%85ac%E1%05%D6%CE%D6%C6%CE%D2%E8%ED%CD%DE%C0%C6%D6N.%E0V%F8%3D%9Ca%891XH%C2%BE%D9y%3F%90!%E6%9C%C3%BFk%E5%011%C6-%F5%C8N%04%DF%BD%FF%89%DFt%83DN%60%3E%F3%AB%A0%DE%1A%5Dg%BE%10Q%97%1B%40%9C%A8o%10%8F%5E%828%B4%1B%60%87%F6%02%26%85%1Ch%1E%C1%2B%5Bk%FF%86%EE%B7j%09%9A%DA%9B%ACe%A3%F9%EC%DA!9%B4%D5%A6%81%86%86%98%CC%3C%5B%40%FA%81%B3%E9%CB%23%94%C16Azo%05%D4%E1%C1%95a%3B%8A'%A0%E8%CC%17%22%85%1D%BA%00%A2%FA%DC%0A%94%D1%D1%8D%8B%3A%84%17B%C7%60%1A%25Z%FC%8D%00%00%00%00IEND%AEB%60%82\"),\n url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%007%08%06%00%00%00%C4%DD%80C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%00%3AIDAT8%11c%FC%FF%FF%7F%18%03%1A%60%01%F2%3F%A0%891%80%04%FF%11-%F8%17%9BJ%E2%05%B1ZD%81v%26t%E7%80%F8%A3%82h%A12%1A%20%A3%01%02%0F%01%BA%25%06%00%19%C0%0D%AEF%D5%3ES%00%00%00%00IEND%AEB%60%82\");\n background-repeat: no-repeat, repeat-x;\n background-position: center center, top left;\n color: transparent;\n\n border: 1px solid black;\n -moz-border-radius: 2px;\n -webkit-border-radius: 2px;\n border-radius: 2px;\n \n cursor: pointer;\n pointer-events: auto;\n}\n\n.ace_dark .ace_fold {\n}\n\n.ace_fold:hover{\n background-image: \n url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%11%00%00%00%09%08%06%00%00%00%D4%E8%C7%0C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%00%B5IDAT(%15%A5%91%3D%0E%02!%10%85ac%E1%05%D6%CE%D6%C6%CE%D2%E8%ED%CD%DE%C0%C6%D6N.%E0V%F8%3D%9Ca%891XH%C2%BE%D9y%3F%90!%E6%9C%C3%BFk%E5%011%C6-%F5%C8N%04%DF%BD%FF%89%DFt%83DN%60%3E%F3%AB%A0%DE%1A%5Dg%BE%10Q%97%1B%40%9C%A8o%10%8F%5E%828%B4%1B%60%87%F6%02%26%85%1Ch%1E%C1%2B%5Bk%FF%86%EE%B7j%09%9A%DA%9B%ACe%A3%F9%EC%DA!9%B4%D5%A6%81%86%86%98%CC%3C%5B%40%FA%81%B3%E9%CB%23%94%C16Azo%05%D4%E1%C1%95a%3B%8A'%A0%E8%CC%17%22%85%1D%BA%00%A2%FA%DC%0A%94%D1%D1%8D%8B%3A%84%17B%C7%60%1A%25Z%FC%8D%00%00%00%00IEND%AEB%60%82\"),\n url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%007%08%06%00%00%00%C4%DD%80C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%003IDAT8%11c%FC%FF%FF%7F%3E%03%1A%60%01%F2%3F%A3%891%80%04%FFQ%26%F8w%C0%B43%A1%DB%0C%E2%8F%0A%A2%85%CAh%80%8C%06%08%3C%04%E8%96%18%00%A3S%0D%CD%CF%D8%C1%9D%00%00%00%00IEND%AEB%60%82\");\n background-repeat: no-repeat, repeat-x;\n background-position: center center, top left;\n}\n\n.ace_dragging .ace_content {\n cursor: move;\n}\n\n.ace_folding-enabled > .ace_gutter-cell {\n padding-right: 13px;\n}\n\n.ace_fold-widget {\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n\n margin: 0 -12px 1px 1px;\n display: inline-block;\n height: 14px;\n width: 11px;\n vertical-align: text-bottom;\n \n background-image: url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%00%05%08%06%00%00%00%8Do%26%E5%00%00%004IDATx%DAe%8A%B1%0D%000%0C%C2%F2%2CK%96%BC%D0%8F9%81%88H%E9%D0%0E%96%C0%10%92%3E%02%80%5E%82%E4%A9*-%EEsw%C8%CC%11%EE%96w%D8%DC%E9*Eh%0C%151(%00%00%00%00IEND%AEB%60%82\");\n background-repeat: no-repeat;\n background-position: center 5px;\n\n border-radius: 3px;\n}\n\n.ace_fold-widget.end {\n background-image: url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%00%05%08%06%00%00%00%8Do%26%E5%00%00%004IDATx%DAm%C7%C1%09%000%08C%D1%8C%ECE%C8E(%8E%EC%02)%1EZJ%F1%C1'%04%07I%E1%E5%EE%CAL%F5%A2%99%99%22%E2%D6%1FU%B5%FE0%D9x%A7%26Wz5%0E%D5%00%00%00%00IEND%AEB%60%82\");\n}\n\n.ace_fold-widget.closed {\n background-image: url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%03%00%00%00%06%08%06%00%00%00%06%E5%24%0C%00%00%009IDATx%DA5%CA%C1%09%000%08%03%C0%AC*(%3E%04%C1%0D%BA%B1%23%A4Uh%E0%20%81%C0%CC%F8%82%81%AA%A2%AArGfr%88%08%11%11%1C%DD%7D%E0%EE%5B%F6%F6%CB%B8%05Q%2F%E9tai%D9%00%00%00%00IEND%AEB%60%82\");\n}\n\n.ace_fold-widget:hover {\n border: 1px solid rgba(0, 0, 0, 0.3);\n background-color: rgba(255, 255, 255, 0.2);\n -moz-box-shadow:inset 0 1px 1px rgba(255, 255, 255, 0.7);\n -moz-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\n -webkit-box-shadow:inset 0 1px 1px rgba(255, 255, 255, 0.7);\n -webkit-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\n box-shadow:inset 0 1px 1px rgba(255, 255, 255, 0.7);\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\n background-position: center 4px;\n}\n\n.ace_fold-widget:active {\n border: 1px solid rgba(0, 0, 0, 0.4);\n background-color: rgba(0, 0, 0, 0.05);\n -moz-box-shadow:inset 0 1px 1px rgba(255, 255, 255);\n -moz-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\n -webkit-box-shadow:inset 0 1px 1px rgba(255, 255, 255);\n -webkit-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\n box-shadow:inset 0 1px 1px rgba(255, 255, 255);\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\n}\n\n.ace_fold-widget.invalid {\n background-color: #FFB4B4;\n border-color: #DE5555;\n}\n"),define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor"],function(a,b,c){function j(a,b,c){return i.$options.wrap=!0,i.$options.needle=b,i.$options.backwards=c==-1,i.find(a)}function m(a,b){return a.row==b.row&&a.column==b.column}function n(a){a.$onAddRange=a.$onAddRange.bind(a),a.$onRemoveRange=a.$onRemoveRange.bind(a),a.$onMultiSelect=a.$onMultiSelect.bind(a),a.$onSingleSelect=a.$onSingleSelect.bind(a),b.onSessionChange.call(a,a),a.on("changeSession",b.onSessionChange.bind(a)),a.on("mousedown",g),a.commands.addCommands(b.commands.defaultCommands)}var d=a("./range_list").RangeList,e=a("./range").Range,f=a("./selection").Selection,g=a("./mouse/multi_select_handler").onMouseDown;b.commands=a("./commands/multi_select_commands");var h=a("./search").Search,i=new h,k=a("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(k.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(a){if(!this.inMultiSelectMode&&this.rangeCount==0){var b=this.toOrientedRange();if(!a||!a.isEqual(b))this.rangeList.add(b),this.$onAddRange(b)}if(!a)return;a.cursor||(a.cursor=a.end);var c=this.rangeList.add(a);this.$onAddRange(a),c.length&&this.$onRemoveRange(c),this.rangeCount>0&&!this.inMultiSelectMode&&(this._emit("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session))},this.toSingleRange=function(a){a=a||this.ranges[0];var b=this.rangeList.removeAll();b.length&&this.$onRemoveRange(b),a&&this.fromOrientedRange(a)},this.substractPoint=function(a){var b=this.rangeList.substractPoint(a);if(b)return this.$onRemoveRange(b),b[0]},this.mergeOverlappingRanges=function(){var a=this.rangeList.merge();a.length?this.$onRemoveRange(a):this.ranges[0]&&this.fromOrientedRange(this.ranges[0])},this.$onAddRange=function(a){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(a),this.fromOrientedRange(a),this._emit("addRange",{range:a})},this.$onRemoveRange=function(a){this.rangeCount=this.rangeList.ranges.length;if(this.rangeCount==1&&this.inMultiSelectMode){var b=this.rangeList.ranges.pop();a.push(b),this.rangeCount=0}for(var c=a.length;c--;){var d=this.ranges.indexOf(a[c]);this.ranges.splice(d,1)}this._emit("removeRange",{ranges:a}),this.rangeCount==0&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._emit("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),b=b||this.ranges[0],b&&!b.isEqual(this.getRange())&&this.fromOrientedRange(b)},this.$initRangeList=function(){if(this.rangeList)return;this.rangeList=new d,this.ranges=[],this.rangeCount=0},this.getAllRanges=function(){return this.rangeList.ranges.concat()},this.splitIntoLines=function(){if(this.rangeCount>1){var a=this.rangeList.ranges,b=a[a.length-1],c=e.fromPoints(a[0].start,b.end);this.toSingleRange(),this.setSelectionRange(c,b.cursor==b.start)}else{var d=this.session.documentToScreenPosition(this.selectionLead),f=this.session.documentToScreenPosition(this.selectionAnchor),g=this.rectangularRangeBlock(d,f);g.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(a,b,c){var d=[],f=a.column0)p--;if(p>0){var q=0;while(d[q].isEmpty())q++}for(var r=p;r>=q;r--)d[r].isEmpty()&&d.splice(r,1)}return d}}.call(f.prototype);var l=a("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(a){a.cursor||(a.cursor=a.end);var b=this.getSelectionStyle();return a.marker=this.session.addMarker(a,"ace_selection",b),this.session.$selectionMarkers.push(a),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,a},this.removeSelectionMarkers=function(a){for(var b=a.length;b--;){var c=a[b];if(!c.marker)continue;this.session.removeMarker(c.marker);var d=this.session.$selectionMarkers.indexOf(c);d!=-1&&this.session.$selectionMarkers.splice(d,1)}this.session.selectionMarkerCount=this.session.$selectionMarkers.length},this.$onAddRange=function(a){this.addSelectionMarker(a.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(a){this.removeSelectionMarkers(a.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(a){if(this.inMultiSelectMode)return;this.inMultiSelectMode=!0,this.setStyle("multiselect"),this.keyBinding.addKeyboardHandler(b.commands.keyboardHandler),this.commands.on("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onSingleSelect=function(a){if(this.session.multiSelect.inVirtualMode)return;this.inMultiSelectMode=!1,this.unsetStyle("multiselect"),this.keyBinding.removeKeyboardHandler(b.commands.keyboardHandler),this.commands.removeEventListener("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelectExec=function(a){var b=a.command,c=a.editor;b.multiSelectAction?b.multiSelectAction=="forEach"?c.forEachSelection(b,a.args):b.multiSelectAction=="single"?(c.exitMultiSelectMode(),b.exec(c,a.args||{})):b.multiSelectAction(c,a.args||{}):(b.exec(c,a.args||{}),c.multiSelect.addRange(c.multiSelect.toOrientedRange()),c.multiSelect.mergeOverlappingRanges()),a.preventDefault()},this.forEachSelection=function(a,b){if(this.inVirtualSelectionMode)return;var c=this.session,d=this.selection,e=d.rangeList,g=d._eventRegistry;d._eventRegistry={};var h=new f(c);this.inVirtualSelectionMode=!0;for(var i=e.ranges.length;i--;)h.fromOrientedRange(e.ranges[i]),this.selection=c.selection=h,a.exec(this,b||{}),h.toOrientedRange(e.ranges[i]);h.detach(),this.selection=c.selection=d,this.inVirtualSelectionMode=!1,d._eventRegistry=g,d.mergeOverlappingRanges(),this.onCursorChange(),this.onSelectionChange()},this.exitMultiSelectMode=function(){if(this.inVirtualSelectionMode)return;this.multiSelect.toSingleRange()},this.getCopyText=function(){var a="";if(this.inMultiSelectMode){var b=this.multiSelect.rangeList.ranges;a=[];for(var c=0;c0)continue;return f==0?d:(f=this.comparePoints(a,e.start),f>=0?d:-d-1)}return-d-1},this.add=function(a){var b=this.pointIndex(a.start);b<0&&(b=-b-1);var c=this.pointIndex(a.end,b);return c<0?c=-c-1:c++,this.ranges.splice(b,c-b,a)},this.addList=function(a){var b=[];for(var c=a.length;c--;)b.push.call(b,this.add(a[c]));return b},this.substractPoint=function(a){var b=this.pointIndex(a);if(b>=0)return this.ranges.splice(b,1)},this.merge=function(){var a=[],b=this.ranges,c=b[0],d;for(var e=1;e=0},this.containsPoint=function(a){return this.pointIndex(a)>=0},this.rangeAtPoint=function(a){var b=this.pointIndex(a);if(b>=0)return this.ranges[b]},this.clipRows=function(a,b){var c=this.ranges;if(c[0].start.row>b||c[c.length-1].start.rowe)break;l.start.row==e&&l.start.column>=c.column&&(l.start.column+=h,l.start.row+=g),l.end.row==e&&l.end.column>=c.column&&(l.end.column+=h,l.end.row+=g)}if(g!=0&&j=this.pos.column&&c.start.column<=this.pos.column+this.length+1){var f=c.start.column-this.pos.column;this.length+=e;if(!this.session.$fromUndo){if(b.action==="insertText")for(var g=this.others.length-1;g>=0;g--){var h=this.others[g],i={row:h.row,column:h.column+f};h.row===c.start.row&&c.start.column=0;g--){var h=this.others[g],i={row:h.row,column:h.column+f};h.row===c.start.row&&c.start.column=this.pos.column&&b.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",a)):(this.hideOtherMarkers(),this._emit("cursorLeave",a))},this.detach=function(){this.session.removeMarker(this.markerId),this.hideOtherMarkers(),this.doc.removeEventListener("change",this.$onUpdate),this.session.selection.removeEventListener("changeCursor",this.$onCursorChange),this.pos.detach();for(var a=0;a Date: Wed, 13 Jun 2012 21:16:23 +0200 Subject: [PATCH 04/52] CSSMin: Remove debug code --- 3rdparty/mediawiki/CSSMin.php | 1 - 1 file changed, 1 deletion(-) diff --git a/3rdparty/mediawiki/CSSMin.php b/3rdparty/mediawiki/CSSMin.php index 1ee2919140..e9c2badf62 100644 --- a/3rdparty/mediawiki/CSSMin.php +++ b/3rdparty/mediawiki/CSSMin.php @@ -172,7 +172,6 @@ class CSSMin { $type = self::getMimeType( $file ); // Detect when URLs were preceeded with embed tags, and also verify file size is // below the limit - var_dump($match['embed'], $file, filesize($file)); if ( $type && $match['embed'][1] > 0 From 12b34d2dda6569f0f06ead29488c19ec8b9a5a8c Mon Sep 17 00:00:00 2001 From: Bart Visscher Date: Wed, 13 Jun 2012 21:39:05 +0200 Subject: [PATCH 05/52] Whitespace fix --- lib/filesystem.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/filesystem.php b/lib/filesystem.php index dd74daffa4..28bd7d5290 100644 --- a/lib/filesystem.php +++ b/lib/filesystem.php @@ -319,7 +319,7 @@ class OC_Filesystem{ if(substr($mountpoint,-1)!=='/'){ $mountpoint=$mountpoint.'/'; } - if (self::getView() != null && $mountpoint != '/' && !self::is_dir(basename($mountpoint))) { + if (self::getView() != null && $mountpoint != '/' && !self::is_dir(basename($mountpoint))) { self::mkdir(basename($mountpoint)); } self::$mounts[$mountpoint]=array('class'=>$class,'arguments'=>$arguments); From 6bd80d6457177a47cfb5f98d9bcb224556ed12a1 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Wed, 13 Jun 2012 22:06:22 +0200 Subject: [PATCH 06/52] show username of the body who shares in the summary --- apps/calendar/ajax/events.php | 1 - apps/calendar/lib/app.php | 15 +++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/apps/calendar/ajax/events.php b/apps/calendar/ajax/events.php index 56fa51aaff..b0c5587633 100644 --- a/apps/calendar/ajax/events.php +++ b/apps/calendar/ajax/events.php @@ -27,7 +27,6 @@ else { $start = (version_compare(PHP_VERSION, '5.3.0', '>='))?DateTime::createFromFormat('U', $_GET['start']):new DateTime('@' . $_GET['start']); $end = (version_compare(PHP_VERSION, '5.3.0', '>='))?DateTime::createFromFormat('U', $_GET['end']):new DateTime('@' . $_GET['end']); $events = OC_Calendar_App::getrequestedEvents($calendar_id, $start, $end); - $output = array(); foreach($events as $event){ $output = array_merge($output, OC_Calendar_App::generateEventOutput($event, $start, $end)); diff --git a/apps/calendar/lib/app.php b/apps/calendar/lib/app.php index ff7ad1cb93..e04f2ed0cd 100644 --- a/apps/calendar/lib/app.php +++ b/apps/calendar/lib/app.php @@ -331,26 +331,29 @@ class OC_Calendar_App{ */ public static function getrequestedEvents($calendarid, $start, $end){ $events = array(); - if($calendarid == 'shared_rw' || $_GET['calendar_id'] == 'shared_r'){ + if($calendarid == 'shared_rw' || $calendarid == 'shared_r'){ $calendars = OC_Calendar_Share::allSharedwithuser(OCP\USER::getUser(), OC_Calendar_Share::CALENDAR, 1, ($_GET['calendar_id'] == 'shared_rw')?'rw':'r'); foreach($calendars as $calendar){ $calendarevents = OC_Calendar_Object::allInPeriod($calendar['calendarid'], $start, $end); + foreach($calendarevents as $event){ + $event['summary'] .= ' (' . self::$l10n->t('by') . ' ' . OC_Calendar_Object::getowner($event['id']) . ')'; + } $events = array_merge($events, $calendarevents); } $singleevents = OC_Calendar_Share::allSharedwithuser(OCP\USER::getUser(), OC_Calendar_Share::EVENT, 1, ($_GET['calendar_id'] == 'shared_rw')?'rw':'r'); foreach($singleevents as $singleevent){ $event = OC_Calendar_Object::find($singleevent['eventid']); + $event['summary'] .= ' (' . self::$l10n->t('by') . ' ' . OC_Calendar_Object::getowner($event['id']) . ')'; $events[] = $event; } }else{ - $calendar_id = $_GET['calendar_id']; - if (is_numeric($calendar_id)) { - $calendar = self::getCalendar($calendar_id); + if (is_numeric($calendarid)) { + $calendar = self::getCalendar($calendarid); OCP\Response::enableCaching(0); OCP\Response::setETagHeader($calendar['ctag']); - $events = OC_Calendar_Object::allInPeriod($calendar_id, $start, $end); + $events = OC_Calendar_Object::allInPeriod($calendarid, $start, $end); } else { - OCP\Util::emitHook('OC_Calendar', 'getEvents', array('calendar_id' => $calendar_id, 'events' => &$events)); + OCP\Util::emitHook('OC_Calendar', 'getEvents', array('calendar_id' => $calendarid, 'events' => &$events)); } } return $events; From b1139e977a2ac6fbbf55ed78e674a60c66588b66 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Wed, 13 Jun 2012 22:12:54 +0200 Subject: [PATCH 07/52] fix a ui bug for calendar sharing --- apps/calendar/templates/part.showevent.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/calendar/templates/part.showevent.php b/apps/calendar/templates/part.showevent.php index a5bbfd5b8f..3acba45723 100644 --- a/apps/calendar/templates/part.showevent.php +++ b/apps/calendar/templates/part.showevent.php @@ -33,7 +33,7 @@ - - - + t('of') . ' ' . $calendar['userid']; + ?>   From e15480683820426870be62a26dc7b91cbdc9a157 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Wed, 13 Jun 2012 22:20:43 +0200 Subject: [PATCH 09/52] fix another ui bug of calendar --- apps/calendar/templates/part.showevent.php | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/apps/calendar/templates/part.showevent.php b/apps/calendar/templates/part.showevent.php index 43092e3195..59684d831e 100644 --- a/apps/calendar/templates/part.showevent.php +++ b/apps/calendar/templates/part.showevent.php @@ -19,12 +19,14 @@ t("Category");?>: t('No categories selected'); }else{ - echo ''; + echo '
    '; + foreach($_['categories'] as $categorie){ + echo '
  • ' . $categorie . '
  • '; + } + echo '
'; } ?> From e4278574a8806b4748d132adb5f29fb61e6c6058 Mon Sep 17 00:00:00 2001 From: Stephan Bergemann Date: Tue, 12 Jun 2012 03:23:22 +0200 Subject: [PATCH 10/52] fixed sorting errors and missbehaviours - now sorting like file browser --- apps/gallery/lib/tiles.php | 39 +++++++++++++------- apps/gallery/templates/index.php | 61 ++++++++++++++++++++------------ 2 files changed, 65 insertions(+), 35 deletions(-) diff --git a/apps/gallery/lib/tiles.php b/apps/gallery/lib/tiles.php index e43c99bb76..48b54f0cf0 100644 --- a/apps/gallery/lib/tiles.php +++ b/apps/gallery/lib/tiles.php @@ -63,7 +63,7 @@ class TilesLine { $img_w = $this->tiles_array[$i]->getWidth(); $extra = ''; if ($img_w != IMAGE_WIDTH) $extra = ' style="width:'.$img_w.'px"'; - $r .= ''; + $r .= ''; } $r .= ''; @@ -122,7 +122,7 @@ class TileStack extends TileBase { $this->tiles_array = array(); $this->stack_name = $stack_name; for ($i = 0; $i < count($path_array) && $i < self::STACK_REPRESENTATIVES; $i++) { - $tile = new TileSingle($path_array[$i]); + $tile = new TileSingle($path_array[$i]); array_push($this->tiles_array, $tile); } } @@ -134,32 +134,47 @@ class TileStack extends TileBase { public function getWidth() { $max = 0; - for ($i = 0; $i < count($this->tiles_array); $i++) { - $max = max($max, $this->tiles_array[$i]->getWidth()); + if(count($this->tiles_array) == 0) { + $max = IMAGE_WIDTH; + } else { + for ($i = 0; $i < count($this->tiles_array); $i++) { + $max = max($max, $this->tiles_array[$i]->getWidth()); + } } return min(IMAGE_WIDTH, $max); } public function get() { $r = ''; - for ($i = 0; $i < count($this->tiles_array); $i++) { - $top = rand(-5, 5); - $left = rand(-5, 5); - $img_w = $this->tiles_array[$i]->getWidth(); - $extra = ''; - if ($img_w < IMAGE_WIDTH) { - $extra = 'width:'.$img_w.'px;'; + if(count($this->tiles_array) == 0) { + // aint no pictures in this folder... + $r.=''; + } else { + for ($i = 0; $i < count($this->tiles_array); $i++) { + $top = rand(-5, 5); + $left = rand(-5, 5); + $img_w = $this->tiles_array[$i]->getWidth(); + $extra = ''; + if ($img_w < IMAGE_WIDTH) { + $extra = 'width:'.$img_w.'px;'; + } + $r .= ''; } - $r .= ''; } return $r; } public function getOnHoverAction() { + if(count($this->tiles_array) == 0) { + return 'javascript:explode_empty(this);return false;'; + } return 'javascript:explode(this);return false;'; } public function getOnOutAction() { + if(count($this->tiles_array) == 0) { + return 'javascript:deplode_empty(this);return false;'; + } return 'javascript:deplode(this);return false;'; } diff --git a/apps/gallery/templates/index.php b/apps/gallery/templates/index.php index f992604549..930f80238b 100644 --- a/apps/gallery/templates/index.php +++ b/apps/gallery/templates/index.php @@ -16,6 +16,14 @@ div.visible { opacity: 0.8;} var root = ""; +function explode_empty(element) { + $('div', element).each(function(index, elem) { + if ($(elem).hasClass('title')) { + $(elem).addClass('visible'); + } + }); +} + function explode(element) { $('div', element).each(function(index, elem) { if ($(elem).hasClass('title')) { @@ -28,6 +36,14 @@ function explode(element) { }); } +function deplode_empty(element) { + $('div', element).each(function(index, elem) { + if ($(elem).hasClass('title')) { + $(elem).removeClass('visible'); + } + }); +} + function deplode(element) { $('div', element).each(function(index, elem) { if ($(elem).hasClass('title')) { @@ -79,41 +95,40 @@ $root = empty($_GET['root'])?'/':$_GET['root']; $images = \OC_FileCache::searchByMime('image', null, '/'.\OCP\USER::getUser().'/files'.$root); sort($images); -$arr = array(); $tl = new \OC\Pictures\TilesLine(); $ts = new \OC\Pictures\TileStack(array(), ''); $previous_element = @$images[0]; + +$root_images = array(); +$second_level_images = array(); + for($i = 0; $i < count($images); $i++) { $prev_dir_arr = explode('/', $previous_element); $dir_arr = explode('/', $images[$i]); - if (count($dir_arr)==1) { - $tl->addTile(new \OC\Pictures\TileSingle($root.$images[$i])); - continue; + if(count($dir_arr) == 1) { // getting the images in this directory + $root_images[] = $root.$images[$i]; + } else { + if (count($dir_arr) == 2) { // These are the pics in that subdir + $second_level_images[] = $root.$images[$i]; + } + if(strcmp($prev_dir_arr[0], $dir_arr[0]) != 0) { + $tl->addTile(new \OC\Pictures\TileStack($second_level_images, $prev_dir_arr[0])); + $second_level_images = array(); + } + // have us a little something to compare against + $previous_element = $images[$i]; } - if (strcmp($prev_dir_arr[0], $dir_arr[0])!=0) { - $tl->addTile(new \OC\Pictures\TileStack($arr, $prev_dir_arr[0])); - $arr = array(); - } - $arr[] = $root.$images[$i]; - $previous_element = $images[$i]; } -$dir_arr = explode('/', $previous_element); - -if (count($images)>1) { - if (count($dir_arr)==0) { - $tl->addTile(new \OC\Pictures\TileSingle($previous_element)); - } else if (count($dir_arr) && $ts->getCount() == 0){ - $ts = new \OC\Pictures\TileStack(array($root.$previous_element), $dir_arr[0]); - } else { - $arr[] = $previous_element; - $ts->addTile($arr); - } +// if last element in the directory was a directory we don't want to miss it :) +if(count($second_level_images)>0) { + $tl->addTile(new \OC\Pictures\TileStack($second_level_images, $prev_dir_arr[0])); } -if ($ts->getCount() != 0) { - $tl->addTile($ts); +// and finally our images actually stored in the root folder +for($i = 0; $iaddTile(new \OC\Pictures\TileSingle($root_images[$i])); } echo $tl->get(); From 4711c2bb412749100fa53d8e1684154b87846092 Mon Sep 17 00:00:00 2001 From: Stephan Bergemann Date: Tue, 12 Jun 2012 13:05:25 +0200 Subject: [PATCH 11/52] fixed second_level_images issue --- apps/gallery/templates/index.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/apps/gallery/templates/index.php b/apps/gallery/templates/index.php index 930f80238b..5a9aba9ea0 100644 --- a/apps/gallery/templates/index.php +++ b/apps/gallery/templates/index.php @@ -109,12 +109,11 @@ for($i = 0; $i < count($images); $i++) { if(count($dir_arr) == 1) { // getting the images in this directory $root_images[] = $root.$images[$i]; } else { - if (count($dir_arr) == 2) { // These are the pics in that subdir - $second_level_images[] = $root.$images[$i]; - } if(strcmp($prev_dir_arr[0], $dir_arr[0]) != 0) { $tl->addTile(new \OC\Pictures\TileStack($second_level_images, $prev_dir_arr[0])); $second_level_images = array(); + } else if (count($dir_arr) == 2) { // These are the pics in that subdir + $second_level_images[] = $root.$images[$i]; } // have us a little something to compare against $previous_element = $images[$i]; From e99a95a756b15028b11871c3c7350066f2751964 Mon Sep 17 00:00:00 2001 From: Stephan Bergemann Date: Tue, 12 Jun 2012 14:06:56 +0200 Subject: [PATCH 12/52] now also working for directories only containing one image --- apps/gallery/templates/index.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/gallery/templates/index.php b/apps/gallery/templates/index.php index 5a9aba9ea0..5cff2c65a0 100644 --- a/apps/gallery/templates/index.php +++ b/apps/gallery/templates/index.php @@ -112,7 +112,8 @@ for($i = 0; $i < count($images); $i++) { if(strcmp($prev_dir_arr[0], $dir_arr[0]) != 0) { $tl->addTile(new \OC\Pictures\TileStack($second_level_images, $prev_dir_arr[0])); $second_level_images = array(); - } else if (count($dir_arr) == 2) { // These are the pics in that subdir + } + if (count($dir_arr) == 2) { // These are the pics in that subdir $second_level_images[] = $root.$images[$i]; } // have us a little something to compare against From 9f59cc5eb0069f28fc17eebc2adb3a62a13f95bd Mon Sep 17 00:00:00 2001 From: Stephan Bergemann Date: Tue, 12 Jun 2012 14:38:12 +0200 Subject: [PATCH 13/52] improved look of directories not containing images directly --- apps/gallery/lib/tiles.php | 4 ++-- apps/gallery/templates/index.php | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/gallery/lib/tiles.php b/apps/gallery/lib/tiles.php index 48b54f0cf0..817939759d 100644 --- a/apps/gallery/lib/tiles.php +++ b/apps/gallery/lib/tiles.php @@ -63,7 +63,7 @@ class TilesLine { $img_w = $this->tiles_array[$i]->getWidth(); $extra = ''; if ($img_w != IMAGE_WIDTH) $extra = ' style="width:'.$img_w.'px"'; - $r .= ''; + $r .= ''; } $r .= ''; @@ -148,7 +148,7 @@ class TileStack extends TileBase { $r = ''; if(count($this->tiles_array) == 0) { // aint no pictures in this folder... - $r.=''; + $r.=''; } else { for ($i = 0; $i < count($this->tiles_array); $i++) { $top = rand(-5, 5); diff --git a/apps/gallery/templates/index.php b/apps/gallery/templates/index.php index 5cff2c65a0..42ef9f6587 100644 --- a/apps/gallery/templates/index.php +++ b/apps/gallery/templates/index.php @@ -9,7 +9,7 @@ div.miniature_border {position:absolute; height: 150px; -moz-transition-duration div.line {display:inline-block; border: 0; width: auto; height: 160px} div.gallery_div img{position:absolute; top: 1; left: 0; -moz-transition-duration: 0.3s; -o-transition-duration:0.3s; -webkit-transition-duration: 0.3s; height:150px; width: auto;} div.gallery_div img.shrinker {width:80px !important;} -div.title { opacity: 0; text-align: center; vertical-align: middle; font-family: Arial; font-size: 12px; border: 0; position: absolute; text-overflow: ellipsis; bottom: 20px; left:5px; height:auto; padding: 5px; width: 140px; background-color: black; color: white; -webkit-transition: opacity 0.5s; z-index:1000; border-radius: 7px} +div.title { opacity: 0; text-align: center; vertical-align: middle; font-family: Arial; font-size: 12px; border: 0; position: absolute; text-overflow: ellipsis; bottom: 20px; right:-5px; height:auto; padding: 5px; width: 140px; background-color: black; color: white; -webkit-transition: opacity 0.5s; z-index:1000; border-radius: 7px} div.visible { opacity: 0.8;}