2015-07-04 03:31:01 +00:00
! function ( e ) { if ( "object" == typeof exports && "object" == typeof module ) module . exports = e ( ) ; else { if ( "function" == typeof define && define . amd ) return define ( [ ] , e ) ; this . CodeMirror = e ( ) } } ( function ( ) { "use strict" ; function e ( n , r ) { if ( ! ( this instanceof e ) ) return new e ( n , r ) ; this . options = r = r ? Ii ( r ) : { } , Ii ( Xo , r , ! 1 ) , p ( r ) ; var i = r . value ; "string" == typeof i && ( i = new ba ( i , r . mode ) ) , this . doc = i ; var o = new e . inputStyles [ r . inputStyle ] ( this ) , a = this . display = new t ( n , i , o ) ; a . wrapper . CodeMirror = this , c ( this ) , l ( this ) , r . lineWrapping && ( this . display . wrapper . className += " CodeMirror-wrap" ) , r . autofocus && ! So && a . input . focus ( ) , v ( this ) , this . state = { keyMaps : [ ] , overlays : [ ] , modeGen : 0 , overwrite : ! 1 , delayingBlurEvent : ! 1 , focused : ! 1 , suppressEdits : ! 1 , pasteIncoming : ! 1 , cutIncoming : ! 1 , draggingText : ! 1 , highlight : new Li , keySeq : null , specialChars : null } ; var s = this ; mo && 11 > go && setTimeout ( function ( ) { s . display . input . reset ( ! 0 ) } , 20 ) , Ht ( this ) , Gi ( ) , xt ( this ) , this . curOp . forceUpdate = ! 0 , Kr ( this , i ) , r . autofocus && ! So || s . hasFocus ( ) ? setTimeout ( Pi ( mn , this ) , 20 ) : gn ( this ) ; for ( var u in Zo ) Zo . hasOwnProperty ( u ) && Zo [ u ] ( this , r [ u ] , Yo ) ; k ( this ) , r . finishInit && r . finishInit ( this ) ; for ( var f = 0 ; f < ta . length ; ++ f ) ta [ f ] ( this ) ; kt ( this ) , vo && r . lineWrapping && "optimizelegibility" == getComputedStyle ( a . lineDiv ) . textRendering && ( a . lineDiv . style . textRendering = "auto" ) } function t ( e , t , n ) { var r = this ; this . input = n , r . scrollbarFiller = Ri ( "div" , null , "CodeMirror-scrollbar-filler" ) , r . scrollbarFiller . setAttribute ( "cm-not-content" , "true" ) , r . gutterFiller = Ri ( "div" , null , "CodeMirror-gutter-filler" ) , r . gutterFiller . setAttribute ( "cm-not-content" , "true" ) , r . lineDiv = Ri ( "div" , null , "CodeMirror-code" ) , r . selectionDiv = Ri ( "div" , null , null , "position: relative; z-index: 1" ) , r . cursorDiv = Ri ( "div" , null , "CodeMirror-cursors" ) , r . measure = Ri ( "div" , null , "CodeMirror-measure" ) , r . lineMeasure = Ri ( "div" , null , "CodeMirror-measure" ) , r . lineSpace = Ri ( "div" , [ r . measure , r . lineMeasure , r . selectionDiv , r . cursorDiv , r . lineDiv ] , null , "position: relative; outline: none" ) , r . mover = Ri ( "div" , [ Ri ( "div" , [ r . lineSpace ] , "CodeMirror-lines" ) ] , null , "position: relative" ) , r . sizer = Ri ( "div" , [ r . mover ] , "CodeMirror-sizer" ) , r . sizerWidth = null , r . heightForcer = Ri ( "div" , null , null , "position: absolute; height: " + Aa + "px; width: 1px;" ) , r . gutters = Ri ( "div" , null , "CodeMirror-gutters" ) , r . lineGutter = null , r . scroller = Ri ( "div" , [ r . sizer , r . heightForcer , r . gutters ] , "CodeMirror-scroll" ) , r . scroller . setAttribute ( "tabIndex" , "-1" ) , r . wrapper = Ri ( "div" , [ r . scrollbarFiller , r . gutterFiller , r . scroller ] , "CodeMirror" ) , mo && 8 > go && ( r . gutters . style . zIndex = - 1 , r . scroller . style . paddingRight = 0 ) , vo || fo && So || ( r . scroller . draggable = ! 0 ) , e && ( e . appendChild ? e . appendChild ( r . wrapper ) : e ( r . wrapper ) ) , r . viewFrom = r . viewTo = t . first , r . reportedViewFrom = r . reportedViewTo = t . first , r . view = [ ] , r . renderedView = null , r . externalMeasured = null , r . viewOffset = 0 , r . lastWrapHeight = r . lastWrapWidth = 0 , r . updateLineNumbers = null , r . nativeBarWidth = r . barHeight = r . barWidth = 0 , r . scrollbarsClipped = ! 1 , r . lineNumWidth = r . lineNumInnerWidth = r . lineNumChars = null , r . alignWidgets = ! 1 , r . cachedCharWidth = r . cachedTextHeight = r . cachedPaddingH = null , r . maxLine = null , r . maxLineLength = 0 , r . maxLineChanged = ! 1 , r . wheelDX = r . wheelDY = r . wheelStartX = r . wheelStartY = null , r . shift = ! 1 , r . selForContextMenu = null , r . activeTouch = null , n . init ( r ) } function n ( t ) { t . doc . mode = e . getMode ( t . options , t . doc . modeOption ) , r ( t ) } function r ( e ) { e . doc . iter ( function ( e ) { e . stateAfter && ( e . stateAfter = null ) , e . styles && ( e . styles = null ) } ) , e . doc . frontier = e . doc . first , Fe ( e , 100 ) , e . state . modeGen ++ , e . curOp && It ( e ) } function i ( e ) { e . options . lineWrapping ? ( Ua ( e . display . wrapper , "CodeMirror-wrap" ) , e . display . sizer . style . minWidth = "" , e . display . sizerWidth = null ) : ( Ba ( e . display . wrapper , "CodeMirror-wrap" ) , d ( e ) ) , a ( e ) , It ( e ) , lt ( e ) , setTimeout ( function ( ) { y ( e ) } , 100 ) } function o ( e ) { var t = yt ( e . display ) , n = e . options . lineWrapping , r = n && Math . max ( 5 , e . display . scroller . clientWidth / bt ( e . display ) - 3 ) ; return function ( i ) { if ( xr ( e . doc , i ) ) return 0 ; var o = 0 ; if ( i . widgets ) for ( var a = 0 ; a < i . widgets . length ; a ++ ) i . widgets [ a ] . height && ( o += i . widgets [ a ] . height ) ; return n ? o + ( Math . ceil ( i . text . length / r ) || 1 ) * t : o + t } } function a ( e ) { var t = e . doc , n = o ( e ) ; t . iter ( function ( e ) { var t = n ( e ) ; t != e . height && Qr ( e , t ) } ) } function l ( e ) { e . display . wrapper . className = e . display . wrapper . class
2015-05-04 07:53:29 +00:00
2015-07-04 03:31:01 +00:00
} mo && 11 > go && ( i = it ( e . display . measure , i ) ) } else { l > 0 && ( c = r = "right" ) ; var f ; i = e . options . lineWrapping && ( f = a . getClientRects ( ) ) . length > 1 ? f [ "right" == r ? f . length - 1 : 0 ] : a . getBoundingClientRect ( ) } if ( mo && 9 > go && ! l && ( ! i || ! i . left && ! i . right ) ) { var d = a . parentNode . getClientRects ( ) [ 0 ] ; i = d ? { left : d . left , right : d . left + bt ( e . display ) , top : d . top , bottom : d . bottom } : Fo } for ( var p = i . top - t . rect . top , h = i . bottom - t . rect . top , m = ( p + h ) / 2 , g = t . view . measure . heights , u = 0 ; u < g . length - 1 && ! ( m < g [ u ] ) ; u ++ ) ; var v = u ? g [ u - 1 ] : 0 , y = g [ u ] , b = { left : ( "right" == c ? i . right : i . left ) - t . rect . left , right : ( "left" == c ? i . left : i . right ) - t . rect . left , top : v , bottom : y } ; return i . left || i . right || ( b . bogus = ! 0 ) , e . options . singleCursorHeightPerLine || ( b . rtop = p , b . rbottom = h ) , b } function it ( e , t ) { if ( ! window . screen || null == screen . logicalXDPI || screen . logicalXDPI == screen . deviceXDPI || ! Yi ( e ) ) return t ; var n = screen . logicalXDPI / screen . deviceXDPI , r = screen . logicalYDPI / screen . deviceYDPI ; return { left : t . left * n , right : t . right * n , top : t . top * r , bottom : t . bottom * r } } function ot ( e ) { if ( e . measure && ( e . measure . cache = { } , e . measure . heights = null , e . rest ) ) for ( var t = 0 ; t < e . rest . length ; t ++ ) e . measure . caches [ t ] = { } } function at ( e ) { e . display . externalMeasure = null , Wi ( e . display . lineMeasure ) ; for ( var t = 0 ; t < e . display . view . length ; t ++ ) ot ( e . display . view [ t ] ) } function lt ( e ) { at ( e ) , e . display . cachedCharWidth = e . display . cachedTextHeight = e . display . cachedPaddingH = null , e . options . lineWrapping || ( e . display . maxLineChanged = ! 0 ) , e . display . lineNumChars = null } function st ( ) { return window . pageXOffset || ( document . documentElement || document . body ) . scrollLeft } function ct ( ) { return window . pageYOffset || ( document . documentElement || document . body ) . scrollTop } function ut ( e , t , n , r ) { if ( t . widgets ) for ( var i = 0 ; i < t . widgets . length ; ++ i ) if ( t . widgets [ i ] . above ) { var o = wr ( t . widgets [ i ] ) ; n . top += o , n . bottom += o } if ( "line" == r ) return n ; r || ( r = "local" ) ; var a = ti ( t ) ; if ( "local" == r ? a += $e ( e . display ) : a -= e . display . viewOffset , "page" == r || "window" == r ) { var l = e . display . lineSpace . getBoundingClientRect ( ) ; a += l . top + ( "window" == r ? 0 : ct ( ) ) ; var s = l . left + ( "window" == r ? 0 : st ( ) ) ; n . left += s , n . right += s } return n . top += a , n . bottom += a , n } function ft ( e , t , n ) { if ( "div" == n ) return t ; var r = t . left , i = t . top ; if ( "page" == n ) r -= st ( ) , i -= ct ( ) ; else if ( "local" == n || ! n ) { var o = e . display . sizer . getBoundingClientRect ( ) ; r += o . left , i += o . top } var a = e . display . lineSpace . getBoundingClientRect ( ) ; return { left : r - a . left , top : i - a . top } } function dt ( e , t , n , r , i ) { return r || ( r = Xr ( e . doc , t . line ) ) , ut ( e , r , Qe ( e , r , t . ch , i ) , n ) } function pt ( e , t , n , r , i , o ) { function a ( t , a ) { var l = tt ( e , i , t , a ? "right" : "left" , o ) ; return a ? l . left = l . right : l . right = l . left , ut ( e , r , l , n ) } function l ( e , t ) { var n = s [ t ] , r = n . level % 2 ; return e == Ji ( n ) && t && n . level < s [ t - 1 ] . level ? ( n = s [ -- t ] , e = eo ( n ) - ( n . level % 2 ? 0 : 1 ) , r = ! 0 ) : e == eo ( n ) && t < s . length - 1 && n . level < s [ t + 1 ] . level && ( n = s [ ++ t ] , e = Ji ( n ) - n . level % 2 , r = ! 1 ) , r && e == n . to && e > n . from ? a ( e - 1 ) : a ( e , r ) } r = r || Xr ( e . doc , t . line ) , i || ( i = et ( e , r ) ) ; var s = ni ( r ) , c = t . ch ; if ( ! s ) return a ( c ) ; var u = lo ( s , c ) , f = l ( c , u ) ; return null != Ja && ( f . other = l ( c , Ja ) ) , f } function ht ( e , t ) { var n = 0 , t = ve ( e . doc , t ) ; e . options . lineWrapping || ( n = bt ( e . display ) * t . ch ) ; var r = Xr ( e . doc , t . line ) , i = ti ( r ) + $e ( e . display ) ; return { left : n , right : n , top : i , bottom : i + r . height } } function mt ( e , t , n , r ) { var i = Oo ( e , t ) ; return i . xRel = r , n && ( i . outside = ! 0 ) , i } function gt ( e , t , n ) { var r = e . doc ; if ( n += e . display . viewOffset , 0 > n ) return mt ( r . first , 0 , ! 0 , - 1 ) ; var i = ei ( r , n ) , o = r . first + r . size - 1 ; if ( i > o ) return mt ( r . first + r . size - 1 , Xr ( r , o ) . text . length , ! 0 , 1 ) ; 0 > t && ( t = 0 ) ; for ( var a = Xr ( r , i ) ; ; ) { var l = vt ( e , a , i , t , n ) , s = hr ( a ) , c = s && s . find ( 0 , ! 0 ) ; if ( ! s || ! ( l . ch > c . from . ch || l . ch == c . from . ch && l . xRel > 0 ) ) return l ; i = Jr ( a = c . to . line ) } } function vt ( e , t , n , r , i ) { function o ( r ) { var i = pt ( e , Oo ( n , r ) , "line" , t , c ) ; return l = ! 0 , a > i . bottom ? i . left - s : a < i . top ? i . left + s : ( l = ! 1 , i . left ) } var a = i - ti ( t ) , l = ! 1 , s = 2 * e . display . wrapper . clientWidth , c = et ( e , t ) , u = ni ( t ) , f = t . text . length , d = to ( t ) , p = no ( t ) , h = o ( d ) , m = l , g = o ( p ) , v = l ; if ( r > g ) return mt ( n , p , v , 1 ) ; for ( ; ; ) { if ( u ? p == d || p == co ( t , d , 1 ) : 1 >= p - d ) { for ( var y = h > r || g - r >= r - h ? d : p , b = r - ( y == d ? h : g ) ; Fi ( t . text . charAt ( y ) ) ; ) ++ y ; var x = mt ( n , y , y == d ? m : v , - 1 > b ? - 1 : b > 1 ? 1 : 0 ) ; return x } var _ = Math . ceil ( f / 2 ) , k = d + _ ; if ( u ) { k = d ; for ( var w = 0 ; _ > w ; ++ w ) k = co ( t , k , 1 ) } var C = o ( k ) ; C > r ? ( p = k , g = C , ( v = l ) && ( g += 1e3 ) , f = _ ) : ( d = k , h = C , m = l , f -= _ ) } } function yt ( e ) { if ( null != e . cachedTextHeight ) return e . cachedTextHeight ; if (
2015-05-04 07:53:29 +00:00
2015-07-04 03:31:01 +00:00
return ! 0 } var l = t . line , s = t . ch , c = n , u = Xr ( e , l ) , f = ! 0 ; if ( "char" == r ) a ( ) ; else if ( "column" == r ) a ( ! 0 ) ; else if ( "word" == r || "group" == r ) for ( var d = null , p = "group" == r , h = e . cm && e . cm . getHelper ( t , "wordChars" ) , m = ! 0 ; ! ( 0 > n ) || a ( ! m ) ; m = ! 1 ) { var g = u . text . charAt ( s ) || "\n" , v = Di ( g , h ) ? "w" : p && "\n" == g ? "n" : ! p || /\s/ . test ( g ) ? null : "p" ; if ( ! p || m || v || ( v = "s" ) , d && d != v ) { 0 > n && ( n = 1 , a ( ) ) ; break } if ( v && ( d = v ) , n > 0 && ! a ( ! m ) ) break } var y = Oe ( e , Oo ( l , s ) , c , ! 0 ) ; return f || ( y . hitSide = ! 0 ) , y } function Hn ( e , t , n , r ) { var i , o = e . doc , a = t . left ; if ( "page" == r ) { var l = Math . min ( e . display . wrapper . clientHeight , window . innerHeight || document . documentElement . clientHeight ) ; i = t . top + n * ( l - ( 0 > n ? 1.5 : . 5 ) * yt ( e . display ) ) } else "line" == r && ( i = n > 0 ? t . bottom + 3 : t . top - 3 ) ; for ( ; ; ) { var s = gt ( e , a , i ) ; if ( ! s . outside ) break ; if ( 0 > n ? 0 >= i : i >= o . height ) { s . hitSide = ! 0 ; break } i += 5 * n } return s } function $n ( t , n , r , i ) { e . defaults [ t ] = n , r && ( Zo [ t ] = i ? function ( e , t , n ) { n != Yo && r ( e , t , n ) } : r ) } function Bn ( e ) { for ( var t , n , r , i , o = e . split ( /-(?!$)/ ) , e = o [ o . length - 1 ] , a = 0 ; a < o . length - 1 ; a ++ ) { var l = o [ a ] ; if ( /^(cmd|meta|m)$/i . test ( l ) ) i = ! 0 ; else if ( /^a(lt)?$/i . test ( l ) ) t = ! 0 ; else if ( /^(c|ctrl|control)$/i . test ( l ) ) n = ! 0 ; else { if ( ! /^s(hift)$/i . test ( l ) ) throw new Error ( "Unrecognized modifier name: " + l ) ; r = ! 0 } } return t && ( e = "Alt-" + e ) , n && ( e = "Ctrl-" + e ) , i && ( e = "Cmd-" + e ) , r && ( e = "Shift-" + e ) , e } function Un ( e ) { return "string" == typeof e ? aa [ e ] : e } function Vn ( e , t , n , r , i ) { if ( r && r . shared ) return Gn ( e , t , n , r , i ) ; if ( e . cm && ! e . cm . curOp ) return zt ( e . cm , Vn ) ( e , t , n , r , i ) ; var o = new da ( e , i ) , a = No ( t , n ) ; if ( r && Ii ( r , o , ! 1 ) , a > 0 || 0 == a && o . clearWhenEmpty !== ! 1 ) return o ; if ( o . replacedWith && ( o . collapsed = ! 0 , o . widgetNode = Ri ( "span" , [ o . replacedWith ] , "CodeMirror-widget" ) , r . handleMouseEvents || o . widgetNode . setAttribute ( "cm-ignore-events" , "true" ) , r . insertLeft && ( o . widgetNode . insertLeft = ! 0 ) ) , o . collapsed ) { if ( mr ( e , t . line , t , n , o ) || t . line != n . line && mr ( e , n . line , t , n , o ) ) throw new Error ( "Inserting collapsed marker partially overlapping an existing one" ) ; qo = ! 0 } o . addToHistory && li ( e , { from : t , to : n , origin : "markText" } , e . sel , 0 / 0 ) ; var l , s = t . line , c = e . cm ; if ( e . iter ( s , n . line + 1 , function ( e ) { c && o . collapsed && ! c . options . lineWrapping && gr ( e ) == c . display . maxLine && ( l = ! 0 ) , o . collapsed && s != t . line && Qr ( e , 0 ) , er ( e , new Yn ( o , s == t . line ? t . ch : null , s == n . line ? n . ch : null ) ) , ++ s } ) , o . collapsed && e . iter ( t . line , n . line + 1 , function ( t ) { xr ( e , t ) && Qr ( t , 0 ) } ) , o . clearOnEnter && Sa ( o , "beforeCursorEnter" , function ( ) { o . clear ( ) } ) , o . readOnly && ( Eo = ! 0 , ( e . history . done . length || e . history . undone . length ) && e . clearHistory ( ) ) , o . collapsed && ( o . id = ++ fa , o . atomic = ! 0 ) , c ) { if ( l && ( c . curOp . updateMaxLine = ! 0 ) , o . collapsed ) It ( c , t . line , n . line + 1 ) ; else if ( o . className || o . title || o . startStyle || o . endStyle || o . css ) for ( var u = t . line ; u <= n . line ; u ++ ) Pt ( c , u , "text" ) ; o . atomic && Ee ( c . doc ) , _i ( c , "markerAdded" , c , o ) } return o } function Gn ( e , t , n , r , i ) { r = Ii ( r ) , r . shared = ! 1 ; var o = [ Vn ( e , t , n , r , i ) ] , a = o [ 0 ] , l = r . widgetNode ; return Gr ( e , function ( e ) { l && ( r . widgetNode = l . cloneNode ( ! 0 ) ) , o . push ( Vn ( e , ve ( e , t ) , ve ( e , n ) , r , i ) ) ; for ( var s = 0 ; s < e . linked . length ; ++ s ) if ( e . linked [ s ] . isParent ) return ; a = zi ( o ) } ) , new pa ( o , a ) } function Kn ( e ) { return e . findMarks ( Oo ( e . first , 0 ) , e . clipPos ( Oo ( e . lastLine ( ) ) ) , function ( e ) { return e . parent } ) } function Xn ( e , t ) { for ( var n = 0 ; n < t . length ; n ++ ) { var r = t [ n ] , i = r . find ( ) , o = e . clipPos ( i . from ) , a = e . clipPos ( i . to ) ; if ( No ( o , a ) ) { var l = Vn ( e , o , a , r . primary , r . primary . type ) ; r . markers . push ( l ) , l . parent = r } } } function Zn ( e ) { for ( var t = 0 ; t < e . length ; t ++ ) { var n = e [ t ] , r = [ n . primary . doc ] ; Gr ( n . primary . doc , function ( e ) { r . push ( e ) } ) ; for ( var i = 0 ; i < n . markers . length ; i ++ ) { var o = n . markers [ i ] ; - 1 == Ei ( r , o . doc ) && ( o . parent = null , n . markers . splice ( i -- , 1 ) ) } } } function Yn ( e , t , n ) { this . marker = e , this . from = t , this . to = n } function Qn ( e , t ) { if ( e ) for ( var n = 0 ; n < e . length ; ++ n ) { var r = e [ n ] ; if ( r . marker == t ) return r } } function Jn ( e , t ) { for ( var n , r = 0 ; r < e . length ; ++ r ) e [ r ] != t && ( n || ( n = [ ] ) ) . push ( e [ r ] ) ; return n } function er ( e , t ) { e . markedSpans = e . markedSpans ? e . markedSpans . concat ( [ t ] ) : [ t ] , t . marker . attachLine ( e ) } function tr ( e , t , n ) { if ( e ) for ( var r , i = 0 ; i < e . length ; ++ i ) { var o = e [ i ] , a = o . marker , l = null == o . from || ( a . inclusiveLeft ? o . from <= t : o . from < t ) ; if ( l || o . from == t && "bookmark" == a . type && ( ! n || ! o . marker . insertLeft ) ) { var s = null == o . to || ( a . inclusiveRight ? o . to >= t : o . to > t ) ; ( r || ( r = [ ] ) ) . push ( new Yn ( a , o . from , s ? null : o . to ) ) } } return r } function nr ( e , t , n ) { if ( e ) for ( var r , i = 0 ; i < e . length ;
this . composing || ( this . textarea . value = a ) , r . state . focused && Pa ( this . textarea ) , mo && go >= 9 && ( this . hasSelection = a ) } else e || ( this . composing || ( this . prevInput = this . textarea . value = "" ) , mo && go >= 9 && ( this . hasSelection = null ) ) ; this . inaccurateSelection = t } } , getField : function ( ) { return this . textarea } , supportsTouch : function ( ) { return ! 1 } , focus : function ( ) { if ( "nocursor" != this . cm . options . readOnly && ( ! So || $i ( ) != this . textarea ) ) try { this . textarea . focus ( ) } catch ( e ) { } } , blur : function ( ) { this . textarea . blur ( ) } , resetPosition : function ( ) { this . wrapper . style . top = this . wrapper . style . left = 0 } , receivedFocus : function ( ) { this . slowPoll ( ) } , slowPoll : function ( ) { var e = this ; e . pollingFast || e . polling . set ( this . cm . options . pollInterval , function ( ) { e . poll ( ) , e . cm . state . focused && e . slowPoll ( ) } ) } , fastPoll : function ( ) { function e ( ) { var r = n . poll ( ) ; r || t ? ( n . pollingFast = ! 1 , n . slowPoll ( ) ) : ( t = ! 0 , n . polling . set ( 60 , e ) ) } var t = ! 1 , n = this ; n . pollingFast = ! 0 , n . polling . set ( 20 , e ) } , poll : function ( ) { var e = this . cm , t = this . textarea , n = this . prevInput ; if ( this . contextMenuPending || ! e . state . focused || Xa ( t ) && ! n || Q ( e ) || e . options . disableInput || e . state . keySeq ) return ! 1 ; var r = t . value ; if ( r == n && ! e . somethingSelected ( ) ) return ! 1 ; if ( mo && go >= 9 && this . hasSelection === r || Mo && /[\uf700-\uf7ff]/ . test ( r ) ) return e . display . input . reset ( ) , ! 1 ; if ( e . doc . sel == e . display . selForContextMenu ) { var i = r . charCodeAt ( 0 ) ; if ( 8203 != i || n || ( n = " " ) , 8666 == i ) return this . reset ( ) , this . cm . execCommand ( "undo" ) } for ( var o = 0 , a = Math . min ( n . length , r . length ) ; a > o && n . charCodeAt ( o ) == r . charCodeAt ( o ) ; ) ++ o ; var l = this ; return At ( e , function ( ) { J ( e , r . slice ( o ) , n . length - o , null , l . composing ? "*compose" : null ) , r . length > 1e3 || r . indexOf ( "\n" ) > - 1 ? t . value = l . prevInput = "" : l . prevInput = r , l . composing && ( l . composing . range . clear ( ) , l . composing . range = e . markText ( l . composing . start , e . getCursor ( "to" ) , { className : "CodeMirror-composing" } ) ) } ) , ! 0 } , ensurePolled : function ( ) { this . pollingFast && this . poll ( ) && ( this . pollingFast = ! 1 ) } , onKeyPress : function ( ) { mo && go >= 9 && ( this . hasSelection = null ) , this . fastPoll ( ) } , onContextMenu : function ( e ) { function t ( ) { if ( null != a . selectionStart ) { var e = i . somethingSelected ( ) , t = " " + ( e ? a . value : "" ) ; a . value = "⇚" , a . value = t , r . prevInput = e ? "" : " " , a . selectionStart = 1 , a . selectionEnd = t . length , o . selForContextMenu = i . doc . sel } } function n ( ) { if ( r . contextMenuPending = ! 1 , r . wrapper . style . position = "relative" , a . style . cssText = u , mo && 9 > go && o . scrollbars . setScrollTop ( o . scroller . scrollTop = s ) , null != a . selectionStart ) { ( ! mo || mo && 9 > go ) && t ( ) ; var e = 0 , n = function ( ) { o . selForContextMenu == i . doc . sel && 0 == a . selectionStart && a . selectionEnd > 0 && " " == r . prevInput ? zt ( i , oa . selectAll ) ( i ) : e ++ < 10 ? o . detectingSelectAll = setTimeout ( n , 500 ) : o . input . reset ( ) } ; o . detectingSelectAll = setTimeout ( n , 200 ) } } var r = this , i = r . cm , o = i . display , a = r . textarea , l = Vt ( i , e ) , s = o . scroller . scrollTop ; if ( l && ! xo ) { var c = i . options . resetSelectionOnContextMenu ; c && - 1 == i . doc . sel . contains ( l ) && zt ( i , Te ) ( i . doc , me ( l ) , Ea ) ; var u = a . style . cssText ; if ( r . wrapper . style . position = "absolute" , a . style . cssText = "position: fixed; width: 30px; height: 30px; top: " + ( e . clientY - 5 ) + "px; left: " + ( e . clientX - 5 ) + "px; z-index: 1000; background: " + ( mo ? "rgba(255, 255, 255, .05)" : "transparent" ) + "; outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);" , vo ) var f = window . scrollY ; if ( o . input . focus ( ) , vo && window . scrollTo ( null , f ) , o . input . reset ( ) , i . somethingSelected ( ) || ( a . value = r . prevInput = " " ) , r . contextMenuPending = ! 0 , o . selForContextMenu = i . doc . sel , clearTimeout ( o . detectingSelectAll ) , mo && go >= 9 && t ( ) , zo ) { Ca ( e ) ; var d = function ( ) { Ma ( window , "mouseup" , d ) , setTimeout ( n , 20 ) } ; Sa ( window , "mouseup" , d ) } else setTimeout ( n , 50 ) } } , setUneditable : Oi , needsContentAttribute : ! 1 } , ie . prototype ) , ae . prototype = Ii ( { init : function ( e ) { function t ( e ) { if ( r . somethingSelected ( ) ) Io = r . getSelections ( ) , "cut" == e . type && r . replaceSelection ( "" , null , "cut" ) ; else { if ( ! r . options . lineWiseCopyCut ) return ; var t = ne ( r ) ; Io = t . text , "cut" == e . type && r . operation ( function ( ) { r . setSelections ( t . ranges , 0 , Ea ) , r . replaceSelection ( "" , null , "cut" ) } ) } if ( e . clipboardData && ! Co ) e . preventDefault ( ) , e . clipboardData . clearData ( ) , e . clipboardData . setData ( "text/plain" , Io . join ( "\n" ) ) ; else { var n = oe ( ) , i = n . firstChild ; r . display . lineSpace . insertBefore ( n , r . display . lineSpace . firstChild ) , i
! t && e . shiftKey && "Shift" != n && ( r = "Shift-" + r ) , r ) } ; e . fromTextArea = function ( t , n ) { function r ( ) { t . value = c . getValue ( ) } if ( n = n ? Ii ( n ) : { } , n . value = t . value , ! n . tabindex && t . tabIndex && ( n . tabindex = t . tabIndex ) , ! n . placeholder && t . placeholder && ( n . placeholder = t . placeholder ) , null == n . autofocus ) { var i = $i ( ) ; n . autofocus = i == t || null != t . getAttribute ( "autofocus" ) && i == document . body } if ( t . form && ( Sa ( t . form , "submit" , r ) , ! n . leaveSubmitMethodAlone ) ) { var o = t . form , a = o . submit ; try { var l = o . submit = function ( ) { r ( ) , o . submit = a , o . submit ( ) , o . submit = l } } catch ( s ) { } } n . finishInit = function ( e ) { e . save = r , e . getTextArea = function ( ) { return t } , e . toTextArea = function ( ) { e . toTextArea = isNaN , r ( ) , t . parentNode . removeChild ( e . getWrapperElement ( ) ) , t . style . display = "" , t . form && ( Ma ( t . form , "submit" , r ) , "function" == typeof t . form . submit && ( t . form . submit = a ) ) } } , t . style . display = "none" ; var c = e ( function ( e ) { t . parentNode . insertBefore ( e , t . nextSibling ) } , n ) ; return c } ; var ua = e . StringStream = function ( e , t ) { this . pos = this . start = 0 , this . string = e , this . tabSize = t || 8 , this . lastColumnPos = this . lastColumnValue = 0 , this . lineStart = 0 } ; ua . prototype = { eol : function ( ) { return this . pos >= this . string . length } , sol : function ( ) { return this . pos == this . lineStart } , peek : function ( ) { return this . string . charAt ( this . pos ) || void 0 } , next : function ( ) { return this . pos < this . string . length ? this . string . charAt ( this . pos ++ ) : void 0 } , eat : function ( e ) { var t = this . string . charAt ( this . pos ) ; if ( "string" == typeof e ) var n = t == e ; else var n = t && ( e . test ? e . test ( t ) : e ( t ) ) ; return n ? ( ++ this . pos , t ) : void 0 } , eatWhile : function ( e ) { for ( var t = this . pos ; this . eat ( e ) ; ) ; return this . pos > t } , eatSpace : function ( ) { for ( var e = this . pos ; /[\s\u00a0]/ . test ( this . string . charAt ( this . pos ) ) ; ) ++ this . pos ; return this . pos > e } , skipToEnd : function ( ) { this . pos = this . string . length } , skipTo : function ( e ) { var t = this . string . indexOf ( e , this . pos ) ; return t > - 1 ? ( this . pos = t , ! 0 ) : void 0 } , backUp : function ( e ) { this . pos -= e } , column : function ( ) { return this . lastColumnPos < this . start && ( this . lastColumnValue = Na ( this . string , this . start , this . tabSize , this . lastColumnPos , this . lastColumnValue ) , this . lastColumnPos = this . start ) , this . lastColumnValue - ( this . lineStart ? Na ( this . string , this . lineStart , this . tabSize ) : 0 ) } , indentation : function ( ) { return Na ( this . string , null , this . tabSize ) - ( this . lineStart ? Na ( this . string , this . lineStart , this . tabSize ) : 0 ) } , match : function ( e , t , n ) { if ( "string" != typeof e ) { var r = this . string . slice ( this . pos ) . match ( e ) ; return r && r . index > 0 ? null : ( r && t !== ! 1 && ( this . pos += r [ 0 ] . length ) , r ) } var i = function ( e ) { return n ? e . toLowerCase ( ) : e } , o = this . string . substr ( this . pos , e . length ) ; return i ( o ) == i ( e ) ? ( t !== ! 1 && ( this . pos += e . length ) , ! 0 ) : void 0 } , current : function ( ) { return this . string . slice ( this . start , this . pos ) } , hideFirstChars : function ( e , t ) { this . lineStart += e ; try { return t ( ) } finally { this . lineStart -= e } } } ; var fa = 0 , da = e . TextMarker = function ( e , t ) { this . lines = [ ] , this . type = t , this . doc = e , this . id = ++ fa } ; Mi ( da ) , da . prototype . clear = function ( ) { if ( ! this . explicitlyCleared ) { var e = this . doc . cm , t = e && ! e . curOp ; if ( t && xt ( e ) , Si ( this , "clear" ) ) { var n = this . find ( ) ; n && _i ( this , "clear" , n . from , n . to ) } for ( var r = null , i = null , o = 0 ; o < this . lines . length ; ++ o ) { var a = this . lines [ o ] , l = Qn ( a . markedSpans , this ) ; e && ! this . collapsed ? Pt ( e , Jr ( a ) , "text" ) : e && ( null != l . to && ( i = Jr ( a ) ) , null != l . from && ( r = Jr ( a ) ) ) , a . markedSpans = Jn ( a . markedSpans , l ) , null == l . from && this . collapsed && ! xr ( this . doc , a ) && e && Qr ( a , yt ( e . display ) ) } if ( e && this . collapsed && ! e . options . lineWrapping ) for ( var o = 0 ; o < this . lines . length ; ++ o ) { var s = gr ( this . lines [ o ] ) , c = f ( s ) ; c > e . display . maxLineLength && ( e . display . maxLine = s , e . display . maxLineLength = c , e . display . maxLineChanged = ! 0 ) } null != r && e && this . collapsed && It ( e , r , i + 1 ) , this . lines . length = 0 , this . explicitlyCleared = ! 0 , this . atomic && this . doc . cantEdit && ( this . doc . cantEdit = ! 1 , e && Ee ( e . doc ) ) , e && _i ( e , "markerCleared" , e , this ) , t && kt ( e ) , this . parent && this . parent . clear ( ) } } , da . prototype . find = function ( e , t ) { null == e && "bookmark" == this . type && ( e = 1 ) ; for ( var n , r , i = 0 ; i < this . lines . length ; ++ i ) { var o = this . lines [ i ] , a = Qn ( o . markedSpans , this ) ; if ( null != a . from && ( n = Oo ( t ? o : Jr ( o ) , a . from ) , - 1 == e ) ) return n ; if ( null != a . to && ( r = Oo ( t ? o : Jr ( o ) , a . to ) , 1 == e ) ) return r } return n && { from : n , to : r } } , da . prototype . changed = function ( ) { var e = this . find ( - 1 , ! 0 ) , t = this , n = this . doc . cm ; e && n && At ( n , function ( ) { var r = e . line , i = Jr ( e . line ) ,
var l = a && a != e . Init ; o && ! l ? ( n . state . activeLines = [ ] , r ( n , n . listSelections ( ) ) , n . on ( "beforeSelectionChange" , i ) ) : ! o && l && ( n . off ( "beforeSelectionChange" , i ) , t ( n ) , delete n . state . activeLines ) } ) } ) , function ( e ) { "object" == typeof exports && "object" == typeof module ? e ( require ( "../../lib/codemirror" ) ) : "function" == typeof define && define . amd ? define ( [ "../../lib/codemirror" ] , e ) : e ( CodeMirror ) } ( function ( e ) { "use strict" ; function t ( e , t , i , o ) { if ( this . atOccurrence = ! 1 , this . doc = e , null == o && "string" == typeof t && ( o = ! 1 ) , i = i ? e . clipPos ( i ) : r ( 0 , 0 ) , this . pos = { from : i , to : i } , "string" != typeof t ) t . global || ( t = new RegExp ( t . source , t . ignoreCase ? "ig" : "g" ) ) , this . matches = function ( n , i ) { if ( n ) { t . lastIndex = 0 ; for ( var o , a , l = e . getLine ( i . line ) . slice ( 0 , i . ch ) , s = 0 ; ; ) { t . lastIndex = s ; var c = t . exec ( l ) ; if ( ! c ) break ; if ( o = c , a = o . index , s = o . index + ( o [ 0 ] . length || 1 ) , s == l . length ) break } var u = o && o [ 0 ] . length || 0 ; u || ( 0 == a && 0 == l . length ? o = void 0 : a != e . getLine ( i . line ) . length && u ++ ) } else { t . lastIndex = i . ch ; var l = e . getLine ( i . line ) , o = t . exec ( l ) , u = o && o [ 0 ] . length || 0 , a = o && o . index ; a + u == l . length || u || ( u = 1 ) } return o && u ? { from : r ( i . line , a ) , to : r ( i . line , a + u ) , match : o } : void 0 } ; else { var a = t ; o && ( t = t . toLowerCase ( ) ) ; var l = o ? function ( e ) { return e . toLowerCase ( ) } : function ( e ) { return e } , s = t . split ( "\n" ) ; if ( 1 == s . length ) t . length ? this . matches = function ( i , o ) { if ( i ) { var s = e . getLine ( o . line ) . slice ( 0 , o . ch ) , c = l ( s ) , u = c . lastIndexOf ( t ) ; if ( u > - 1 ) return u = n ( s , c , u ) , { from : r ( o . line , u ) , to : r ( o . line , u + a . length ) } } else { var s = e . getLine ( o . line ) . slice ( o . ch ) , c = l ( s ) , u = c . indexOf ( t ) ; if ( u > - 1 ) return u = n ( s , c , u ) + o . ch , { from : r ( o . line , u ) , to : r ( o . line , u + a . length ) } } } : this . matches = function ( ) { } ; else { var c = a . split ( "\n" ) ; this . matches = function ( t , n ) { var i = s . length - 1 ; if ( t ) { if ( n . line - ( s . length - 1 ) < e . firstLine ( ) ) return ; if ( l ( e . getLine ( n . line ) . slice ( 0 , c [ i ] . length ) ) != s [ s . length - 1 ] ) return ; for ( var o = r ( n . line , c [ i ] . length ) , a = n . line - 1 , u = i - 1 ; u >= 1 ; -- u , -- a ) if ( s [ u ] != l ( e . getLine ( a ) ) ) return ; var f = e . getLine ( a ) , d = f . length - c [ 0 ] . length ; if ( l ( f . slice ( d ) ) != s [ 0 ] ) return ; return { from : r ( a , d ) , to : o } } if ( ! ( n . line + ( s . length - 1 ) > e . lastLine ( ) ) ) { var f = e . getLine ( n . line ) , d = f . length - c [ 0 ] . length ; if ( l ( f . slice ( d ) ) == s [ 0 ] ) { for ( var p = r ( n . line , d ) , a = n . line + 1 , u = 1 ; i > u ; ++ u , ++ a ) if ( s [ u ] != l ( e . getLine ( a ) ) ) return ; if ( l ( e . getLine ( a ) . slice ( 0 , c [ i ] . length ) ) == s [ i ] ) return { from : p , to : r ( a , c [ i ] . length ) } } } } } } } function n ( e , t , n ) { if ( e . length == t . length ) return n ; for ( var r = Math . min ( n , e . length ) ; ; ) { var i = e . slice ( 0 , r ) . toLowerCase ( ) . length ; if ( n > i ) ++ r ; else { if ( ! ( i > n ) ) return r ; -- r } } } var r = e . Pos ; t . prototype = { findNext : function ( ) { return this . find ( ! 1 ) } , findPrevious : function ( ) { return this . find ( ! 0 ) } , find : function ( e ) { function t ( e ) { var t = r ( e , 0 ) ; return n . pos = { from : t , to : t } , n . atOccurrence = ! 1 , ! 1 } for ( var n = this , i = this . doc . clipPos ( e ? this . pos . from : this . pos . to ) ; ; ) { if ( this . pos = this . matches ( e , i ) ) return this . atOccurrence = ! 0 , this . pos . match || ! 0 ; if ( e ) { if ( ! i . line ) return t ( 0 ) ; i = r ( i . line - 1 , this . doc . getLine ( i . line - 1 ) . length ) } else { var o = this . doc . lineCount ( ) ; if ( i . line == o - 1 ) return t ( o ) ; i = r ( i . line + 1 , 0 ) } } } , from : function ( ) { return this . atOccurrence ? this . pos . from : void 0 } , to : function ( ) { return this . atOccurrence ? this . pos . to : void 0 } , replace : function ( t , n ) { if ( this . atOccurrence ) { var i = e . splitLines ( t ) ; this . doc . replaceRange ( i , this . pos . from , this . pos . to , n ) , this . pos . to = r ( this . pos . from . line + i . length - 1 , i [ i . length - 1 ] . length + ( 1 == i . length ? this . pos . from . ch : 0 ) ) } } } , e . defineExtension ( "getSearchCursor" , function ( e , n , r ) { return new t ( this . doc , e , n , r ) } ) , e . defineDocExtension ( "getSearchCursor" , function ( e , n , r ) { return new t ( this , e , n , r ) } ) , e . defineExtension ( "selectMatches" , function ( t , n ) { for ( var r = [ ] , i = this . getSearchCursor ( t , this . getCursor ( "from" ) , n ) ; i . findNext ( ) && ! ( e . cmpPos ( i . to ( ) , this . getCursor ( "to" ) ) > 0 ) ; ) r . push ( { anchor : i . from ( ) , head : i . to ( ) } ) ; r . length && this . setSelections ( r , 0 ) } ) } ) , function ( e ) { "object" == typeof exports && "object" == typeof module ? e ( require ( "../../lib/codemirror" ) , require ( "./searchcursor" ) , require ( "../dialog/dialog" ) ) : "function" == typeof define && define . amd ? define ( [ "../../lib/codemirror" , "./searchcursor" , "../dialog/dialog" ] , e ) : e ( CodeMirror ) } ( function ( e ) { "use strict" ; function t ( e , t ) { return "string" == typeof e ? e = new RegExp ( e . replace ( /[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g , "\\$&" ) , t ? "gi" : "g" ) : e . global || ( e = new RegExp ( e . source , e . ignoreCas
l . replaceRange ( "" , i ( t , o ) , i ( t , a ) ) } } } ) , ! 0 ) } ) } ) , function ( e ) { "object" == typeof exports && "object" == typeof module ? e ( require ( "../../lib/codemirror" ) ) : "function" == typeof define && define . amd ? define ( [ "../../lib/codemirror" ] , e ) : e ( CodeMirror ) } ( function ( e ) { function t ( t ) { if ( t . getOption ( "disableInput" ) ) return e . Pass ; for ( var r , i = t . listSelections ( ) , o = [ ] , a = 0 ; a < i . length ; a ++ ) { var l = i [ a ] . head , s = t . getTokenAt ( l ) ; if ( "comment" != s . type ) return e . Pass ; var c = e . innerMode ( t . getMode ( ) , s . state ) . mode ; if ( r ) { if ( r != c ) return e . Pass } else r = c ; var u = null ; if ( r . blockCommentStart && r . blockCommentContinue ) { var f , d = s . string . indexOf ( r . blockCommentEnd ) , p = t . getRange ( e . Pos ( l . line , 0 ) , e . Pos ( l . line , s . end ) ) ; if ( - 1 != d && d == s . string . length - r . blockCommentEnd . length && l . ch >= d ) ; else if ( 0 == s . string . indexOf ( r . blockCommentStart ) ) { if ( u = p . slice ( 0 , s . start ) , ! /^\s*$/ . test ( u ) ) { u = "" ; for ( var h = 0 ; h < s . start ; ++ h ) u += " " } } else - 1 != ( f = p . indexOf ( r . blockCommentContinue ) ) && f + r . blockCommentContinue . length > s . start && /^\s*$/ . test ( p . slice ( 0 , f ) ) && ( u = p . slice ( 0 , f ) ) ; null != u && ( u += r . blockCommentContinue ) } if ( null == u && r . lineComment && n ( t ) ) { var m = t . getLine ( l . line ) , f = m . indexOf ( r . lineComment ) ; f > - 1 && ( u = m . slice ( 0 , f ) , /\S/ . test ( u ) ? u = null : u += r . lineComment + m . slice ( f + r . lineComment . length ) . match ( /^\s*/ ) [ 0 ] ) } if ( null == u ) return e . Pass ; o [ a ] = "\n" + u } t . operation ( function ( ) { for ( var e = i . length - 1 ; e >= 0 ; e -- ) t . replaceRange ( o [ e ] , i [ e ] . from ( ) , i [ e ] . to ( ) , "+insert" ) } ) } function n ( e ) { var t = e . getOption ( "continueComments" ) ; return t && "object" == typeof t ? t . continueLineComment !== ! 1 : ! 0 } for ( var r = [ "clike" , "css" , "javascript" ] , i = 0 ; i < r . length ; ++ i ) e . extendMode ( r [ i ] , { blockCommentContinue : " * " } ) ; e . defineOption ( "continueComments" , null , function ( n , r , i ) { if ( i && i != e . Init && n . removeKeyMap ( "continueComment" ) , r ) { var o = "Enter" ; "string" == typeof r ? o = r : "object" == typeof r && r . key && ( o = r . key ) ; var a = { name : "continueComment" } ; a [ o ] = t , n . addKeyMap ( a ) } } ) } ) , function ( e ) { "object" == typeof exports && "object" == typeof module ? e ( require ( "../../lib/codemirror" ) ) : "function" == typeof define && define . amd ? define ( [ "../../lib/codemirror" ] , e ) : e ( CodeMirror ) } ( function ( e ) { "use strict" ; function t ( e , t , n ) { for ( var r = n . paragraphStart || e . getHelper ( t , "paragraphStart" ) , i = t . line , o = e . firstLine ( ) ; i > o ; -- i ) { var a = e . getLine ( i ) ; if ( r && r . test ( a ) ) break ; if ( ! /\S/ . test ( a ) ) { ++ i ; break } } for ( var l = n . paragraphEnd || e . getHelper ( t , "paragraphEnd" ) , s = t . line + 1 , c = e . lastLine ( ) ; c >= s ; ++ s ) { var a = e . getLine ( s ) ; if ( l && l . test ( a ) ) { ++ s ; break } if ( ! /\S/ . test ( a ) ) break } return { from : i , to : s } } function n ( e , t , n , r ) { for ( var i = t ; i > 0 && ! n . test ( e . slice ( i - 1 , i + 1 ) ) ; -- i ) ; 0 == i && ( i = t ) ; var o = i ; if ( r ) for ( ; " " == e . charAt ( o - 1 ) ; ) -- o ; return { from : o , to : i } } function r ( t , r , o , a ) { r = t . clipPos ( r ) , o = t . clipPos ( o ) ; var l = a . column || 80 , s = a . wrapOn || /\s\S|-[^\.\d]/ , c = a . killTrailingSpace !== ! 1 , u = [ ] , f = "" , d = r . line , p = t . getRange ( r , o , ! 1 ) ; if ( ! p . length ) return null ; for ( var h = p [ 0 ] . match ( /^[ \t]*/ ) [ 0 ] , m = 0 ; m < p . length ; ++ m ) { var g = p [ m ] , v = f . length , y = 0 ; f && g && ! s . test ( f . charAt ( f . length - 1 ) + g . charAt ( 0 ) ) && ( f += " " , y = 1 ) ; var b = "" ; if ( m && ( b = g . match ( /^\s*/ ) [ 0 ] , g = g . slice ( b . length ) ) , f += g , m ) { var x = f . length > l && h == b && n ( f , l , s , c ) ; x && x . from == v && x . to == v + y ? ( f = h + g , ++ d ) : u . push ( { text : [ y ? " " : "" ] , from : i ( d , v ) , to : i ( d + 1 , b . length ) } ) } for ( ; f . length > l ; ) { var _ = n ( f , l , s , c ) ; u . push ( { text : [ "" , h ] , from : i ( d , _ . from ) , to : i ( d , _ . to ) } ) , f = h + f . slice ( _ . to ) , ++ d } } return u . length && t . operation ( function ( ) { for ( var e = 0 ; e < u . length ; ++ e ) { var n = u [ e ] ; t . replaceRange ( n . text , n . from , n . to ) } } ) , u . length ? { from : u [ 0 ] . from , to : e . changeEnd ( u [ u . length - 1 ] ) } : null } var i = e . Pos ; e . defineExtension ( "wrapParagraph" , function ( e , n ) { n = n || { } , e || ( e = this . getCursor ( ) ) ; var o = t ( this , e , n ) ; return r ( this , i ( o . from , 0 ) , i ( o . to - 1 ) , n ) } ) , e . commands . wrapLines = function ( e ) { e . operation ( function ( ) { for ( var n = e . listSelections ( ) , o = e . lastLine ( ) + 1 , a = n . length - 1 ; a >= 0 ; a -- ) { var l , s = n [ a ] ; if ( s . empty ( ) ) { var c = t ( e , s . head , { } ) ; l = { from : i ( c . from , 0 ) , to : i ( c . to - 1 ) } } else l = { from : s . from ( ) , to : s . to ( ) } ; l . to . line >= o || ( o = l . from . line , r ( e , l . from , l . to , { } ) ) } } ) } , e . defineExtension ( "wrapRange" , function ( e , t , n ) { return r ( this , e , t , n || { } ) } ) , e . defineExtension ( "wrapParagraphsInRange" , function ( e , n , o ) { o = o || { } ; for ( var a = this , l = [ ] , s = e . line ; s <= n . line ; ) { var c = t ( a , i ( s , 0 ) , o ) ; l . push ( c ) , s = c . to } var u = ! 1 ; return l . length && a . operation ( function ( ) { for ( var e = l . length - 1 ; e >= 0 ; -- e ) u = u |
"link" ) : ( e . next ( ) , null ) } , blankLine : r } , a = { underscoresBreakWords : ! 1 , taskLists : ! 0 , fencedCodeBlocks : ! 0 , strikethrough : ! 0 } ; for ( var l in n ) a [ l ] = n [ l ] ; return a . name = "markdown" , e . defineMIME ( "gfmBase" , a ) , e . overlayMode ( e . getMode ( t , "gfmBase" ) , o ) } , "markdown" ) } ) , function ( e ) { "object" == typeof exports && "object" == typeof module ? e ( require ( "../../lib/codemirror" ) ) : "function" == typeof define && define . amd ? define ( [ "../../lib/codemirror" ] , e ) : e ( CodeMirror ) } ( function ( e ) { "use strict" ; e . defineMode ( "javascript" , function ( t , n ) { function r ( e ) { for ( var t , n = ! 1 , r = ! 1 ; null != ( t = e . next ( ) ) ; ) { if ( ! n ) { if ( "/" == t && ! r ) return ; "[" == t ? r = ! 0 : r && "]" == t && ( r = ! 1 ) } n = ! n && "\\" == t } } function i ( e , t , n ) { return ve = e , ye = n , t } function o ( e , t ) { var n = e . next ( ) ; if ( '"' == n || "'" == n ) return t . tokenize = a ( n ) , t . tokenize ( e , t ) ; if ( "." == n && e . match ( /^\d+(?:[eE][+\-]?\d+)?/ ) ) return i ( "number" , "number" ) ; if ( "." == n && e . match ( ".." ) ) return i ( "spread" , "meta" ) ; if ( /[\[\]{}\(\),;\:\.]/ . test ( n ) ) return i ( n ) ; if ( "=" == n && e . eat ( ">" ) ) return i ( "=>" , "operator" ) ; if ( "0" == n && e . eat ( /x/i ) ) return e . eatWhile ( /[\da-f]/i ) , i ( "number" , "number" ) ; if ( /\d/ . test ( n ) ) return e . match ( /^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/ ) , i ( "number" , "number" ) ; if ( "/" == n ) return e . eat ( "*" ) ? ( t . tokenize = l , l ( e , t ) ) : e . eat ( "/" ) ? ( e . skipToEnd ( ) , i ( "comment" , "comment" ) ) : "operator" == t . lastType || "keyword c" == t . lastType || "sof" == t . lastType || /^[\[{}\(,;:]$/ . test ( t . lastType ) ? ( r ( e ) , e . match ( /^\b(([gimyu])(?![gimyu]*\2))+\b/ ) , i ( "regexp" , "string-2" ) ) : ( e . eatWhile ( Me ) , i ( "operator" , "operator" , e . current ( ) ) ) ; if ( "`" == n ) return t . tokenize = s , s ( e , t ) ; if ( "#" == n ) return e . skipToEnd ( ) , i ( "error" , "error" ) ; if ( Me . test ( n ) ) return e . eatWhile ( Me ) , i ( "operator" , "operator" , e . current ( ) ) ; if ( Ce . test ( n ) ) { e . eatWhile ( Ce ) ; var o = e . current ( ) , c = Se . propertyIsEnumerable ( o ) && Se [ o ] ; return c && "." != t . lastType ? i ( c . type , c . style , o ) : i ( "variable" , "variable" , o ) } } function a ( e ) { return function ( t , n ) { var r , a = ! 1 ; if ( _e && "@" == t . peek ( ) && t . match ( Le ) ) return n . tokenize = o , i ( "jsonld-keyword" , "meta" ) ; for ( ; null != ( r = t . next ( ) ) && ( r != e || a ) ; ) a = ! a && "\\" == r ; return a || ( n . tokenize = o ) , i ( "string" , "string" ) } } function l ( e , t ) { for ( var n , r = ! 1 ; n = e . next ( ) ; ) { if ( "/" == n && r ) { t . tokenize = o ; break } r = "*" == n } return i ( "comment" , "comment" ) } function s ( e , t ) { for ( var n , r = ! 1 ; null != ( n = e . next ( ) ) ; ) { if ( ! r && ( "`" == n || "$" == n && e . eat ( "{" ) ) ) { t . tokenize = o ; break } r = ! r && "\\" == n } return i ( "quasi" , "string-2" , e . current ( ) ) } function c ( e , t ) { t . fatArrowAt && ( t . fatArrowAt = null ) ; var n = e . string . indexOf ( "=>" , e . start ) ; if ( ! ( 0 > n ) ) { for ( var r = 0 , i = ! 1 , o = n - 1 ; o >= 0 ; -- o ) { var a = e . string . charAt ( o ) , l = Te . indexOf ( a ) ; if ( l >= 0 && 3 > l ) { if ( ! r ) { ++ o ; break } if ( 0 == -- r ) break } else if ( l >= 3 && 6 > l ) ++ r ; else if ( Ce . test ( a ) ) i = ! 0 ; else { if ( /["'\/]/ . test ( a ) ) return ; if ( i && ! r ) { ++ o ; break } } } i && ! r && ( t . fatArrowAt = o ) } } function u ( e , t , n , r , i , o ) { this . indented = e , this . column = t , this . type = n , this . prev = i , this . info = o , null != r && ( this . align = r ) } function f ( e , t ) { for ( var n = e . localVars ; n ; n = n . next ) if ( n . name == t ) return ! 0 ; for ( var r = e . context ; r ; r = r . prev ) for ( var n = r . vars ; n ; n = n . next ) if ( n . name == t ) return ! 0 } function d ( e , t , n , r , i ) { var o = e . cc ; for ( ze . state = e , ze . stream = i , ze . marked = null , ze . cc = o , ze . style = t , e . lexical . hasOwnProperty ( "align" ) || ( e . lexical . align = ! 0 ) ; ; ) { var a = o . length ? o . pop ( ) : ke ? k : _ ; if ( a ( n , r ) ) { for ( ; o . length && o [ o . length - 1 ] . lex ; ) o . pop ( ) ( ) ; return ze . marked ? ze . marked : "variable" == n && f ( e , r ) ? "variable-2" : t } } } function p ( ) { for ( var e = arguments . length - 1 ; e >= 0 ; e -- ) ze . cc . push ( arguments [ e ] ) } function h ( ) { return p . apply ( null , arguments ) , ! 0 } function m ( e ) { function t ( t ) { for ( var n = t ; n ; n = n . next ) if ( n . name == e ) return ! 0 ; return ! 1 } var r = ze . state ; if ( r . context ) { if ( ze . marked = "def" , t ( r . localVars ) ) return ; r . localVars = { name : e , next : r . localVars } } else { if ( t ( r . globalVars ) ) return ; n . globalVars && ( r . globalVars = { name : e , next : r . globalVars } ) } } function g ( ) { ze . state . context = { prev : ze . state . context , vars : ze . state . localVars } , ze . state . localVars = Ee } function v ( ) { ze . state . localVars = ze . state . context . vars , ze . state . context = ze . state . context . prev } function y ( e , t ) { var n = function ( ) { var n = ze . state , r = n . indented ; if ( "stat" == n . lexical . type ) r = n . lexical . indented ; else for ( var i = n . lexical ; i && ")" == i . type && i . align ; i = i . prev ) r = i . indented ; n . lexical = new u ( r , ze . stream . column ( ) , e , null , n . lexical , t ) } ; return n . lex = ! 0 , n } function b ( ) { var e = ze . state ; e . lexical . prev && ( ")" == e . le
2015-05-04 07:53:29 +00:00
2015-07-04 03:31:01 +00:00
e . registerHelper ( "hintWords" , "css" , _ ) , e . defineMIME ( "text/css" , { documentTypes : i , mediaTypes : a , mediaFeatures : s , propertyKeywords : u , nonStandardPropertyKeywords : d , fontProperties : h , counterDescriptors : g , colorKeywords : y , valueKeywords : x , tokenHooks : { "/" : function ( e , t ) { return e . eat ( "*" ) ? ( t . tokenize = n , n ( e , t ) ) : ! 1 } } , name : "css" } ) , e . defineMIME ( "text/x-scss" , { mediaTypes : a , mediaFeatures : s , propertyKeywords : u , nonStandardPropertyKeywords : d , colorKeywords : y , valueKeywords : x , fontProperties : h , allowNested : ! 0 , tokenHooks : { "/" : function ( e , t ) { return e . eat ( "/" ) ? ( e . skipToEnd ( ) , [ "comment" , "comment" ] ) : e . eat ( "*" ) ? ( t . tokenize = n , n ( e , t ) ) : [ "operator" , "operator" ] } , ":" : function ( e ) { return e . match ( /\s*\{/ ) ? [ null , "{" ] : ! 1 } , $ : function ( e ) { return e . match ( /^[\w-]+/ ) , e . match ( /^\s*:/ , ! 1 ) ? [ "variable-2" , "variable-definition" ] : [ "variable-2" , "variable" ] } , "#" : function ( e ) { return e . eat ( "{" ) ? [ null , "interpolation" ] : ! 1 } } , name : "css" , helperType : "scss" } ) , e . defineMIME ( "text/x-less" , { mediaTypes : a , mediaFeatures : s , propertyKeywords : u , nonStandardPropertyKeywords : d , colorKeywords : y , valueKeywords : x , fontProperties : h , allowNested : ! 0 , tokenHooks : { "/" : function ( e , t ) { return e . eat ( "/" ) ? ( e . skipToEnd ( ) , [ "comment" , "comment" ] ) : e . eat ( "*" ) ? ( t . tokenize = n , n ( e , t ) ) : [ "operator" , "operator" ] } , "@" : function ( e ) { return e . eat ( "{" ) ? [ null , "interpolation" ] : e . match ( /^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b/ , ! 1 ) ? ! 1 : ( e . eatWhile ( /[\w\\\-]/ ) , e . match ( /^\s*:/ , ! 1 ) ? [ "variable-2" , "variable-definition" ] : [ "variable-2" , "variable" ] ) } , "&" : function ( ) { return [ "atom" , "atom" ] } } , name : "css" , helperType : "less" } ) } ) , function ( e ) { "object" == typeof exports && "object" == typeof module ? e ( require ( "../../lib/codemirror" ) , require ( "../xml/xml" ) , require ( "../javascript/javascript" ) , require ( "../css/css" ) ) : "function" == typeof define && define . amd ? define ( [ "../../lib/codemirror" , "../xml/xml" , "../javascript/javascript" , "../css/css" ] , e ) : e ( CodeMirror ) } ( function ( e ) { "use strict" ; e . defineMode ( "htmlmixed" , function ( t , n ) { function r ( e , t ) { var n = t . htmlState . tagName ; n && ( n = n . toLowerCase ( ) ) ; var r = l . token ( e , t . htmlState ) ; if ( "script" == n && /\btag\b/ . test ( r ) && ">" == e . current ( ) ) { var i = e . string . slice ( Math . max ( 0 , e . pos - 100 ) , e . pos ) . match ( /\btype\s*=\s*("[^"]+"|'[^']+'|\S+)[^<]*$/i ) ; i = i ? i [ 1 ] : "" , i && /[\"\']/ . test ( i . charAt ( 0 ) ) && ( i = i . slice ( 1 , i . length - 1 ) ) ; for ( var u = 0 ; u < c . length ; ++ u ) { var f = c [ u ] ; if ( "string" == typeof f . matches ? i == f . matches : f . matches . test ( i ) ) { f . mode && ( t . token = o , t . localMode = f . mode , t . localState = f . mode . startState && f . mode . startState ( l . indent ( t . htmlState , "" ) ) ) ; break } } } else "style" == n && /\btag\b/ . test ( r ) && ">" == e . current ( ) && ( t . token = a , t . localMode = s , t . localState = s . startState ( l . indent ( t . htmlState , "" ) ) ) ; return r } function i ( e , t , n ) { var r = e . current ( ) , i = r . search ( t ) ; return i > - 1 ? e . backUp ( r . length - i ) : r . match ( /<\/?$/ ) && ( e . backUp ( r . length ) , e . match ( t , ! 1 ) || e . match ( r ) ) , n } function o ( e , t ) { return e . match ( /^<\/\s*script\s*>/i , ! 1 ) ? ( t . token = r , t . localState = t . localMode = null , null ) : i ( e , /<\/\s*script\s*>/ , t . localMode . token ( e , t . localState ) ) } function a ( e , t ) { return e . match ( /^<\/\s*style\s*>/i , ! 1 ) ? ( t . token = r , t . localState = t . localMode = null , null ) : i ( e , /<\/\s*style\s*>/ , s . token ( e , t . localState ) ) } var l = e . getMode ( t , { name : "xml" , htmlMode : ! 0 , multilineTagIndentFactor : n . multilineTagIndentFactor , multilineTagIndentPastTag : n . multilineTagIndentPastTag } ) , s = e . getMode ( t , "css" ) , c = [ ] , u = n && n . scriptTypes ; if ( c . push ( { matches : /^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^$/i , mode : e . getMode ( t , "javascript" ) } ) , u ) for ( var f = 0 ; f < u . length ; ++ f ) { var d = u [ f ] ; c . push ( { matches : d . matches , mode : d . mode && e . getMode ( t , d . mode ) } ) } return c . push ( { matches : /./ , mode : e . getMode ( t , "text/plain" ) } ) , { startState : function ( ) { var e = l . startState ( ) ; return { token : r , localMode : null , localState : null , htmlState : e } } , copyState : function ( t ) { if ( t . localState ) var n = e . copyState ( t . localMode , t . localState ) ; return { token : t . token , localMode : t . localMode , localState : n , htmlState : e . copyState ( l , t . htmlState ) } } , token : function ( e , t ) { return t . token ( e , t ) } , indent : function ( t , n ) { return ! t . localMode || /^\s*<\// . test ( n ) ? l . indent ( t . htmlState , n ) : t . localMode . indent ? t . localMode . indent ( t . localState , n ) : e . Pass } , innerMode : function ( e ) { return { state : e . localState || e . htmlState , mode : e .
2015-05-04 07:53:29 +00:00
2015-07-04 03:31:01 +00:00
} return ( c || r && "comment" != r ) && ( t . lastTok = i ) , "|" == c && ( t . varList = ! t . varList ) , "indent" == n || /[\(\[\{]/ . test ( c ) ? t . context = { prev : t . context , type : c || r , indented : t . indented } : ( "dedent" == n || /[\)\]\}]/ . test ( c ) ) && t . context . prev && ( t . context = t . context . prev ) , e . eol ( ) && ( t . continuedLine = "\\" == c || "operator" == r ) , r } , indent : function ( t , n ) { if ( t . tokenize [ t . tokenize . length - 1 ] != r ) return 0 ; var i = n && n . charAt ( 0 ) , o = t . context , a = o . type == p [ i ] || "keyword" == o . type && /^(?:end|until|else|elsif|when|rescue)\b/ . test ( n ) ; return o . indented + ( a ? 0 : e . indentUnit ) + ( t . continuedLine ? e . indentUnit : 0 ) } , electricChars : "}de" , lineComment : "#" } } ) , e . defineMIME ( "text/x-ruby" , "ruby" ) } ) , function ( e ) { "object" == typeof exports && "object" == typeof module ? e ( require ( "../../lib/codemirror" ) ) : "function" == typeof define && define . amd ? define ( [ "../../lib/codemirror" ] , e ) : e ( CodeMirror ) } ( function ( e ) { "use strict" ; function t ( e ) { return new RegExp ( "^((" + e . join ( ")|(" ) + "))\\b" ) } function n ( e ) { return e . scopes [ e . scopes . length - 1 ] } var r = t ( [ "and" , "or" , "not" , "is" ] ) , i = [ "as" , "assert" , "break" , "class" , "continue" , "def" , "del" , "elif" , "else" , "except" , "finally" , "for" , "from" , "global" , "if" , "import" , "lambda" , "pass" , "raise" , "return" , "try" , "while" , "with" , "yield" , "in" ] , o = [ "abs" , "all" , "any" , "bin" , "bool" , "bytearray" , "callable" , "chr" , "classmethod" , "compile" , "complex" , "delattr" , "dict" , "dir" , "divmod" , "enumerate" , "eval" , "filter" , "float" , "format" , "frozenset" , "getattr" , "globals" , "hasattr" , "hash" , "help" , "hex" , "id" , "input" , "int" , "isinstance" , "issubclass" , "iter" , "len" , "list" , "locals" , "map" , "max" , "memoryview" , "min" , "next" , "object" , "oct" , "open" , "ord" , "pow" , "property" , "range" , "repr" , "reversed" , "round" , "set" , "setattr" , "slice" , "sorted" , "staticmethod" , "str" , "sum" , "super" , "tuple" , "type" , "vars" , "zip" , "__import__" , "NotImplemented" , "Ellipsis" , "__debug__" ] , a = { builtins : [ "apply" , "basestring" , "buffer" , "cmp" , "coerce" , "execfile" , "file" , "intern" , "long" , "raw_input" , "reduce" , "reload" , "unichr" , "unicode" , "xrange" , "False" , "True" , "None" ] , keywords : [ "exec" , "print" ] } , l = { builtins : [ "ascii" , "bytes" , "exec" , "print" ] , keywords : [ "nonlocal" , "False" , "True" , "None" , "async" , "await" ] } ; e . registerHelper ( "hintWords" , "python" , i . concat ( o ) ) , e . defineMode ( "python" , function ( s , c ) { function u ( e , t ) { if ( e . sol ( ) && "py" == n ( t ) . type ) { var r = n ( t ) . offset ; if ( e . eatSpace ( ) ) { var i = e . indentation ( ) ; return i > r ? p ( e , t , "py" ) : r > i && h ( e , t ) && ( t . errorToken = ! 0 ) , null } var o = f ( e , t ) ; return r > 0 && h ( e , t ) && ( o += " " + g ) , o } return f ( e , t ) } function f ( e , t ) { if ( e . eatSpace ( ) ) return null ; var n = e . peek ( ) ; if ( "#" == n ) return e . skipToEnd ( ) , "comment" ; if ( e . match ( /^[0-9\.]/ , ! 1 ) ) { var i = ! 1 ; if ( e . match ( /^\d*\.\d+(e[\+\-]?\d+)?/i ) && ( i = ! 0 ) , e . match ( /^\d+\.\d*/ ) && ( i = ! 0 ) , e . match ( /^\.\d+/ ) && ( i = ! 0 ) , i ) return e . eat ( /J/i ) , "number" ; var o = ! 1 ; if ( e . match ( /^0x[0-9a-f]+/i ) && ( o = ! 0 ) , e . match ( /^0b[01]+/i ) && ( o = ! 0 ) , e . match ( /^0o[0-7]+/i ) && ( o = ! 0 ) , e . match ( /^[1-9]\d*(e[\+\-]?\d+)?/ ) && ( e . eat ( /J/i ) , o = ! 0 ) , e . match ( /^0(?![\dx])/i ) && ( o = ! 0 ) , o ) return e . eat ( /L/i ) , "number" } return e . match ( M ) ? ( t . tokenize = d ( e . current ( ) ) , t . tokenize ( e , t ) ) : e . match ( x ) || e . match ( b ) ? null : e . match ( y ) || e . match ( _ ) ? "operator" : e . match ( v ) ? null : e . match ( L ) || e . match ( r ) ? "keyword" : e . match ( T ) ? "builtin" : e . match ( /^(self|cls)\b/ ) ? "variable-2" : e . match ( k ) ? "def" == t . lastToken || "class" == t . lastToken ? "def" : "variable" : ( e . next ( ) , g ) } function d ( e ) { function t ( t , i ) { for ( ; ! t . eol ( ) ; ) if ( t . eatWhile ( /[^'"\\]/ ) , t . eat ( "\\" ) ) { if ( t . next ( ) , n && t . eol ( ) ) return r } else { if ( t . match ( e ) ) return i . tokenize = u , r ; t . eat ( /['"]/ ) } if ( n ) { if ( c . singleLineStringErrors ) return g ; i . tokenize = u } return r } for ( ; "rub" . indexOf ( e . charAt ( 0 ) . toLowerCase ( ) ) >= 0 ; ) e = e . substr ( 1 ) ; var n = 1 == e . length , r = "string" ; return t . isString = ! 0 , t } function p ( e , t , r ) { var i = 0 , o = null ; if ( "py" == r ) for ( ; "py" != n ( t ) . type ; ) t . scopes . pop ( ) ; i = n ( t ) . offset + ( "py" == r ? s . indentUnit : w ) , "py" == r || e . match ( /^(\s|#.*)*$/ , ! 1 ) || ( o = e . column ( ) + 1 ) , t . scopes . push ( { offset : i , type : r , align : o } ) } function h ( e , t ) { for ( var r = e . indentation ( ) ; n ( t ) . offset > r ; ) { if ( "py" != n ( t ) . type ) return ! 0 ; t . scopes . pop ( ) } return n ( t ) . offset != r } function m ( e , t ) { var r = t . tokenize ( e , t ) , i = e . current ( ) ; if ( "." == i ) return r = e . match ( k , ! 1 ) ? null : g , null == r && "meta" == t . lastStyle && ( r = "meta" ) , r ; if ( "@" == i ) return c . version && 3 == parseInt ( c . version , 10 ) ? e . match ( k , ! 1 ) ? "meta" : "operator" : e . match ( k , ! 1 ) ? " meta
builtin : i ( "bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric" ) , atoms : i ( "false true null unknown" ) , operatorChars : /^[*+\-%<>!=&|^]/ , dateSQL : i ( "date time timestamp" ) , support : i ( "ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired" ) , hooks : { "@" : n , "`" : t , "\\" : r } } ) , e . defineMIME ( "text/x-cassandra" , { name : "sql" , client : { } , keywords : i ( "add all allow alter and any apply as asc authorize batch begin by clustering columnfamily compact consistency count create custom delete desc distinct drop each_quorum exists filtering from grant if in index insert into key keyspace keyspaces level limit local_one local_quorum modify nan norecursive nosuperuser not of on one order password permission permissions primary quorum rename revoke schema select set storage superuser table three to token truncate ttl two type unlogged update use user users using values where with writetime" ) , builtin : i ( "ascii bigint blob boolean counter decimal double float frozen inet int list map static text timestamp timeuuid tuple uuid varchar varint" ) , atoms : i ( "false true infinity NaN" ) , operatorChars : /^[<>=]/ , dateSQL : { } , support : i ( "commentSlashSlash decimallessFloat" ) , hooks : { } } ) , e . defineMIME ( "text/x-plsql" , { name : "sql" , client : i ( "appinfo arraysize autocommit autoprint autorecovery autotrace blockterminator break btitle cmdsep colsep compatibility compute concat copycommit copytypecheck define describe echo editfile embedded escape exec execute feedback flagger flush heading headsep instance linesize lno loboffset logsource long longchunksize markup native newpage numformat numwidth pagesize pause pno recsep recsepchar release repfooter repheader serveroutput shiftinout show showmode size spool sqlblanklines sqlcase sqlcode sqlcontinue sqlnumber sqlpluscompatibility sqlprefix sqlprompt sqlterminator suffix tab term termout time timing trimout trimspool ttitle underline verify version wrap" ) , keywords : i ( "abort accept access add all alter and any array arraylen as asc assert assign at attributes audit authorization avg base_table begin between binary_integer body boolean by case cast char char_base check close cluster clusters colauth column comment commit compress connect connected constant constraint crash create current currval cursor data_base database date dba deallocate debugoff debugon decimal declare default definition delay delete desc digits dispose distinct do drop else elseif elsif enable end entry escape exception exception_init exchange exclusive exists exit external fast fetch file for force form from function generic goto grant group having identified if immediate in increment index indexes indicator initial initrans insert interface intersect into is key level library like limited local lock log logging long loop master maxextents maxtrans member minextents minus mislabel mode modify multiset new next no noaudit nocompress nologging noparallel not nowait number_base object of off offline on online only open option or order out package parallel partition pctfree pctincrease pctused pls_integer positive positiven pragma primary prior private privileges procedure public raise range raw read rebuild record ref references refresh release rename replace resource restrict return returning returns reverse revoke rollback row rowid rowlabel rownum rows run savepoint schema segment select separate session set share snapshot some space split sql start statement storage subtype successful synonym tabauth table tables tablespace task terminate then to trigger truncate type union unique unlimited unrecoverable unusable update use using validate value values variable view views when whenever where while with work" ) , builtin : i ( " abs acos add _months ascii asin atan atan2 average bfile bfilename bigserial bit blob ceil character chartorowid chr clo
2015-06-01 10:04:25 +00:00
return { startState : function ( e ) { return { tokenize : r , baseIndent : e || 0 , stack : [ ] } } , token : function ( e , t ) { if ( e . eatSpace ( ) ) return null ; l = null ; var n = t . tokenize ( e , t ) , r = t . stack [ t . stack . length - 1 ] ; return "hash" == l && "rule" == r ? n = "atom" : "variable" == n && ( "rule" == r ? n = "number" : r && "@media{" != r || ( n = "tag" ) ) , "rule" == r && /^[\{\};]$/ . test ( l ) && t . stack . pop ( ) , "{" == l ? "@media" == r ? t . stack [ t . stack . length - 1 ] = "@media{" : t . stack . push ( "{" ) : "}" == l ? t . stack . pop ( ) : "@media" == l ? t . stack . push ( "@media" ) : "{" == r && "comment" != l && t . stack . push ( "rule" ) , n } , indent : function ( e , t ) { var n = e . stack . length ; return /^\}/ . test ( t ) && ( n -= "rule" == e . stack [ e . stack . length - 1 ] ? 2 : 1 ) , e . baseIndent + n * f } , electricChars : "}" } } ) , e . defineMIME ( "text/nginx" , "text/x-nginx-conf" ) } ) , function ( e ) { "object" == typeof exports && "object" == typeof module ? e ( require ( "../../lib/codemirror" ) ) : "function" == typeof define && define . amd ? define ( [ "../../lib/codemirror" ] , e ) : e ( CodeMirror ) } ( function ( e ) { "use strict" ; function t ( e , t ) { return e . string . charAt ( e . pos + ( t || 0 ) ) } function n ( e , t ) { if ( t ) { var n = e . pos - t ; return e . string . substr ( n >= 0 ? n : 0 , t ) } return e . string . substr ( 0 , e . pos - 1 ) } function r ( e , t ) { var n = e . string . length , r = n - e . pos + 1 ; return e . string . substr ( e . pos , t && n > t ? t : r ) } function i ( e , t ) { var n , r = e . pos + t ; 0 >= r ? e . pos = 0 : r >= ( n = e . string . length - 1 ) ? e . pos = n : e . pos = r } e . defineMode ( "perl" , function ( ) { function e ( e , t , n , r , i ) { return t . chain = null , t . style = null , t . tail = null , t . tokenize = function ( e , t ) { for ( var o , l = ! 1 , s = 0 ; o = e . next ( ) ; ) { if ( o === n [ s ] && ! l ) return void 0 !== n [ ++ s ] ? ( t . chain = n [ s ] , t . style = r , t . tail = i ) : i && e . eatWhile ( i ) , t . tokenize = a , r ; l = ! l && "\\" == o } return r } , t . tokenize ( e , t ) } function o ( e , t , n ) { return t . tokenize = function ( e , t ) { return e . string == n && ( t . tokenize = a ) , e . skipToEnd ( ) , "string" } , t . tokenize ( e , t ) } function a ( a , u ) { if ( a . eatSpace ( ) ) return null ; if ( u . chain ) return e ( a , u , u . chain , u . style , u . tail ) ; if ( a . match ( /^\-?[\d\.]/ , ! 1 ) && a . match ( /^(\-?(\d*\.\d+(e[+-]?\d+)?|\d+\.\d*)|0x[\da-fA-F]+|0b[01]+|\d+(e[+-]?\d+)?)/ ) ) return "number" ; if ( a . match ( /^<<(?=\w)/ ) ) return a . eatWhile ( /\w/ ) , o ( a , u , a . current ( ) . substr ( 2 ) ) ; if ( a . sol ( ) && a . match ( /^\=item(?!\w)/ ) ) return o ( a , u , "=cut" ) ; var f = a . next ( ) ; if ( '"' == f || "'" == f ) { if ( n ( a , 3 ) == "<<" + f ) { var d = a . pos ; a . eatWhile ( /\w/ ) ; var p = a . current ( ) . substr ( 1 ) ; if ( p && a . eat ( f ) ) return o ( a , u , p ) ; a . pos = d } return e ( a , u , [ f ] , "string" ) } if ( "q" == f ) { var h = t ( a , - 2 ) ; if ( ! h || ! /\w/ . test ( h ) ) if ( h = t ( a , 0 ) , "x" == h ) { if ( h = t ( a , 1 ) , "(" == h ) return i ( a , 2 ) , e ( a , u , [ ")" ] , s , c ) ; if ( "[" == h ) return i ( a , 2 ) , e ( a , u , [ "]" ] , s , c ) ; if ( "{" == h ) return i ( a , 2 ) , e ( a , u , [ "}" ] , s , c ) ; if ( "<" == h ) return i ( a , 2 ) , e ( a , u , [ ">" ] , s , c ) ; if ( /[\^'"!~\/]/ . test ( h ) ) return i ( a , 1 ) , e ( a , u , [ a . eat ( h ) ] , s , c ) } else if ( "q" == h ) { if ( h = t ( a , 1 ) , "(" == h ) return i ( a , 2 ) , e ( a , u , [ ")" ] , "string" ) ; if ( "[" == h ) return i ( a , 2 ) , e ( a , u , [ "]" ] , "string" ) ; if ( "{" == h ) return i ( a , 2 ) , e ( a , u , [ "}" ] , "string" ) ; if ( "<" == h ) return i ( a , 2 ) , e ( a , u , [ ">" ] , "string" ) ; if ( /[\^'"!~\/]/ . test ( h ) ) return i ( a , 1 ) , e ( a , u , [ a . eat ( h ) ] , "string" ) } else if ( "w" == h ) { if ( h = t ( a , 1 ) , "(" == h ) return i ( a , 2 ) , e ( a , u , [ ")" ] , "bracket" ) ; if ( "[" == h ) return i ( a , 2 ) , e ( a , u , [ "]" ] , "bracket" ) ; if ( "{" == h ) return i ( a , 2 ) , e ( a , u , [ "}" ] , "bracket" ) ; if ( "<" == h ) return i ( a , 2 ) , e ( a , u , [ ">" ] , "bracket" ) ; if ( /[\^'"!~\/]/ . test ( h ) ) return i ( a , 1 ) , e ( a , u , [ a . eat ( h ) ] , "bracket" ) } else if ( "r" == h ) { if ( h = t ( a , 1 ) , "(" == h ) return i ( a , 2 ) , e ( a , u , [ ")" ] , s , c ) ; if ( "[" == h ) return i ( a , 2 ) , e ( a , u , [ "]" ] , s , c ) ; if ( "{" == h ) return i ( a , 2 ) , e ( a , u , [ "}" ] , s , c ) ; if ( "<" == h ) return i ( a , 2 ) , e ( a , u , [ ">" ] , s , c ) ; if ( /[\^'"!~\/]/ . test ( h ) ) return i ( a , 1 ) , e ( a , u , [ a . eat ( h ) ] , s , c ) } else if ( /[\^'"!~\/(\[{<]/ . test ( h ) ) { if ( "(" == h ) return i ( a , 1 ) , e ( a , u , [ ")" ] , "string" ) ; if ( "[" == h ) return i ( a , 1 ) , e ( a , u , [ "]" ] , "string" ) ; if ( "{" == h ) return i ( a , 1 ) , e ( a , u , [ "}" ] , "string" ) ; if ( "<" == h ) return i ( a , 1 ) , e ( a , u , [ ">" ] , "string" ) ; if ( /[\^'"!~\/]/ . test ( h ) ) return e ( a , u , [ a . eat ( h ) ] , "string" ) } } if ( "m" == f ) { var h = t ( a , - 2 ) ; if ( ( ! h || ! /\w/ . test ( h ) ) && ( h = a . eat ( /[(\[{<\^'"!~\/]/ ) ) ) { if ( /[\^'"!~\/]/ . test ( h ) ) return e ( a , u , [ h ] , s , c ) ; if ( "(" == h ) return e ( a , u , [ ")" ] , s , c ) ; if ( "[" == h ) return e ( a , u , [ "]" ] , s , c ) ; if ( "{" == h ) return e ( a , u , [ "}" ] , s , c ) ; if ( "<" == h ) return e ( a , u , [ ">" ] , s , c ) } } if ( "s" == f ) { var h = /[\/>\]})\w]/ . test ( t ( a , - 2 ) ) ; if ( ! h && ( h = a . eat ( /[(\[{<\^'"!~\/]/ ) ) ) return "[" == h ? e ( a , u , [ "]" , "]" ] , s , c ) : "{" == h ? e ( a , u , [ "}" , "}" ] , s , c ) : "<" == h ? e ( a , u , [ ">" , ">" ] , s , c ) : "(" == h ? e ( a , u , [ ")" , ")" ] , s , c ) : e ( a , u , [ h , h ] , s , c ) } if ( "y" == f ) { var h = /[\/>\]})\w]/ . test ( t (