! function ( a , b ) { "use strict" ; "object" == typeof module && "object" == typeof module . exports ? module . exports = a . document ? b ( a , ! 0 ) : function ( a ) { if ( ! a . document ) throw new Error ( "jQuery requires a window with a document" ) ; return b ( a ) } : b ( a ) } ( "undefined" != typeof window ? window : this , function ( a , b ) { "use strict" ; function p ( a , b ) { b = b || d ; var c = b . createElement ( "script" ) ; c . text = a , b . head . appendChild ( c ) . parentNode . removeChild ( c ) } function w ( a ) { var b = ! ! a && "length" in a && a . length , c = r . type ( a ) ; return "function" !== c && ! r . isWindow ( a ) && ( "array" === c || 0 === b || "number" == typeof b && b > 0 && b - 1 in a ) } function D ( a , b , c ) { if ( r . isFunction ( b ) ) return r . grep ( a , function ( a , d ) { return ! ! b . call ( a , d , a ) !== c } ) ; if ( b . nodeType ) return r . grep ( a , function ( a ) { return a === b !== c } ) ; if ( "string" == typeof b ) { if ( C . test ( b ) ) return r . filter ( b , a , c ) ; b = r . filter ( b , a ) } return r . grep ( a , function ( a ) { return i . call ( b , a ) > - 1 !== c && 1 === a . nodeType } ) } function J ( a , b ) { for ( ; ( a = a [ b ] ) && 1 !== a . nodeType ; ) ; return a } function L ( a ) { var b = { } ; return r . each ( a . match ( K ) || [ ] , function ( a , c ) { b [ c ] = ! 0 } ) , b } function M ( a ) { return a } function N ( a ) { throw a } function O ( a , b , c ) { var d ; try { a && r . isFunction ( d = a . promise ) ? d . call ( a ) . done ( b ) . fail ( c ) : a && r . isFunction ( d = a . then ) ? d . call ( a , b , c ) : b . call ( void 0 , a ) } catch ( a ) { c . call ( void 0 , a ) } } function R ( ) { d . removeEventListener ( "DOMContentLoaded" , R ) , a . removeEventListener ( "load" , R ) , r . ready ( ) } function U ( ) { this . expando = r . expando + U . uid ++ } function Z ( a , b , c ) { var d ; if ( void 0 === c && 1 === a . nodeType ) if ( d = "data-" + b . replace ( Y , "-$&" ) . toLowerCase ( ) , c = a . getAttribute ( d ) , "string" == typeof c ) { try { c = "true" === c || "false" !== c && ( "null" === c ? null : + c + "" === c ? + c : X . test ( c ) ? JSON . parse ( c ) : c ) } catch ( e ) { } W . set ( a , b , c ) } else c = void 0 ; return c } function da ( a , b , c , d ) { var e , f = 1 , g = 20 , h = d ? function ( ) { return d . cur ( ) } : function ( ) { return r . css ( a , b , "" ) } , i = h ( ) , j = c && c [ 3 ] || ( r . cssNumber [ b ] ? "" : "px" ) , k = ( r . cssNumber [ b ] || "px" !== j && + i ) && _ . exec ( r . css ( a , b ) ) ; if ( k && k [ 3 ] !== j ) { j = j || k [ 3 ] , c = c || [ ] , k = + i || 1 ; do f = f || ".5" , k /= f , r . style ( a , b , k + j ) ; while ( f !== ( f = h ( ) / i ) && 1 !== f && -- g ) } return c && ( k = + k || + i || 0 , e = c [ 1 ] ? k + ( c [ 1 ] + 1 ) * c [ 2 ] : + c [ 2 ] , d && ( d . unit = j , d . start = k , d . end = e ) ) , e } function fa ( a ) { var b , c = a . ownerDocument , d = a . nodeName , e = ea [ d ] ; return e ? e : ( b = c . body . appendChild ( c . createElement ( d ) ) , e = r . css ( b , "display" ) , b . parentNode . removeChild ( b ) , "none" === e && ( e = "block" ) , ea [ d ] = e , e ) } function ga ( a , b ) { for ( var c , d , e = [ ] , f = 0 , g = a . length ; f < g ; f ++ ) d = a [ f ] , d . style && ( c = d . style . display , b ? ( "none" === c && ( e [ f ] = V . get ( d , "display" ) || null , e [ f ] || ( d . style . display = "" ) ) , "" === d . style . display && ba ( d ) && ( e [ f ] = fa ( d ) ) ) : "none" !== c && ( e [ f ] = "none" , V . set ( d , "display" , c ) ) ) ; for ( f = 0 ; f < g ; f ++ ) null != e [ f ] && ( a [ f ] . style . display = e [ f ] ) ; return a } function la ( a , b ) { var c = "undefined" != typeof a . getElementsByTagName ? a . getElementsByTagName ( b || "*" ) : "undefined" != typeof a . querySelectorAll ? a . querySelectorAll ( b || "*" ) : [ ] ; return void 0 === b || b && r . nodeName ( a , b ) ? r . merge ( [ a ] , c ) : c } function ma ( a , b ) { for ( var c = 0 , d = a . length ; c < d ; c ++ ) V . set ( a [ c ] , "globalEval" , ! b || V . get ( b [ c ] , "globalEval" ) ) } function oa ( a , b , c , d , e ) { for ( var f , g , h , i , j , k , l = b . createDocumentFragment ( ) , m = [ ] , n = 0 , o = a . length ; n < o ; n ++ ) if ( f = a [ n ] , f || 0 === f ) if ( "object" === r . type ( f ) ) r . merge ( m , f . nodeType ? [ f ] : f ) ; else if ( na . test ( f ) ) { for ( g = g || l . appendChild ( b . createElement ( "div" ) ) , h = ( ia . exec ( f ) || [ "" , "" ] ) [ 1 ] . toLowerCase ( ) , i = ka [ h ] || ka . _default , g . innerHTML = i [ 1 ] + r . htmlPrefilter ( f ) + i [ 2 ] , k = i [ 0 ] ; k -- ; ) g = g . lastChild ; r . merge ( m , g . childNodes ) , g = l . firstChild , g . textContent = "" } else m . push ( b . createTextNode ( f ) ) ; for ( l . textContent = "" , n = 0 ; f = m [ n ++ ] ; ) if ( d && r . inArray ( f , d ) > - 1 ) e && e . push ( f ) ; else if ( j = r . contains ( f . ownerDocument , f ) , g = la ( l . appendChild ( f ) , "script" ) , j && ma ( g ) , c ) for ( k = 0 ; f = g [ k ++ ] ; ) ja . test ( f . type || "" ) && c . push ( f ) ; return l } function ta ( ) { return ! 0 } function ua ( ) { return ! 1 } function va ( ) { try { return d . activeElement } catch ( a ) { } } function wa ( a , b , c , d , e , f ) { var g , h ; if ( "object" == typeof b ) { "string" != typeof c && ( d = d || c , c = void 0 ) ; for ( h in b ) wa ( a , h , c , d , b [ h ] , f ) ; return a } if ( null == d && null == e ? ( e = c , d = c = void 0 ) : null == e && ( "string" == typeof c ? ( e = d , d = void 0 ) : ( e = d , d = c , c = void 0 ) ) , e === ! 1 ) e = ua ; else if ( ! e ) return a ; return 1 === f && ( g = e , e = function ( a ) { return r ( ) . off ( a ) , g . apply ( this , arguments ) } , e . guid = g . guid || ( g . guid = r . guid ++ ) ) , a . each ( function ( ) { r . event . add ( this , b , e , d , c ) } ) } function Ca ( a , b ) { return r . nodeName ( a , "table" ) && r . n
return X . test ( a . nodeName ) } , input : function ( a ) { return W . test ( a . nodeName ) } , button : function ( a ) { var b = a . nodeName . toLowerCase ( ) ; return "input" === b && "button" === a . type || "button" === b } , text : function ( a ) { var b ; return "input" === a . nodeName . toLowerCase ( ) && "text" === a . type && ( null == ( b = a . getAttribute ( "type" ) ) || "text" === b . toLowerCase ( ) ) } , first : pa ( function ( ) { return [ 0 ] } ) , last : pa ( function ( a , b ) { return [ b - 1 ] } ) , eq : pa ( function ( a , b , c ) { return [ c < 0 ? c + b : c ] } ) , even : pa ( function ( a , b ) { for ( var c = 0 ; c < b ; c += 2 ) a . push ( c ) ; return a } ) , odd : pa ( function ( a , b ) { for ( var c = 1 ; c < b ; c += 2 ) a . push ( c ) ; return a } ) , lt : pa ( function ( a , b , c ) { for ( var d = c < 0 ? c + b : c ; -- d >= 0 ; ) a . push ( d ) ; return a } ) , gt : pa ( function ( a , b , c ) { for ( var d = c < 0 ? c + b : c ; ++ d < b ; ) a . push ( d ) ; return a } ) } } , d . pseudos . nth = d . pseudos . eq ; for ( b in { radio : ! 0 , checkbox : ! 0 , file : ! 0 , password : ! 0 , image : ! 0 } ) d . pseudos [ b ] = ma ( b ) ; for ( b in { submit : ! 0 , reset : ! 0 } ) d . pseudos [ b ] = na ( b ) ; return ra . prototype = d . filters = d . pseudos , d . setFilters = new ra , g = ga . tokenize = function ( a , b ) { var c , e , f , g , h , i , j , k = z [ a + " " ] ; if ( k ) return b ? 0 : k . slice ( 0 ) ; for ( h = a , i = [ ] , j = d . preFilter ; h ; ) { c && ! ( e = Q . exec ( h ) ) || ( e && ( h = h . slice ( e [ 0 ] . length ) || h ) , i . push ( f = [ ] ) ) , c = ! 1 , ( e = R . exec ( h ) ) && ( c = e . shift ( ) , f . push ( { value : c , type : e [ 0 ] . replace ( P , " " ) } ) , h = h . slice ( c . length ) ) ; for ( g in d . filter ) ! ( e = V [ g ] . exec ( h ) ) || j [ g ] && ! ( e = j [ g ] ( e ) ) || ( c = e . shift ( ) , f . push ( { value : c , type : g , matches : e } ) , h = h . slice ( c . length ) ) ; if ( ! c ) break } return b ? h . length : h ? ga . error ( a ) : z ( a , i ) . slice ( 0 ) } , h = ga . compile = function ( a , b ) { var c , d = [ ] , e = [ ] , f = A [ a + " " ] ; if ( ! f ) { for ( b || ( b = g ( a ) ) , c = b . length ; c -- ; ) f = ya ( b [ c ] ) , f [ u ] ? d . push ( f ) : e . push ( f ) ; f = A ( a , za ( e , d ) ) , f . selector = a } return f } , i = ga . select = function ( a , b , e , f ) { var i , j , k , l , m , n = "function" == typeof a && a , o = ! f && g ( a = n . selector || a ) ; if ( e = e || [ ] , 1 === o . length ) { if ( j = o [ 0 ] = o [ 0 ] . slice ( 0 ) , j . length > 2 && "ID" === ( k = j [ 0 ] ) . type && c . getById && 9 === b . nodeType && p && d . relative [ j [ 1 ] . type ] ) { if ( b = ( d . find . ID ( k . matches [ 0 ] . replace ( _ , aa ) , b ) || [ ] ) [ 0 ] , ! b ) return e ; n && ( b = b . parentNode ) , a = a . slice ( j . shift ( ) . value . length ) } for ( i = V . needsContext . test ( a ) ? 0 : j . length ; i -- && ( k = j [ i ] , ! d . relative [ l = k . type ] ) ; ) if ( ( m = d . find [ l ] ) && ( f = m ( k . matches [ 0 ] . replace ( _ , aa ) , $ . test ( j [ 0 ] . type ) && qa ( b . parentNode ) || b ) ) ) { if ( j . splice ( i , 1 ) , a = f . length && sa ( j ) , ! a ) return G . apply ( e , f ) , e ; break } } return ( n || h ( a , o ) ) ( f , b , ! p , e , ! b || $ . test ( a ) && qa ( b . parentNode ) || b ) , e } , c . sortStable = u . split ( "" ) . sort ( B ) . join ( "" ) === u , c . detectDuplicates = ! ! l , m ( ) , c . sortDetached = ja ( function ( a ) { return 1 & a . compareDocumentPosition ( n . createElement ( "fieldset" ) ) } ) , ja ( function ( a ) { return a . innerHTML = "<a href='#'></a>" , "#" === a . firstChild . getAttribute ( "href" ) } ) || ka ( "type|href|height|width" , function ( a , b , c ) { if ( ! c ) return a . getAttribute ( b , "type" === b . toLowerCase ( ) ? 1 : 2 ) } ) , c . attributes && ja ( function ( a ) { return a . innerHTML = "<input/>" , a . firstChild . setAttribute ( "value" , "" ) , "" === a . firstChild . getAttribute ( "value" ) } ) || ka ( "value" , function ( a , b , c ) { if ( ! c && "input" === a . nodeName . toLowerCase ( ) ) return a . defaultValue } ) , ja ( function ( a ) { return null == a . getAttribute ( "disabled" ) } ) || ka ( J , function ( a , b , c ) { var d ; if ( ! c ) return a [ b ] === ! 0 ? b . toLowerCase ( ) : ( d = a . getAttributeNode ( b ) ) && d . specified ? d . value : null } ) , ga } ( a ) ; r . find = x , r . expr = x . selectors , r . expr [ ":" ] = r . expr . pseudos , r . uniqueSort = r . unique = x . uniqueSort , r . text = x . getText , r . isXMLDoc = x . isXML , r . contains = x . contains , r . escapeSelector = x . escape ; var y = function ( a , b , c ) { for ( var d = [ ] , e = void 0 !== c ; ( a = a [ b ] ) && 9 !== a . nodeType ; ) if ( 1 === a . nodeType ) { if ( e && r ( a ) . is ( c ) ) break ; d . push ( a ) } return d } , z = function ( a , b ) { for ( var c = [ ] ; a ; a = a . nextSibling ) 1 === a . nodeType && a !== b && c . push ( a ) ; return c } , A = r . expr . match . needsContext , B = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i , C = /^.[^:#\[\.,]*$/ ; r . filter = function ( a , b , c ) { var d = b [ 0 ] ; return c && ( a = ":not(" + a + ")" ) , 1 === b . length && 1 === d . nodeType ? r . find . matchesSelector ( d , a ) ? [ d ] : [ ] : r . find . matches ( a , r . grep ( b , function ( a ) { return 1 === a . nodeType } ) ) } , r . fn . extend ( { find : function ( a ) { var b , c , d = this . length , e = this ; if ( "string" != typeof a ) return this . pushStack ( r ( a ) . filter ( function ( ) { for ( b = 0 ; b < d ; b ++ ) if ( r . contains ( e [ b ] , this ) ) return ! 0 } ) ) ; for ( c = this . pushStack ( [ ] ) , b = 0 ; b < d ; b ++ ) r . find ( a , e [ b ] , c ) ; return d > 1 ? r . uniqueSort ( c ) : c } , filter : function ( a ) { return this . pushStack ( D ( this , a || [ ] , ! 1 ) ) } , not : function ( a ) { return this . pushStack ( D ( this , a || [ ] , ! 0 ) ) } , is : function ( a ) { return ! !
} , fadeToggle : { opacity : "toggle" } } , function ( a , b ) { r . fn [ a ] = function ( a , c , d ) { return this . animate ( b , a , c , d ) } } ) , r . timers = [ ] , r . fx . tick = function ( ) { var a , b = 0 , c = r . timers ; for ( Ya = r . now ( ) ; b < c . length ; b ++ ) a = c [ b ] , a ( ) || c [ b ] !== a || c . splice ( b -- , 1 ) ; c . length || r . fx . stop ( ) , Ya = void 0 } , r . fx . timer = function ( a ) { r . timers . push ( a ) , a ( ) ? r . fx . start ( ) : r . timers . pop ( ) } , r . fx . interval = 13 , r . fx . start = function ( ) { Za || ( Za = a . requestAnimationFrame ? a . requestAnimationFrame ( ab ) : a . setInterval ( r . fx . tick , r . fx . interval ) ) } , r . fx . stop = function ( ) { a . cancelAnimationFrame ? a . cancelAnimationFrame ( Za ) : a . clearInterval ( Za ) , Za = null } , r . fx . speeds = { slow : 600 , fast : 200 , _default : 400 } , r . fn . delay = function ( b , c ) { return b = r . fx ? r . fx . speeds [ b ] || b : b , c = c || "fx" , this . queue ( c , function ( c , d ) { var e = a . setTimeout ( c , b ) ; d . stop = function ( ) { a . clearTimeout ( e ) } } ) } , function ( ) { var a = d . createElement ( "input" ) , b = d . createElement ( "select" ) , c = b . appendChild ( d . createElement ( "option" ) ) ; a . type = "checkbox" , o . checkOn = "" !== a . value , o . optSelected = c . selected , a = d . createElement ( "input" ) , a . value = "t" , a . type = "radio" , o . radioValue = "t" === a . value } ( ) ; var hb , ib = r . expr . attrHandle ; r . fn . extend ( { attr : function ( a , b ) { return S ( this , r . attr , a , b , arguments . length > 1 ) } , removeAttr : function ( a ) { return this . each ( function ( ) { r . removeAttr ( this , a ) } ) } } ) , r . extend ( { attr : function ( a , b , c ) { var d , e , f = a . nodeType ; if ( 3 !== f && 8 !== f && 2 !== f ) return "undefined" == typeof a . getAttribute ? r . prop ( a , b , c ) : ( 1 === f && r . isXMLDoc ( a ) || ( e = r . attrHooks [ b . toLowerCase ( ) ] || ( r . expr . match . bool . test ( b ) ? hb : void 0 ) ) , void 0 !== c ? null === c ? void r . removeAttr ( a , b ) : e && "set" in e && void 0 !== ( d = e . set ( a , c , b ) ) ? d : ( a . setAttribute ( b , c + "" ) , c ) : e && "get" in e && null !== ( d = e . get ( a , b ) ) ? d : ( d = r . find . attr ( a , b ) , null == d ? void 0 : d ) ) } , attrHooks : { type : { set : function ( a , b ) { if ( ! o . radioValue && "radio" === b && r . nodeName ( a , "input" ) ) { var c = a . value ; return a . setAttribute ( "type" , b ) , c && ( a . value = c ) , b } } } } , removeAttr : function ( a , b ) { var c , d = 0 , e = b && b . match ( K ) ; if ( e && 1 === a . nodeType ) for ( ; c = e [ d ++ ] ; ) a . removeAttribute ( c ) } } ) , hb = { set : function ( a , b , c ) { return b === ! 1 ? r . removeAttr ( a , c ) : a . setAttribute ( c , c ) , c } } , r . each ( r . expr . match . bool . source . match ( /\w+/g ) , function ( a , b ) { var c = ib [ b ] || r . find . attr ; ib [ b ] = function ( a , b , d ) { var e , f , g = b . toLowerCase ( ) ; return d || ( f = ib [ g ] , ib [ g ] = e , e = null != c ( a , b , d ) ? g : null , ib [ g ] = f ) , e } } ) ; var jb = /^(?:input|select|textarea|button)$/i , kb = /^(?:a|area)$/i ; r . fn . extend ( { prop : function ( a , b ) { return S ( this , r . prop , a , b , arguments . length > 1 ) } , removeProp : function ( a ) { return this . each ( function ( ) { delete this [ r . propFix [ a ] || a ] } ) } } ) , r . extend ( { prop : function ( a , b , c ) { var d , e , f = a . nodeType ; if ( 3 !== f && 8 !== f && 2 !== f ) return 1 === f && r . isXMLDoc ( a ) || ( b = r . propFix [ b ] || b , e = r . propHooks [ b ] ) , void 0 !== c ? e && "set" in e && void 0 !== ( d = e . set ( a , c , b ) ) ? d : a [ b ] = c : e && "get" in e && null !== ( d = e . get ( a , b ) ) ? d : a [ b ] } , propHooks : { tabIndex : { get : function ( a ) { var b = r . find . attr ( a , "tabindex" ) ; return b ? parseInt ( b , 10 ) : jb . test ( a . nodeName ) || kb . test ( a . nodeName ) && a . href ? 0 : - 1 } } } , propFix : { for : "htmlFor" , class : "className" } } ) , o . optSelected || ( r . propHooks . selected = { get : function ( a ) { var b = a . parentNode ; return b && b . parentNode && b . parentNode . selectedIndex , null } , set : function ( a ) { var b = a . parentNode ; b && ( b . selectedIndex , b . parentNode && b . parentNode . selectedIndex ) } } ) , r . each ( [ "tabIndex" , "readOnly" , "maxLength" , "cellSpacing" , "cellPadding" , "rowSpan" , "colSpan" , "useMap" , "frameBorder" , "contentEditable" ] , function ( ) { r . propFix [ this . toLowerCase ( ) ] = this } ) ; var lb = /[\t\r\n\f]/g ; r . fn . extend ( { addClass : function ( a ) { var b , c , d , e , f , g , h , i = 0 ; if ( r . isFunction ( a ) ) return this . each ( function ( b ) { r ( this ) . addClass ( a . call ( this , b , mb ( this ) ) ) } ) ; if ( "string" == typeof a && a ) for ( b = a . match ( K ) || [ ] ; c = this [ i ++ ] ; ) if ( e = mb ( c ) , d = 1 === c . nodeType && ( " " + e + " " ) . replace ( lb , " " ) ) { for ( g = 0 ; f = b [ g ++ ] ; ) d . indexOf ( " " + f + " " ) < 0 && ( d += f + " " ) ; h = r . trim ( d ) , e !== h && c . setAttribute ( "class" , h ) } return this } , removeClass : function ( a ) { var b , c , d , e , f , g , h , i = 0 ; if ( r . isFunction ( a ) ) return this . each ( function ( b ) { r ( this ) . removeClass ( a . call ( this , b , mb ( this ) ) ) } ) ; if ( ! arguments . length ) return this . attr ( "class" , "" ) ; if ( "string" == typeof a && a ) for ( b = a . match ( K ) || [ ] ; c = this [ i ++ ] ; ) if ( e = mb ( c ) , d = 1 === c . nodeType && ( " " + e + " " ) . replace ( lb , " " ) ) { for ( g = 0 ; f = b [ g ++ ] ; ) for ( ; d . indexOf ( " " + f + " " ) > - 1 ; ) d = d . replace ( " " + f + " " , " " ) ; h = r . trim ( d ) , e !== h && c . setAttribute ( "class" , h ) } return this }
this . _isCompiled = this . _isDestroyed = this . _isReady = this . _isAttached = this . _isBeingDestroyed = this . _vForRemoving = ! 1 , this . _unlinkFn = null , this . _context = t . _context || this . $parent , this . _scope = t . _scope , this . _frag = t . _frag , this . _frag && this . _frag . children . push ( this ) , this . $parent && this . $parent . $children . push ( this ) , t = this . $options = mt ( this . constructor . options , t , this ) , this . _updateRef ( ) , this . _data = { } , this . _callHook ( "init" ) , this . _initState ( ) , this . _initEvents ( ) , this . _callHook ( "created" ) , t . el && this . $mount ( t . el ) } } function At ( t ) { if ( void 0 === t ) return "eof" ; var e = t . charCodeAt ( 0 ) ; switch ( e ) { case 91 : case 93 : case 46 : case 34 : case 39 : case 48 : return t ; case 95 : case 36 : return "ident" ; case 32 : case 9 : case 10 : case 13 : case 160 : case 65279 : case 8232 : case 8233 : return "ws" } return e >= 97 && 122 >= e || e >= 65 && 90 >= e ? "ident" : e >= 49 && 57 >= e ? "number" : "else" } function Ot ( t ) { var e = t . trim ( ) ; return ( "0" !== t . charAt ( 0 ) || ! isNaN ( t ) ) && ( n ( e ) ? h ( e ) : "*" + e ) } function Tt ( t ) { function e ( ) { var e = t [ c + 1 ] ; return u === Xn && "'" === e || u === Yn && '"' === e ? ( c ++ , n = "\\" + e , p [ Bn ] ( ) , ! 0 ) : void 0 } var i , n , r , s , o , a , h , l = [ ] , c = - 1 , u = Jn , f = 0 , p = [ ] ; for ( p [ Wn ] = function ( ) { void 0 !== r && ( l . push ( r ) , r = void 0 ) } , p [ Bn ] = function ( ) { void 0 === r ? r = n : r += n } , p [ zn ] = function ( ) { p [ Bn ] ( ) , f ++ } , p [ Un ] = function ( ) { if ( f > 0 ) f -- , u = Zn , p [ Bn ] ( ) ; else { if ( f = 0 , r = Ot ( r ) , r === ! 1 ) return ! 1 ; p [ Wn ] ( ) } } ; null != u ; ) if ( c ++ , i = t [ c ] , "\\" !== i || ! e ( ) ) { if ( s = At ( i ) , h = er [ u ] , o = h [ s ] || h . else || tr , o === tr ) return ; if ( u = o [ 0 ] , a = p [ o [ 1 ] ] , a && ( n = o [ 2 ] , n = void 0 === n ? i : n , a ( ) === ! 1 ) ) return ; if ( u === Kn ) return l . raw = t , l } } function Nt ( t ) { var e = Vn . get ( t ) ; return e || ( e = Tt ( t ) , e && Vn . put ( t , e ) ) , e } function jt ( t , e ) { return It ( e ) . get ( t ) } function Et ( e , i , n ) { var r = e ; if ( "string" == typeof i && ( i = Tt ( i ) ) , ! i || ! m ( e ) ) return ! 1 ; for ( var s , o , a = 0 , h = i . length ; h > a ; a ++ ) s = e , o = i [ a ] , "*" === o . charAt ( 0 ) && ( o = It ( o . slice ( 1 ) ) . get . call ( r , r ) ) , h - 1 > a ? ( e = e [ o ] , m ( e ) || ( e = { } , t ( s , o , e ) ) ) : Di ( e ) ? e . $set ( o , n ) : o in e ? e [ o ] = n : t ( e , o , n ) ; return ! 0 } function St ( ) { } function Ft ( t , e ) { var i = vr . length ; return vr [ i ] = e ? t . replace ( lr , "\\n" ) : t , '"' + i + '"' } function Dt ( t ) { var e = t . charAt ( 0 ) , i = t . slice ( 1 ) ; return sr . test ( i ) ? t : ( i = i . indexOf ( '"' ) > - 1 ? i . replace ( ur , Pt ) : i , e + "scope." + i ) } function Pt ( t , e ) { return vr [ e ] } function Rt ( t ) { ar . test ( t ) , vr . length = 0 ; var e = t . replace ( cr , Ft ) . replace ( hr , "" ) ; return e = ( " " + e ) . replace ( pr , Dt ) . replace ( ur , Pt ) , Lt ( e ) } function Lt ( t ) { try { return new Function ( "scope" , "return " + t + ";" ) } catch ( e ) { return St } } function Ht ( t ) { var e = Nt ( t ) ; return e ? function ( t , i ) { Et ( t , e , i ) } : void 0 } function It ( t , e ) { t = t . trim ( ) ; var i = nr . get ( t ) ; if ( i ) return e && ! i . set && ( i . set = Ht ( i . exp ) ) , i ; var n = { exp : t } ; return n . get = Mt ( t ) && t . indexOf ( "[" ) < 0 ? Lt ( "scope." + t ) : Rt ( t ) , e && ( n . set = Ht ( t ) ) , nr . put ( t , n ) , n } function Mt ( t ) { return fr . test ( t ) && ! dr . test ( t ) && "Math." !== t . slice ( 0 , 5 ) } function Vt ( ) { gr . length = 0 , _r . length = 0 , yr = { } , br = { } , wr = ! 1 } function Bt ( ) { for ( var t = ! 0 ; t ; ) t = ! 1 , Wt ( gr ) , Wt ( _r ) , gr . length ? t = ! 0 : ( Li && An . devtools && Li . emit ( "flush" ) , Vt ( ) ) } function Wt ( t ) { for ( var e = 0 ; e < t . length ; e ++ ) { var i = t [ e ] , n = i . id ; yr [ n ] = null , i . run ( ) } t . length = 0 } function zt ( t ) { var e = t . id ; if ( null == yr [ e ] ) { var i = t . user ? _r : gr ; yr [ e ] = i . length , i . push ( t ) , wr || ( wr = ! 0 , Yi ( Bt ) ) } } function Ut ( t , e , i , n ) { n && v ( this , n ) ; var r = "function" == typeof e ; if ( this . vm = t , t . _watchers . push ( this ) , this . expression = e , this . cb = i , this . id = ++ Cr , this . active = ! 0 , this . dirty = this . lazy , this . deps = [ ] , this . newDeps = [ ] , this . depIds = new Ki , this . newDepIds = new Ki , this . prevError = null , r ) this . getter = e , this . setter = void 0 ; else { var s = It ( e , this . twoWay ) ; this . getter = s . get , this . setter = s . set } this . value = this . lazy ? void 0 : this . get ( ) , this . queued = this . shallow = ! 1 } function Jt ( t , e ) { var i = void 0 , n = void 0 ; e || ( e = $r , e . clear ( ) ) ; var r = Di ( t ) , s = m ( t ) ; if ( ( r || s ) && Object . isExtensible ( t ) ) { if ( t . _ _ob _ _ ) { var o = t . _ _ob _ _ . dep . id ; if ( e . has ( o ) ) return ; e . add ( o ) } if ( r ) for ( i = t . length ; i -- ; ) Jt ( t [ i ] , e ) ; else if ( s ) for ( n = Object . keys ( t ) , i = n . length ; i -- ; ) Jt ( t [ n [ i ] ] , e ) } } function qt ( t ) { return it ( t ) && at ( t . content ) } function Qt ( t , e ) { var i = e ? t : t . trim ( ) , n = xr . get ( i ) ; if ( n ) return n ; var r = document . createDocumentFragment ( ) , s = t . match ( Tr ) , o = Nr . test ( t ) , a = jr . test ( t ) ; if ( s || o || a ) { var h = s && s [ 1 ] , l = Or [ h ] || Or . efault , c = l [ 0 ] , u = l [ 1 ] , f = l [ 2 ] , p = document . createElement ( "div" ) ; for ( p . innerHTML = u + t + f ; c -- ; ) p = p . lastChild ; for ( var d ; d = p . firstChild ; ) r . appendChild ( d ) } else r . appendChild ( document . createTextNode ( t ) ) ; return e || tt ( r ) , x
return void 0 !== this . set [ t ] } , Ki . prototype . add = function ( t ) { this . set [ t ] = 1 } , Ki . prototype . clear = function ( ) { this . set = Object . create ( null ) } ) ; var tn = $ . prototype ; tn . put = function ( t , e ) { var i , n = this . get ( t , ! 0 ) ; return n || ( this . size === this . limit && ( i = this . shift ( ) ) , n = { key : t } , this . _keymap [ t ] = n , this . tail ? ( this . tail . newer = n , n . older = this . tail ) : this . head = n , this . tail = n , this . size ++ ) , n . value = e , i } , tn . shift = function ( ) { var t = this . head ; return t && ( this . head = this . head . newer , this . head . older = void 0 , t . newer = t . older = void 0 , this . _keymap [ t . key ] = void 0 , this . size -- ) , t } , tn . get = function ( t , e ) { var i = this . _keymap [ t ] ; if ( void 0 !== i ) return i === this . tail ? e ? i : i . value : ( i . newer && ( i === this . head && ( this . head = i . newer ) , i . newer . older = i . older ) , i . older && ( i . older . newer = i . newer ) , i . newer = void 0 , i . older = this . tail , this . tail && ( this . tail . newer = i ) , this . tail = i , e ? i : i . value ) } ; var en , nn , rn , sn , on , an , hn , ln , cn , un , fn , pn , dn = new $ ( 1e3 ) , vn = /[^\s'"]+|'[^']*'|"[^"]*"/g , mn = /^in$|^-?\d+/ , gn = Object . freeze ( { parseDirective : A } ) , _n = /[-.*+?^${}()|[\]\/\\]/g , yn = void 0 , bn = void 0 , wn = void 0 , Cn = /[^|]\|[^|]/ , $n = Object . freeze ( { compileRegex : T , parseText : N , tokensToExp : j } ) , kn = [ "{{" , "}}" ] , xn = [ "{{{" , "}}}" ] , An = Object . defineProperties ( { debug : ! 1 , silent : ! 1 , async : ! 0 , warnExpressionErrors : ! 0 , devtools : ! 1 , _delimitersChanged : ! 0 , _assetTypes : [ "component" , "directive" , "elementDirective" , "filter" , "transition" , "partial" ] , _propBindingModes : { ONE _WAY : 0 , TWO _WAY : 1 , ONE _TIME : 2 } , _maxUpdateCount : 100 } , { delimiters : { get : function ( ) { return kn } , set : function ( t ) { kn = t , T ( ) } , configurable : ! 0 , enumerable : ! 0 } , unsafeDelimiters : { get : function ( ) { return xn } , set : function ( t ) { xn = t , T ( ) } , configurable : ! 0 , enumerable : ! 0 } } ) , On = void 0 , Tn = Object . freeze ( { appendWithTransition : F , beforeWithTransition : D , removeWithTransition : P , applyTransition : R } ) , Nn = /^v-ref:/ , jn = /^(div|p|span|img|a|b|i|br|ul|ol|li|h1|h2|h3|h4|h5|h6|code|pre|table|th|td|tr|form|label|input|select|option|nav|article|section|header|footer)$/i , En = /^(slot|partial|component)$/i , Sn = An . optionMergeStrategies = Object . create ( null ) ; Sn . data = function ( t , e , i ) { return i ? t || e ? function ( ) { var n = "function" == typeof e ? e . call ( i ) : e , r = "function" == typeof t ? t . call ( i ) : void 0 ; return n ? ut ( n , r ) : r } : void 0 : e ? "function" != typeof e ? t : t ? function ( ) { return ut ( e . call ( this ) , t . call ( this ) ) } : e : t } , Sn . el = function ( t , e , i ) { if ( i || ! e || "function" == typeof e ) { var n = e || t ; return i && "function" == typeof n ? n . call ( i ) : n } } , Sn . init = Sn . created = Sn . ready = Sn . attached = Sn . detached = Sn . beforeCompile = Sn . compiled = Sn . beforeDestroy = Sn . destroyed = Sn . activate = function ( t , e ) { return e ? t ? t . concat ( e ) : Di ( e ) ? e : [ e ] : t } , An . _assetTypes . forEach ( function ( t ) { Sn [ t + "s" ] = ft } ) , Sn . watch = Sn . events = function ( t , e ) { if ( ! e ) return t ; if ( ! t ) return e ; var i = { } ; v ( i , t ) ; for ( var n in e ) { var r = i [ n ] , s = e [ n ] ; r && ! Di ( r ) && ( r = [ r ] ) , i [ n ] = r ? r . concat ( s ) : [ s ] } return i } , Sn . props = Sn . methods = Sn . computed = function ( t , e ) { if ( ! e ) return t ; if ( ! t ) return e ; var i = Object . create ( null ) ; return v ( i , t ) , v ( i , e ) , i } ; var Fn = function ( t , e ) { return void 0 === e ? t : e } , Dn = 0 ; _t . target = null , _t . prototype . addSub = function ( t ) { this . subs . push ( t ) } , _t . prototype . removeSub = function ( t ) { this . subs . $remove ( t ) } , _t . prototype . depend = function ( ) { _t . target . addDep ( this ) } , _t . prototype . notify = function ( ) { for ( var t = d ( this . subs ) , e = 0 , i = t . length ; i > e ; e ++ ) t [ e ] . update ( ) } ; var Pn = Array . prototype , Rn = Object . create ( Pn ) ; [ "push" , "pop" , "shift" , "unshift" , "splice" , "sort" , "reverse" ] . forEach ( function ( t ) { var e = Pn [ t ] ; _ ( Rn , t , function ( ) { for ( var i = arguments . length , n = new Array ( i ) ; i -- ; ) n [ i ] = arguments [ i ] ; var r , s = e . apply ( this , n ) , o = this . _ _ob _ _ ; switch ( t ) { case "push" : r = n ; break ; case "unshift" : r = n ; break ; case "splice" : r = n . slice ( 2 ) } return r && o . observeArray ( r ) , o . dep . notify ( ) , s } ) } ) , _ ( Pn , "$set" , function ( t , e ) { return t >= this . length && ( this . length = Number ( t ) + 1 ) , this . splice ( t , 1 , e ) [ 0 ] } ) , _ ( Pn , "$remove" , function ( t ) { if ( this . length ) { var e = b ( this , t ) ; return e > - 1 ? this . splice ( e , 1 ) : void 0 } } ) ; var Ln = Object . getOwnPropertyNames ( Rn ) , Hn = ! 0 ; bt . prototype . walk = function ( t ) { for ( var e = Object . keys ( t ) , i = 0 , n = e . length ; n > i ; i ++ ) this . convert ( e [ i ] , t [ e [ i ] ] ) } , bt . prototype . observeArray = function ( t ) { for ( var e = 0 , i = t . length ; i > e ; e ++ ) $t ( t [ e ] ) } , bt . prototype . convert = function ( t , e ) { kt ( this . value , t , e ) } , bt . prototype . addVm = function ( t ) { ( this . vms || ( this . vms = [ ] ) ) . push ( t ) } , bt . prototype . removeVm
e . _locked = ! 0 , t . call ( e ) , Yi ( function ( ) { e . _locked = ! 1 } ) } , di . prototype . on = function ( t , e , i ) { q ( this . el , t , e , i ) , ( this . _listeners || ( this . _listeners = [ ] ) ) . push ( [ t , e ] ) } , di . prototype . _teardown = function ( ) { if ( this . _bound ) { this . _bound = ! 1 , this . unbind && this . unbind ( ) , this . _watcher && this . _watcher . teardown ( ) ; var t , e = this . _listeners ; if ( e ) for ( t = e . length ; t -- ; ) Q ( this . el , e [ t ] [ 0 ] , e [ t ] [ 1 ] ) ; var i = this . _paramUnwatchFns ; if ( i ) for ( t = i . length ; t -- ; ) i [ t ] ( ) ; this . vm = this . el = this . _watcher = this . _listeners = null } } ; var Gs = /[^|]\|[^|]/ ; xt ( wi ) , ui ( wi ) , fi ( wi ) , vi ( wi ) , mi ( wi ) , gi ( wi ) , _i ( wi ) , yi ( wi ) , bi ( wi ) ; var Zs = { priority : Ur , params : [ "name" ] , bind : function ( ) { var t = this . params . name || "default" , e = this . vm . _slotContents && this . vm . _slotContents [ t ] ; e && e . hasChildNodes ( ) ? this . compile ( e . cloneNode ( ! 0 ) , this . vm . _context , this . vm ) : this . fallback ( ) } , compile : function ( t , e , i ) { if ( t && e ) { if ( this . el . hasChildNodes ( ) && 1 === t . childNodes . length && 1 === t . childNodes [ 0 ] . nodeType && t . childNodes [ 0 ] . hasAttribute ( "v-if" ) ) { var n = document . createElement ( "template" ) ; n . setAttribute ( "v-else" , "" ) , n . innerHTML = this . el . innerHTML , n . _context = this . vm , t . appendChild ( n ) } var r = i ? i . _scope : this . _scope ; this . unlink = e . $compile ( t , i , r , this . _frag ) } t ? J ( this . el , t ) : z ( this . el ) } , fallback : function ( ) { this . compile ( K ( this . el , ! 0 ) , this . vm ) } , unbind : function ( ) { this . unlink && this . unlink ( ) } } , Xs = { priority : Br , params : [ "name" ] , paramWatchers : { name : function ( t ) { Qr . remove . call ( this ) , t && this . insert ( t ) } } , bind : function ( ) { this . anchor = nt ( "v-partial" ) , J ( this . el , this . anchor ) , this . insert ( this . params . name ) } , insert : function ( t ) { var e = gt ( this . vm . $options , "partials" , t , ! 0 ) ; e && ( this . factory = new se ( this . vm , e ) , Qr . insert . call ( this ) ) } , unbind : function ( ) { this . frag && this . frag . destroy ( ) } } , Ys = { slot : Zs , partial : Xs } , Ks = qr . _postProcess , to = /(\d{3})(?=\d)/g , eo = { orderBy : ki , filterBy : $i , limitBy : Ci , json : { read : function ( t , e ) { return "string" == typeof t ? t : JSON . stringify ( t , null , arguments . length > 1 ? e : 2 ) } , write : function ( t ) { try { return JSON . parse ( t ) } catch ( e ) { return t } } } , capitalize : function ( t ) { return t || 0 === t ? ( t = t . toString ( ) , t . charAt ( 0 ) . toUpperCase ( ) + t . slice ( 1 ) ) : "" } , uppercase : function ( t ) { return t || 0 === t ? t . toString ( ) . toUpperCase ( ) : "" } , lowercase : function ( t ) { return t || 0 === t ? t . toString ( ) . toLowerCase ( ) : "" } , currency : function ( t , e , i ) { if ( t = parseFloat ( t ) , ! isFinite ( t ) || ! t && 0 !== t ) return "" ; e = null != e ? e : "$" , i = null != i ? i : 2 ; var n = Math . abs ( t ) . toFixed ( i ) , r = i ? n . slice ( 0 , - 1 - i ) : n , s = r . length % 3 , o = s > 0 ? r . slice ( 0 , s ) + ( r . length > 3 ? "," : "" ) : "" , a = i ? n . slice ( - 1 - i ) : "" , h = 0 > t ? "-" : "" ; return h + e + o + r . slice ( s ) . replace ( to , "$1," ) + a } , pluralize : function ( t ) { var e = d ( arguments , 1 ) , i = e . length ; if ( i > 1 ) { var n = t % 10 - 1 ; return n in e ? e [ n ] : e [ i - 1 ] } return e [ 0 ] + ( 1 === t ? "" : "s" ) } , debounce : function ( t , e ) { return t ? ( e || ( e = 300 ) , y ( t , e ) ) : void 0 } } ; return Ai ( wi ) , wi . version = "1.0.26" , setTimeout ( function ( ) { An . devtools && Li && Li . emit ( "init" , wi ) } , 0 ) , wi } ) , ! function ( a ) { "function" == typeof define && define . amd ? define ( [ "jquery" ] , a ) : a ( "object" == typeof module && module . exports ? require ( "jquery" ) : jQuery ) } ( function ( a ) { var b = "2.0.0" , c = { } , d = { exclude : [ ] , excludeWithin : [ ] , offset : 0 , direction : "top" , delegateSelector : null , scrollElement : null , scrollTarget : null , beforeScroll : function ( ) { } , afterScroll : function ( ) { } , easing : "swing" , speed : 400 , autoCoefficient : 2 , preventDefault : ! 0 } , e = function ( b ) { var c = [ ] , d = ! 1 , e = b . dir && "left" === b . dir ? "scrollLeft" : "scrollTop" ; return this . each ( function ( ) { var b = a ( this ) ; if ( this !== document && this !== window ) return ! document . scrollingElement || this !== document . documentElement && this !== document . body ? void ( b [ e ] ( ) > 0 ? c . push ( this ) : ( b [ e ] ( 1 ) , d = b [ e ] ( ) > 0 , d && c . push ( this ) , b [ e ] ( 0 ) ) ) : ( c . push ( document . scrollingElement ) , ! 1 ) } ) , c . length || this . each ( function ( ) { this === document . documentElement && "smooth" === a ( this ) . css ( "scrollBehavior" ) && ( c = [ this ] ) , c . length || "BODY" !== this . nodeName || ( c = [ this ] ) } ) , "first" === b . el && c . length > 1 && ( c = [ c [ 0 ] ] ) , c } ; a . fn . extend ( { scrollable : function ( a ) { var b = e . call ( this , { dir : a } ) ; return this . pushStack ( b ) } , firstScrollable : function ( a ) { var b = e . call ( this , { el : "first" , dir : a } ) ; return this . pushStack ( b ) } , smoothScroll : function ( b , c ) { if ( b = b || { } , "options" === b ) return c ? this . each ( function ( ) { var b = a ( this ) , d = a . extend ( b . data ( "ssOpts" ) || { } , c ) ; a ( this ) . data ( "ssOpts" , d ) } ) : this . first ( ) . data ( "ssOpts" ) ; var d = a . extend ( { } , a . fn . smoothScro
return r . typo && ! r . typo . check ( n ) ? "spell-error" : null } } , s = e . codeMirrorInstance . getMode ( t , t . backdrop || "text/plain" ) ; return e . codeMirrorInstance . overlayMode ( s , l , ! 0 ) } ) ) } var i = e ( "typo-js" ) ; r . num _loaded = 0 , r . aff _loading = ! 1 , r . dic _loading = ! 1 , r . aff _data = "" , r . dic _data = "" , r . typo , t . exports = r } , { "typo-js" : 18 } ] , 5 : [ function ( t , n , r ) { ! function ( i ) { "object" == typeof r && "object" == typeof n ? i ( t ( "../../lib/codemirror" ) ) : "function" == typeof e && e . amd ? e ( [ "../../lib/codemirror" ] , i ) : i ( CodeMirror ) } ( function ( e ) { "use strict" ; function t ( e ) { var t = e . getWrapperElement ( ) ; e . state . fullScreenRestore = { scrollTop : window . pageYOffset , scrollLeft : window . pageXOffset , width : t . style . width , height : t . style . height } , t . style . width = "" , t . style . height = "auto" , t . className += " CodeMirror-fullscreen" , document . documentElement . style . overflow = "hidden" , e . refresh ( ) } function n ( e ) { var t = e . getWrapperElement ( ) ; t . className = t . className . replace ( /\s*CodeMirror-fullscreen\b/ , "" ) , document . documentElement . style . overflow = "" ; var n = e . state . fullScreenRestore ; t . style . width = n . width , t . style . height = n . height , window . scrollTo ( n . scrollLeft , n . scrollTop ) , e . refresh ( ) } e . defineOption ( "fullScreen" , ! 1 , function ( r , i , o ) { o == e . Init && ( o = ! 1 ) , ! o != ! i && ( i ? t ( r ) : n ( r ) ) } ) } ) } , { "../../lib/codemirror" : 10 } ] , 6 : [ function ( t , n , r ) { ! function ( i ) { "object" == typeof r && "object" == typeof n ? i ( t ( "../../lib/codemirror" ) ) : "function" == typeof e && e . amd ? e ( [ "../../lib/codemirror" ] , i ) : i ( CodeMirror ) } ( function ( e ) { function t ( e ) { e . state . placeholder && ( e . state . placeholder . parentNode . removeChild ( e . state . placeholder ) , e . state . placeholder = null ) } function n ( e ) { t ( e ) ; var n = e . state . placeholder = document . createElement ( "pre" ) ; n . style . cssText = "height: 0; overflow: visible" , n . className = "CodeMirror-placeholder" ; var r = e . getOption ( "placeholder" ) ; "string" == typeof r && ( r = document . createTextNode ( r ) ) , n . appendChild ( r ) , e . display . lineSpace . insertBefore ( n , e . display . lineSpace . firstChild ) } function r ( e ) { o ( e ) && n ( e ) } function i ( e ) { var r = e . getWrapperElement ( ) , i = o ( e ) ; r . className = r . className . replace ( " CodeMirror-empty" , "" ) + ( i ? " CodeMirror-empty" : "" ) , i ? n ( e ) : t ( e ) } function o ( e ) { return 1 === e . lineCount ( ) && "" === e . getLine ( 0 ) } e . defineOption ( "placeholder" , "" , function ( n , o , a ) { var l = a && a != e . Init ; if ( o && ! l ) n . on ( "blur" , r ) , n . on ( "change" , i ) , n . on ( "swapDoc" , i ) , i ( n ) ; else if ( ! o && l ) { n . off ( "blur" , r ) , n . off ( "change" , i ) , n . off ( "swapDoc" , i ) , t ( n ) ; var s = n . getWrapperElement ( ) ; s . className = s . className . replace ( " CodeMirror-empty" , "" ) } o && ! n . hasFocus ( ) && r ( n ) } ) } ) } , { "../../lib/codemirror" : 10 } ] , 7 : [ function ( t , n , r ) { ! function ( i ) { "object" == typeof r && "object" == typeof n ? i ( t ( "../../lib/codemirror" ) ) : "function" == typeof e && e . amd ? e ( [ "../../lib/codemirror" ] , i ) : i ( CodeMirror ) } ( function ( e ) { "use strict" ; var t = /^(\s*)(>[> ]*|[*+-]\s|(\d+)([.)]))(\s*)/ , n = /^(\s*)(>[> ]*|[*+-]|(\d+)[.)])(\s*)$/ , r = /[*+-]\s/ ; e . commands . newlineAndIndentContinueMarkdownList = function ( i ) { if ( i . getOption ( "disableInput" ) ) return e . Pass ; for ( var o = i . listSelections ( ) , a = [ ] , l = 0 ; l < o . length ; l ++ ) { var s = o [ l ] . head , c = i . getStateAfter ( s . line ) , u = c . list !== ! 1 , f = 0 !== c . quote , h = i . getLine ( s . line ) , d = t . exec ( h ) ; if ( ! o [ l ] . empty ( ) || ! u && ! f || ! d ) return void i . execCommand ( "newlineAndIndent" ) ; if ( n . test ( h ) ) i . replaceRange ( "" , { line : s . line , ch : 0 } , { line : s . line , ch : s . ch + 1 } ) , a [ l ] = "\n" ; else { var p = d [ 1 ] , m = d [ 5 ] , g = r . test ( d [ 2 ] ) || d [ 2 ] . indexOf ( ">" ) >= 0 ? d [ 2 ] : parseInt ( d [ 3 ] , 10 ) + 1 + d [ 4 ] ; a [ l ] = "\n" + p + g + m } } i . replaceSelections ( a ) } } ) } , { "../../lib/codemirror" : 10 } ] , 8 : [ function ( t , n , r ) { ! function ( i ) { "object" == typeof r && "object" == typeof n ? i ( t ( "../../lib/codemirror" ) ) : "function" == typeof e && e . amd ? e ( [ "../../lib/codemirror" ] , i ) : i ( CodeMirror ) } ( function ( e ) { "use strict" ; e . overlayMode = function ( t , n , r ) { return { startState : function ( ) { return { base : e . startState ( t ) , overlay : e . startState ( n ) , basePos : 0 , baseCur : null , overlayPos : 0 , overlayCur : null , streamSeen : null } } , copyState : function ( r ) { return { base : e . copyState ( t , r . base ) , overlay : e . copyState ( n , r . overlay ) , basePos : r . basePos , baseCur : null , overlayPos : r . overlayPos , overlayCur : null } } , token : function ( e , i ) { return ( e != i . streamSeen || Math . min ( i . basePos , i . overlayPos ) < e . start ) && ( i . streamSeen = e , i . basePos = i . overlayPos = e . start ) , e . start == i . basePos && ( i . baseCur = t . token ( e , i . base ) , i . basePos = e . pos ) , e . start == i . overlayPos && ( e . pos = e . start , i . overlayCur = n . to
var l = n . sel . ranges [ a ] ; if ( ! ( l . from ( ) . line >= e . display . viewTo || l . to ( ) . line < e . display . viewFrom ) ) { var s = l . empty ( ) ; ( s || e . options . showCursorWhenSelecting ) && He ( e , l . head , i ) , s || We ( e , l , o ) } } return r } function He ( e , t , n ) { var r = dt ( e , t , "div" , null , null , ! e . options . singleCursorHeightPerLine ) , i = n . appendChild ( ji ( "div" , " " , "CodeMirror-cursor" ) ) ; if ( i . style . left = r . left + "px" , i . style . top = r . top + "px" , i . style . height = Math . max ( 0 , r . bottom - r . top ) * e . options . cursorHeight + "px" , r . other ) { var o = n . appendChild ( ji ( "div" , " " , "CodeMirror-cursor CodeMirror-secondarycursor" ) ) ; o . style . display = "" , o . style . left = r . other . left + "px" , o . style . top = r . other . top + "px" , o . style . height = . 85 * ( r . other . bottom - r . other . top ) + "px" } } function We ( e , t , n ) { function r ( e , t , n , r ) { 0 > t && ( t = 0 ) , t = Math . round ( t ) , r = Math . round ( r ) , l . appendChild ( ji ( "div" , null , "CodeMirror-selected" , "position: absolute; left: " + e + "px; top: " + t + "px; width: " + ( null == n ? u - e : n ) + "px; height: " + ( r - t ) + "px" ) ) } function i ( t , n , i ) { function o ( n , r ) { return ht ( e , Bo ( t , n ) , "div" , f , r ) } var l , s , f = Zr ( a , t ) , h = f . text . length ; return eo ( ii ( f ) , n || 0 , null == i ? h : i , function ( e , t , a ) { var f , d , p , m = o ( e , "left" ) ; if ( e == t ) f = m , d = p = m . left ; else { if ( f = o ( t - 1 , "right" ) , "rtl" == a ) { var g = m ; m = f , f = g } d = m . left , p = f . right } null == n && 0 == e && ( d = c ) , f . top - m . top > 3 && ( r ( d , m . top , null , m . bottom ) , d = c , m . bottom < f . top && r ( d , m . bottom , null , f . top ) ) , null == i && t == h && ( p = u ) , ( ! l || m . top < l . top || m . top == l . top && m . left < l . left ) && ( l = m ) , ( ! s || f . bottom > s . bottom || f . bottom == s . bottom && f . right > s . right ) && ( s = f ) , c + 1 > d && ( d = c ) , r ( d , f . top , p - d , f . bottom ) } ) , { start : l , end : s } } var o = e . display , a = e . doc , l = document . createDocumentFragment ( ) , s = Ge ( e . display ) , c = s . left , u = Math . max ( o . sizerWidth , $e ( e ) - o . sizer . offsetLeft ) - s . right , f = t . from ( ) , h = t . to ( ) ; if ( f . line == h . line ) i ( f . line , f . ch , h . ch ) ; else { var d = Zr ( a , f . line ) , p = Zr ( a , h . line ) , m = yr ( d ) == yr ( p ) , g = i ( f . line , f . ch , m ? d . text . length + 1 : null ) . end , v = i ( h . line , m ? 0 : null , h . ch ) . start ; m && ( g . top < v . top - 2 ? ( r ( g . right , g . top , null , g . bottom ) , r ( c , v . top , v . left , v . bottom ) ) : r ( g . right , g . top , v . left - g . right , g . bottom ) ) , g . bottom < v . top && r ( c , g . bottom , null , v . top ) } n . appendChild ( l ) } function Be ( e ) { if ( e . state . focused ) { var t = e . display ; clearInterval ( t . blinker ) ; var n = ! 0 ; t . cursorDiv . style . visibility = "" , e . options . cursorBlinkRate > 0 ? t . blinker = setInterval ( function ( ) { t . cursorDiv . style . visibility = ( n = ! n ) ? "" : "hidden" } , e . options . cursorBlinkRate ) : e . options . cursorBlinkRate < 0 && ( t . cursorDiv . style . visibility = "hidden" ) } } function _e ( e , t ) { e . doc . mode . startState && e . doc . frontier < e . display . viewTo && e . state . highlight . set ( t , Bi ( Fe , e ) ) } function Fe ( e ) { var t = e . doc ; if ( t . frontier < t . first && ( t . frontier = t . first ) , ! ( t . frontier >= e . display . viewTo ) ) { var n = + new Date + e . options . workTime , r = sa ( t . mode , je ( e , t . frontier ) ) , i = [ ] ; t . iter ( t . frontier , Math . min ( t . first + t . size , e . display . viewTo + 500 ) , function ( o ) { if ( t . frontier >= e . display . viewFrom ) { var a = o . styles , l = o . text . length > e . options . maxHighlightLength , s = Rr ( e , o , l ? sa ( t . mode , r ) : r , ! 0 ) ; o . styles = s . styles ; var c = o . styleClasses , u = s . classes ; u ? o . styleClasses = u : c && ( o . styleClasses = null ) ; for ( var f = ! a || a . length != o . styles . length || c != u && ( ! c || ! u || c . bgClass != u . bgClass || c . textClass != u . textClass ) , h = 0 ; ! f && h < a . length ; ++ h ) f = a [ h ] != o . styles [ h ] ; f && i . push ( t . frontier ) , o . stateAfter = l ? r : sa ( t . mode , r ) } else o . text . length <= e . options . maxHighlightLength && Hr ( e , o . text , r ) , o . stateAfter = t . frontier % 5 == 0 ? sa ( t . mode , r ) : null ; return ++ t . frontier , + new Date > n ? ( _e ( e , e . options . workDelay ) , ! 0 ) : void 0 } ) , i . length && At ( e , function ( ) { for ( var t = 0 ; t < i . length ; t ++ ) Ht ( e , i [ t ] , "text" ) } ) } } function ze ( e , t , n ) { for ( var r , i , o = e . doc , a = n ? - 1 : t - ( e . doc . mode . innerMode ? 1e3 : 100 ) , l = t ; l > a ; -- l ) { if ( l <= o . first ) return o . first ; var s = Zr ( o , l - 1 ) ; if ( s . stateAfter && ( ! n || l <= o . frontier ) ) return l ; var c = Fa ( s . text , null , e . options . tabSize ) ; ( null == i || r > c ) && ( i = l - 1 , r = c ) } return i } function je ( e , t , n ) { var r = e . doc , i = e . display ; if ( ! r . mode . startState ) return ! 0 ; var o = ze ( e , t , n ) , a = o > r . first && Zr ( r , o - 1 ) . stateAfter ; return a = a ? sa ( r . mode , a ) : ca ( r . mode ) , r . iter ( o , t , function ( n ) { Hr ( e , n . text , a ) ; var l = o == t - 1 || o % 5 == 0 || o >= i . viewFrom && o < i . viewTo ; n . stateAfter = l ? sa ( r . mode , a ) : null , ++ o } ) , n && ( r . frontier = o ) , a } function Ue ( e ) { return e . lineSpace . offsetTop } function qe ( e ) { return e . mover . offsetHeight - e . lineSpace . offsetHeight } function Ge ( e ) { if ( e . cachedPaddingH ) return e . cachedPaddingH ; var t = qi ( e . measur
} function bn ( e , t ) { return ! ! Ni ( e , "gutterContextMenu" ) && Zt ( e , t , "gutterContextMenu" , ! 1 ) } function wn ( e , t ) { if ( _o ( e , t . from ) < 0 ) return e ; if ( _o ( e , t . to ) <= 0 ) return Qo ( t ) ; var n = e . line + t . text . length - ( t . to . line - t . from . line ) - 1 , r = e . ch ; return e . line == t . to . line && ( r += Qo ( t ) . ch - t . to . ch ) , Bo ( n , r ) } function kn ( e , t ) { for ( var n = [ ] , r = 0 ; r < e . sel . ranges . length ; r ++ ) { var i = e . sel . ranges [ r ] ; n . push ( new fe ( wn ( i . anchor , t ) , wn ( i . head , t ) ) ) } return he ( n , e . sel . primIndex ) } function Sn ( e , t , n ) { return e . line == t . line ? Bo ( n . line , e . ch - t . ch + n . ch ) : Bo ( n . line + ( e . line - t . line ) , e . ch ) } function Cn ( e , t , n ) { for ( var r = [ ] , i = Bo ( e . first , 0 ) , o = i , a = 0 ; a < t . length ; a ++ ) { var l = t [ a ] , s = Sn ( l . from , i , o ) , c = Sn ( Qo ( l ) , i , o ) ; if ( i = l . to , o = c , "around" == n ) { var u = e . sel . ranges [ a ] , f = _o ( u . head , u . anchor ) < 0 ; r [ a ] = new fe ( f ? c : s , f ? s : c ) } else r [ a ] = new fe ( s , s ) } return new ue ( r , e . sel . primIndex ) } function Ln ( e , t , n ) { var r = { canceled : ! 1 , from : t . from , to : t . to , text : t . text , origin : t . origin , cancel : function ( ) { this . canceled = ! 0 } } ; return n && ( r . update = function ( t , n , r , i ) { t && ( this . from = me ( e , t ) ) , n && ( this . to = me ( e , n ) ) , r && ( this . text = r ) , void 0 !== i && ( this . origin = i ) } ) , Pa ( e , "beforeChange" , e , r ) , e . cm && Pa ( e . cm , "beforeChange" , e . cm , r ) , r . canceled ? null : { from : r . from , to : r . to , text : r . text , origin : r . origin } } function Tn ( e , t , n ) { if ( e . cm ) { if ( ! e . cm . curOp ) return Et ( e . cm , Tn ) ( e , t , n ) ; if ( e . cm . state . suppressEdits ) return } if ( ! ( Ni ( e , "beforeChange" ) || e . cm && Ni ( e . cm , "beforeChange" ) ) || ( t = Ln ( e , t , ! 0 ) ) ) { var r = Ho && ! n && sr ( e , t . from , t . to ) ; if ( r ) for ( var i = r . length - 1 ; i >= 0 ; -- i ) Mn ( e , { from : r [ i ] . from , to : r [ i ] . to , text : i ? [ "" ] : t . text } ) ; else Mn ( e , t ) } } function Mn ( e , t ) { if ( 1 != t . text . length || "" != t . text [ 0 ] || 0 != _o ( t . from , t . to ) ) { var n = kn ( e , t ) ; ci ( e , t , n , e . cm ? e . cm . curOp . id : NaN ) , En ( e , t , n , or ( e , t ) ) ; var r = [ ] ; Kr ( e , function ( e , n ) { n || - 1 != Pi ( r , e . history ) || ( xi ( e . history , t ) , r . push ( e . history ) ) , En ( e , t , null , or ( e , t ) ) } ) } } function Nn ( e , t , n ) { if ( ! e . cm || ! e . cm . state . suppressEdits ) { for ( var r , i = e . history , o = e . sel , a = "undo" == t ? i . done : i . undone , l = "undo" == t ? i . undone : i . done , s = 0 ; s < a . length && ( r = a [ s ] , n ? ! r . ranges || r . equals ( e . sel ) : r . ranges ) ; s ++ ) ; if ( s != a . length ) { for ( i . lastOrigin = i . lastSelOrigin = null ; r = a . pop ( ) , r . ranges ; ) { if ( hi ( r , l ) , n && ! r . equals ( e . sel ) ) return void Te ( e , r , { clearRedo : ! 1 } ) ; o = r } var c = [ ] ; hi ( o , l ) , l . push ( { changes : c , generation : i . generation } ) , i . generation = r . generation || ++ i . maxGeneration ; for ( var u = Ni ( e , "beforeChange" ) || e . cm && Ni ( e . cm , "beforeChange" ) , s = r . changes . length - 1 ; s >= 0 ; -- s ) { var f = r . changes [ s ] ; if ( f . origin = t , u && ! Ln ( e , f , ! 1 ) ) return void ( a . length = 0 ) ; c . push ( ai ( e , f ) ) ; var h = s ? kn ( e , f ) : Ii ( a ) ; En ( e , f , h , lr ( e , f ) ) , ! s && e . cm && e . cm . scrollIntoView ( { from : f . from , to : Qo ( f ) } ) ; var d = [ ] ; Kr ( e , function ( e , t ) { t || - 1 != Pi ( d , e . history ) || ( xi ( e . history , f ) , d . push ( e . history ) ) , En ( e , f , null , lr ( e , f ) ) } ) } } } } function An ( e , t ) { if ( 0 != t && ( e . first += t , e . sel = new ue ( Ri ( e . sel . ranges , function ( e ) { return new fe ( Bo ( e . anchor . line + t , e . anchor . ch ) , Bo ( e . head . line + t , e . head . ch ) ) } ) , e . sel . primIndex ) , e . cm ) ) { Dt ( e . cm , e . first , e . first - t , t ) ; for ( var n = e . cm . display , r = n . viewFrom ; r < n . viewTo ; r ++ ) Ht ( e . cm , r , "gutter" ) } } function En ( e , t , n , r ) { if ( e . cm && ! e . cm . curOp ) return Et ( e . cm , En ) ( e , t , n , r ) ; if ( t . to . line < e . first ) return void An ( e , t . text . length - 1 - ( t . to . line - t . from . line ) ) ; if ( ! ( t . from . line > e . lastLine ( ) ) ) { if ( t . from . line < e . first ) { var i = t . text . length - 1 - ( e . first - t . from . line ) ; An ( e , i ) , t = { from : Bo ( e . first , 0 ) , to : Bo ( t . to . line + i , t . to . ch ) , text : [ Ii ( t . text ) ] , origin : t . origin } } var o = e . lastLine ( ) ; t . to . line > o && ( t = { from : t . from , to : Bo ( o , Zr ( e , o ) . text . length ) , text : [ t . text [ 0 ] ] , origin : t . origin } ) , t . removed = Jr ( e , t . from , t . to ) , n || ( n = kn ( e , t ) ) , e . cm ? On ( e . cm , t , r ) : Yr ( e , t , r ) , Me ( e , n , Wa ) } } function On ( e , t , n ) { var r = e . doc , i = e . display , a = t . from , l = t . to , s = ! 1 , c = a . line ; e . options . lineWrapping || ( c = ti ( yr ( Zr ( r , a . line ) ) ) , r . iter ( c , l . line + 1 , function ( e ) { return e == i . maxLine ? ( s = ! 0 , ! 0 ) : void 0 } ) ) , r . sel . contains ( t . from , t . to ) > - 1 && Mi ( e ) , Yr ( r , t , n , o ( e ) ) , e . options . lineWrapping || ( r . iter ( c , a . line + t . text . length , function ( e ) { var t = f ( e ) ; t > i . maxLineLength && ( i . maxLine = e , i . maxLineLength = t , i . maxLineChanged = ! 0 , s = ! 1 ) } ) , s && ( e . curOp . updateMaxLine = ! 0 ) ) , r . frontier = Math . min ( r . frontier , a . line ) , _e ( e , 400 ) ; var u = t . text . length - ( l . line - a . line ) - 1 ; t . full ? Dt ( e ) : a . line != l . line || 1 != t . text . length || Gr ( e . doc , t ) ? Dt ( e , a . line , l . line + 1 , u ) : Ht ( e , a . line , "text" ) ; var h = Ni ( e , "changes" ) , d = Ni ( e , "change" ) ; if ( d || h ) { var p = { from : a , to : l
n = new Di ) , t && Wi ( t , n ) , n } function Wi ( e , t , n ) { t || ( t = { } ) ; for ( var r in e ) ! e . hasOwnProperty ( r ) || n === ! 1 && t . hasOwnProperty ( r ) || ( t [ r ] = e [ r ] ) ; return t } function Bi ( e ) { var t = Array . prototype . slice . call ( arguments , 1 ) ; return function ( ) { return e . apply ( null , t ) } } function _i ( e , t ) { return t ? ! ! ( t . source . indexOf ( "\\w" ) > - 1 && Ya ( e ) ) || t . test ( e ) : Ya ( e ) } function Fi ( e ) { for ( var t in e ) if ( e . hasOwnProperty ( t ) && e [ t ] ) return ! 1 ; return ! 0 } function zi ( e ) { return e . charCodeAt ( 0 ) >= 768 && $a . test ( e ) } function ji ( e , t , n , r ) { var i = document . createElement ( e ) ; if ( n && ( i . className = n ) , r && ( i . style . cssText = r ) , "string" == typeof t ) i . appendChild ( document . createTextNode ( t ) ) ; else if ( t ) for ( var o = 0 ; o < t . length ; ++ o ) i . appendChild ( t [ o ] ) ; return i } function Ui ( e ) { for ( var t = e . childNodes . length ; t > 0 ; -- t ) e . removeChild ( e . firstChild ) ; return e } function qi ( e , t ) { return Ui ( e ) . appendChild ( t ) } function Gi ( ) { for ( var e = document . activeElement ; e && e . root && e . root . activeElement ; ) e = e . root . activeElement ; return e } function Yi ( e ) { return new RegExp ( "(^|\\s)" + e + "(?:$|\\s)\\s*" ) } function $i ( e , t ) { for ( var n = e . split ( " " ) , r = 0 ; r < n . length ; r ++ ) n [ r ] && ! Yi ( n [ r ] ) . test ( t ) && ( t += " " + n [ r ] ) ; return t } function Vi ( e ) { if ( document . body . getElementsByClassName ) for ( var t = document . body . getElementsByClassName ( "CodeMirror" ) , n = 0 ; n < t . length ; n ++ ) { var r = t [ n ] . CodeMirror ; r && e ( r ) } } function Ki ( ) { Qa || ( Xi ( ) , Qa = ! 0 ) } function Xi ( ) { var e ; Ea ( window , "resize" , function ( ) { null == e && ( e = setTimeout ( function ( ) { e = null , Vi ( qt ) } , 100 ) ) } ) , Ea ( window , "blur" , function ( ) { Vi ( yn ) } ) } function Zi ( e ) { if ( null == Ka ) { var t = ji ( "span" , " " ) ; qi ( e , ji ( "span" , [ t , document . createTextNode ( "x" ) ] ) ) , 0 != e . firstChild . offsetHeight && ( Ka = t . offsetWidth <= 1 && t . offsetHeight > 2 && ! ( xo && 8 > bo ) ) } var n = Ka ? ji ( "span" , " " ) : ji ( "span" , " " , null , "display: inline-block; width: 1px; margin-right: -1px" ) ; return n . setAttribute ( "cm-text" , "" ) , n } function Ji ( e ) { if ( null != Xa ) return Xa ; var t = qi ( e , document . createTextNode ( "AخA" ) ) , n = qa ( t , 0 , 1 ) . getBoundingClientRect ( ) ; if ( ! n || n . left == n . right ) return ! 1 ; var r = qa ( t , 1 , 2 ) . getBoundingClientRect ( ) ; return Xa = r . right - n . right < 3 } function Qi ( e ) { if ( null != il ) return il ; var t = qi ( e , ji ( "span" , "x" ) ) , n = t . getBoundingClientRect ( ) , r = qa ( t , 0 , 1 ) . getBoundingClientRect ( ) ; return il = Math . abs ( n . left - r . left ) > 1 } function eo ( e , t , n , r ) { if ( ! e ) return r ( t , n , "ltr" ) ; for ( var i = ! 1 , o = 0 ; o < e . length ; ++ o ) { var a = e [ o ] ; ( a . from < n && a . to > t || t == n && a . to == t ) && ( r ( Math . max ( a . from , t ) , Math . min ( a . to , n ) , 1 == a . level ? "rtl" : "ltr" ) , i = ! 0 ) } i || r ( t , n , "ltr" ) } function to ( e ) { return e . level % 2 ? e . to : e . from } function no ( e ) { return e . level % 2 ? e . from : e . to } function ro ( e ) { var t = ii ( e ) ; return t ? to ( t [ 0 ] ) : 0 } function io ( e ) { var t = ii ( e ) ; return t ? no ( Ii ( t ) ) : e . text . length } function oo ( e , t ) { var n = Zr ( e . doc , t ) , r = yr ( n ) ; r != n && ( t = ti ( r ) ) ; var i = ii ( r ) , o = i ? i [ 0 ] . level % 2 ? io ( r ) : ro ( r ) : 0 ; return Bo ( t , o ) } function ao ( e , t ) { for ( var n , r = Zr ( e . doc , t ) ; n = gr ( r ) ; ) r = n . find ( 1 , ! 0 ) . line , t = null ; var i = ii ( r ) , o = i ? i [ 0 ] . level % 2 ? ro ( r ) : io ( r ) : r . text . length ; return Bo ( null == t ? ti ( r ) : t , o ) } function lo ( e , t ) { var n = oo ( e , t . line ) , r = Zr ( e . doc , n . line ) , i = ii ( r ) ; if ( ! i || 0 == i [ 0 ] . level ) { var o = Math . max ( 0 , r . text . search ( /\S/ ) ) , a = t . line == n . line && t . ch <= o && t . ch ; return Bo ( n . line , a ? 0 : o ) } return n } function so ( e , t , n ) { var r = e [ 0 ] . level ; return t == r || n != r && n > t } function co ( e , t ) { al = null ; for ( var n , r = 0 ; r < e . length ; ++ r ) { var i = e [ r ] ; if ( i . from < t && i . to > t ) return r ; if ( i . from == t || i . to == t ) { if ( null != n ) return so ( e , i . level , e [ n ] . level ) ? ( i . from != i . to && ( al = n ) , r ) : ( i . from != i . to && ( al = r ) , n ) ; n = r } } return n } function uo ( e , t , n , r ) { if ( ! r ) return t + n ; do t += n ; while ( t > 0 && zi ( e . text . charAt ( t ) ) ) ; return t } function fo ( e , t , n , r ) { var i = ii ( e ) ; if ( ! i ) return ho ( e , t , n , r ) ; for ( var o = co ( i , t ) , a = i [ o ] , l = uo ( e , t , a . level % 2 ? - n : n , r ) ; ; ) { if ( l > a . from && l < a . to ) return l ; if ( l == a . from || l == a . to ) return co ( i , l ) == o ? l : ( a = i [ o += n ] , n > 0 == a . level % 2 ? a . to : a . from ) ; if ( a = i [ o += n ] , ! a ) return null ; l = n > 0 == a . level % 2 ? uo ( e , a . to , - 1 , r ) : uo ( e , a . from , 1 , r ) } } function ho ( e , t , n , r ) { var i = t + n ; if ( r ) for ( ; i > 0 && zi ( e . text . charAt ( i ) ) ; ) i += n ; return 0 > i || i > e . text . length ? null : i } var po = navigator . userAgent , mo = navigator . platform , go = /gecko\/\d/i . test ( po ) , vo = /MSIE \d/ . test ( po ) , yo = /Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/ . exec ( po ) , xo = vo || yo , bo = xo && ( vo ? document . documentMode || 6 : yo [ 1 ] ) , wo = /WebKit\// . test ( po ) , ko = wo && /Qt\/\d+\.\d+/ . test ( po ) , So = /Chrome\// . test ( po ) , Co = /Opera\// . test ( p
} ) , Gn ( "autofocus" , null ) ; var ra = e . modes = { } , ia = e . mimeModes = { } ; e . defineMode = function ( t , n ) { e . defaults . mode || "null" == t || ( e . defaults . mode = t ) , arguments . length > 2 && ( n . dependencies = Array . prototype . slice . call ( arguments , 2 ) ) , ra [ t ] = n } , e . defineMIME = function ( e , t ) { ia [ e ] = t } , e . resolveMode = function ( t ) { if ( "string" == typeof t && ia . hasOwnProperty ( t ) ) t = ia [ t ] ; else if ( t && "string" == typeof t . name && ia . hasOwnProperty ( t . name ) ) { var n = ia [ t . name ] ; "string" == typeof n && ( n = { name : n } ) , t = Hi ( n , t ) , t . name = n . name } else if ( "string" == typeof t && /^[\w\-]+\/[\w\-]+\+xml$/ . test ( t ) ) return e . resolveMode ( "application/xml" ) ; return "string" == typeof t ? { name : t } : t || { name : "null" } } , e . getMode = function ( t , n ) { var n = e . resolveMode ( n ) , r = ra [ n . name ] ; if ( ! r ) return e . getMode ( t , "text/plain" ) ; var i = r ( t , n ) ; if ( oa . hasOwnProperty ( n . name ) ) { var o = oa [ n . name ] ; for ( var a in o ) o . hasOwnProperty ( a ) && ( i . hasOwnProperty ( a ) && ( i [ "_" + a ] = i [ a ] ) , i [ a ] = o [ a ] ) } if ( i . name = n . name , n . helperType && ( i . helperType = n . helperType ) , n . modeProps ) for ( var a in n . modeProps ) i [ a ] = n . modeProps [ a ] ; return i } , e . defineMode ( "null" , function ( ) { return { token : function ( e ) { e . skipToEnd ( ) } } } ) , e . defineMIME ( "text/plain" , "null" ) ; var oa = e . modeExtensions = { } ; e . extendMode = function ( e , t ) { var n = oa . hasOwnProperty ( e ) ? oa [ e ] : oa [ e ] = { } ; Wi ( t , n ) } , e . defineExtension = function ( t , n ) { e . prototype [ t ] = n } , e . defineDocExtension = function ( e , t ) { Ca . prototype [ e ] = t } , e . defineOption = Gn ; var aa = [ ] ; e . defineInitHook = function ( e ) { aa . push ( e ) } ; var la = e . helpers = { } ; e . registerHelper = function ( t , n , r ) { la . hasOwnProperty ( t ) || ( la [ t ] = e [ t ] = { _global : [ ] } ) , la [ t ] [ n ] = r } , e . registerGlobalHelper = function ( t , n , r , i ) { e . registerHelper ( t , n , i ) , la [ t ] . _global . push ( { pred : r , val : i } ) } ; var sa = e . copyState = function ( e , t ) { if ( t === ! 0 ) return t ; if ( e . copyState ) return e . copyState ( t ) ; var n = { } ; for ( var r in t ) { var i = t [ r ] ; i instanceof Array && ( i = i . concat ( [ ] ) ) , n [ r ] = i } return n } , ca = e . startState = function ( e , t , n ) { return ! e . startState || e . startState ( t , n ) } ; e . innerMode = function ( e , t ) { for ( ; e . innerMode ; ) { var n = e . innerMode ( t ) ; if ( ! n || n . mode == e ) break ; t = n . state , e = n . mode } return n || { mode : e , state : t } } ; var ua = e . commands = { selectAll : function ( e ) { e . setSelection ( Bo ( e . firstLine ( ) , 0 ) , Bo ( e . lastLine ( ) ) , Wa ) } , singleSelection : function ( e ) { e . setSelection ( e . getCursor ( "anchor" ) , e . getCursor ( "head" ) , Wa ) } , killLine : function ( e ) { jn ( e , function ( t ) { if ( t . empty ( ) ) { var n = Zr ( e . doc , t . head . line ) . text . length ; return t . head . ch == n && t . head . line < e . lastLine ( ) ? { from : t . head , to : Bo ( t . head . line + 1 , 0 ) } : { from : t . head , to : Bo ( t . head . line , n ) } } return { from : t . from ( ) , to : t . to ( ) } } ) } , deleteLine : function ( e ) { jn ( e , function ( t ) { return { from : Bo ( t . from ( ) . line , 0 ) , to : me ( e . doc , Bo ( t . to ( ) . line + 1 , 0 ) ) } } ) } , delLineLeft : function ( e ) { jn ( e , function ( e ) { return { from : Bo ( e . from ( ) . line , 0 ) , to : e . from ( ) } } ) } , delWrappedLineLeft : function ( e ) { jn ( e , function ( t ) { var n = e . charCoords ( t . head , "div" ) . top + 5 , r = e . coordsChar ( { left : 0 , top : n } , "div" ) ; return { from : r , to : t . from ( ) } } ) } , delWrappedLineRight : function ( e ) { jn ( e , function ( t ) { var n = e . charCoords ( t . head , "div" ) . top + 5 , r = e . coordsChar ( { left : e . display . lineDiv . offsetWidth + 100 , top : n } , "div" ) ; return { from : t . from ( ) , to : r } } ) } , undo : function ( e ) { e . undo ( ) } , redo : function ( e ) { e . redo ( ) } , undoSelection : function ( e ) { e . undoSelection ( ) } , redoSelection : function ( e ) { e . redoSelection ( ) } , goDocStart : function ( e ) { e . extendSelection ( Bo ( e . firstLine ( ) , 0 ) ) } , goDocEnd : function ( e ) { e . extendSelection ( Bo ( e . lastLine ( ) ) ) } , goLineStart : function ( e ) { e . extendSelectionsBy ( function ( t ) { return oo ( e , t . head . line ) } , { origin : "+move" , bias : 1 } ) } , goLineStartSmart : function ( e ) { e . extendSelectionsBy ( function ( t ) { return lo ( e , t . head ) } , { origin : "+move" , bias : 1 } ) } , goLineEnd : function ( e ) { e . extendSelectionsBy ( function ( t ) { return ao ( e , t . head . line ) } , { origin : "+move" , bias : - 1 } ) } , goLineRight : function ( e ) { e . extendSelectionsBy ( function ( t ) { var n = e . charCoords ( t . head , "div" ) . top + 5 ; return e . coordsChar ( { left : e . display . lineDiv . offsetWidth + 100 , top : n } , "div" ) } , _a ) } , goLineLeft : function ( e ) { e . extendSelectionsBy ( function ( t ) { var n = e . charCoords ( t . head , "div" ) . top + 5 ; return e . coordsChar ( { left : 0 , top : n } , "div" ) } , _a ) } , goLineLeftSmart : function ( e ) { e . extendSelectionsBy ( function ( t ) { var n = e . charCoords ( t . head , "div" ) . top + 5 , r = e . coordsChar ( { left : 0 , top : n } , "div" ) ; return r . ch < e . getLine ( r . line ) . search ( /\S/ ) ? lo ( e , t . head ) : r } , _a ) } , goLineUp : function ( e ) { e . moveV (
return function ( n ) { if ( ! i . test ( n ) ) return ! 1 ; for ( var r , u = n . length , f = [ ] , h = 0 ; u > h ; ++ h ) f . push ( r = e ( n . charCodeAt ( h ) ) ) ; for ( var h = 0 , d = c ; u > h ; ++ h ) { var r = f [ h ] ; "m" == r ? f [ h ] = d : d = r } for ( var h = 0 , p = c ; u > h ; ++ h ) { var r = f [ h ] ; "1" == r && "r" == p ? f [ h ] = "n" : a . test ( r ) && ( p = r , "r" == r && ( f [ h ] = "R" ) ) } for ( var h = 1 , d = f [ 0 ] ; u - 1 > h ; ++ h ) { var r = f [ h ] ; "+" == r && "1" == d && "1" == f [ h + 1 ] ? f [ h ] = "1" : "," != r || d != f [ h + 1 ] || "1" != d && "n" != d || ( f [ h ] = d ) , d = r } for ( var h = 0 ; u > h ; ++ h ) { var r = f [ h ] ; if ( "," == r ) f [ h ] = "N" ; else if ( "%" == r ) { for ( var m = h + 1 ; u > m && "%" == f [ m ] ; ++ m ) ; for ( var g = h && "!" == f [ h - 1 ] || u > m && "1" == f [ m ] ? "1" : "N" , v = h ; m > v ; ++ v ) f [ v ] = g ; h = m - 1 } } for ( var h = 0 , p = c ; u > h ; ++ h ) { var r = f [ h ] ; "L" == p && "1" == r ? f [ h ] = "L" : a . test ( r ) && ( p = r ) } for ( var h = 0 ; u > h ; ++ h ) if ( o . test ( f [ h ] ) ) { for ( var m = h + 1 ; u > m && o . test ( f [ m ] ) ; ++ m ) ; for ( var y = "L" == ( h ? f [ h - 1 ] : c ) , x = "L" == ( u > m ? f [ m ] : c ) , g = y || x ? "L" : "R" , v = h ; m > v ; ++ v ) f [ v ] = g ; h = m - 1 } for ( var b , w = [ ] , h = 0 ; u > h ; ) if ( l . test ( f [ h ] ) ) { var k = h ; for ( ++ h ; u > h && l . test ( f [ h ] ) ; ++ h ) ; w . push ( new t ( 0 , k , h ) ) } else { var S = h , C = w . length ; for ( ++ h ; u > h && "L" != f [ h ] ; ++ h ) ; for ( var v = S ; h > v ; ) if ( s . test ( f [ v ] ) ) { v > S && w . splice ( C , 0 , new t ( 1 , S , v ) ) ; var L = v ; for ( ++ v ; h > v && s . test ( f [ v ] ) ; ++ v ) ; w . splice ( C , 0 , new t ( 2 , L , v ) ) , S = v } else ++ v ; h > S && w . splice ( C , 0 , new t ( 1 , S , h ) ) } return 1 == w [ 0 ] . level && ( b = n . match ( /^\s+/ ) ) && ( w [ 0 ] . from = b [ 0 ] . length , w . unshift ( new t ( 0 , 0 , b [ 0 ] . length ) ) ) , 1 == Ii ( w ) . level && ( b = n . match ( /\s+$/ ) ) && ( Ii ( w ) . to -= b [ 0 ] . length , w . push ( new t ( 0 , u - b [ 0 ] . length , u ) ) ) , 2 == w [ 0 ] . level && w . unshift ( new t ( 1 , w [ 0 ] . to , w [ 0 ] . to ) ) , w [ 0 ] . level != Ii ( w ) . level && w . push ( new t ( w [ 0 ] . level , u , u ) ) , w } } ( ) ; return e . version = "5.15.2" , e } ) } , { } ] , 11 : [ function ( t , n , r ) { ! function ( i ) { "object" == typeof r && "object" == typeof n ? i ( t ( "../../lib/codemirror" ) , t ( "../markdown/markdown" ) , t ( "../../addon/mode/overlay" ) ) : "function" == typeof e && e . amd ? e ( [ "../../lib/codemirror" , "../markdown/markdown" , "../../addon/mode/overlay" ] , i ) : i ( CodeMirror ) } ( function ( e ) { "use strict" ; var t = /^((?:(?:aaas?|about|acap|adiumxtra|af[ps]|aim|apt|attachment|aw|beshare|bitcoin|bolo|callto|cap|chrome(?:-extension)?|cid|coap|com-eventbrite-attendee|content|crid|cvs|data|dav|dict|dlna-(?:playcontainer|playsingle)|dns|doi|dtn|dvb|ed2k|facetime|feed|file|finger|fish|ftp|geo|gg|git|gizmoproject|go|gopher|gtalk|h323|hcp|https?|iax|icap|icon|im|imap|info|ipn|ipp|irc[6s]?|iris(?:\.beep|\.lwz|\.xpc|\.xpcs)?|itms|jar|javascript|jms|keyparc|lastfm|ldaps?|magnet|mailto|maps|market|message|mid|mms|ms-help|msnim|msrps?|mtqp|mumble|mupdate|mvn|news|nfs|nih?|nntp|notes|oid|opaquelocktoken|palm|paparazzi|platform|pop|pres|proxy|psyc|query|res(?:ource)?|rmi|rsync|rtmp|rtsp|secondlife|service|session|sftp|sgn|shttp|sieve|sips?|skype|sm[bs]|snmp|soap\.beeps?|soldat|spotify|ssh|steam|svn|tag|teamspeak|tel(?:net)?|tftp|things|thismessage|tip|tn3270|tv|udp|unreal|urn|ut2004|vemmi|ventrilo|view-source|webcal|wss?|wtai|wyciwyg|xcon(?:-userid)?|xfire|xmlrpc\.beeps?|xmpp|xri|ymsgr|z39\.50[rs]?):(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]|\([^\s()<>]*\))+(?:\([^\s()<>]*\)|[^\s`*!()\[\]{};:'".,<>?«»“”‘’]))/i ; e . defineMode ( "gfm" , function ( n , r ) { function i ( e ) { return e . code = ! 1 , null } var o = 0 , a = { startState : function ( ) { return { code : ! 1 , codeBlock : ! 1 , ateSpace : ! 1 } } , copyState : function ( e ) { return { code : e . code , codeBlock : e . codeBlock , ateSpace : e . ateSpace } } , token : function ( e , n ) { if ( n . combineTokens = null , n . codeBlock ) return e . match ( /^```+/ ) ? ( n . codeBlock = ! 1 , null ) : ( e . skipToEnd ( ) , null ) ; if ( e . sol ( ) && ( n . code = ! 1 ) , e . sol ( ) && e . match ( /^```+/ ) ) return e . skipToEnd ( ) , n . codeBlock = ! 0 , null ; if ( "`" === e . peek ( ) ) { e . next ( ) ; var i = e . pos ; e . eatWhile ( "`" ) ; var a = 1 + e . pos - i ; return n . code ? a === o && ( n . code = ! 1 ) : ( o = a , n . code = ! 0 ) , null } if ( n . code ) return e . next ( ) , null ; if ( e . eatSpace ( ) ) return n . ateSpace = ! 0 , null ; if ( ( e . sol ( ) || n . ateSpace ) && ( n . ateSpace = ! 1 , r . gitHubSpice !== ! 1 ) ) { if ( e . match ( /^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+@)?(?:[a-f0-9]{7,40}\b)/ ) ) return n . combineTokens = ! 0 , "link" ; if ( e . match ( /^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+)?#[0-9]+\b/ ) ) return n . combineTokens = ! 0 , "link" } return e . match ( t ) && "](" != e . string . slice ( e . start - 2 , e . start ) && ( 0 == e . start || /\W/ . test ( e . string . charAt ( e . start - 1 ) ) ) ? ( n . combineTokens = ! 0 , "link" ) : ( e . next ( ) , null ) } , blankLine : i } , l = { underscoresBreakWords : ! 1 , taskLists : ! 0 , fencedCodeBlocks : "```" , strikethrough : ! 0 }
if ( S . alignCDATA && /<!\[CDATA\[/ . test ( n ) ) return 0 ; var l = n && /^<(\/)?([\w_:\.-]*)/ . exec ( n ) ; if ( l && l [ 1 ] ) for ( ; i ; ) { if ( i . tagName == l [ 2 ] ) { i = i . prev ; break } if ( ! S . implicitlyClosed . hasOwnProperty ( i . tagName ) ) break ; i = i . prev } else if ( l ) for ( ; i ; ) { var s = S . contextGrabbers [ i . tagName ] ; if ( ! s || ! s . hasOwnProperty ( l [ 2 ] ) ) break ; i = i . prev } for ( ; i && i . prev && ! i . startOfLine ; ) i = i . prev ; return i ? i . indent + k : t . baseIndent || 0 } , electricInput : /<\/[\s\w:]+>$/ , blockCommentStart : "<!--" , blockCommentEnd : "-->" , configuration : S . htmlMode ? "html" : "xml" , helperType : S . htmlMode ? "html" : "xml" , skipAttribute : function ( e ) { e . state == b && ( e . state = y ) } } } ) , e . defineMIME ( "text/xml" , "xml" ) , e . defineMIME ( "application/xml" , "xml" ) , e . mimeModes . hasOwnProperty ( "text/html" ) || e . defineMIME ( "text/html" , { name : "xml" , htmlMode : ! 0 } ) } ) } , { "../../lib/codemirror" : 10 } ] , 15 : [ function ( e , t , n ) { n . read = function ( e , t , n , r , i ) { var o , a , l = 8 * i - r - 1 , s = ( 1 << l ) - 1 , c = s >> 1 , u = - 7 , f = n ? i - 1 : 0 , h = n ? - 1 : 1 , d = e [ t + f ] ; for ( f += h , o = d & ( 1 << - u ) - 1 , d >>= - u , u += l ; u > 0 ; o = 256 * o + e [ t + f ] , f += h , u -= 8 ) ; for ( a = o & ( 1 << - u ) - 1 , o >>= - u , u += r ; u > 0 ; a = 256 * a + e [ t + f ] , f += h , u -= 8 ) ; if ( 0 === o ) o = 1 - c ; else { if ( o === s ) return a ? NaN : ( d ? - 1 : 1 ) * ( 1 / 0 ) ; a += Math . pow ( 2 , r ) , o -= c } return ( d ? - 1 : 1 ) * a * Math . pow ( 2 , o - r ) } , n . write = function ( e , t , n , r , i , o ) { var a , l , s , c = 8 * o - i - 1 , u = ( 1 << c ) - 1 , f = u >> 1 , h = 23 === i ? Math . pow ( 2 , - 24 ) - Math . pow ( 2 , - 77 ) : 0 , d = r ? 0 : o - 1 , p = r ? 1 : - 1 , m = 0 > t || 0 === t && 0 > 1 / t ? 1 : 0 ; for ( t = Math . abs ( t ) , isNaN ( t ) || t === 1 / 0 ? ( l = isNaN ( t ) ? 1 : 0 , a = u ) : ( a = Math . floor ( Math . log ( t ) / Math . LN2 ) , t * ( s = Math . pow ( 2 , - a ) ) < 1 && ( a -- , s *= 2 ) , t += a + f >= 1 ? h / s : h * Math . pow ( 2 , 1 - f ) , t * s >= 2 && ( a ++ , s /= 2 ) , a + f >= u ? ( l = 0 , a = u ) : a + f >= 1 ? ( l = ( t * s - 1 ) * Math . pow ( 2 , i ) , a += f ) : ( l = t * Math . pow ( 2 , f - 1 ) * Math . pow ( 2 , i ) , a = 0 ) ) ; i >= 8 ; e [ n + d ] = 255 & l , d += p , l /= 256 , i -= 8 ) ; for ( a = a << i | l , c += i ; c > 0 ; e [ n + d ] = 255 & a , d += p , a /= 256 , c -= 8 ) ; e [ n + d - p ] |= 128 * m } } , { } ] , 16 : [ function ( e , t , n ) { var r = { } . toString ; t . exports = Array . isArray || function ( e ) { return "[object Array]" == r . call ( e ) } } , { } ] , 17 : [ function ( t , n , r ) { ( function ( t ) { ( function ( ) { function t ( e ) { this . tokens = [ ] , this . tokens . links = { } , this . options = e || h . defaults , this . rules = d . normal , this . options . gfm && ( this . options . tables ? this . rules = d . tables : this . rules = d . gfm ) } function i ( e , t ) { if ( this . options = t || h . defaults , this . links = e , this . rules = p . normal , this . renderer = this . options . renderer || new o , this . renderer . options = this . options , ! this . links ) throw new Error ( "Tokens array requires a `links` property." ) ; this . options . gfm ? this . options . breaks ? this . rules = p . breaks : this . rules = p . gfm : this . options . pedantic && ( this . rules = p . pedantic ) } function o ( e ) { this . options = e || { } } function a ( e ) { this . tokens = [ ] , this . token = null , this . options = e || h . defaults , this . options . renderer = this . options . renderer || new o , this . renderer = this . options . renderer , this . renderer . options = this . options } function l ( e , t ) { return e . replace ( t ? /&/g : /&(?!#?\w+;)/g , "&" ) . replace ( /</g , "<" ) . replace ( />/g , ">" ) . replace ( /"/g , """ ) . replace ( /'/g , "'" ) } function s ( e ) { return e . replace ( /&([#\w]+);/g , function ( e , t ) { return t = t . toLowerCase ( ) , "colon" === t ? ":" : "#" === t . charAt ( 0 ) ? "x" === t . charAt ( 1 ) ? String . fromCharCode ( parseInt ( t . substring ( 2 ) , 16 ) ) : String . fromCharCode ( + t . substring ( 1 ) ) : "" } ) } function c ( e , t ) { return e = e . source , t = t || "" , function n ( r , i ) { return r ? ( i = i . source || i , i = i . replace ( /(^|[^\[])\^/g , "$1" ) , e = e . replace ( r , i ) , n ) : new RegExp ( e , t ) } } function u ( ) { } function f ( e ) { for ( var t , n , r = 1 ; r < arguments . length ; r ++ ) { t = arguments [ r ] ; for ( n in t ) Object . prototype . hasOwnProperty . call ( t , n ) && ( e [ n ] = t [ n ] ) } return e } function h ( e , n , r ) { if ( r || "function" == typeof n ) { r || ( r = n , n = null ) , n = f ( { } , h . defaults , n || { } ) ; var i , o , s = n . highlight , c = 0 ; try { i = t . lex ( e , n ) } catch ( u ) { return r ( u ) } o = i . length ; var d = function ( e ) { if ( e ) return n . highlight = s , r ( e ) ; var t ; try { t = a . parse ( i , n ) } catch ( o ) { e = o } return n . highlight = s , e ? r ( e ) : r ( null , t ) } ; if ( ! s || s . length < 3 ) return d ( ) ; if ( delete n . highlight , ! o ) return d ( ) ; for ( ; c < i . length ; c ++ ) ! function ( e ) { return "code" !== e . type ? -- o || d ( ) : s ( e . text , e . lang , function ( t , n ) { return t ? d ( t ) : null == n || n === e . text ? -- o || d ( ) : ( e . text = n , e . escaped = ! 0 , void ( -- o || d ( ) ) ) } ) } ( i [ c ] ) } else try { return n && ( n = f ( { } , h . defaults , n ) ) , a . parse ( t . lex ( e , n ) , n ) } catch ( u ) { if ( u . message += "\nPlease report this to https://github.com/chjj/marked." , ( n || h . defaults ) . silent ) return "<p>An error occured:</p><pre>" + l ( u . message + "" , ! 0 ) + "</pre>" ; throw u } } var d = { newline : /^\n+/ , code : / ^ ( { 4 } [ ^ \ n ]
o ? ( r . innerHTML = e . options . previewRender ( e . value ( ) , r ) , t . on ( "update" , t . sideBySideRenderingFunction ) ) : t . off ( "update" , t . sideBySideRenderingFunction ) , t . refresh ( ) } function A ( e ) { var t = e . codemirror , n = t . getWrapperElement ( ) , r = n . previousSibling , i = ! ! e . options . toolbar && e . toolbarElements . preview , o = n . lastChild ; o && /editor-preview/ . test ( o . className ) || ( o = document . createElement ( "div" ) , o . className = "editor-preview" , n . appendChild ( o ) ) , /editor-preview-active/ . test ( o . className ) ? ( o . className = o . className . replace ( /\s*editor-preview-active\s*/g , "" ) , i && ( i . className = i . className . replace ( /\s*active\s*/g , "" ) , r . className = r . className . replace ( /\s*disabled-for-preview*/g , "" ) ) ) : ( setTimeout ( function ( ) { o . className += " editor-preview-active" } , 1 ) , i && ( i . className += " active" , r . className += " disabled-for-preview" ) ) , o . innerHTML = e . options . previewRender ( e . value ( ) , o ) ; var a = t . getWrapperElement ( ) . nextSibling ; /editor-preview-active-side/ . test ( a . className ) && N ( e ) } function E ( e , t , n , r ) { if ( ! /editor-preview-active/ . test ( e . getWrapperElement ( ) . lastChild . className ) ) { var i , o = n [ 0 ] , a = n [ 1 ] , l = e . getCursor ( "start" ) , s = e . getCursor ( "end" ) ; r && ( a = a . replace ( "#url#" , r ) ) , t ? ( i = e . getLine ( l . line ) , o = i . slice ( 0 , l . ch ) , a = i . slice ( l . ch ) , e . replaceRange ( o + a , { line : l . line , ch : 0 } ) ) : ( i = e . getSelection ( ) , e . replaceSelection ( o + i + a ) , l . ch += o . length , l !== s && ( s . ch += o . length ) ) , e . setSelection ( l , s ) , e . focus ( ) } } function O ( e , t , n ) { if ( ! /editor-preview-active/ . test ( e . getWrapperElement ( ) . lastChild . className ) ) { for ( var r = e . getCursor ( "start" ) , i = e . getCursor ( "end" ) , o = r . line ; o <= i . line ; o ++ ) ! function ( r ) { var i = e . getLine ( r ) , o = i . search ( /[^#]/ ) ; i = void 0 !== t ? 0 >= o ? "bigger" == t ? "###### " + i : "# " + i : 6 == o && "smaller" == t ? i . substr ( 7 ) : 1 == o && "bigger" == t ? i . substr ( 2 ) : "bigger" == t ? i . substr ( 1 ) : "#" + i : 1 == n ? 0 >= o ? "# " + i : o == n ? i . substr ( o + 1 ) : "# " + i . substr ( o + 1 ) : 2 == n ? 0 >= o ? "## " + i : o == n ? i . substr ( o + 1 ) : "## " + i . substr ( o + 1 ) : 0 >= o ? "### " + i : o == n ? i . substr ( o + 1 ) : "### " + i . substr ( o + 1 ) , e . replaceRange ( i , { line : r , ch : 0 } , { line : r , ch : 99999999999999 } ) } ( o ) ; e . focus ( ) } } function I ( e , t ) { if ( ! /editor-preview-active/ . test ( e . getWrapperElement ( ) . lastChild . className ) ) { for ( var n = l ( e ) , r = e . getCursor ( "start" ) , i = e . getCursor ( "end" ) , o = { quote : /^(\s*)\>\s+/ , "unordered-list" : /^(\s*)(\*|\-|\+)\s+/ , "ordered-list" : /^(\s*)\d+\.\s+/ } , a = { quote : "> " , "unordered-list" : "* " , "ordered-list" : "1. " } , s = r . line ; s <= i . line ; s ++ ) ! function ( r ) { var i = e . getLine ( r ) ; i = n [ t ] ? i . replace ( o [ t ] , "$1" ) : a [ t ] + i , e . replaceRange ( i , { line : r , ch : 0 } , { line : r , ch : 99999999999999 } ) } ( s ) ; e . focus ( ) } } function P ( e , t , n , r ) { if ( ! /editor-preview-active/ . test ( e . codemirror . getWrapperElement ( ) . lastChild . className ) ) { r = "undefined" == typeof r ? n : r ; var i , o = e . codemirror , a = l ( o ) , s = n , c = r , u = o . getCursor ( "start" ) , f = o . getCursor ( "end" ) ; a [ t ] ? ( i = o . getLine ( u . line ) , s = i . slice ( 0 , u . ch ) , c = i . slice ( u . ch ) , "bold" == t ? ( s = s . replace ( /(\*\*|__)(?![\s\S]*(\*\*|__))/ , "" ) , c = c . replace ( /(\*\*|__)/ , "" ) ) : "italic" == t ? ( s = s . replace ( /(\*|_)(?![\s\S]*(\*|_))/ , "" ) , c = c . replace ( /(\*|_)/ , "" ) ) : "strikethrough" == t && ( s = s . replace ( /(\*\*|~~)(?![\s\S]*(\*\*|~~))/ , "" ) , c = c . replace ( /(\*\*|~~)/ , "" ) ) , o . replaceRange ( s + c , { line : u . line , ch : 0 } , { line : u . line , ch : 99999999999999 } ) , "bold" == t || "strikethrough" == t ? ( u . ch -= 2 , u !== f && ( f . ch -= 2 ) ) : "italic" == t && ( u . ch -= 1 , u !== f && ( f . ch -= 1 ) ) ) : ( i = o . getSelection ( ) , "bold" == t ? ( i = i . split ( "**" ) . join ( "" ) , i = i . split ( "__" ) . join ( "" ) ) : "italic" == t ? ( i = i . split ( "*" ) . join ( "" ) , i = i . split ( "_" ) . join ( "" ) ) : "strikethrough" == t && ( i = i . split ( "~~" ) . join ( "" ) ) , o . replaceSelection ( s + i + c ) , u . ch += n . length , f . ch = u . ch + i . length ) , o . setSelection ( u , f ) , o . focus ( ) } } function R ( e ) { if ( ! /editor-preview-active/ . test ( e . getWrapperElement ( ) . lastChild . className ) ) for ( var t , n = e . getCursor ( "start" ) , r = e . getCursor ( "end" ) , i = n . line ; i <= r . line ; i ++ ) t = e . getLine ( i ) , t = t . replace ( /^[ ]*([# ]+|\*|\-|[> ]+|[0-9]+(.|\)))[ ]*/ , "" ) , e . replaceRange ( t , { line : i , ch : 0 } , { line : i , ch : 99999999999999 } ) } function D ( e , t ) { for ( var n in t ) t . hasOwnProperty ( n ) && ( t [ n ] instanceof Array ? e [ n ] = t [ n ] . concat ( e [ n ] instanceof Array ? e [ n ] : [ ] ) : null !== t [ n ] && "object" == typeof t [ n ] && t [ n ] . constructor === Object ? e [ n ] = D ( e [ n ] || { } , t [ n ] ) : e [ n ] = t [ n ] ) ; return e } function H ( e ) { for ( var t = 1 ; t < arguments . length ; t ++ ) e = D ( e , arguments [ t ] ) ; return e } function W ( e ) { var t = / [ a - z A - Z 0 - 9 _ \ u 0 3 9 2 - \ u 0 3 c 9 \ u 0 4 1 0 - \ u 0 4 F 9 ] + | [ \ u 4 E 0 0 - \ u 9 F F F \ u 3 4 0 0 - \ u 4 d b f \ u f 9 0 0 - \ u f a f f \ u
return t } ) , Object . isSealed || ( Object . isSealed = function ( t ) { return ! 1 } ) , Object . isFrozen || ( Object . isFrozen = function ( t ) { return ! 1 } ) , Object . isExtensible || ( Object . isExtensible = function ( t ) { if ( Object ( t ) === t ) throw new TypeError ; for ( var n = "" ; f ( t , n ) ; ) n += "?" ; t [ n ] = ! 0 ; var r = f ( t , n ) ; return delete t [ n ] , r } ) , ! Object . keys ) { var L = ! 0 , A = [ "toString" , "toLocaleString" , "valueOf" , "hasOwnProperty" , "isPrototypeOf" , "propertyIsEnumerable" , "constructor" ] , O = A . length ; for ( var M in { toString : null } ) L = ! 1 ; Object . keys = function I ( e ) { if ( "object" != typeof e && "function" != typeof e || null === e ) throw new TypeError ( "Object.keys called on a non-object" ) ; var I = [ ] ; for ( var t in e ) f ( e , t ) && I . push ( t ) ; if ( L ) for ( var n = 0 , r = O ; n < r ; n ++ ) { var i = A [ n ] ; f ( e , i ) && I . push ( i ) } return I } } Date . now || ( Date . now = function ( ) { return ( new Date ) . getTime ( ) } ) ; var _ = "\t\n\v\f\r \u2028\u2029\ufeff" ; if ( ! String . prototype . trim || _ . trim ( ) ) { _ = "[" + _ + "]" ; var D = new RegExp ( "^" + _ + _ + "*" ) , P = new RegExp ( _ + _ + "*$" ) ; String . prototype . trim = function ( ) { return String ( this ) . replace ( D , "" ) . replace ( P , "" ) } } var F = function ( e ) { if ( null == e ) throw new TypeError ( "can't convert " + e + " to object" ) ; return Object ( e ) } } ) , ace . define ( "ace/lib/fixoldbrowsers" , [ "require" , "exports" , "module" , "ace/lib/regexp" , "ace/lib/es5-shim" ] , function ( e , t , n ) { "use strict" ; e ( "./regexp" ) , e ( "./es5-shim" ) } ) , ace . define ( "ace/lib/dom" , [ "require" , "exports" , "module" ] , function ( e , t , n ) { "use strict" ; var r = "http://www.w3.org/1999/xhtml" ; return t . getDocumentHead = function ( e ) { return e || ( e = document ) , e . head || e . getElementsByTagName ( "head" ) [ 0 ] || e . documentElement } , t . createElement = function ( e , t ) { return document . createElementNS ? document . createElementNS ( t || r , e ) : document . createElement ( e ) } , t . hasCssClass = function ( e , t ) { var n = ( e . className + "" ) . split ( /\s+/g ) ; return n . indexOf ( t ) !== - 1 } , t . addCssClass = function ( e , n ) { t . hasCssClass ( e , n ) || ( e . className += " " + n ) } , t . removeCssClass = function ( e , t ) { for ( var n = e . className . split ( /\s+/g ) ; ; ) { var r = n . indexOf ( t ) ; if ( r == - 1 ) break ; n . splice ( r , 1 ) } e . className = n . join ( " " ) } , t . toggleCssClass = function ( e , t ) { for ( var n = e . className . split ( /\s+/g ) , r = ! 0 ; ; ) { var i = n . indexOf ( t ) ; if ( i == - 1 ) break ; r = ! 1 , n . splice ( i , 1 ) } return r && n . push ( t ) , e . className = n . join ( " " ) , r } , t . setCssClass = function ( e , n , r ) { r ? t . addCssClass ( e , n ) : t . removeCssClass ( e , n ) } , t . hasCssString = function ( e , t ) { var r , n = 0 ; if ( t = t || document , t . createStyleSheet && ( r = t . styleSheets ) ) { for ( ; n < r . length ; ) if ( r [ n ++ ] . owningElement . id === e ) return ! 0 } else if ( r = t . getElementsByTagName ( "style" ) ) for ( ; n < r . length ; ) if ( r [ n ++ ] . id === e ) return ! 0 ; return ! 1 } , t . importCssString = function ( n , r , i ) { if ( i = i || document , r && t . hasCssString ( r , i ) ) return null ; var s ; r && ( n += "\n/*# sourceURL=ace/css/" + r + " */" ) , i . createStyleSheet ? ( s = i . createStyleSheet ( ) , s . cssText = n , r && ( s . owningElement . id = r ) ) : ( s = t . createElement ( "style" ) , s . appendChild ( i . createTextNode ( n ) ) , r && ( s . id = r ) , t . getDocumentHead ( i ) . appendChild ( s ) ) } , t . importCssStylsheet = function ( e , n ) { if ( n . createStyleSheet ) n . createStyleSheet ( e ) ; else { var r = t . createElement ( "link" ) ; r . rel = "stylesheet" , r . href = e , t . getDocumentHead ( n ) . appendChild ( r ) } } , t . getInnerWidth = function ( e ) { return parseInt ( t . computedStyle ( e , "paddingLeft" ) , 10 ) + parseInt ( t . computedStyle ( e , "paddingRight" ) , 10 ) + e . clientWidth } , t . getInnerHeight = function ( e ) { return parseInt ( t . computedStyle ( e , "paddingTop" ) , 10 ) + parseInt ( t . computedStyle ( e , "paddingBottom" ) , 10 ) + e . clientHeight } , t . scrollbarWidth = function ( e ) { var n = t . createElement ( "ace_inner" ) ; n . style . width = "100%" , n . style . minWidth = "0px" , n . style . height = "200px" , n . style . display = "block" ; var r = t . createElement ( "ace_outer" ) , i = r . style ; i . position = "absolute" , i . left = "-10000px" , i . overflow = "hidden" , i . width = "200px" , i . minWidth = "0px" , i . height = "150px" , i . display = "block" , r . appendChild ( n ) ; var s = e . documentElement ; s . appendChild ( r ) ; var o = n . offsetWidth ; i . overflow = "scroll" ; var u = n . offsetWidth ; return o == u && ( u = r . clientWidth ) , s . removeChild ( r ) , o - u } , "undefined" == typeof document ? void ( t . importCssString = function ( ) { } ) : ( void 0 !== window . pageYOffset ? ( t . getPageScrollTop = function ( ) { return window . pageYOffset } , t . getPageScrollLeft = function ( ) { return window . pageXOffset } ) : ( t . getPageScrollTop = function ( ) { return document . body . scrollTop } , t . getPageScrollLeft = function ( ) { return docum
S = null ) } } function N ( e , n ) { var r = Date . now ( ) , i = t . renderer . layerConfig . lineHeight , s = t . renderer . layerConfig . characterWidth , u = t . renderer . scroller . getBoundingClientRect ( ) , a = { x : { left : p - u . left , right : u . right - p } , y : { top : d - u . top , bottom : u . bottom - d } } , f = Math . min ( a . x . left , a . x . right ) , l = Math . min ( a . y . top , a . y . bottom ) , c = { row : e . row , column : e . column } ; f / s <= 2 && ( c . column += a . x . left < a . x . right ? - 3 : 2 ) , l / i <= 1 && ( c . row += a . y . top < a . y . bottom ? - 1 : 1 ) ; var h = e . row != c . row , v = e . column != c . column , m = ! n || e . row != n . row ; h || v && ! m ? E ? r - E >= o && t . renderer . scrollCursorIntoView ( c ) : E = r : E = null } function C ( ) { var e = g ; g = t . renderer . screenToTextCoordinates ( p , d ) , T ( g , e ) , N ( g , e ) } function k ( ) { m = t . selection . toOrientedRange ( ) , h = t . session . addMarker ( m , "ace_selection" , t . getSelectionStyle ( ) ) , t . clearSelection ( ) , t . isFocused ( ) && t . renderer . $cursorLayer . setBlinking ( ! 1 ) , clearInterval ( v ) , C ( ) , v = setInterval ( C , 20 ) , y = 0 , i . addListener ( document , "mousemove" , O ) } function L ( ) { clearInterval ( v ) , t . session . removeMarker ( h ) , h = null , t . $blockScrolling += 1 , t . selection . fromOrientedRange ( m ) , t . $blockScrolling -= 1 , t . isFocused ( ) && ! w && t . renderer . $cursorLayer . setBlinking ( ! t . getReadOnly ( ) ) , m = null , g = null , y = 0 , E = null , S = null , i . removeListener ( document , "mousemove" , O ) } function O ( ) { null == A && ( A = setTimeout ( function ( ) { null != A && h && L ( ) } , 20 ) ) } function M ( e ) { var t = e . types ; return ! t || Array . prototype . some . call ( t , function ( e ) { return "text/plain" == e || "Text" == e } ) } function _ ( e ) { var t = [ "copy" , "copymove" , "all" , "uninitialized" ] , n = [ "move" , "copymove" , "linkmove" , "all" , "uninitialized" ] , r = s . isMac ? e . altKey : e . ctrlKey , i = "uninitialized" ; try { i = e . dataTransfer . effectAllowed . toLowerCase ( ) } catch ( e ) { } var o = "none" ; return r && t . indexOf ( i ) >= 0 ? o = "copy" : n . indexOf ( i ) >= 0 ? o = "move" : t . indexOf ( i ) >= 0 && ( o = "copy" ) , o } var t = e . editor , n = r . createElement ( "img" ) ; n . src = "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" , s . isOpera && ( n . style . cssText = "width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;" ) ; var f = [ "dragWait" , "dragWaitEnd" , "startDrag" , "dragReadyEnd" , "onMouseDrag" ] ; f . forEach ( function ( t ) { e [ t ] = this [ t ] } , this ) , t . addEventListener ( "mousedown" , this . onMouseDown . bind ( e ) ) ; var h , p , d , v , m , g , b , w , E , S , x , c = t . container , y = 0 ; this . onDragStart = function ( e ) { if ( this . cancelDrag || ! c . draggable ) { var r = this ; return setTimeout ( function ( ) { r . startSelect ( ) , r . captureMouse ( e ) } , 0 ) , e . preventDefault ( ) } m = t . getSelectionRange ( ) ; var i = e . dataTransfer ; i . effectAllowed = t . getReadOnly ( ) ? "copy" : "copyMove" , s . isOpera && ( t . container . appendChild ( n ) , n . scrollTop = 0 ) , i . setDragImage && i . setDragImage ( n , 0 , 0 ) , s . isOpera && t . container . removeChild ( n ) , i . clearData ( ) , i . setData ( "Text" , t . session . getTextRange ( ) ) , w = ! 0 , this . setState ( "drag" ) } , this . onDragEnd = function ( e ) { if ( c . draggable = ! 1 , w = ! 1 , this . setState ( null ) , ! t . getReadOnly ( ) ) { var n = e . dataTransfer . dropEffect ; ! b && "move" == n && t . session . remove ( t . getSelectionRange ( ) ) , t . renderer . $cursorLayer . setBlinking ( ! 0 ) } this . editor . unsetStyle ( "ace_dragging" ) , this . editor . renderer . setCursorStyle ( "" ) } , this . onDragEnter = function ( e ) { if ( ! t . getReadOnly ( ) && M ( e . dataTransfer ) ) return p = e . clientX , d = e . clientY , h || k ( ) , y ++ , e . dataTransfer . dropEffect = b = _ ( e ) , i . preventDefault ( e ) } , this . onDragOver = function ( e ) { if ( ! t . getReadOnly ( ) && M ( e . dataTransfer ) ) return p = e . clientX , d = e . clientY , h || ( k ( ) , y ++ ) , null !== A && ( A = null ) , e . dataTransfer . dropEffect = b = _ ( e ) , i . preventDefault ( e ) } , this . onDragLeave = function ( e ) { if ( y -- , y <= 0 && h ) return L ( ) , b = null , i . preventDefault ( e ) } , this . onDrop = function ( e ) { if ( g ) { var n = e . dataTransfer ; if ( w ) switch ( b ) { case "move" : m = m . contains ( g . row , g . column ) ? { start : g , end : g } : t . moveText ( m , g ) ; break ; case "copy" : m = t . moveText ( m , g , ! 0 ) } else { var r = n . getData ( "Text" ) ; m = { start : g , end : t . session . insert ( g , r ) } , t . focus ( ) , b = null } return L ( ) , i . preventDefault ( e ) } } , i . addListener ( c , "dragstart" , this . onDragStart . bind ( e ) ) , i . addListener ( c , "dragend" , this . onDragEnd . bind ( e ) ) , i . addListener ( c , "dragenter" , this . onDragEnter . bind ( e ) ) , i . addListener ( c , "dragover" , this . onDragOver . bind ( e ) ) , i . addListener ( c , "dragleave" , this . onDragLeave . bind ( e ) ) , i . addListener ( c , "drop" , this . onDrop . bind ( e ) ) ; var A = null } function l ( e , t , n , r ) { return Math . sqrt ( Math . pow ( n - e , 2 ) + Math . pow ( r - t , 2 ) ) } var r = e ( "../lib/dom" ) , i = e ( "../lib/event" ) , s = e ( "../lib/useragent" ) , o = 200 , u = 200 , a = 5 ; ( function ( ) { th
0 === t && ( this . $desiredColumn ? n . column = this . $desiredColumn : this . $desiredColumn = n . column ) ; var r = this . session . screenToDocumentPosition ( n . row + e , n . column ) ; 0 !== e && 0 === t && r . row === this . lead . row && r . column === this . lead . column && this . session . lineWidgets && this . session . lineWidgets [ r . row ] && ( r . row > 0 || e > 0 ) && r . row ++ , this . moveCursorTo ( r . row , r . column + t , 0 === t ) } , this . moveCursorToPosition = function ( e ) { this . moveCursorTo ( e . row , e . column ) } , this . moveCursorTo = function ( e , t , n ) { var r = this . session . getFoldAt ( e , t , 1 ) ; r && ( e = r . start . row , t = r . start . column ) , this . $keepDesiredColumnOnChange = ! 0 , this . lead . setPosition ( e , t ) , this . $keepDesiredColumnOnChange = ! 1 , n || ( this . $desiredColumn = null ) } , this . moveCursorToScreen = function ( e , t , n ) { var r = this . session . screenToDocumentPosition ( e , t ) ; this . moveCursorTo ( r . row , r . column , n ) } , this . detach = function ( ) { this . lead . detach ( ) , this . anchor . detach ( ) , this . session = this . doc = null } , this . fromOrientedRange = function ( e ) { this . setSelectionRange ( e , e . cursor == e . start ) , this . $desiredColumn = e . desiredColumn || this . $desiredColumn } , this . toOrientedRange = function ( e ) { var t = this . getRange ( ) ; return e ? ( e . start . column = t . start . column , e . start . row = t . start . row , e . end . column = t . end . column , e . end . row = t . end . row ) : e = t , e . cursor = this . isBackwards ( ) ? e . start : e . end , e . desiredColumn = this . $desiredColumn , e } , this . getRangeOfMovements = function ( e ) { var t = this . getCursor ( ) ; try { e ( this ) ; var n = this . getCursor ( ) ; return o . fromPoints ( t , n ) } catch ( r ) { return o . fromPoints ( t , t ) } finally { this . moveCursorToPosition ( t ) } } , this . toJSON = function ( ) { if ( this . rangeCount ) var e = this . ranges . map ( function ( e ) { var t = e . clone ( ) ; return t . isBackwards = e . cursor == e . start , t } ) ; else { var e = this . getRange ( ) ; e . isBackwards = this . isBackwards ( ) } return e } , this . fromJSON = function ( e ) { if ( void 0 == e . start ) { if ( this . rangeList ) { this . toSingleRange ( e [ 0 ] ) ; for ( var t = e . length ; t -- ; ) { var n = o . fromPoints ( e [ t ] . start , e [ t ] . end ) ; e [ t ] . isBackwards && ( n . cursor = n . start ) , this . addRange ( n , ! 0 ) } return } e = e [ 0 ] } this . rangeList && this . toSingleRange ( e ) , this . setSelectionRange ( e , e . isBackwards ) } , this . isEqual = function ( e ) { if ( ( e . length || this . rangeCount ) && e . length != this . rangeCount ) return ! 1 ; if ( ! e . length || ! this . ranges ) return this . getRange ( ) . isEqual ( e ) ; for ( var t = this . ranges . length ; t -- ; ) if ( ! this . ranges [ t ] . isEqual ( e [ t ] ) ) return ! 1 ; return ! 0 } } ) . call ( u . prototype ) , t . Selection = u } ) , ace . define ( "ace/tokenizer" , [ "require" , "exports" , "module" , "ace/config" ] , function ( e , t , n ) { "use strict" ; var r = e ( "./config" ) , i = 2e3 , s = function ( e ) { this . states = e , this . regExps = { } , this . matchMappings = { } ; for ( var t in this . states ) { for ( var n = this . states [ t ] , r = [ ] , i = 0 , s = this . matchMappings [ t ] = { defaultToken : "text" } , o = "g" , u = [ ] , a = 0 ; a < n . length ; a ++ ) { var f = n [ a ] ; if ( f . defaultToken && ( s . defaultToken = f . defaultToken ) , f . caseInsensitive && ( o = "gi" ) , null != f . regex ) { f . regex instanceof RegExp && ( f . regex = f . regex . toString ( ) . slice ( 1 , - 1 ) ) ; var l = f . regex , c = new RegExp ( "(?:(" + l + ")|(.))" ) . exec ( "a" ) . length - 2 ; Array . isArray ( f . token ) ? 1 == f . token . length || 1 == c ? f . token = f . token [ 0 ] : c - 1 != f . token . length ? ( this . reportError ( "number of classes and regexp groups doesn't match" , { rule : f , groupCount : c - 1 } ) , f . token = f . token [ 0 ] ) : ( f . tokenArray = f . token , f . token = null , f . onMatch = this . $arrayTokens ) : "function" == typeof f . token && ! f . onMatch && ( c > 1 ? f . onMatch = this . $applyToken : f . onMatch = f . token ) , c > 1 && ( /\\\d/ . test ( f . regex ) ? l = f . regex . replace ( /\\([0-9]+)/g , function ( e , t ) { return "\\" + ( parseInt ( t , 10 ) + i + 1 ) } ) : ( c = 1 , l = this . removeCapturingGroups ( f . regex ) ) , ! f . splitRegex && "string" != typeof f . token && u . push ( f ) ) , s [ i ] = a , i += c , r . push ( l ) , f . onMatch || ( f . onMatch = null ) } } r . length || ( s [ 0 ] = 0 , r . push ( "$" ) ) , u . forEach ( function ( e ) { e . splitRegex = this . createSplitterRegexp ( e . regex , o ) } , this ) , this . regExps [ t ] = new RegExp ( "(" + r . join ( ")|(" ) + ")|($)" , o ) } } ; ( function ( ) { this . $setMaxTokenCount = function ( e ) { i = 0 | e } , this . $applyToken = function ( e ) { var t = this . splitRegex . exec ( e ) . slice ( 1 ) , n = this . token . apply ( this , t ) ; if ( "string" == typeof n ) return [ { type : n , value : e } ] ; for ( var r = [ ] , i = 0 , s = n . length ; i < s ; i ++ ) t [ i ] && ( r [ r . length ] = { type : n [ i ] , value : t [ i ] } ) ; return r } , this . $arrayTokens = function ( e ) { if ( ! e ) return [ ] ; var t = this . splitRegex . exec ( e ) ; if ( ! t ) return "text" ; for ( var n = [ ] , r = this . tokenArray , i = 0 , s = r . length ; i < s ; i ++ ) t [ i + 1 ] && ( n [ n . length ] = { type : r [ i ] , value : t [ i + 1 ] } ) ; return n } , this . removeCapturingGroups = fu
Nl : "16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF" , No : "00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835" , P : "0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65" , Pd : "002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D" , Ps : "0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62" , Pe : "0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63" , Pi : "00AB2018201B201C201F20392E022E042E092E0C2E1C2E20" , Pf : "00BB2019201D203A2E032E052E0A2E0D2E1D2E21" , Pc : "005F203F20402054FE33FE34FE4D-FE4FFF3F" , Po : "0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65" , S : "0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD" , Sm : " 002 B003C - 003E007 C007E00AC00B100D700F703F60606 - 060820442052207 A - 207 C208A - 208 C2140 - 2144214 B2190 - 2194219 A219B21A021A321A621AE21CE21CF21D221D421F4 - 22 FF2308 - 230 B23202321237C239B - 23 B323DC - 23E125 B725C125F8 - 25 FF266F27C0 - 27 C427C7 - 27 CA27CC27D0 - 27E527 F0 - 27 FF2900 - 29822999 - 29 D729
} ; ( function ( ) { this . comparePoints = i , this . pointIndex = function ( e , t , n ) { for ( var r = this . ranges , s = n || 0 ; s < r . length ; s ++ ) { var o = r [ s ] , u = i ( e , o . end ) ; if ( ! ( u > 0 ) ) { var a = i ( e , o . start ) ; return 0 === u ? t && 0 !== a ? - s - 2 : s : a > 0 || 0 === a && ! t ? s : - s - 1 } } return - s - 1 } , this . add = function ( e ) { var t = ! e . isEmpty ( ) , n = this . pointIndex ( e . start , t ) ; n < 0 && ( n = - n - 1 ) ; var r = this . pointIndex ( e . end , t , n ) ; return r < 0 ? r = - r - 1 : r ++ , this . ranges . splice ( n , r - n , e ) } , this . addList = function ( e ) { for ( var t = [ ] , n = e . length ; n -- ; ) t . push . apply ( t , this . add ( e [ n ] ) ) ; return t } , this . substractPoint = function ( e ) { var t = this . pointIndex ( e ) ; if ( t >= 0 ) return this . ranges . splice ( t , 1 ) } , this . merge = function ( ) { var e = [ ] , t = this . ranges ; t = t . sort ( function ( e , t ) { return i ( e . start , t . start ) } ) ; for ( var r , n = t [ 0 ] , s = 1 ; s < t . length ; s ++ ) { r = n , n = t [ s ] ; var o = i ( r . end , n . start ) ; o < 0 || ( 0 != o || r . isEmpty ( ) || n . isEmpty ( ) ) && ( i ( r . end , n . end ) < 0 && ( r . end . row = n . end . row , r . end . column = n . end . column ) , t . splice ( s , 1 ) , e . push ( n ) , n = r , s -- ) } return this . ranges = t , e } , this . contains = function ( e , t ) { return this . pointIndex ( { row : e , column : t } ) >= 0 } , this . containsPoint = function ( e ) { return this . pointIndex ( e ) >= 0 } , this . rangeAtPoint = function ( e ) { var t = this . pointIndex ( e ) ; if ( t >= 0 ) return this . ranges [ t ] } , this . clipRows = function ( e , t ) { var n = this . ranges ; if ( n [ 0 ] . start . row > t || n [ n . length - 1 ] . start . row < e ) return [ ] ; var r = this . pointIndex ( { row : e , column : 0 } ) ; r < 0 && ( r = - r - 1 ) ; var i = this . pointIndex ( { row : t , column : 0 } , r ) ; i < 0 && ( i = - i - 1 ) ; for ( var s = [ ] , o = r ; o < i ; o ++ ) s . push ( n [ o ] ) ; return s } , this . removeAll = function ( ) { return this . ranges . splice ( 0 , this . ranges . length ) } , this . attach = function ( e ) { this . session && this . detach ( ) , this . session = e , this . onChange = this . $onChange . bind ( this ) , this . session . on ( "change" , this . onChange ) } , this . detach = function ( ) { this . session && ( this . session . removeListener ( "change" , this . onChange ) , this . session = null ) } , this . $onChange = function ( e ) { if ( "insert" == e . action ) var t = e . start , n = e . end ; else var n = e . start , t = e . end ; for ( var r = t . row , i = n . row , s = i - r , o = - t . column + n . column , u = this . ranges , a = 0 , f = u . length ; a < f ; a ++ ) { var l = u [ a ] ; if ( ! ( l . end . row < r ) ) { if ( l . start . row > r ) break ; if ( l . start . row == r && l . start . column >= t . column && ( l . start . column != t . column || ! this . $insertRight ) && ( l . start . column += o , l . start . row += s ) , l . end . row == r && l . end . column >= t . column ) { if ( l . end . column == t . column && this . $insertRight ) continue ; l . end . column == t . column && o > 0 && a < f - 1 && l . end . column > l . start . column && l . end . column == u [ a + 1 ] . start . column && ( l . end . column -= o ) , l . end . column += o , l . end . row += s } } } if ( 0 != s && a < f ) for ( ; a < f ; a ++ ) { var l = u [ a ] ; l . start . row += s , l . end . row += s } } } ) . call ( s . prototype ) , t . RangeList = s } ) , ace . define ( "ace/edit_session/fold" , [ "require" , "exports" , "module" , "ace/range" , "ace/range_list" , "ace/lib/oop" ] , function ( e , t , n ) { "use strict" ; function u ( e , t ) { e . row -= t . row , 0 == e . row && ( e . column -= t . column ) } function a ( e , t ) { u ( e . start , t ) , u ( e . end , t ) } function f ( e , t ) { 0 == e . row && ( e . column += t . column ) , e . row += t . row } function l ( e , t ) { f ( e . start , t ) , f ( e . end , t ) } var i = ( e ( "../range" ) . Range , e ( "../range_list" ) . RangeList ) , s = e ( "../lib/oop" ) , o = t . Fold = function ( e , t ) { this . foldLine = null , this . placeholder = t , this . range = e , this . start = e . start , this . end = e . end , this . sameRow = e . start . row == e . end . row , this . subFolds = this . ranges = [ ] } ; s . inherits ( o , i ) , function ( ) { this . toString = function ( ) { return '"' + this . placeholder + '" ' + this . range . toString ( ) } , this . setFoldLine = function ( e ) { this . foldLine = e , this . subFolds . forEach ( function ( t ) { t . setFoldLine ( e ) } ) } , this . clone = function ( ) { var e = this . range . clone ( ) , t = new o ( e , this . placeholder ) ; return this . subFolds . forEach ( function ( e ) { t . subFolds . push ( e . clone ( ) ) } ) , t . collapseChildren = this . collapseChildren , t } , this . addSubFold = function ( e ) { if ( ! this . range . isEqual ( e ) ) { if ( ! this . range . containsRange ( e ) ) throw new Error ( "A fold can't intersect already existing fold" + e . range + this . range ) ; a ( e , this . start ) ; for ( var t = e . start . row , n = e . start . column , r = 0 , i = - 1 ; r < this . subFolds . length && ( i = this . subFolds [ r ] . range . compare ( t , n ) , 1 == i ) ; r ++ ) ; var s = this . subFolds [ r ] ; if ( 0 == i ) return s . addSubFold ( e ) ; for ( var t = e . range . end . row , n = e . range . end . column , o = r , i = - 1 ; o < this . subFolds . length && ( i = this . subFolds [ o ] . range . compare ( t , n ) , 1 == i ) ; o ++ ) ; this . subFolds [ o ] ; if ( 0 == i ) throw new Error ( "A fold can't intersect already existing fold" + e . range + this . range ) ; this . subFolds . splice ( r , o - r , e ) ; return e . setFoldLine ( this . foldLine ) , e }
} , this . $clipRowToDocument = function ( e ) { return Math . max ( 0 , Math . min ( e , this . doc . getLength ( ) - 1 ) ) } , this . $clipColumnToRow = function ( e , t ) { return t < 0 ? 0 : Math . min ( this . doc . getLine ( e ) . length , t ) } , this . $clipPositionToDocument = function ( e , t ) { if ( t = Math . max ( 0 , t ) , e < 0 ) e = 0 , t = 0 ; else { var n = this . doc . getLength ( ) ; e >= n ? ( e = n - 1 , t = this . doc . getLine ( n - 1 ) . length ) : t = Math . min ( this . doc . getLine ( e ) . length , t ) } return { row : e , column : t } } , this . $clipRangeToDocument = function ( e ) { e . start . row < 0 ? ( e . start . row = 0 , e . start . column = 0 ) : e . start . column = this . $clipColumnToRow ( e . start . row , e . start . column ) ; var t = this . doc . getLength ( ) - 1 ; return e . end . row > t ? ( e . end . row = t , e . end . column = this . doc . getLine ( t ) . length ) : e . end . column = this . $clipColumnToRow ( e . end . row , e . end . column ) , e } , this . $wrapLimit = 80 , this . $useWrapMode = ! 1 , this . $wrapLimitRange = { min : null , max : null } , this . setUseWrapMode = function ( e ) { if ( e != this . $useWrapMode ) { if ( this . $useWrapMode = e , this . $modified = ! 0 , this . $resetRowCache ( 0 ) , e ) { var t = this . getLength ( ) ; this . $wrapData = Array ( t ) , this . $updateWrapData ( 0 , t - 1 ) } this . _signal ( "changeWrapMode" ) } } , this . getUseWrapMode = function ( ) { return this . $useWrapMode } , this . setWrapLimitRange = function ( e , t ) { this . $wrapLimitRange . min === e && this . $wrapLimitRange . max === t || ( this . $wrapLimitRange = { min : e , max : t } , this . $modified = ! 0 , this . $useWrapMode && this . _signal ( "changeWrapMode" ) ) } , this . adjustWrapLimit = function ( e , t ) { var n = this . $wrapLimitRange ; n . max < 0 && ( n = { min : t , max : t } ) ; var r = this . $constrainWrapLimit ( e , n . min , n . max ) ; return r != this . $wrapLimit && r > 1 && ( this . $wrapLimit = r , this . $modified = ! 0 , this . $useWrapMode && ( this . $updateWrapData ( 0 , this . getLength ( ) - 1 ) , this . $resetRowCache ( 0 ) , this . _signal ( "changeWrapLimit" ) ) , ! 0 ) } , this . $constrainWrapLimit = function ( e , t , n ) { return t && ( e = Math . max ( t , e ) ) , n && ( e = Math . min ( n , e ) ) , e } , this . getWrapLimit = function ( ) { return this . $wrapLimit } , this . setWrapLimit = function ( e ) { this . setWrapLimitRange ( e , e ) } , this . getWrapLimitRange = function ( ) { return { min : this . $wrapLimitRange . min , max : this . $wrapLimitRange . max } } , this . $updateInternalDataOnChange = function ( e ) { var t = this . $useWrapMode , n = e . action , r = e . start , i = e . end , s = r . row , o = i . row , u = o - s , a = null ; if ( this . $updating = ! 0 , 0 != u ) if ( "remove" === n ) { this [ t ? "$wrapData" : "$rowLengthCache" ] . splice ( s , u ) ; var f = this . $foldData ; a = this . getFoldsInRange ( e ) , this . removeFolds ( a ) ; var l = this . getFoldLine ( i . row ) , c = 0 ; if ( l ) { l . addRemoveChars ( i . row , i . column , r . column - i . column ) , l . shiftRow ( - u ) ; var h = this . getFoldLine ( s ) ; h && h !== l && ( h . merge ( l ) , l = h ) , c = f . indexOf ( l ) + 1 } for ( c ; c < f . length ; c ++ ) { var l = f [ c ] ; l . start . row >= i . row && l . shiftRow ( - u ) } o = s } else { var p = Array ( u ) ; p . unshift ( s , 0 ) ; var d = t ? this . $wrapData : this . $rowLengthCache ; d . splice . apply ( d , p ) ; var f = this . $foldData , l = this . getFoldLine ( s ) , c = 0 ; if ( l ) { var v = l . range . compareInside ( r . row , r . column ) ; 0 == v ? ( l = l . split ( r . row , r . column ) , l && ( l . shiftRow ( u ) , l . addRemoveChars ( o , 0 , i . column - r . column ) ) ) : v == - 1 && ( l . addRemoveChars ( s , 0 , i . column - r . column ) , l . shiftRow ( u ) ) , c = f . indexOf ( l ) + 1 } for ( c ; c < f . length ; c ++ ) { var l = f [ c ] ; l . start . row >= s && l . shiftRow ( u ) } } else { u = Math . abs ( e . start . column - e . end . column ) , "remove" === n && ( a = this . getFoldsInRange ( e ) , this . removeFolds ( a ) , u = - u ) ; var l = this . getFoldLine ( s ) ; l && l . addRemoveChars ( s , r . column , u ) } return t && this . $wrapData . length != this . doc . getLength ( ) && console . error ( "doc.getLength() and $wrapData.length have to be the same!" ) , this . $updating = ! 1 , t ? this . $updateWrapData ( s , o ) : this . $updateRowLengthCache ( s , o ) , a } , this . $updateRowLengthCache = function ( e , t , n ) { this . $rowLengthCache [ e ] = null , this . $rowLengthCache [ t ] = null } , this . $updateWrapData = function ( e , t ) { var a , f , r = this . doc . getAllLines ( ) , i = this . getTabSize ( ) , s = this . $wrapData , o = this . $wrapLimit , l = e ; for ( t = Math . min ( t , r . length - 1 ) ; l <= t ; ) f = this . getFoldLine ( l , f ) , f ? ( a = [ ] , f . walk ( function ( e , t , i , s ) { var o ; if ( null != e ) { o = this . $getDisplayTokens ( e , a . length ) , o [ 0 ] = n ; for ( var f = 1 ; f < o . length ; f ++ ) o [ f ] = u } else o = this . $getDisplayTokens ( r [ t ] . substring ( s , i ) , a . length ) ; a = a . concat ( o ) } . bind ( this ) , f . end . row , r [ f . end . row ] . length + 1 ) , s [ f . start . row ] = this . $computeWrapSplits ( a , o , i ) , l = f . end . row + 1 ) : ( a = this . $getDisplayTokens ( r [ l ] ) , s [ l ] = this . $computeWrapSplits ( a , o , i ) , l ++ ) } ; var e = 1 , t = 2 , n = 3 , u = 4 , l = 9 , p = 10 , d = 11 , v = 12 ; this . $computeWrapSplits = function ( e , r , i ) { function g ( ) { var t = 0 ; if ( 0 === m ) return t ; if ( h ) for ( var n = 0 ; n < e . length ; n ++ ) { var r
exec : function ( e ) { e . removeWordRight ( ) } , multiSelectAction : "forEach" , scrollIntoView : "cursor" } , { name : "outdent" , bindKey : o ( "Shift-Tab" , "Shift-Tab" ) , exec : function ( e ) { e . blockOutdent ( ) } , multiSelectAction : "forEach" , scrollIntoView : "selectionPart" } , { name : "indent" , bindKey : o ( "Tab" , "Tab" ) , exec : function ( e ) { e . indent ( ) } , multiSelectAction : "forEach" , scrollIntoView : "selectionPart" } , { name : "blockoutdent" , bindKey : o ( "Ctrl-[" , "Ctrl-[" ) , exec : function ( e ) { e . blockOutdent ( ) } , multiSelectAction : "forEachLine" , scrollIntoView : "selectionPart" } , { name : "blockindent" , bindKey : o ( "Ctrl-]" , "Ctrl-]" ) , exec : function ( e ) { e . blockIndent ( ) } , multiSelectAction : "forEachLine" , scrollIntoView : "selectionPart" } , { name : "insertstring" , exec : function ( e , t ) { e . insert ( t ) } , multiSelectAction : "forEach" , scrollIntoView : "cursor" } , { name : "inserttext" , exec : function ( e , t ) { e . insert ( r . stringRepeat ( t . text || "" , t . times || 1 ) ) } , multiSelectAction : "forEach" , scrollIntoView : "cursor" } , { name : "splitline" , bindKey : o ( null , "Ctrl-O" ) , exec : function ( e ) { e . splitLine ( ) } , multiSelectAction : "forEach" , scrollIntoView : "cursor" } , { name : "transposeletters" , bindKey : o ( "Ctrl-T" , "Ctrl-T" ) , exec : function ( e ) { e . transposeLetters ( ) } , multiSelectAction : function ( e ) { e . transposeSelections ( 1 ) } , scrollIntoView : "cursor" } , { name : "touppercase" , bindKey : o ( "Ctrl-U" , "Ctrl-U" ) , exec : function ( e ) { e . toUpperCase ( ) } , multiSelectAction : "forEach" , scrollIntoView : "cursor" } , { name : "tolowercase" , bindKey : o ( "Ctrl-Shift-U" , "Ctrl-Shift-U" ) , exec : function ( e ) { e . toLowerCase ( ) } , multiSelectAction : "forEach" , scrollIntoView : "cursor" } , { name : "expandtoline" , bindKey : o ( "Ctrl-Shift-L" , "Command-Shift-L" ) , exec : function ( e ) { var t = e . selection . getRange ( ) ; t . start . column = t . end . column = 0 , t . end . row ++ , e . selection . setRange ( t , ! 1 ) } , multiSelectAction : "forEach" , scrollIntoView : "cursor" , readOnly : ! 0 } , { name : "joinlines" , bindKey : o ( null , null ) , exec : function ( e ) { for ( var t = e . selection . isBackwards ( ) , n = t ? e . selection . getSelectionLead ( ) : e . selection . getSelectionAnchor ( ) , i = t ? e . selection . getSelectionAnchor ( ) : e . selection . getSelectionLead ( ) , o = e . session . doc . getLine ( n . row ) . length , u = e . session . doc . getTextRange ( e . selection . getRange ( ) ) , a = u . replace ( /\n\s*/ , " " ) . length , f = e . session . doc . getLine ( n . row ) , l = n . row + 1 ; l <= i . row + 1 ; l ++ ) { var c = r . stringTrimLeft ( r . stringTrimRight ( e . session . doc . getLine ( l ) ) ) ; 0 !== c . length && ( c = " " + c ) , f += c } i . row + 1 < e . session . doc . getLength ( ) - 1 && ( f += e . session . doc . getNewLineCharacter ( ) ) , e . clearSelection ( ) , e . session . doc . replace ( new s ( n . row , 0 , i . row + 2 , 0 ) , f ) , a > 0 ? ( e . selection . moveCursorTo ( n . row , n . column ) , e . selection . selectTo ( n . row , n . column + a ) ) : ( o = e . session . doc . getLine ( n . row ) . length > o ? o + 1 : o , e . selection . moveCursorTo ( n . row , o ) ) } , multiSelectAction : "forEach" , readOnly : ! 0 } , { name : "invertSelection" , bindKey : o ( null , null ) , exec : function ( e ) { var t = e . session . doc . getLength ( ) - 1 , n = e . session . doc . getLine ( t ) . length , r = e . selection . rangeList . ranges , i = [ ] ; r . length < 1 && ( r = [ e . selection . getRange ( ) ] ) ; for ( var o = 0 ; o < r . length ; o ++ ) o == r . length - 1 && ( r [ o ] . end . row !== t || r [ o ] . end . column !== n ) && i . push ( new s ( r [ o ] . end . row , r [ o ] . end . column , t , n ) ) , 0 === o ? ( 0 !== r [ o ] . start . row || 0 !== r [ o ] . start . column ) && i . push ( new s ( 0 , 0 , r [ o ] . start . row , r [ o ] . start . column ) ) : i . push ( new s ( r [ o - 1 ] . end . row , r [ o - 1 ] . end . column , r [ o ] . start . row , r [ o ] . start . column ) ) ; e . exitMultiSelectMode ( ) , e . clearSelection ( ) ; for ( var o = 0 ; o < i . length ; o ++ ) e . selection . addRange ( i [ o ] , ! 1 ) } , readOnly : ! 0 , scrollIntoView : "none" } ] } ) , ace . define ( "ace/editor" , [ "require" , "exports" , "module" , "ace/lib/fixoldbrowsers" , "ace/lib/oop" , "ace/lib/dom" , "ace/lib/lang" , "ace/lib/useragent" , "ace/keyboard/textinput" , "ace/mouse/mouse_handler" , "ace/mouse/fold_handler" , "ace/keyboard/keybinding" , "ace/edit_session" , "ace/search" , "ace/range" , "ace/lib/event_emitter" , "ace/commands/command_manager" , "ace/commands/default_commands" , "ace/config" , "ace/token_iterator" ] , function ( e , t , n ) { "use strict" ; e ( "./lib/fixoldbrowsers" ) ; var r = e ( "./lib/oop" ) , i = e ( "./lib/dom" ) , s = e ( "./lib/lang" ) , o = e ( "./lib/useragent" ) , u = e ( "./keyboard/textinput" ) . TextInput , a = e ( "./mouse/mouse_handler" ) . MouseHandler , f = e ( "./mouse/fold_handler" ) . FoldHandler , l = e ( "./keyboard/keybinding" ) . KeyBinding , c = e ( "./edit_session" ) . EditSession , h = e ( "./search" ) . Search , p = e ( "./range" ) . Range , d = e ( "./lib/event_emitter" ) . EventEmitter , v = e ( " . / comma
s . value === v && s . type . indexOf ( "tag-name" ) !== - 1 && ( "<" === i . value ? a [ v ] ++ : "</" === i . value && a [ v ] -- , 0 === a [ v ] && ( u = ! 0 ) ) ) ; while ( i && ! u ) } s && s . type . indexOf ( "tag-name" ) && ( d = h . start , d . row == n . row && Math . abs ( d . column - n . column ) < 2 && ( d = h . end ) ) } d = h && h . cursor || d , d && ( e ? h && t ? this . selection . setRange ( h ) : h && h . isEqual ( this . getSelectionRange ( ) ) ? this . clearSelection ( ) : this . selection . selectTo ( d . row , d . column ) : this . selection . moveTo ( d . row , d . column ) ) } } } , this . gotoLine = function ( e , t , n ) { this . selection . clearSelection ( ) , this . session . unfold ( { row : e - 1 , column : t || 0 } ) , this . $blockScrolling += 1 , this . exitMultiSelectMode && this . exitMultiSelectMode ( ) , this . moveCursorTo ( e - 1 , t || 0 ) , this . $blockScrolling -= 1 , this . isRowFullyVisible ( e - 1 ) || this . scrollToLine ( e - 1 , ! 0 , n ) } , this . navigateTo = function ( e , t ) { this . selection . moveTo ( e , t ) } , this . navigateUp = function ( e ) { if ( this . selection . isMultiLine ( ) && ! this . selection . isBackwards ( ) ) { var t = this . selection . anchor . getPosition ( ) ; return this . moveCursorToPosition ( t ) } this . selection . clearSelection ( ) , this . selection . moveCursorBy ( - e || - 1 , 0 ) } , this . navigateDown = function ( e ) { if ( this . selection . isMultiLine ( ) && this . selection . isBackwards ( ) ) { var t = this . selection . anchor . getPosition ( ) ; return this . moveCursorToPosition ( t ) } this . selection . clearSelection ( ) , this . selection . moveCursorBy ( e || 1 , 0 ) } , this . navigateLeft = function ( e ) { if ( this . selection . isEmpty ( ) ) for ( e = e || 1 ; e -- ; ) this . selection . moveCursorLeft ( ) ; else { var t = this . getSelectionRange ( ) . start ; this . moveCursorToPosition ( t ) } this . clearSelection ( ) } , this . navigateRight = function ( e ) { if ( this . selection . isEmpty ( ) ) for ( e = e || 1 ; e -- ; ) this . selection . moveCursorRight ( ) ; else { var t = this . getSelectionRange ( ) . end ; this . moveCursorToPosition ( t ) } this . clearSelection ( ) } , this . navigateLineStart = function ( ) { this . selection . moveCursorLineStart ( ) , this . clearSelection ( ) } , this . navigateLineEnd = function ( ) { this . selection . moveCursorLineEnd ( ) , this . clearSelection ( ) } , this . navigateFileEnd = function ( ) { this . selection . moveCursorFileEnd ( ) , this . clearSelection ( ) } , this . navigateFileStart = function ( ) { this . selection . moveCursorFileStart ( ) , this . clearSelection ( ) } , this . navigateWordRight = function ( ) { this . selection . moveCursorWordRight ( ) , this . clearSelection ( ) } , this . navigateWordLeft = function ( ) { this . selection . moveCursorWordLeft ( ) , this . clearSelection ( ) } , this . replace = function ( e , t ) { t && this . $search . set ( t ) ; var n = this . $search . find ( this . session ) , r = 0 ; return n ? ( this . $tryReplace ( n , e ) && ( r = 1 ) , null !== n && ( this . selection . setSelectionRange ( n ) , this . renderer . scrollSelectionIntoView ( n . start , n . end ) ) , r ) : r } , this . replaceAll = function ( e , t ) { t && this . $search . set ( t ) ; var n = this . $search . findAll ( this . session ) , r = 0 ; if ( ! n . length ) return r ; this . $blockScrolling += 1 ; var i = this . getSelectionRange ( ) ; this . selection . moveTo ( 0 , 0 ) ; for ( var s = n . length - 1 ; s >= 0 ; -- s ) this . $tryReplace ( n [ s ] , e ) && r ++ ; return this . selection . setSelectionRange ( i ) , this . $blockScrolling -= 1 , r } , this . $tryReplace = function ( e , t ) { var n = this . session . getTextRange ( e ) ; return t = this . $search . replace ( n , t ) , null !== t ? ( e . end = this . session . replace ( e , t ) , e ) : null } , this . getLastSearchOptions = function ( ) { return this . $search . getOptions ( ) } , this . find = function ( e , t , n ) { t || ( t = { } ) , "string" == typeof e || e instanceof RegExp ? t . needle = e : "object" == typeof e && r . mixin ( t , e ) ; var i = this . selection . getRange ( ) ; null == t . needle && ( e = this . session . getTextRange ( i ) || this . $search . $options . needle , e || ( i = this . session . getWordRange ( i . start . row , i . start . column ) , e = this . session . getTextRange ( i ) ) , this . $search . set ( { needle : e } ) ) , this . $search . set ( t ) , t . start || this . $search . set ( { start : i } ) ; var s = this . $search . find ( this . session ) ; return t . preventScroll ? s : s ? ( this . revealRange ( s , n ) , s ) : ( t . backwards ? i . start = i . end : i . end = i . start , void this . selection . setRange ( i ) ) } , this . findNext = function ( e , t ) { this . find ( { skipCurrent : ! 0 , backwards : ! 1 } , e , t ) } , this . findPrevious = function ( e , t ) { this . find ( e , { skipCurrent : ! 0 , backwards : ! 0 } , t ) } , this . revealRange = function ( e , t ) { this . $blockScrolling += 1 , this . session . unfold ( e ) , this . selection . setSelectionRange ( e ) , this . $blockScrolling -= 1 ; var n = this . renderer . scrollTop ; this . renderer . scrollSelectionIntoView ( e . start , e . end , . 5 ) , t !== ! 1 && this . renderer . animateScrolling ( n ) } , this . undo = function ( ) { this . $blockScrolling ++ , this . session . getUndoManager ( ) . undo ( ) , this . $blockScrolling -- ,
} } . call ( l . prototype ) , t . ScrollBar = f , t . ScrollBarV = f , t . ScrollBarH = l , t . VScrollBar = f , t . HScrollBar = l } ) , ace . define ( "ace/renderloop" , [ "require" , "exports" , "module" , "ace/lib/event" ] , function ( e , t , n ) { "use strict" ; var r = e ( "./lib/event" ) , i = function ( e , t ) { this . onRender = e , this . pending = ! 1 , this . changes = 0 , this . window = t || window } ; ( function ( ) { this . schedule = function ( e ) { if ( this . changes = this . changes | e , ! this . pending && this . changes ) { this . pending = ! 0 ; var t = this ; r . nextFrame ( function ( ) { t . pending = ! 1 ; for ( var e ; e = t . changes ; ) t . changes = 0 , t . onRender ( e ) } , this . window ) } } } ) . call ( i . prototype ) , t . RenderLoop = i } ) , ace . define ( "ace/layer/font_metrics" , [ "require" , "exports" , "module" , "ace/lib/oop" , "ace/lib/dom" , "ace/lib/lang" , "ace/lib/useragent" , "ace/lib/event_emitter" ] , function ( e , t , n ) { var r = e ( "../lib/oop" ) , i = e ( "../lib/dom" ) , s = e ( "../lib/lang" ) , o = e ( "../lib/useragent" ) , u = e ( "../lib/event_emitter" ) . EventEmitter , a = 0 , f = t . FontMetrics = function ( e ) { this . el = i . createElement ( "div" ) , this . $setMeasureNodeStyles ( this . el . style , ! 0 ) , this . $main = i . createElement ( "div" ) , this . $setMeasureNodeStyles ( this . $main . style ) , this . $measureNode = i . createElement ( "div" ) , this . $setMeasureNodeStyles ( this . $measureNode . style ) , this . el . appendChild ( this . $main ) , this . el . appendChild ( this . $measureNode ) , e . appendChild ( this . el ) , a || this . $testFractionalRect ( ) , this . $measureNode . innerHTML = s . stringRepeat ( "X" , a ) , this . $characterSize = { width : 0 , height : 0 } , this . checkForSizeChanges ( ) } ; ( function ( ) { r . implement ( this , u ) , this . $characterSize = { width : 0 , height : 0 } , this . $testFractionalRect = function ( ) { var e = i . createElement ( "div" ) ; this . $setMeasureNodeStyles ( e . style ) , e . style . width = "0.2px" , document . documentElement . appendChild ( e ) ; var t = e . getBoundingClientRect ( ) . width ; a = t > 0 && t < 1 ? 50 : 100 , e . parentNode . removeChild ( e ) } , this . $setMeasureNodeStyles = function ( e , t ) { e . width = e . height = "auto" , e . left = e . top = "0px" , e . visibility = "hidden" , e . position = "absolute" , e . whiteSpace = "pre" , o . isIE < 8 ? e [ "font-family" ] = "inherit" : e . font = "inherit" , e . overflow = t ? "hidden" : "visible" } , this . checkForSizeChanges = function ( ) { var e = this . $measureSizes ( ) ; if ( e && ( this . $characterSize . width !== e . width || this . $characterSize . height !== e . height ) ) { this . $measureNode . style . fontWeight = "bold" ; var t = this . $measureSizes ( ) ; this . $measureNode . style . fontWeight = "" , this . $characterSize = e , this . charSizes = Object . create ( null ) , this . allowBoldFonts = t && t . width === e . width && t . height === e . height , this . _emit ( "changeCharacterSize" , { data : e } ) } } , this . $pollSizeChanges = function ( ) { if ( this . $pollSizeChangesTimer ) return this . $pollSizeChangesTimer ; var e = this ; return this . $pollSizeChangesTimer = setInterval ( function ( ) { e . checkForSizeChanges ( ) } , 500 ) } , this . setPolling = function ( e ) { e ? this . $pollSizeChanges ( ) : this . $pollSizeChangesTimer && ( clearInterval ( this . $pollSizeChangesTimer ) , this . $pollSizeChangesTimer = 0 ) } , this . $measureSizes = function ( ) { if ( 50 === a ) { var e = null ; try { e = this . $measureNode . getBoundingClientRect ( ) } catch ( t ) { e = { width : 0 , height : 0 } } var n = { height : e . height , width : e . width / a } } else var n = { height : this . $measureNode . clientHeight , width : this . $measureNode . clientWidth / a } ; return 0 === n . width || 0 === n . height ? null : n } , this . $measureCharWidth = function ( e ) { this . $main . innerHTML = s . stringRepeat ( e , a ) ; var t = this . $main . getBoundingClientRect ( ) ; return t . width / a } , this . getCharacterWidth = function ( e ) { var t = this . charSizes [ e ] ; return void 0 === t && ( t = this . charSizes [ e ] = this . $measureCharWidth ( e ) / this . $characterSize . width ) , t } , this . destroy = function ( ) { clearInterval ( this . $pollSizeChangesTimer ) , this . el && this . el . parentNode && this . el . parentNode . removeChild ( this . el ) } } ) . call ( f . prototype ) } ) , ace . define ( "ace/virtual_renderer" , [ "require" , "exports" , "module" , "ace/lib/oop" , "ace/lib/dom" , "ace/config" , "ace/lib/useragent" , "ace/layer/gutter" , "ace/layer/marker" , "ace/layer/text" , "ace/layer/cursor" , "ace/scrollbar" , "ace/scrollbar" , "ace/renderloop" , "ace/layer/font_metrics" , "ace/lib/event_emitter" ] , function ( e , t , n ) { "use strict" ; var r = e ( "./lib/oop" ) , i = e ( "./lib/dom" ) , s = e ( "./config" ) , o = e ( "./lib/useragent" ) , u = e ( "./layer/gutter" ) . Gutter , a = e ( "./layer/marker" ) . Marker , f = e ( "./layer/text" ) . Text , l = e ( "./layer/cursor" ) . Cursor , c = e ( "./scrollbar" ) . HScrollBar , h = e ( "./scrollbar" ) . VScrollBar , p = e ( "./renderloop" ) . RenderLoop , d = e ( "./layer/font_metrics" ) . Fo
var E = e . getFoldLine ( m ) ; E && ( m = E . start . row ) , y = e . documentToScreenRow ( m , 0 ) , b = e . getRowLength ( m ) * w , g = Math . min ( e . screenToDocumentRow ( g , 0 ) , e . getLength ( ) - 1 ) , l = t . scrollerHeight + e . getRowLength ( g ) * w + b , f = this . scrollTop - y * w ; var S = 0 ; return this . layerConfig . width != s && ( S = this . CHANGE _H _SCROLL ) , ( u || d ) && ( S = this . $updateCachedSize ( ! 0 , this . gutterWidth , t . width , t . height ) , this . _signal ( "scrollbarVisibilityChanged" ) , d && ( s = this . $getLongestLine ( ) ) ) , this . layerConfig = { width : s , padding : this . $padding , firstRow : m , firstRowScreen : y , lastRow : g , lineHeight : w , characterWidth : this . characterWidth , minHeight : l , maxHeight : i , offset : f , gutterOffset : w ? Math . max ( 0 , Math . ceil ( ( f + t . height - t . scrollerHeight ) / w ) ) : 0 , height : this . $size . scrollerHeight } , S } , this . $updateLines = function ( ) { var e = this . $changedLines . firstRow , t = this . $changedLines . lastRow ; this . $changedLines = null ; var n = this . layerConfig ; if ( ! ( e > n . lastRow + 1 || t < n . firstRow ) ) return t === 1 / 0 ? ( this . $showGutter && this . $gutterLayer . update ( n ) , void this . $textLayer . update ( n ) ) : ( this . $textLayer . updateLines ( n , e , t ) , ! 0 ) } , this . $getLongestLine = function ( ) { var e = this . session . getScreenWidth ( ) ; return this . showInvisibles && ! this . session . $useWrapMode && ( e += 1 ) , Math . max ( this . $size . scrollerWidth - 2 * this . $padding , Math . round ( e * this . characterWidth ) ) } , this . updateFrontMarkers = function ( ) { this . $markerFront . setMarkers ( this . session . getMarkers ( ! 0 ) ) , this . $loop . schedule ( this . CHANGE _MARKER _FRONT ) } , this . updateBackMarkers = function ( ) { this . $markerBack . setMarkers ( this . session . getMarkers ( ) ) , this . $loop . schedule ( this . CHANGE _MARKER _BACK ) } , this . addGutterDecoration = function ( e , t ) { this . $gutterLayer . addGutterDecoration ( e , t ) } , this . removeGutterDecoration = function ( e , t ) { this . $gutterLayer . removeGutterDecoration ( e , t ) } , this . updateBreakpoints = function ( e ) { this . $loop . schedule ( this . CHANGE _GUTTER ) } , this . setAnnotations = function ( e ) { this . $gutterLayer . setAnnotations ( e ) , this . $loop . schedule ( this . CHANGE _GUTTER ) } , this . updateCursor = function ( ) { this . $loop . schedule ( this . CHANGE _CURSOR ) } , this . hideCursor = function ( ) { this . $cursorLayer . hideCursor ( ) } , this . showCursor = function ( ) { this . $cursorLayer . showCursor ( ) } , this . scrollSelectionIntoView = function ( e , t , n ) { this . scrollCursorIntoView ( e , n ) , this . scrollCursorIntoView ( t , n ) } , this . scrollCursorIntoView = function ( e , t , n ) { if ( 0 !== this . $size . scrollerHeight ) { var r = this . $cursorLayer . getPixelPosition ( e ) , i = r . left , s = r . top , o = n && n . top || 0 , u = n && n . bottom || 0 , a = this . $scrollAnimation ? this . session . getScrollTop ( ) : this . scrollTop ; a + o > s ? ( t && a + o > s + this . lineHeight && ( s -= t * this . $size . scrollerHeight ) , 0 === s && ( s = - this . scrollMargin . top ) , this . session . setScrollTop ( s ) ) : a + this . $size . scrollerHeight - u < s + this . lineHeight && ( t && a + this . $size . scrollerHeight - u < s - this . lineHeight && ( s += t * this . $size . scrollerHeight ) , this . session . setScrollTop ( s + this . lineHeight - this . $size . scrollerHeight ) ) ; var f = this . scrollLeft ; f > i ? ( i < this . $padding + 2 * this . layerConfig . characterWidth && ( i = - this . scrollMargin . left ) , this . session . setScrollLeft ( i ) ) : f + this . $size . scrollerWidth < i + this . characterWidth ? this . session . setScrollLeft ( Math . round ( i + this . characterWidth - this . $size . scrollerWidth ) ) : f <= this . $padding && i - f < this . characterWidth && this . session . setScrollLeft ( 0 ) } } , this . getScrollTop = function ( ) { return this . session . getScrollTop ( ) } , this . getScrollLeft = function ( ) { return this . session . getScrollLeft ( ) } , this . getScrollTopRow = function ( ) { return this . scrollTop / this . lineHeight } , this . getScrollBottomRow = function ( ) { return Math . max ( 0 , Math . floor ( ( this . scrollTop + this . $size . scrollerHeight ) / this . lineHeight ) - 1 ) } , this . scrollToRow = function ( e ) { this . session . setScrollTop ( e * this . lineHeight ) } , this . alignCursor = function ( e , t ) { "number" == typeof e && ( e = { row : e , column : 0 } ) ; var n = this . $cursorLayer . getPixelPosition ( e ) , r = this . $size . scrollerHeight - this . lineHeight , i = n . top - r * ( t || 0 ) ; return this . session . setScrollTop ( i ) , i } , this . STEPS = 8 , this . $calcSteps = function ( e , t ) { var n = 0 , r = this . STEPS , i = [ ] , s = function ( e , t , n ) { return n * ( Math . pow ( e - 1 , 3 ) + 1 ) + t } ; for ( n = 0 ; n < r ; ++ n ) i . push ( s ( n / this . STEPS , e , t - e ) ) ; return i } , this . scrollToLine = function ( e , t , n , r ) { var i = this . $cursorLayer . getPixelPosition ( { row : e , column : 0 } ) , s = i . top ; t && ( s -= this . $size . scrollerHeight / 2 ) ; var o = this . scrollTop ; this . session . setScrollTop ( s ) , n !== ! 1 && this . animateScrolling ( o , r ) } , t
var i = this . session . getDocument ( ) . getNewLineCharacter ( ) ; e = n . join ( i ) , e . length == ( n . length - 1 ) * i . length && ( e = "" ) } else this . selection . isEmpty ( ) || ( e = this . session . getTextRange ( this . getSelectionRange ( ) ) ) ; return e } , this . $checkMultiselectChange = function ( e , t ) { if ( this . inMultiSelectMode && ! this . inVirtualSelectionMode ) { var n = this . multiSelect . ranges [ 0 ] ; if ( this . multiSelect . isEmpty ( ) && t == this . multiSelect . anchor ) return ; var r = t == this . multiSelect . anchor ? n . cursor == n . start ? n . end : n . start : n . cursor ; ( r . row != t . row || this . session . $clipPositionToDocument ( r . row , r . column ) . column != t . column ) && this . multiSelect . toSingleRange ( this . multiSelect . toOrientedRange ( ) ) } } , this . findAll = function ( e , t , n ) { if ( t = t || { } , t . needle = e || t . needle , void 0 == t . needle ) { var r = this . selection . isEmpty ( ) ? this . selection . getWordRange ( ) : this . selection . getRange ( ) ; t . needle = this . session . getTextRange ( r ) } this . $search . set ( t ) ; var i = this . $search . findAll ( this . session ) ; if ( ! i . length ) return 0 ; this . $blockScrolling += 1 ; var s = this . multiSelect ; n || s . toSingleRange ( i [ 0 ] ) ; for ( var o = i . length ; o -- ; ) s . addRange ( i [ o ] , ! 0 ) ; return r && s . rangeList . rangeAtPoint ( r . start ) && s . addRange ( r , ! 0 ) , this . $blockScrolling -= 1 , i . length } , this . selectMoreLines = function ( e , t ) { var n = this . selection . toOrientedRange ( ) , r = n . cursor == n . end , s = this . session . documentToScreenPosition ( n . cursor ) ; this . selection . $desiredColumn && ( s . column = this . selection . $desiredColumn ) ; var o = this . session . screenToDocumentPosition ( s . row + e , s . column ) ; if ( n . isEmpty ( ) ) var a = o ; else var u = this . session . documentToScreenPosition ( r ? n . end : n . start ) , a = this . session . screenToDocumentPosition ( u . row + e , u . column ) ; if ( r ) { var f = i . fromPoints ( o , a ) ; f . cursor = f . start } else { var f = i . fromPoints ( a , o ) ; f . cursor = f . end } if ( f . desiredColumn = s . column , this . selection . inMultiSelectMode ) { if ( t ) var l = n . cursor } else this . selection . addRange ( n ) ; this . selection . addRange ( f ) , l && this . selection . substractPoint ( l ) } , this . transposeSelections = function ( e ) { for ( var t = this . session , n = t . multiSelect , r = n . ranges , i = r . length ; i -- ; ) { var s = r [ i ] ; if ( s . isEmpty ( ) ) { var o = t . getWordRange ( s . start . row , s . start . column ) ; s . start . row = o . start . row , s . start . column = o . start . column , s . end . row = o . end . row , s . end . column = o . end . column } } n . mergeOverlappingRanges ( ) ; for ( var u = [ ] , i = r . length ; i -- ; ) { var s = r [ i ] ; u . unshift ( t . getTextRange ( s ) ) } e < 0 ? u . unshift ( u . pop ( ) ) : u . push ( u . shift ( ) ) ; for ( var i = r . length ; i -- ; ) { var s = r [ i ] , o = s . clone ( ) ; t . replace ( s , u [ i ] ) , s . start . row = o . start . row , s . start . column = o . start . column } } , this . selectMore = function ( e , t , n ) { var r = this . session , i = r . multiSelect , s = i . toOrientedRange ( ) ; if ( ! s . isEmpty ( ) || ( s = r . getWordRange ( s . start . row , s . start . column ) , s . cursor = e == - 1 ? s . start : s . end , this . multiSelect . addRange ( s ) , ! n ) ) { var o = r . getTextRange ( s ) , u = h ( r , o , e ) ; u && ( u . cursor = e == - 1 ? u . start : u . end , this . $blockScrolling += 1 , this . session . unfold ( u ) , this . multiSelect . addRange ( u ) , this . $blockScrolling -= 1 , this . renderer . scrollCursorIntoView ( null , . 5 ) ) , t && this . multiSelect . substractPoint ( s . cursor ) } } , this . alignCursors = function ( ) { var e = this . session , t = e . multiSelect , n = t . ranges , r = - 1 , s = n . filter ( function ( e ) { return e . cursor . row == r || void ( r = e . cursor . row ) } ) ; if ( n . length && s . length != n . length - 1 ) { s . forEach ( function ( e ) { t . substractPoint ( e . cursor ) } ) ; var d = 0 , v = 1 / 0 , m = n . map ( function ( t ) { var n = t . cursor , r = e . getLine ( n . row ) , i = r . substr ( n . column ) . search ( /\S/g ) ; return i == - 1 && ( i = 0 ) , n . column > d && ( d = n . column ) , i < v && ( v = i ) , i } ) ; n . forEach ( function ( t , n ) { var r = t . cursor , s = d - r . column , o = m [ n ] - v ; s > o ? e . insert ( r , a . stringRepeat ( " " , s - o ) ) : e . remove ( new i ( r . row , r . column , r . row , r . column - s + o ) ) , t . start . column = t . end . column = d , t . start . row = t . end . row = r . row , t . cursor = t . end } ) , t . fromOrientedRange ( n [ 0 ] ) , this . renderer . updateCursor ( ) , this . renderer . updateBackMarkers ( ) } else { var o = this . selection . getRange ( ) , u = o . start . row , f = o . end . row , l = u == f ; if ( l ) { var h , c = this . session . getLength ( ) ; do h = this . session . getLine ( f ) ; while ( /[=:]/ . test ( h ) && ++ f < c ) ; do h = this . session . getLine ( u ) ; while ( /[=:]/ . test ( h ) && -- u > 0 ) ; u < 0 && ( u = 0 ) , f >= c && ( f = c - 1 ) } var p = this . session . removeFullLines ( u , f ) ; p = this . $reAlignText ( p , l ) , this . session . insert ( { row : u , column : 0 } , p . join ( "\n" ) + "\n" ) , l || ( o . start . column = 0 , o . end . column = p [ p . length - 1 ] . length ) , this . selection . setRange ( o ) } } , this . $reAlignText = function ( e , t ) { function u ( e ) { return a . stringRepeat ( " " , e ) } function f
} , { token : "identifier" , regex : o } , { regex : "" , token : "empty" , next : "no_regex" } ] , start : [ i . getStartRule ( "doc-start" ) , f ( "start" ) , { token : "string.regexp" , regex : "\\/" , next : "regex" } , { token : "text" , regex : "\\s+|^$" , next : "start" } , { token : "empty" , regex : "" , next : "no_regex" } ] , regex : [ { token : "regexp.keyword.operator" , regex : "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" } , { token : "string.regexp" , regex : "/[sxngimy]*" , next : "no_regex" } , { token : "invalid" , regex : /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/ } , { token : "constant.language.escape" , regex : /\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/ } , { token : "constant.language.delimiter" , regex : /\|/ } , { token : "constant.language.escape" , regex : /\[\^?/ , next : "regex_character_class" } , { token : "empty" , regex : "$" , next : "no_regex" } , { defaultToken : "string.regexp" } ] , regex _character _class : [ { token : "regexp.charclass.keyword.operator" , regex : "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" } , { token : "constant.language.escape" , regex : "]" , next : "regex" } , { token : "constant.language.escape" , regex : "-" } , { token : "empty" , regex : "$" , next : "no_regex" } , { defaultToken : "string.regexp.charachterclass" } ] , function _arguments : [ { token : "variable.parameter" , regex : o } , { token : "punctuation.operator" , regex : "[, ]+" } , { token : "punctuation.operator" , regex : "$" } , { token : "empty" , regex : "" , next : "no_regex" } ] , qqstring : [ { token : "constant.language.escape" , regex : r } , { token : "string" , regex : "\\\\$" , next : "qqstring" } , { token : "string" , regex : '"|$' , next : "no_regex" } , { defaultToken : "string" } ] , qstring : [ { token : "constant.language.escape" , regex : r } , { token : "string" , regex : "\\\\$" , next : "qstring" } , { token : "string" , regex : "'|$" , next : "no_regex" } , { defaultToken : "string" } ] } , e && e . noES6 || ( this . $rules . no _regex . unshift ( { regex : "[{}]" , onMatch : function ( e , t , n ) { if ( this . next = "{" == e ? this . nextState : "" , "{" == e && n . length ) n . unshift ( "start" , t ) ; else if ( "}" == e && n . length && ( n . shift ( ) , this . next = n . shift ( ) , this . next . indexOf ( "string" ) != - 1 || this . next . indexOf ( "jsx" ) != - 1 ) ) return "paren.quasi.end" ; return "{" == e ? "paren.lparen" : "paren.rparen" } , nextState : "start" } , { token : "string.quasi.start" , regex : /`/ , push : [ { token : "constant.language.escape" , regex : r } , { token : "paren.quasi.start" , regex : /\${/ , push : "start" } , { token : "string.quasi.end" , regex : /`/ , next : "pop" } , { defaultToken : "string.quasi" } ] } ) , ( ! e || 0 != e . jsx ) && a . call ( this ) ) , this . embedRules ( i , "doc-" , [ i . getEndRule ( "no_regex" ) ] ) , this . normalizeRules ( ) } ; r . inherits ( u , s ) , t . JavaScriptHighlightRules = u } ) , ace . define ( "ace/mode/matching_brace_outdent" , [ "require" , "exports" , "module" , "ace/range" ] , function ( e , t , n ) { "use strict" ; var r = e ( "../range" ) . Range , i = function ( ) { } ; ( function ( ) { this . checkOutdent = function ( e , t ) { return ! ! /^\s+$/ . test ( e ) && /^\s*\}/ . test ( t ) } , this . autoOutdent = function ( e , t ) { var n = e . getLine ( t ) , i = n . match ( /^(\s*\})/ ) ; if ( ! i ) return 0 ; var s = i [ 1 ] . length , o = e . findMatchingBracket ( { row : t , column : s } ) ; if ( ! o || o . row == t ) return 0 ; var u = this . $getIndent ( e . getLine ( o . row ) ) ; e . replace ( new r ( t , 0 , t , s - 1 ) , u ) } , this . $getIndent = function ( e ) { return e . match ( /^\s*/ ) [ 0 ] } } ) . call ( i . prototype ) , t . MatchingBraceOutdent = i } ) , ace . define ( "ace/mode/folding/cstyle" , [ "require" , "exports" , "module" , "ace/lib/oop" , "ace/range" , "ace/mode/folding/fold_mode" ] , function ( e , t , n ) { "use strict" ; var r = e ( "../../lib/oop" ) , i = e ( "../../range" ) . Range , s = e ( "./fold_mode" ) . FoldMode , o = t . FoldMode = function ( e ) { e && ( this . foldingStartMarker = new RegExp ( this . foldingStartMarker . source . replace ( /\|[^|]*?$/ , "|" + e . start ) ) , this . foldingStopMarker = new RegExp ( this . foldingStopMarker . source . replace ( /\|[^|]*?$/ , "|" + e . end ) ) ) } ; r . inherits ( o , s ) , function ( ) { this . foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/ , this . foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/ , this . singleLineBlockCommentRe = /^\s*(\/\*).*\*\/\s*$/ , this . tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/ , this . startRegionRe = /^\s*(\/\*|\/\/)#?region\b/ , this . _getFoldWidgetBase = this . getFoldWidget , this . getFoldWidget = function ( e , t , n ) { var r = e . getLine ( n ) ; if ( this . singleLineBlockCommentRe . test ( r ) && ! this . startRegionRe . test ( r ) && ! this . tripleStarBlockCommentRe . test ( r ) ) return "" ; var i = this . _getFoldWidgetBase ( e , t , n ) ; return ! i && this . startRegionRe . test ( r ) ? "start" : i } , this . getFoldWidgetRange = function ( e , t , n , r ) { var i = e . getLine ( n ) ; if ( this . startRegionRe . test ( i ) ) return this . getCommentR
if ( ";" === i ) { var s = n . getCursorPosition ( ) , o = r . doc . getLine ( s . row ) , u = o . substring ( s . column , s . column + 1 ) ; if ( ";" === u ) return { text : "" , selection : [ 1 , 1 ] } } } ) } ; r . inherits ( u , s ) , t . CssBehaviour = u } ) , ace . define ( "ace/mode/css" , [ "require" , "exports" , "module" , "ace/lib/oop" , "ace/mode/text" , "ace/mode/css_highlight_rules" , "ace/mode/matching_brace_outdent" , "ace/worker/worker_client" , "ace/mode/css_completions" , "ace/mode/behaviour/css" , "ace/mode/folding/cstyle" ] , function ( e , t , n ) { "use strict" ; var r = e ( "../lib/oop" ) , i = e ( "./text" ) . Mode , s = e ( "./css_highlight_rules" ) . CssHighlightRules , o = e ( "./matching_brace_outdent" ) . MatchingBraceOutdent , u = e ( "../worker/worker_client" ) . WorkerClient , a = e ( "./css_completions" ) . CssCompletions , f = e ( "./behaviour/css" ) . CssBehaviour , l = e ( "./folding/cstyle" ) . FoldMode , c = function ( ) { this . HighlightRules = s , this . $outdent = new o , this . $behaviour = new f , this . $completer = new a , this . foldingRules = new l } ; r . inherits ( c , i ) , function ( ) { this . foldingRules = "cStyle" , this . blockComment = { start : "/*" , end : "*/" } , this . getNextLineIndent = function ( e , t , n ) { var r = this . $getIndent ( t ) , i = this . getTokenizer ( ) . getLineTokens ( t , e ) . tokens ; if ( i . length && "comment" == i [ i . length - 1 ] . type ) return r ; var s = t . match ( /^.*\{\s*$/ ) ; return s && ( r += n ) , r } , this . checkOutdent = function ( e , t , n ) { return this . $outdent . checkOutdent ( t , n ) } , this . autoOutdent = function ( e , t , n ) { this . $outdent . autoOutdent ( t , n ) } , this . getCompletions = function ( e , t , n , r ) { return this . $completer . getCompletions ( e , t , n , r ) } , this . createWorker = function ( e ) { var t = new u ( [ "ace" ] , "ace/mode/css_worker" , "Worker" ) ; return t . attachToDocument ( e . getDocument ( ) ) , t . on ( "annotate" , function ( t ) { e . setAnnotations ( t . data ) } ) , t . on ( "terminate" , function ( ) { e . clearAnnotations ( ) } ) , t } , this . $id = "ace/mode/css" } . call ( c . prototype ) , t . Mode = c } ) , ace . define ( "ace/mode/html_highlight_rules" , [ "require" , "exports" , "module" , "ace/lib/oop" , "ace/lib/lang" , "ace/mode/css_highlight_rules" , "ace/mode/javascript_highlight_rules" , "ace/mode/xml_highlight_rules" ] , function ( e , t , n ) { "use strict" ; var r = e ( "../lib/oop" ) , i = e ( "../lib/lang" ) , s = e ( "./css_highlight_rules" ) . CssHighlightRules , o = e ( "./javascript_highlight_rules" ) . JavaScriptHighlightRules , u = e ( "./xml_highlight_rules" ) . XmlHighlightRules , a = i . createMap ( { a : "anchor" , button : "form" , form : "form" , img : "image" , input : "form" , label : "form" , option : "form" , script : "script" , select : "form" , textarea : "form" , style : "style" , table : "table" , tbody : "table" , td : "table" , tfoot : "table" , th : "table" , tr : "table" } ) , f = function ( ) { u . call ( this ) , this . addRules ( { attributes : [ { include : "tag_whitespace" } , { token : "entity.other.attribute-name.xml" , regex : "[-_a-zA-Z0-9:.]+" } , { token : "keyword.operator.attribute-equals.xml" , regex : "=" , push : [ { include : "tag_whitespace" } , { token : "string.unquoted.attribute-value.html" , regex : "[^<>='\"`\\s]+" , next : "pop" } , { token : "empty" , regex : "" , next : "pop" } ] } , { include : "attribute_value" } ] , tag : [ { token : function ( e , t ) { var n = a [ t ] ; return [ "meta.tag.punctuation." + ( "<" == e ? "" : "end-" ) + "tag-open.xml" , "meta.tag" + ( n ? "." + n : "" ) + ".tag-name.xml" ] } , regex : "(</?)([-_a-zA-Z0-9:.]+)" , next : "tag_stuff" } ] , tag _stuff : [ { include : "attributes" } , { token : "meta.tag.punctuation.tag-close.xml" , regex : "/?>" , next : "start" } ] } ) , this . embedTagRules ( s , "css-" , "style" ) , this . embedTagRules ( new o ( { jsx : ! 1 } ) . getRules ( ) , "js-" , "script" ) , this . constructor === f && this . normalizeRules ( ) } ; r . inherits ( f , u ) , t . HtmlHighlightRules = f } ) , ace . define ( "ace/mode/folding/mixed" , [ "require" , "exports" , "module" , "ace/lib/oop" , "ace/mode/folding/fold_mode" ] , function ( e , t , n ) { "use strict" ; var r = e ( "../../lib/oop" ) , i = e ( "./fold_mode" ) . FoldMode , s = t . FoldMode = function ( e , t ) { this . defaultMode = e , this . subModes = t } ; r . inherits ( s , i ) , function ( ) { this . $getMode = function ( e ) { "string" != typeof e && ( e = e [ 0 ] ) ; for ( var t in this . subModes ) if ( 0 === e . indexOf ( t ) ) return this . subModes [ t ] ; return null } , this . $tryMode = function ( e , t , n , r ) { var i = this . $getMode ( e ) ; return i ? i . getFoldWidget ( t , n , r ) : "" } , this . getFoldWidget = function ( e , t , n ) { return this . $tryMode ( e . getState ( n - 1 ) , e , t , n ) || this . $tryMode ( e . getState ( n ) , e , t , n ) || this . defaultMode . getFoldWidget ( e , t , n ) } , this . getFoldWidgetRange = function ( e , t , n ) { var r = this . $getMode ( e . getState ( n - 1 ) ) ; return r && r . getFoldWidget ( e , t , n ) || ( r = this . $getMode ( e . getState ( n ) ) ) , r && r . getFoldWidget ( e , t , n ) || ( r = this . defaul
if ( ( c = f == c ) && ! a ) u || ( u = new Gt ) , n = o || Gi ( t ) ? ee ( t , n , Tn , r , e , u ) : ue ( t , n , f , Tn , r , e , u ) ; else { if ( ! ( 2 & e ) && ( o = a && Gu . call ( t , "__wrapped__" ) , f = i && Gu . call ( n , "__wrapped__" ) , o || f ) ) { t = o ? t . value ( ) : t , n = f ? n . value ( ) : n , u || ( u = new Gt ) , n = Tn ( t , n , r , e , u ) ; break t } if ( c ) n : if ( u || ( u = new Gt ) , o = 2 & e , f = bu ( t ) , i = f . length , c = bu ( n ) . length , i == c || o ) { for ( a = i ; a -- ; ) { var l = f [ a ] ; if ( ! ( o ? l in n : Gu . call ( n , l ) ) ) { n = ! 1 ; break n } } if ( ( c = u . get ( t ) ) && u . get ( n ) ) n = c == n ; else { c = ! 0 , u . set ( t , n ) , u . set ( n , t ) ; for ( var s = o ; ++ a < i ; ) { var l = f [ a ] , h = t [ l ] , p = n [ l ] ; if ( r ) var _ = o ? r ( p , h , l , n , t , u ) : r ( h , p , l , t , n , u ) ; if ( _ === P ? h !== p && ! Tn ( h , p , r , e , u ) : ! _ ) { c = ! 1 ; break } s || ( s = "constructor" == l ) } c && ! s && ( r = t . constructor , e = n . constructor , r != e && "constructor" in t && "constructor" in n && ! ( "function" == typeof r && r instanceof r && "function" == typeof e && e instanceof e ) && ( c = ! 1 ) ) , u . delete ( t ) , u . delete ( n ) , n = c } } else n = ! 1 ; else n = ! 1 } } return n } function $n ( t ) { return ou ( t ) && "[object Map]" == St ( t ) } function Fn ( t , n , r , e ) { var u = r . length , o = u , i = ! e ; if ( null == t ) return ! o ; for ( t = Tu ( t ) ; u -- ; ) { var f = r [ u ] ; if ( i && f [ 2 ] ? f [ 1 ] !== t [ f [ 0 ] ] : ! ( f [ 0 ] in t ) ) return ! 1 } for ( ; ++ u < o ; ) { var f = r [ u ] , c = f [ 0 ] , a = t [ c ] , l = f [ 1 ] ; if ( i && f [ 2 ] ) { if ( a === P && ! ( c in t ) ) return ! 1 } else { if ( f = new Gt , e ) var s = e ( a , l , c , t , n , f ) ; if ( s === P ? ! Tn ( l , a , e , 3 , f ) : ! s ) return ! 1 } } return ! 0 } function Nn ( t ) { return ! ( ! uu ( t ) || Vu && Vu in t ) && ( nu ( t ) || C ( t ) ? Xu : wt ) . test ( ke ( t ) ) } function Pn ( t ) { return uu ( t ) && "[object RegExp]" == Hu . call ( t ) } function Zn ( t ) { return ou ( t ) && "[object Set]" == St ( t ) } function qn ( t ) { return ou ( t ) && eu ( t . length ) && ! ! Dt [ Hu . call ( t ) ] } function Vn ( t ) { return "function" == typeof t ? t : null == t ? Ou : "object" == typeof t ? Fi ( t ) ? Qn ( t [ 0 ] , t [ 1 ] ) : Hn ( t ) : Wu ( t ) } function Kn ( t ) { if ( ! xe ( t ) ) return bo ( t ) ; var n , r = [ ] ; for ( n in Tu ( t ) ) Gu . call ( t , n ) && "constructor" != n && r . push ( n ) ; return r } function Gn ( t ) { if ( ! uu ( t ) ) { var n = [ ] ; if ( null != t ) for ( var r in Tu ( t ) ) n . push ( r ) ; return n } r = xe ( t ) ; var e = [ ] ; for ( n in t ) ( "constructor" != n || ! r && Gu . call ( t , n ) ) && e . push ( n ) ; return e } function Jn ( t , n ) { return t < n } function Yn ( t , n ) { var r = - 1 , e = Qe ( t ) ? Cu ( t . length ) : [ ] ; return Po ( t , function ( t , u , o ) { e [ ++ r ] = n ( t , u , o ) } ) , e } function Hn ( t ) { var n = ae ( t ) ; return 1 == n . length && n [ 0 ] [ 2 ] ? je ( n [ 0 ] [ 0 ] , n [ 0 ] [ 1 ] ) : function ( r ) { return r === t || Fn ( r , t , n ) } } function Qn ( t , n ) { return ye ( t ) && n === n && ! uu ( n ) ? je ( Ae ( t ) , n ) : function ( r ) { var e = du ( r , t ) ; return e === P && e === n ? yu ( r , t ) : Tn ( n , e , P , 3 ) } } function Xn ( t , n , r , e , o ) { if ( t !== n ) { if ( ! Fi ( n ) && ! Gi ( n ) ) var i = Gn ( n ) ; u ( i || n , function ( u , f ) { if ( i && ( f = u , u = n [ f ] ) , uu ( u ) ) { o || ( o = new Gt ) ; var c = f , a = o , l = t [ c ] , s = n [ c ] , h = a . get ( s ) ; if ( h ) an ( t , c , h ) ; else { var h = e ? e ( l , s , c + "" , t , n , a ) : P , p = h === P ; p && ( h = s , Fi ( s ) || Gi ( s ) ? Fi ( l ) ? h = l : Xe ( l ) ? h = Wr ( l ) : ( p = ! 1 , h = gn ( s , ! 0 ) ) : fu ( s ) || He ( s ) ? He ( l ) ? h = vu ( l ) : ! uu ( l ) || r && nu ( l ) ? ( p = ! 1 , h = gn ( s , ! 0 ) ) : h = l : p = ! 1 ) , p && ( a . set ( s , h ) , Xn ( h , s , r , e , a ) , a . delete ( s ) ) , an ( t , c , h ) } } else c = e ? e ( t [ f ] , u , f + "" , t , n , o ) : P , c === P && ( c = u ) , an ( t , f , c ) } ) } } function tr ( t , n ) { var r = t . length ; if ( r ) return n += 0 > n ? r : 0 , ge ( n , r ) ? t [ n ] : P } function nr ( t , n , r ) { var e = - 1 ; return n = l ( n . length ? n : [ Ou ] , S ( fe ( ) ) ) , t = Yn ( t , function ( t ) { return { a : l ( n , function ( n ) { return n ( t ) } ) , b : ++ e , c : t } } ) , A ( t , function ( t , n ) { var e ; t : { e = - 1 ; for ( var u = t . a , o = n . a , i = u . length , f = r . length ; ++ e < i ; ) { var c = Sr ( u [ e ] , o [ e ] ) ; if ( c ) { e = e >= f ? c : c * ( "desc" == r [ e ] ? - 1 : 1 ) ; break t } } e = t . b - n . b } return e } ) } function rr ( t , n ) { return t = Tu ( t ) , er ( t , n , function ( n , r ) { return r in t } ) } function er ( t , n , r ) { for ( var e = - 1 , u = n . length , o = { } ; ++ e < u ; ) { var i = n [ e ] , f = t [ i ] ; r ( f , i ) && ( o [ i ] = f ) } return o } function ur ( t ) { return function ( n ) { return In ( n , t ) } } function or ( t , n , r , e ) { var u = e ? y : d , o = - 1 , i = n . length , f = t ; for ( t === n && ( n = Wr ( n ) ) , r && ( f = l ( t , S ( r ) ) ) ; ++ o < i ; ) for ( var c = 0 , a = n [ o ] , a = r ? r ( a ) : a ; - 1 < ( c = u ( f , a , c , e ) ) ; ) f !== t && fo . call ( f , c , 1 ) , fo . call ( t , c , 1 ) ; return t } function ir ( t , n ) { for ( var r = t ? n . length : 0 , e = r - 1 ; r -- ; ) { var u = n [ r ] ; if ( r == e || u !== o ) { var o = u ; if ( ge ( u ) ) fo . call ( t , u , 1 ) ; else if ( ye ( u , t ) ) delete t [ Ae ( u ) ] ; else { var u = Ar ( u ) , i = me ( t , u ) ; null != i && delete i [ Ae ( We ( u ) ) ] } } } } function fr ( t , n ) { return t + po ( mo ( ) * ( n - t + 1 ) ) } function cr ( t , n ) { var r = "" ; if ( ! t || 1 > n || 9007199254740991 < n ) return r ; do n % 2 && ( r += t ) , ( n = po ( n / 2 ) ) && ( t += t ) ; while ( n ) ; return r } function ar ( t , n ) { return n = xo ( n === P ? t . length - 1 : n , 0 ) , function ( ) { for ( var e = arguments , u = - 1 , o = xo ( e . length - n , 0 ) , i = Cu ( o ) ; ++ u < o ; ) i [ u ] = e [ n + u ] ; for ( u = - 1 , o = Cu ( n + 1 ) ; ++ u < n ; ) o [ u ] = e [ u ] ; return o [ n ] = i , r ( t , this , o ) } } function lr ( t , n , r , e ) { if ( ! uu ( t ) ) return t ; n = ye ( n , t ) ? [ n ] : Ar ( n ) ; for ( var u = - 1 , o = n . length , i = o - 1 , f = t ; null
return function ( r ) { return Mn ( r , t , n ) } } ) , Of = ar ( function ( t , n ) { return function ( r ) { return Mn ( t , r , n ) } } ) , Sf = Gr ( l ) , If = Gr ( i ) , Rf = Gr ( _ ) , Wf = Hr ( ) , Bf = Hr ( ! 0 ) , Lf = Kr ( function ( t , n ) { return t + n } , 0 ) , Cf = te ( "ceil" ) , Uf = Kr ( function ( t , n ) { return t / n } , 1 ) , Mf = te ( "floor" ) , zf = Kr ( function ( t , n ) { return t * n } , 1 ) , Df = te ( "round" ) , Tf = Kr ( function ( t , n ) { return t - n } , 0 ) ; return It . after = function ( t , n ) { if ( "function" != typeof n ) throw new Nu ( "Expected a function" ) ; return t = hu ( t ) , function ( ) { if ( 1 > -- t ) return n . apply ( this , arguments ) } } , It . ary = Pe , It . assign = Hi , It . assignIn = Qi , It . assignInWith = Xi , It . assignWith = tf , It . at = nf , It . before = Ze , It . bind = Wi , It . bindAll = mf , It . bindKey = Bi , It . castArray = function ( ) { if ( ! arguments . length ) return [ ] ; var t = arguments [ 0 ] ; return Fi ( t ) ? t : [ t ] } , It . chain = Me , It . chunk = function ( t , n , r ) { if ( n = ( r ? de ( t , n , r ) : n === P ) ? 1 : xo ( hu ( n ) , 0 ) , r = t ? t . length : 0 , ! r || 1 > n ) return [ ] ; for ( var e = 0 , u = 0 , o = Cu ( ho ( r / n ) ) ; e < r ; ) o [ u ++ ] = sr ( t , e , e += n ) ; return o } , It . compact = function ( t ) { for ( var n = - 1 , r = t ? t . length : 0 , e = 0 , u = [ ] ; ++ n < r ; ) { var o = t [ n ] ; o && ( u [ e ++ ] = o ) } return u } , It . concat = function ( ) { for ( var t = arguments . length , n = Cu ( t ? t - 1 : 0 ) , r = arguments [ 0 ] , e = t ; e -- ; ) n [ e - 1 ] = arguments [ e ] ; return t ? s ( Fi ( r ) ? Wr ( r ) : [ r ] , kn ( n , 1 ) ) : [ ] } , It . cond = function ( t ) { var n = t ? t . length : 0 , e = fe ( ) ; return t = n ? l ( t , function ( t ) { if ( "function" != typeof t [ 1 ] ) throw new Nu ( "Expected a function" ) ; return [ e ( t [ 0 ] ) , t [ 1 ] ] } ) : [ ] , ar ( function ( e ) { for ( var u = - 1 ; ++ u < n ; ) { var o = t [ u ] ; if ( r ( o [ 0 ] , this , e ) ) return r ( o [ 1 ] , this , e ) } } ) } , It . conforms = function ( t ) { return dn ( gn ( t , ! 0 ) ) } , It . constant = Eu , It . countBy = wi , It . create = function ( t , n ) { var r = bn ( t ) ; return n ? pn ( r , n ) : r } , It . curry = qe , It . curryRight = Ve , It . debounce = Ke , It . defaults = rf , It . defaultsDeep = ef , It . defer = Li , It . delay = Ci , It . difference = ui , It . differenceBy = oi , It . differenceWith = ii , It . drop = function ( t , n , r ) { var e = t ? t . length : 0 ; return e ? ( n = r || n === P ? 1 : hu ( n ) , sr ( t , 0 > n ? 0 : n , e ) ) : [ ] } , It . dropRight = function ( t , n , r ) { var e = t ? t . length : 0 ; return e ? ( n = r || n === P ? 1 : hu ( n ) , n = e - n , sr ( t , 0 , 0 > n ? 0 : n ) ) : [ ] } , It . dropRightWhile = function ( t , n ) { return t && t . length ? br ( t , fe ( n , 3 ) , ! 0 , ! 0 ) : [ ] } , It . dropWhile = function ( t , n ) { return t && t . length ? br ( t , fe ( n , 3 ) , ! 0 ) : [ ] } , It . fill = function ( t , n , r , e ) { var u = t ? t . length : 0 ; if ( ! u ) return [ ] ; for ( r && "number" != typeof r && de ( t , n , r ) && ( r = 0 , e = u ) , u = t . length , r = hu ( r ) , 0 > r && ( r = - r > u ? 0 : u + r ) , e = e === P || e > u ? u : hu ( e ) , 0 > e && ( e += u ) , e = r > e ? 0 : pu ( e ) ; r < e ; ) t [ r ++ ] = n ; return t } , It . filter = function ( t , n ) { return ( Fi ( t ) ? f : An ) ( t , fe ( n , 3 ) ) } , It . flatMap = function ( t , n ) { return kn ( Fe ( t , n ) , 1 ) } , It . flatMapDeep = function ( t , n ) { return kn ( Fe ( t , n ) , Z ) } , It . flatMapDepth = function ( t , n , r ) { return r = r === P ? 1 : hu ( r ) , kn ( Fe ( t , n ) , r ) } , It . flatten = function ( t ) { return t && t . length ? kn ( t , 1 ) : [ ] } , It . flattenDeep = function ( t ) { return t && t . length ? kn ( t , Z ) : [ ] } , It . flattenDepth = function ( t , n ) { return t && t . length ? ( n = n === P ? 1 : hu ( n ) , kn ( t , n ) ) : [ ] } , It . flip = function ( t ) { return re ( t , 512 ) } , It . flow = Af , It . flowRight = kf , It . fromPairs = function ( t ) { for ( var n = - 1 , r = t ? t . length : 0 , e = { } ; ++ n < r ; ) { var u = t [ n ] ; e [ u [ 0 ] ] = u [ 1 ] } return e } , It . functions = function ( t ) { return null == t ? [ ] : Sn ( t , bu ( t ) ) } , It . functionsIn = function ( t ) { return null == t ? [ ] : Sn ( t , xu ( t ) ) } , It . groupBy = ki , It . initial = function ( t ) { return t && t . length ? sr ( t , 0 , - 1 ) : [ ] } , It . intersection = fi , It . intersectionBy = ci , It . intersectionWith = ai , It . invert = uf , It . invertBy = of , It . invokeMap = Ei , It . iteratee = Su , It . keyBy = Oi , It . keys = bu , It . keysIn = xu , It . map = Fe , It . mapKeys = function ( t , n ) { var r = { } ; return n = fe ( n , 3 ) , En ( t , function ( t , e , u ) { r [ n ( t , e , u ) ] = t } ) , r } , It . mapValues = function ( t , n ) { var r = { } ; return n = fe ( n , 3 ) , En ( t , function ( t , e , u ) { r [ e ] = n ( t , e , u ) } ) , r } , It . matches = function ( t ) { return Hn ( gn ( t , ! 0 ) ) } , It . matchesProperty = function ( t , n ) { return Qn ( t , gn ( n , ! 0 ) ) } , It . memoize = Ge , It . merge = cf , It . mergeWith = af , It . method = Ef , It . methodOf = Of , It . mixin = Iu , It . negate = Je , It . nthArg = function ( t ) { return t = hu ( t ) , ar ( function ( n ) { return tr ( n , t ) } ) } , It . omit = lf , It . omitBy = function ( t , n ) { return ju ( t , Je ( fe ( n ) ) ) } , It . once = function ( t ) { return Ze ( 2 , t ) } , It . orderBy = function ( t , n , r , e ) { return null == t ? [ ] : ( Fi ( n ) || ( n = null == n ? [ ] : [ n ] ) , r = e ? P : r , Fi ( r ) || ( r = null == r ? [ ] : [ r ] ) , nr ( t , n , r ) ) } , It . over = Sf , It . overArgs = Ui , It . overEvery = If , It . overSome = Rf , It . partial = Mi , It . partialRight = zi , It . partition = Si , It . pick = sf , It . pickBy = ju , It . property = Wu , It . propertyOf = function ( t ) { return function ( n ) { return null == t ? P : In ( t , n ) } } , It . pull = li , It . pullAll = Be , It . pullAllBy = function ( t