Files
ESPEasy/static/codemirror.min.js
T
2022-06-11 17:34:23 +02:00

1 line
169 KiB
JavaScript

!function(b,a){"object"==typeof exports&&"undefined"!=typeof module?module.exports=a():"function"==typeof define&&define.amd?define(a):(b=b||self).CodeMirror=a()}(this,function(){"use strict";var k,T,U,a,V,aO,aP,aQ,aR,aS,h=navigator.userAgent,J=navigator.platform,K=/gecko\/\d/i.test(h),L=/MSIE \d/.test(h),M=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(h),v=/Edge\/(\d+)/.exec(h),w=L||M||v,W=w&&(L?document.documentMode||6:+(v||M)[1]),N=!v&&/WebKit\//.test(h),X=N&&/Qt\/\d+\.\d+/.test(h),C=!v&&/Chrome\/(\d+)/.exec(h),aT=C&&+C[1],D=/Opera\//.test(h),O=/Apple Computer/.test(navigator.vendor),aU=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(h),aV=/PhantomJS/.test(h),E=O&&(/Mobile\/\w+/.test(h)||navigator.maxTouchPoints>2),Y=/Android/.test(h),aW=E||Y||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(h),P=E||/Mac/.test(J),aX=/\bCrOS\b/.test(h),aY=/win/i.test(J),l=D&&h.match(/Version\/(\d*\.\d*)/);l&&(l=Number(l[1])),l&&l>=15&&(D=!1,N=!0);var aZ=P&&(X||D&&(null==l||l<12.11)),a$=K||w&&W>=9;function a_(a){return new RegExp("(^|\\s)"+a+"(?:$|\\s)\\s*")}var Z=function(c,e){var b=c.className,a=a_(e).exec(b);if(a){var d=b.slice(a.index+a[0].length);c.className=b.slice(0,a.index)+(d?a[1]+d:"")}};function a0(a){for(var b=a.childNodes.length;b>0;--b)a.removeChild(a.firstChild);return a}function a1(a,b){return a0(a).appendChild(b)}function $(f,a,d,e){var b=document.createElement(f);if(d&&(b.className=d),e&&(b.style.cssText=e),"string"==typeof a)b.appendChild(document.createTextNode(a));else if(a)for(var c=0;c<a.length;++c)b.appendChild(a[c]);return b}function a2(b,c,d,e){var a=$(b,c,d,e);return a.setAttribute("role","presentation"),a}function _(b,a){if(3==a.nodeType&&(a=a.parentNode),b.contains)return b.contains(a);do if(11==a.nodeType&&(a=a.host),a==b)return!0;while(a=a.parentNode)}function a3(){var a;try{a=document.activeElement}catch(b){a=document.body||null}for(;a&&a.shadowRoot&&a.shadowRoot.activeElement;)a=a.shadowRoot.activeElement;return a}function aa(a,b){var c=a.className;a_(b).test(c)||(a.className+=(c?" ":"")+b)}function a4(d,c){for(var b=d.split(" "),a=0;a<b.length;a++)b[a]&&!a_(b[a]).test(c)&&(c+=" "+b[a]);return c}V=document.createRange?function(b,c,d,e){var a=document.createRange();return a.setEnd(e||b,d),a.setStart(b,c),a}:function(b,c,d){var a=document.body.createTextRange();try{a.moveToElementText(b.parentNode)}catch(e){return a}return a.collapse(!0),a.moveEnd("character",d),a.moveStart("character",c),a};var Q=function(a){a.select()};function a5(a){var b=Array.prototype.slice.call(arguments,1);return function(){return a.apply(null,b)}}function a6(c,a,d){for(var b in a||(a={}),c)c.hasOwnProperty(b)&&(!1!==d||!a.hasOwnProperty(b))&&(a[b]=c[b]);return a}function ab(e,a,f,g,h){null==a&& -1==(a=e.search(/[^\s\u00a0]/))&&(a=e.length);for(var b=g||0,c=h||0;;){var d=e.indexOf(" ",b);if(d<0||d>=a)return c+(a-b);c+=d-b,c+=f-c%f,b=d+1}}E?Q=function(a){a.selectionStart=0,a.selectionEnd=a.value.length}:w&&(Q=function(a){try{a.select()}catch(b){}});var F=function(){this.id=null,this.f=null,this.time=0,this.handler=a5(this.onTimeout,this)};function ac(b,c){for(var a=0;a<b.length;++a)if(b[a]==c)return a;return -1}F.prototype.onTimeout=function(a){a.id=0,a.time<= +new Date?a.f():setTimeout(a.handler,a.time- +new Date)},F.prototype.set=function(a,c){this.f=c;var b=+new Date+a;(!this.id||b<this.time)&&(clearTimeout(this.id),this.id=setTimeout(this.handler,a),this.time=b)};var ad={toString:function(){return"CodeMirror.Pass"}},a7={scroll:!1},a8={origin:"*mouse"},a9={origin:"+move"};function ae(d,e,f){for(var a=0,b=0;;){var c=d.indexOf(" ",a);-1==c&&(c=d.length);var g=c-a;if(c==d.length||b+g>=e)return a+Math.min(g,e-b);if(b+=c-a,b+=f-b%f,a=c+1,b>=e)return a}}var ba=[""];function bb(a){for(;ba.length<=a;)ba.push(bc(ba)+" ");return ba[a]}function bc(a){return a[a.length-1]}function bd(b,d){for(var c=[],a=0;a<b.length;a++)c[a]=d(b[a],a);return c}function be(){}function af(b,c){var a;return Object.create?a=Object.create(b):(be.prototype=b,a=new be),c&&a6(c,a),a}var bf=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;function ag(a){return/\w/.test(a)||a>"\x80"&&(a.toUpperCase()!=a.toLowerCase()||bf.test(a))}function bg(a,b){return b?!!(b.source.indexOf("\\w")> -1&&ag(a))||b.test(a):ag(a)}function bh(a){for(var b in a)if(a.hasOwnProperty(b)&&a[b])return!1;return!0}var bi=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;function bj(a){return a.charCodeAt(0)>=768&&bi.test(a)}function bk(b,a,c){for(;(c<0?a>0:a<b.length)&&bj(b.charAt(a));)a+=c;return a}function bl(d,a,b){for(var e=a>b?-1:1;;){if(a==b)return a;var f=(a+b)/2,c=e<0?Math.ceil(f):Math.floor(f);if(c==a)return d(c)?a:b;d(c)?b=c:a=c+e}}var bm=null;function bn(e,c,f){var d;bm=null;for(var a=0;a<e.length;++a){var b=e[a];if(b.from<c&&b.to>c)return a;b.to==c&&(b.from!=b.to&&"before"==f?d=a:bm=a),b.from==c&&(b.from!=b.to&&"before"!=f?d=a:bm=a)}return null!=d?d:bm}var bo=function(){function a(a){return a<=247?"bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN".charAt(a):1424<=a&&a<=1524?"R":1536<=a&&a<=1785?"nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111".charAt(a-1536):1774<=a&&a<=2220?"r":8192<=a&&a<=8203?"w":8204==a?"b":"L"}var b=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,c=/[stwN]/,d=/[LRr]/,e=/[Lb1n]/,f=/[1n]/;function g(a,b,c){this.level=a,this.from=b,this.to=c}return function(r,w){var s="ltr"==w?"L":"R";if(0==r.length||"ltr"==w&&!b.test(r))return!1;for(var j=r.length,h=[],C=0;C<j;++C)h.push(a(r.charCodeAt(C)));for(var z=0,H=s;z<j;++z){var I=h[z];"m"==I?h[z]=H:H=I}for(var x=0,J=s;x<j;++x){var A=h[x];"1"==A&&"r"==J?h[x]="n":d.test(A)&&(J=A,"r"==A&&(h[x]="R"))}for(var q=1,t=h[0];q<j-1;++q){var D=h[q];"+"==D&&"1"==t&&"1"==h[q+1]?h[q]="1":","==D&&t==h[q+1]&&("1"==t||"n"==t)&&(h[q]=t),t=D}for(var m=0;m<j;++m){var K=h[m];if(","==K)h[m]="N";else if("%"==K){var n=void 0;for(n=m+1;n<j&&"%"==h[n];++n);for(var O=m&&"!"==h[m-1]||n<j&&"1"==h[n]?"1":"N",E=m;E<n;++E)h[E]=O;m=n-1}}for(var B=0,L=s;B<j;++B){var F=h[B];"L"==L&&"1"==F?h[B]="L":d.test(F)&&(L=F)}for(var o=0;o<j;++o)if(c.test(h[o])){var p=void 0;for(p=o+1;p<j&&c.test(h[p]);++p);for(var M=(o?h[o-1]:s)=="L",P=(p<j?h[p]:s)=="L",Q=M==P?M?"L":"R":s,G=o;G<p;++G)h[G]=Q;o=p-1}for(var u,k=[],i=0;i<j;)if(e.test(h[i])){var R=i;for(++i;i<j&&e.test(h[i]);++i);k.push(new g(0,R,i))}else{var v=i,y=k.length,N="rtl"==w?1:0;for(++i;i<j&&"L"!=h[i];++i);for(var l=v;l<i;)if(f.test(h[l])){v<l&&(k.splice(y,0,new g(1,v,l)),y+=N);var S=l;for(++l;l<i&&f.test(h[l]);++l);k.splice(y,0,new g(2,S,l)),y+=N,v=l}else++l;v<i&&k.splice(y,0,new g(1,v,i))}return"ltr"==w&&(1==k[0].level&&(u=r.match(/^\s+/))&&(k[0].from=u[0].length,k.unshift(new g(0,0,u[0].length))),1==bc(k).level&&(u=r.match(/\s+$/))&&(bc(k).to-=u[0].length,k.push(new g(0,j-u[0].length,j)))),"rtl"==w?k.reverse():k}}();function bp(a,c){var b=a.order;return null==b&&(b=a.order=bo(a.text,c)),b}var bq=[],ah=function(a,b,c){if(a.addEventListener)a.addEventListener(b,c,!1);else if(a.attachEvent)a.attachEvent("on"+b,c);else{var d=a._handlers||(a._handlers={});d[b]=(d[b]||bq).concat(c)}};function br(a,b){return a._handlers&&a._handlers[b]||bq}function ai(a,b,d){if(a.removeEventListener)a.removeEventListener(b,d,!1);else if(a.detachEvent)a.detachEvent("on"+b,d);else{var e=a._handlers,c=e&&e[b];if(c){var f=ac(c,d);f> -1&&(e[b]=c.slice(0,f).concat(c.slice(f+1)))}}}function aj(c,d){var a=br(c,d);if(a.length)for(var e=Array.prototype.slice.call(arguments,2),b=0;b<a.length;++b)a[b].apply(null,e)}function bs(b,a,c){return"string"==typeof a&&(a={type:a,preventDefault:function(){this.defaultPrevented=!0}}),aj(b,c||a.type,b,a),bv(a)||a.codemirrorIgnore}function bt(a){var b=a._handlers&&a._handlers.cursorActivity;if(b)for(var d=a.curOp.cursorActivityHandlers||(a.curOp.cursorActivityHandlers=[]),c=0;c<b.length;++c)-1==ac(d,b[c])&&d.push(b[c])}function bu(a,b){return br(a,b).length>0}function o(a){a.prototype.on=function(a,b){ah(this,a,b)},a.prototype.off=function(a,b){ai(this,a,b)}}function ak(a){a.preventDefault?a.preventDefault():a.returnValue=!1}function al(a){a.stopPropagation?a.stopPropagation():a.cancelBubble=!0}function bv(a){return null!=a.defaultPrevented?a.defaultPrevented:!1==a.returnValue}function am(a){ak(a),al(a)}function bw(a){return a.target||a.srcElement}function bx(b){var a=b.which;return null==a&&(1&b.button?a=1:2&b.button?a=3:4&b.button&&(a=2)),P&&b.ctrlKey&&1==a&&(a=3),a}var by=function(){if(w&&W<9)return!1;var a=$("div");return"draggable"in a||"dragDrop"in a}();function bz(b){if(null==aO){var a=$("span","\u200B");a1(b,$("span",[a,document.createTextNode("x")])),0!=b.firstChild.offsetHeight&&(aO=a.offsetWidth<=1&&a.offsetHeight>2&&!(w&&W<8))}var c=aO?$("span","\u200B"):$("span","\xa0",null,"display: inline-block; width: 1px; margin-right: -1px");return c.setAttribute("cm-text",""),c}function bA(b){if(null!=aP)return aP;var c=a1(b,document.createTextNode("A\u062EA")),a=V(c,0,1).getBoundingClientRect(),d=V(c,1,2).getBoundingClientRect();return a0(b),!!a&&a.left!=a.right&&(aP=d.right-a.right<3)}var G,an=3!="\n\nb".split(/\n/).length?function(b){for(var c=0,d=[],g=b.length;c<=g;){var a=b.indexOf("\n",c);-1==a&&(a=b.length);var e=b.slice(c,"\r"==b.charAt(a-1)?a-1:a),f=e.indexOf("\r");-1!=f?(d.push(e.slice(0,f)),c+=f+1):(d.push(e),c=a+1)}return d}:function(a){return a.split(/\r\n?|\n/)},bB=window.getSelection?function(a){try{return a.selectionStart!=a.selectionEnd}catch(b){return!1}}:function(b){var a;try{a=b.ownerDocument.selection.createRange()}catch(c){}return!!a&&a.parentElement()==b&&0!=a.compareEndPoints("StartToEnd",a)},bC="oncopy"in(G=$("div"))||(G.setAttribute("oncopy","return;"),"function"==typeof G.oncopy),bD=null,ao={},ap={};function bE(b,a){arguments.length>2&&(a.dependencies=Array.prototype.slice.call(arguments,2)),ao[b]=a}function aq(a){if("string"==typeof a&&ap.hasOwnProperty(a))a=ap[a];else if(a&&"string"==typeof a.name&&ap.hasOwnProperty(a.name)){var b=ap[a.name];"string"==typeof b&&(b={name:b}),(a=af(b,a)).name=b.name}else if("string"==typeof a&&/^[\w\-]+\/[\w\-]+\+xml$/.test(a))return aq("application/xml");else if("string"==typeof a&&/^[\w\-]+\/[\w\-]+\+json$/.test(a))return aq("application/json");return"string"==typeof a?{name:a}:a||{name:"null"}}function ar(e,a){var f=ao[(a=aq(a)).name];if(!f)return ar(e,"text/plain");var b=f(e,a);if(as.hasOwnProperty(a.name)){var d=as[a.name];for(var c in d)d.hasOwnProperty(c)&&(b.hasOwnProperty(c)&&(b["_"+c]=b[c]),b[c]=d[c])}if(b.name=a.name,a.helperType&&(b.helperType=a.helperType),a.modeProps)for(var g in a.modeProps)b[g]=a.modeProps[g];return b}var as={};function at(c,a){if(!0===a)return a;if(c.copyState)return c.copyState(a);var d={};for(var e in a){var b=a[e];b instanceof Array&&(b=b.concat([])),d[e]=b}return d}function au(a,c){for(var b;a.innerMode&&(b=a.innerMode(c))&&b.mode!=a;)c=b.state,a=b.mode;return b||{mode:a,state:c}}function av(a,b,c){return!a.startState||a.startState(b,c)}var e=function(a,b,c){this.pos=this.start=0,this.string=a,this.tabSize=b||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=c};function bF(b,a){if((a-=b.first)<0||a>=b.size)throw new Error("There is no line "+(a+b.first)+" in the document.");for(var c=b;!c.lines;)for(var d=0;;++d){var e=c.children[d],f=e.chunkSize();if(a<f){c=e;break}a-=f}return c.lines[a]}function bG(b,a,c){var d=[],e=a.line;return b.iter(a.line,c.line+1,function(f){var b=f.text;e==c.line&&(b=b.slice(0,c.ch)),e==a.line&&(b=b.slice(a.ch)),d.push(b),++e}),d}function bH(a,b,c){var d=[];return a.iter(b,c,function(a){d.push(a.text)}),d}function bI(b,d){var c=d-b.height;if(c)for(var a=b;a;a=a.parent)a.height+=c}function bJ(c){if(null==c.parent)return null;for(var b=c.parent,e=ac(b.lines,c),a=b.parent;a;b=a,a=a.parent)for(var d=0;a.children[d]!=b;++d)e+=a.children[d].chunkSize();return e+b.first}function bK(a,b){var d=a.first;outer:do{for(var e=0;e<a.children.length;++e){var f=a.children[e],g=f.height;if(b<g){a=f;continue outer}b-=g,d+=f.chunkSize()}return d}while(!a.lines)for(var c=0;c<a.lines.length;++c){var h=a.lines[c].height;if(b<h)break;b-=h}return d+c}function bL(a,b){return b>=a.first&&b<a.first+a.size}function bM(a,b){return String(a.lineNumberFormatter(b+a.firstLineNumber))}function aw(b,c,a){if(void 0===a&&(a=null),!(this instanceof aw))return new aw(b,c,a);this.line=b,this.ch=c,this.sticky=a}function ax(a,b){return a.line-b.line||a.ch-b.ch}function bN(a,b){return a.sticky==b.sticky&&0==ax(a,b)}function bO(a){return aw(a.line,a.ch)}function bP(a,b){return 0>ax(a,b)?b:a}function bQ(a,b){return 0>ax(a,b)?a:b}function bR(a,b){return Math.max(a.first,Math.min(b,a.first+a.size-1))}function bS(a,b){if(b.line<a.first)return aw(a.first,0);var c=a.first+a.size-1;return b.line>c?aw(c,bF(a,c).text.length):bT(b,bF(a,b.line).text.length)}function bT(a,c){var b=a.ch;return null==b||b>c?aw(a.line,c):b<0?aw(a.line,0):a}function bU(d,b){for(var c=[],a=0;a<b.length;a++)c[a]=bS(d,b[a]);return c}e.prototype.eol=function(){return this.pos>=this.string.length},e.prototype.sol=function(){return this.pos==this.lineStart},e.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},e.prototype.next=function(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)},e.prototype.eat=function(a){var b=this.string.charAt(this.pos);if("string"==typeof a?b==a:b&&(a.test?a.test(b):a(b)))return++this.pos,b},e.prototype.eatWhile=function(a){for(var b=this.pos;this.eat(a););return this.pos>b},e.prototype.eatSpace=function(){for(var a=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>a},e.prototype.skipToEnd=function(){this.pos=this.string.length},e.prototype.skipTo=function(b){var a=this.string.indexOf(b,this.pos);if(a> -1)return this.pos=a,!0},e.prototype.backUp=function(a){this.pos-=a},e.prototype.column=function(){return this.lastColumnPos<this.start&&(this.lastColumnValue=ab(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue),this.lastColumnPos=this.start),this.lastColumnValue-(this.lineStart?ab(this.string,this.lineStart,this.tabSize):0)},e.prototype.indentation=function(){return ab(this.string,null,this.tabSize)-(this.lineStart?ab(this.string,this.lineStart,this.tabSize):0)},e.prototype.match=function(a,c,e){if("string"==typeof a){var d=function(a){return e?a.toLowerCase():a};if(d(this.string.substr(this.pos,a.length))==d(a))return!1!==c&&(this.pos+=a.length),!0}else{var b=this.string.slice(this.pos).match(a);return b&&b.index>0?null:(b&& !1!==c&&(this.pos+=b[0].length),b)}},e.prototype.current=function(){return this.string.slice(this.start,this.pos)},e.prototype.hideFirstChars=function(a,b){this.lineStart+=a;try{return b()}finally{this.lineStart-=a}},e.prototype.lookAhead=function(b){var a=this.lineOracle;return a&&a.lookAhead(b)},e.prototype.baseToken=function(){var a=this.lineOracle;return a&&a.baseToken(this.pos)};var bV=function(a,b){this.state=a,this.lookAhead=b},q=function(a,b,c,d){this.state=b,this.doc=a,this.line=c,this.maxLookAhead=d||0,this.baseTokens=null,this.baseTokenPos=1};function bW(a,e,d,f){var g=[a.state.modeGen],b={};b3(a,e.text,a.doc.mode,d,function(a,b){return g.push(a,b)},b,f);for(var h=d.state,c=0;c<a.state.overlays.length;++c)!function(c){d.baseTokens=g;var f=a.state.overlays[c],i=1,j=0;d.state=!0,b3(a,e.text,f.mode,d,function(b,c){for(var a=i;j<b;){var d=g[i];d>b&&g.splice(i,1,b,g[i+1],d),i+=2,j=Math.min(b,d)}if(c){if(f.opaque)g.splice(a,i-a,b,"overlay "+c),i=a+2;else for(;a<i;a+=2){var e=g[a+1];g[a+1]=(e?e+" ":"")+"overlay "+c}}},b),d.state=h,d.baseTokens=null,d.baseTokenPos=1}(c);return{styles:g,classes:b.bgClass||b.textClass?b:null}}function bX(b,a,f){if(!a.styles||a.styles[0]!=b.state.modeGen){var c=bY(b,bJ(a)),d=a.text.length>b.options.maxHighlightLength&&at(b.doc.mode,c.state),e=bW(b,a,c);d&&(c.state=d),a.stateAfter=c.save(!d),a.styles=e.styles,e.classes?a.styleClasses=e.classes:a.styleClasses&&(a.styleClasses=null),f===b.doc.highlightFrontier&&(b.doc.modeFrontier=Math.max(b.doc.modeFrontier,++b.doc.highlightFrontier))}return a.styles}function bY(c,d,e){var a=c.doc,h=c.display;if(!a.mode.startState)return new q(a,!0,d);var b=b4(c,d,e),f=b>a.first&&bF(a,b-1).stateAfter,g=f?q.fromSaved(a,f,b):new q(a,av(a.mode),b);return a.iter(b,d,function(b){bZ(c,b.text,g);var a=g.line;b.stateAfter=a==d-1||a%5==0||a>=h.viewFrom&&a<h.viewTo?g.save():null,g.nextLine()}),e&&(a.modeFrontier=g.line),g}function bZ(c,d,b,g){var f=c.doc.mode,a=new e(d,c.options.tabSize,b);for(a.start=a.pos=g||0,""==d&&b$(f,b.state);!a.eol();)b_(f,a,b.state),a.start=a.pos}function b$(a,c){if(a.blankLine)return a.blankLine(c);if(a.innerMode){var b=au(a,c);if(b.mode.blankLine)return b.mode.blankLine(b.state)}}function b_(a,b,c,d){for(var e=0;e<10;e++){d&&(d[0]=au(a,c).mode);var f=a.token(b,c);if(b.pos>b.start)return f}throw new Error("Mode "+a.name+" failed to advance stream.")}q.prototype.lookAhead=function(a){var b=this.doc.getLine(this.line+a);return null!=b&&a>this.maxLookAhead&&(this.maxLookAhead=a),b},q.prototype.baseToken=function(a){if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=a;)this.baseTokenPos+=2;var b=this.baseTokens[this.baseTokenPos+1];return{type:b&&b.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-a}},q.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},q.fromSaved=function(a,b,c){return b instanceof bV?new q(a,at(a.mode,b.state),c,b.lookAhead):new q(a,at(a.mode,b),c)},q.prototype.save=function(b){var a=!1!==b?at(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new bV(a,this.maxLookAhead):a};var b0=function(a,b,c){this.start=a.start,this.end=a.pos,this.string=a.current(),this.type=b||null,this.state=c};function b1(g,b,j,c){var h,d=g.doc,k=d.mode;b=bS(d,b);var i,l=bF(d,b.line),f=bY(g,b.line,j),a=new e(l.text,g.options.tabSize,f);for(c&&(i=[]);(c||a.pos<b.ch)&&!a.eol();)a.start=a.pos,h=b_(k,a,f.state),c&&i.push(new b0(a,h,at(d.mode,f.state)));return c?i:new b0(a,h,f.state)}function b2(b,c){if(b)for(;;){var a=b.match(/(?:^|\s+)line-(background-)?(\S+)/);if(!a)break;b=b.slice(0,a.index)+b.slice(a.index+a[0].length);var d=a[1]?"bgClass":"textClass";null==c[d]?c[d]=a[2]:new RegExp("(?:^|\\s)"+a[2]+"(?:$|\\s)").test(c[d])||(c[d]+=" "+a[2])}return b}function b3(d,f,j,g,m,n,p){var h=j.flattenSpans;null==h&&(h=d.options.flattenSpans);var b,c=0,i=null,a=new e(f,d.options.tabSize,g),k=d.options.addModeClass&&[null];for(""==f&&b2(b$(j,g.state),n);!a.eol();){if(a.pos>d.options.maxHighlightLength?(h=!1,p&&bZ(d,f,g,a.pos),a.pos=f.length,b=null):b=b2(b_(j,a,g.state,k),n),k){var l=k[0].name;l&&(b="m-"+(b?l+" "+b:l))}if(!h||i!=b){for(;c<a.start;)m(c=Math.min(a.start,c+5e3),i);i=b}a.start=a.pos}for(;c<a.pos;){var o=Math.min(a.pos,c+5e3);m(o,i),c=o}}function b4(c,f,g){for(var h,d,b=c.doc,k=g?-1:f-(c.doc.mode.innerMode?1e3:100),a=f;a>k;--a){if(a<=b.first)return b.first;var i=bF(b,a-1),e=i.stateAfter;if(e&&(!g||a+(e instanceof bV?e.lookAhead:0)<=b.modeFrontier))return a;var j=ab(i.text,null,c.options.tabSize);(null==d||h>j)&&(d=a-1,h=j)}return d}var b5=!1,b6=!1;function b7(a,b,c){this.marker=a,this.from=b,this.to=c}function b8(a,d){if(a)for(var b=0;b<a.length;++b){var c=a[b];if(c.marker==d)return c}}function b9(b,d){for(var c,a=0;a<b.length;++a)b[a]!=d&&(c||(c=[])).push(b[a]);return c}function ca(f,b){if(b.full)return null;var p=bL(f,b.from.line)&&bF(f,b.from.line).markedSpans,q=bL(f,b.to.line)&&bF(f,b.to.line).markedSpans;if(!p&&!q)return null;var j=b.from.ch,u=b.to.ch,r=0==ax(b.from,b.to),a=function(d,b,g){var e;if(d)for(var f=0;f<d.length;++f){var a=d[f],c=a.marker;if(null==a.from||(c.inclusiveLeft?a.from<=b:a.from<b)||a.from==b&&"bookmark"==c.type&&(!g||!a.marker.insertLeft)){var h=null==a.to||(c.inclusiveRight?a.to>=b:a.to>b);(e||(e=[])).push(new b7(c,a.from,h?null:a.to))}}return e}(p,j,r),c=function(d,b,g){var e;if(d)for(var f=0;f<d.length;++f){var a=d[f],c=a.marker;if(null==a.to||(c.inclusiveRight?a.to>=b:a.to>b)||a.from==b&&"bookmark"==c.type&&(!g||a.marker.insertLeft)){var h=null==a.from||(c.inclusiveLeft?a.from<=b:a.from<b);(e||(e=[])).push(new b7(c,h?null:a.from-b,null==a.to?null:a.to-b))}}return e}(q,u,r),e=1==b.text.length,g=bc(b.text).length+(e?j:0);if(a)for(var k=0;k<a.length;++k){var h=a[k];if(null==h.to){var l=b8(c,h.marker);l?e&&(h.to=null==l.to?null:l.to+g):h.to=j}}if(c)for(var m=0;m<c.length;++m){var d=c[m];(null!=d.to&&(d.to+=g),null==d.from)?!b8(a,d.marker)&&(d.from=g,e&&(a||(a=[])).push(d)):(d.from+=g,e&&(a||(a=[])).push(d))}a&&(a=cb(a)),c&&c!=a&&(c=cb(c));var n=[a];if(!e){var o,s=b.text.length-2;if(s>0&&a)for(var i=0;i<a.length;++i)null==a[i].to&&(o||(o=[])).push(new b7(a[i].marker,null,null));for(var t=0;t<s;++t)n.push(o);n.push(c)}return n}function cb(a){for(var b=0;b<a.length;++b){var c=a[b];null!=c.from&&c.from==c.to&& !1!==c.marker.clearWhenEmpty&&a.splice(b--,1)}return a.length?a:null}function cc(a){var b=a.markedSpans;if(b){for(var c=0;c<b.length;++c)b[c].marker.detachLine(a);a.markedSpans=null}}function cd(c,a){if(a){for(var b=0;b<a.length;++b)a[b].marker.attachLine(c);c.markedSpans=a}}function ce(a){return a.inclusiveLeft?-1:0}function cf(a){return a.inclusiveRight?1:0}function cg(a,b){var g,c=a.lines.length-b.lines.length;if(0!=c)return c;var d=a.find(),e=b.find(),f=ax(d.from,e.from)||ce(a)-ce(b);if(f)return-f;return ax(d.to,e.to)||cf(a)-cf(b)||b.id-a.id}function ch(e,f){var b,c=b6&&e.markedSpans;if(c)for(var a=void 0,d=0;d<c.length;++d)(a=c[d]).marker.collapsed&&(f?a.from:a.to)==null&&(!b||0>cg(b,a.marker))&&(b=a.marker);return b}function ci(a){return ch(a,!0)}function cj(a){return ch(a,!1)}function ck(f,e){var b,c=b6&&f.markedSpans;if(c)for(var d=0;d<c.length;++d){var a=c[d];a.marker.collapsed&&(null==a.from||a.from<e)&&(null==a.to||a.to>e)&&(!b||0>cg(b,a.marker))&&(b=a.marker)}return b}function cl(j,k,e,f,c){var l=bF(j,k),g=b6&&l.markedSpans;if(g)for(var h=0;h<g.length;++h){var a=g[h];if(a.marker.collapsed){var b=a.marker.find(0),d=ax(b.from,e)||ce(a.marker)-ce(c),i=ax(b.to,f)||cf(a.marker)-cf(c);if((!(d>=0)||!(i<=0))&&(!(d<=0)||!(i>=0))&&(d<=0&&(a.marker.inclusiveRight&&c.inclusiveLeft?ax(b.to,e)>=0:ax(b.to,e)>0)||d>=0&&(a.marker.inclusiveRight&&c.inclusiveLeft?0>=ax(b.from,f):0>ax(b.from,f))))return!0}}}function cm(a){for(var b;b=ci(a);)a=b.find(-1,!0).line;return a}function cn(d,a){var b=bF(d,a),c=cm(b);return b==c?a:bJ(c)}function co(c,a){if(a>c.lastLine())return a;var d,b=bF(c,a);if(!cp(c,b))return a;for(;d=cj(b);)b=d.find(1,!0).line;return bJ(b)+1}function cp(e,d){var b=b6&&d.markedSpans;if(b){for(var a=void 0,c=0;c<b.length;++c)if((a=b[c]).marker.collapsed&&(null==a.from|| !a.marker.widgetNode&&0==a.from&&a.marker.inclusiveLeft&&cq(e,d,a)))return!0}}function cq(e,c,a){if(null==a.to){var f=a.marker.find(1,!0);return cq(e,f.line,b8(f.line.markedSpans,a.marker))}if(a.marker.inclusiveRight&&a.to==c.text.length)return!0;for(var b=void 0,d=0;d<c.markedSpans.length;++d)if((b=c.markedSpans[d]).marker.collapsed&&!b.marker.widgetNode&&b.from==a.to&&(null==b.to||b.to!=a.from)&&(b.marker.inclusiveLeft||a.marker.inclusiveRight)&&cq(e,c,b))return!0}function cr(c){c=cm(c);for(var d=0,a=c.parent,e=0;e<a.lines.length;++e){var g=a.lines[e];if(g==c)break;d+=g.height}for(var b=a.parent;b;b=(a=b).parent)for(var f=0;f<b.children.length;++f){var h=b.children[f];if(h==a)break;d+=h.height}return d}function cs(b){if(0==b.height)return 0;for(var c,d=b.text.length,a=b;c=ci(a);){var e=c.find(0,!0);a=e.from.line,d+=e.from.ch-e.to.ch}for(a=b;c=cj(a);){var f=c.find(0,!0);d-=a.text.length-f.from.ch,a=f.to.line,d+=a.text.length-f.to.ch}return d}function ct(c){var a=c.display,b=c.doc;a.maxLine=bF(b,b.first),a.maxLineLength=cs(a.maxLine),a.maxLineChanged=!0,b.iter(function(b){var c=cs(b);c>a.maxLineLength&&(a.maxLineLength=c,a.maxLine=b)})}var H=function(b,c,a){this.text=b,cd(this,c),this.height=a?a(this):1};function cu(a){a.parent=null,cc(a)}H.prototype.lineNo=function(){return bJ(this)},o(H);var cv={},cw={};function cx(a,c){if(!a||/^\s*$/.test(a))return null;var b=c.addModeClass?cw:cv;return b[a]||(b[a]=a.replace(/\S+/g,"cm-$&"))}function cy(c,b){var g=a2("span",null,null,N?"padding-right: .1px":null),a={pre:a2("pre",[g],"CodeMirror-line"),content:g,col:0,pos:0,cm:c,trailingSpace:!1,splitSpaces:c.getOption("lineWrapping")};b.measure={};for(var e=0;e<=(b.rest?b.rest.length:0);e++){var d=e?b.rest[e-1]:b.line,h=void 0;a.pos=0,a.addToken=cA,bA(c.display.measure)&&(h=bp(d,c.doc.direction))&&(a.addToken=cC(a.addToken,h)),a.map=[];var i=b!=c.display.externalMeasured&&bJ(d);cE(d,a,bX(c,d,i)),d.styleClasses&&(d.styleClasses.bgClass&&(a.bgClass=a4(d.styleClasses.bgClass,a.bgClass||"")),d.styleClasses.textClass&&(a.textClass=a4(d.styleClasses.textClass,a.textClass||""))),0==a.map.length&&a.map.push(0,0,a.content.appendChild(bz(c.display.measure))),0==e?(b.measure.map=a.map,b.measure.cache={}):((b.measure.maps||(b.measure.maps=[])).push(a.map),(b.measure.caches||(b.measure.caches=[])).push({}))}if(N){var f=a.content.lastChild;(/\bcm-tab\b/.test(f.className)||f.querySelector&&f.querySelector(".cm-tab"))&&(a.content.className="cm-tab-wrap-hack")}return aj(c,"renderLine",c,b.line,a.pre),a.pre.className&&(a.textClass=a4(a.pre.className,a.textClass||"")),a}function cz(b){var a=$("span","\u2022","cm-invalidchar");return a.title="\\u"+b.charCodeAt(0).toString(16),a.setAttribute("aria-label",a.title),a}function cA(a,c,p,j,k,q,h){if(c){var b,l=a.splitSpaces?cB(c,a.trailingSpace):c,m=a.cm.state.specialChars,r=!1;if(m.test(c)){b=document.createDocumentFragment();for(var f=0;;){m.lastIndex=f;var d=m.exec(c),g=d?d.index-f:c.length-f;if(g){var n=document.createTextNode(l.slice(f,f+g));w&&W<9?b.appendChild($("span",[n])):b.appendChild(n),a.map.push(a.pos,a.pos+g,n),a.col+=g,a.pos+=g}if(!d)break;f+=g+1;var e=void 0;if(" "==d[0]){var s=a.cm.options.tabSize,t=s-a.col%s;(e=b.appendChild($("span",bb(t),"cm-tab"))).setAttribute("role","presentation"),e.setAttribute("cm-text"," "),a.col+=t}else"\r"==d[0]||"\n"==d[0]?((e=b.appendChild($("span","\r"==d[0]?"\u240D":"\u2424","cm-invalidchar"))).setAttribute("cm-text",d[0]),a.col+=1):((e=a.cm.options.specialCharPlaceholder(d[0])).setAttribute("cm-text",d[0]),w&&W<9?b.appendChild($("span",[e])):b.appendChild(e),a.col+=1);a.map.push(a.pos,a.pos+1,e),a.pos++}}else a.col+=c.length,b=document.createTextNode(l),a.map.push(a.pos,a.pos+c.length,b),w&&W<9&&(r=!0),a.pos+=c.length;if(a.trailingSpace=32==l.charCodeAt(c.length-1),p||j||k||r||q||h){var o=p||"";j&&(o+=j),k&&(o+=k);var u=$("span",[b],o,q);if(h)for(var i in h)h.hasOwnProperty(i)&&"style"!=i&&"class"!=i&&u.setAttribute(i,h[i]);return a.content.appendChild(u)}a.content.appendChild(b)}}function cB(a,f){if(a.length>1&&!/ /.test(a))return a;for(var d=f,e="",b=0;b<a.length;b++){var c=a.charAt(b);" "==c&&d&&(b==a.length-1||32==a.charCodeAt(b+1))&&(c="\xa0"),e+=c,d=" "==c}return e}function cC(a,b){return function(g,e,f,h,l,j,k){f=f?f+" cm-force-border":"cm-force-border";for(var c=g.pos,m=c+e.length;;){for(var d=void 0,i=0;i<b.length&&(!((d=b[i]).to>c)||!(d.from<=c));i++);if(d.to>=m)return a(g,e,f,h,l,j,k);a(g,e.slice(0,d.to-c),f,h,null,j,k),h=null,e=e.slice(d.to-c),c=d.to}}}function cD(a,c,d,e){var b=!e&&d.widgetNode;b&&a.map.push(a.pos,a.pos+c,b),!e&&a.cm.display.input.needsContentAttribute&&(b||(b=a.content.appendChild(document.createElement("span"))),b.setAttribute("cm-marker",d.id)),b&&(a.cm.display.input.setUneditable(b),a.content.appendChild(b)),a.pos+=c,a.trailingSpace=!1}function cE(A,f,j){var s=A.markedSpans,t=A.text,m=0;if(!s){for(var n=1;n<j.length;n+=2)f.addToken(f,t.slice(m,m=j[n]),cx(j[n+1],f.cm.options));return}for(var u,k,o,p,q,d,h,v=t.length,a=0,B=1,g="",e=0;;){if(e==a){o=p=q=k="",h=null,d=null,e=1/0;for(var w=[],i=void 0,x=0;x<s.length;++x){var c=s[x],b=c.marker;if("bookmark"==b.type&&c.from==a&&b.widgetNode)w.push(b);else if(c.from<=a&&(null==c.to||c.to>a||b.collapsed&&c.to==a&&c.from==a)){if(null!=c.to&&c.to!=a&&e>c.to&&(e=c.to,p=""),b.className&&(o+=" "+b.className),b.css&&(k=(k?k+";":"")+b.css),b.startStyle&&c.from==a&&(q+=" "+b.startStyle),b.endStyle&&c.to==e&&(i||(i=[])).push(b.endStyle,c.to),b.title&&((h||(h={})).title=b.title),b.attributes)for(var C in b.attributes)(h||(h={}))[C]=b.attributes[C];b.collapsed&&(!d||0>cg(d.marker,b))&&(d=c)}else c.from>a&&e>c.from&&(e=c.from)}if(i)for(var r=0;r<i.length;r+=2)i[r+1]==e&&(p+=" "+i[r]);if(!d||d.from==a)for(var y=0;y<w.length;++y)cD(f,0,w[y]);if(d&&(d.from||0)==a){if(cD(f,(null==d.to?v+1:d.to)-a,d.marker,null==d.from),null==d.to)return;d.to==a&&(d=!1)}}if(a>=v)break;for(var l=Math.min(v,e);;){if(g){var z=a+g.length;if(!d){var D=z>l?g.slice(0,l-a):g;f.addToken(f,D,u?u+o:o,q,a+D.length==e?p:"",k,h)}if(z>=l){g=g.slice(l-a),a=l;break}a=z,q=""}g=t.slice(m,m=j[B++]),u=cx(j[B++],f.cm.options)}}}function cF(b,a,c){this.line=a,this.rest=function(a){for(var c,b;c=cj(a);)a=c.find(1,!0).line,(b||(b=[])).push(a);return b}(a),this.size=this.rest?bJ(bc(this.rest))-c+1:1,this.node=this.text=null,this.hidden=cp(b,a)}function cG(b,f,g){for(var c,d=[],a=f;a<g;a=c){var e=new cF(b.doc,bF(b.doc,a),a);c=a+e.size,d.push(e)}return d}var cH=null,cI=null;function cJ(d,e){var c=br(d,e);if(c.length){var a,g=Array.prototype.slice.call(arguments,2);cH?a=cH.delayedCallbacks:cI?a=cI:(a=cI=[],setTimeout(cK,0));for(var f=function(b){a.push(function(){return c[b].apply(null,g)})},b=0;b<c.length;++b)f(b)}}function cK(){var b=cI;cI=null;for(var a=0;a<b.length;++a)b[a]()}function cL(b,a,f,e){for(var d=0;d<a.changes.length;d++){var c=a.changes[d];"text"==c?cO(b,a):"gutter"==c?cQ(b,a,f,e):"class"==c?cP(b,a):"widget"==c&&cR(b,a,e)}a.changes=null}function cM(a){return a.node==a.text&&(a.node=$("div",null,null,"position: relative"),a.text.parentNode&&a.text.parentNode.replaceChild(a.node,a.text),a.node.appendChild(a.text),w&&W<8&&(a.node.style.zIndex=2)),a.node}function cN(b,c){var a=b.display.externalMeasured;return a&&a.line==c.line?(b.display.externalMeasured=null,c.measure=a.measure,a.built):cy(b,c)}function cO(c,a){var d=a.text.className,b=cN(c,a);a.text==a.node&&(a.node=b.pre),a.text.parentNode.replaceChild(b.pre,a.text),a.text=b.pre,b.bgClass!=a.bgClass||b.textClass!=a.textClass?(a.bgClass=b.bgClass,a.textClass=b.textClass,cP(c,a)):d&&(a.text.className=d)}function cP(b,a){!function(d,a){var b=a.bgClass?a.bgClass+" "+(a.line.bgClass||""):a.line.bgClass;if(b&&(b+=" CodeMirror-linebackground"),a.background)b?a.background.className=b:(a.background.parentNode.removeChild(a.background),a.background=null);else if(b){var c=cM(a);a.background=c.insertBefore($("div",null,b),c.firstChild),d.display.input.setUneditable(a.background)}}(b,a),a.line.wrapClass?cM(a).className=a.line.wrapClass:a.node!=a.text&&(a.node.className="");var c=a.textClass?a.textClass+" "+(a.line.textClass||""):a.line.textClass;a.text.className=c||""}function cQ(b,a,i,c){if(a.gutter&&(a.node.removeChild(a.gutter),a.gutter=null),a.gutterBackground&&(a.node.removeChild(a.gutterBackground),a.gutterBackground=null),a.line.gutterClass){var j=cM(a);a.gutterBackground=$("div",null,"CodeMirror-gutter-background "+a.line.gutterClass,"left: "+(b.options.fixedGutter?c.fixedPos:-c.gutterTotalWidth)+"px; width: "+c.gutterTotalWidth+"px"),b.display.input.setUneditable(a.gutterBackground),j.insertBefore(a.gutterBackground,a.text)}var d=a.line.gutterMarkers;if(b.options.lineNumbers||d){var k=cM(a),e=a.gutter=$("div",null,"CodeMirror-gutter-wrapper","left: "+(b.options.fixedGutter?c.fixedPos:-c.gutterTotalWidth)+"px");if(e.setAttribute("aria-hidden","true"),b.display.input.setUneditable(e),k.insertBefore(e,a.text),a.line.gutterClass&&(e.className+=" "+a.line.gutterClass),!b.options.lineNumbers||d&&d["CodeMirror-linenumbers"]||(a.lineNumber=e.appendChild($("div",bM(b.options,i),"CodeMirror-linenumber CodeMirror-gutter-elt","left: "+c.gutterLeft["CodeMirror-linenumbers"]+"px; width: "+b.display.lineNumInnerWidth+"px"))),d)for(var g=0;g<b.display.gutterSpecs.length;++g){var f=b.display.gutterSpecs[g].className,h=d.hasOwnProperty(f)&&d[f];h&&e.appendChild($("div",[h],"CodeMirror-gutter-elt","left: "+c.gutterLeft[f]+"px; width: "+c.gutterWidth[f]+"px"))}}}function cR(d,a,e){a.alignable&&(a.alignable=null);for(var f=a_("CodeMirror-linewidget"),b=a.node.firstChild,c=void 0;b;b=c)c=b.nextSibling,f.test(b.className)&&a.node.removeChild(b);cT(d,a,e)}function cS(c,a,e,d){var b=cN(c,a);return a.text=a.node=b.pre,b.bgClass&&(a.bgClass=b.bgClass),b.textClass&&(a.textClass=b.textClass),cP(c,a),cQ(c,a,e,d),cT(c,a,d),a.node}function cT(c,a,d){if(cU(c,a.line,a,d,!0),a.rest)for(var b=0;b<a.rest.length;b++)cU(c,a.rest[b],a,d,!1)}function cU(h,e,c,i,j){if(e.widgets)for(var f=cM(c),d=0,g=e.widgets;d<g.length;++d){var a=g[d],b=$("div",[a.node],"CodeMirror-linewidget"+(a.className?" "+a.className:""));a.handleMouseEvents||b.setAttribute("cm-ignore-events","true"),cV(a,b,c,i),h.display.input.setUneditable(b),j&&a.above?f.insertBefore(b,c.gutter||c.text):f.appendChild(b),cJ(a,"redraw")}}function cV(c,a,d,b){if(c.noHScroll){(d.alignable||(d.alignable=[])).push(a);var e=b.wrapperWidth;a.style.left=b.fixedPos+"px",c.coverGutter||(e-=b.gutterTotalWidth,a.style.paddingLeft=b.gutterTotalWidth+"px"),a.style.width=e+"px"}c.coverGutter&&(a.style.zIndex=5,a.style.position="relative",c.noHScroll||(a.style.marginLeft=-b.gutterTotalWidth+"px"))}function cW(a){if(null!=a.height)return a.height;var b=a.doc.cm;if(!b)return 0;if(!_(document.body,a.node)){var c="position: relative;";a.coverGutter&&(c+="margin-left: -"+b.display.gutters.offsetWidth+"px;"),a.noHScroll&&(c+="width: "+b.display.wrapper.clientWidth+"px;"),a1(b.display.measure,$("div",[a.node],null,c))}return a.height=a.node.parentNode.offsetHeight}function cX(b,c){for(var a=bw(c);a!=b.wrapper;a=a.parentNode)if(!a||1==a.nodeType&&"true"==a.getAttribute("cm-ignore-events")||a.parentNode==b.sizer&&a!=b.mover)return!0}function cY(a){return a.lineSpace.offsetTop}function cZ(a){return a.mover.offsetHeight-a.lineSpace.offsetHeight}function c$(a){if(a.cachedPaddingH)return a.cachedPaddingH;var c=a1(a.measure,$("pre","x","CodeMirror-line-like")),d=window.getComputedStyle?window.getComputedStyle(c):c.currentStyle,b={left:parseInt(d.paddingLeft),right:parseInt(d.paddingRight)};return isNaN(b.left)||isNaN(b.right)||(a.cachedPaddingH=b),b}function c_(a){return 50-a.display.nativeBarWidth}function c0(a){return a.display.scroller.clientWidth-c_(a)-a.display.barWidth}function c1(a){return a.display.scroller.clientHeight-c_(a)-a.display.barHeight}function c2(a,d,e){if(a.line==d)return{map:a.measure.map,cache:a.measure.cache};if(a.rest){for(var b=0;b<a.rest.length;b++)if(a.rest[b]==d)return{map:a.measure.maps[b],cache:a.measure.caches[b]};for(var c=0;c<a.rest.length;c++)if(bJ(a.rest[c])>e)return{map:a.measure.maps[c],cache:a.measure.caches[c],before:!0}}}function c3(a,b,c,d){return c6(a,c5(a,b),c,d)}function c4(a,b){if(b>=a.display.viewFrom&&b<a.display.viewTo)return a.display.view[dD(a,b)];var c=a.display.externalMeasured;if(c&&b>=c.lineN&&b<c.lineN+c.size)return c}function c5(b,e){var c,f,g,d,h,i=bJ(e),a=c4(b,i);a&&!a.text?a=null:a&&a.changes&&(cL(b,a,i,dy(b)),b.curOp.forceUpdate=!0),a||(a=(c=b,f=cm(f=e),g=bJ(f),(d=c.display.externalMeasured=new cF(c.doc,f,g)).lineN=g,h=d.built=cy(c,d),d.text=h.pre,a1(c.display.lineMeasure,h.pre),d));var j=c2(a,e,i);return{line:e,view:a,rect:null,map:j.map,cache:j.cache,before:j.before,hasHeights:!1}}function c6(e,a,c,f,g){a.before&&(c=-1);var b,d=c+(f||"");return a.cache.hasOwnProperty(d)?b=a.cache[d]:(a.rect||(a.rect=a.view.text.getBoundingClientRect()),a.hasHeights||(function(f,a,c){var d=f.options.lineWrapping,g=d&&c0(f);if(!a.measure.heights||d&&a.measure.width!=g){var h=a.measure.heights=[];if(d){a.measure.width=g;for(var e=a.text.firstChild.getClientRects(),b=0;b<e.length-1;b++){var i=e[b],j=e[b+1];Math.abs(i.bottom-j.bottom)>2&&h.push((i.bottom+j.top)/2-c.top)}}h.push(c.bottom-c.top)}}(e,a.view,a.rect),a.hasHeights=!0),(b=da(e,a,c,f)).bogus||(a.cache[d]=b)),{left:b.left,right:b.right,top:g?b.rtop:b.top,bottom:g?b.rbottom:b.bottom}}var c7={left:0,right:0,top:0,bottom:0};function c8(b,f,i){for(var h,d,j,g,e,c,a=0;a<b.length;a+=3)if(e=b[a],c=b[a+1],f<e?(d=0,j=1,g="left"):f<c?j=(d=f-e)+1:(a==b.length-3||f==c&&b[a+3]>f)&&(d=(j=c-e)-1,f>=c&&(g="right")),null!=d){if(h=b[a+2],e==c&&i==(h.insertLeft?"left":"right")&&(g=i),"left"==i&&0==d)for(;a&&b[a-2]==b[a-3]&&b[a-1].insertLeft;)h=b[(a-=3)+2],g="left";if("right"==i&&d==c-e)for(;a<b.length-3&&b[a+3]==b[a+4]&&!b[a+5].insertLeft;)h=b[(a+=3)+2],g="right";break}return{node:h,start:d,end:j,collapse:g,coverStart:e,coverEnd:c}}function c9(b,e){var a=c7;if("left"==e)for(var c=0;c<b.length&&(a=b[c]).left==a.right;c++);else for(var d=b.length-1;d>=0&&(a=b[d]).left==a.right;d--);return a}function da(i,d,r,j){var a,n,b=c8(d.map,r,j),e=b.node,c=b.start,f=b.end,k=b.collapse;if(3==e.nodeType){for(var o=0;o<4;o++){for(;c&&bj(d.line.text.charAt(b.coverStart+c));)--c;for(;b.coverStart+f<b.coverEnd&&bj(d.line.text.charAt(b.coverStart+f));)++f;if((a=w&&W<9&&0==c&&f==b.coverEnd-b.coverStart?e.parentNode.getBoundingClientRect():c9(V(e,c,f).getClientRects(),j)).left||a.right||0==c)break;f=c,c-=1,k="right"}w&&W<11&&(a=db(i.display.measure,a))}else c>0&&(k=j="right"),a=i.options.lineWrapping&&(n=e.getClientRects()).length>1?n["right"==j?n.length-1:0]:e.getBoundingClientRect();if(w&&W<9&&!c&&(!a|| !a.left&&!a.right)){var h=e.parentNode.getClientRects()[0];a=h?{left:h.left,right:h.left+dx(i.display),top:h.top,bottom:h.bottom}:c7}for(var p=a.top-d.rect.top,q=a.bottom-d.rect.top,s=(p+q)/2,l=d.view.measure.heights,g=0;g<l.length-1&&!(s<l[g]);g++);var t=g?l[g-1]:0,u=l[g],m={left:("right"==k?a.right:a.left)-d.rect.left,right:("left"==k?a.left:a.right)-d.rect.left,top:t,bottom:u};return a.left||a.right||(m.bogus=!0),i.options.singleCursorHeightPerLine||(m.rtop=p,m.rbottom=q),m}function db(d,a){if(!window.screen||null==screen.logicalXDPI||screen.logicalXDPI==screen.deviceXDPI||!function(b){if(null!=bD)return bD;var a=a1(b,$("span","x")),c=a.getBoundingClientRect(),d=V(a,0,1).getBoundingClientRect();return bD=Math.abs(c.left-d.left)>1}(d))return a;var b=screen.logicalXDPI/screen.deviceXDPI,c=screen.logicalYDPI/screen.deviceYDPI;return{left:a.left*b,right:a.right*b,top:a.top*c,bottom:a.bottom*c}}function dc(a){if(a.measure&&(a.measure.cache={},a.measure.heights=null,a.rest))for(var b=0;b<a.rest.length;b++)a.measure.caches[b]={}}function dd(a){a.display.externalMeasure=null,a0(a.display.lineMeasure);for(var b=0;b<a.display.view.length;b++)dc(a.display.view[b])}function de(a){dd(a),a.display.cachedCharWidth=a.display.cachedTextHeight=a.display.cachedPaddingH=null,a.options.lineWrapping||(a.display.maxLineChanged=!0),a.display.lineNumChars=null}function df(){return C&&Y?-(document.body.getBoundingClientRect().left-parseInt(getComputedStyle(document.body).marginLeft)):window.pageXOffset||(document.documentElement||document.body).scrollLeft}function dg(){return C&&Y?-(document.body.getBoundingClientRect().top-parseInt(getComputedStyle(document.body).marginTop)):window.pageYOffset||(document.documentElement||document.body).scrollTop}function dh(d){var a=cm(d).widgets,c=0;if(a)for(var b=0;b<a.length;++b)a[b].above&&(c+=cW(a[b]));return c}function di(d,e,a,b,i){if(!i){var f=dh(e);a.top+=f,a.bottom+=f}if("line"==b)return a;b||(b="local");var c=cr(e);if("local"==b?c+=cY(d.display):c-=d.display.viewOffset,"page"==b||"window"==b){var g=d.display.lineSpace.getBoundingClientRect();c+=g.top+("window"==b?0:dg());var h=g.left+("window"==b?0:df());a.left+=h,a.right+=h}return a.top+=c,a.bottom+=c,a}function dj(e,b,a){if("div"==a)return b;var c=b.left,d=b.top;if("page"==a)c-=df(),d-=dg();else if("local"==a||!a){var f=e.display.sizer.getBoundingClientRect();c+=f.left,d+=f.top}var g=e.display.lineSpace.getBoundingClientRect();return{left:c-g.left,top:d-g.top}}function dk(b,c,d,a,e){return a||(a=bF(b.doc,c.line)),di(b,a,c3(b,a,c.ch,e),d)}function dl(d,e,m,c,f,n){function k(e,b){var a=c6(d,f,e,b?"right":"left",n);return b?a.left=a.right:a.right=a.left,di(d,c,a,m)}c=c||bF(d.doc,e.line),f||(f=c5(d,c));var g=bp(c,d.doc.direction),a=e.ch,b=e.sticky;if(a>=c.text.length?(a=c.text.length,b="before"):a<=0&&(a=0,b="after"),!g)return k("before"==b?a-1:a,"before"==b);function h(a,c,b){return k(b?a-1:a,1==g[c].level!=b)}var l=bn(g,a,b),i=bm,j=h(a,l,"before"==b);return null!=i&&(j.other=h(a,i,"before"!=b)),j}function dm(a,b){var c=0;b=bS(a.doc,b),a.options.lineWrapping||(c=dx(a.display)*b.ch);var d=bF(a.doc,b.line),e=cr(d)+cY(a.display);return{left:c,right:c,top:e,bottom:e+d.height}}function dn(c,d,e,b,f){var a=aw(c,d,e);return a.xRel=f,b&&(a.outside=b),a}function dp(d,e,f){var a=d.doc;if((f+=d.display.viewOffset)<0)return dn(a.first,0,null,-1,-1);var b=bK(a,f),i=a.first+a.size-1;if(b>i)return dn(a.first+a.size-1,bF(a,i).text.length,null,1,1);e<0&&(e=0);for(var g=bF(a,b);;){var c=dt(d,g,b,e,f),j=ck(g,c.ch+(c.xRel>0||c.outside>0?1:0));if(!j)return c;var h=j.find(1);if(h.line==b)return h;g=bF(a,b=h.line)}}function dq(e,b,f,d){d-=dh(b);var a=b.text.length,c=bl(function(a){return c6(e,f,a-1).bottom<=d},a,0);return a=bl(function(a){return c6(e,f,a).top>d},c,a),{begin:c,end:a}}function dr(a,c,b,d){b||(b=c5(a,c));var e=di(a,c,c6(a,b,d),"line").top;return dq(a,c,b,e)}function ds(a,c,b,d){return!(a.bottom<=b)&&(a.top>b||(d?a.left:a.right)>c)}function dt(c,b,j,h,e){e-=cr(b);var k=c5(c,b),t=dh(b),l=0,m=b.text.length,d=!0,p=bp(b,c.doc.direction);if(p){var f=(c.options.lineWrapping?dv:du)(c,b,j,k,p,h,e);l=(d=1!=f.level)?f.from:f.to-1,m=d?f.to:f.from-1}var n,i,u=null,g=null,a=bl(function(b){var a=c6(c,k,b);return a.top+=t,a.bottom+=t,!!ds(a,h,e,!1)&&(a.top<=e&&a.left<=h&&(u=b,g=a),!0)},l,m),q=!1;if(g){var r=h-g.left<g.right-h,s=r==d;a=u+(s?0:1),i=s?"after":"before",n=r?g.left:g.right}else{!d&&(a==m||a==l)&&a++,i=0==a?"after":a==b.text.length?"before":c6(c,k,a-(d?1:0)).bottom+t<=e==d?"after":"before";var o=dl(c,aw(j,a,i),"line",b,k);n=o.left,q=e<o.top?-1:e>=o.bottom?1:0}return a=bk(b.text,a,1),dn(j,a,i,q,h-n)}function du(g,h,i,j,b,k,d){var c=bl(function(e){var a=b[e],c=1!=a.level;return ds(dl(g,aw(i,c?a.to:a.from,c?"before":"after"),"line",h,j),k,d,!0)},0,b.length-1),a=b[c];if(c>0){var e=1!=a.level,f=dl(g,aw(i,e?a.from:a.to,e?"after":"before"),"line",h,j);ds(f,k,d,!0)&&f.top>d&&(a=b[c-1])}return a}function dv(i,j,p,k,d,f,o){var l=dq(i,j,k,o),e=l.begin,b=l.end;/\s/.test(j.text.charAt(b-1))&&b--;for(var a=null,m=null,g=0;g<d.length;g++){var c=d[g];if(!(c.from>=b)&&!(c.to<=e)){var h=c6(i,k,1!=c.level?Math.min(b,c.to)-1:Math.max(e,c.from)).right,n=h<f?f-h+1e9:h-f;(!a||m>n)&&(a=c,m=n)}}return a||(a=d[d.length-1]),a.from<e&&(a={from:e,to:a.to,level:a.level}),a.to>b&&(a={from:a.from,to:b,level:a.level}),a}function dw(a){if(null!=a.cachedTextHeight)return a.cachedTextHeight;if(null==aQ){aQ=$("pre",null,"CodeMirror-line-like");for(var c=0;c<49;++c)aQ.appendChild(document.createTextNode("x")),aQ.appendChild($("br"));aQ.appendChild(document.createTextNode("x"))}a1(a.measure,aQ);var b=aQ.offsetHeight/50;return b>3&&(a.cachedTextHeight=b),a0(a.measure),b||1}function dx(a){if(null!=a.cachedCharWidth)return a.cachedCharWidth;var c=$("span","xxxxxxxxxx"),e=$("pre",[c],"CodeMirror-line-like");a1(a.measure,e);var d=c.getBoundingClientRect(),b=(d.right-d.left)/10;return b>2&&(a.cachedCharWidth=b),b||10}function dy(c){for(var b=c.display,d={},e={},h=b.gutters.clientLeft,a=b.gutters.firstChild,f=0;a;a=a.nextSibling,++f){var g=c.display.gutterSpecs[f].className;d[g]=a.offsetLeft+a.clientLeft+h,e[g]=a.clientWidth}return{fixedPos:dz(b),gutterTotalWidth:b.gutters.offsetWidth,gutterLeft:d,gutterWidth:e,wrapperWidth:b.wrapper.clientWidth}}function dz(a){return a.scroller.getBoundingClientRect().left-a.sizer.getBoundingClientRect().left}function dA(a){var c=dw(a.display),b=a.options.lineWrapping,d=b&&Math.max(5,a.display.scroller.clientWidth/dx(a.display)-3);return function(e){if(cp(a.doc,e))return 0;var g=0;if(e.widgets)for(var f=0;f<e.widgets.length;f++)e.widgets[f].height&&(g+=e.widgets[f].height);return b?g+(Math.ceil(e.text.length/d)||1)*c:g+c}}function dB(a){var b=a.doc,c=dA(a);b.iter(function(a){var b=c(a);b!=a.height&&bI(a,b)})}function dC(a,d,h,i){var j=a.display;if(!h&&"true"==bw(d).getAttribute("cm-not-content"))return null;var e,f,g=j.lineSpace.getBoundingClientRect();try{e=d.clientX-g.left,f=d.clientY-g.top}catch(l){return null}var c,b=dp(a,e,f);if(i&&b.xRel>0&&(c=bF(a.doc,b.line).text).length==b.ch){var k=ab(c,c.length,a.options.tabSize)-c.length;b=aw(b.line,Math.max(0,Math.round((e-c$(a.display).left)/dx(a.display))-k))}return b}function dD(b,c){if(c>=b.display.viewTo||(c-=b.display.viewFrom)<0)return null;for(var d=b.display.view,a=0;a<d.length;a++)if((c-=d[a].size)<0)return a}function dE(b,c,d,e){null==c&&(c=b.doc.first),null==d&&(d=b.doc.first+b.doc.size),e||(e=0);var a=b.display;if(e&&d<a.viewTo&&(null==a.updateLineNumbers||a.updateLineNumbers>c)&&(a.updateLineNumbers=c),b.curOp.viewChanged=!0,c>=a.viewTo)b6&&cn(b.doc,c)<a.viewTo&&dG(b);else if(d<=a.viewFrom)b6&&co(b.doc,d+e)>a.viewFrom?dG(b):(a.viewFrom+=e,a.viewTo+=e);else if(c<=a.viewFrom&&d>=a.viewTo)dG(b);else if(c<=a.viewFrom){var g=dH(b,d,d+e,1);g?(a.view=a.view.slice(g.index),a.viewFrom=g.lineN,a.viewTo+=e):dG(b)}else if(d>=a.viewTo){var h=dH(b,c,c,-1);h?(a.view=a.view.slice(0,h.index),a.viewTo=h.lineN):dG(b)}else{var i=dH(b,c,c,-1),j=dH(b,d,d+e,1);i&&j?(a.view=a.view.slice(0,i.index).concat(cG(b,i.lineN,j.lineN)).concat(a.view.slice(j.index)),a.viewTo+=e):dG(b)}var f=a.externalMeasured;f&&(d<f.lineN?f.lineN+=e:c<f.lineN+f.size&&(a.externalMeasured=null))}function dF(b,a,f){b.curOp.viewChanged=!0;var c=b.display,d=b.display.externalMeasured;if(d&&a>=d.lineN&&a<d.lineN+d.size&&(c.externalMeasured=null),!(a<c.viewFrom)&&!(a>=c.viewTo)){var e=c.view[dD(b,a)];if(null!=e.node){var g=e.changes||(e.changes=[]);-1==ac(g,f)&&g.push(f)}}}function dG(a){a.display.viewFrom=a.display.viewTo=a.doc.first,a.display.view=[],a.display.viewOffset=0}function dH(c,d,b,e){var g,a=dD(c,d),f=c.display.view;if(!b6||b==c.doc.first+c.doc.size)return{index:a,lineN:b};for(var h=c.display.viewFrom,i=0;i<a;i++)h+=f[i].size;if(h!=d){if(e>0){if(a==f.length-1)return null;g=h+f[a].size-d,a++}else g=h-d;d+=g,b+=g}for(;cn(c.doc,b)!=b;){if(a==(e<0?0:f.length-1))return null;b+=e*f[a-(e<0?1:0)].size,a+=e}return{index:a,lineN:b}}function dI(e){for(var c=e.display.view,d=0,a=0;a<c.length;a++){var b=c[a];!b.hidden&&(!b.node||b.changes)&& ++d}return d}function dJ(a){a.display.input.showSelection(a.display.input.prepareSelection())}function dK(a,c){void 0===c&&(c=!0);var e=a.doc,f={},h=f.cursors=document.createDocumentFragment(),k=f.selection=document.createDocumentFragment(),g=a.options.$customCursor;g&&(c=!0);for(var d=0;d<e.sel.ranges.length;d++)if(c||d!=e.sel.primIndex){var b=e.sel.ranges[d];if(!(b.from().line>=a.display.viewTo)&&!(b.to().line<a.display.viewFrom)){var i=b.empty();if(g){var j=g(a,b);j&&dL(a,j,h)}else(i||a.options.showCursorWhenSelecting)&&dL(a,b.head,h);i||dN(a,b,k)}}return f}function dL(b,e,f){var a=dl(b,e,"div",null,null,!b.options.singleCursorHeightPerLine),c=f.appendChild($("div","\xa0","CodeMirror-cursor"));if(c.style.left=a.left+"px",c.style.top=a.top+"px",c.style.height=Math.max(0,a.bottom-a.top)*b.options.cursorHeight+"px",/\bcm-fat-cursor\b/.test(b.getWrapperElement().className)){var g=dk(b,e,"div",null,null),h=g.right-g.left;c.style.width=(h>0?h:b.defaultCharWidth())+"px"}if(a.other){var d=f.appendChild($("div","\xa0","CodeMirror-cursor CodeMirror-secondarycursor"));d.style.display="",d.style.left=a.other.left+"px",d.style.top=a.other.top+"px",d.style.height=(a.other.bottom-a.other.top)*.85+"px"}}function dM(a,b){return a.top-b.top||a.left-b.left}function dN(e,j,o){var k=e.display,g=e.doc,p=document.createDocumentFragment(),l=c$(e.display),m=l.left,r=Math.max(k.sizerWidth,c0(e)-k.sizer.offsetLeft)-l.right,s="ltr"==g.direction;function f(c,a,d,b){a<0&&(a=0),a=Math.round(a),b=Math.round(b),p.appendChild($("div",null,"CodeMirror-selected","position: absolute; left: "+c+"px;\n top: "+a+"px; width: "+(null==d?r-c:d)+"px;\n height: "+(b-a)+"px"))}function h(c,d,a){var h,i,b=bF(g,c),j=b.text.length;function l(a,d){return dk(e,aw(c,a),"div",b,d)}function n(f,g,c){var a=dr(e,b,null,f),d="ltr"==g==("after"==c)?"left":"right";return l("after"==c?a.begin:a.end-(/\s/.test(b.text.charAt(a.end-1))?2:1),d)[d]}var k=bp(b,g.direction);return!function(e,a,c,f){if(!e)return f(a,c,"ltr",0);for(var g=!1,d=0;d<e.length;++d){var b=e[d];(b.from<c&&b.to>a||a==c&&b.to==a)&&(f(Math.max(b.from,a),Math.min(b.to,c),1==b.level?"rtl":"ltr",d),g=!0)}g||f(a,c,"ltr")}(k,d||0,null==a?j:a,function(o,p,e,A){var q,w,t,x,g="ltr"==e,b=l(o,g?"left":"right"),c=l(p-1,g?"right":"left"),u=null==d&&0==o,v=null==a&&p==j,y=0==A,z=!k||A==k.length-1;if(c.top-b.top<=3){var C=(s?u:v)&&y,D=(s?v:u)&&z,B=C?m:(g?b:c).left,E=D?r:(g?c:b).right;f(B,b.top,E-B,b.bottom)}else g?(q=s&&u&&y?m:b.left,w=s?r:n(o,e,"before"),t=s?m:n(p,e,"after"),x=s&&v&&z?r:c.right):(q=s?n(o,e,"before"):m,w=!s&&u&&y?r:b.right,t=!s&&v&&z?m:c.left,x=s?n(p,e,"after"):r),f(q,b.top,w-q,b.bottom),b.bottom<c.top&&f(m,b.bottom,null,c.top),f(t,c.top,x-t,c.bottom);(!h||0>dM(b,h))&&(h=b),0>dM(c,h)&&(h=c),(!i||0>dM(b,i))&&(i=b),0>dM(c,i)&&(i=c)}),{start:h,end:i}}var c=j.from(),d=j.to();if(c.line==d.line)h(c.line,c.ch,d.ch);else{var n=bF(g,c.line),q=bF(g,d.line),i=cm(n)==cm(q),a=h(c.line,c.ch,i?n.text.length+1:null).end,b=h(d.line,i?0:null,d.ch).start;i&&(a.top<b.top-2?(f(a.right,a.top,null,a.bottom),f(m,b.top,b.left,b.bottom)):f(a.right,a.top,b.left-a.right,a.bottom)),a.bottom<b.top&&f(m,a.bottom,null,b.top)}o.appendChild(p)}function dO(a){if(a.state.focused){var b=a.display;clearInterval(b.blinker);var c=!0;b.cursorDiv.style.visibility="",a.options.cursorBlinkRate>0?b.blinker=setInterval(function(){a.hasFocus()||dS(a),b.cursorDiv.style.visibility=(c=!c)?"":"hidden"},a.options.cursorBlinkRate):a.options.cursorBlinkRate<0&&(b.cursorDiv.style.visibility="hidden")}}function dP(a){a.hasFocus()||(a.display.input.focus(),a.state.focused||dR(a))}function dQ(a){a.state.delayingBlurEvent=!0,setTimeout(function(){a.state.delayingBlurEvent&&(a.state.delayingBlurEvent=!1,a.state.focused&&dS(a))},100)}function dR(a,b){a.state.delayingBlurEvent&&!a.state.draggingText&&(a.state.delayingBlurEvent=!1),"nocursor"!=a.options.readOnly&&(a.state.focused||(aj(a,"focus",a,b),a.state.focused=!0,aa(a.display.wrapper,"CodeMirror-focused"),!a.curOp&&a.display.selForContextMenu!=a.doc.sel&&(a.display.input.reset(),N&&setTimeout(function(){return a.display.input.reset(!0)},20)),a.display.input.receivedFocus()),dO(a))}function dS(a,b){a.state.delayingBlurEvent||(a.state.focused&&(aj(a,"blur",a,b),a.state.focused=!1,Z(a.display.wrapper,"CodeMirror-focused")),clearInterval(a.display.blinker),setTimeout(function(){a.state.focused||(a.display.shift=!1)},150))}function dT(b){for(var c=b.display,k=c.lineDiv.offsetTop,o=Math.max(0,c.scroller.getBoundingClientRect().top),l=c.lineDiv.getBoundingClientRect().top,e=0,f=0;f<c.view.length;f++){var a=c.view[f],p=b.options.lineWrapping,d=void 0,g=0;if(!a.hidden){if(l+=a.line.height,w&&W<8){var m=a.node.offsetTop+a.node.offsetHeight;d=m-k,k=m}else{var h=a.node.getBoundingClientRect();d=h.bottom-h.top,!p&&a.text.firstChild&&(g=a.text.firstChild.getBoundingClientRect().right-h.left-1)}var i=a.line.height-d;if((i>.005||i< -0.005)&&(l<o&&(e-=i),bI(a.line,d),dU(a.line),a.rest))for(var j=0;j<a.rest.length;j++)dU(a.rest[j]);if(g>b.display.sizerWidth){var n=Math.ceil(g/dx(b.display));n>b.display.maxLineLength&&(b.display.maxLineLength=n,b.display.maxLine=a.line,b.display.maxLineChanged=!0)}}}Math.abs(e)>2&&(c.scroller.scrollTop+=e)}function dU(a){if(a.widgets)for(var b=0;b<a.widgets.length;++b){var c=a.widgets[b],d=c.node.parentNode;d&&(c.height=d.offsetHeight)}}function dV(c,b,a){var e=a&&null!=a.top?Math.max(0,a.top):c.scroller.scrollTop;e=Math.floor(e-cY(c));var i=a&&null!=a.bottom?a.bottom:e+c.wrapper.clientHeight,d=bK(b,e),f=bK(b,i);if(a&&a.ensure){var g=a.ensure.from.line,h=a.ensure.to.line;g<d?(d=g,f=bK(b,cr(bF(b,g))+c.wrapper.clientHeight)):Math.min(h,b.lastLine())>=f&&(d=bK(b,cr(bF(b,h))-c.wrapper.clientHeight),f=h)}return{from:d,to:Math.max(f,d+1)}}function dW(b,a){var d=b.display,i=dw(b.display);a.top<0&&(a.top=0);var g=b.curOp&&null!=b.curOp.scrollTop?b.curOp.scrollTop:d.scroller.scrollTop,e=c1(b),c={};a.bottom-a.top>e&&(a.bottom=a.top+e);var j=b.doc.height+cZ(d),n=a.top<i,o=a.bottom>j-i;if(a.top<g)c.scrollTop=n?0:a.top;else if(a.bottom>g+e){var k=Math.min(a.top,(o?j:a.bottom)-e);k!=g&&(c.scrollTop=k)}var l=b.options.fixedGutter?0:d.gutters.offsetWidth,m=b.curOp&&null!=b.curOp.scrollLeft?b.curOp.scrollLeft:d.scroller.scrollLeft-l,f=c0(b)-d.gutters.offsetWidth,h=a.right-a.left>f;return h&&(a.right=a.left+f),a.left<10?c.scrollLeft=0:a.left<m?c.scrollLeft=Math.max(0,a.left+l-(h?0:10)):a.right>f+m-3&&(c.scrollLeft=a.right+(h?0:10)-f),c}function dX(a,b){null!=b&&(d$(a),a.curOp.scrollTop=(null==a.curOp.scrollTop?a.doc.scrollTop:a.curOp.scrollTop)+b)}function dY(a){d$(a);var b=a.getCursor();a.curOp.scrollToPos={from:b,to:b,margin:a.options.cursorScrollMargin}}function dZ(a,b,c){(null!=b||null!=c)&&d$(a),null!=b&&(a.curOp.scrollLeft=b),null!=c&&(a.curOp.scrollTop=c)}function d$(a){var b=a.curOp.scrollToPos;if(b){a.curOp.scrollToPos=null;var c=dm(a,b.from),d=dm(a,b.to);d_(a,c,d,b.margin)}}function d_(c,a,b,d){var e=dW(c,{left:Math.min(a.left,b.left),top:Math.min(a.top,b.top)-d,right:Math.max(a.right,b.right),bottom:Math.max(a.bottom,b.bottom)+d});dZ(c,e.scrollLeft,e.scrollTop)}function d0(a,b){2>Math.abs(a.doc.scrollTop-b)||(K||en(a,{top:b}),d1(a,b,!0),K&&en(a),ei(a,100))}function d1(a,b,c){b=Math.max(0,Math.min(a.display.scroller.scrollHeight-a.display.scroller.clientHeight,b)),(a.display.scroller.scrollTop!=b||c)&&(a.doc.scrollTop=b,a.display.scrollbars.setScrollTop(b),a.display.scroller.scrollTop!=b&&(a.display.scroller.scrollTop=b))}function d2(a,b,c,d){b=Math.max(0,Math.min(b,a.display.scroller.scrollWidth-a.display.scroller.clientWidth)),((c?b!=a.doc.scrollLeft:!(2>Math.abs(a.doc.scrollLeft-b)))||d)&&(a.doc.scrollLeft=b,er(a),a.display.scroller.scrollLeft!=b&&(a.display.scroller.scrollLeft=b),a.display.scrollbars.setScrollLeft(b))}function d3(b){var a=b.display,c=a.gutters.offsetWidth,d=Math.round(b.doc.height+cZ(b.display));return{clientHeight:a.scroller.clientHeight,viewHeight:a.wrapper.clientHeight,scrollWidth:a.scroller.scrollWidth,clientWidth:a.scroller.clientWidth,viewWidth:a.wrapper.clientWidth,barLeft:b.options.fixedGutter?c:0,docHeight:d,scrollHeight:d+c_(b)+a.barHeight,nativeBarWidth:a.nativeBarWidth,gutterWidth:c}}var m=function(c,e,d){this.cm=d;var a=this.vert=$("div",[$("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),b=this.horiz=$("div",[$("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");a.tabIndex=b.tabIndex=-1,c(a),c(b),ah(a,"scroll",function(){a.clientHeight&&e(a.scrollTop,"vertical")}),ah(b,"scroll",function(){b.clientWidth&&e(b.scrollLeft,"horizontal")}),this.checkedZeroWidth=!1,w&&W<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};m.prototype.update=function(a){var c=a.scrollWidth>a.clientWidth+1,d=a.scrollHeight>a.clientHeight+1,b=a.nativeBarWidth;if(d){this.vert.style.display="block",this.vert.style.bottom=c?b+"px":"0";var e=a.viewHeight-(c?b:0);this.vert.firstChild.style.height=Math.max(0,a.scrollHeight-a.clientHeight+e)+"px"}else this.vert.scrollTop=0,this.vert.style.display="",this.vert.firstChild.style.height="0";if(c){this.horiz.style.display="block",this.horiz.style.right=d?b+"px":"0",this.horiz.style.left=a.barLeft+"px";var f=a.viewWidth-a.barLeft-(d?b:0);this.horiz.firstChild.style.width=Math.max(0,a.scrollWidth-a.clientWidth+f)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&a.clientHeight>0&&(0==b&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:d?b:0,bottom:c?b:0}},m.prototype.setScrollLeft=function(a){this.horiz.scrollLeft!=a&&(this.horiz.scrollLeft=a),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},m.prototype.setScrollTop=function(a){this.vert.scrollTop!=a&&(this.vert.scrollTop=a),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},m.prototype.zeroWidthHack=function(){this.horiz.style.height=this.vert.style.width=P&&!aU?"12px":"18px",this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new F,this.disableVert=new F},m.prototype.enableZeroWidthBar=function(a,b,d){function c(){var e=a.getBoundingClientRect();("vert"==d?document.elementFromPoint(e.right-1,(e.top+e.bottom)/2):document.elementFromPoint((e.right+e.left)/2,e.bottom-1))!=a?a.style.pointerEvents="none":b.set(1e3,c)}a.style.pointerEvents="auto",b.set(1e3,c)},m.prototype.clear=function(){var a=this.horiz.parentNode;a.removeChild(this.horiz),a.removeChild(this.vert)};var r=function(){};function d4(a,b){b||(b=d3(a));var c=a.display.barWidth,d=a.display.barHeight;d5(a,b);for(var e=0;e<4&&c!=a.display.barWidth||d!=a.display.barHeight;e++)c!=a.display.barWidth&&a.options.lineWrapping&&dT(a),d5(a,d3(a)),c=a.display.barWidth,d=a.display.barHeight}function d5(c,d){var a=c.display,b=a.scrollbars.update(d);a.sizer.style.paddingRight=(a.barWidth=b.right)+"px",a.sizer.style.paddingBottom=(a.barHeight=b.bottom)+"px",a.heightForcer.style.borderBottom=b.bottom+"px solid transparent",b.right&&b.bottom?(a.scrollbarFiller.style.display="block",a.scrollbarFiller.style.height=b.bottom+"px",a.scrollbarFiller.style.width=b.right+"px"):a.scrollbarFiller.style.display="",b.bottom&&c.options.coverGutterNextToScrollbar&&c.options.fixedGutter?(a.gutterFiller.style.display="block",a.gutterFiller.style.height=b.bottom+"px",a.gutterFiller.style.width=d.gutterWidth+"px"):a.gutterFiller.style.display=""}r.prototype.update=function(){return{bottom:0,right:0}},r.prototype.setScrollLeft=function(){},r.prototype.setScrollTop=function(){},r.prototype.clear=function(){};var ay={native:m,null:r};function d6(a){a.display.scrollbars&&(a.display.scrollbars.clear(),a.display.scrollbars.addClass&&Z(a.display.wrapper,a.display.scrollbars.addClass)),a.display.scrollbars=new ay[a.options.scrollbarStyle](function(b){a.display.wrapper.insertBefore(b,a.display.scrollbarFiller),ah(b,"mousedown",function(){a.state.focused&&setTimeout(function(){return a.display.input.focus()},0)}),b.setAttribute("cm-not-content","true")},function(b,c){"horizontal"==c?d2(a,b):d0(a,b)},a),a.display.scrollbars.addClass&&aa(a.display.wrapper,a.display.scrollbars.addClass)}var d7=0;function d8(a){var b;a.curOp={cm:a,viewChanged:!1,startHeight:a.doc.height,forceUpdate:!1,updateInput:0,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++d7,markArrays:null},b=a.curOp,cH?cH.ops.push(b):b.ownsGroup=cH={ops:[b],delayedCallbacks:[]}}function d9(b){var a=b.curOp;a&&function(b,c){var a=b.ownsGroup;if(a)try{!function(c){var d=c.delayedCallbacks,b=0;do{for(;b<d.length;b++)d[b].call(null);for(var e=0;e<c.ops.length;e++){var a=c.ops[e];if(a.cursorActivityHandlers)for(;a.cursorActivityCalled<a.cursorActivityHandlers.length;)a.cursorActivityHandlers[a.cursorActivityCalled++].call(null,a.cm)}}while(b<d.length)}(a)}finally{cH=null,c(a)}}(a,function(a){for(var b=0;b<a.ops.length;b++)a.ops[b].cm.curOp=null;ea(a)})}function ea(g){for(var a=g.ops,b=0;b<a.length;b++)eb(a[b]);for(var c=0;c<a.length;c++)ec(a[c]);for(var d=0;d<a.length;d++)ed(a[d]);for(var e=0;e<a.length;e++)ee(a[e]);for(var f=0;f<a.length;f++)ef(a[f])}function eb(a){var b=a.cm,c=b.display;ek(b),a.updateMaxLine&&ct(b),a.mustUpdate=a.viewChanged||a.forceUpdate||null!=a.scrollTop||a.scrollToPos&&(a.scrollToPos.from.line<c.viewFrom||a.scrollToPos.to.line>=c.viewTo)||c.maxLineChanged&&b.options.lineWrapping,a.update=a.mustUpdate&&new R(b,a.mustUpdate&&{top:a.scrollTop,ensure:a.scrollToPos},a.forceUpdate)}function ec(a){a.updatedDisplay=a.mustUpdate&&el(a.cm,a.update)}function ed(a){var b=a.cm,c=b.display;a.updatedDisplay&&dT(b),a.barMeasure=d3(b),c.maxLineChanged&&!b.options.lineWrapping&&(a.adjustWidthTo=c3(b,c.maxLine,c.maxLine.text.length).left+3,b.display.sizerWidth=a.adjustWidthTo,a.barMeasure.scrollWidth=Math.max(c.scroller.clientWidth,c.sizer.offsetLeft+a.adjustWidthTo+c_(b)+b.display.barWidth),a.maxScrollLeft=Math.max(0,c.sizer.offsetLeft+a.adjustWidthTo-c0(b))),(a.updatedDisplay||a.selectionChanged)&&(a.preparedSelection=c.input.prepareSelection())}function ee(a){var b=a.cm;null!=a.adjustWidthTo&&(b.display.sizer.style.minWidth=a.adjustWidthTo+"px",a.maxScrollLeft<b.doc.scrollLeft&&d2(b,Math.min(b.display.scroller.scrollLeft,a.maxScrollLeft),!0),b.display.maxLineChanged=!1);var c=a.focus&&a.focus==a3();a.preparedSelection&&b.display.input.showSelection(a.preparedSelection,c),(a.updatedDisplay||a.startHeight!=b.doc.height)&&d4(b,a.barMeasure),a.updatedDisplay&&eq(b,a.barMeasure),a.selectionChanged&&dO(b),b.state.focused&&a.updateInput&&b.display.input.reset(a.typing),c&&dP(a.cm)}function ef(a){var b=a.cm,c=b.display,h=b.doc;if(a.updatedDisplay&&em(b,a.update),null!=c.wheelStartX&&(null!=a.scrollTop||null!=a.scrollLeft||a.scrollToPos)&&(c.wheelStartX=c.wheelStartY=null),null!=a.scrollTop&&d1(b,a.scrollTop,a.forceScroll),null!=a.scrollLeft&&d2(b,a.scrollLeft,!0,!0),a.scrollToPos){var i=function(b,a,c,e){null==e&&(e=0),b.options.lineWrapping||a!=c||(c="before"==a.sticky?aw(a.line,a.ch+1,"before"):a,a=a.ch?aw(a.line,"before"==a.sticky?a.ch-1:a.ch,"after"):a);for(var i,j=0;j<5;j++){var h=!1,d=dl(b,a),f=c&&c!=a?dl(b,c):d,g=dW(b,i={left:Math.min(d.left,f.left),top:Math.min(d.top,f.top)-e,right:Math.max(d.left,f.left),bottom:Math.max(d.bottom,f.bottom)+e}),k=b.doc.scrollTop,l=b.doc.scrollLeft;if(null!=g.scrollTop&&(d0(b,g.scrollTop),Math.abs(b.doc.scrollTop-k)>1&&(h=!0)),null!=g.scrollLeft&&(d2(b,g.scrollLeft),Math.abs(b.doc.scrollLeft-l)>1&&(h=!0)),!h)break}return i}(b,bS(h,a.scrollToPos.from),bS(h,a.scrollToPos.to),a.scrollToPos.margin);!function(b,a){if(!bs(b,"scrollCursorIntoView")){var d=b.display,f=d.sizer.getBoundingClientRect(),c=null;if(a.top+f.top<0?c=!0:a.bottom+f.top>(window.innerHeight||document.documentElement.clientHeight)&&(c=!1),null!=c&&!aV){var e=$("div","\u200B",null,"position: absolute;\n top: "+(a.top-d.viewOffset-cY(b.display))+"px;\n height: "+(a.bottom-a.top+c_(b)+d.barHeight)+"px;\n left: "+a.left+"px; width: "+Math.max(2,a.right-a.left)+"px;");b.display.lineSpace.appendChild(e),e.scrollIntoView(c),b.display.lineSpace.removeChild(e)}}}(b,i)}var d=a.maybeHiddenMarkers,e=a.maybeUnhiddenMarkers;if(d)for(var f=0;f<d.length;++f)d[f].lines.length||aj(d[f],"hide");if(e)for(var g=0;g<e.length;++g)e[g].lines.length&&aj(e[g],"unhide");c.wrapper.offsetHeight&&(h.scrollTop=b.display.scroller.scrollTop),a.changeObjs&&aj(b,"changes",b,a.changeObjs),a.update&&a.update.finish()}function eg(a,b){if(a.curOp)return b();d8(a);try{return b()}finally{d9(a)}}function eh(a,b){return function(){if(a.curOp)return b.apply(a,arguments);d8(a);try{return b.apply(a,arguments)}finally{d9(a)}}}function g(a){return function(){if(this.curOp)return a.apply(this,arguments);d8(this);try{return a.apply(this,arguments)}finally{d9(this)}}}function d(a){return function(){var b=this.cm;if(!b||b.curOp)return a.apply(this,arguments);d8(b);try{return a.apply(this,arguments)}finally{d9(b)}}}function ei(a,b){a.doc.highlightFrontier<a.display.viewTo&&a.state.highlight.set(b,a5(ej,a))}function ej(b){var a=b.doc;if(!(a.highlightFrontier>=b.display.viewTo)){var e=+new Date+b.options.workTime,c=bY(b,a.highlightFrontier),d=[];a.iter(c.line,Math.min(a.first+a.size,b.display.viewTo+500),function(f){if(c.line>=b.display.viewFrom){var i=f.styles,l=f.text.length>b.options.maxHighlightLength?at(a.mode,c.state):null,m=bW(b,f,c,!0);l&&(c.state=l),f.styles=m.styles;var h=f.styleClasses,g=m.classes;g?f.styleClasses=g:h&&(f.styleClasses=null);for(var k=!i||i.length!=f.styles.length||h!=g&&(!h||!g||h.bgClass!=g.bgClass||h.textClass!=g.textClass),j=0;!k&&j<i.length;++j)k=i[j]!=f.styles[j];k&&d.push(c.line),f.stateAfter=c.save(),c.nextLine()}else f.text.length<=b.options.maxHighlightLength&&bZ(b,f.text,c),f.stateAfter=c.line%5==0?c.save():null,c.nextLine();if(+new Date>e)return ei(b,b.options.workDelay),!0}),a.highlightFrontier=c.line,a.modeFrontier=Math.max(a.modeFrontier,c.line),d.length&&eg(b,function(){for(var a=0;a<d.length;a++)dF(b,d[a],"text")})}}var R=function(a,c,d){var b=a.display;this.viewport=c,this.visible=dV(b,a.doc,c),this.editorIsHidden=!b.wrapper.offsetWidth,this.wrapperHeight=b.wrapper.clientHeight,this.wrapperWidth=b.wrapper.clientWidth,this.oldDisplayWidth=c0(a),this.force=d,this.dims=dy(a),this.events=[]};function ek(b){var a=b.display;!a.scrollbarsClipped&&a.scroller.offsetWidth&&(a.nativeBarWidth=a.scroller.offsetWidth-a.scroller.clientWidth,a.heightForcer.style.height=c_(b)+"px",a.sizer.style.marginBottom=-a.nativeBarWidth+"px",a.sizer.style.borderRightWidth=c_(b)+"px",a.scrollbarsClipped=!0)}function el(c,d){var a=c.display,j=c.doc;if(d.editorIsHidden)return dG(c),!1;if(!d.force&&d.visible.from>=a.viewFrom&&d.visible.to<=a.viewTo&&(null==a.updateLineNumbers||a.updateLineNumbers>=a.viewTo)&&a.renderedView==a.view&&0==dI(c))return!1;es(c)&&(dG(c),d.dims=dy(c));var l=j.first+j.size,g=Math.max(d.visible.from-c.options.viewportMargin,j.first),h=Math.min(l,d.visible.to+c.options.viewportMargin);a.viewFrom<g&&g-a.viewFrom<20&&(g=Math.max(j.first,a.viewFrom)),a.viewTo>h&&a.viewTo-h<20&&(h=Math.min(l,a.viewTo)),b6&&(g=cn(c.doc,g),h=co(c.doc,h));var i,e,f,b,m=g!=a.viewFrom||h!=a.viewTo||a.lastWrapHeight!=d.wrapperHeight||a.lastWrapWidth!=d.wrapperWidth;i=c,e=g,f=h,0==(b=i.display).view.length||e>=b.viewTo||f<=b.viewFrom?(b.view=cG(i,e,f),b.viewFrom=e):(b.viewFrom>e?b.view=cG(i,e,b.viewFrom).concat(b.view):b.viewFrom<e&&(b.view=b.view.slice(dD(i,e))),b.viewFrom=e,b.viewTo<f?b.view=b.view.concat(cG(i,b.viewTo,f)):b.viewTo>f&&(b.view=b.view.slice(0,dD(i,f)))),b.viewTo=f,a.viewOffset=cr(bF(c.doc,a.viewFrom)),c.display.mover.style.top=a.viewOffset+"px";var k=dI(c);if(!m&&0==k&&!d.force&&a.renderedView==a.view&&(null==a.updateLineNumbers||a.updateLineNumbers>=a.viewTo))return!1;var n=function(c){if(c.hasFocus())return null;var d=a3();if(!d||!_(c.display.lineDiv,d))return null;var b={activeElt:d};if(window.getSelection){var a=window.getSelection();a.anchorNode&&a.extend&&_(c.display.lineDiv,a.anchorNode)&&(b.anchorNode=a.anchorNode,b.anchorOffset=a.anchorOffset,b.focusNode=a.focusNode,b.focusOffset=a.focusOffset)}return b}(c);return k>4&&(a.lineDiv.style.display="none"),eo(c,a.updateLineNumbers,d.dims),k>4&&(a.lineDiv.style.display=""),a.renderedView=a.view,!function(a){if(a&&a.activeElt&&a.activeElt!=a3()&&(a.activeElt.focus(),!/^(INPUT|TEXTAREA)$/.test(a.activeElt.nodeName)&&a.anchorNode&&_(document.body,a.anchorNode)&&_(document.body,a.focusNode))){var b=window.getSelection(),c=document.createRange();c.setEnd(a.anchorNode,a.anchorOffset),c.collapse(!1),b.removeAllRanges(),b.addRange(c),b.extend(a.focusNode,a.focusOffset)}}(n),a0(a.cursorDiv),a0(a.selectionDiv),a.gutters.style.height=a.sizer.style.minHeight=0,m&&(a.lastWrapHeight=d.wrapperHeight,a.lastWrapWidth=d.wrapperWidth,ei(c,400)),a.updateLineNumbers=null,!0}function em(a,b){for(var c=b.viewport,d=!0;;d=!1){if(d&&a.options.lineWrapping&&b.oldDisplayWidth!=c0(a))d&&(b.visible=dV(a.display,a.doc,c));else if(c&&null!=c.top&&(c={top:Math.min(a.doc.height+cZ(a.display)-c1(a),c.top)}),b.visible=dV(a.display,a.doc,c),b.visible.from>=a.display.viewFrom&&b.visible.to<=a.display.viewTo)break;if(!el(a,b))break;dT(a);var e=d3(a);dJ(a),d4(a,e),eq(a,e),b.force=!1}b.signal(a,"update",a),(a.display.viewFrom!=a.display.reportedViewFrom||a.display.viewTo!=a.display.reportedViewTo)&&(b.signal(a,"viewportChange",a,a.display.viewFrom,a.display.viewTo),a.display.reportedViewFrom=a.display.viewFrom,a.display.reportedViewTo=a.display.viewTo)}function en(a,d){var b=new R(a,d);if(el(a,b)){dT(a),em(a,b);var c=d3(a);dJ(a),d4(a,c),eq(a,c),b.finish()}}function eo(c,h,i){var e=c.display,m=c.options.lineNumbers,f=e.lineDiv,b=f.firstChild;function j(a){var b=a.nextSibling;return N&&P&&c.display.currentWheelTarget==a?a.style.display="none":a.parentNode.removeChild(a),b}for(var k=e.view,d=e.viewFrom,g=0;g<k.length;g++){var a=k[g];if(a.hidden);else if(a.node&&a.node.parentNode==f){for(;b!=a.node;)b=j(b);var l=m&&null!=h&&h<=d&&a.lineNumber;a.changes&&(ac(a.changes,"gutter")> -1&&(l=!1),cL(c,a,d,i)),l&&(a0(a.lineNumber),a.lineNumber.appendChild(document.createTextNode(bM(c.options,d)))),b=a.node.nextSibling}else{var n=cS(c,a,d,i);f.insertBefore(n,b)}d+=a.size}for(;b;)b=j(b)}function ep(a){var b=a.gutters.offsetWidth;a.sizer.style.marginLeft=b+"px",cJ(a,"gutterChanged",a)}function eq(a,b){a.display.sizer.style.minHeight=b.docHeight+"px",a.display.heightForcer.style.top=b.docHeight+"px",a.display.gutters.style.height=b.docHeight+a.display.barHeight+c_(a)+"px"}function er(d){var b=d.display,c=b.view;if(b.alignWidgets||b.gutters.firstChild&&d.options.fixedGutter){for(var h=dz(b)-b.scroller.scrollLeft+d.doc.scrollLeft,i=b.gutters.offsetWidth,e=h+"px",a=0;a<c.length;a++)if(!c[a].hidden){d.options.fixedGutter&&(c[a].gutter&&(c[a].gutter.style.left=e),c[a].gutterBackground&&(c[a].gutterBackground.style.left=e));var f=c[a].alignable;if(f)for(var g=0;g<f.length;g++)f[g].style.left=e}d.options.fixedGutter&&(b.gutters.style.left=h+i+"px")}}function es(b){if(!b.options.lineNumbers)return!1;var d=b.doc,c=bM(b.options,d.first+d.size-1),a=b.display;if(c.length!=a.lineNumChars){var e=a.measure.appendChild($("div",[$("div",c)],"CodeMirror-linenumber CodeMirror-gutter-elt")),f=e.firstChild.offsetWidth,g=e.offsetWidth-f;return a.lineGutter.style.width="",a.lineNumInnerWidth=Math.max(f,a.lineGutter.offsetWidth-g)+1,a.lineNumWidth=a.lineNumInnerWidth+g,a.lineNumChars=a.lineNumInnerWidth?c.length:-1,a.lineGutter.style.width=a.lineNumWidth+"px",ep(b.display),!0}return!1}function et(d,e){for(var b=[],f=!1,c=0;c<d.length;c++){var a=d[c],g=null;if("string"!=typeof a&&(g=a.style,a=a.className),"CodeMirror-linenumbers"==a){if(!e)continue;f=!0}b.push({className:a,style:g})}return e&&!f&&b.push({className:"CodeMirror-linenumbers",style:null}),b}function eu(a){var b=a.gutters,c=a.gutterSpecs;a0(b),a.lineGutter=null;for(var d=0;d<c.length;++d){var f=c[d],g=f.className,h=f.style,e=b.appendChild($("div",null,"CodeMirror-gutter "+g));h&&(e.style.cssText=h),"CodeMirror-linenumbers"==g&&(a.lineGutter=e,e.style.width=(a.lineNumWidth||1)+"px")}b.style.display=c.length?"":"none",ep(a)}function ev(a){eu(a.display),dE(a),er(a)}function ew(b,c,d,e){var a=this;this.input=d,a.scrollbarFiller=$("div",null,"CodeMirror-scrollbar-filler"),a.scrollbarFiller.setAttribute("cm-not-content","true"),a.gutterFiller=$("div",null,"CodeMirror-gutter-filler"),a.gutterFiller.setAttribute("cm-not-content","true"),a.lineDiv=a2("div",null,"CodeMirror-code"),a.selectionDiv=$("div",null,null,"position: relative; z-index: 1"),a.cursorDiv=$("div",null,"CodeMirror-cursors"),a.measure=$("div",null,"CodeMirror-measure"),a.lineMeasure=$("div",null,"CodeMirror-measure"),a.lineSpace=a2("div",[a.measure,a.lineMeasure,a.selectionDiv,a.cursorDiv,a.lineDiv],null,"position: relative; outline: none");var f=a2("div",[a.lineSpace],"CodeMirror-lines");a.mover=$("div",[f],null,"position: relative"),a.sizer=$("div",[a.mover],"CodeMirror-sizer"),a.sizerWidth=null,a.heightForcer=$("div",null,null,"position: absolute; height: 50px; width: 1px;"),a.gutters=$("div",null,"CodeMirror-gutters"),a.lineGutter=null,a.scroller=$("div",[a.sizer,a.heightForcer,a.gutters],"CodeMirror-scroll"),a.scroller.setAttribute("tabIndex","-1"),a.wrapper=$("div",[a.scrollbarFiller,a.gutterFiller,a.scroller],"CodeMirror"),a.wrapper.setAttribute("translate","no"),w&&W<8&&(a.gutters.style.zIndex=-1,a.scroller.style.paddingRight=0),N||K&&aW||(a.scroller.draggable=!0),b&&(b.appendChild?b.appendChild(a.wrapper):b(a.wrapper)),a.viewFrom=a.viewTo=c.first,a.reportedViewFrom=a.reportedViewTo=c.first,a.view=[],a.renderedView=null,a.externalMeasured=null,a.viewOffset=0,a.lastWrapHeight=a.lastWrapWidth=0,a.updateLineNumbers=null,a.nativeBarWidth=a.barHeight=a.barWidth=0,a.scrollbarsClipped=!1,a.lineNumWidth=a.lineNumInnerWidth=a.lineNumChars=null,a.alignWidgets=!1,a.cachedCharWidth=a.cachedTextHeight=a.cachedPaddingH=null,a.maxLine=null,a.maxLineLength=0,a.maxLineChanged=!1,a.wheelDX=a.wheelDY=a.wheelStartX=a.wheelStartY=null,a.shift=!1,a.selForContextMenu=null,a.activeTouch=null,a.gutterSpecs=et(e.gutters,e.lineNumbers),eu(a),d.init(a)}R.prototype.signal=function(a,b){bu(a,b)&&this.events.push(arguments)},R.prototype.finish=function(){for(var a=0;a<this.events.length;a++)aj.apply(null,this.events[a])};var ex=0,x=null;function ey(a){var c=a.wheelDeltaX,b=a.wheelDeltaY;return null==c&&a.detail&&a.axis==a.HORIZONTAL_AXIS&&(c=a.detail),null==b&&a.detail&&a.axis==a.VERTICAL_AXIS?b=a.detail:null==b&&(b=a.wheelDelta),{x:c,y:b}}function ez(a,e){C&&aT>=102&&(null==a.display.chromeScrollHack?a.display.sizer.style.pointerEvents="none":clearTimeout(a.display.chromeScrollHack),a.display.chromeScrollHack=setTimeout(function(){a.display.chromeScrollHack=null,a.display.sizer.style.pointerEvents=""},100));var n=ey(e),f=n.x,b=n.y,g=x;0===e.deltaMode&&(f=e.deltaX,b=e.deltaY,g=1);var c=a.display,d=c.scroller,p=d.scrollWidth>d.clientWidth,j=d.scrollHeight>d.clientHeight;if(f&&p||b&&j){if(b&&P&&N){outer:for(var h=e.target,o=c.view;h!=d;h=h.parentNode)for(var k=0;k<o.length;k++)if(o[k].node==h){a.display.currentWheelTarget=h;break outer}}if(f&&!K&&!D&&null!=g){b&&j&&d0(a,Math.max(0,d.scrollTop+b*g)),d2(a,Math.max(0,d.scrollLeft+f*g)),(!b||b&&j)&&ak(e),c.wheelStartX=null;return}if(b&&null!=g){var l=b*g,i=a.doc.scrollTop,m=i+c.wrapper.clientHeight;l<0?i=Math.max(0,i+l-50):m=Math.min(a.doc.height,m+l+50),en(a,{top:i,bottom:m})}ex<20&&0!==e.deltaMode&&(null==c.wheelStartX?(c.wheelStartX=d.scrollLeft,c.wheelStartY=d.scrollTop,c.wheelDX=f,c.wheelDY=b,setTimeout(function(){if(null!=c.wheelStartX){var a=d.scrollLeft-c.wheelStartX,b=d.scrollTop-c.wheelStartY,e=b&&c.wheelDY&&b/c.wheelDY||a&&c.wheelDX&&a/c.wheelDX;c.wheelStartX=c.wheelStartY=null,e&&(x=(x*ex+e)/(ex+1),++ex)}},200)):(c.wheelDX+=f,c.wheelDY+=b))}}w?x=-0.53:K?x=15:C?x=-0.7:O&&(x=-1/3);var s=function(a,b){this.ranges=a,this.primIndex=b};s.prototype.primary=function(){return this.ranges[this.primIndex]},s.prototype.equals=function(a){if(a==this)return!0;if(a.primIndex!=this.primIndex||a.ranges.length!=this.ranges.length)return!1;for(var b=0;b<this.ranges.length;b++){var c=this.ranges[b],d=a.ranges[b];if(!bN(c.anchor,d.anchor)||!bN(c.head,d.head))return!1}return!0},s.prototype.deepCopy=function(){for(var b=[],a=0;a<this.ranges.length;a++)b[a]=new I(bO(this.ranges[a].anchor),bO(this.ranges[a].head));return new s(b,this.primIndex)},s.prototype.somethingSelected=function(){for(var a=0;a<this.ranges.length;a++)if(!this.ranges[a].empty())return!0;return!1},s.prototype.contains=function(c,b){b||(b=c);for(var a=0;a<this.ranges.length;a++){var d=this.ranges[a];if(ax(b,d.from())>=0&&0>=ax(c,d.to()))return a}return -1};var I=function(a,b){this.anchor=a,this.head=b};function eA(f,a,e){var k=f&&f.options.selectionsMayTouch,l=a[e];a.sort(function(a,b){return ax(a.from(),b.from())}),e=ac(a,l);for(var b=1;b<a.length;b++){var c=a[b],d=a[b-1],g=ax(d.to(),c.from());if(k&&!c.empty()?g>0:g>=0){var h=bQ(d.from(),c.from()),i=bP(d.to(),c.to()),j=d.empty()?c.from()==c.head:d.from()==d.head;b<=e&& --e,a.splice(--b,2,new I(j?i:h,j?h:i))}}return new s(a,e)}function eB(a,b){return new s([new I(a,b||a)],0)}function az(a){return a.text?aw(a.from.line+a.text.length-1,bc(a.text).length+(1==a.text.length?a.from.ch:0)):a.to}function eC(b,a){if(0>ax(b,a.from))return b;if(0>=ax(b,a.to))return az(a);var d=b.line+a.text.length-(a.to.line-a.from.line)-1,c=b.ch;return b.line==a.to.line&&(c+=az(a).ch-a.to.ch),aw(d,c)}function eD(a,c){for(var d=[],b=0;b<a.sel.ranges.length;b++){var e=a.sel.ranges[b];d.push(new I(eC(e.anchor,c),eC(e.head,c)))}return eA(a.cm,d,a.sel.primIndex)}function eE(a,b,c){return a.line==b.line?aw(c.line,a.ch-b.ch+c.ch):aw(c.line+(a.line-b.line),a.ch)}function eF(d,i,l){for(var e=[],b=aw(d.first,0),f=b,a=0;a<i.length;a++){var g=i[a],c=eE(g.from,b,f),h=eE(az(g),b,f);if(b=g.to,f=h,"around"==l){var j=d.sel.ranges[a],k=0>ax(j.head,j.anchor);e[a]=new I(k?h:c,k?c:h)}else e[a]=new I(c,c)}return new s(e,d.sel.primIndex)}function eG(a){a.doc.mode=ar(a.options,a.doc.modeOption),eH(a)}function eH(a){a.doc.iter(function(a){a.stateAfter&&(a.stateAfter=null),a.styles&&(a.styles=null)}),a.doc.modeFrontier=a.doc.highlightFrontier=a.doc.first,ei(a,100),a.state.modeGen++,a.curOp&&dE(a)}function eI(b,a){return 0==a.from.ch&&0==a.to.ch&&""==bc(a.text)&&(!b.cm||b.cm.options.wholeLineUpdateBefore)}function eJ(a,e,r,p){function j(a){return r?r[a]:null}function f(b,h,i){var a,d,f,c,g;a=b,d=h,f=i,c=p,a.text=d,a.stateAfter&&(a.stateAfter=null),a.styles&&(a.styles=null),null!=a.order&&(a.order=null),cc(a),cd(a,f),(g=c?c(a):1)!=a.height&&bI(a,g),cJ(b,"change",b,e)}function k(d,e){for(var c=[],a=d;a<e;++a)c.push(new H(b[a],j(a),p));return c}var c=e.from,g=e.to,b=e.text,d=bF(a,c.line),h=bF(a,g.line),m=bc(b),l=j(b.length-1),i=g.line-c.line;if(e.full)a.insert(0,k(0,b.length)),a.remove(b.length,a.size-b.length);else if(eI(a,e)){var n=k(0,b.length-1);f(h,h.text,l),i&&a.remove(c.line,i),n.length&&a.insert(c.line,n)}else if(d==h){if(1==b.length)f(d,d.text.slice(0,c.ch)+m+d.text.slice(g.ch),l);else{var o=k(1,b.length-1);o.push(new H(m+d.text.slice(g.ch),l,p)),f(d,d.text.slice(0,c.ch)+b[0],j(0)),a.insert(c.line+1,o)}}else if(1==b.length)f(d,d.text.slice(0,c.ch)+b[0]+h.text.slice(g.ch),j(0)),a.remove(c.line+1,i);else{f(d,d.text.slice(0,c.ch)+b[0],j(0)),f(h,m+h.text.slice(g.ch),l);var q=k(1,b.length-1);i>1&&a.remove(c.line+1,i-1),a.insert(c.line+1,q)}cJ(a,"change",a,e)}function eK(a,c,d){function b(a,h,i){if(a.linked)for(var f=0;f<a.linked.length;++f){var e=a.linked[f];if(e.doc!=h){var g=i&&e.sharedHist;(!d||g)&&(c(e.doc,g),b(e.doc,a,g))}}}b(a,null,!0)}function eL(a,b){if(b.cm)throw new Error("This document is already in use.");a.doc=b,b.cm=a,dB(a),eG(a),eM(a),a.options.direction=b.direction,a.options.lineWrapping||ct(a),a.options.mode=b.modeOption,dE(a)}function eM(a){("rtl"==a.doc.direction?aa:Z)(a.display.lineDiv,"CodeMirror-rtl")}function eN(a){this.done=[],this.undone=[],this.undoDepth=a?a.undoDepth:1/0,this.lastModTime=this.lastSelTime=0,this.lastOp=this.lastSelOp=null,this.lastOrigin=this.lastSelOrigin=null,this.generation=this.maxGeneration=a?a.maxGeneration:1}function eO(b,a){var c={from:bO(a.from),to:az(a),text:bG(b,a.from,a.to)};return eS(b,c,a.from.line,a.to.line+1),eK(b,function(b){return eS(b,c,a.from.line,a.to.line+1)},!0),c}function eP(a){for(;a.length;)if(bc(a).ranges)a.pop();else break}function eQ(d,b,k,g){var f,a=d.history;a.undone.length=0;var e,c,h,i=+new Date;if((a.lastOp==g||a.lastOrigin==b.origin&&b.origin&&("+"==b.origin.charAt(0)&&a.lastModTime>i-(d.cm?d.cm.options.historyEventDelay:500)||"*"==b.origin.charAt(0)))&&(e=(c=a,h=a.lastOp==g,h?(eP(c.done),bc(c.done)):c.done.length&&!bc(c.done).ranges?bc(c.done):c.done.length>1&&!c.done[c.done.length-2].ranges?(c.done.pop(),bc(c.done)):void 0)))f=bc(e.changes),0==ax(b.from,b.to)&&0==ax(b.from,f.to)?f.to=az(b):e.changes.push(eO(d,b));else{var j=bc(a.done);for(j&&j.ranges||eR(d.sel,a.done),e={changes:[eO(d,b)],generation:a.generation},a.done.push(e);a.done.length>a.undoDepth;)a.done.shift(),a.done[0].ranges||a.done.shift()}a.done.push(k),a.generation=++a.maxGeneration,a.lastModTime=a.lastSelTime=i,a.lastOp=a.lastSelOp=g,a.lastOrigin=a.lastSelOrigin=b.origin,f||aj(d,"historyAdded")}function eR(b,c){var a=bc(c);a&&a.ranges&&a.equals(b)||c.push(b)}function eS(a,b,c,d){var e=b["spans_"+a.id],f=0;a.iter(Math.max(a.first,c),Math.min(a.first+a.size,d),function(c){c.markedSpans&&((e||(e=b["spans_"+a.id]={}))[f]=c.markedSpans),++f})}function eT(b){if(!b)return null;for(var a,c=0;c<b.length;++c)b[c].marker.explicitlyCleared?a||(a=b.slice(0,c)):a&&a.push(b[c]);return a?a.length?a:null:b}function eU(h,i){var a=function(e,b){var c=b["spans_"+e.id];if(!c)return null;for(var d=[],a=0;a<b.text.length;++a)d.push(eT(c[a]));return d}(h,i),e=ca(h,i);if(!a)return e;if(!e)return a;for(var b=0;b<a.length;++b){var d=a[b],c=e[b];if(d&&c)spans:for(var f=0;f<c.length;++f){for(var j=c[f],g=0;g<d.length;++g)if(d[g].marker==j.marker)continue spans;d.push(j)}else c&&(a[b]=c)}return a}function eV(h,i,l){for(var d=[],e=0;e<h.length;++e){var b=h[e];if(b.ranges){d.push(l?s.prototype.deepCopy.call(b):b);continue}var j=b.changes,f=[];d.push({changes:f});for(var g=0;g<j.length;++g){var a=j[g],k=void 0;if(f.push({from:a.from,to:a.to,text:a.text}),i)for(var c in a)(k=c.match(/^spans_(\d+)$/))&&ac(i,Number(k[1]))> -1&&(bc(f)[c]=a[c],delete a[c])}}return d}function eW(e,a,b,f){if(!f)return new I(b||a,a);var c=e.anchor;if(b){var d=0>ax(a,c);d!=0>ax(b,c)?(c=a,a=b):d!=0>ax(a,b)&&(a=b)}return new I(c,a)}function eX(a,c,d,e,b){null==b&&(b=a.cm&&(a.cm.display.shift||a.extend)),e0(a,new s([eW(a.sel.primary(),c,d,b)],0),e)}function eY(a,d,e){for(var c=[],f=a.cm&&(a.cm.display.shift||a.extend),b=0;b<a.sel.ranges.length;b++)c[b]=eW(a.sel.ranges[b],d[b],null,f);var g=eA(a.cm,c,a.sel.primIndex);e0(a,g,e)}function eZ(a,c,d,e){var b=a.sel.ranges.slice(0);b[c]=d,e0(a,eA(a.cm,b,a.sel.primIndex),e)}function e$(a,b,c,d){e0(a,eB(b,c),d)}function e_(a,b,d){var c=a.history.done,e=bc(c);e&&e.ranges?(c[c.length-1]=b,e1(a,b,d)):e0(a,b,d)}function e0(c,n,k){var g,e,h,d,f,l,i,j,m,a,b;e1(c,n,k),g=c,e=c.sel,h=c.cm?c.cm.curOp.id:NaN,d=k,a=g.history,b=d&&d.origin,h==a.lastSelOp||b&&a.lastSelOrigin==b&&(a.lastModTime==a.lastSelTime&&a.lastOrigin==b||(f=g,l=b,i=bc(a.done),j=e,"*"==(m=l.charAt(0))||"+"==m&&i.ranges.length==j.ranges.length&&i.somethingSelected()==j.somethingSelected()&&new Date-f.history.lastSelTime<=(f.cm?f.cm.options.historyEventDelay:500)))?a.done[a.done.length-1]=e:eR(e,a.done),a.lastSelTime=+new Date,a.lastSelOrigin=b,a.lastSelOp=h,d&& !1!==d.clearRedo&&eP(a.undone)}function e1(a,e,d){if(bu(a,"beforeSelectionChange")||a.cm&&bu(a.cm,"beforeSelectionChange")){var b,f,g,c;e=(b=a,f=e,g=d,c={ranges:f.ranges,update:function(c){this.ranges=[];for(var a=0;a<c.length;a++)this.ranges[a]=new I(bS(b,c[a].anchor),bS(b,c[a].head))},origin:g&&g.origin},(aj(b,"beforeSelectionChange",b,c),b.cm&&aj(b.cm,"beforeSelectionChange",b.cm,c),c.ranges!=f.ranges)?eA(b.cm,c.ranges,c.ranges.length-1):f)}var h=d&&d.bias||(0>ax(e.primary().head,a.sel.primary().head)?-1:1);e2(a,e4(a,e,h,!0)),!(d&& !1===d.scroll)&&a.cm&&"nocursor"!=a.cm.getOption("readOnly")&&dY(a.cm)}function e2(a,b){b.equals(a.sel)||(a.sel=b,a.cm&&(a.cm.curOp.updateInput=1,a.cm.curOp.selectionChanged=!0,bt(a.cm)),cJ(a,"cursorActivity",a))}function e3(a){e2(a,e4(a,a.sel,null,!1))}function e4(d,a,g,h){for(var b,c=0;c<a.ranges.length;c++){var e=a.ranges[c],f=a.ranges.length==d.sel.ranges.length&&d.sel.ranges[c],i=e6(d,e.anchor,f&&f.anchor,g,h),j=e6(d,e.head,f&&f.head,g,h);(b||i!=e.anchor||j!=e.head)&&(b||(b=a.ranges.slice(0,c)),b[c]=new I(i,j))}return b?eA(d.cm,b,a.primIndex):a}function e5(g,a,n,c,j){var f=bF(g,a.line);if(f.markedSpans)for(var i=0;i<f.markedSpans.length;++i){var e=f.markedSpans[i],b=e.marker,k="selectLeft"in b?!b.selectLeft:b.inclusiveLeft,l="selectRight"in b?!b.selectRight:b.inclusiveRight;if((null==e.from||(k?e.from<=a.ch:e.from<a.ch))&&(null==e.to||(l?e.to>=a.ch:e.to>a.ch))){if(j&&(aj(b,"beforeCursorEnter"),b.explicitlyCleared)){if(f.markedSpans){--i;continue}break}if(!b.atomic)continue;if(n){var d=b.find(c<0?1:-1),m=void 0;if((c<0?l:k)&&(d=e7(g,d,-c,d&&d.line==a.line?f:null)),d&&d.line==a.line&&(m=ax(d,n))&&(c<0?m<0:m>0))return e5(g,d,a,c,j)}var h=b.find(c<0?-1:1);return(c<0?k:l)&&(h=e7(g,h,c,h.line==a.line?f:null)),h?e5(g,h,a,c,j):null}}return a}function e6(a,b,c,f,d){var g,e=f||1;return e5(a,b,c,e,d)|| !d&&e5(a,b,c,e,!0)||e5(a,b,c,-e,d)|| !d&&e5(a,b,c,-e,!0)||(a.cantEdit=!0,aw(a.first,0))}function e7(b,a,c,d){return c<0&&0==a.ch?a.line>b.first?bS(b,aw(a.line-1)):null:c>0&&a.ch==(d||bF(b,a.line)).text.length?a.line<b.first+b.size-1?aw(a.line+1,0):null:new aw(a.line,a.ch+c)}function aA(a){a.setSelection(aw(a.firstLine(),0),aw(a.lastLine()),a7)}function e8(b,c,d){var a={canceled:!1,from:c.from,to:c.to,text:c.text,origin:c.origin,cancel:function(){return a.canceled=!0}};return(d&&(a.update=function(c,d,e,f){c&&(a.from=bS(b,c)),d&&(a.to=bS(b,d)),e&&(a.text=e),void 0!==f&&(a.origin=f)}),aj(b,"beforeChange",b,a),b.cm&&aj(b.cm,"beforeChange",b.cm,a),a.canceled)?(b.cm&&(b.cm.curOp.updateInput=2),null):{from:a.from,to:a.to,text:a.text,origin:a.origin}}function e9(a,b,e){if(a.cm){if(!a.cm.curOp)return eh(a.cm,e9)(a,b,e);if(a.cm.state.suppressEdits)return}if(!(bu(a,"beforeChange")||a.cm&&bu(a.cm,"beforeChange"))||(b=e8(a,b,!0))){var d=b5&&!e&&function(m,i,j){var f=null;if(m.iter(i.line,j.line+1,function(a){if(a.markedSpans)for(var b=0;b<a.markedSpans.length;++b){var c=a.markedSpans[b].marker;c.readOnly&&(!f|| -1==ac(f,c))&&(f||(f=[])).push(c)}}),!f)return null;for(var c=[{from:i,to:j}],g=0;g<f.length;++g)for(var h=f[g],a=h.find(0),d=0;d<c.length;++d){var b=c[d];if(!(0>ax(b.to,a.from)||ax(b.from,a.to)>0)){var e=[d,1],k=ax(b.from,a.from),l=ax(b.to,a.to);!(k<0)&&(h.inclusiveLeft||k)||e.push({from:b.from,to:a.from}),!(l>0)&&(h.inclusiveRight||l)||e.push({from:a.to,to:b.to}),c.splice.apply(c,e),d+=e.length-3}}return c}(a,b.from,b.to);if(d)for(var c=d.length-1;c>=0;--c)fa(a,{from:d[c].from,to:d[c].to,text:c?[""]:b.text,origin:b.origin});else fa(a,b)}}function fa(b,a){if(1!=a.text.length||""!=a.text[0]||0!=ax(a.from,a.to)){var c=eD(b,a);eQ(b,a,c,b.cm?b.cm.curOp.id:NaN),fd(b,a,c,ca(b,a));var d=[];eK(b,function(b,c){c|| -1!=ac(d,b.history)||(fi(b.history,a),d.push(b.history)),fd(b,a,null,ca(b,a))})}}function fb(b,i,f){var j=b.cm&&b.cm.state.suppressEdits;if(!j||f){for(var a,c=b.history,k=b.sel,d="undo"==i?c.done:c.undone,g="undo"==i?c.undone:c.done,e=0;e<d.length&&(a=d[e],f?!a.ranges||a.equals(b.sel):a.ranges);e++);if(e!=d.length){for(c.lastOrigin=c.lastSelOrigin=null;;)if((a=d.pop()).ranges){if(eR(a,g),f&&!a.equals(b.sel)){e0(b,a,{clearRedo:!1});return}k=a}else if(j){d.push(a);return}else break;var m=[];eR(k,g),g.push({changes:m,generation:c.generation}),c.generation=a.generation|| ++c.maxGeneration;for(var o=bu(b,"beforeChange")||b.cm&&bu(b.cm,"beforeChange"),n=function(e){var c=a.changes[e];if(c.origin=i,o&&!e8(b,c,!1))return d.length=0,{};m.push(eO(b,c));var f=e?eD(b,c):bc(d);fd(b,c,f,eU(b,c)),!e&&b.cm&&b.cm.scrollIntoView({from:c.from,to:az(c)});var g=[];eK(b,function(a,b){b|| -1!=ac(g,a.history)||(fi(a.history,c),g.push(a.history)),fd(a,c,null,eU(a,c))})},h=a.changes.length-1;h>=0;--h){var l=n(h);if(l)return l.v}}}}function fc(a,b){if(0!=b&&(a.first+=b,a.sel=new s(bd(a.sel.ranges,function(a){return new I(aw(a.anchor.line+b,a.anchor.ch),aw(a.head.line+b,a.head.ch))}),a.sel.primIndex),a.cm)){dE(a.cm,a.first,a.first-b,b);for(var d=a.cm.display,c=d.viewFrom;c<d.viewTo;c++)dF(a.cm,c,"gutter")}}function fd(b,a,c,d){if(b.cm&&!b.cm.curOp)return eh(b.cm,fd)(b,a,c,d);if(a.to.line<b.first){fc(b,a.text.length-1-(a.to.line-a.from.line));return}if(!(a.from.line>b.lastLine())){if(a.from.line<b.first){var f=a.text.length-1-(b.first-a.from.line);fc(b,f),a={from:aw(b.first,0),to:aw(a.to.line+f,a.to.ch),text:[bc(a.text)],origin:a.origin}}var e=b.lastLine();a.to.line>e&&(a={from:a.from,to:aw(e,bF(b,e).text.length),text:[a.text[0]],origin:a.origin}),a.removed=bG(b,a.from,a.to),c||(c=eD(b,a)),b.cm?fe(b.cm,a,d):eJ(b,a,d),e1(b,c,a7),b.cantEdit&&e6(b,aw(b.firstLine(),0))&&(b.cantEdit=!1)}}function fe(a,b,j){var d=a.doc,m=a.display,c=b.from,e=b.to,k=!1,f=c.line;a.options.lineWrapping||(f=bJ(cm(bF(d,c.line))),d.iter(f,e.line+1,function(a){if(a==m.maxLine)return k=!0,!0})),d.sel.contains(b.from,b.to)> -1&&bt(a),eJ(d,b,j,dA(a)),!a.options.lineWrapping&&(d.iter(f,c.line+b.text.length,function(a){var b=cs(a);b>m.maxLineLength&&(m.maxLine=a,m.maxLineLength=b,m.maxLineChanged=!0,k=!1)}),k&&(a.curOp.updateMaxLine=!0)),function(a,c){if(a.modeFrontier=Math.min(a.modeFrontier,c),!(a.highlightFrontier<c-10)){for(var d=a.first,b=c-1;b>d;b--){var e=bF(a,b).stateAfter;if(e&&(!(e instanceof bV)||b+e.lookAhead<c)){d=b+1;break}}a.highlightFrontier=Math.min(a.highlightFrontier,d)}}(d,c.line),ei(a,400);var l=b.text.length-(e.line-c.line)-1;b.full?dE(a):c.line!=e.line||1!=b.text.length||eI(a.doc,b)?dE(a,c.line,e.line+1,l):dF(a,c.line,"text");var g=bu(a,"changes"),h=bu(a,"change");if(h||g){var i={from:c,to:e,text:b.text,removed:b.removed,origin:b.origin};h&&cJ(a,"change",a,i),g&&(a.curOp.changeObjs||(a.curOp.changeObjs=[])).push(i)}a.display.selForContextMenu=null}function ff(d,c,b,a,f){var e;a||(a=b),0>ax(a,b)&&(b=(e=[a,b])[0],a=e[1]),"string"==typeof c&&(c=d.splitLines(c)),e9(d,{from:b,to:a,text:c,origin:f})}function fg(a,b,c,d){c<a.line?a.line+=d:b<a.line&&(a.line=b,a.ch=0)}function fh(d,g,h,e){for(var c=0;c<d.length;++c){var a=d[c],j=!0;if(a.ranges){a.copied||((a=d[c]=a.deepCopy()).copied=!0);for(var f=0;f<a.ranges.length;f++)fg(a.ranges[f].anchor,g,h,e),fg(a.ranges[f].head,g,h,e);continue}for(var i=0;i<a.changes.length;++i){var b=a.changes[i];if(h<b.from.line)b.from=aw(b.from.line+e,b.from.ch),b.to=aw(b.to.line+e,b.to.ch);else if(g<=b.to.line){j=!1;break}}j||(d.splice(0,c+1),c=0)}}function fi(d,a){var b=a.from.line,c=a.to.line,e=a.text.length-(c-b)-1;fh(d.done,b,c,e),fh(d.undone,b,c,e)}function fj(b,a,e,f){var c=a,d=a;return("number"==typeof a?d=bF(b,bR(b,a)):c=bJ(a),null==c)?null:(f(d,c)&&b.cm&&dF(b.cm,c,e),d)}function aB(a){this.lines=a,this.parent=null;for(var c=0,b=0;b<a.length;++b)a[b].parent=this,c+=a[b].height;this.height=c}function S(a){this.children=a;for(var d=0,e=0,b=0;b<a.length;++b){var c=a[b];d+=c.chunkSize(),e+=c.height,c.parent=this}this.size=d,this.height=e,this.parent=null}I.prototype.from=function(){return bQ(this.anchor,this.head)},I.prototype.to=function(){return bP(this.anchor,this.head)},I.prototype.empty=function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch},aB.prototype={chunkSize:function(){return this.lines.length},removeInner:function(a,d){for(var b=a,e=a+d;b<e;++b){var c=this.lines[b];this.height-=c.height,cu(c),cJ(c,"delete")}this.lines.splice(a,d)},collapse:function(a){a.push.apply(a,this.lines)},insertInner:function(c,a,d){this.height+=d,this.lines=this.lines.slice(0,c).concat(a).concat(this.lines.slice(c));for(var b=0;b<a.length;++b)a[b].parent=this},iterN:function(a,b,c){for(var d=a+b;a<d;++a)if(c(this.lines[a]))return!0}},S.prototype={chunkSize:function(){return this.size},removeInner:function(a,c){this.size-=c;for(var d=0;d<this.children.length;++d){var b=this.children[d],e=b.chunkSize();if(a<e){var f=Math.min(c,e-a),h=b.height;if(b.removeInner(a,f),this.height-=h-b.height,e==f&&(this.children.splice(d--,1),b.parent=null),0==(c-=f))break;a=0}else a-=e}if(this.size-c<25&&(this.children.length>1||!(this.children[0]instanceof aB))){var g=[];this.collapse(g),this.children=[new aB(g)],this.children[0].parent=this}},collapse:function(b){for(var a=0;a<this.children.length;++a)this.children[a].collapse(b)},insertInner:function(c,f,g){this.size+=f.length,this.height+=g;for(var b=0;b<this.children.length;++b){var a=this.children[b],h=a.chunkSize();if(c<=h){if(a.insertInner(c,f,g),a.lines&&a.lines.length>50){for(var i=a.lines.length%25+25,d=i;d<a.lines.length;){var e=new aB(a.lines.slice(d,d+=25));a.height-=e.height,this.children.splice(++b,0,e),e.parent=this}a.lines=a.lines.slice(0,i),this.maybeSpill()}break}c-=h}},maybeSpill:function(){if(!(this.children.length<=10)){var a=this;do{var d=a.children.splice(a.children.length-5,5),b=new S(d);if(a.parent){a.size-=b.size,a.height-=b.height;var e=ac(a.parent.children,a);a.parent.children.splice(e+1,0,b)}else{var c=new S(a.children);c.parent=a,a.children=[c,b],a=c}b.parent=a.parent}while(a.children.length>10)a.parent.maybeSpill()}},iterN:function(a,d,g){for(var b=0;b<this.children.length;++b){var e=this.children[b],c=e.chunkSize();if(a<c){var f=Math.min(d,c-a);if(e.iterN(a,f,g))return!0;if(0==(d-=f))break;a=0}else a-=c}}};var y=function(c,d,a){if(a)for(var b in a)a.hasOwnProperty(b)&&(this[b]=a[b]);this.doc=c,this.node=d};function fk(a,b,c){cr(b)<(a.curOp&&a.curOp.scrollTop||a.doc.scrollTop)&&dX(a,c)}y.prototype.clear=function(){var b=this.doc.cm,a=this.line.widgets,c=this.line,e=bJ(c);if(null!=e&&a){for(var d=0;d<a.length;++d)a[d]==this&&a.splice(d--,1);a.length||(c.widgets=null);var f=cW(this);bI(c,Math.max(0,c.height-f)),b&&(eg(b,function(){fk(b,c,-f),dF(b,e,"widget")}),cJ(b,"lineWidgetCleared",b,this,e))}},y.prototype.changed=function(){var e=this,d=this.height,b=this.doc.cm,a=this.line;this.height=null;var c=cW(this)-d;c&&(cp(this.doc,a)||bI(a,a.height+c),b&&eg(b,function(){b.curOp.forceUpdate=!0,fk(b,a,c),cJ(b,"lineWidgetChanged",b,e,bJ(a))}))},o(y);var fl=0,n=function(a,b){this.lines=[],this.type=b,this.doc=a,this.id=++fl};function fm(b,c,d,e,g){if(e&&e.shared)return fn(b,c,d,e,g);if(b.cm&&!b.cm.curOp)return eh(b.cm,fm)(b,c,d,e,g);var a=new n(b,g),i=ax(c,d);if(e&&a6(e,a,!1),i>0||0==i&& !1!==a.clearWhenEmpty)return a;if(a.replacedWith&&(a.collapsed=!0,a.widgetNode=a2("span",[a.replacedWith],"CodeMirror-widget"),e.handleMouseEvents||a.widgetNode.setAttribute("cm-ignore-events","true"),e.insertLeft&&(a.widgetNode.insertLeft=!0)),a.collapsed){if(cl(b,c.line,c,d,a)||c.line!=d.line&&cl(b,d.line,c,d,a))throw new Error("Inserting collapsed marker partially overlapping an existing one");b6=!0}a.addToHistory&&eQ(b,{from:c,to:d,origin:"markText"},b.sel,NaN);var j,k=c.line,f=b.cm;if(b.iter(k,d.line+1,function(i){var e,g,l,h;f&&a.collapsed&&!f.options.lineWrapping&&cm(i)==f.display.maxLine&&(j=!0),a.collapsed&&k!=c.line&&bI(i,0),e=i,g=new b7(a,k==c.line?c.ch:null,k==d.line?d.ch:null),(h=(l=b.cm&&b.cm.curOp)&&window.WeakSet&&(l.markedSpans||(l.markedSpans=new WeakSet)))&&e.markedSpans&&h.has(e.markedSpans)?e.markedSpans.push(g):(e.markedSpans=e.markedSpans?e.markedSpans.concat([g]):[g],h&&h.add(e.markedSpans)),g.marker.attachLine(e),++k}),a.collapsed&&b.iter(c.line,d.line+1,function(a){cp(b,a)&&bI(a,0)}),a.clearOnEnter&&ah(a,"beforeCursorEnter",function(){return a.clear()}),a.readOnly&&(b5=!0,(b.history.done.length||b.history.undone.length)&&b.clearHistory()),a.collapsed&&(a.id=++fl,a.atomic=!0),f){if(j&&(f.curOp.updateMaxLine=!0),a.collapsed)dE(f,c.line,d.line+1);else if(a.className||a.startStyle||a.endStyle||a.css||a.attributes||a.title)for(var h=c.line;h<=d.line;h++)dF(f,h,"text");a.atomic&&e3(f.doc),cJ(f,"markerAdded",f,a)}return a}n.prototype.clear=function(){if(!this.explicitlyCleared){var a=this.doc.cm,i=a&&!a.curOp;if(i&&d8(a),bu(this,"clear")){var e=this.find();e&&cJ(this,"clear",e.from,e.to)}for(var c=null,f=null,g=0;g<this.lines.length;++g){var b=this.lines[g],d=b8(b.markedSpans,this);a&&!this.collapsed?dF(a,bJ(b),"text"):a&&(null!=d.to&&(f=bJ(b)),null!=d.from&&(c=bJ(b))),b.markedSpans=b9(b.markedSpans,d),null==d.from&&this.collapsed&&!cp(this.doc,b)&&a&&bI(b,dw(a.display))}if(a&&this.collapsed&&!a.options.lineWrapping)for(var h=0;h<this.lines.length;++h){var j=cm(this.lines[h]),k=cs(j);k>a.display.maxLineLength&&(a.display.maxLine=j,a.display.maxLineLength=k,a.display.maxLineChanged=!0)}null!=c&&a&&this.collapsed&&dE(a,c,f+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,a&&e3(a.doc)),a&&cJ(a,"markerCleared",a,this,c,f),i&&d9(a),this.parent&&this.parent.clear()}},n.prototype.find=function(b,g){null==b&&"bookmark"==this.type&&(b=1);for(var c,e,f=0;f<this.lines.length;++f){var a=this.lines[f],d=b8(a.markedSpans,this);if(null!=d.from&&(c=aw(g?a:bJ(a),d.from),-1==b))return c;if(null!=d.to&&(e=aw(g?a:bJ(a),d.to),1==b))return e}return c&&{from:c,to:e}},n.prototype.changed=function(){var c=this,b=this.find(-1,!0),d=this,a=this.doc.cm;b&&a&&eg(a,function(){var e=b.line,h=bJ(b.line),f=c4(a,h);if(f&&(dc(f),a.curOp.selectionChanged=a.curOp.forceUpdate=!0),a.curOp.updateMaxLine=!0,!cp(d.doc,e)&&null!=d.height){var i=d.height;d.height=null;var g=cW(d)-i;g&&bI(e,e.height+g)}cJ(a,"markerChanged",a,c)})},n.prototype.attachLine=function(b){if(!this.lines.length&&this.doc.cm){var a=this.doc.cm.curOp;a.maybeHiddenMarkers&& -1!=ac(a.maybeHiddenMarkers,this)||(a.maybeUnhiddenMarkers||(a.maybeUnhiddenMarkers=[])).push(this)}this.lines.push(b)},n.prototype.detachLine=function(b){if(this.lines.splice(ac(this.lines,b),1),!this.lines.length&&this.doc.cm){var a=this.doc.cm.curOp;(a.maybeHiddenMarkers||(a.maybeHiddenMarkers=[])).push(this)}},o(n);var z=function(a,c){this.markers=a,this.primary=c;for(var b=0;b<a.length;++b)a[b].parent=this};function fn(b,d,e,a,f){(a=a6(a)).shared=!1;var c=[fm(b,d,e,a,f)],g=c[0],h=a.widgetNode;return eK(b,function(b){h&&(a.widgetNode=h.cloneNode(!0)),c.push(fm(b,bS(b,d),bS(b,e),a,f));for(var i=0;i<b.linked.length;++i)if(b.linked[i].isParent)return;g=bc(c)}),new z(c,g)}function fo(a){return a.findMarks(aw(a.first,0),a.clipPos(aw(a.lastLine())),function(a){return a.parent})}function fp(b){for(var a=0;a<b.length;a++)!function(e){var a=b[e],f=[a.primary.doc];eK(a.primary.doc,function(a){return f.push(a)});for(var c=0;c<a.markers.length;c++){var d=a.markers[c];-1==ac(f,d.doc)&&(d.parent=null,a.markers.splice(c--,1))}}(a)}z.prototype.clear=function(){if(!this.explicitlyCleared){this.explicitlyCleared=!0;for(var a=0;a<this.markers.length;++a)this.markers[a].clear();cJ(this,"clear")}},z.prototype.find=function(a,b){return this.primary.find(a,b)},o(z);var fq=0,i=function(b,d,a,e,f){if(!(this instanceof i))return new i(b,d,a,e,f);null==a&&(a=0),S.call(this,[new aB([new H("",null)])]),this.first=a,this.scrollTop=this.scrollLeft=0,this.cantEdit=!1,this.cleanGeneration=1,this.modeFrontier=this.highlightFrontier=a;var c=aw(a,0);this.sel=eB(c),this.history=new eN(null),this.id=++fq,this.modeOption=d,this.lineSep=e,this.direction="rtl"==f?"rtl":"ltr",this.extend=!1,"string"==typeof b&&(b=this.splitLines(b)),eJ(this,{from:c,to:c,text:b}),e0(this,eB(c),a7)};i.prototype=af(S.prototype,{constructor:i,iter:function(a,c,b){b?this.iterN(a-this.first,c-a,b):this.iterN(this.first,this.first+this.size,a)},insert:function(d,a){for(var c=0,b=0;b<a.length;++b)c+=a[b].height;this.insertInner(d-this.first,a,c)},remove:function(a,b){this.removeInner(a-this.first,b)},getValue:function(a){var b=bH(this,this.first,this.first+this.size);return!1===a?b:b.join(a||this.lineSeparator())},setValue:d(function(c){var a=aw(this.first,0),b=this.first+this.size-1;e9(this,{from:a,to:aw(b,bF(this,b).text.length),text:this.splitLines(c),origin:"setValue",full:!0},!0),this.cm&&dZ(this.cm,0,0),e0(this,eB(a),a7)}),replaceRange:function(c,a,b,d){a=bS(this,a),b=b?bS(this,b):a,ff(this,c,a,b,d)},getRange:function(c,d,a){var b=bG(this,bS(this,c),bS(this,d));return!1===a?b:""===a?b.join(""):b.join(a||this.lineSeparator())},getLine:function(b){var a=this.getLineHandle(b);return a&&a.text},getLineHandle:function(a){if(bL(this,a))return bF(this,a)},getLineNumber:function(a){return bJ(a)},getLineHandleVisualStart:function(a){return"number"==typeof a&&(a=bF(this,a)),cm(a)},lineCount:function(){return this.size},firstLine:function(){return this.first},lastLine:function(){return this.first+this.size-1},clipPos:function(a){return bS(this,a)},getCursor:function(a){var b=this.sel.primary();return null==a||"head"==a?b.head:"anchor"==a?b.anchor:"end"==a||"to"==a|| !1===a?b.to():b.from()},listSelections:function(){return this.sel.ranges},somethingSelected:function(){return this.sel.somethingSelected()},setCursor:d(function(a,b,c){e$(this,bS(this,"number"==typeof a?aw(a,b||0):a),null,c)}),setSelection:d(function(a,b,c){e$(this,bS(this,a),bS(this,b||a),c)}),extendSelection:d(function(b,a,c){eX(this,bS(this,b),a&&bS(this,a),c)}),extendSelections:d(function(a,b){eY(this,bU(this,a),b)}),extendSelectionsBy:d(function(a,b){eY(this,bU(this,bd(this.sel.ranges,a)),b)}),setSelections:d(function(a,c,e){if(a.length){for(var d=[],b=0;b<a.length;b++)d[b]=new I(bS(this,a[b].anchor),bS(this,a[b].head||a[b].anchor));null==c&&(c=Math.min(a.length-1,this.sel.primIndex)),e0(this,eA(this.cm,d,c),e)}}),addSelection:d(function(b,c,d){var a=this.sel.ranges.slice(0);a.push(new I(bS(this,b),bS(this,c||b))),e0(this,eA(this.cm,a,a.length-1),d)}),getSelection:function(d){for(var a,c=this.sel.ranges,b=0;b<c.length;b++){var e=bG(this,c[b].from(),c[b].to());a=a?a.concat(e):e}return!1===d?a:a.join(d||this.lineSeparator())},getSelections:function(d){for(var e=[],b=this.sel.ranges,a=0;a<b.length;a++){var c=bG(this,b[a].from(),b[a].to());!1!==d&&(c=c.join(d||this.lineSeparator())),e[a]=c}return e},replaceSelection:function(c,d,e){for(var b=[],a=0;a<this.sel.ranges.length;a++)b[a]=c;this.replaceSelections(b,d,e||"+input")},replaceSelections:d(function(h,c,i){for(var b=[],e=this.sel,a=0;a<e.ranges.length;a++){var f=e.ranges[a];b[a]={from:f.from(),to:f.to(),text:this.splitLines(h[a]),origin:i}}for(var g=c&&"end"!=c&&eF(this,b,c),d=b.length-1;d>=0;d--)e9(this,b[d]);g?e_(this,g):this.cm&&dY(this.cm)}),undo:d(function(){fb(this,"undo")}),redo:d(function(){fb(this,"redo")}),undoSelection:d(function(){fb(this,"undo",!0)}),redoSelection:d(function(){fb(this,"redo",!0)}),setExtending:function(a){this.extend=a},getExtending:function(){return this.extend},historySize:function(){for(var a=this.history,d=0,e=0,b=0;b<a.done.length;b++)!a.done[b].ranges&& ++d;for(var c=0;c<a.undone.length;c++)!a.undone[c].ranges&& ++e;return{undo:d,redo:e}},clearHistory:function(){var a=this;this.history=new eN(this.history),eK(this,function(b){return b.history=a.history},!0)},markClean:function(){this.cleanGeneration=this.changeGeneration(!0)},changeGeneration:function(a){return a&&(this.history.lastOp=this.history.lastSelOp=this.history.lastOrigin=null),this.history.generation},isClean:function(a){return this.history.generation==(a||this.cleanGeneration)},getHistory:function(){return{done:eV(this.history.done),undone:eV(this.history.undone)}},setHistory:function(a){var b=this.history=new eN(this.history);b.done=eV(a.done.slice(0),null,!0),b.undone=eV(a.undone.slice(0),null,!0)},setGutterMarker:d(function(a,b,c){return fj(this,a,"gutter",function(a){var d=a.gutterMarkers||(a.gutterMarkers={});return d[b]=c,!c&&bh(d)&&(a.gutterMarkers=null),!0})}),clearGutter:d(function(a){var b=this;this.iter(function(c){c.gutterMarkers&&c.gutterMarkers[a]&&fj(b,c,"gutter",function(){return c.gutterMarkers[a]=null,bh(c.gutterMarkers)&&(c.gutterMarkers=null),!0})})}),lineInfo:function(a){var b;if("number"==typeof a){if(!bL(this,a)||(b=a,a=bF(this,a),!a))return null}else if(null==(b=bJ(a)))return null;return{line:b,handle:a,text:a.text,gutterMarkers:a.gutterMarkers,textClass:a.textClass,bgClass:a.bgClass,wrapClass:a.wrapClass,widgets:a.widgets}},addLineClass:d(function(a,b,c){return fj(this,a,"gutter"==b?"gutter":"class",function(a){var d="text"==b?"textClass":"background"==b?"bgClass":"gutter"==b?"gutterClass":"wrapClass";if(a[d]){if(a_(c).test(a[d]))return!1;a[d]+=" "+c}else a[d]=c;return!0})}),removeLineClass:d(function(a,b,c){return fj(this,a,"gutter"==b?"gutter":"class",function(e){var f="text"==b?"textClass":"background"==b?"bgClass":"gutter"==b?"gutterClass":"wrapClass",a=e[f];if(!a)return!1;if(null==c)e[f]=null;else{var d=a.match(a_(c));if(!d)return!1;var g=d.index+d[0].length;e[f]=a.slice(0,d.index)+(d.index&&g!=a.length?" ":"")+a.slice(g)||null}return!0})}),addLineWidget:d(function(g,h,i){var c,b,e,f,d,a;return c=this,b=g,e=h,f=i,d=new y(c,e,f),a=c.cm,a&&d.noHScroll&&(a.display.alignWidgets=!0),fj(c,b,"widget",function(b){var e=b.widgets||(b.widgets=[]);if(null==d.insertAt?e.push(d):e.splice(Math.min(e.length,Math.max(0,d.insertAt)),0,d),d.line=b,a&&!cp(c,b)){var f=cr(b)<c.scrollTop;bI(b,b.height+cW(d)),f&&dX(a,d.height),a.curOp.forceUpdate=!0}return!0}),a&&cJ(a,"lineWidgetAdded",a,d,"number"==typeof b?b:bJ(b)),d}),removeLineWidget:function(a){a.clear()},markText:function(b,c,a){return fm(this,bS(this,b),bS(this,c),a,a&&a.type||"range")},setBookmark:function(b,a){var c={replacedWith:a&&(null==a.nodeType?a.widget:a),insertLeft:a&&a.insertLeft,clearWhenEmpty:!1,shared:a&&a.shared,handleMouseEvents:a&&a.handleMouseEvents};return b=bS(this,b),fm(this,b,b,c,"bookmark")},findMarksAt:function(b){b=bS(this,b);var e=[],c=bF(this,b.line).markedSpans;if(c)for(var d=0;d<c.length;++d){var a=c[d];(null==a.from||a.from<=b.ch)&&(null==a.to||a.to>=b.ch)&&e.push(a.marker.parent||a.marker)}return e},findMarks:function(a,b,d){a=bS(this,a),b=bS(this,b);var c=[],e=a.line;return this.iter(a.line,b.line+1,function(i){var g=i.markedSpans;if(g)for(var h=0;h<g.length;h++){var f=g[h];!(null!=f.to&&e==a.line&&a.ch>=f.to||null==f.from&&e!=a.line||null!=f.from&&e==b.line&&f.from>=b.ch)&&(!d||d(f.marker))&&c.push(f.marker.parent||f.marker)}++e}),c},getAllMarks:function(){var a=[];return this.iter(function(d){var b=d.markedSpans;if(b)for(var c=0;c<b.length;++c)null!=b[c].from&&a.push(b[c].marker)}),a},posFromIndex:function(c){var a,b=this.first,d=this.lineSeparator().length;return this.iter(function(f){var e=f.text.length+d;if(e>c)return a=c,!0;c-=e,++b}),bS(this,aw(b,a))},indexFromPos:function(a){var b=(a=bS(this,a)).ch;if(a.line<this.first||a.ch<0)return 0;var c=this.lineSeparator().length;return this.iter(this.first,a.line,function(a){b+=a.text.length+c}),b},copy:function(b){var a=new i(bH(this,this.first,this.first+this.size),this.modeOption,this.first,this.lineSep,this.direction);return a.scrollTop=this.scrollTop,a.scrollLeft=this.scrollLeft,a.sel=this.sel,a.extend=!1,b&&(a.history.undoDepth=this.history.undoDepth,a.setHistory(this.getHistory())),a},linkedDoc:function(a){a||(a={});var c=this.first,d=this.first+this.size;null!=a.from&&a.from>c&&(c=a.from),null!=a.to&&a.to<d&&(d=a.to);var b=new i(bH(this,c,d),a.mode||this.modeOption,c,this.lineSep,this.direction);return a.sharedHist&&(b.history=this.history),(this.linked||(this.linked=[])).push({doc:b,sharedHist:a.sharedHist}),b.linked=[{doc:this,isParent:!0,sharedHist:a.sharedHist}],function(b,d){for(var c=0;c<d.length;c++){var a=d[c],e=a.find(),f=b.clipPos(e.from),g=b.clipPos(e.to);if(ax(f,g)){var h=fm(b,f,g,a.primary,a.primary.type);a.markers.push(h),h.parent=a}}}(b,fo(this)),b},unlinkDoc:function(a){if(a instanceof f&&(a=a.doc),this.linked){for(var b=0;b<this.linked.length;++b)if(this.linked[b].doc==a){this.linked.splice(b,1),a.unlinkDoc(this),fp(fo(this));break}}if(a.history==this.history){var c=[a.id];eK(a,function(a){return c.push(a.id)},!0),a.history=new eN(null),a.history.done=eV(this.history.done,c),a.history.undone=eV(this.history.undone,c)}},iterLinkedDocs:function(a){eK(this,a)},getMode:function(){return this.mode},getEditor:function(){return this.cm},splitLines:function(a){return this.lineSep?a.split(this.lineSep):an(a)},lineSeparator:function(){return this.lineSep||"\n"},setDirection:d(function(a){if("rtl"!=a&&(a="ltr"),a!=this.direction&&(this.direction=a,this.iter(function(a){return a.order=null}),this.cm)){var b;eg(b=this.cm,function(){eM(b),dE(b)})}})}),i.prototype.eachLine=i.prototype.iter;var fr=0;function fs(b){var a=this;if(ft(a),!(bs(a,b)||cX(a.display,b))){ak(b),w&&(fr=+new Date);var e=dC(a,b,!0),c=b.dataTransfer.files;if(!(!e||a.isReadOnly())){if(c&&c.length&&window.FileReader&&window.File)for(var i=c.length,k=Array(i),l=0,m=function(){++l==i&&eh(a,function(){var b={from:e=bS(a.doc,e),to:e,text:a.doc.splitLines(k.filter(function(a){return null!=a}).join(a.doc.lineSeparator())),origin:"paste"};e9(a.doc,b),e_(a.doc,eB(bS(a.doc,e),bS(a.doc,az(b))))})()},j=function(c,d){if(a.options.allowDropFileTypes&& -1==ac(a.options.allowDropFileTypes,c.type)){m();return}var b=new FileReader;b.onerror=function(){return m()},b.onload=function(){var a=b.result;if(/[\x00-\x08\x0e-\x1f]{2}/.test(a)){m();return}k[d]=a,m()},b.readAsText(c)},f=0;f<c.length;f++)j(c[f],f);else{if(a.state.draggingText&&a.doc.sel.contains(e)> -1){a.state.draggingText(b),setTimeout(function(){return a.display.input.focus()},20);return}try{var d,h=b.dataTransfer.getData("Text");if(h){if(a.state.draggingText&&!a.state.draggingText.copy&&(d=a.listSelections()),e1(a.doc,eB(e,e)),d)for(var g=0;g<d.length;++g)ff(a.doc,"",d[g].anchor,d[g].head,"drag");a.replaceSelection(h,"around","paste"),a.display.input.focus()}}catch(n){}}}}}function ft(a){a.display.dragCursor&&(a.display.lineSpace.removeChild(a.display.dragCursor),a.display.dragCursor=null)}function fu(e){if(document.getElementsByClassName){for(var c=document.getElementsByClassName("CodeMirror"),a=[],b=0;b<c.length;b++){var d=c[b].CodeMirror;d&&a.push(d)}a.length&&a[0].operation(function(){for(var b=0;b<a.length;b++)e(a[b])})}}var fv=!1;function fw(){var a;ah(window,"resize",function(){null==a&&(a=setTimeout(function(){a=null,fu(fx)},100))}),ah(window,"blur",function(){return fu(dS)})}function fx(b){var a=b.display;a.cachedCharWidth=a.cachedTextHeight=a.cachedPaddingH=null,a.scrollbarsClipped=!1,b.setSize()}for(var p={3:"Pause",8:"Backspace",9:"Tab",13:"Enter",16:"Shift",17:"Ctrl",18:"Alt",19:"Pause",20:"CapsLock",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"PrintScrn",45:"Insert",46:"Delete",59:";",61:"=",91:"Mod",92:"Mod",93:"Mod",106:"*",107:"=",109:"-",110:".",111:"/",145:"ScrollLock",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",224:"Mod",63232:"Up",63233:"Down",63234:"Left",63235:"Right",63272:"Delete",63273:"Home",63275:"End",63276:"PageUp",63277:"PageDown",63302:"Insert"},t=0;t<10;t++)p[t+48]=p[t+96]=String(t);for(var A=65;A<=90;A++)p[A]=String.fromCharCode(A);for(var u=1;u<=12;u++)p[u+111]=p[u+63235]="F"+u;var j={};function fy(a){var e,f,g,h,c=a.split(/-(?!$)/);a=c[c.length-1];for(var d=0;d<c.length-1;d++){var b=c[d];if(/^(cmd|meta|m)$/i.test(b))h=!0;else if(/^a(lt)?$/i.test(b))e=!0;else if(/^(c|ctrl|control)$/i.test(b))f=!0;else if(/^s(hift)?$/i.test(b))g=!0;else throw new Error("Unrecognized modifier name: "+b)}return e&&(a="Alt-"+a),f&&(a="Ctrl-"+a),h&&(a="Cmd-"+a),g&&(a="Shift-"+a),a}function aC(b,a,d,e){var c=(a=fA(a)).call?a.call(b,e):a[b];if(!1===c)return"nothing";if("..."===c)return"multi";if(null!=c&&d(c))return"handled";if(a.fallthrough){if("[object Array]"!=Object.prototype.toString.call(a.fallthrough))return aC(b,a.fallthrough,d,e);for(var f=0;f<a.fallthrough.length;f++){var g=aC(b,a.fallthrough[f],d,e);if(g)return g}}}function aD(b){var a="string"==typeof b?b:p[b.keyCode];return"Ctrl"==a||"Alt"==a||"Shift"==a||"Mod"==a}function fz(a,b,d){var c=a;return b.altKey&&"Alt"!=c&&(a="Alt-"+a),(aZ?b.metaKey:b.ctrlKey)&&"Ctrl"!=c&&(a="Ctrl-"+a),(aZ?b.ctrlKey:b.metaKey)&&"Mod"!=c&&(a="Cmd-"+a),!d&&b.shiftKey&&"Shift"!=c&&(a="Shift-"+a),a}function aE(a,c){if(D&&34==a.keyCode&&a.char)return!1;var b=p[a.keyCode];return null!=b&&!a.altGraphKey&&(3==a.keyCode&&a.code&&(b=a.code),fz(b,a,c))}function fA(a){return"string"==typeof a?j[a]:a}function fB(d,g){for(var e=d.doc.sel.ranges,a=[],c=0;c<e.length;c++){for(var b=g(e[c]);a.length&&0>=ax(b.from,bc(a).to);){var f=a.pop();if(0>ax(f.from,b.from)){b.from=f.from;break}}a.push(b)}eg(d,function(){for(var b=a.length-1;b>=0;b--)ff(d.doc,"",a[b].from,a[b].to,"+delete");dY(d)})}function fC(b,d,c){var a=bk(b.text,d+c,c);return a<0||a>b.text.length?null:a}function fD(d,a,b){var c=fC(d,a.ch,b);return null==c?null:new aw(a.line,c,b<0?"after":"before")}function fE(i,d,e,g,a){if(i){"rtl"==d.doc.direction&&(a=-a);var f=bp(e,d.doc.direction);if(f){var b,c=a<0?bc(f):f[0],h=a<0==(1==c.level)?"after":"before";if(c.level>0||"rtl"==d.doc.direction){var j=c5(d,e),k=c6(d,j,b=a<0?e.text.length-1:0).top;b=bl(function(a){return c6(d,j,a).top==k},a<0==(1==c.level)?c.from:c.to-1,b),"before"==h&&(b=fC(e,b,1))}else b=a<0?c.to:c.from;return new aw(g,b,h)}}return new aw(g,a<0?e.text.length:0,a<0?"before":"after")}j.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharAfter",Backspace:"delCharBefore","Shift-Backspace":"delCharBefore",Tab:"defaultTab","Shift-Tab":"indentAuto",Enter:"newlineAndIndent",Insert:"toggleOverwrite",Esc:"singleSelection"},j.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Up":"goLineUp","Ctrl-Down":"goLineDown","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll","Ctrl-[":"indentLess","Ctrl-]":"indentMore","Ctrl-U":"undoSelection","Shift-Ctrl-U":"redoSelection","Alt-U":"redoSelection",fallthrough:"basic"},j.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageDown","Shift-Ctrl-V":"goPageUp","Ctrl-D":"delCharAfter","Ctrl-H":"delCharBefore","Alt-Backspace":"delWordBefore","Ctrl-K":"killLine","Ctrl-T":"transposeChars","Ctrl-O":"openLine"},j.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Home":"goDocStart","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineLeft","Cmd-Right":"goLineRight","Alt-Backspace":"delGroupBefore","Ctrl-Alt-Backspace":"delGroupAfter","Alt-Delete":"delGroupAfter","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delWrappedLineLeft","Cmd-Delete":"delWrappedLineRight","Cmd-U":"undoSelection","Shift-Cmd-U":"redoSelection","Ctrl-Up":"goDocStart","Ctrl-Down":"goDocEnd",fallthrough:["basic","emacsy"]},j.default=P?j.macDefault:j.pcDefault;var aF={selectAll:aA,singleSelection:function(a){return a.setSelection(a.getCursor("anchor"),a.getCursor("head"),a7)},killLine:function(a){return fB(a,function(b){if(!b.empty())return{from:b.from(),to:b.to()};var c=bF(a.doc,b.head.line).text.length;return b.head.ch==c&&b.head.line<a.lastLine()?{from:b.head,to:aw(b.head.line+1,0)}:{from:b.head,to:aw(b.head.line,c)}})},deleteLine:function(a){return fB(a,function(b){return{from:aw(b.from().line,0),to:bS(a.doc,aw(b.to().line+1,0))}})},delLineLeft:function(a){return fB(a,function(a){return{from:aw(a.from().line,0),to:a.from()}})},delWrappedLineLeft:function(a){return fB(a,function(b){var c=a.charCoords(b.head,"div").top+5,d=a.coordsChar({left:0,top:c},"div");return{from:d,to:b.from()}})},delWrappedLineRight:function(a){return fB(a,function(b){var c=a.charCoords(b.head,"div").top+5,d=a.coordsChar({left:a.display.lineDiv.offsetWidth+100,top:c},"div");return{from:b.from(),to:d}})},undo:function(a){return a.undo()},redo:function(a){return a.redo()},undoSelection:function(a){return a.undoSelection()},redoSelection:function(a){return a.redoSelection()},goDocStart:function(a){return a.extendSelection(aw(a.firstLine(),0))},goDocEnd:function(a){return a.extendSelection(aw(a.lastLine()))},goLineStart:function(a){return a.extendSelectionsBy(function(b){return fF(a,b.head.line)},{origin:"+move",bias:1})},goLineStartSmart:function(a){return a.extendSelectionsBy(function(b){return fH(a,b.head)},{origin:"+move",bias:1})},goLineEnd:function(a){return a.extendSelectionsBy(function(b){return fG(a,b.head.line)},{origin:"+move",bias:-1})},goLineRight:function(a){return a.extendSelectionsBy(function(b){var c=a.cursorCoords(b.head,"div").top+5;return a.coordsChar({left:a.display.lineDiv.offsetWidth+100,top:c},"div")},a9)},goLineLeft:function(a){return a.extendSelectionsBy(function(b){var c=a.cursorCoords(b.head,"div").top+5;return a.coordsChar({left:0,top:c},"div")},a9)},goLineLeftSmart:function(a){return a.extendSelectionsBy(function(c){var d=a.cursorCoords(c.head,"div").top+5,b=a.coordsChar({left:0,top:d},"div");return b.ch<a.getLine(b.line).search(/\S/)?fH(a,c.head):b},a9)},goLineUp:function(a){return a.moveV(-1,"line")},goLineDown:function(a){return a.moveV(1,"line")},goPageUp:function(a){return a.moveV(-1,"page")},goPageDown:function(a){return a.moveV(1,"page")},goCharLeft:function(a){return a.moveH(-1,"char")},goCharRight:function(a){return a.moveH(1,"char")},goColumnLeft:function(a){return a.moveH(-1,"column")},goColumnRight:function(a){return a.moveH(1,"column")},goWordLeft:function(a){return a.moveH(-1,"word")},goGroupRight:function(a){return a.moveH(1,"group")},goGroupLeft:function(a){return a.moveH(-1,"group")},goWordRight:function(a){return a.moveH(1,"word")},delCharBefore:function(a){return a.deleteH(-1,"codepoint")},delCharAfter:function(a){return a.deleteH(1,"char")},delWordBefore:function(a){return a.deleteH(-1,"word")},delWordAfter:function(a){return a.deleteH(1,"word")},delGroupBefore:function(a){return a.deleteH(-1,"group")},delGroupAfter:function(a){return a.deleteH(1,"group")},indentAuto:function(a){return a.indentSelection("smart")},indentMore:function(a){return a.indentSelection("add")},indentLess:function(a){return a.indentSelection("subtract")},insertTab:function(a){return a.replaceSelection(" ")},insertSoftTab:function(a){for(var d=[],e=a.listSelections(),b=a.options.tabSize,c=0;c<e.length;c++){var f=e[c].from(),g=ab(a.getLine(f.line),f.ch,b);d.push(bb(b-g%b))}a.replaceSelections(d)},defaultTab:function(a){a.somethingSelected()?a.indentSelection("add"):a.execCommand("insertTab")},transposeChars:function(a){return eg(a,function(){for(var f=a.listSelections(),g=[],d=0;d<f.length;d++)if(f[d].empty()){var b=f[d].head,c=bF(a.doc,b.line).text;if(c){if(b.ch==c.length&&(b=new aw(b.line,b.ch-1)),b.ch>0)b=new aw(b.line,b.ch+1),a.replaceRange(c.charAt(b.ch-1)+c.charAt(b.ch-2),aw(b.line,b.ch-2),b,"+transpose");else if(b.line>a.doc.first){var e=bF(a.doc,b.line-1).text;e&&(b=new aw(b.line,1),a.replaceRange(c.charAt(0)+a.doc.lineSeparator()+e.charAt(e.length-1),aw(b.line-1,e.length-1),b,"+transpose"))}}g.push(new I(b,b))}a.setSelections(g)})},newlineAndIndent:function(a){return eg(a,function(){for(var b=a.listSelections(),c=b.length-1;c>=0;c--)a.replaceRange(a.doc.lineSeparator(),b[c].anchor,b[c].head,"+input");b=a.listSelections();for(var d=0;d<b.length;d++)a.indentLine(b[d].from().line,null,!0);dY(a)})},openLine:function(a){return a.replaceSelection("\n","start")},toggleOverwrite:function(a){return a.toggleOverwrite()}};function fF(c,a){var d=bF(c.doc,a),b=cm(d);return b!=d&&(a=bJ(b)),fE(!0,c,b,a,1)}function fG(c,a){var b=bF(c.doc,a),d=function(a){for(var b;b=cj(a);)a=b.find(1,!0).line;return a}(b);return d!=b&&(a=bJ(d)),fE(!0,c,b,a,-1)}function fH(c,b){var a=fF(c,b.line),d=bF(c.doc,a.line),e=bp(d,c.doc.direction);if(!e||0==e[0].level){var f=Math.max(a.ch,d.text.search(/\S/)),g=b.line==a.line&&b.ch<=f&&b.ch;return aw(a.line,g?0:f,a.sticky)}return a}function fI(a,b,d){if("string"==typeof b&&!(b=aF[b]))return!1;a.display.input.ensurePolled();var e=a.display.shift,c=!1;try{a.isReadOnly()&&(a.state.suppressEdits=!0),d&&(a.display.shift=!1),c=b(a)!=ad}finally{a.display.shift=e,a.state.suppressEdits=!1}return c}var fJ=new F;function fK(a,b,c,d){var e=a.state.keySeq;if(e){if(aD(b))return"handled";if(/\'$/.test(b)?a.state.keySeq=null:fJ.set(50,function(){a.state.keySeq==e&&(a.state.keySeq=null,a.display.input.reset())}),fL(a,e+" "+b,c,d))return!0}return fL(a,b,c,d)}function fL(a,c,d,e){var b=function(a,b,c){for(var d=0;d<a.state.keyMaps.length;d++){var e=aC(b,a.state.keyMaps[d],c,a);if(e)return e}return a.options.extraKeys&&aC(b,a.options.extraKeys,c,a)||aC(b,a.options.keyMap,c,a)}(a,c,e);return"multi"==b&&(a.state.keySeq=c),"handled"==b&&cJ(a,"keyHandled",a,c,d),("handled"==b||"multi"==b)&&(ak(d),dO(a)),!!b}function fM(b,a){var c=aE(a,!0);return!!c&&(a.shiftKey&&!b.state.keySeq?fK(b,"Shift-"+c,a,function(a){return fI(b,a,!0)})||fK(b,c,a,function(a){if("string"==typeof a?/^go[A-Z]/.test(a):a.motion)return fI(b,a)}):fK(b,c,a,function(a){return fI(b,a)}))}var fN=null;function aG(a){var b=this;if((!a.target||a.target==b.display.input.getField())&&(b.curOp.focus=a3(),!bs(b,a))){w&&W<11&&27==a.keyCode&&(a.returnValue=!1);var c=a.keyCode;b.display.shift=16==c||a.shiftKey;var d=fM(b,a);D&&(fN=d?c:null,!d&&88==c&&!bC&&(P?a.metaKey:a.ctrlKey)&&b.replaceSelection("",null,"cut")),K&&!P&&!d&&46==c&&a.shiftKey&&!a.ctrlKey&&document.execCommand&&document.execCommand("cut"),18!=c||/\bCodeMirror-crosshair\b/.test(b.display.lineDiv.className)||fO(b)}}function fO(b){var c=b.display.lineDiv;function a(b){18!=b.keyCode&&b.altKey||(Z(c,"CodeMirror-crosshair"),ai(document,"keyup",a),ai(document,"mouseover",a))}aa(c,"CodeMirror-crosshair"),ah(document,"keyup",a),ah(document,"mouseover",a)}function aH(a){16==a.keyCode&&(this.doc.sel.shift=!1),bs(this,a)}function aI(a){if(!(a.target&&a.target!=this.display.input.getField()||cX(this.display,a)||bs(this,a)||a.ctrlKey&&!a.altKey||P&&a.metaKey)){var b,f,g,c=a.keyCode,d=a.charCode;if(D&&c==fN){fN=null,ak(a);return}if(!(D&&(!a.which||a.which<10)&&fM(this,a))){var e=String.fromCharCode(null==d?c:d);"\b"!=e&&(b=this,fK(b,"'"+e+"'",f=a,function(a){return fI(b,a,!0)})||this.display.input.onKeyPress(a))}}}var aJ=function(a,b,c){this.time=a,this.pos=b,this.button=c};function aK(a){var c=this.display;if(!(bs(this,a)||c.activeTouch&&c.input.supportsTouch())){if(c.input.ensurePolled(),c.shift=a.shiftKey,cX(c,a)){N||(c.scroller.draggable=!1,setTimeout(function(){return c.scroller.draggable=!0},100));return}if(!fW(this,a)){var e,f,g,b=dC(this,a),d=bx(a),h=b?(e=b,f=d,g=+new Date,aS&&aS.compare(g,e,f)?(aR=aS=null,"triple"):aR&&aR.compare(g,e,f)?(aS=new aJ(g,e,f),aR=null,"double"):(aR=new aJ(g,e,f),aS=null,"single")):"single";window.focus(),1==d&&this.state.selectingText&&this.state.selectingText(a),b&&fP(this,d,b,h,a)||(1==d?b?fQ(this,b,h,a):bw(a)==c.scroller&&ak(a):2==d?(b&&eX(this.doc,b),setTimeout(function(){return c.input.focus()},20)):3==d&&(a$?this.display.input.onContextMenu(a):dQ(this)))}}}function fP(e,b,f,c,d){var a="Click";return"double"==c?a="Double"+a:"triple"==c&&(a="Triple"+a),fK(e,fz(a=(1==b?"Left":2==b?"Middle":"Right")+a,d),d,function(a){if("string"==typeof a&&(a=aF[a]),!a)return!1;var b=!1;try{e.isReadOnly()&&(e.state.suppressEdits=!0),b=a(e,f)!=ad}finally{e.state.suppressEdits=!1}return b})}function fQ(a,b,e,d){w?setTimeout(a5(dP,a),0):a.curOp.focus=a3();var c,f=function(c,d,a){var e=c.getOption("configureMouse"),b=e?e(c,d,a):{};if(null==b.unit){var f=aX?a.shiftKey&&a.metaKey:a.altKey;b.unit=f?"rectangle":"single"==d?"char":"double"==d?"word":"line"}return(null==b.extend||c.doc.extend)&&(b.extend=c.doc.extend||a.shiftKey),null==b.addNew&&(b.addNew=P?a.metaKey:a.ctrlKey),null==b.moveOnDrag&&(b.moveOnDrag=!(P?a.altKey:a.ctrlKey)),b}(a,e,d),g=a.doc.sel;a.options.dragDrop&&by&&!a.isReadOnly()&&"single"==e&&(c=g.contains(b))> -1&&(0>ax((c=g.ranges[c]).from(),b)||b.xRel>0)&&(ax(c.to(),b)>0||b.xRel<0)?fR(a,d,b,f):fT(a,d,b,f)}function fR(b,g,h,d){var a=b.display,i=!1,c=eh(b,function(g){N&&(a.scroller.draggable=!1),b.state.draggingText=!1,b.state.delayingBlurEvent&&(b.hasFocus()?b.state.delayingBlurEvent=!1:dQ(b)),ai(a.wrapper.ownerDocument,"mouseup",c),ai(a.wrapper.ownerDocument,"mousemove",e),ai(a.scroller,"dragstart",f),ai(a.scroller,"drop",c),i||(ak(g),d.addNew||eX(b.doc,h,null,null,d.extend),N&&!O||w&&9==W?setTimeout(function(){a.wrapper.ownerDocument.body.focus({preventScroll:!0}),a.input.focus()},20):a.input.focus())}),e=function(a){i=i||Math.abs(g.clientX-a.clientX)+Math.abs(g.clientY-a.clientY)>=10},f=function(){return i=!0};N&&(a.scroller.draggable=!0),b.state.draggingText=c,c.copy=!d.moveOnDrag,ah(a.wrapper.ownerDocument,"mouseup",c),ah(a.wrapper.ownerDocument,"mousemove",e),ah(a.scroller,"dragstart",f),ah(a.scroller,"drop",c),b.state.delayingBlurEvent=!0,setTimeout(function(){return a.input.focus()},20),a.scroller.dragDrop&&a.scroller.dragDrop()}function fS(c,a,b){if("char"==b)return new I(a,a);if("word"==b)return c.findWordAt(a);if("line"==b)return new I(aw(a.line,0),bS(c.doc,aw(a.line+1,0)));var d=b(c,a);return new I(d.from,d.to)}function fT(b,k,e,c){w&&dQ(b);var h=b.display,d=b.doc;ak(k);var f,a,i=d.sel,g=i.ranges;if(c.addNew&&!c.extend?f=(a=d.sel.contains(e))> -1?g[a]:new I(e,e):(f=d.sel.primary(),a=d.sel.primIndex),"rectangle"==c.unit)c.addNew||(f=new I(e,e)),e=dC(b,k,!0,!0),a=-1;else{var j=fS(b,e,c.unit);f=c.extend?eW(f,j.anchor,j.head,c.extend):j}c.addNew?-1==a?(a=g.length,e0(d,eA(b,g.concat([f]),a),{scroll:!1,origin:"*mouse"})):g.length>1&&g[a].empty()&&"char"==c.unit&&!c.extend?(e0(d,eA(b,g.slice(0,a).concat(g.slice(a+1)),0),{scroll:!1,origin:"*mouse"}),i=d.sel):eZ(d,a,f,a8):(a=0,e0(d,new s([f],0),a8),i=d.sel);var o=e,p=h.wrapper.getBoundingClientRect(),q=0;function r(j){var m=++q,g=dC(b,j,!0,"rectangle"==c.unit);if(g){if(0!=ax(g,o)){b.curOp.focus=a3(),function(g){if(0!=ax(o,g)){if(o=g,"rectangle"==c.unit){for(var j=[],l=b.options.tabSize,s=ab(bF(d,e.line).text,e.ch,l),t=ab(bF(d,g.line).text,g.ch,l),u=Math.min(s,t),v=Math.max(s,t),h=Math.min(e.line,g.line),x=Math.min(b.lastLine(),Math.max(e.line,g.line));h<=x;h++){var p=bF(d,h).text,m=ae(p,u,l);u==v?j.push(new I(aw(h,m),aw(h,m))):p.length>m&&j.push(new I(aw(h,m),aw(h,ae(p,v,l))))}j.length||j.push(new I(e,e)),e0(d,eA(b,i.ranges.slice(0,a).concat(j),a),{origin:"*mouse",scroll:!1}),b.scrollIntoView(g)}else{var q,r=f,k=fS(b,g,c.unit),n=r.anchor;ax(k.anchor,n)>0?(q=k.head,n=bQ(r.from(),k.anchor)):(q=k.anchor,n=bP(r.to(),k.head));var w=i.ranges.slice(0);w[a]=fU(b,new I(bS(d,n),q)),e0(d,eA(b,w,a),a8)}}}(g);var k=dV(h,d);(g.line>=k.to||g.line<k.from)&&setTimeout(eh(b,function(){q==m&&r(j)}),150)}else{var l=j.clientY<p.top?-20:j.clientY>p.bottom?20:0;l&&setTimeout(eh(b,function(){q==m&&(h.scroller.scrollTop+=l,r(j))}),50)}}}function m(a){b.state.selectingText=!1,q=1/0,a&&(ak(a),h.input.focus()),ai(h.wrapper.ownerDocument,"mousemove",n),ai(h.wrapper.ownerDocument,"mouseup",l),d.history.lastSelOrigin=null}var n=eh(b,function(a){0!==a.buttons&&bx(a)?r(a):m(a)}),l=eh(b,m);b.state.selectingText=l,ah(h.wrapper.ownerDocument,"mousemove",n),ah(h.wrapper.ownerDocument,"mouseup",l)}function fU(k,c){var g,a=c.anchor,b=c.head,p=bF(k.doc,a.line);if(0==ax(a,b)&&a.sticky==b.sticky)return c;var d=bp(p);if(!d)return c;var h=bn(d,a.ch,a.sticky),e=d[h];if(e.from!=a.ch&&e.to!=a.ch)return c;var f=h+(e.from==a.ch==(1!=e.level)?0:1);if(0==f||f==d.length)return c;if(b.line!=a.line)g=(b.line-a.line)*("ltr"==k.doc.direction?1:-1)>0;else{var i=bn(d,b.ch,b.sticky),l=i-h||(b.ch-a.ch)*(1==e.level?-1:1);g=i==f-1||i==f?l<0:l>0}var j=d[f+(g?-1:0)],m=g==(1==j.level),n=m?j.from:j.to,o=m?"after":"before";return a.ch==n&&a.sticky==o?c:new I(new aw(a.line,n,o),b)}function fV(b,a,f,i){if(a.touches)j=a.touches[0].clientX,d=a.touches[0].clientY;else try{j=a.clientX,d=a.clientY}catch(m){return!1}if(j>=Math.floor(b.display.gutters.getBoundingClientRect().right))return!1;i&&ak(a);var j,d,e=b.display,g=e.lineDiv.getBoundingClientRect();if(d>g.bottom||!bu(b,f))return bv(a);d-=g.top-e.viewOffset;for(var c=0;c<b.display.gutterSpecs.length;++c){var h=e.gutters.childNodes[c];if(h&&h.getBoundingClientRect().right>=j){var k=bK(b.doc,d),l=b.display.gutterSpecs[c];return aj(b,f,b,k,l.className,a),bv(a)}}}function fW(a,b){return fV(a,b,"gutterClick",!0)}function fX(a,b){!(cX(a.display,b)||fY(a,b)||bs(a,b,"contextmenu"))&&(a$||a.display.input.onContextMenu(b))}function fY(a,b){return!!bu(a,"gutterContextMenu")&&fV(a,b,"gutterContextMenu",!1)}function fZ(a){a.display.wrapper.className=a.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+a.options.theme.replace(/(^|\s)\s*/g," cm-s-"),de(a)}aJ.prototype.compare=function(a,b,c){return this.time+400>a&&0==ax(b,this.pos)&&c==this.button};var f$={toString:function(){return"CodeMirror.Init"}},aL={},aM={};function f_(a,d,e){if(!d!= !(e&&e!=f$)){var b=a.display.dragFunctions,c=d?ah:ai;c(a.display.scroller,"dragstart",b.start),c(a.display.scroller,"dragenter",b.enter),c(a.display.scroller,"dragover",b.over),c(a.display.scroller,"dragleave",b.leave),c(a.display.scroller,"drop",b.drop)}}function f0(a){a.options.lineWrapping?(aa(a.display.wrapper,"CodeMirror-wrap"),a.display.sizer.style.minWidth="",a.display.sizerWidth=null):(Z(a.display.wrapper,"CodeMirror-wrap"),ct(a)),dB(a),dE(a),de(a),setTimeout(function(){return d4(a)},100)}function f(g,a){var j=this;if(!(this instanceof f))return new f(g,a);this.options=a=a?a6(a):{},a6(aL,a,!1);var b=a.value;"string"==typeof b?b=new i(b,a.mode,null,a.lineSeparator,a.direction):a.mode&&(b.modeOption=a.mode),this.doc=b;var h=new f.inputStyles[a.inputStyle](this),c=this.display=new ew(g,b,h,a);for(var d in c.wrapper.CodeMirror=this,fZ(this),a.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),d6(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:-1,cutIncoming:-1,selectingText:!1,draggingText:!1,highlight:new F,keySeq:null,specialChars:null},a.autofocus&&!aW&&c.input.focus(),w&&W<11&&setTimeout(function(){return j.display.input.reset(!0)},20),f1(this),fv||(fw(),fv=!0),d8(this),this.curOp.forceUpdate=!0,eL(this,b),a.autofocus&&!aW||this.hasFocus()?setTimeout(function(){j.hasFocus()&&!j.state.focused&&dR(j)},20):dS(this),aM)aM.hasOwnProperty(d)&&aM[d](this,a[d],f$);es(this),a.finishInit&&a.finishInit(this);for(var e=0;e<f2.length;++e)f2[e](this);d9(this),N&&a.lineWrapping&&"optimizelegibility"==getComputedStyle(c.lineDiv).textRendering&&(c.lineDiv.style.textRendering="auto")}function f1(b){var a=b.display;ah(a.scroller,"mousedown",eh(b,aK)),w&&W<11?ah(a.scroller,"dblclick",eh(b,function(a){if(!bs(b,a)){var c=dC(b,a);if(!(!c||fW(b,a)||cX(b.display,a))){ak(a);var d=b.findWordAt(c);eX(b.doc,d.anchor,d.head)}}})):ah(a.scroller,"dblclick",function(a){return bs(b,a)||ak(a)}),ah(a.scroller,"contextmenu",function(a){return fX(b,a)}),ah(a.input.getField(),"contextmenu",function(c){a.scroller.contains(c.target)||fX(b,c)});var e,f={end:0};function d(){a.activeTouch&&(e=setTimeout(function(){return a.activeTouch=null},1e3),(f=a.activeTouch).end=+new Date)}function g(b,a){if(null==a.left)return!0;var c=a.left-b.left,d=a.top-b.top;return c*c+d*d>400}ah(a.scroller,"touchstart",function(c){if(!bs(b,c)&&!function(a){if(1!=a.touches.length)return!1;var b=a.touches[0];return b.radiusX<=1&&b.radiusY<=1}(c)&&!fW(b,c)){a.input.ensurePolled(),clearTimeout(e);var d=+new Date;a.activeTouch={start:d,moved:!1,prev:d-f.end<=300?f:null},1==c.touches.length&&(a.activeTouch.left=c.touches[0].pageX,a.activeTouch.top=c.touches[0].pageY)}}),ah(a.scroller,"touchmove",function(){a.activeTouch&&(a.activeTouch.moved=!0)}),ah(a.scroller,"touchend",function(h){var c=a.activeTouch;if(c&&!cX(a,h)&&null!=c.left&&!c.moved&&new Date-c.start<300){var f,e=b.coordsChar(a.activeTouch,"page");f=!c.prev||g(c,c.prev)?new I(e,e):!c.prev.prev||g(c,c.prev.prev)?b.findWordAt(e):new I(aw(e.line,0),bS(b.doc,aw(e.line+1,0))),b.setSelection(f.anchor,f.head),b.focus(),ak(h)}d()}),ah(a.scroller,"touchcancel",d),ah(a.scroller,"scroll",function(){a.scroller.clientHeight&&(d0(b,a.scroller.scrollTop),d2(b,a.scroller.scrollLeft,!0),aj(b,"scroll",b))}),ah(a.scroller,"mousewheel",function(a){return ez(b,a)}),ah(a.scroller,"DOMMouseScroll",function(a){return ez(b,a)}),ah(a.wrapper,"scroll",function(){return a.wrapper.scrollTop=a.wrapper.scrollLeft=0}),a.dragFunctions={enter:function(a){bs(b,a)||am(a)},over:function(a){bs(b,a)||(function(a,d){var b=dC(a,d);if(b){var c=document.createDocumentFragment();dL(a,b,c),a.display.dragCursor||(a.display.dragCursor=$("div",null,"CodeMirror-cursors CodeMirror-dragcursors"),a.display.lineSpace.insertBefore(a.display.dragCursor,a.display.cursorDiv)),a1(a.display.dragCursor,c)}}(b,a),am(a))},start:function(a){return function(c,b){if(w&&(!c.state.draggingText|| +new Date-fr<100)){am(b);return}if(!(bs(c,b)||cX(c.display,b))&&(b.dataTransfer.setData("Text",c.getSelection()),b.dataTransfer.effectAllowed="copyMove",b.dataTransfer.setDragImage&&!O)){var a=$("img",null,null,"position: fixed; left: 0; top: 0;");a.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",D&&(a.width=a.height=1,c.display.wrapper.appendChild(a),a._top=a.offsetTop),b.dataTransfer.setDragImage(a,0,0),D&&a.parentNode.removeChild(a)}}(b,a)},drop:eh(b,fs),leave:function(a){bs(b,a)||ft(b)}};var c=a.input.getField();ah(c,"keyup",function(a){return aH.call(b,a)}),ah(c,"keydown",eh(b,aG)),ah(c,"keypress",eh(b,aI)),ah(c,"focus",function(a){return dR(b,a)}),ah(c,"blur",function(a){return dS(b,a)})}f.defaults=aL,f.optionHandlers=aM;var f2=[];function f3(f,d,a,m){var n,c=f.doc;null==a&&(a="add"),"smart"==a&&(c.mode.indent?n=bY(f,d).state:a="prev");var h=f.options.tabSize,e=bF(c,d),k=ab(e.text,null,h);e.stateAfter&&(e.stateAfter=null);var b,g=e.text.match(/^\s*/)[0];if(m||/\S/.test(e.text)){if("smart"==a&&((b=c.mode.indent(n,e.text.slice(g.length),e.text))==ad||b>150)){if(!m)return;a="prev"}}else b=0,a="not";"prev"==a?b=d>c.first?ab(bF(c,d-1).text,null,h):0:"add"==a?b=k+f.options.indentUnit:"subtract"==a?b=k-f.options.indentUnit:"number"==typeof a&&(b=k+a),b=Math.max(0,b);var i="",l=0;if(f.options.indentWithTabs)for(var o=Math.floor(b/h);o;--o)l+=h,i+=" ";if(l<b&&(i+=bb(b-l)),i!=g)return ff(c,i,aw(d,0),aw(d,g.length),"+input"),e.stateAfter=null,!0;for(var j=0;j<c.sel.ranges.length;j++){var p=c.sel.ranges[j];if(p.head.line==d&&p.head.ch<g.length){var q=aw(d,g.length);eZ(c,j,new I(q,q));break}}}f.defineInitHook=function(a){return f2.push(a)};var f4=null;function f5(a,h,j,b,n){var k=a.doc;a.display.shift=!1,b||(b=k.sel);var o=+new Date-200,f="paste"==n||a.state.pasteIncoming>o,g=an(h),c=null;if(f&&b.ranges.length>1){if(f4&&f4.text.join("\n")==h){if(b.ranges.length%f4.text.length==0){c=[];for(var l=0;l<f4.text.length;l++)c.push(k.splitLines(f4.text[l]))}}else g.length==b.ranges.length&&a.options.pasteLinesPerSelection&&(c=bd(g,function(a){return[a]}))}for(var q=a.curOp.updateInput,i=b.ranges.length-1;i>=0;i--){var m=b.ranges[i],d=m.from(),e=m.to();m.empty()&&(j&&j>0?d=aw(d.line,d.ch-j):a.state.overwrite&&!f?e=aw(e.line,Math.min(bF(k,e.line).text.length,e.ch+bc(g).length)):f&&f4&&f4.lineWise&&f4.text.join("\n")==g.join("\n")&&(d=e=aw(d.line,0)));var p={from:d,to:e,text:c?c[i%c.length]:g,origin:n||(f?"paste":a.state.cutIncoming>o?"cut":"+input")};e9(a.doc,p),cJ(a,"inputRead",a,p)}h&&!f&&f7(a,h),dY(a),a.curOp.updateInput<2&&(a.curOp.updateInput=q),a.curOp.typing=!0,a.state.pasteIncoming=a.state.cutIncoming=-1}function f6(b,a){var c=b.clipboardData&&b.clipboardData.getData("Text");if(c)return b.preventDefault(),!a.isReadOnly()&&!a.options.disableInput&&a.hasFocus()&&eg(a,function(){return f5(a,c,0,null,"paste")}),!0}function f7(a,h){if(a.options.electricChars&&a.options.smartIndent)for(var e=a.doc.sel,c=e.ranges.length-1;c>=0;c--){var b=e.ranges[c];if(!(b.head.ch>100)&&(!c||e.ranges[c-1].head.line!=b.head.line)){var d=a.getModeAt(b.head),f=!1;if(d.electricChars){for(var g=0;g<d.electricChars.length;g++)if(h.indexOf(d.electricChars.charAt(g))> -1){f=f3(a,b.head.line,"smart");break}}else d.electricInput&&d.electricInput.test(bF(a.doc,b.head.line).text.slice(0,b.head.ch))&&(f=f3(a,b.head.line,"smart"));f&&cJ(a,"electricInput",a,b.head.line)}}}function f8(a){for(var d=[],e=[],b=0;b<a.doc.sel.ranges.length;b++){var f=a.doc.sel.ranges[b].head.line,c={anchor:aw(f,0),head:aw(f+1,0)};e.push(c),d.push(a.getRange(c.anchor,c.head))}return{text:d,ranges:e}}function f9(a,b,c,d){a.setAttribute("autocorrect",c?"":"off"),a.setAttribute("autocapitalize",d?"":"off"),a.setAttribute("spellcheck",!!b)}function ga(){var a=$("textarea",null,null,"position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; min-height: 1em; outline: none"),b=$("div",[a],null,"overflow: hidden; position: relative; width: 3px; height: 0px;");return N?a.style.width="1000px":a.setAttribute("wrap","off"),E&&(a.style.border="1px solid black"),f9(a),b}function gb(d,b,a,c,m){var l=b,n=a,o=bF(d,b.line),q=m&&"rtl"==d.direction?-a:a;function e(h){if("codepoint"==c){var e,g,f=o.text.charCodeAt(b.ch+(a>0?0:-1));if(isNaN(f))e=null;else{var i=a>0?f>=55296&&f<56320:f>=56320&&f<57343;e=new aw(b.line,Math.max(0,Math.min(o.text.length,b.ch+a*(i?2:1))),-a)}}else e=m?function(i,d,a,b){var q,g=bp(d,i.doc.direction);if(!g)return fD(d,a,b);a.ch>=d.text.length?(a.ch=d.text.length,a.sticky="before"):a.ch<=0&&(a.ch=0,a.sticky="after");var m=bn(g,a.ch,a.sticky),c=g[m];if("ltr"==i.doc.direction&&c.level%2==0&&(b>0?c.to>a.ch:c.from<a.ch))return fD(d,a,b);var j=function(a,b){return fC(d,a instanceof aw?a.ch:a,b)},n=function(a){return i.options.lineWrapping?(q=q||c5(i,d),dr(i,d,q,a)):{begin:0,end:d.text.length}},f=n("before"==a.sticky?j(a,-1):a.ch);if("rtl"==i.doc.direction||1==c.level){var k=1==c.level==b<0,e=j(a,k?1:-1);if(null!=e&&(k?e<=c.to&&e<=f.end:e>=c.from&&e>=f.begin)){var p=k?"before":"after";return new aw(a.line,e,p)}}var o=function(d,h,e){for(var i=function(b,c){return c?new aw(a.line,j(b,1),"before"):new aw(a.line,b,"after")};d>=0&&d<g.length;d+=h){var c=g[d],f=h>0==(1!=c.level),b=f?e.begin:j(e.end,-1);if(c.from<=b&&b<c.to||(b=f?c.from:j(c.to,-1),e.begin<=b&&b<e.end))return i(b,f)}},h=o(m+b,b,f);if(h)return h;var l=b>0?f.end:j(f.begin,-1);return null!=l&&!(b>0&&l==d.text.length)&&(h=o(b>0?0:g.length-1,b,n(l)))?h:null}(d.cm,o,b,a):fD(o,b,a);if(null==e){if(!(!h&& !((g=b.line+q)<d.first)&&!(g>=d.first+d.size)&&(b=new aw(g,b.ch,b.sticky),o=bF(d,g))))return!1;b=fE(m,d.cm,o,b.line,q)}else b=e;return!0}if("char"==c||"codepoint"==c)e();else if("column"==c)e(!0);else if("word"==c||"group"==c)for(var h=null,i="group"==c,p=d.cm&&d.cm.getHelper(b,"wordChars"),g=!0;!(a<0)||e(!g);g=!1){var j=o.text.charAt(b.ch)||"\n",f=bg(j,p)?"w":i&&"\n"==j?"n":!i||/\s/.test(j)?null:"p";if(!i||g||f||(f="s"),h&&h!=f){a<0&&(a=1,e(),b.sticky="after");break}if(f&&(h=f),a>0&&!e(!g))break}var k=e6(d,b,l,n,!0);return bN(l,k)&&(k.hitSide=!0),k}function gc(d,b,c,f){var e,a,g=d.doc,h=b.left;if("page"==f){var i=Math.min(d.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),j=Math.max(i-.5*dw(d.display),3);a=(c>0?b.bottom:b.top)+c*j}else"line"==f&&(a=c>0?b.bottom+3:b.top-3);for(;(e=dp(d,h,a)).outside;){if(c<0?a<=0:a>=g.height){e.hitSide=!0;break}a+=5*c}return e}var b=function(a){this.cm=a,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new F,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};function gd(c,a){var d=c4(c,a.line);if(!d||d.hidden)return null;var e=bF(c.doc,a.line),h=c2(d,e,a.line),f=bp(e,c.doc.direction),g="left";f&&(g=bn(f,a.ch)%2?"right":"left");var b=c8(h.map,a.ch,g);return b.offset="right"==b.collapse?b.end:b.start,b}function ge(a,b){return b&&(a.bad=!0),a}function gf(b,a,c,g,h){var d="",i=!1,j=b.doc.lineSeparator(),e=!1;function k(){i&&(d+=j,e&&(d+=j),i=e=!1)}function l(a){a&&(k(),d+=a)}function f(a){if(1==a.nodeType){var m=a.getAttribute("cm-text");if(m){l(m);return}var c,n=a.getAttribute("cm-marker");if(n){var q,o=b.findMarks(aw(g,0),aw(h+1,0),(q=+n,function(a){return a.id==q}));o.length&&(c=o[0].find(0))&&l(bG(b.doc,c.from,c.to).join(j));return}if("false"!=a.getAttribute("contenteditable")){var p=/^(pre|div|p|li|table|br)$/i.test(a.nodeName);if(/^br$/i.test(a.nodeName)||0!=a.textContent.length){p&&k();for(var d=0;d<a.childNodes.length;d++)f(a.childNodes[d]);/^(pre|p)$/i.test(a.nodeName)&&(e=!0),p&&(i=!0)}}}else 3==a.nodeType&&l(a.nodeValue.replace(/\u200b/g,"").replace(/\u00a0/g," "))}for(;f(a),a!=c;)a=a.nextSibling,e=!1;return d}function gg(b,c,d){var a;if(c==b.display.lineDiv){if(!(a=b.display.lineDiv.childNodes[d]))return ge(b.clipPos(aw(b.display.viewTo-1)),!0);c=null,d=0}else for(a=c;;a=a.parentNode){if(!a||a==b.display.lineDiv)return null;if(a.parentNode&&a.parentNode==b.display.lineDiv)break}for(var e=0;e<b.display.view.length;e++){var f=b.display.view[e];if(f.node==a)return gh(f,c,d)}}function gh(d,a,c){var j=d.text.firstChild,i=!1;if(!a||!_(j,a))return ge(aw(bJ(d.line),0),!0);if(a==j&&(i=!0,a=j.childNodes[c],c=0,!a)){var l=d.rest?bc(d.rest):d.line;return ge(aw(bJ(l),l.text.length),i)}var e=3==a.nodeType?a:null,f=a;for(!e&&1==a.childNodes.length&&3==a.firstChild.nodeType&&(e=a.firstChild,c&&(c=e.nodeValue.length));f.parentNode!=j;)f=f.parentNode;var o=d.measure,p=o.maps;function k(g,i,e){for(var a=-1;a<(p?p.length:0);a++)for(var c=a<0?o.map:p[a],b=0;b<c.length;b+=3){var f=c[b+2];if(f==g||f==i){var j=bJ(a<0?d.line:d.rest[a]),h=c[b]+e;return(e<0||f!=g)&&(h=c[b+(e?1:0)]),aw(j,h)}}}var b=k(e,f,c);if(b)return ge(b,i);for(var g=f.nextSibling,m=e?e.nodeValue.length-c:0;g;g=g.nextSibling){if(b=k(g,g.firstChild,0))return ge(aw(b.line,b.ch-m),i);m+=g.textContent.length}for(var h=f.previousSibling,n=c;h;h=h.previousSibling){if(b=k(h,h.firstChild,-1))return ge(aw(b.line,b.ch+n),i);n+=h.textContent.length}}b.prototype.init=function(e){var f=this,c=this,b=c.cm,a=c.div=e.lineDiv;function g(c){for(var b=c.target;b;b=b.parentNode){if(b==a)return!0;if(/\bCodeMirror-(?:line)?widget\b/.test(b.className))break}return!1}function d(d){if(!(!g(d)||bs(b,d))){if(b.somethingSelected()){var j;f4={lineWise:!1,text:b.getSelections()},"cut"==d.type&&b.replaceSelection("",null,"cut")}else{if(!b.options.lineWiseCopyCut)return;var k,i=f8(b);f4={lineWise:!0,text:i.text},"cut"==d.type&&b.operation(function(){b.setSelections(i.ranges,0,a7),b.replaceSelection("",null,"cut")})}if(d.clipboardData){d.clipboardData.clearData();var e=f4.text.join("\n");if(d.clipboardData.setData("Text",e),d.clipboardData.getData("Text")==e){d.preventDefault();return}}var f=ga(),h=f.firstChild;b.display.lineSpace.insertBefore(f,b.display.lineSpace.firstChild),h.value=f4.text.join("\n");var l=a3();Q(h),setTimeout(function(){b.display.lineSpace.removeChild(f),l.focus(),l==a&&c.showPrimarySelection()},50)}}a.contentEditable=!0,f9(a,b.options.spellcheck,b.options.autocorrect,b.options.autocapitalize),ah(a,"paste",function(a){!(!g(a)||bs(b,a)||f6(a,b))&&W<=11&&setTimeout(eh(b,function(){return f.updateFromDOM()}),20)}),ah(a,"compositionstart",function(a){f.composing={data:a.data,done:!1}}),ah(a,"compositionupdate",function(a){f.composing||(f.composing={data:a.data,done:!1})}),ah(a,"compositionend",function(a){f.composing&&(a.data!=f.composing.data&&f.readFromDOMSoon(),f.composing.done=!0)}),ah(a,"touchstart",function(){return c.forceCompositionEnd()}),ah(a,"input",function(){f.composing||f.readFromDOMSoon()}),ah(a,"copy",d),ah(a,"cut",d)},b.prototype.screenReaderLabelChanged=function(a){a?this.div.setAttribute("aria-label",a):this.div.removeAttribute("aria-label")},b.prototype.prepareSelection=function(){var a=dK(this.cm,!1);return a.focus=a3()==this.div,a},b.prototype.showSelection=function(a,b){a&&this.cm.display.view.length&&((a.focus||b)&&this.showPrimarySelection(),this.showMultipleSelections(a))},b.prototype.getSelection=function(){return this.cm.display.wrapper.ownerDocument.getSelection()},b.prototype.showPrimarySelection=function(){var a=this.getSelection(),b=this.cm,m=b.doc.sel.primary(),g=m.from(),h=m.to();if(b.display.viewTo==b.display.viewFrom||g.line>=b.display.viewTo||h.line<b.display.viewFrom){a.removeAllRanges();return}var i=gg(b,a.anchorNode,a.anchorOffset),j=gg(b,a.focusNode,a.focusOffset);if(!i||i.bad||!j||j.bad||0!=ax(bQ(i,j),g)||0!=ax(bP(i,j),h)){var l=b.display.view,d=g.line>=b.display.viewFrom&&gd(b,g)||{node:l[0].measure.map[2],offset:0},e=h.line<b.display.viewTo&&gd(b,h);if(!e){var k=l[l.length-1].measure,c=k.maps?k.maps[k.maps.length-1]:k.map;e={node:c[c.length-1],offset:c[c.length-2]-c[c.length-3]}}if(!d||!e){a.removeAllRanges();return}var f,n=a.rangeCount&&a.getRangeAt(0);try{f=V(d.node,d.offset,e.offset,e.node)}catch(o){}f&&(!K&&b.state.focused?(a.collapse(d.node,d.offset),f.collapsed||(a.removeAllRanges(),a.addRange(f))):(a.removeAllRanges(),a.addRange(f)),n&&null==a.anchorNode?a.addRange(n):K&&this.startGracePeriod()),this.rememberSelection()}},b.prototype.startGracePeriod=function(){var a=this;clearTimeout(this.gracePeriod),this.gracePeriod=setTimeout(function(){a.gracePeriod=!1,a.selectionChanged()&&a.cm.operation(function(){return a.cm.curOp.selectionChanged=!0})},20)},b.prototype.showMultipleSelections=function(a){a1(this.cm.display.cursorDiv,a.cursors),a1(this.cm.display.selectionDiv,a.selection)},b.prototype.rememberSelection=function(){var a=this.getSelection();this.lastAnchorNode=a.anchorNode,this.lastAnchorOffset=a.anchorOffset,this.lastFocusNode=a.focusNode,this.lastFocusOffset=a.focusOffset},b.prototype.selectionInEditor=function(){var a=this.getSelection();if(!a.rangeCount)return!1;var b=a.getRangeAt(0).commonAncestorContainer;return _(this.div,b)},b.prototype.focus=function(){"nocursor"!=this.cm.options.readOnly&&(this.selectionInEditor()&&a3()==this.div||this.showSelection(this.prepareSelection(),!0),this.div.focus())},b.prototype.blur=function(){this.div.blur()},b.prototype.getField=function(){return this.div},b.prototype.supportsTouch=function(){return!0},b.prototype.receivedFocus=function(){var b=this,c=this;function a(){c.cm.state.focused&&(c.pollSelection(),c.polling.set(c.cm.options.pollInterval,a))}this.selectionInEditor()?setTimeout(function(){return b.pollSelection()},20):eg(this.cm,function(){return c.cm.curOp.selectionChanged=!0}),this.polling.set(this.cm.options.pollInterval,a)},b.prototype.selectionChanged=function(){var a=this.getSelection();return a.anchorNode!=this.lastAnchorNode||a.anchorOffset!=this.lastAnchorOffset||a.focusNode!=this.lastFocusNode||a.focusOffset!=this.lastFocusOffset},b.prototype.pollSelection=function(){if(null==this.readDOMTimeout&&!this.gracePeriod&&this.selectionChanged()){var a=this.getSelection(),b=this.cm;if(Y&&C&&this.cm.display.gutterSpecs.length&&function(b){for(var a=b;a;a=a.parentNode)if(/CodeMirror-gutter-wrapper/.test(a.className))return!0;return!1}(a.anchorNode)){this.cm.triggerOnKeyDown({type:"keydown",keyCode:8,preventDefault:Math.abs}),this.blur(),this.focus();return}if(!this.composing){this.rememberSelection();var c=gg(b,a.anchorNode,a.anchorOffset),d=gg(b,a.focusNode,a.focusOffset);c&&d&&eg(b,function(){e0(b.doc,eB(c,d),a7),(c.bad||d.bad)&&(b.curOp.selectionChanged=!0)})}}},b.prototype.pollContent=function(){null!=this.readDOMTimeout&&(clearTimeout(this.readDOMTimeout),this.readDOMTimeout=null);var n,h,m,i,o,b=this.cm,c=b.display,q=b.doc.sel.primary(),f=q.from(),j=q.to();if(0==f.ch&&f.line>b.firstLine()&&(f=aw(f.line-1,bF(b.doc,f.line-1).length)),j.ch==bF(b.doc,j.line).text.length&&j.line<b.lastLine()&&(j=aw(j.line+1,0)),f.line<c.viewFrom||j.line>c.viewTo-1)return!1;f.line==c.viewFrom||0==(n=dD(b,f.line))?(h=bJ(c.view[0].line),m=c.view[0].node):(h=bJ(c.view[n].line),m=c.view[n-1].node.nextSibling);var p=dD(b,j.line);if(p==c.view.length-1?(i=c.viewTo-1,o=c.lineDiv.lastChild):(i=bJ(c.view[p+1].line)-1,o=c.view[p+1].node.previousSibling),!m)return!1;for(var a=b.doc.splitLines(gf(b,m,o,h,i)),d=bG(b.doc,aw(h,0),aw(i,bF(b.doc,i).text.length));a.length>1&&d.length>1;)if(bc(a)==bc(d))a.pop(),d.pop(),i--;else if(a[0]==d[0])a.shift(),d.shift(),h++;else break;for(var e=0,g=0,r=a[0],s=d[0],v=Math.min(r.length,s.length);e<v&&r.charCodeAt(e)==s.charCodeAt(e);)++e;for(var k=bc(a),l=bc(d),w=Math.min(k.length-(1==a.length?e:0),l.length-(1==d.length?e:0));g<w&&k.charCodeAt(k.length-g-1)==l.charCodeAt(l.length-g-1);)++g;if(1==a.length&&1==d.length&&h==f.line)for(;e&&e>f.ch&&k.charCodeAt(k.length-g-1)==l.charCodeAt(l.length-g-1);)e--,g++;a[a.length-1]=k.slice(0,k.length-g).replace(/^\u200b+/,""),a[0]=a[0].slice(e).replace(/\u200b+$/,"");var t=aw(h,e),u=aw(i,d.length?bc(d).length-g:0);if(a.length>1||a[0]||ax(t,u))return ff(b.doc,a,t,u,"+input"),!0},b.prototype.ensurePolled=function(){this.forceCompositionEnd()},b.prototype.reset=function(){this.forceCompositionEnd()},b.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},b.prototype.readFromDOMSoon=function(){var a=this;null==this.readDOMTimeout&&(this.readDOMTimeout=setTimeout(function(){if(a.readDOMTimeout=null,a.composing){if(!a.composing.done)return;a.composing=null}a.updateFromDOM()},80))},b.prototype.updateFromDOM=function(){var a=this;(this.cm.isReadOnly()||!this.pollContent())&&eg(this.cm,function(){return dE(a.cm)})},b.prototype.setUneditable=function(a){a.contentEditable="false"},b.prototype.onKeyPress=function(a){0!=a.charCode&&!this.composing&&(a.preventDefault(),this.cm.isReadOnly()||eh(this.cm,f5)(this.cm,String.fromCharCode(null==a.charCode?a.keyCode:a.charCode),0))},b.prototype.readOnlyChanged=function(a){this.div.contentEditable=String("nocursor"!=a)},b.prototype.onContextMenu=function(){},b.prototype.resetPosition=function(){},b.prototype.needsContentAttribute=!0;var c=function(a){this.cm=a,this.prevInput="",this.pollingFast=!1,this.polling=new F,this.hasSelection=!1,this.composing=null};c.prototype.init=function(b){var d=this,e=this,f=this.cm;this.createField(b);var a=this.textarea;function c(b){if(!bs(f,b)){if(f.somethingSelected()){var d;f4={lineWise:!1,text:f.getSelections()}}else{if(!f.options.lineWiseCopyCut)return;var g,c=f8(f);f4={lineWise:!0,text:c.text},"cut"==b.type?f.setSelections(c.ranges,null,a7):(e.prevInput="",a.value=c.text.join("\n"),Q(a))}"cut"==b.type&&(f.state.cutIncoming=+new Date)}}b.wrapper.insertBefore(this.wrapper,b.wrapper.firstChild),E&&(a.style.width="0px"),ah(a,"input",function(){w&&W>=9&&d.hasSelection&&(d.hasSelection=null),e.poll()}),ah(a,"paste",function(a){bs(f,a)||f6(a,f)||(f.state.pasteIncoming=+new Date,e.fastPoll())}),ah(a,"cut",c),ah(a,"copy",c),ah(b.scroller,"paste",function(c){if(!(cX(b,c)||bs(f,c))){if(!a.dispatchEvent){f.state.pasteIncoming=+new Date,e.focus();return}var d=new Event("paste");d.clipboardData=c.clipboardData,a.dispatchEvent(d)}}),ah(b.lineSpace,"selectstart",function(a){cX(b,a)||ak(a)}),ah(a,"compositionstart",function(){var a=f.getCursor("from");e.composing&&e.composing.range.clear(),e.composing={start:a,range:f.markText(a,f.getCursor("to"),{className:"CodeMirror-composing"})}}),ah(a,"compositionend",function(){e.composing&&(e.poll(),e.composing.range.clear(),e.composing=null)})},c.prototype.createField=function(a){this.wrapper=ga(),this.textarea=this.wrapper.firstChild},c.prototype.screenReaderLabelChanged=function(a){a?this.textarea.setAttribute("aria-label",a):this.textarea.removeAttribute("aria-label")},c.prototype.prepareSelection=function(){var a=this.cm,b=a.display,g=a.doc,c=dK(a);if(a.options.moveInputWithCursor){var d=dl(a,g.sel.primary().head,"div"),e=b.wrapper.getBoundingClientRect(),f=b.lineDiv.getBoundingClientRect();c.teTop=Math.max(0,Math.min(b.wrapper.clientHeight-10,d.top+f.top-e.top)),c.teLeft=Math.max(0,Math.min(b.wrapper.clientWidth-10,d.left+f.left-e.left))}return c},c.prototype.showSelection=function(a){var b=this.cm.display;a1(b.cursorDiv,a.cursors),a1(b.selectionDiv,a.selection),null!=a.teTop&&(this.wrapper.style.top=a.teTop+"px",this.wrapper.style.left=a.teLeft+"px")},c.prototype.reset=function(c){if(!this.contextMenuPending&&!this.composing){var a=this.cm;if(a.somethingSelected()){this.prevInput="";var b=a.getSelection();this.textarea.value=b,a.state.focused&&Q(this.textarea),w&&W>=9&&(this.hasSelection=b)}else!c&&(this.prevInput=this.textarea.value="",w&&W>=9&&(this.hasSelection=null))}},c.prototype.getField=function(){return this.textarea},c.prototype.supportsTouch=function(){return!1},c.prototype.focus=function(){if("nocursor"!=this.cm.options.readOnly&&(!aW||a3()!=this.textarea))try{this.textarea.focus()}catch(a){}},c.prototype.blur=function(){this.textarea.blur()},c.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},c.prototype.receivedFocus=function(){this.slowPoll()},c.prototype.slowPoll=function(){var a=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,function(){a.poll(),a.cm.state.focused&&a.slowPoll()})},c.prototype.fastPoll=function(){var c=!1,a=this;function b(){a.poll()||c?(a.pollingFast=!1,a.slowPoll()):(c=!0,a.polling.set(60,b))}a.pollingFast=!0,a.polling.set(20,b)},c.prototype.poll=function(){var h=this,a=this.cm,e=this.textarea,b=this.prevInput;if(this.contextMenuPending||!a.state.focused||bB(e)&&!b&&!this.composing||a.isReadOnly()||a.options.disableInput||a.state.keySeq)return!1;var c=e.value;if(c==b&&!a.somethingSelected())return!1;if(w&&W>=9&&this.hasSelection===c||P&&/[\uf700-\uf7ff]/.test(c))return a.display.input.reset(),!1;if(a.doc.sel==a.display.selForContextMenu){var f=c.charCodeAt(0);if(8203!=f||b||(b="\u200B"),8666==f)return this.reset(),this.cm.execCommand("undo")}for(var d=0,g=Math.min(b.length,c.length);d<g&&b.charCodeAt(d)==c.charCodeAt(d);)++d;return eg(a,function(){f5(a,c.slice(d),b.length-d,null,h.composing?"*compose":null),c.length>1e3||c.indexOf("\n")> -1?e.value=h.prevInput="":h.prevInput=c,h.composing&&(h.composing.range.clear(),h.composing.range=a.markText(h.composing.start,a.getCursor("to"),{className:"CodeMirror-composing"}))}),!0},c.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},c.prototype.onKeyPress=function(){w&&W>=9&&(this.hasSelection=null),this.fastPoll()},c.prototype.onContextMenu=function(d){var g,a=this,b=a.cm,c=b.display,e=a.textarea;a.contextMenuPending&&a.contextMenuPending();var f=dC(b,d),j=c.scroller.scrollTop;if(f&&!D){b.options.resetSelectionOnContextMenu&& -1==b.doc.sel.contains(f)&&eh(b,e0)(b.doc,eB(f),a7);var k=e.style.cssText,l=a.wrapper.style.cssText,h=a.wrapper.offsetParent.getBoundingClientRect();if(a.wrapper.style.cssText="position: static",e.style.cssText="position: absolute; width: 30px; height: 30px;\n top: "+(d.clientY-h.top-5)+"px; left: "+(d.clientX-h.left-5)+"px;\n z-index: 1000; background: "+(w?"rgba(255, 255, 255, .05)":"transparent")+";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);",N&&(g=window.scrollY),c.input.focus(),N&&window.scrollTo(null,g),c.input.reset(),b.somethingSelected()||(e.value=a.prevInput=" "),a.contextMenuPending=n,c.selForContextMenu=b.doc.sel,clearTimeout(c.detectingSelectAll),w&&W>=9&&m(),a$){am(d);var i=function(){ai(window,"mouseup",i),setTimeout(n,20)};ah(window,"mouseup",i)}else setTimeout(n,50)}function m(){if(null!=e.selectionStart){var d=b.somethingSelected(),f="\u200B"+(d?e.value:"");e.value="\u21DA",e.value=f,a.prevInput=d?"":"\u200B",e.selectionStart=1,e.selectionEnd=f.length,c.selForContextMenu=b.doc.sel}}function n(){if(a.contextMenuPending==n&&(a.contextMenuPending=!1,a.wrapper.style.cssText=l,e.style.cssText=k,w&&W<9&&c.scrollbars.setScrollTop(c.scroller.scrollTop=j),null!=e.selectionStart)){(!w||w&&W<9)&&m();var f=0,d=function(){c.selForContextMenu==b.doc.sel&&0==e.selectionStart&&e.selectionEnd>0&&"\u200B"==a.prevInput?eh(b,aA)(b):f++ <10?c.detectingSelectAll=setTimeout(d,500):(c.selForContextMenu=null,c.input.reset())};c.detectingSelectAll=setTimeout(d,200)}}},c.prototype.readOnlyChanged=function(a){a||this.reset(),this.textarea.disabled="nocursor"==a,this.textarea.readOnly=!!a},c.prototype.setUneditable=function(){},c.prototype.needsContentAttribute=!1,function(b){var c=b.optionHandlers;function a(a,e,d,f){b.defaults[a]=e,d&&(c[a]=f?function(b,c,a){a!=f$&&d(b,c,a)}:d)}b.defineOption=a,b.Init=f$,a("value","",function(a,b){return a.setValue(b)},!0),a("mode",null,function(a,b){a.doc.modeOption=b,eG(a)},!0),a("indentUnit",2,eG,!0),a("indentWithTabs",!1),a("smartIndent",!0),a("tabSize",4,function(a){eH(a),de(a),dE(a)},!0),a("lineSeparator",null,function(b,c){if(b.doc.lineSep=c,c){var d=[],e=b.doc.first;b.doc.iter(function(f){for(var b=0;;){var a=f.text.indexOf(c,b);if(-1==a)break;b=a+c.length,d.push(aw(e,a))}e++});for(var a=d.length-1;a>=0;a--)ff(b.doc,c,d[a],aw(d[a].line,d[a].ch+c.length))}}),a("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b\u200e\u200f\u2028\u2029\ufeff\ufff9-\ufffc]/g,function(a,b,c){a.state.specialChars=new RegExp(b.source+(b.test(" ")?"":"| "),"g"),c!=f$&&a.refresh()}),a("specialCharPlaceholder",cz,function(a){return a.refresh()},!0),a("electricChars",!0),a("inputStyle",aW?"contenteditable":"textarea",function(){throw new Error("inputStyle can not (yet) be changed in a running editor")},!0),a("spellcheck",!1,function(a,b){return a.getInputField().spellcheck=b},!0),a("autocorrect",!1,function(a,b){return a.getInputField().autocorrect=b},!0),a("autocapitalize",!1,function(a,b){return a.getInputField().autocapitalize=b},!0),a("rtlMoveVisually",!aY),a("wholeLineUpdateBefore",!0),a("theme","default",function(a){fZ(a),ev(a)},!0),a("keyMap","default",function(c,e,d){var b=fA(e),a=d!=f$&&fA(d);a&&a.detach&&a.detach(c,b),b.attach&&b.attach(c,a||null)}),a("extraKeys",null),a("configureMouse",null),a("lineWrapping",!1,f0,!0),a("gutters",[],function(a,b){a.display.gutterSpecs=et(b,a.options.lineNumbers),ev(a)},!0),a("fixedGutter",!0,function(a,b){a.display.gutters.style.left=b?dz(a.display)+"px":"0",a.refresh()},!0),a("coverGutterNextToScrollbar",!1,function(a){return d4(a)},!0),a("scrollbarStyle","native",function(a){d6(a),d4(a),a.display.scrollbars.setScrollTop(a.doc.scrollTop),a.display.scrollbars.setScrollLeft(a.doc.scrollLeft)},!0),a("lineNumbers",!1,function(a,b){a.display.gutterSpecs=et(a.options.gutters,b),ev(a)},!0),a("firstLineNumber",1,ev,!0),a("lineNumberFormatter",function(a){return a},ev,!0),a("showCursorWhenSelecting",!1,dJ,!0),a("resetSelectionOnContextMenu",!0),a("lineWiseCopyCut",!0),a("pasteLinesPerSelection",!0),a("selectionsMayTouch",!1),a("readOnly",!1,function(a,b){"nocursor"==b&&(dS(a),a.display.input.blur()),a.display.input.readOnlyChanged(b)}),a("screenReaderLabel",null,function(b,a){a=""===a?null:a,b.display.input.screenReaderLabelChanged(a)}),a("disableInput",!1,function(a,b){b||a.display.input.reset()},!0),a("dragDrop",!0,f_),a("allowDropFileTypes",null),a("cursorBlinkRate",530),a("cursorScrollMargin",0),a("cursorHeight",1,dJ,!0),a("singleCursorHeightPerLine",!0,dJ,!0),a("workTime",100),a("workDelay",100),a("flattenSpans",!0,eH,!0),a("addModeClass",!1,eH,!0),a("pollInterval",100),a("undoDepth",200,function(a,b){return a.doc.history.undoDepth=b}),a("historyEventDelay",1250),a("viewportMargin",10,function(a){return a.refresh()},!0),a("maxHighlightLength",1e4,eH,!0),a("moveInputWithCursor",!0,function(a,b){b||a.display.input.resetPosition()}),a("tabindex",null,function(a,b){return a.display.input.getField().tabIndex=b||""}),a("autofocus",null),a("direction","ltr",function(a,b){return a.doc.setDirection(b)},!0),a("phrases",null)}(f),T=(k=f).optionHandlers,U=k.helpers={},k.prototype={constructor:k,focus:function(){window.focus(),this.display.input.focus()},setOption:function(a,b){var c=this.options,d=c[a];(c[a]!=b||"mode"==a)&&(c[a]=b,T.hasOwnProperty(a)&&eh(this,T[a])(this,b,d),aj(this,"optionChange",this,a))},getOption:function(a){return this.options[a]},getDoc:function(){return this.doc},addKeyMap:function(a,b){this.state.keyMaps[b?"push":"unshift"](fA(a))},removeKeyMap:function(c){for(var b=this.state.keyMaps,a=0;a<b.length;++a)if(b[a]==c||b[a].name==c)return b.splice(a,1),!0},addOverlay:g(function(a,b){var c=a.token?a:k.getMode(this.options,a);if(c.startState)throw new Error("Overlays may not be stateful.");(function(b,c,d){for(var a=0,e=d(c);a<b.length&&d(b[a])<=e;)a++;b.splice(a,0,c)})(this.state.overlays,{mode:c,modeSpec:a,opaque:b&&b.opaque,priority:b&&b.priority||0},function(a){return a.priority}),this.state.modeGen++,dE(this)}),removeOverlay:g(function(b){for(var c=this.state.overlays,a=0;a<c.length;++a){var d=c[a].modeSpec;if(d==b||"string"==typeof b&&d.name==b){c.splice(a,1),this.state.modeGen++,dE(this);return}}}),indentLine:g(function(b,a,c){"string"!=typeof a&&"number"!=typeof a&&(a=null==a?this.options.smartIndent?"smart":"prev":a?"add":"subtract"),bL(this.doc,b)&&f3(this,b,a,c)}),indentSelection:g(function(h){for(var d=this.doc.sel.ranges,c=-1,a=0;a<d.length;a++){var b=d[a];if(b.empty())b.head.line>c&&(f3(this,b.head.line,h,!0),c=b.head.line,a==this.doc.sel.primIndex&&dY(this));else{var e=b.from(),i=b.to(),j=Math.max(c,e.line);c=Math.min(this.lastLine(),i.line-(i.ch?0:1))+1;for(var f=j;f<c;++f)f3(this,f,h);var g=this.doc.sel.ranges;0==e.ch&&d.length==g.length&&g[a].from().ch>0&&eZ(this.doc,a,new I(e,g[a].to()),a7)}}}),getTokenAt:function(a,b){return b1(this,a,b)},getLineTokens:function(a,b){return b1(this,aw(a),b,!0)},getTokenTypeAt:function(d){d=bS(this.doc,d);var a,c=bX(this,bF(this.doc,d.line)),g=0,h=(c.length-1)/2,e=d.ch;if(0==e)a=c[2];else for(;;){var b=g+h>>1;if((b?c[2*b-1]:0)>=e)h=b;else if(c[2*b+1]<e)g=b+1;else{a=c[2*b+2];break}}var f=a?a.indexOf("overlay "):-1;return f<0?a:0==f?null:a.slice(0,f-1)},getModeAt:function(b){var a=this.doc.mode;return a.innerMode?k.innerMode(a,this.getTokenAt(b).state).mode:a},getHelper:function(a,b){return this.getHelpers(a,b)[0]},getHelpers:function(i,c){var d=[];if(!U.hasOwnProperty(c))return d;var b=U[c],a=this.getModeAt(i);if("string"==typeof a[c])b[a[c]]&&d.push(b[a[c]]);else if(a[c])for(var e=0;e<a[c].length;e++){var h=b[a[c][e]];h&&d.push(h)}else a.helperType&&b[a.helperType]?d.push(b[a.helperType]):b[a.name]&&d.push(b[a.name]);for(var f=0;f<b._global.length;f++){var g=b._global[f];g.pred(a,this)&& -1==ac(d,g.val)&&d.push(g.val)}return d},getStateAfter:function(a,c){var b=this.doc;return a=bR(b,null==a?b.first+b.size-1:a),bY(this,a+1,c).state},cursorCoords:function(a,d){var c,b=this.doc.sel.primary();return c=null==a?b.head:"object"==typeof a?bS(this.doc,a):a?b.from():b.to(),dl(this,c,d||"page")},charCoords:function(a,b){return dk(this,bS(this.doc,a),b||"page")},coordsChar:function(a,b){return a=dj(this,a,b||"page"),dp(this,a.left,a.top)},lineAtHeight:function(a,b){return a=dj(this,{top:a,left:0},b||"page").top,bK(this.doc,a+this.display.viewOffset)},heightAtLine:function(a,e,f){var b,c=!1;if("number"==typeof a){var d=this.doc.first+this.doc.size-1;a<this.doc.first?a=this.doc.first:a>d&&(a=d,c=!0),b=bF(this.doc,a)}else b=a;return di(this,b,{top:0,left:0},e||"page",f||c).top+(c?this.doc.height-cr(b):0)},defaultTextHeight:function(){return dw(this.display)},defaultCharWidth:function(){return dx(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(b,a,m,f,i){var g,j,h,d=this.display,e=(b=dl(this,bS(this.doc,b))).bottom,c=b.left;if(a.style.position="absolute",a.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(a),d.sizer.appendChild(a),"over"==f)e=b.top;else if("above"==f||"near"==f){var k=Math.max(d.wrapper.clientHeight,this.doc.height),l=Math.max(d.sizer.clientWidth,d.lineSpace.clientWidth);("above"==f||b.bottom+a.offsetHeight>k)&&b.top>a.offsetHeight?e=b.top-a.offsetHeight:b.bottom+a.offsetHeight<=k&&(e=b.bottom),c+a.offsetWidth>l&&(c=l-a.offsetWidth)}a.style.top=e+"px",a.style.left=a.style.right="","right"==i?(c=d.sizer.clientWidth-a.offsetWidth,a.style.right="0px"):("left"==i?c=0:"middle"==i&&(c=(d.sizer.clientWidth-a.offsetWidth)/2),a.style.left=c+"px"),m&&(g=this,j={left:c,top:e,right:c+a.offsetWidth,bottom:e+a.offsetHeight},null!=(h=dW(g,j)).scrollTop&&d0(g,h.scrollTop),null!=h.scrollLeft&&d2(g,h.scrollLeft))},triggerOnKeyDown:g(aG),triggerOnKeyPress:g(aI),triggerOnKeyUp:aH,triggerOnMouseDown:g(aK),execCommand:function(a){if(aF.hasOwnProperty(a))return aF[a].call(null,this)},triggerElectric:g(function(a){f7(this,a)}),findPosH:function(e,a,f,g){var c=1;a<0&&(c=-1,a=-a);for(var b=bS(this.doc,e),d=0;d<a&&!(b=gb(this.doc,b,c,f,g)).hitSide;++d);return b},moveH:g(function(a,b){var c=this;this.extendSelectionsBy(function(d){return c.display.shift||c.doc.extend||d.empty()?gb(c.doc,d.head,a,b,c.options.rtlMoveVisually):a<0?d.from():d.to()},a9)}),deleteH:g(function(c,d){var a=this.doc.sel,b=this.doc;a.somethingSelected()?b.replaceSelection("",null,"+delete"):fB(this,function(a){var e=gb(b,a.head,c,d,!1);return c<0?{from:e,to:a.head}:{from:a.head,to:e}})}),findPosV:function(g,a,h,i){var e=1,b=i;a<0&&(e=-1,a=-a);for(var c=bS(this.doc,g),f=0;f<a;++f){var d=dl(this,c,"div");if(null==b?b=d.left:d.left=b,(c=gc(this,d,e,h)).hitSide)break}return c},moveV:g(function(d,e){var f=this,a=this.doc,c=[],g=!this.display.shift&&!a.extend&&a.sel.somethingSelected();if(a.extendSelectionsBy(function(b){if(g)return d<0?b.from():b.to();var h=dl(f,b.head,"div");null!=b.goalColumn&&(h.left=b.goalColumn),c.push(h.left);var i=gc(f,h,d,e);return"page"==e&&b==a.sel.primary()&&dX(f,dk(f,i,"div").top-h.top),i},a9),c.length)for(var b=0;b<a.sel.ranges.length;b++)a.sel.ranges[b].goalColumn=c[b]}),findWordAt:function(a){var c=bF(this.doc,a.line).text,b=a.ch,d=a.ch;if(c){var g=this.getHelper(a,"wordChars");("before"==a.sticky||d==c.length)&&b?--b:++d;for(var e=c.charAt(b),f=bg(e,g)?function(a){return bg(a,g)}:/\s/.test(e)?function(a){return/\s/.test(a)}:function(a){return!/\s/.test(a)&&!bg(a)};b>0&&f(c.charAt(b-1));)--b;for(;d<c.length&&f(c.charAt(d));)++d}return new I(aw(a.line,b),aw(a.line,d))},toggleOverwrite:function(a){(null==a||a!=this.state.overwrite)&&((this.state.overwrite=!this.state.overwrite)?aa(this.display.cursorDiv,"CodeMirror-overwrite"):Z(this.display.cursorDiv,"CodeMirror-overwrite"),aj(this,"overwriteToggle",this,this.state.overwrite))},hasFocus:function(){return this.display.input.getField()==a3()},isReadOnly:function(){return!!(this.options.readOnly||this.doc.cantEdit)},scrollTo:g(function(a,b){dZ(this,a,b)}),getScrollInfo:function(){var a=this.display.scroller;return{left:a.scrollLeft,top:a.scrollTop,height:a.scrollHeight-c_(this)-this.display.barHeight,width:a.scrollWidth-c_(this)-this.display.barWidth,clientHeight:c1(this),clientWidth:c0(this)}},scrollIntoView:g(function(a,b){if(null==a?(a={from:this.doc.sel.primary().head,to:null},null==b&&(b=this.options.cursorScrollMargin)):"number"==typeof a?a={from:aw(a,0),to:null}:null==a.from&&(a={from:a,to:null}),a.to||(a.to=a.from),a.margin=b||0,null!=a.from.line){var c,d;c=this,d=a,d$(c),c.curOp.scrollToPos=d}else d_(this,a.from,a.to,a.margin)}),setSize:g(function(a,b){var e=this,c=function(a){return"number"==typeof a||/^\d+$/.test(String(a))?a+"px":a};null!=a&&(this.display.wrapper.style.width=c(a)),null!=b&&(this.display.wrapper.style.height=c(b)),this.options.lineWrapping&&dd(this);var d=this.display.viewFrom;this.doc.iter(d,this.display.viewTo,function(a){if(a.widgets){for(var b=0;b<a.widgets.length;b++)if(a.widgets[b].noHScroll){dF(e,d,"widget");break}}++d}),this.curOp.forceUpdate=!0,aj(this,"refresh",this)}),operation:function(a){return eg(this,a)},startOperation:function(){return d8(this)},endOperation:function(){return d9(this)},refresh:g(function(){var a=this.display.cachedTextHeight;dE(this),this.curOp.forceUpdate=!0,de(this),dZ(this,this.doc.scrollLeft,this.doc.scrollTop),ep(this.display),(null==a||Math.abs(a-dw(this.display))>.5||this.options.lineWrapping)&&dB(this),aj(this,"refresh",this)}),swapDoc:g(function(a){var b=this.doc;return b.cm=null,this.state.selectingText&&this.state.selectingText(),eL(this,a),de(this),this.display.input.reset(),dZ(this,a.scrollLeft,a.scrollTop),this.curOp.forceScroll=!0,cJ(this,"swapDoc",this,b),b}),phrase:function(a){var b=this.options.phrases;return b&&Object.prototype.hasOwnProperty.call(b,a)?b[a]:a},getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},o(k),k.registerHelper=function(a,b,c){U.hasOwnProperty(a)||(U[a]=k[a]={_global:[]}),U[a][b]=c},k.registerGlobalHelper=function(a,c,d,b){k.registerHelper(a,c,b),U[a]._global.push({pred:d,val:b})};var aN="iter insert remove copy getEditor constructor".split(" ");for(var B in i.prototype)i.prototype.hasOwnProperty(B)&&0>ac(aN,B)&&(f.prototype[B]=function(a){return function(){return a.apply(this.doc,arguments)}}(i.prototype[B]));return o(i),f.inputStyles={textarea:c,contenteditable:b},f.defineMode=function(a){f.defaults.mode||"null"==a||(f.defaults.mode=a),bE.apply(this,arguments)},f.defineMIME=function(a,b){ap[a]=b},f.defineMode("null",function(){return{token:function(a){return a.skipToEnd()}}}),f.defineMIME("text/plain","null"),f.defineExtension=function(a,b){f.prototype[a]=b},f.defineDocExtension=function(a,b){i.prototype[a]=b},f.fromTextArea=function(b,a){if((a=a?a6(a):{}).value=b.value,!a.tabindex&&b.tabIndex&&(a.tabindex=b.tabIndex),!a.placeholder&&b.placeholder&&(a.placeholder=b.placeholder),null==a.autofocus){var e,c=a3();a.autofocus=c==b||null!=b.getAttribute("autofocus")&&c==document.body}function g(){b.value=h.getValue()}if(b.form&&(ah(b.form,"submit",g),!a.leaveSubmitMethodAlone)){var d=b.form;e=d.submit;try{var i=d.submit=function(){g(),d.submit=e,d.submit(),d.submit=i}}catch(j){}}a.finishInit=function(c){c.save=g,c.getTextArea=function(){return b},c.toTextArea=function(){c.toTextArea=isNaN,g(),b.parentNode.removeChild(c.getWrapperElement()),b.style.display="",b.form&&(ai(b.form,"submit",g),a.leaveSubmitMethodAlone||"function"!=typeof b.form.submit||(b.form.submit=e))}},b.style.display="none";var h=f(function(a){return b.parentNode.insertBefore(a,b.nextSibling)},a);return h},(a=f).off=ai,a.on=ah,a.wheelEventPixels=function(b){var a=ey(b);return a.x*=x,a.y*=x,a},a.Doc=i,a.splitLines=an,a.countColumn=ab,a.findColumn=ae,a.isWordChar=ag,a.Pass=ad,a.signal=aj,a.Line=H,a.changeEnd=az,a.scrollbarModel=ay,a.Pos=aw,a.cmpPos=ax,a.modes=ao,a.mimeModes=ap,a.resolveMode=aq,a.getMode=ar,a.modeExtensions=as,a.extendMode=function(a,b){a6(b,as.hasOwnProperty(a)?as[a]:as[a]={})},a.copyState=at,a.startState=av,a.innerMode=au,a.commands=aF,a.keyMap=j,a.keyName=aE,a.isModifierKey=aD,a.lookupKey=aC,a.normalizeKeyMap=function(a){var d={};for(var b in a)if(a.hasOwnProperty(b)){var h=a[b];if(/^(name|fallthrough|(de|at)tach)$/.test(b))continue;if("..."==h){delete a[b];continue}for(var e=bd(b.split(" "),fy),f=0;f<e.length;f++){var g=void 0,c=void 0;f==e.length-1?(c=e.join(" "),g=h):(c=e.slice(0,f+1).join(" "),g="...");var i=d[c];if(i){if(i!=g)throw new Error("Inconsistent bindings for "+c)}else d[c]=g}delete a[b]}for(var j in d)a[j]=d[j];return a},a.StringStream=e,a.SharedTextMarker=z,a.TextMarker=n,a.LineWidget=y,a.e_preventDefault=ak,a.e_stopPropagation=al,a.e_stop=am,a.addClass=aa,a.contains=_,a.rmClass=Z,a.keyNames=p,f.version="5.65.5",f})