(function(m){if("object"==typeof exports&&"object"==typeof module)module.exports=m();else{if("function"==typeof define&&define.amd)return define([],m);this.CodeMirror=m()}})(function(){function m(a,b){if(!(this instanceof m))return new m(a,b);this.options=b=b||{};Ra(Ne,b,!1);jc(b);var c=b.value;"string"==typeof c&&(c=new L(c,b.mode));this.doc=c;var d=this.display=new Oe(a,c);d.wrapper.CodeMirror=this;id(this);jd(this);b.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap");b.autofocus&& !kc&&M(this);this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,focused:!1,suppressEdits:!1,pasteIncoming:!1,cutIncoming:!1,draggingText:!1,highlight:new lc};aa&&setTimeout(T(U,this,!0),20);Pe(this);kd||(Qe(),kd=!0);var e=this;ba(this,function(){e.curOp.forceUpdate=true;ld(e,c);b.autofocus&&!kc||ja()==d.input?setTimeout(T(mc,e),20):vb(e);for(var a in Fa)if(Fa.hasOwnProperty(a))Fa[a](e,b[a],md);for(a=0;ab.maxLineLength&&(b.maxLineLength=d,b.maxLine=a)})}function jc(a){var b=F(a.gutters,"CodeMirror-linenumbers");-1==b&&a.lineNumbers?a.gutters=a.gutters.concat(["CodeMirror-linenumbers"]):-1b.clientWidth,f=d>b.clientHeight;f?(c.scrollbarV.style.display="block",c.scrollbarV.style.bottom=e?Za(c.measure)+"px":"0",c.scrollbarV.firstChild.style.height= Math.max(0,d-b.clientHeight+(b.barHeight||c.scrollbarV.clientHeight))+"px"):(c.scrollbarV.style.display="",c.scrollbarV.firstChild.style.height="0");e?(c.scrollbarH.style.display="block",c.scrollbarH.style.right=f?Za(c.measure)+"px":"0",c.scrollbarH.firstChild.style.width=b.scrollWidth-b.clientWidth+(b.barWidth||c.scrollbarH.clientWidth)+"px"):(c.scrollbarH.style.display="",c.scrollbarH.firstChild.style.width="0");e&&f?(c.scrollbarFiller.style.display="block",c.scrollbarFiller.style.height=c.scrollbarFiller.style.width= Za(c.measure)+"px"):c.scrollbarFiller.style.display="";e&&a.options.coverGutterNextToScrollbar&&a.options.fixedGutter?(c.gutterFiller.style.display="block",c.gutterFiller.style.height=Za(c.measure)+"px",c.gutterFiller.style.width=c.gutters.offsetWidth+"px"):c.gutterFiller.style.display="";!a.state.checkedOverlayScrollbar&&0=e)return{from:ua(b, fa(r(b,c))-a.wrapper.clientHeight),to:c}}return{from:d,to:Math.max(e,d+1)}}function rc(a){var b=a.display,c=b.view;if(b.alignWidgets||b.gutters.firstChild&&a.options.fixedGutter){for(var d=vc(b)-b.scroller.scrollLeft+a.doc.scrollLeft,e=b.gutters.offsetWidth,f=d+"px",g=0;g=c.viewFrom&&k.to<=c.viewTo&&0==rd(j))j=void 0;else{var o;o=j;if(o.options.lineNumbers){var w=o.doc,w=""+o.options.lineNumberFormatter(w.first+w.size-1+o.options.firstLineNumber),C=o.display;if(w.length!=C.lineNumChars){var m=C.measure.appendChild(q("div", [q("div",w)],"CodeMirror-linenumber CodeMirror-gutter-elt")),p=m.firstChild.offsetWidth,m=m.offsetWidth-p;C.lineGutter.style.width="";C.lineNumInnerWidth=Math.max(p,C.lineGutter.offsetWidth-m);C.lineNumWidth=C.lineNumInnerWidth+m;C.lineNumChars=C.lineNumInnerWidth?w.length:-1;C.lineGutter.style.width=C.lineNumWidth+"px";sc(o);o=!0}else o=!1}else o=!1;o&&ka(j);o=sd(j);p=l.first+l.size;w=Math.max(k.from-j.options.viewportMargin,l.first);C=Math.min(p,k.to+j.options.viewportMargin);c.viewFromw- c.viewFrom&&(w=Math.max(l.first,c.viewFrom));c.viewTo>C&&20>c.viewTo-C&&(C=Math.min(p,c.viewTo));la&&(w=wc(j.doc,w),C=td(j.doc,C));k=w!=c.viewFrom||C!=c.viewTo||c.lastSizeC!=c.wrapper.clientHeight;l=j;p=l.display;0==p.view.length||w>=p.viewTo||C<=p.viewFrom?(p.view=zb(l,w,C),p.viewFrom=w):(p.viewFrom>w?p.view=zb(l,w,p.viewFrom).concat(p.view):p.viewFromC&&(p.view=p.view.slice(0,$a(l,C)));p.viewTo= C;c.viewOffset=fa(r(j.doc,c.viewFrom));j.display.mover.style.top=c.viewOffset+"px";l=rd(j);if(!k&&0==l&&!n)j=void 0;else{n=ja();4l&&(l=qa(j)),0.001o))if(V(k.line,l),ud(k.line),k.rest)for(l=0;l=a.display.viewFrom&&g.to<=a.display.viewTo)break}a.display.updateLineNumbers=null;f&&(D(a,"update",a),(a.display.viewFrom!=d||a.display.viewTo!=e)&&D(a,"viewportChange",a,a.display.viewFrom,a.display.viewTo));return f}function ud(a){if(a.widgets)for(var b=0;bv(a,b)?b:a}function Bc(a,b){return 0>v(a,b)?a: b}function ga(a,b){this.ranges=a;this.primIndex=b}function z(a,b){this.anchor=a;this.head=b}function W(a,b){var c=a[b];a.sort(function(a,b){return v(a.from(),b.from())});b=F(a,c);for(c=1;cc)return p(c,r(a,c).text.length);var c=r(a,b.line).text.length,d=b.ch,c=null==d||d>c?p(b.line,c):0>d?p(b.line,0):b;return c}function ab(a,b){return b>=a.first&&bv(c,a),b!=0>v(d,a)?(a=c,c=d):b!=0>v(c,d)&&(c=d)),new z(a,c)):new z(d||c,c)}function Cb(a,b,c,d){G(a,new ga([bb(a,a.sel.primary(),b,c)],0),d)}function Bd(a,b,c){for(var d=[],e=0;ev(b.primary().head,a.sel.primary().head)?-1:1);Fd(a,Gd(a,b,d,!0));!(c&&!1===c.scroll)&&a.cm&&Ha(a.cm)}function Fd(a,b){b.equals(a.sel)||(a.sel=b,a.cm&&(a.cm.curOp.updateInput=a.cm.curOp.selectionChanged=!0,Hd(a.cm)),D(a,"cursorActivity",a))}function Id(a){Fd(a,Gd(a,a.sel,null,!1),va)}function Gd(a,b,c,d){for(var e,f=0;f=f.ch:j.to>f.ch))){if(d&&(E(k,"beforeCursorEnter"),k.explicitlyCleared))if(h.markedSpans){--i; continue}else break;if(k.atomic){i=k.find(0>g?-1:1);if(0==v(i,f)&&(i.ch+=g,0>i.ch?i=i.line>a.first?s(a,p(i.line-1)):null:i.ch>h.text.length&&(i=i.lineb&&(b=0);b=Math.round(b);d=Math.round(d);h.appendChild(q("div",null,"CodeMirror-selected","position: absolute; left: "+a+"px; top: "+b+"px; width: "+(null==c?k-a:c)+"px; height: "+(d-b)+"px"))} function e(b,c,e){var f=r(g,b),h=f.text.length,i,n;We(Y(f),c||0,null==e?h:e,function(g,m,q){var r=Gb(a,p(b,g),"div",f,"left"),s,t;g==m?(s=r,q=t=r.left):(s=Gb(a,p(b,m-1),"div",f,"right"),"rtl"==q&&(q=r,r=s,s=q),q=r.left,t=s.right);null==c&&0==g&&(q=j);3n.bottom||s.bottom==n.bottom&&s.right>n.right)n=s;q=a.display.viewTo)){var c=+new Date+a.options.workTime, d=cb(b.mode,db(a,b.frontier));ba(a,function(){b.iter(b.frontier,Math.min(b.first+b.size,a.display.viewTo+500),function(e){if(b.frontier>=a.display.viewFrom){var f=e.styles,g=Kd(a,e,d,true);e.styles=g.styles;if(g.classes)e.styleClasses=g.classes;else if(e.styleClasses)e.styleClasses=null;for(var g=!f||f.length!=e.styles.length,h=0;!g&&hc){Va(a,a.options.workDelay);return true}})})}}function Ye(a,b,c){for(var d,e,f=a.doc,g=c?-1:b-(a.doc.mode.innerMode?1E3:100);b>g;--b){if(b<=f.first)return f.first;var h=r(f,b-1);if(h.stateAfter&&(!c||b<=f.frontier))return b;h=Q(h.text,null,a.options.tabSize);if(null==e||d>h)e=b-1,d=h}return e}function db(a,b,c){var d=a.doc,e=a.display;if(!d.mode.startState)return!0;var f=Ye(a,b,c),g=f>d.first&&r(d,f-1).stateAfter,g=g?cb(d.mode,g):Ze(d.mode);d.iter(f,b,function(c){Cc(a,c.text,g);c.stateAfter= f==b-1||0==f%5||f>=e.viewFrom&&f=a.display.viewFrom&&b=c.lineN&&b c){c={map:e.measure.maps[f],cache:e.measure.caches[f],before:!0};break a}c=void 0}return{line:b,view:d,rect:null,map:c.map,cache:c.cache,before:c.before,hasHeights:!1}}function xc(a,b,c,d){b.before&&(c=-1);var e=c+(d||""),f;if(b.cache.hasOwnProperty(e))f=b.cache[e];else{b.rect||(b.rect=b.view.text.getBoundingClientRect());if(!b.hasHeights){var g=b.view,h=b.rect,i=a.options.lineWrapping,j=i&&a.display.scroller.clientWidth;if(!g.measure.heights||i&&g.measure.width!=j){var k=g.measure.heights=[];if(i){g.measure.width= j;g=g.text.firstChild.getClientRects();for(i=0;ic)w=m-p,o=w-1,c>=m&&(f="right");if(null!=o){l=k[d+2];if(p==m&&h==(l.insertLeft?"left":"right"))f=h;if("left"==h&&0==o)for(;d&&k[d-2]==k[d-3]&&k[d-1].insertLeft;)l= k[(d-=3)+2],f="left";if("right"==h&&o==m-p)for(;dc.from?f(a-1):f(a,d)}d=d||r(a.doc,b.line);e||(e=Ab(a,d));var h=Y(d),b=b.ch;if(!h)return f(b);var i=Gc(h,b),i=g(b,i);null!=hb&&(i.other=g(b,hb)); return i}function Qd(a,b){var c=0,b=s(a.doc,b);a.options.lineWrapping||(c=Wa(a.display)*b.ch);var d=r(a.doc,b.line),e=fa(d)+a.display.lineSpace.offsetTop;return{left:c,right:c,top:e,bottom:e+d.height}}function Ib(a,b,c,d){a=p(a,b);a.xRel=d;c&&(a.outside=!0);return a}function Hc(a,b,c){var d=a.doc,c=c+a.display.viewOffset;if(0>c)return Ib(d.first,0,!0,-1);var e=ua(d,c),f=d.first+d.size-1;if(e>f)return Ib(d.first+d.size-1,r(d,f).text.length,!0,1);0>b&&(b=0);for(d=r(d,e);;)if(e=$e(a,d,e,b,c),f=(d=ta(d, !1))&&d.find(0,!0),d&&(e.ch>f.from.ch||e.ch==f.from.ch&&0d.bottom)return d.left-i;if(gm)return Ib(c,l,q,1);for(;;){if(k?l==e||l==Ic(b,e,1):1>=l-e){k=dd?-1:1d){l=s;m=t;if(q=h)m+=1E3;n=r}else e=s,o=t,w=h,n-=r}}function qa(a){if(null!=a.cachedTextHeight)return a.cachedTextHeight;if(null==wa){wa=q("pre");for(var b=0;49>b;++b)wa.appendChild(document.createTextNode("x")),wa.appendChild(q("br"));wa.appendChild(document.createTextNode("x"))}X(a.measure,wa);b=wa.offsetHeight/50;3=d.viewTo)||d.maxLineChanged&&a.options.lineWrapping){var e=yb(a,{top:b.scrollTop,ensure:b.scrollToPos},b.forceUpdate);a.display.scroller.offsetHeight&&(a.doc.scrollTop=a.display.scroller.scrollTop)}!e&&b.selectionChanged&&yc(a);!e&&b.startHeight!=a.doc.height&&xb(a);if(null!=d.wheelStartX&&(null!=b.scrollTop||null!=b.scrollLeft||b.scrollToPos))d.wheelStartX= d.wheelStartY=null;null!=b.scrollTop&&d.scroller.scrollTop!=b.scrollTop&&(e=Math.max(0,Math.min(d.scroller.scrollHeight-d.scroller.clientHeight,b.scrollTop)),d.scroller.scrollTop=d.scrollbarV.scrollTop=c.scrollTop=e);null!=b.scrollLeft&&d.scroller.scrollLeft!=b.scrollLeft&&(e=Math.max(0,Math.min(d.scroller.scrollWidth-d.scroller.clientWidth,b.scrollLeft)),d.scroller.scrollLeft=d.scrollbarH.scrollLeft=c.scrollLeft=e,rc(a));if(b.scrollToPos){a:{c=s(a.doc,b.scrollToPos.from);d=s(a.doc,b.scrollToPos.to); e=b.scrollToPos.margin;for(null==e&&(e=0);;){var f=!1,g=ha(a,c),h=!d||d==c?g:ha(a,d),h=Mb(a,Math.min(g.left,h.left),Math.min(g.top,h.top)-e,Math.max(g.left,h.left),Math.max(g.bottom,h.bottom)+e),i=a.doc.scrollTop,j=a.doc.scrollLeft;null!=h.scrollTop&&(ib(a,h.scrollTop),1d.top+f.top)c=!0;else if(d.bottom+f.top>(window.innerHeight||document.documentElement.clientHeight))c=!1;null!=c&&!bf&&(d=q("div","​",null,"position: absolute; top: "+(d.top-e.viewOffset-a.display.lineSpace.offsetTop)+"px; height: "+(d.bottom-d.top+ca)+"px; left: "+d.left+"px; width: 2px;"),a.display.lineSpace.appendChild(d),d.scrollIntoView(c),a.display.lineSpace.removeChild(d))}}b.selectionChanged&&Hb(a);a.state.focused&&b.updateInput&&U(a,b.typing);c=b.maybeHiddenMarkers;d=b.maybeUnhiddenMarkers; if(c)for(e=0;eb))e.updateLineNumbers=b;a.curOp.viewChanged=!0;if(b>=e.viewTo)la&&wc(a.doc,b)e.viewFrom?ka(a):(e.viewFrom+=d,e.viewTo+=d);else if(b<=e.viewFrom&&c>=e.viewTo)ka(a);else if(b<= e.viewFrom){var f=Nb(a,c,c+d,1);f?(e.view=e.view.slice(f.index),e.viewFrom=f.lineN,e.viewTo+=d):ka(a)}else if(c>=e.viewTo)(f=Nb(a,b,b,-1))?(e.view=e.view.slice(0,f.index),e.viewTo=f.lineN):ka(a);else{var f=Nb(a,b,b,-1),g=Nb(a,c,c+d,1);f&&g?(e.view=e.view.slice(0,f.index).concat(zb(a,f.lineN,g.lineN)).concat(e.view.slice(g.index)),e.viewTo+=d):ka(a)}if(a=e.externalMeasured)c=e.lineN&&b=d.viewTo||(a=d.view[$a(a,b)],null!=a.node&&(a=a.changes||(a.changes=[]),-1==F(a,c)&&a.push(c)))}function ka(a){a.display.viewFrom=a.display.viewTo=a.doc.first;a.display.view=[];a.display.viewOffset=0}function $a(a,b){if(b>=a.display.viewTo)return null;b-=a.display.viewFrom;if(0>b)return null;for(var c=a.display.view,d=0;db)return d}function Nb(a,b,c,d){var e=$a(a,b),f=a.display.view;if(!la|| c==a.doc.first+a.doc.size)return{index:e,lineN:c};for(var g=0,h=a.display.viewFrom;gd?0:f.length-1))return null;c+=d*f[e-(0>d?1:0)].size;e+=d}return{index:e,lineN:c}}function rd(a){for(var a=a.display.view,b=0,c=0;cn.head.ch&&(!k||d.sel.ranges[k-1].head.line!=n.head.line))if(l=a.getModeAt(n.head),l.electricChars)for(o=0;o+new Date-Xd))Lc(b);else if(!$(c,b)&&!ya(c.display,b)&&(b.dataTransfer.setData("Text",c.getSelection()),b.dataTransfer.setDragImage&&!Yd)){var d=q("img",null,null,"position: fixed; left: 0; top: 0;");d.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="; R&&(d.width=d.height=1,c.display.wrapper.appendChild(d),d._top=d.offsetTop);b.dataTransfer.setDragImage(d,0,0);R&&d.parentNode.removeChild(d)}}),t(e.scroller,"dragenter",c),t(e.scroller,"dragover",c),t(e.scroller,"drop",B(a,df)));t(e.scroller,"paste",function(b){if(!ya(e,b)){a.state.pasteIncoming=true;M(a);jb(a)}});t(e.input,"paste",function(){if(J&&!a.state.fakedLastChar&&!(new Date-a.state.lastMiddleDown<200)){var b=e.input.selectionStart,c=e.input.selectionEnd;e.input.value=e.input.value+"$";e.input.selectionStart= b;e.input.selectionEnd=c;a.state.fakedLastChar=true}a.state.pasteIncoming=true;jb(a)});t(e.input,"cut",d);t(e.input,"copy",d);oc&&t(e.sizer,"mouseup",function(){ja()==e.input&&e.input.blur();M(a)})}function ef(a){var b=a.display;b.cachedCharWidth=b.cachedTextHeight=b.cachedPaddingH=null;a.setSize()}function ya(a,b){for(var c=b.target||b.srcElement;c!=a.wrapper;c=c.parentNode)if(!c||c.ignoreEvents||c.parentNode==a.sizer&&c!=a.mover)return!0}function Ma(a,b,c,d){var e=a.display;if(!c&&(c=b.target|| b.srcElement,c==e.scrollbarH||c==e.scrollbarV||c==e.scrollbarFiller||c==e.gutterFiller))return null;var f,g,e=e.lineSpace.getBoundingClientRect();try{f=b.clientX-e.left,g=b.clientY-e.top}catch(h){return null}var b=Hc(a,f,g),i;if(d&&1==b.xRel&&(i=r(a.doc,b.line).text).length==b.ch)d=Q(i,i.length,a.options.tabSize)-i.length,b=p(b.line,Math.max(0,Math.round((f-Jd(a.display).left)/Wa(a.display))-d));return b}function qd(a){if(!$(this,a)){var b=this.display;b.shift=a.shiftKey;if(ya(b,a))J||(b.scroller.draggable= !1,setTimeout(function(){b.scroller.draggable=!0},100));else if(!Mc(this,a,"gutterClick",!0,D)){var c=Ma(this,a);window.focus();switch(Zd(a)){case 1:c?ff(this,a,c):(a.target||a.srcElement)==b.scroller&&K(a);break;case 2:J&&(this.state.lastMiddleDown=+new Date);c&&Cb(this.doc,c);setTimeout(T(M,this),20);K(a);break;case 3:Oc&&Sd(this,a)}}}}function ff(a,b,c){setTimeout(T(Kc,a),0);var d=+new Date,e;Qb&&Qb.time>d-400&&0==v(Qb.pos,c)?e="triple":Rb&&Rb.time>d-400&&0==v(Rb.pos,c)?(e="double",Qb={time:d, pos:c}):(e="single",Rb={time:d,pos:c});var d=a.doc.sel,f=ea?b.metaKey:b.ctrlKey;a.options.dragDrop&&gf&&!Pb(a)&&"single"==e&&-1Math.abs(b.clientX-g.clientX)+Math.abs(b.clientY-g.clientY)&&(K(g),d||Cb(a.doc,c),M(a),aa&&!H&&setTimeout(function(){document.body.focus();M(a)},20))}); J&&(e.scroller.draggable=!0);a.state.draggingText=f;e.scroller.dragDrop&&e.scroller.dragDrop();t(document,"mouseup",f);t(e.scroller,"drop",f)}function jf(a,b,c,d,e){function f(b){if(0!=v(o,b))if(o=b,"rect"==d){for(var e=[],f=a.options.tabSize,g=Q(r(j,c.line).text,c.ch,f),h=Q(r(j,b.line).text,b.ch,f),i=Math.min(g,h),g=Math.max(g,h),h=Math.min(c.line,b.line),w=Math.min(a.lastLine(),Math.max(c.line,b.line));h<=w;h++){var m=r(j,h).text,q=$d(m,i,f);i==g?e.push(new z(p(h,q),p(h,q))):m.length>q&&e.push(new z(p(h, q),p(h,$d(m,g,f))))}e.length||e.push(new z(c,c));G(j,W(l.ranges.slice(0,n).concat(e),n),{origin:"*mouse",scroll:!1});a.scrollIntoView(b)}else e=k,f=e.anchor,i=b,"single"!=d&&(b="double"==d?Nc(a,b):new z(p(b.line,0),s(j,p(b.line+1,0))),0=h.to||e.linew.bottom?20:0;k&&setTimeout(B(a,function(){m==c&&(i.scroller.scrollTop+=k,g(b))}),50)}}function h(b){m=Infinity;K(b);M(a);ia(document,"mousemove",q);ia(document,"mouseup",u);j.history.lastSelOrigin=null}var i=a.display,j=a.doc;K(b);var k,n,l=j.sel;e&&!b.shiftKey?(n=j.sel.contains(c),k=-1=Math.floor(a.display.gutters.getBoundingClientRect().right))return!1;d&&K(b);var d=a.display,i=d.lineDiv.getBoundingClientRect();if(g>i.bottom||!P(a,c))return Qc(b);g-=i.top-d.viewOffset;for(i=0;i=f)return f=ua(a.doc,g),e(a,c,a,f,a.options.gutters[i],b),Qc(b)}}function df(a){var b=this;if(!$(b,a)&&!ya(b.display,a)){K(a);I&&(Xd=+new Date);var c=Ma(b,a,!0),d=a.dataTransfer.files; if(c&&!Pb(b))if(d&&d.length&&window.FileReader&&window.File)for(var e=d.length,f=Array(e),g=0,a=function(a,d){var h=new FileReader;h.onload=B(b,function(){f[d]=h.result;if(++g==e){c=s(b.doc,c);var a={from:c,to:c,text:Ka(f.join("\n")),origin:"paste"};La(b.doc,a);Dd(b.doc,ma(c,xa(a)))}});h.readAsText(a)},h=0;hMath.abs(a.doc.scrollTop-b)||(a.doc.scrollTop=b,mb||yb(a,{top:b}),a.display.scroller.scrollTop!=b&&(a.display.scroller.scrollTop=b),a.display.scrollbarV.scrollTop!=b&&(a.display.scrollbarV.scrollTop=b),mb&&yb(a),Va(a,100))}function Ga(a,b,c){if(!(c?b==a.doc.scrollLeft:2>Math.abs(a.doc.scrollLeft- b)))if(b=Math.min(b,a.display.scroller.scrollWidth-a.display.scroller.clientWidth),a.doc.scrollLeft=b,rc(a),a.display.scroller.scrollLeft!=b&&(a.display.scroller.scrollLeft=b),a.display.scrollbarH.scrollLeft!=b)a.display.scrollbarH.scrollLeft=b}function Td(a,b){var c=b.wheelDeltaX,d=b.wheelDeltaY;null==c&&(b.detail&&b.axis==b.HORIZONTAL_AXIS)&&(c=b.detail);null==d&&b.detail&&b.axis==b.VERTICAL_AXIS?d=b.detail:null==d&&(d=b.wheelDelta);var e=a.display,f=e.scroller;if(c&&f.scrollWidth>f.clientWidth|| d&&f.scrollHeight>f.clientHeight){if(d&&ea&&J){var g=b.target,h=e.view;a:for(;g!=f;g=g.parentNode)for(var i=0;ig?h=Math.max(0,h+g-50):i=Math.min(a.doc.height,i+ g+50),yb(a,{top:h,bottom:i})),20>Tb)null==e.wheelStartX?(e.wheelStartX=f.scrollLeft,e.wheelStartY=f.scrollTop,e.wheelDX=c,e.wheelDY=d,setTimeout(function(){if(e.wheelStartX!=null){var a=f.scrollLeft-e.wheelStartX,b=f.scrollTop-e.wheelStartY,a=b&&e.wheelDY&&b/e.wheelDY||a&&e.wheelDX&&a/e.wheelDX;e.wheelStartX=e.wheelStartY=null;if(a){S=(S*Tb+a)/(Tb+1);++Tb}}},200)):(e.wheelDX+=c,e.wheelDY+=d)}}function Ub(a,b,c){if("string"==typeof b&&(b=Vb[b],!b))return!1;a.display.pollingFast&&Jc(a)&&(a.display.pollingFast= !1);var d=a.display.shift,e=!1;try{Pb(a)&&(a.state.suppressEdits=!0),c&&(a.display.shift=!1),e=b(a)!=ae}finally{a.display.shift=d,a.state.suppressEdits=!1}return e}function be(a){var b=a.state.keyMaps.slice(0);a.options.extraKeys&&b.push(a.options.extraKeys);b.push(a.options.keyMap);return b}function ce(a,b){var c=Rc(a.options.keyMap),d=c.auto;clearTimeout(de);d&&!lf(b)&&(de=setTimeout(function(){Rc(a.options.keyMap)==c&&(a.options.keyMap=d.call?d.call(null,a):d,od(a))},50));var e=mf(b,!0),f=!1;if(!e)return!1; f=be(a);if(f=b.shiftKey?Wb("Shift-"+e,f,function(b){return Ub(a,b,!0)})||Wb(e,f,function(b){if("string"==typeof b?/^go[A-Z]/.test(b):b.motion)return Ub(a,b)}):Wb(e,f,function(b){return Ub(a,b)}))K(b),Hb(a),D(a,"keyHandled",a,e,b);return f}function nf(a,b,c){var d=Wb("'"+c+"'",be(a),function(b){return Ub(a,b,!0)});d&&(K(b),Hb(a),D(a,"keyHandled",a,"'"+c+"'",b));return d}function Vd(a){Kc(this);if(!$(this,a)){aa&&27==a.keyCode&&(a.returnValue=!1);var b=a.keyCode;this.display.shift=16==b||a.shiftKey; var c=ce(this,a);R&&(Sc=c?b:null,!c&&(88==b&&!Rd&&(ea?a.metaKey:a.ctrlKey))&&this.replaceSelection("",null,"cut"));18==b&&!/\bCodeMirror-crosshair\b/.test(this.display.lineDiv.className)&&of(this)}}function of(a){function b(a){if(18==a.keyCode||!a.altKey)Xb(c,"CodeMirror-crosshair"),ia(document,"keyup",b),ia(document,"mouseover",b)}var c=a.display.lineDiv;Yb(c,"CodeMirror-crosshair");t(document,"keyup",b);t(document,"mouseover",b)}function Ud(a){!$(this,a)&&16==a.keyCode&&(this.doc.sel.shift=!1)} function Wd(a){if(!$(this,a)){var b=a.keyCode,c=a.charCode;if(R&&b==Sc)Sc=null,K(a);else if(!(R&&(!a.which||10>a.which)||oc)||!ce(this,a))b=String.fromCharCode(null==c?b:c),nf(this,a,b)||(I&&!H&&(this.display.inputHasSelection=null),jb(this))}}function mc(a){"nocursor"!=a.options.readOnly&&(a.state.focused||(E(a,"focus",a),a.state.focused=!0,Yb(a.display.wrapper,"CodeMirror-focused"),!a.curOp&&a.display.selForContextMenu!=a.doc.sel&&(U(a),J&&setTimeout(T(U,a,!0),0))),Ob(a),Hb(a))}function vb(a){a.state.focused&& (E(a,"blur",a),a.state.focused=!1,Xb(a.display.wrapper,"CodeMirror-focused"));clearInterval(a.display.blinker);setTimeout(function(){if(!a.state.focused)a.display.shift=false},150)}function Sd(a,b){function c(){if(null!=e.input.selectionStart){var b=a.somethingSelected(),c=e.input.value="​"+(b?e.input.value:"");e.prevInput=b?"":"​";e.input.selectionStart=1;e.input.selectionEnd=c.length;e.selForContextMenu=a.doc.sel}}function d(){e.inputDiv.style.position="relative";e.input.style.cssText=h;H&&(e.scrollbarV.scrollTop= e.scroller.scrollTop=g);Ob(a);if(null!=e.input.selectionStart){(!I||H)&&c();var b=0,d=function(){e.selForContextMenu==a.doc.sel&&e.input.selectionStart==0?B(a,Vb.selectAll)(a):b++<10?e.detectingSelectAll=setTimeout(d,500):U(a)};e.detectingSelectAll=setTimeout(d,200)}}if(!$(a,b,"contextmenu")){var e=a.display;if(!ya(e,b)&&!(!P(a,"gutterContextMenu")?0:Mc(a,b,"gutterContextMenu",!1,E))){var f=Ma(a,b),g=e.scroller.scrollTop;if(f&&!R){a.options.resetSelectionOnContextMenu&&-1==a.doc.sel.contains(f)&& B(a,G)(a.doc,ma(f),va);var h=e.input.style.cssText;e.inputDiv.style.position="absolute";e.input.style.cssText="position: fixed; width: 30px; height: 30px; top: "+(b.clientY-5)+"px; left: "+(b.clientX-5)+"px; z-index: 1000; background: "+(I?"rgba(255, 255, 255, .05)":"transparent")+"; outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);";M(a);U(a);a.somethingSelected()||(e.input.value=e.prevInput=" ");e.selForContextMenu=a.doc.sel;clearTimeout(e.detectingSelectAll); I&&!H&&c();if(Oc){Lc(b);var i=function(){ia(window,"mouseup",i);setTimeout(d,20)};t(window,"mouseup",i)}else setTimeout(d,50)}}}}function ee(a,b){if(0>v(a,b.from))return a;if(0>=v(a,b.to))return xa(b);var c=a.line+b.text.length-(b.to.line-b.from.line)-1,d=a.ch;a.line==b.to.line&&(d+=xa(b).ch-b.to.ch);return p(c,d)}function Tc(a,b){for(var c=[],d=0;da.lastLine())){if(b.from.linee&&(b={from:b.from,to:p(e,r(a,e).text.length),text:[b.text[0]],origin:b.origin}); b.removed=ob(a,b.from,b.to);c||(c=Tc(a,b,null));a.cm?qf(a.cm,b,d):Xc(a,b,d);Db(a,c,va)}}function qf(a,b,c){var d=a.doc,e=a.display,f=b.from,g=b.to,h=!1,i=f.line;a.options.lineWrapping||(i=A(Z(r(d,f.line))),d.iter(i,g.line+1,function(a){if(a==e.maxLine)return h=!0}));-1e.maxLineLength){e.maxLine=a;e.maxLineLength=b;e.maxLineChanged=true;h=false}}),h&&(a.curOp.updateMaxLine= !0));d.frontier=Math.min(d.frontier,f.line);Va(a,400);c=b.text.length-(g.line-f.line)-1;f.line==g.line&&1==b.text.length&&!ne(a.doc,b)?na(a,f.line,"text"):O(a,f.line,g.line+1,c);c=P(a,"changes");if((d=P(a,"change"))||c)b={from:f,to:g,text:b.text,removed:b.removed,origin:b.origin},d&&D(a,"change",a,b),c&&(a.curOp.changeObjs||(a.curOp.changeObjs=[])).push(b);a.display.selForContextMenu=null}function Sb(a,b,c,d,e){d||(d=c);if(0>v(d,c))var f=d,d=c,c=f;"string"==typeof b&&(b=Ka(b));La(a,{from:c,to:d,text:b, origin:e})}function Mb(a,b,c,d,e){var f=a.display,g=qa(a.display);0>c&&(c=0);var h=a.curOp&&null!=a.curOp.scrollTop?a.curOp.scrollTop:f.scroller.scrollTop,i=f.scroller.clientHeight-ca,j={},k=a.doc.height+(f.mover.offsetHeight-f.lineSpace.offsetHeight),n=ck-g;ch+i&&(c=Math.min(c,(g?k:e)-i),c!=h&&(j.scrollTop=c));a=a.curOp&&null!=a.curOp.scrollLeft?a.curOp.scrollLeft:f.scroller.scrollLeft;h=f.scroller.clientWidth-ca;b+=f.gutters.offsetWidth;d+=f.gutters.offsetWidth;f=f.gutters.offsetWidth; c=bh+a-3&&(j.scrollLeft=d+10-h);return j}function Yc(a,b,c){(null!=b||null!=c)&&$b(a);null!=b&&(a.curOp.scrollLeft=(null==a.curOp.scrollLeft?a.doc.scrollLeft:a.curOp.scrollLeft)+b);null!=c&&(a.curOp.scrollTop=(null==a.curOp.scrollTop?a.doc.scrollTop:a.curOp.scrollTop)+c)}function Ha(a){$b(a);var b=a.getCursor(),c=b,d=b;a.options.lineWrapping||(c=b.ch?p(b.line,b.ch-1):b,d=p(b.line,b.ch+1));a.curOp.scrollToPos={from:c,to:d,margin:a.options.cursorScrollMargin, isCursor:!0}}function $b(a){var b=a.curOp.scrollToPos;if(b){a.curOp.scrollToPos=null;var c=Qd(a,b.from),d=Qd(a,b.to),b=Mb(a,Math.min(c.left,d.left),Math.min(c.top,d.top)-b.margin,Math.max(c.right,d.right),Math.max(c.bottom,d.bottom)+b.margin);a.scrollTo(b.scrollLeft,b.scrollTop)}}function kb(a,b,c,d){var e=a.doc,f;null==c&&(c="add");"smart"==c&&(a.doc.mode.indent?f=db(a,b):c="prev");var g=a.options.tabSize,h=r(e,b),i=Q(h.text,null,g);h.stateAfter&&(h.stateAfter=null);var j=h.text.match(/^\s*/)[0], k;if(!d&&!/\S/.test(h.text))k=0,c="not";else if("smart"==c&&(k=a.doc.mode.indent(f,h.text.slice(j.length),h.text),k==ae)){if(!d)return;c="prev"}"prev"==c?k=b>e.first?Q(r(e,b-1).text,null,g):0:"add"==c?k=i+a.options.indentUnit:"subtract"==c?k=i-a.options.indentUnit:"number"==typeof c&&(k=i+c);k=Math.max(0,k);d="";f=0;if(a.options.indentWithTabs)for(c=Math.floor(k/g);c;--c)f+=g,d+="\t";f=v(f.from,x(d).to);){var g=d.pop();if(0>v(g.from,f.from)){f.from=g.from;break}}d.push(f)}ba(a,function(){for(var b=d.length-1;0<=b;b--)Sb(a.doc, "",d[b].from,d[b].to,"+delete");Ha(a)})}function Zc(a,b,c,d,e){function f(b){var d=(e?Ic:pe)(j,h,c,!0);if(null==d){if(b=!b)b=g+c,b=a.first+a.size?b=k=!1:(g=b,b=j=r(a,b));if(b)h=e?(0>c?Kb:Jb)(j):0>c?j.text.length:0;else return k=!1}else h=d;return!0}var g=b.line,h=b.ch,i=c,j=r(a,g),k=!0;if("char"==d)f();else if("column"==d)f(!0);else if("word"==d||"group"==d)for(var n=null,d="group"==d,b=a.cm&&a.cm.getHelper(b,"wordChars"),l=!0;!(0>c)||f(!l);l=!1){var o=j.text.charAt(h)||"\n",o=cc(o,b)? "w":d&&"\n"==o?"n":!d||/\s/.test(o)?null:"p";d&&(!l&&!o)&&(o="s");if(n&&n!=o){0>c&&(c=1,f());break}o&&(n=o);if(0c?1.5:0.5)*qa(a.display))):"line"==d&&(g=0c?0>=g:g>=e.height){h.hitSide=!0;break}g+= 5*c}return h}function Nc(a,b){var c=r(a.doc,b.line).text,d=b.ch,e=b.ch;if(c){var f=a.getHelper(b,"wordChars");(0>b.xRel||e==c.length)&&d?--d:++e;for(var g=c.charAt(d),g=cc(g,f)?function(a){return cc(a,f)}:/\s/.test(g)?function(a){return/\s/.test(a)}:function(a){return!/\s/.test(a)&&!cc(a)};0=e:j.to>e);(i||(i=[])).push(new dc(k,j.from,n?null: j.to))}}c=i;if(d)for(var h=0,l;h=f:i.to>f)||i.from==f&&"bookmark"==j.type&&(!g||i.marker.insertLeft))k=null==i.from||(j.inclusiveLeft?i.from<=f:i.fromv(g.to,e.from)||0i||!c.inclusiveLeft&&!i)&&h.push({from:g.from,to:e.from});(0we(d,e.marker)))d=e.marker;return d}function re(a,b,c, d,e){a=r(a,b);if(a=la&&a.markedSpans)for(b=0;b=i||0>=h&&0<=i))if(0>=h&&0<(v(g.to,c)||(f.marker.inclusiveRight?1:0)-(e.inclusiveLeft?-1:0))||0<=h&&0>(v(g.from,d)||(f.marker.inclusiveLeft?-1:0)-(e.inclusiveRight?1:0)))return!0}}}function Z(a){for(var b;b=ta(a,!0);)a=b.find(-1,!0).line; return a}function wc(a,b){var c=r(a,b),d=Z(c);return c==d?b:A(d)}function td(a,b){if(b>a.lastLine())return b;var c=r(a,b),d;if(!ra(a,c))return b;for(;d=ta(c,!1);)c=d.find(1,!0).line;return A(c)+1}function ra(a,b){var c=la&&b.markedSpans;if(c)for(var d,e=0;ed;d++){var e=a.token(b,c);if(b.pos>b.start)return e}throw Error("Mode "+a.name+" failed to advance stream.");}function Ae(a,b,c,d,e,f, g){var h=c.flattenSpans;null==h&&(h=a.options.flattenSpans);var i=0,j=null,k=new gc(b,a.options.tabSize),n;for(""==b&&ye(ze(c,d),f);!k.eol();){k.pos>a.options.maxHighlightLength?(h=!1,g&&Cc(a,b,d,k.pos),k.pos=b.length,n=null):n=ye(ad(c,k,d),f);if(a.options.addModeClass){var l=m.innerMode(c,d).mode.name;l&&(n="m-"+(n?l+" "+n:l))}if(!h||j!=n)ia&&e.splice(h,1,a,e[h+1],d);h=h+2;i=Math.min(a,d)}if(b)if(g.opaque){e.splice(c,h-c,a,"cm-overlay "+b);h=c+2}else for(;cfb(g,1,2).getBoundingClientRect().right-h.right}if(g&&(f=Y(e)))c.addToken=Af(c.addToken,f);c.map=[];a:{g=c;var h=Be(a,e),i=e.markedSpans,j=e.text, k=0;if(i)for(var n=j.length,l=0,o=1,m="",p=void 0,r=0,s=void 0,t=void 0,u=void 0,v=void 0,x=void 0;;){if(r==l){for(var s=t=u=v="",x=null,r=Infinity,z=[],A=0;Al)){if(null!=y.to&&r>y.to&&(r=y.to,t=""),B.className&&(s+=" "+B.className),B.startStyle&&y.from==l&&(u+=" "+B.startStyle),B.endStyle&&y.to==r&&(t+=" "+B.endStyle),B.title&&!v&&(v=B.title),B.collapsed&&(!x||0>we(x.marker,B)))x=y}else y.from>l&&r>y.from&&(r=y.from);"bookmark"== B.type&&(y.from==l&&B.widgetNode)&&z.push(B)}if(x&&(x.from||0)==l)if(De(g,(null==x.to?n+1:x.to)-l,x.marker,null==x.from),null==x.to)break a;if(!x&&z.length)for(A=0;A=n)break;for(z=Math.min(n,r);;){if(m){A=l+m.length;x||(y=A>z?m.slice(0,z-l):m,g.addToken(g,y,p?p+s:s,u,l+y.length==r?t:"",v));if(A>=z){m=m.slice(z-l);l=z;break}l=A;u=""}m=j.slice(k,k=h[o++]);p=Ce(h[o++],g.cm.options)}}else for(var o=1;oi&&n.from<=i)break}if(n.to>=j)return a(c,d,e,f,g,h);a(c,d.slice(0,n.to-i),e,f,null,h);f=null;d=d.slice(n.to-i);i=n.to}}}function De(a,b,c,d){if(c=!d&&c.widgetNode)a.map.push(a.pos,a.pos+b,c),a.content.appendChild(c);a.pos+=b}function ne(a,b){return 0==b.from.ch&&0==b.to.ch&&""==x(b.text)&&(!a.cm||a.cm.options.wholeLineUpdateBefore)}function Xc(a,b,c,d){function e(a){return c? c[a]:null}function f(a,c,e){var f=d;a.text=c;a.stateAfter&&(a.stateAfter=null);a.styles&&(a.styles=null);null!=a.order&&(a.order=null);ue(a);ve(a,e);c=f?f(a):1;c!=a.height&&V(a,c);D(a,"change",a,b)}var g=b.from,h=b.to,i=b.text,j=r(a,g.line),k=r(a,h.line),n=x(i),l=e(i.length-1),o=h.line-g.line;if(ne(a,b)){for(var m=0,p=[];mb||b>=a.size)throw Error("There is no line "+(b+a.first)+" in the document.");for(var c=a;!c.lines;)for(var d=0;;++d){var e=c.children[d],f=e.chunkSize();if(bf-a.cm.options.historyEventDelay||"*"==b.origin.charAt(0))){var i; e.lastOp==d?(Ed(e.done),i=x(e.done)):e.done.length&&!x(e.done).ranges?i=x(e.done):1e.undoDepth;)e.done.shift(),e.done[0].ranges||e.done.shift()}e.done.push(c);e.generation=++e.maxGeneration;e.lastModTime= e.lastSelTime=f;e.lastOp=d;e.lastOrigin=e.lastSelOrigin=b.origin;j||E(a,"historyAdded")}function Eb(a,b){var c=x(b);(!c||!c.ranges||!c.equals(a))&&b.push(a)}function Ee(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 uf(a){if(!a)return null;for(var b=0,c;b=b)return d+Math.min(g, b-e);e+=f-d;e+=c-e%c;d=f+1;if(e>=b)return d}}function oe(a){for(;ic.length<=a;)ic.push(x(ic)+" ");return ic[a]}function x(a){return a[a.length-1]}function F(a,b){for(var c=0;c=b.offsetWidth&&2b||b==c&&g.to==b)d(Math.max(g.from,b),Math.min(g.to,c),1==g.level?"rtl":"ltr"),e=!0}e||d(b,c,"ltr")}function Fc(a){return a.level% 2?a.from:a.to}function Jb(a){return(a=Y(a))?a[0].level%2?a[0].to:a[0].from:0}function Kb(a){var b=Y(a);return!b?a.text.length:Fc(x(b))}function Le(a,b){var c=r(a.doc,b),d=Z(c);d!=c&&(b=A(d));c=Y(d);d=!c?0:c[0].level%2?Kb(d):Jb(d);return p(b,d)}function Gc(a,b){hb=null;for(var c=0,d;cb)return c;if(e.from==b||e.to==b)if(null==d)d=c;else{var f;f=e.level;var g=a[d].level,h=a[0].level;f=f==h?!0:g==h?!1:fg.from&&bb||b>a.text.length? null:b}var mb=/gecko\/\d/i.test(navigator.userAgent),aa=/MSIE \d/.test(navigator.userAgent),Ta=aa&&(null==document.documentMode||8>document.documentMode),H=aa&&(null==document.documentMode||9>document.documentMode),kf=aa&&(null==document.documentMode||10>document.documentMode),Ff=/Trident\/([7-9]|\d{2,})\./.test(navigator.userAgent),I=aa||Ff,J=/WebKit\//.test(navigator.userAgent),Gf=J&&/Qt\/\d+\.\d+/.test(navigator.userAgent),Hf=/Chrome\//.test(navigator.userAgent),R=/Opera\//.test(navigator.userAgent), Yd=/Apple Computer/.test(navigator.vendor),oc=/KHTML\//.test(navigator.userAgent),Re=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(navigator.userAgent),bf=/PhantomJS/.test(navigator.userAgent),Sa=/AppleWebKit/.test(navigator.userAgent)&&/Mobile\/\w+/.test(navigator.userAgent),kc=Sa||/Android|webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(navigator.userAgent),ea=Sa||/Mac/.test(navigator.platform),If=/win/i.test(navigator.platform),Ca=R&&navigator.userAgent.match(/Version\/(\d*\.\d*)/);Ca&&(Ca=Number(Ca[1])); Ca&&15<=Ca&&(R=!1,J=!0);var Me=ea&&(Gf||R&&(null==Ca||12.11>Ca)),Oc=mb||I&&!H,he=!1,la=!1,p=m.Pos=function(a,b){if(!(this instanceof p))return new p(a,b);this.line=a;this.ch=b},v=m.cmpPos=function(a,b){return a.line-b.line||a.ch-b.ch};ga.prototype={primary:function(){return this.ranges[this.primIndex]},equals:function(a){if(a==this)return true;if(a.primIndex!=this.primIndex||a.ranges.length!=this.ranges.length)return false;for(var b=0;b= 0&&v(a,d.to())<=0)return c}return-1}};z.prototype={from:function(){return Bc(this.anchor,this.head)},to:function(){return Ac(this.anchor,this.head)},empty:function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch}};var Dc={left:0,right:0,top:0,bottom:0},wa,af=0,Rb,Qb,Xd=0,Tb=0,S=null;I?S=-0.53:mb?S=15:Hf?S=-0.7:Yd&&(S=-1/3);var de,Sc=null,xa=m.changeEnd=function(a){return!a.text?a.to:p(a.from.line+a.text.length-1,x(a.text).length+(a.text.length==1?a.from.ch:0))};m.prototype= {constructor:m,focus:function(){window.focus();M(this);jb(this)},setOption:function(a,b){var c=this.options,d=c[a];if(!(c[a]==b&&a!="mode")){c[a]=b;Fa.hasOwnProperty(a)&&B(this,Fa[a])(this,b,d)}},getOption:function(a){return this.options[a]},getDoc:function(){return this.doc},addKeyMap:function(a,b){this.state.keyMaps[b?"push":"unshift"](a)},removeKeyMap:function(a){for(var b=this.state.keyMaps,c=0;cc){kb(this,e.head.line,a,true);c=e.head.line;d==this.doc.sel.primIndex&&Ha(this)}}else for(var f=Math.max(c,e.from().line),c=e.to(),c=Math.min(this.lastLine(),c.line-(c.ch?0:1))+1;f>1;if((f?b[f*2-1]:0)>=a)d=f;else if(b[f*2+1]d){a=d;c=true}d=r(this.doc,a);return Ec(this,d,{top:0,left:0},b||"page").top+(c?this.doc.height-fa(d):0)},defaultTextHeight:function(){return qa(this.display)},defaultCharWidth:function(){return Wa(this.display)},setGutterMarker:y(function(a,b,c){return ac(this,a,"gutter",function(a){var e=a.gutterMarkers||(a.gutterMarkers={});e[b]=c; if(!c&&Je(e))a.gutterMarkers=null;return true})}),clearGutter:y(function(a){var b=this,c=b.doc,d=c.first;c.iter(function(c){if(c.gutterMarkers&&c.gutterMarkers[a]){c.gutterMarkers[a]=null;na(b,d,"gutter");if(Je(c.gutterMarkers))c.gutterMarkers=null}++d})}),addLineClass:y(function(a,b,c){return ac(this,a,"class",function(a){var e=b=="text"?"textClass":b=="background"?"bgClass":"wrapClass";if(a[e]){if(RegExp("(?:^|\\s)"+c+"(?:$|\\s)").test(a[e]))return false;a[e]=a[e]+(" "+c)}else a[e]=c;return true})}), removeLineClass:y(function(a,b,c){return ac(this,a,"class",function(a){var e=b=="text"?"textClass":b=="background"?"bgClass":"wrapClass",f=a[e];if(f)if(c==null)a[e]=null;else{var g=f.match(RegExp("(?:^|\\s+)"+c+"(?:$|\\s+)"));if(!g)return false;var h=g.index+g[0].length;a[e]=f.slice(0,g.index)+(!g.index||h==f.length?"":" ")+f.slice(h)||null}else return false;return true})}),addLineWidget:y(function(a,b,c){return vf(this,a,b,c)}),removeLineWidget:function(a){a.clear()},lineInfo:function(a){if(typeof a== "number"){if(!ab(this.doc,a))return null;var b=a,a=r(this.doc,a);if(!a)return null}else{b=A(a);if(b==null)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}},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(a,b,c,d,e){var f=this.display,a=ha(this,s(this.doc,a)),g=a.bottom,h=a.left;b.style.position="absolute";f.sizer.appendChild(b);if(d=="over")g= a.top;else if(d=="above"||d=="near"){var i=Math.max(f.wrapper.clientHeight,this.doc.height),j=Math.max(f.sizer.clientWidth,f.lineSpace.clientWidth);if((d=="above"||a.bottom+b.offsetHeight>i)&&a.top>b.offsetHeight)g=a.top-b.offsetHeight;else if(a.bottom+b.offsetHeight<=i)g=a.bottom;h+b.offsetWidth>j&&(h=j-b.offsetWidth)}b.style.top=g+"px";b.style.left=b.style.right="";if(e=="right"){h=f.sizer.clientWidth-b.offsetWidth;b.style.right="0px"}else{e=="left"?h=0:e=="middle"&&(h=(f.sizer.clientWidth-b.offsetWidth)/ 2);b.style.left=h+"px"}if(c){a=Mb(this,h,g,h+b.offsetWidth,g+b.offsetHeight);a.scrollTop!=null&&ib(this,a.scrollTop);a.scrollLeft!=null&&Ga(this,a.scrollLeft)}},triggerOnKeyDown:y(Vd),triggerOnKeyPress:y(Wd),triggerOnKeyUp:y(Ud),execCommand:function(a){if(Vb.hasOwnProperty(a))return Vb[a](this)},findPosH:function(a,b,c,d){var e=1;if(b<0){e=-1;b=-b}for(var f=0,a=s(this.doc,a);f0.5)&&qc(this);E(this,"refresh",this)}),swapDoc:y(function(a){var b=this.doc;b.cm=null;ld(this,a);Xa(this);U(this);this.scrollTo(a.scrollLeft,a.scrollTop);D(this,"swapDoc",this,b);return b}),getInputField:function(){return this.display.input},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}};Pa(m);var Ne=m.defaults= {},Fa=m.optionHandlers={},md=m.Init={toString:function(){return"CodeMirror.Init"}};u("value","",function(a,b){a.setValue(b)},!0);u("mode",null,function(a,b){a.doc.modeOption=b;pc(a)},!0);u("indentUnit",2,pc,!0);u("indentWithTabs",!1);u("smartIndent",!0);u("tabSize",4,function(a){Ua(a);Xa(a);O(a)},!0);u("specialChars",/[\t\u0000-\u0019\u00ad\u200b\u2028\u2029\ufeff]/g,function(a,b){a.options.specialChars=RegExp(b.source+(b.test("\t")?"":"|\t"),"g");a.refresh()},!0);u("specialCharPlaceholder",function(a){var b= q("span","•","cm-invalidchar");b.title="\\u"+a.charCodeAt(0).toString(16);return b},function(a){a.refresh()},!0);u("electricChars",!0);u("rtlMoveVisually",!If);u("wholeLineUpdateBefore",!0);u("theme","default",function(a){jd(a);Ya(a)},!0);u("keyMap","default",od);u("extraKeys",null);u("lineWrapping",!1,function(a){if(a.options.lineWrapping){Yb(a.display.wrapper,"CodeMirror-wrap");a.display.sizer.style.minWidth=""}else{Xb(a.display.wrapper,"CodeMirror-wrap");tc(a)}qc(a);O(a);Xa(a);setTimeout(function(){xb(a)}, 100)},!0);u("gutters",[],function(a){jc(a.options);Ya(a)},!0);u("fixedGutter",!0,function(a,b){a.display.gutters.style.left=b?vc(a.display)+"px":"0";a.refresh()},!0);u("coverGutterNextToScrollbar",!1,xb,!0);u("lineNumbers",!1,function(a){jc(a.options);Ya(a)},!0);u("firstLineNumber",1,Ya,!0);u("lineNumberFormatter",function(a){return a},Ya,!0);u("showCursorWhenSelecting",!1,yc,!0);u("resetSelectionOnContextMenu",!0);u("readOnly",!1,function(a,b){if(b=="nocursor"){vb(a);a.display.input.blur();a.display.disabled= true}else{a.display.disabled=false;b||U(a)}});u("disableInput",!1,function(a,b){b||U(a)},!0);u("dragDrop",!0);u("cursorBlinkRate",530);u("cursorScrollMargin",0);u("cursorHeight",1);u("workTime",100);u("workDelay",100);u("flattenSpans",!0,Ua,!0);u("addModeClass",!1,Ua,!0);u("pollInterval",100);u("undoDepth",200,function(a,b){a.doc.history.undoDepth=b});u("historyEventDelay",1250);u("viewportMargin",10,function(a){a.refresh()},!0);u("maxHighlightLength",1E4,Ua,!0);u("moveInputWithCursor",!0,function(a, b){if(!b)a.display.inputDiv.style.top=a.display.inputDiv.style.left=0});u("tabindex",null,function(a,b){a.display.input.tabIndex=b||""});u("autofocus",null);var hd=m.modes={},Qa=m.mimeModes={},hd=m.modes={},Qa=m.mimeModes={};m.defineMode=function(a,b){if(!m.defaults.mode&&a!="null")m.defaults.mode=a;if(arguments.length>2){b.dependencies=[];for(var c=2;c0){e=new p(e.line,e.ch+1);a.replaceRange(f.charAt(e.ch-1)+f.charAt(e.ch-2),p(e.line,e.ch-2),e,"+transpose")}else if(e.line>a.doc.first){var g=r(a.doc,e.line-1).text;g&&a.replaceRange(f.charAt(0)+"\n"+g.charAt(g.length-1),p(e.line-1,g.length-1),p(e.line,1),"+transpose")}}c.push(new z(e, e))}a.setSelections(c)})},newlineAndIndent:function(a){ba(a,function(){for(var b=a.listSelections().length,c=0;c=this.string.length},sol:function(){return this.pos==this.lineStart},peek:function(){return this.string.charAt(this.pos)||void 0},next:function(){if(this.posb},eatSpace:function(){for(var a=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos; return this.pos>a},skipToEnd:function(){this.pos=this.string.length},skipTo:function(a){a=this.string.indexOf(a,this.pos);if(a>-1){this.pos=a;return true}},backUp:function(a){this.pos=this.pos-a},column:function(){if(this.lastColumnPos0)return null;if(a&&b!==false)this.pos=this.pos+a[0].length;return a}},current:function(){return this.string.slice(this.start,this.pos)},hideFirstChars:function(a,b){this.lineStart= this.lineStart+a;try{return b()}finally{this.lineStart=this.lineStart-a}}};var Aa=m.TextMarker=function(a,b){this.lines=[];this.type=b;this.doc=a};Pa(Aa);Aa.prototype.clear=function(){if(!this.explicitlyCleared){var a=this.doc.cm,b=a&&!a.curOp;b&&Ia(a);if(P(this,"clear")){var c=this.find();c&&D(this,"clear",c.from,c.to)}for(var d=c=null,e=0;ea.display.maxLineLength){a.display.maxLine=f;a.display.maxLineLength=g;a.display.maxLineChanged=true}}c!=null&&(a&&this.collapsed)&&O(a,c,d+1);this.lines.length=0;this.explicitlyCleared=true;if(this.atomic&& this.doc.cantEdit){this.doc.cantEdit=false;a&&Id(a.doc)}a&&D(a,"markerCleared",a,this);b&&Ja(a);this.parent&&this.parent.clear()}};Aa.prototype.find=function(a,b){a==null&&this.type=="bookmark"&&(a=1);for(var c,d,e=0;e1||!(this.children[0]instanceof qb))){c=[];this.collapse(c);this.children=[new qb(c)];this.children[0].parent=this}},collapse:function(a){for(var b=0;b50){for(;e.lines.length>50;){a=e.lines.splice(e.lines.length-25,25);a=new qb(a);e.height=e.height-a.height;this.children.splice(d+1,0,a);a.parent=this}this.maybeSpill()}break}a=a-f}},maybeSpill:function(){if(!(this.children.length<=10)){var a=this;do{var b=a.children.splice(a.children.length-5,5),b=new rb(b);if(a.parent){a.size=a.size-b.size;a.height=a.height-b.height;var c=F(a.parent.children,a);a.parent.children.splice(c+1,0,b)}else{c=new rb(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,b,c){for(var d=0;d=0;f--)La(this,d[f]);b?Dd(this,b):this.cm&&Ha(this.cm)}),undo:N(function(){Zb(this,"undo")}),redo:N(function(){Zb(this,"redo")}),undoSelection:N(function(){Zb(this,"undo",true)}),redoSelection:N(function(){Zb(this,"redo",true)}),setExtending:function(a){this.extend=a},getExtending:function(){return this.extend},historySize:function(){for(var a=this.history,b=0,c=0,d=0;d=a.ch))b.push(e.marker.parent||e.marker)}return b},findMarks:function(a,b,c){var a=s(this,a),b=s(this,b),d=[],e=a.line;this.iter(a.line,b.line+1,function(f){if(f=f.markedSpans)for(var g=0;gh.to||h.from==null&&e!=a.line||e==b.line&&h.from>b.ch)&&(!c||c(h.marker)))d.push(h.marker.parent||h.marker)}++e});return d},getAllMarks:function(){var a=[];this.iter(function(b){if(b=b.markedSpans)for(var c= 0;ca){b=a;return true}a=a-d;++c});return s(this,p(c,b))},indexFromPos:function(a){var a=s(this,a),b=a.ch;if(a.lineb)b=a.from;if(a.to!=null&&a.toF(Kf,ub)&&(m.prototype[ub]=function(a){return function(){return a.apply(this.doc,arguments)}}(L.prototype[ub]));Pa(L);var K=m.e_preventDefault=function(a){a.preventDefault?a.preventDefault():a.returnValue=false}, Lf=m.e_stopPropagation=function(a){a.stopPropagation?a.stopPropagation():a.cancelBubble=true},Lc=m.e_stop=function(a){K(a);Lf(a)},t=m.on=function(a,b,c){if(a.addEventListener)a.addEventListener(b,c,false);else if(a.attachEvent)a.attachEvent("on"+b,c);else{a=a._handlers||(a._handlers={});(a[b]||(a[b]=[])).push(c)}},ia=m.off=function(a,b,c){if(a.removeEventListener)a.removeEventListener(b,c,false);else if(a.detachEvent)a.detachEvent("on"+b,c);else if(a=a._handlers&&a._handlers[b])for(b=0;b=b)return e+(b-d);e=e+(f-d);e=e+(c-e%c);d=f+1}},ic=[""],lb=function(a){a.select()};Sa?lb=function(a){a.selectionStart=0;a.selectionEnd=a.value.length}:I&&(lb=function(a){try{a.select()}catch(b){}});[].indexOf&&(F=function(a,b){return a.indexOf(b)});[].map&&(Wc=function(a,b){return a.map(b)});var Mf=/[\u00df\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,Ie=m.isWordChar=function(a){return/\w/.test(a)||a>"€"&&(a.toUpperCase()!=a.toLowerCase()||Mf.test(a))}, Ef=/[\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]/, fb;fb=document.createRange?function(a,b,c){var d=document.createRange();d.setEnd(a,c);d.setStart(a,b);return d}:function(a,b,c){var d=document.body.createTextRange();d.moveToElementText(a.parentNode);d.collapse(true);d.moveEnd("character",c);d.moveStart("character",b);return d};aa&&(ja=function(){try{return document.activeElement}catch(a){return document.body}});var kd=!1,gf=function(){if(H)return false;var a=q("div");return"draggable"in a||"dragDrop"in a}(),sb,fd,bd,Ka=m.splitLines=3!="\n\nb".split(/\n/).length? function(a){for(var b=0,c=[],d=a.length;b<=d;){var e=a.indexOf("\n",b);if(e==-1)e=a.length;var f=a.slice(b,a.charAt(e-1)=="\r"?e-1:e),g=f.indexOf("\r");if(g!=-1){c.push(f.slice(0,g));b=b+(g+1)}else{c.push(f);b=e+1}}return c}:function(a){return a.split(/\r\n?|\n/)},cf=window.getSelection?function(a){try{return a.selectionStart!=a.selectionEnd}catch(b){return false}}:function(a){try{var b=a.ownerDocument.selection.createRange()}catch(c){}return!b||b.parentElement()!=a?false:b.compareEndPoints("StartToEnd", b)!=0},Rd=function(){var a=q("div");if("oncopy"in a)return true;a.setAttribute("oncopy","return;");return typeof a.oncopy=="function"}(),pa={3:"Enter",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",107:"=",109:"-",127:"Delete",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/", 192:"`",219:"[",220:"\\",221:"]",222:"'",63232:"Up",63233:"Down",63234:"Left",63235:"Right",63272:"Delete",63273:"Home",63275:"End",63276:"PageUp",63277:"PageDown",63302:"Insert"};m.keyNames=pa;(function(){for(var a=0;a<10;a++)pa[a+48]=pa[a+96]=""+a;for(a=65;a<=90;a++)pa[a]=String.fromCharCode(a);for(a=1;a<=12;a++)pa[a+111]=pa[a+63235]="F"+a})();var hb,Cf=function(){function a(a){return a<=247?c.charAt(a):1424<=a&&a<=1524?"R":1536<=a&&a<=1773?d.charAt(a-1536):1774<=a&&a<=2220?"r":8192<=a&&a<=8203? "w":a==8204?"b":"L"}function b(a,b,c){this.level=a;this.from=b;this.to=c}var c="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",d="rrrrrrrrrrrr,rNNmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmrrrrrrrnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmNmmmm", e=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,f=/[stwN]/,g=/[LRr]/,h=/[Lb1n]/,i=/[1n]/;return function(c){if(!e.test(c))return false;for(var d=c.length,n=[],l=0,o;l