function simpleUpload ( e , l , n ) { function t ( ) { if ( "object" == typeof n && null !== n ) { if ( "boolean" == typeof n . forceIframe && ( U = n . forceIframe ) , "function" == typeof n . init && ( I = n . init ) , "function" == typeof n . start && ( L = n . start ) , "function" == typeof n . progress && ( q = n . progress ) , "function" == typeof n . success && ( W = n . success ) , "function" == typeof n . error && ( _ = n . error ) , "function" == typeof n . cancel && ( M = n . cancel ) , "function" == typeof n . complete && ( D = n . complete ) , "function" == typeof n . finish && ( N = n . finish ) , "string" == typeof n . hashWorker && "" != n . hashWorker && ( S = n . hashWorker ) , "function" == typeof n . hashComplete && ( z = n . hashComplete ) , "object" == typeof n . data && null !== n . data ) for ( var e in n . data ) F [ e ] = n . data [ e ] ; if ( "number" == typeof n . limit && y ( n . limit ) && n . limit > 0 && ( w = n . limit ) , "number" == typeof n . maxFileSize && y ( n . maxFileSize ) && n . maxFileSize > 0 && ( x = n . maxFileSize ) , "object" == typeof n . allowedExts && null !== n . allowedExts ) for ( var e in n . allowedExts ) j . push ( n . allowedExts [ e ] ) ; if ( "object" == typeof n . allowedTypes && null !== n . allowedTypes ) for ( var e in n . allowedTypes ) k . push ( n . allowedTypes [ e ] ) ; if ( "string" == typeof n . expect && "" != n . expect ) { var t = n . expect . toLowerCase ( ) , o = [ "auto" , "json" , "xml" , "html" , "script" , "text" ] ; for ( var e in o ) if ( o [ e ] == t ) { E = t ; break } } if ( "object" == typeof n . xhrFields && null !== n . xhrFields ) for ( var e in n . xhrFields ) T [ e ] = n . xhrFields [ e ] } if ( "object" == typeof l && null !== l && l instanceof jQuery ) { if ( ! ( l . length > 0 ) ) return ! 1 ; l = l . get ( 0 ) } if ( ! U && window . File && window . FileReader && window . FileList && window . Blob && ( "object" == typeof n && null !== n && "object" == typeof n . files && null !== n . files ? b = n . files : "object" == typeof l && null !== l && "object" == typeof l . files && null !== l . files && ( b = l . files ) ) , ( "object" != typeof l || null === l ) && null == b ) return ! 1 ; "object" == typeof n && null !== n && "string" == typeof n . name && "" != n . name ? C = n . name . replace ( /\[\s*\]/g , "[0]" ) : "object" == typeof l && null !== l && "string" == typeof l . name && "" != l . name && ( C = l . name . replace ( /\[\s*\]/g , "[0]" ) ) ; var r = 0 ; if ( null != b ? b . length > 0 && ( r = b . length > 1 && window . FormData && $ . ajaxSettings . xhr ( ) . upload ? w > 0 && b . length > w ? w : b . length : 1 ) : "" != l . value && ( r = 1 ) , r > 0 ) { if ( "object" == typeof l && null !== l ) { var i = $ ( l ) ; J = $ ( "<form>" ) . hide ( ) . attr ( "enctype" , "multipart/form-data" ) . attr ( "method" , "post" ) . appendTo ( "body" ) , i . after ( i . clone ( ! 0 ) . val ( "" ) ) . removeAttr ( "onchange" ) . off ( ) . removeAttr ( "id" ) . attr ( "name" , C ) . appendTo ( J ) } for ( var s = 0 ; r > s ; s ++ ) ! function ( e ) { R [ e ] = { state : 0 , hashWorker : null , xhr : null , iframe : null } , A [ e ] = { upload : { index : e , state : "init" , file : null != b ? b [ e ] : { name : l . value . split ( /(\\|\/)/g ) . pop ( ) } , cancel : function ( ) { if ( 0 == u ( e ) ) d ( e , 4 ) ; else { if ( 1 != u ( e ) ) return ! 1 ; d ( e , 4 ) , null != R [ e ] . hashWorker && ( R [ e ] . hashWorker . terminate ( ) , R [ e ] . hashWorker = null ) , null != R [ e ] . xhr && ( R [ e ] . xhr . abort ( ) , R [ e ] . xhr = null ) , null != R [ e ] . iframe && ( $ ( "iframe[name=simpleUpload_iframe_" + R [ e ] . iframe + "]" ) . attr ( "src" , "javascript:false;" ) , simpleUpload . dequeueIframe ( R [ e ] . iframe ) , R [ e ] . iframe = null ) , P ( e ) } return ! 0 } } } } ( s ) ; var p = H ( r ) ; if ( p !== ! 1 ) { var f = r ; if ( "number" == typeof p && y ( p ) && p >= 0 && r > p ) { f = p ; for ( var m = f ; r > m ; m ++ ) d ( m , 4 ) } for ( var c = [ ] , v = 0 ; f > v ; v ++ ) X ( v , A [ v ] . upload . file ) !== ! 1 && ( c [ c . length ] = v ) ; c . length > 0 ? ( B = c . length , simpleUpload . queueUpload ( c , function ( e ) { a ( e ) } ) , simpleUpload . uploadNext ( ) ) : Z ( ) } else { for ( var m in A ) d ( m , 4 ) ; Z ( ) } } } function a ( e ) { if ( 1 == u ( e ) ) { var n = null ; if ( null != b ) { if ( void 0 == b [ e ] || null == b [ e ] ) return void K ( e , { name : "InternalError" , message : "There was an error uploading the file" } ) ; n = b [ e ] } else if ( "" == l . value ) return void K ( e , { name : "InternalError" , message : "There was an error uploading the file" } ) ; return j . length > 0 && ! c ( j , n ) ? void K ( e , { name : "InvalidFileExtensionError" , message : "That file format is not allowed" } ) : k . length > 0 && ! v ( k , n ) ? void K ( e , { name : "InvalidFileTypeError" , message : "That file format is not allowed" } ) : x > 0 && ! h ( x , n ) ? void K ( e , { name : "MaxFileSizeError" , message : "That file is too big" } ) : void ( null != S && null != z ? o ( e ) : i ( e ) ) } } function o ( e ) { if ( null != b && void 0 != b [ e ] && null != b [ e ] && window . Worker ) { var l = b [ e ] ; if ( void 0 != l . size && null != l . size && "" != l . size && y ( l . size ) && ( l . slice || l . webkitSlice || l . mozSlice ) ) try { var n = new Worker ( S ) ; n . addEventListener ( "error" , function ( ) { n . terminate ( ) , R [ e ] . hashWorker = null , i ( e ) } , ! 1 ) , n . addEventListener ( "message" , function ( l ) { if ( l . data . result ) { var t = l . data . result ; n . terminate ( ) , R [ e ] . h
} ) } ) . call ( this ) } ) . call ( e , r ( 12 ) ( t ) , function ( ) { return this } ( ) ) } , function ( t , e ) { t . exports = function ( t ) { return t . webpackPolyfill || ( t . deprecate = function ( ) { } , t . paths = [ ] , t . children = [ ] , t . webpackPolyfill = 1 ) , t } } , function ( t , e ) { function r ( t ) { if ( t ) return n ( t ) } function n ( t ) { for ( var e in r . prototype ) t [ e ] = r . prototype [ e ] ; return t } t . exports = r , r . prototype . on = r . prototype . addEventListener = function ( t , e ) { return this . _callbacks = this . _callbacks || { } , ( this . _callbacks [ t ] = this . _callbacks [ t ] || [ ] ) . push ( e ) , this } , r . prototype . once = function ( t , e ) { function r ( ) { n . off ( t , r ) , e . apply ( this , arguments ) } var n = this ; return this . _callbacks = this . _callbacks || { } , r . fn = e , this . on ( t , r ) , this } , r . prototype . off = r . prototype . removeListener = r . prototype . removeAllListeners = r . prototype . removeEventListener = function ( t , e ) { if ( this . _callbacks = this . _callbacks || { } , 0 == arguments . length ) return this . _callbacks = { } , this ; var r = this . _callbacks [ t ] ; if ( ! r ) return this ; if ( 1 == arguments . length ) return delete this . _callbacks [ t ] , this ; for ( var n , o = 0 ; o < r . length ; o ++ ) if ( n = r [ o ] , n === e || n . fn === e ) { r . splice ( o , 1 ) ; break } return this } , r . prototype . emit = function ( t ) { this . _callbacks = this . _callbacks || { } ; var e = [ ] . slice . call ( arguments , 1 ) , r = this . _callbacks [ t ] ; if ( r ) { r = r . slice ( 0 ) ; for ( var n = 0 , o = r . length ; n < o ; ++ n ) r [ n ] . apply ( this , e ) } return this } , r . prototype . listeners = function ( t ) { return this . _callbacks = this . _callbacks || { } , this . _callbacks [ t ] || [ ] } , r . prototype . hasListeners = function ( t ) { return ! ! this . listeners ( t ) . length } } , function ( t , e , r ) { ( function ( t ) { var n = r ( 15 ) , o = r ( 16 ) ; e . deconstructPacket = function ( t ) { function e ( t ) { if ( ! t ) return t ; if ( o ( t ) ) { var i = { _placeholder : ! 0 , num : r . length } ; return r . push ( t ) , i } if ( n ( t ) ) { for ( var s = new Array ( t . length ) , a = 0 ; a < t . length ; a ++ ) s [ a ] = e ( t [ a ] ) ; return s } if ( "object" == typeof t && ! ( t instanceof Date ) ) { var s = { } ; for ( var c in t ) s [ c ] = e ( t [ c ] ) ; return s } return t } var r = [ ] , i = t . data , s = t ; return s . data = e ( i ) , s . attachments = r . length , { packet : s , buffers : r } } , e . reconstructPacket = function ( t , e ) { function r ( t ) { if ( t && t . _placeholder ) { var o = e [ t . num ] ; return o } if ( n ( t ) ) { for ( var i = 0 ; i < t . length ; i ++ ) t [ i ] = r ( t [ i ] ) ; return t } if ( t && "object" == typeof t ) { for ( var s in t ) t [ s ] = r ( t [ s ] ) ; return t } return t } return t . data = r ( t . data ) , t . attachments = void 0 , t } , e . removeBlobs = function ( e , r ) { function i ( e , c , u ) { if ( ! e ) return e ; if ( t . Blob && e instanceof Blob || t . File && e instanceof File ) { s ++ ; var h = new FileReader ; h . onload = function ( ) { u ? u [ c ] = this . result : a = this . result , -- s || r ( a ) } , h . readAsArrayBuffer ( e ) } else if ( n ( e ) ) for ( var p = 0 ; p < e . length ; p ++ ) i ( e [ p ] , p , e ) ; else if ( e && "object" == typeof e && ! o ( e ) ) for ( var f in e ) i ( e [ f ] , f , e ) } var s = 0 , a = e ; i ( a ) , s || r ( a ) } } ) . call ( e , function ( ) { return this } ( ) ) } , function ( t , e ) { t . exports = Array . isArray || function ( t ) { return "[object Array]" == Object . prototype . toString . call ( t ) } } , function ( t , e ) { ( function ( e ) { function r ( t ) { return e . Buffer && e . Buffer . isBuffer ( t ) || e . ArrayBuffer && t instanceof ArrayBuffer } t . exports = r } ) . call ( e , function ( ) { return this } ( ) ) } , function ( t , e , r ) { "use strict" ; function n ( t , e ) { return this instanceof n ? ( t && "object" === ( "undefined" == typeof t ? "undefined" : o ( t ) ) && ( e = t , t = void 0 ) , e = e || { } , e . path = e . path || "/socket.io" , this . nsps = { } , this . subs = [ ] , this . opts = e , this . reconnection ( e . reconnection !== ! 1 ) , this . reconnectionAttempts ( e . reconnectionAttempts || 1 / 0 ) , this . reconnectionDelay ( e . reconnectionDelay || 1e3 ) , this . reconnectionDelayMax ( e . reconnectionDelayMax || 5e3 ) , this . randomizationFactor ( e . randomizationFactor || . 5 ) , this . backoff = new l ( { min : this . reconnectionDelay ( ) , max : this . reconnectionDelayMax ( ) , jitter : this . randomizationFactor ( ) } ) , this . timeout ( null == e . timeout ? 2e4 : e . timeout ) , this . readyState = "closed" , this . uri = t , this . connecting = [ ] , this . lastPing = null , this . encoding = ! 1 , this . packetBuffer = [ ] , this . encoder = new c . Encoder , this . decoder = new c . Decoder , this . autoConnect = e . autoConnect !== ! 1 , void ( this . autoConnect && this . open ( ) ) ) : new n ( t , e ) } var o = "function" == typeof Symbol && "symbol" == typeof Symbol . iterator ? function ( t ) { return typeof t } : function ( t ) { return t && "function" == typeof Symbol && t . constructor === Symbol && t !== Symbol . prototype ? "symbol" : typeof t } , i = r ( 18 ) , s = r ( 44 ) , a = r ( 35 ) , c = r ( 7 ) , u = r ( 46 ) , h = r ( 47 ) , p = r ( 3 ) ( "socket.io-client:manager" ) , f = r ( 42 ) , l = r ( 48 ) , d = Object . prototype . hasOwnProperty ; t . exports = n , n . prototype . emitAll = function ( ) { this . emit . app
if ( a [ s . length ] = 255 , k ) { var c = new k ( [ e . buffer , a . buffer , t ] ) ; r ( null , c ) } } ) } c ( t , n , function ( t , e ) { return r ( new k ( e ) ) } ) } , e . decodePayloadAsBinary = function ( t , r , n ) { "function" == typeof r && ( n = r , r = null ) ; for ( var o = t , i = [ ] , s = ! 1 ; o . byteLength > 0 ; ) { for ( var a = new Uint8Array ( o ) , c = 0 === a [ 0 ] , u = "" , h = 1 ; 255 != a [ h ] ; h ++ ) { if ( u . length > 310 ) { s = ! 0 ; break } u += a [ h ] } if ( s ) return n ( w , 0 , 1 ) ; o = f ( o , 2 + u . length ) , u = parseInt ( u ) ; var p = f ( o , 0 , u ) ; if ( c ) try { p = String . fromCharCode . apply ( null , new Uint8Array ( p ) ) } catch ( t ) { var l = new Uint8Array ( p ) ; p = "" ; for ( var h = 0 ; h < l . length ; h ++ ) p += String . fromCharCode ( l [ h ] ) } i . push ( p ) , o = f ( o , u ) } var d = i . length ; i . forEach ( function ( t , o ) { n ( e . decodePacket ( t , r , ! 0 ) , o , d ) } ) } } ) . call ( e , function ( ) { return this } ( ) ) } , function ( t , e ) { t . exports = Object . keys || function ( t ) { var e = [ ] , r = Object . prototype . hasOwnProperty ; for ( var n in t ) r . call ( t , n ) && e . push ( n ) ; return e } } , function ( t , e , r ) { ( function ( e ) { function n ( t ) { function r ( t ) { if ( ! t ) return ! 1 ; if ( e . Buffer && e . Buffer . isBuffer && e . Buffer . isBuffer ( t ) || e . ArrayBuffer && t instanceof ArrayBuffer || e . Blob && t instanceof Blob || e . File && t instanceof File ) return ! 0 ; if ( o ( t ) ) { for ( var n = 0 ; n < t . length ; n ++ ) if ( r ( t [ n ] ) ) return ! 0 } else if ( t && "object" == typeof t ) { t . toJSON && "function" == typeof t . toJSON && ( t = t . toJSON ( ) ) ; for ( var i in t ) if ( Object . prototype . hasOwnProperty . call ( t , i ) && r ( t [ i ] ) ) return ! 0 } return ! 1 } return r ( t ) } var o = r ( 15 ) ; t . exports = n } ) . call ( e , function ( ) { return this } ( ) ) } , function ( t , e ) { t . exports = function ( t , e , r ) { var n = t . byteLength ; if ( e = e || 0 , r = r || n , t . slice ) return t . slice ( e , r ) ; if ( e < 0 && ( e += n ) , r < 0 && ( r += n ) , r > n && ( r = n ) , e >= n || e >= r || 0 === n ) return new ArrayBuffer ( 0 ) ; for ( var o = new Uint8Array ( t ) , i = new Uint8Array ( r - e ) , s = e , a = 0 ; s < r ; s ++ , a ++ ) i [ a ] = o [ s ] ; return i . buffer } } , function ( t , e ) { function r ( t , e , r ) { function o ( t , n ) { if ( o . count <= 0 ) throw new Error ( "after called too many times" ) ; -- o . count , t ? ( i = ! 0 , e ( t ) , e = r ) : 0 !== o . count || i || e ( null , n ) } var i = ! 1 ; return r = r || n , o . count = t , 0 === t ? e ( ) : o } function n ( ) { } t . exports = r } , function ( t , e , r ) { var n ; ( function ( t , o ) { ! function ( i ) { function s ( t ) { for ( var e , r , n = [ ] , o = 0 , i = t . length ; o < i ; ) e = t . charCodeAt ( o ++ ) , e >= 55296 && e <= 56319 && o < i ? ( r = t . charCodeAt ( o ++ ) , 56320 == ( 64512 & r ) ? n . push ( ( ( 1023 & e ) << 10 ) + ( 1023 & r ) + 65536 ) : ( n . push ( e ) , o -- ) ) : n . push ( e ) ; return n } function a ( t ) { for ( var e , r = t . length , n = - 1 , o = "" ; ++ n < r ; ) e = t [ n ] , e > 65535 && ( e -= 65536 , o += b ( e >>> 10 & 1023 | 55296 ) , e = 56320 | 1023 & e ) , o += b ( e ) ; return o } function c ( t , e ) { return b ( t >> e & 63 | 128 ) } function u ( t ) { if ( 0 == ( 4294967168 & t ) ) return b ( t ) ; var e = "" ; return 0 == ( 4294965248 & t ) ? e = b ( t >> 6 & 31 | 192 ) : 0 == ( 4294901760 & t ) ? ( e = b ( t >> 12 & 15 | 224 ) , e += c ( t , 6 ) ) : 0 == ( 4292870144 & t ) && ( e = b ( t >> 18 & 7 | 240 ) , e += c ( t , 12 ) , e += c ( t , 6 ) ) , e += b ( 63 & t | 128 ) } function h ( t ) { for ( var e , r = s ( t ) , n = r . length , o = - 1 , i = "" ; ++ o < n ; ) e = r [ o ] , i += u ( e ) ; return i } function p ( ) { if ( v >= m ) throw Error ( "Invalid byte index" ) ; var t = 255 & g [ v ] ; if ( v ++ , 128 == ( 192 & t ) ) return 63 & t ; throw Error ( "Invalid continuation byte" ) } function f ( ) { var t , e , r , n , o ; if ( v > m ) throw Error ( "Invalid byte index" ) ; if ( v == m ) return ! 1 ; if ( t = 255 & g [ v ] , v ++ , 0 == ( 128 & t ) ) return t ; if ( 192 == ( 224 & t ) ) { var e = p ( ) ; if ( o = ( 31 & t ) << 6 | e , o >= 128 ) return o ; throw Error ( "Invalid continuation byte" ) } if ( 224 == ( 240 & t ) ) { if ( e = p ( ) , r = p ( ) , o = ( 15 & t ) << 12 | e << 6 | r , o >= 2048 ) return o ; throw Error ( "Invalid continuation byte" ) } if ( 240 == ( 248 & t ) && ( e = p ( ) , r = p ( ) , n = p ( ) , o = ( 15 & t ) << 18 | e << 12 | r << 6 | n , o >= 65536 && o <= 1114111 ) ) return o ; throw Error ( "Invalid WTF-8 detected" ) } function l ( t ) { g = s ( t ) , m = g . length , v = 0 ; for ( var e , r = [ ] ; ( e = f ( ) ) !== ! 1 ; ) r . push ( e ) ; return a ( r ) } var d = "object" == typeof e && e , y = ( "object" == typeof t && t && t . exports == d && t , "object" == typeof o && o ) ; y . global !== y && y . window !== y || ( i = y ) ; var g , m , v , b = String . fromCharCode , w = { version : "1.0.0" , encode : h , decode : l } ; n = function ( ) { return w } . call ( e , r , e , t ) , ! ( void 0 !== n && ( t . exports = n ) ) } ( this ) } ) . call ( e , r ( 12 ) ( t ) , function ( ) { return this } ( ) ) } , function ( t , e ) { ! function ( ) { "use strict" ; for ( var t = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" , r = new Uint8Array ( 256 ) , n = 0 ; n < t . length ; n ++ ) r [ t . charCodeAt ( n ) ] = n ; e . encode = function ( e ) { var r , n = new Uint8Array ( e ) , o = n . length , i = "" ; for ( r = 0 ; r < o ; r += 3 ) i += t [ n [ r ] >> 2 ] , i += t [ ( 3 & n [ r ] ) << 4 | n [ r + 1 ] >> 4 ] , i += t [ ( 15 & n [ r + 1 ] ) << 2 | n [ r + 2 ] >> 6 ] , i += t [ 63 & n [ r + 2 ] ] ; return o % 3 === 2 ? i = i . substring ( 0 , i . length - 1 ) + "=" : o % 3 === 1 && ( i = i . substring ( 0 , i . length - 2 ) + "==" ) , i } , e . decode = function ( t ) { var e , n , o , i , s , a = . 75 * t . l
var b ; for ( b in a ) return ! 1 ; return ! 0 } , type : function ( a ) { return null == a ? a + "" : "object" == typeof a || "function" == typeof a ? j [ k . call ( a ) ] || "object" : typeof a } , globalEval : function ( a ) { p ( a ) } , camelCase : function ( a ) { return a . replace ( t , "ms-" ) . replace ( u , v ) } , nodeName : function ( a , b ) { return a . nodeName && a . nodeName . toLowerCase ( ) === b . toLowerCase ( ) } , each : function ( a , b ) { var c , d = 0 ; if ( w ( a ) ) for ( c = a . length ; d < c && b . call ( a [ d ] , d , a [ d ] ) !== ! 1 ; d ++ ) ; else for ( d in a ) if ( b . call ( a [ d ] , d , a [ d ] ) === ! 1 ) break ; return a } , trim : function ( a ) { return null == a ? "" : ( a + "" ) . replace ( s , "" ) } , makeArray : function ( a , b ) { var c = b || [ ] ; return null != a && ( w ( Object ( a ) ) ? r . merge ( c , "string" == typeof a ? [ a ] : a ) : h . call ( c , a ) ) , c } , inArray : function ( a , b , c ) { return null == b ? - 1 : i . call ( b , a , c ) } , merge : function ( a , b ) { for ( var c = + b . length , d = 0 , e = a . length ; d < c ; d ++ ) a [ e ++ ] = b [ d ] ; return a . length = e , a } , grep : function ( a , b , c ) { for ( var d , e = [ ] , f = 0 , g = a . length , h = ! c ; f < g ; f ++ ) d = ! b ( a [ f ] , f ) , d !== h && e . push ( a [ f ] ) ; return e } , map : function ( a , b , c ) { var d , e , f = 0 , h = [ ] ; if ( w ( a ) ) for ( d = a . length ; f < d ; f ++ ) e = b ( a [ f ] , f , c ) , null != e && h . push ( e ) ; else for ( f in a ) e = b ( a [ f ] , f , c ) , null != e && h . push ( e ) ; return g . apply ( [ ] , h ) } , guid : 1 , proxy : function ( a , b ) { var c , d , e ; if ( "string" == typeof b && ( c = a [ b ] , b = a , a = c ) , r . isFunction ( a ) ) return d = f . call ( arguments , 2 ) , e = function ( ) { return a . apply ( b || this , d . concat ( f . call ( arguments ) ) ) } , e . guid = a . guid = a . guid || r . guid ++ , e } , now : Date . now , support : o } ) , "function" == typeof Symbol && ( r . fn [ Symbol . iterator ] = c [ Symbol . iterator ] ) , r . each ( "Boolean Number String Function Array Date RegExp Object Error Symbol" . split ( " " ) , function ( a , b ) { j [ "[object " + b + "]" ] = b . toLowerCase ( ) } ) ; var x = function ( a ) { function ga ( a , b , d , e ) { var f , h , j , k , l , o , r , s = b && b . ownerDocument , w = b ? b . nodeType : 9 ; if ( d = d || [ ] , "string" != typeof a || ! a || 1 !== w && 9 !== w && 11 !== w ) return d ; if ( ! e && ( ( b ? b . ownerDocument || b : v ) !== n && m ( b ) , b = b || n , p ) ) { if ( 11 !== w && ( l = Z . exec ( a ) ) ) if ( f = l [ 1 ] ) { if ( 9 === w ) { if ( ! ( j = b . getElementById ( f ) ) ) return d ; if ( j . id === f ) return d . push ( j ) , d } else if ( s && ( j = s . getElementById ( f ) ) && t ( b , j ) && j . id === f ) return d . push ( j ) , d } else { if ( l [ 2 ] ) return G . apply ( d , b . getElementsByTagName ( a ) ) , d ; if ( ( f = l [ 3 ] ) && c . getElementsByClassName && b . getElementsByClassName ) return G . apply ( d , b . getElementsByClassName ( f ) ) , d } if ( c . qsa && ! A [ a + " " ] && ( ! q || ! q . test ( a ) ) ) { if ( 1 !== w ) s = b , r = a ; else if ( "object" !== b . nodeName . toLowerCase ( ) ) { for ( ( k = b . getAttribute ( "id" ) ) ? k = k . replace ( ba , ca ) : b . setAttribute ( "id" , k = u ) , o = g ( a ) , h = o . length ; h -- ; ) o [ h ] = "#" + k + " " + sa ( o [ h ] ) ; r = o . join ( "," ) , s = $ . test ( a ) && qa ( b . parentNode ) || b } if ( r ) try { return G . apply ( d , s . querySelectorAll ( r ) ) , d } catch ( x ) { } finally { k === u && b . removeAttribute ( "id" ) } } } return i ( a . replace ( P , "$1" ) , b , d , e ) } function ha ( ) { function b ( c , e ) { return a . push ( c + " " ) > d . cacheLength && delete b [ a . shift ( ) ] , b [ c + " " ] = e } var a = [ ] ; return b } function ia ( a ) { return a [ u ] = ! 0 , a } function ja ( a ) { var b = n . createElement ( "fieldset" ) ; try { return ! ! a ( b ) } catch ( c ) { return ! 1 } finally { b . parentNode && b . parentNode . removeChild ( b ) , b = null } } function ka ( a , b ) { for ( var c = a . split ( "|" ) , e = c . length ; e -- ; ) d . attrHandle [ c [ e ] ] = b } function la ( a , b ) { var c = b && a , d = c && 1 === a . nodeType && 1 === b . nodeType && a . sourceIndex - b . sourceIndex ; if ( d ) return d ; if ( c ) for ( ; c = c . nextSibling ; ) if ( c === b ) return - 1 ; return a ? 1 : - 1 } function ma ( a ) { return function ( b ) { var c = b . nodeName . toLowerCase ( ) ; return "input" === c && b . type === a } } function na ( a ) { return function ( b ) { var c = b . nodeName . toLowerCase ( ) ; return ( "input" === c || "button" === c ) && b . type === a } } function oa ( a ) { return function ( b ) { return "form" in b ? b . parentNode && b . disabled === ! 1 ? "label" in b ? "label" in b . parentNode ? b . parentNode . disabled === a : b . disabled === a : b . isDisabled === a || b . isDisabled !== ! a && ea ( b ) === a : b . disabled === a : "label" in b && b . disabled === a } } function pa ( a ) { return ia ( function ( b ) { return b = + b , ia ( function ( c , d ) { for ( var e , f = a ( [ ] , c . length , b ) , g = f . length ; g -- ; ) c [ e = f [ g ] ] && ( c [ e ] = ! ( d [ e ] = c [ e ] ) ) } ) } ) } function qa ( a ) { return a && "undefined" != typeof a . getElementsByTagName && a } function ra ( ) { } function sa ( a ) { for ( var b = 0 , c = a . length , d = "" ; b < c ; b ++ ) d += a [ b ] . value ; return d } function ta ( a , b , c ) { var d = b . dir , e = b . next , f = e || d , g = c && "parentNode" === f , h = x ++ ; return b . first ? function ( b , c , e ) { for ( ; b = b [ d ] ; ) if ( 1 === b . nodeType || g ) return a ( b , c , e ) ; return ! 1 } : function ( b , c , i ) { var j , k , l , m = [ w , h ] ; if ( i ) { for ( ; b = b [ d ] ; ) if ( ( 1 === b . nodeType || g ) && a ( b , c , i ) ) return ! 0 } else for ( ; b = b [ d ] ; ) if ( 1 === b . no
} , promise : function ( a , b ) { var c , d = 1 , e = r . Deferred ( ) , f = this , g = this . length , h = function ( ) { -- d || e . resolveWith ( f , [ f ] ) } ; for ( "string" != typeof a && ( b = a , a = void 0 ) , a = a || "fx" ; g -- ; ) c = V . get ( f [ g ] , a + "queueHooks" ) , c && c . empty && ( d ++ , c . empty . add ( h ) ) ; return h ( ) , e . promise ( b ) } } ) ; var _ = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ . source , aa = new RegExp ( "^(?:([+-])=|)(" + _ + ")([a-z%]*)$" , "i" ) , ba = [ "Top" , "Right" , "Bottom" , "Left" ] , ca = function ( a , b ) { return a = b || a , "none" === a . style . display || "" === a . style . display && r . contains ( a . ownerDocument , a ) && "none" === r . css ( a , "display" ) } , da = function ( a , b , c , d ) { var e , f , g = { } ; for ( f in b ) g [ f ] = a . style [ f ] , a . style [ f ] = b [ f ] ; e = c . apply ( a , d || [ ] ) ; for ( f in b ) a . style [ f ] = g [ f ] ; return e } , fa = { } ; r . fn . extend ( { show : function ( ) { return ha ( this , ! 0 ) } , hide : function ( ) { return ha ( this ) } , toggle : function ( a ) { return "boolean" == typeof a ? a ? this . show ( ) : this . hide ( ) : this . each ( function ( ) { ca ( this ) ? r ( this ) . show ( ) : r ( this ) . hide ( ) } ) } } ) ; var ia = /^(?:checkbox|radio)$/i , ja = /<([a-z][^\/\0>\x20\t\r\n\f]+)/i , ka = /^$|\/(?:java|ecma)script/i , la = { option : [ 1 , "<select multiple='multiple'>" , "</select>" ] , thead : [ 1 , "<table>" , "</table>" ] , col : [ 2 , "<table><colgroup>" , "</colgroup></table>" ] , tr : [ 2 , "<table><tbody>" , "</tbody></table>" ] , td : [ 3 , "<table><tbody><tr>" , "</tr></tbody></table>" ] , _default : [ 0 , "" , "" ] } ; la . optgroup = la . option , la . tbody = la . tfoot = la . colgroup = la . caption = la . thead , la . th = la . td ; var oa = /<|&#?\w+;/ ; ! function ( ) { var a = d . createDocumentFragment ( ) , b = a . appendChild ( d . createElement ( "div" ) ) , c = d . createElement ( "input" ) ; c . setAttribute ( "type" , "radio" ) , c . setAttribute ( "checked" , "checked" ) , c . setAttribute ( "name" , "t" ) , b . appendChild ( c ) , o . checkClone = b . cloneNode ( ! 0 ) . cloneNode ( ! 0 ) . lastChild . checked , b . innerHTML = "<textarea>x</textarea>" , o . noCloneChecked = ! ! b . cloneNode ( ! 0 ) . lastChild . defaultValue } ( ) ; var qa = d . documentElement , ra = /^key/ , sa = /^(?:mouse|pointer|contextmenu|drag|drop)|click/ , ta = /^([^.]*)(?:\.(.+)|)/ ; r . event = { global : { } , add : function ( a , b , c , d , e ) { var f , g , h , i , j , k , l , m , n , o , p , q = V . get ( a ) ; if ( q ) for ( c . handler && ( f = c , c = f . handler , e = f . selector ) , e && r . find . matchesSelector ( qa , e ) , c . guid || ( c . guid = r . guid ++ ) , ( i = q . events ) || ( i = q . events = { } ) , ( g = q . handle ) || ( g = q . handle = function ( b ) { return "undefined" != typeof r && r . event . triggered !== b . type ? r . event . dispatch . apply ( a , arguments ) : void 0 } ) , b = ( b || "" ) . match ( K ) || [ "" ] , j = b . length ; j -- ; ) h = ta . exec ( b [ j ] ) || [ ] , n = p = h [ 1 ] , o = ( h [ 2 ] || "" ) . split ( "." ) . sort ( ) , n && ( l = r . event . special [ n ] || { } , n = ( e ? l . delegateType : l . bindType ) || n , l = r . event . special [ n ] || { } , k = r . extend ( { type : n , origType : p , data : d , handler : c , guid : c . guid , selector : e , needsContext : e && r . expr . match . needsContext . test ( e ) , namespace : o . join ( "." ) } , f ) , ( m = i [ n ] ) || ( m = i [ n ] = [ ] , m . delegateCount = 0 , l . setup && l . setup . call ( a , d , o , g ) !== ! 1 || a . addEventListener && a . addEventListener ( n , g ) ) , l . add && ( l . add . call ( a , k ) , k . handler . guid || ( k . handler . guid = c . guid ) ) , e ? m . splice ( m . delegateCount ++ , 0 , k ) : m . push ( k ) , r . event . global [ n ] = ! 0 ) } , remove : function ( a , b , c , d , e ) { var f , g , h , i , j , k , l , m , n , o , p , q = V . hasData ( a ) && V . get ( a ) ; if ( q && ( i = q . events ) ) { for ( b = ( b || "" ) . match ( K ) || [ "" ] , j = b . length ; j -- ; ) if ( h = ta . exec ( b [ j ] ) || [ ] , n = p = h [ 1 ] , o = ( h [ 2 ] || "" ) . split ( "." ) . sort ( ) , n ) { for ( l = r . event . special [ n ] || { } , n = ( d ? l . delegateType : l . bindType ) || n , m = i [ n ] || [ ] , h = h [ 2 ] && new RegExp ( "(^|\\.)" + o . join ( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) , g = f = m . length ; f -- ; ) k = m [ f ] , ! e && p !== k . origType || c && c . guid !== k . guid || h && ! h . test ( k . namespace ) || d && d !== k . selector && ( "**" !== d || ! k . selector ) || ( m . splice ( f , 1 ) , k . selector && m . delegateCount -- , l . remove && l . remove . call ( a , k ) ) ; g && ! m . length && ( l . teardown && l . teardown . call ( a , o , q . handle ) !== ! 1 || r . removeEvent ( a , n , q . handle ) , delete i [ n ] ) } else for ( n in i ) r . event . remove ( a , n + b [ j ] , c , d , ! 0 ) ; r . isEmptyObject ( i ) && V . remove ( a , "handle events" ) } } , dispatch : function ( a ) { var c , d , e , f , g , h , b = r . event . fix ( a ) , i = new Array ( arguments . length ) , j = ( V . get ( this , "events" ) || { } ) [ b . type ] || [ ] , k = r . event . special [ b . type ] || { } ; for ( i [ 0 ] = b , c = 1 ; c < arguments . length ; c ++ ) i [ c ] = arguments [ c ] ; if ( b . delegateTarget = this , ! k . preDispatch || k . preDispatch . call ( this , b ) !== ! 1 ) { for ( h = r . event . handlers . call ( this , b , j ) , c = 0 ; ( f = h [ c ++ ] ) && ! b . isPropagationStopped ( ) ; ) for ( b . currentTarget = f . elem , d = 0 ; ( g = f . handlers [ d ++ ] ) && ! b . isImmediatePropagationStopped ( ) ; ) b . rnamespace && ! b . rnamespace . test ( g . namespace ) || ( b . handleObj = g , b . data = g . data , e = ( ( r . event . special [ g . o
return y } , getJSON : function ( a , b , c ) { return r . get ( a , b , c , "json" ) } , getScript : function ( a , b ) { return r . get ( a , void 0 , b , "script" ) } } ) , r . each ( [ "get" , "post" ] , function ( a , b ) { r [ b ] = function ( a , c , d , e ) { return r . isFunction ( c ) && ( e = e || d , d = c , c = void 0 ) , r . ajax ( r . extend ( { url : a , type : b , dataType : e , data : c , success : d } , r . isPlainObject ( a ) && a ) ) } } ) , r . _evalUrl = function ( a ) { return r . ajax ( { url : a , type : "GET" , dataType : "script" , cache : ! 0 , async : ! 1 , global : ! 1 , throws : ! 0 } ) } , r . fn . extend ( { wrapAll : function ( a ) { var b ; return this [ 0 ] && ( r . isFunction ( a ) && ( a = a . call ( this [ 0 ] ) ) , b = r ( a , this [ 0 ] . ownerDocument ) . eq ( 0 ) . clone ( ! 0 ) , this [ 0 ] . parentNode && b . insertBefore ( this [ 0 ] ) , b . map ( function ( ) { for ( var a = this ; a . firstElementChild ; ) a = a . firstElementChild ; return a } ) . append ( this ) ) , this } , wrapInner : function ( a ) { return r . isFunction ( a ) ? this . each ( function ( b ) { r ( this ) . wrapInner ( a . call ( this , b ) ) } ) : this . each ( function ( ) { var b = r ( this ) , c = b . contents ( ) ; c . length ? c . wrapAll ( a ) : b . append ( a ) } ) } , wrap : function ( a ) { var b = r . isFunction ( a ) ; return this . each ( function ( c ) { r ( this ) . wrapAll ( b ? a . call ( this , c ) : a ) } ) } , unwrap : function ( a ) { return this . parent ( a ) . not ( "body" ) . each ( function ( ) { r ( this ) . replaceWith ( this . childNodes ) } ) , this } } ) , r . expr . pseudos . hidden = function ( a ) { return ! r . expr . pseudos . visible ( a ) } , r . expr . pseudos . visible = function ( a ) { return ! ! ( a . offsetWidth || a . offsetHeight || a . getClientRects ( ) . length ) } , r . ajaxSettings . xhr = function ( ) { try { return new a . XMLHttpRequest } catch ( b ) { } } ; var Ob = { 0 : 200 , 1223 : 204 } , Pb = r . ajaxSettings . xhr ( ) ; o . cors = ! ! Pb && "withCredentials" in Pb , o . ajax = Pb = ! ! Pb , r . ajaxTransport ( function ( b ) { var c , d ; if ( o . cors || Pb && ! b . crossDomain ) return { send : function ( e , f ) { var g , h = b . xhr ( ) ; if ( h . open ( b . type , b . url , b . async , b . username , b . password ) , b . xhrFields ) for ( g in b . xhrFields ) h [ g ] = b . xhrFields [ g ] ; b . mimeType && h . overrideMimeType && h . overrideMimeType ( b . mimeType ) , b . crossDomain || e [ "X-Requested-With" ] || ( e [ "X-Requested-With" ] = "XMLHttpRequest" ) ; for ( g in e ) h . setRequestHeader ( g , e [ g ] ) ; c = function ( a ) { return function ( ) { c && ( c = d = h . onload = h . onerror = h . onabort = h . onreadystatechange = null , "abort" === a ? h . abort ( ) : "error" === a ? "number" != typeof h . status ? f ( 0 , "error" ) : f ( h . status , h . statusText ) : f ( Ob [ h . status ] || h . status , h . statusText , "text" !== ( h . responseType || "text" ) || "string" != typeof h . responseText ? { binary : h . response } : { text : h . responseText } , h . getAllResponseHeaders ( ) ) ) } } , h . onload = c ( ) , d = h . onerror = c ( "error" ) , void 0 !== h . onabort ? h . onabort = d : h . onreadystatechange = function ( ) { 4 === h . readyState && a . setTimeout ( function ( ) { c && d ( ) } ) } , c = c ( "abort" ) ; try { h . send ( b . hasContent && b . data || null ) } catch ( i ) { if ( c ) throw i } } , abort : function ( ) { c && c ( ) } } } ) , r . ajaxPrefilter ( function ( a ) { a . crossDomain && ( a . contents . script = ! 1 ) } ) , r . ajaxSetup ( { accepts : { script : "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" } , contents : { script : /\b(?:java|ecma)script\b/ } , converters : { "text script" : function ( a ) { return r . globalEval ( a ) , a } } } ) , r . ajaxPrefilter ( "script" , function ( a ) { void 0 === a . cache && ( a . cache = ! 1 ) , a . crossDomain && ( a . type = "GET" ) } ) , r . ajaxTransport ( "script" , function ( a ) { if ( a . crossDomain ) { var b , c ; return { send : function ( e , f ) { b = r ( "<script>" ) . prop ( { charset : a . scriptCharset , src : a . url } ) . on ( "load error" , c = function ( a ) { b . remove ( ) , c = null , a && f ( "error" === a . type ? 404 : 200 , a . type ) } ) , d . head . appendChild ( b [ 0 ] ) } , abort : function ( ) { c && c ( ) } } } } ) ; var Qb = [ ] , Rb = /(=)\?(?=&|$)|\?\?/ ; r . ajaxSetup ( { jsonp : "callback" , jsonpCallback : function ( ) { var a = Qb . pop ( ) || r . expando + "_" + rb ++ ; return this [ a ] = ! 0 , a } } ) , r . ajaxPrefilter ( "json jsonp" , function ( b , c , d ) { var e , f , g , h = b . jsonp !== ! 1 && ( Rb . test ( b . url ) ? "url" : "string" == typeof b . data && 0 === ( b . contentType || "" ) . indexOf ( "application/x-www-form-urlencoded" ) && Rb . test ( b . data ) && "data" ) ; if ( h || "jsonp" === b . dataTypes [ 0 ] ) return e = b . jsonpCallback = r . isFunction ( b . jsonpCallback ) ? b . jsonpCallback ( ) : b . jsonpCallback , h ? b [ h ] = b [ h ] . replace ( Rb , "$1" + e ) : b . jsonp !== ! 1 && ( b . url += ( sb . test ( b . url ) ? "&" : "?" ) + b . jsonp + "=" + e ) , b . converters [ "script json" ] = function ( ) { return g || r . error ( e + " was not called" ) , g [ 0 ] } , b . dataTypes [ 0 ] = "json" , f = a [ e ] , a [ e ] = function ( ) { g = arguments } , d . always ( function ( ) { void 0 === f ? r ( a ) . removeProp ( e ) : a [ e ] = f , b [ e ] && ( b . jsonpCallback = c . jsonpCallback , Qb . push ( e ) ) , g && r . isFunction ( f ) && f ( g [ 0 ] ) , g = f = void 0 } ) , "script" } ) , o . createHTMLDocument = function ( ) { var a
} function h ( e , t , n , r , i , o ) { for ( ; r <= i ; ++ r ) a ( n [ r ] , o , e , t ) } function m ( e ) { var t , n , r = e . data ; if ( _t ( r ) ) for ( _t ( t = r . hook ) && _t ( t = t . destroy ) && t ( e ) , t = 0 ; t < k . destroy . length ; ++ t ) k . destroy [ t ] ( e ) ; if ( _t ( t = e . children ) ) for ( n = 0 ; n < e . children . length ; ++ n ) m ( e . children [ n ] ) } function g ( e , t , n , r ) { for ( ; n <= r ; ++ n ) { var o = t [ n ] ; _t ( o ) && ( _t ( o . tag ) ? ( y ( o ) , m ( o ) ) : i ( o . elm ) ) } } function y ( e , t ) { if ( t || _t ( e . data ) ) { var n = k . remove . length + 1 ; for ( t ? t . listeners += n : t = r ( e . elm , n ) , _t ( C = e . componentInstance ) && _t ( C = C . _vnode ) && _t ( C . data ) && y ( C , t ) , C = 0 ; C < k . remove . length ; ++ C ) k . remove [ C ] ( e , t ) ; _t ( C = e . data . hook ) && _t ( C = C . remove ) ? C ( e , t ) : t ( ) } else i ( e . elm ) } function _ ( e , t , n , r , i ) { for ( var o , s , c , u , l = 0 , f = 0 , p = t . length - 1 , d = t [ 0 ] , v = t [ p ] , m = n . length - 1 , y = n [ 0 ] , _ = n [ m ] , $ = ! i ; l <= p && f <= m ; ) yt ( d ) ? d = t [ ++ l ] : yt ( v ) ? v = t [ -- p ] : bt ( d , y ) ? ( b ( d , y , r ) , d = t [ ++ l ] , y = n [ ++ f ] ) : bt ( v , _ ) ? ( b ( v , _ , r ) , v = t [ -- p ] , _ = n [ -- m ] ) : bt ( d , _ ) ? ( b ( d , _ , r ) , $ && O . insertBefore ( e , d . elm , O . nextSibling ( v . elm ) ) , d = t [ ++ l ] , _ = n [ -- m ] ) : bt ( v , y ) ? ( b ( v , y , r ) , $ && O . insertBefore ( e , v . elm , d . elm ) , v = t [ -- p ] , y = n [ ++ f ] ) : ( yt ( o ) && ( o = $t ( t , l , p ) ) , s = _t ( y . key ) ? o [ y . key ] : null , yt ( s ) ? ( a ( y , r , e , d . elm ) , y = n [ ++ f ] ) : ( c = t [ s ] , bt ( c , y ) ? ( b ( c , y , r ) , t [ s ] = void 0 , $ && O . insertBefore ( e , y . elm , d . elm ) , y = n [ ++ f ] ) : ( a ( y , r , e , d . elm ) , y = n [ ++ f ] ) ) ) ; l > p ? ( u = yt ( n [ m + 1 ] ) ? null : n [ m + 1 ] . elm , h ( e , u , n , f , m , r ) ) : f > m && g ( e , t , l , p ) } function b ( e , t , n , r ) { if ( e !== t ) { if ( t . isStatic && e . isStatic && t . key === e . key && ( t . isCloned || t . isOnce ) ) return t . elm = e . elm , void ( t . componentInstance = e . componentInstance ) ; var i , o = t . data , a = _t ( o ) ; a && _t ( i = o . hook ) && _t ( i = i . prepatch ) && i ( e , t ) ; var s = t . elm = e . elm , c = e . children , u = t . children ; if ( a && p ( t ) ) { for ( i = 0 ; i < k . update . length ; ++ i ) k . update [ i ] ( e , t ) ; _t ( i = o . hook ) && _t ( i = i . update ) && i ( e , t ) } yt ( t . text ) ? _t ( c ) && _t ( u ) ? c !== u && _ ( s , c , u , n , r ) : _t ( u ) ? ( _t ( e . text ) && O . setTextContent ( s , "" ) , h ( s , null , u , 0 , u . length - 1 , n ) ) : _t ( c ) ? g ( s , c , 0 , c . length - 1 ) : _t ( e . text ) && O . setTextContent ( s , "" ) : e . text !== t . text && O . setTextContent ( s , t . text ) , a && _t ( i = o . hook ) && _t ( i = i . postpatch ) && i ( e , t ) } } function $ ( e , t , n ) { if ( n && e . parent ) e . parent . data . pendingInsert = t ; else for ( var r = 0 ; r < t . length ; ++ r ) t [ r ] . data . hook . insert ( t [ r ] ) } function w ( e , t , n ) { t . elm = e ; var r = t . tag , i = t . data , o = t . children ; if ( _t ( i ) && ( _t ( C = i . hook ) && _t ( C = C . init ) && C ( t , ! 0 ) , _t ( C = t . componentInstance ) ) ) return c ( t , n ) , ! 0 ; if ( _t ( r ) ) { if ( _t ( o ) ) if ( e . hasChildNodes ( ) ) { for ( var a = ! 0 , s = e . firstChild , u = 0 ; u < o . length ; u ++ ) { if ( ! s || ! w ( s , o [ u ] , n ) ) { a = ! 1 ; break } s = s . nextSibling } if ( ! a || s ) return ! 1 } else f ( t , o , n ) ; if ( _t ( i ) ) for ( var l in i ) if ( ! S ( l ) ) { d ( t , n ) ; break } } else e . data !== t . text && ( e . data = t . text ) ; return ! 0 } var C , x , k = { } , A = e . modules , O = e . nodeOps ; for ( C = 0 ; C < To . length ; ++ C ) for ( k [ To [ C ] ] = [ ] , x = 0 ; x < A . length ; ++ x ) void 0 !== A [ x ] [ To [ C ] ] && k [ To [ C ] ] . push ( A [ x ] [ To [ C ] ] ) ; var S = n ( "attrs,style,class,staticClass,staticStyle,key" ) ; return function ( e , n , r , i , o , s ) { if ( ! n ) return void ( e && m ( e ) ) ; var c = ! 1 , u = [ ] ; if ( e ) { var l = _t ( e . nodeType ) ; if ( ! l && bt ( e , n ) ) b ( e , n , u , i ) ; else { if ( l ) { if ( 1 === e . nodeType && e . hasAttribute ( "server-rendered" ) && ( e . removeAttribute ( "server-rendered" ) , r = ! 0 ) , r && w ( e , n , u ) ) return $ ( n , u , ! 0 ) , e ; e = t ( e ) } var f = e . elm , d = O . parentNode ( f ) ; if ( a ( n , u , f . _leaveCb ? null : d , O . nextSibling ( f ) ) , n . parent ) { for ( var v = n . parent ; v ; ) v . elm = n . elm , v = v . parent ; if ( p ( n ) ) for ( var h = 0 ; h < k . create . length ; ++ h ) k . create [ h ] ( So , n . parent ) } null !== d ? g ( d , [ e ] , 0 , 0 ) : _t ( e . tag ) && m ( e ) } } else c = ! 0 , a ( n , u , o , s ) ; return $ ( n , u , c ) , n . elm } } function Ct ( e , t ) { ( e . data . directives || t . data . directives ) && xt ( e , t ) } function xt ( e , t ) { var n , r , i , o = e === So , a = t === So , s = kt ( e . data . directives , e . context ) , c = kt ( t . data . directives , t . context ) , u = [ ] , l = [ ] ; for ( n in c ) r = s [ n ] , i = c [ n ] , r ? ( i . oldValue = r . value , Ot ( i , "update" , t , e ) , i . def && i . def . componentUpdated && l . push ( i ) ) : ( Ot ( i , "bind" , t , e ) , i . def && i . def . inserted && u . push ( i ) ) ; if ( u . length ) { var f = function ( ) { for ( var n = 0 ; n < u . length ; n ++ ) Ot ( u [ n ] , "inserted" , t , e ) } ; o ? ne ( t . data . hook || ( t . data . hook = { } ) , "insert" , f , "dir-insert" ) : f ( ) } if ( l . length && ne ( t . data . hook || ( t . data . hook = { } ) , "postpatch" , function ( ) { for ( var n = 0 ; n < l . length ; n ++ ) Ot ( l [ n ] , "componentUpdated" , t , e ) } , "dir-postpatch" ) , ! o ) for ( n in s ) c [ n ] || Ot ( s [ n ] , "unbind" , e , e , a ) } function kt ( e , t ) { var n = Object . create ( null ) ; if ( ! e ) return n ; var r , i ; for ( r = 0 ; r < e . length ; r ++ ) i = e [ r ] , i . modifiers || ( i . modifiers = Io ) , n [ At ( i ) ] = i , i . def = D ( t . $options , "directives" , i . name , ! 0 ) ; return n } function At ( e ) { return e . rawName || e . name + "." + Object . keys ( e . modifiers || { } ) . join ( "." ) } fu
this . set [ e ] = ! 0 } , e . prototype . clear = function ( ) { this . set = Object . create ( null ) } , e } ( ) ; var Oi , Si = d , Ti = 0 , Ei = function ( ) { this . id = Ti ++ , this . subs = [ ] } ; Ei . prototype . addSub = function ( e ) { this . subs . push ( e ) } , Ei . prototype . removeSub = function ( e ) { r ( this . subs , e ) } , Ei . prototype . depend = function ( ) { Ei . target && Ei . target . addDep ( this ) } , Ei . prototype . notify = function ( ) { for ( var e = this . subs . slice ( ) , t = 0 , n = e . length ; t < n ; t ++ ) e [ t ] . update ( ) } , Ei . target = null ; var Ii = [ ] , ji = Array . prototype , Ni = Object . create ( ji ) ; [ "push" , "pop" , "shift" , "unshift" , "splice" , "sort" , "reverse" ] . forEach ( function ( e ) { var t = ji [ e ] ; y ( Ni , e , function ( ) { for ( var n = arguments , r = arguments . length , i = new Array ( r ) ; r -- ; ) i [ r ] = n [ r ] ; var o , a = t . apply ( this , i ) , s = this . _ _ob _ _ ; switch ( e ) { case "push" : o = i ; break ; case "unshift" : o = i ; break ; case "splice" : o = i . slice ( 2 ) } return o && s . observeArray ( o ) , s . dep . notify ( ) , a } ) } ) ; var Li = Object . getOwnPropertyNames ( Ni ) , Mi = { shouldConvert : ! 0 , isSettingProps : ! 1 } , Di = function ( e ) { if ( this . value = e , this . dep = new Ei , this . vmCount = 0 , y ( e , "__ob__" , this ) , Array . isArray ( e ) ) { var t = mi ? C : x ; t ( e , Ni , Li ) , this . observeArray ( e ) } else this . walk ( e ) } ; Di . prototype . walk = function ( e ) { for ( var t = Object . keys ( e ) , n = 0 ; n < t . length ; n ++ ) A ( e , t [ n ] , e [ t [ n ] ] ) } , Di . prototype . observeArray = function ( e ) { for ( var t = 0 , n = e . length ; t < n ; t ++ ) k ( e [ t ] ) } ; var Pi = vi . optionMergeStrategies ; Pi . data = function ( e , t , n ) { return n ? e || t ? function ( ) { var r = "function" == typeof t ? t . call ( n ) : t , i = "function" == typeof e ? e . call ( n ) : void 0 ; return r ? E ( r , i ) : i } : void 0 : t ? "function" != typeof t ? e : e ? function ( ) { return E ( t . call ( this ) , e . call ( this ) ) } : t : e } , vi . _lifecycleHooks . forEach ( function ( e ) { Pi [ e ] = I } ) , vi . _assetTypes . forEach ( function ( e ) { Pi [ e + "s" ] = j } ) , Pi . watch = function ( e , t ) { if ( ! t ) return e ; if ( ! e ) return t ; var n = { } ; u ( n , e ) ; for ( var r in t ) { var i = n [ r ] , o = t [ r ] ; i && ! Array . isArray ( i ) && ( i = [ i ] ) , n [ r ] = i ? i . concat ( o ) : [ o ] } return n } , Pi . props = Pi . methods = Pi . computed = function ( e , t ) { if ( ! t ) return e ; if ( ! e ) return t ; var n = Object . create ( null ) ; return u ( n , e ) , u ( n , t ) , n } ; var Ri = function ( e , t ) { return void 0 === t ? e : t } , Fi = Object . freeze ( { defineReactive : A , _toString : e , toNumber : t , makeMap : n , isBuiltInTag : ri , remove : r , hasOwn : i , isPrimitive : o , cached : a , camelize : ai , capitalize : si , hyphenate : ui , bind : s , toArray : c , extend : u , isObject : l , isPlainObject : f , toObject : p , noop : d , no : pi , identity : di , genStaticKeys : v , looseEqual : h , looseIndexOf : m , isReserved : g , def : y , parsePath : _ , hasProto : mi , inBrowser : gi , UA : yi , isIE : _i , isIE9 : bi , isEdge : $i , isAndroid : wi , isIOS : Ci , isServerRendering : xi , devtools : ki , nextTick : Ai , get _Set ( ) { return ni } , mergeOptions : M , resolveAsset : D , warn : Si , formatComponentName : Oi , validateProp : P } ) , Hi = function ( e , t , n , r , i , o , a ) { this . tag = e , this . data = t , this . children = n , this . text = r , this . elm = i , this . ns = void 0 , this . context = o , this . functionalContext = void 0 , this . key = t && t . key , this . componentOptions = a , this . componentInstance = void 0 , this . parent = void 0 , this . raw = ! 1 , this . isStatic = ! 1 , this . isRootInsert = ! 0 , this . isComment = ! 1 , this . isCloned = ! 1 , this . isOnce = ! 1 } , Ui = { child : { } } ; Ui . child . get = function ( ) { return this . componentInstance } , Object . defineProperties ( Hi . prototype , Ui ) ; var Bi , zi = function ( ) { var e = new Hi ; return e . text = "" , e . isComment = ! 0 , e } , Vi = { init : q , prepatch : W , insert : Z , destroy : G } , Ji = Object . keys ( Vi ) , Ki = a ( function ( e ) { var t = "~" === e . charAt ( 0 ) ; e = t ? e . slice ( 1 ) : e ; var n = "!" === e . charAt ( 0 ) ; return e = n ? e . slice ( 1 ) : e , { name : e , once : t , capture : n } } ) , qi = 1 , Wi = 2 , Zi = null , Gi = [ ] , Yi = { } , Qi = ! 1 , Xi = ! 1 , eo = 0 , to = 0 , no = function ( e , t , n , r ) { this . vm = e , e . _watchers . push ( this ) , r ? ( this . deep = ! ! r . deep , this . user = ! ! r . user , this . lazy = ! ! r . lazy , this . sync = ! ! r . sync ) : this . deep = this . user = this . lazy = this . sync = ! 1 , this . cb = n , this . id = ++ to , this . active = ! 0 , this . dirty = this . lazy , this . deps = [ ] , this . newDeps = [ ] , this . depIds = new ni , this . newDepIds = new ni , this . expression = "" , "function" == typeof t ? this . getter = t : ( this . getter = _ ( t ) , this . getter || ( this . getter = function ( ) { } ) ) , this . value = this . lazy ? void 0 : this . get ( ) } ; no . prototype . get = function ( ) { $ ( this ) ; var e = this . getter . call ( this . vm , this . vm ) ; return this . deep && Ae ( e ) , w ( ) , this . cleanupDeps ( ) , e } , no . prototype . addDep = function ( e ) { var t = e . id ; this . newDepIds . has ( t ) || ( this . newDepIds . add ( t ) , this . newDeps . push ( e ) , this . depIds . has ( t ) || e . addSub ( this ) ) } , no . prototype . cleanupDeps = function ( ) { for ( var e = this , t = this . deps . length ; t -- ; ) { var n = e . deps [ t ] ; e . newDepIds . has ( n . id ) || n .
break ; case 40 : if ( f . keyStop ( e , t ) , ! t . isInput ) return void ( null != t . $menu && t . $menu . trigger ( "nextcommand" ) ) ; if ( 9 === e . keyCode ) return e . preventDefault ( ) , t . $selected && t . $selected . find ( "input, textarea, select" ) . blur ( ) , void ( null != t . $menu && t . $menu . trigger ( "nextcommand" ) ) ; if ( 40 === e . keyCode && "checkbox" === t . $selected . find ( "input, textarea, select" ) . prop ( "type" ) ) return void e . preventDefault ( ) ; break ; case 37 : if ( f . keyStop ( e , t ) , t . isInput || ! t . $selected || ! t . $selected . length ) break ; if ( ! t . $selected . parent ( ) . hasClass ( "context-menu-root" ) ) { var s = t . $selected . parent ( ) . parent ( ) ; return t . $selected . trigger ( "contextmenu:blur" ) , void ( t . $selected = s ) } break ; case 39 : if ( f . keyStop ( e , t ) , t . isInput || ! t . $selected || ! t . $selected . length ) break ; var i = t . $selected . data ( "contextMenu" ) || { } ; if ( i . $menu && t . $selected . hasClass ( "context-menu-submenu" ) ) return t . $selected = null , i . $selected = null , void i . $menu . trigger ( "nextcommand" ) ; break ; case 35 : case 36 : return t . $selected && t . $selected . find ( "input, textarea, select" ) . length ? void 0 : ( ( t . $selected && t . $selected . parent ( ) || t . $menu ) . children ( ":not(." + t . classNames . disabled + ", ." + t . classNames . notSelectable + ")" ) [ 36 === e . keyCode ? "first" : "last" ] ( ) . trigger ( "contextmenu:focus" ) , void e . preventDefault ( ) ) ; case 13 : if ( f . keyStop ( e , t ) , t . isInput ) { if ( t . $selected && ! t . $selected . is ( "textarea, select" ) ) return void e . preventDefault ( ) ; break } return void ( "undefined" != typeof t . $selected && null !== t . $selected && t . $selected . trigger ( "mouseup" ) ) ; case 32 : case 33 : case 34 : return void f . keyStop ( e , t ) ; case 27 : return f . keyStop ( e , t ) , void ( null != t . $menu && t . $menu . trigger ( "contextmenu:hide" ) ) ; default : var c = String . fromCharCode ( e . keyCode ) . toUpperCase ( ) ; if ( t . accesskeys && t . accesskeys [ c ] ) return void t . accesskeys [ c ] . $node . trigger ( t . accesskeys [ c ] . $menu ? "contextmenu:focus" : "mouseup" ) } e . stopPropagation ( ) , "undefined" != typeof t . $selected && null !== t . $selected && t . $selected . trigger ( e ) } } , prevItem : function ( t ) { t . stopPropagation ( ) ; var n = e ( this ) . data ( "contextMenu" ) || { } , a = e ( this ) . data ( "contextMenuRoot" ) || { } ; if ( n . $selected ) { var o = n . $selected ; n = n . $selected . parent ( ) . data ( "contextMenu" ) || { } , n . $selected = o } for ( var s = n . $menu . children ( ) , i = n . $selected && n . $selected . prev ( ) . length ? n . $selected . prev ( ) : s . last ( ) , c = i ; i . hasClass ( a . classNames . disabled ) || i . hasClass ( a . classNames . notSelectable ) || i . is ( ":hidden" ) ; ) if ( i = i . prev ( ) . length ? i . prev ( ) : s . last ( ) , i . is ( c ) ) return ; n . $selected && f . itemMouseleave . call ( n . $selected . get ( 0 ) , t ) , f . itemMouseenter . call ( i . get ( 0 ) , t ) ; var r = i . find ( "input, textarea, select" ) ; r . length && r . focus ( ) } , nextItem : function ( t ) { t . stopPropagation ( ) ; var n = e ( this ) . data ( "contextMenu" ) || { } , a = e ( this ) . data ( "contextMenuRoot" ) || { } ; if ( n . $selected ) { var o = n . $selected ; n = n . $selected . parent ( ) . data ( "contextMenu" ) || { } , n . $selected = o } for ( var s = n . $menu . children ( ) , i = n . $selected && n . $selected . next ( ) . length ? n . $selected . next ( ) : s . first ( ) , c = i ; i . hasClass ( a . classNames . disabled ) || i . hasClass ( a . classNames . notSelectable ) || i . is ( ":hidden" ) ; ) if ( i = i . next ( ) . length ? i . next ( ) : s . first ( ) , i . is ( c ) ) return ; n . $selected && f . itemMouseleave . call ( n . $selected . get ( 0 ) , t ) , f . itemMouseenter . call ( i . get ( 0 ) , t ) ; var r = i . find ( "input, textarea, select" ) ; r . length && r . focus ( ) } , focusInput : function ( ) { var t = e ( this ) . closest ( ".context-menu-item" ) , n = t . data ( ) , a = n . contextMenu , o = n . contextMenuRoot ; o . $selected = a . $selected = t , o . isInput = a . isInput = ! 0 } , blurInput : function ( ) { var t = e ( this ) . closest ( ".context-menu-item" ) , n = t . data ( ) , a = n . contextMenu , o = n . contextMenuRoot ; o . isInput = a . isInput = ! 1 } , menuMouseenter : function ( ) { var t = e ( this ) . data ( ) . contextMenuRoot ; t . hovering = ! 0 } , menuMouseleave : function ( t ) { var n = e ( this ) . data ( ) . contextMenuRoot ; n . $layer && n . $layer . is ( t . relatedTarget ) && ( n . hovering = ! 1 ) } , itemMouseenter : function ( t ) { var n = e ( this ) , a = n . data ( ) , o = a . contextMenu , s = a . contextMenuRoot ; return s . hovering = ! 0 , t && s . $layer && s . $layer . is ( t . relatedTarget ) && ( t . preventDefault ( ) , t . stopImmediatePropagation ( ) ) , ( o . $menu ? o : s ) . $menu . children ( "." + s . classNames . hover ) . trigger ( "contextmenu:blur" ) . children ( ".hover" ) . trigger ( "contextmenu:blur" ) , n . hasClass ( s . classNames . disabled ) || n . hasClass ( s . classNames . notSelectable ) ? void ( o . $selected = null ) : void n . trigger ( "contextmenu:focus" ) } , itemMouseleave : function ( t ) { var n = e ( this ) , a = n . data ( ) , o = a . contextMenu ,
if ( e + t > n ) throw new RangeError ( "Trying to access beyond buffer length" ) } function D ( e , t , n , r , i , o ) { if ( ! a . isBuffer ( e ) ) throw new TypeError ( '"buffer" argument must be a Buffer instance' ) ; if ( t > i || o > t ) throw new RangeError ( '"value" argument is out of bounds' ) ; if ( n + r > e . length ) throw new RangeError ( "Index out of range" ) } function H ( e , t , n , r ) { 0 > t && ( t = 65535 + t + 1 ) ; for ( var i = 0 , o = Math . min ( e . length - n , 2 ) ; o > i ; i ++ ) e [ n + i ] = ( t & 255 << 8 * ( r ? i : 1 - i ) ) >>> 8 * ( r ? i : 1 - i ) } function W ( e , t , n , r ) { 0 > t && ( t = 4294967295 + t + 1 ) ; for ( var i = 0 , o = Math . min ( e . length - n , 4 ) ; o > i ; i ++ ) e [ n + i ] = t >>> 8 * ( r ? i : 3 - i ) & 255 } function B ( e , t , n , r , i , o ) { if ( n + r > e . length ) throw new RangeError ( "Index out of range" ) ; if ( 0 > n ) throw new RangeError ( "Index out of range" ) } function _ ( e , t , n , r , i ) { return i || B ( e , t , n , 4 , 3.4028234663852886 e38 , - 3.4028234663852886 e38 ) , Z . write ( e , t , n , r , 23 , 4 ) , n + 4 } function F ( e , t , n , r , i ) { return i || B ( e , t , n , 8 , 1.7976931348623157 e308 , - 1.7976931348623157 e308 ) , Z . write ( e , t , n , r , 52 , 8 ) , n + 8 } function z ( e ) { if ( e = j ( e ) . replace ( ee , "" ) , e . length < 2 ) return "" ; for ( ; e . length % 4 !== 0 ; ) e += "=" ; return e } function j ( e ) { return e . trim ? e . trim ( ) : e . replace ( /^\s+|\s+$/g , "" ) } function U ( e ) { return 16 > e ? "0" + e . toString ( 16 ) : e . toString ( 16 ) } function q ( e , t ) { t = t || 1 / 0 ; for ( var n , r = e . length , i = null , o = [ ] , a = 0 ; r > a ; a ++ ) { if ( n = e . charCodeAt ( a ) , n > 55295 && 57344 > n ) { if ( ! i ) { if ( n > 56319 ) { ( t -= 3 ) > - 1 && o . push ( 239 , 191 , 189 ) ; continue } if ( a + 1 === r ) { ( t -= 3 ) > - 1 && o . push ( 239 , 191 , 189 ) ; continue } i = n ; continue } if ( 56320 > n ) { ( t -= 3 ) > - 1 && o . push ( 239 , 191 , 189 ) , i = n ; continue } n = ( i - 55296 << 10 | n - 56320 ) + 65536 } else i && ( t -= 3 ) > - 1 && o . push ( 239 , 191 , 189 ) ; if ( i = null , 128 > n ) { if ( ( t -= 1 ) < 0 ) break ; o . push ( n ) } else if ( 2048 > n ) { if ( ( t -= 2 ) < 0 ) break ; o . push ( n >> 6 | 192 , 63 & n | 128 ) } else if ( 65536 > n ) { if ( ( t -= 3 ) < 0 ) break ; o . push ( n >> 12 | 224 , n >> 6 & 63 | 128 , 63 & n | 128 ) } else { if ( ! ( 1114112 > n ) ) throw new Error ( "Invalid code point" ) ; if ( ( t -= 4 ) < 0 ) break ; o . push ( n >> 18 | 240 , n >> 12 & 63 | 128 , n >> 6 & 63 | 128 , 63 & n | 128 ) } } return o } function G ( e ) { for ( var t = [ ] , n = 0 ; n < e . length ; n ++ ) t . push ( 255 & e . charCodeAt ( n ) ) ; return t } function Y ( e , t ) { for ( var n , r , i , o = [ ] , a = 0 ; a < e . length && ! ( ( t -= 2 ) < 0 ) ; a ++ ) n = e . charCodeAt ( a ) , r = n >> 8 , i = n % 256 , o . push ( i ) , o . push ( r ) ; return o } function $ ( e ) { return X . toByteArray ( z ( e ) ) } function V ( e , t , n , r ) { for ( var i = 0 ; r > i && ! ( i + n >= t . length || i >= e . length ) ; i ++ ) t [ i + n ] = e [ i ] ; return i } function K ( e ) { return e !== e } var X = e ( "base64-js" ) , Z = e ( "ieee754" ) , J = e ( "isarray" ) ; n . Buffer = a , n . SlowBuffer = g , n . INSPECT _MAX _BYTES = 50 , a . TYPED _ARRAY _SUPPORT = void 0 !== t . TYPED _ARRAY _SUPPORT ? t . TYPED _ARRAY _SUPPORT : r ( ) , n . kMaxLength = i ( ) , a . poolSize = 8192 , a . _augment = function ( e ) { return e . _ _proto _ _ = a . prototype , e } , a . from = function ( e , t , n ) { return l ( null , e , t , n ) } , a . TYPED _ARRAY _SUPPORT && ( a . prototype . _ _proto _ _ = Uint8Array . prototype , a . _ _proto _ _ = Uint8Array , "undefined" != typeof Symbol && Symbol . species && a [ Symbol . species ] === a && Object . defineProperty ( a , Symbol . species , { value : null , configurable : ! 0 } ) ) , a . alloc = function ( e , t , n ) { return c ( null , e , t , n ) } , a . allocUnsafe = function ( e ) { return u ( null , e ) } , a . allocUnsafeSlow = function ( e ) { return u ( null , e ) } , a . isBuffer = function ( e ) { return ! ( null == e || ! e . _isBuffer ) } , a . compare = function ( e , t ) { if ( ! a . isBuffer ( e ) || ! a . isBuffer ( t ) ) throw new TypeError ( "Arguments must be Buffers" ) ; if ( e === t ) return 0 ; for ( var n = e . length , r = t . length , i = 0 , o = Math . min ( n , r ) ; o > i ; ++ i ) if ( e [ i ] !== t [ i ] ) { n = e [ i ] , r = t [ i ] ; break } return r > n ? - 1 : n > r ? 1 : 0 } , a . isEncoding = function ( e ) { switch ( String ( e ) . toLowerCase ( ) ) { case "hex" : case "utf8" : case "utf-8" : case "ascii" : case "binary" : case "base64" : case "raw" : case "ucs2" : case "ucs-2" : case "utf16le" : case "utf-16le" : return ! 0 ; default : return ! 1 } } , a . concat = function ( e , t ) { if ( ! J ( e ) ) throw new TypeError ( '"list" argument must be an Array of Buffers' ) ; if ( 0 === e . length ) return a . alloc ( 0 ) ; var n ; if ( void 0 === t ) for ( t = 0 , n = 0 ; n < e . length ; n ++ ) t += e [ n ] . length ; var r = a . allocUnsafe ( t ) , i = 0 ; for ( n = 0 ; n < e . length ; n ++ ) { var o = e [ n ] ; if ( ! a . isBuffer ( o ) ) throw new TypeError ( '"list" argument must be an Array of Buffers' ) ; o . copy ( r , i ) , i += o . length } return r } , a . byteLength = v , a . prototype . _isBuffer = ! 0 , a . prototype . swap16 = function ( ) { var e = this . length ; if ( e % 2 !== 0 ) throw new RangeError ( "Buffer size must be a multiple of 16-bits" ) ; for ( var t = 0 ; e > t ; t += 2 ) x ( this , t , t + 1 ) ; return this } , a . prototype . swap32 = function ( ) { var e = this . length ; if ( e % 4 !== 0 ) throw new RangeError ( "Buffer size must be a multiple of 32-bits" ) ; for (
_e ( e , 400 ) ) , n . updateLineNumbers = null , ! 0 } function N ( e , t ) { for ( var n = t . viewport , r = ! 0 ; ( r && e . options . lineWrapping && t . oldDisplayWidth != $e ( e ) || ( n && null != n . top && ( n = { top : Math . min ( e . doc . height + qe ( e . display ) - Ve ( e ) , n . top ) } ) , t . visible = b ( e . display , e . doc , n ) , ! ( t . visible . from >= e . display . viewFrom && t . visible . to <= e . display . viewTo ) ) ) && M ( e , t ) ; r = ! 1 ) { O ( e ) ; var i = p ( e ) ; Re ( e ) , y ( e , i ) , E ( e , i ) } t . signal ( e , "update" , e ) , e . display . viewFrom == e . display . reportedViewFrom && e . display . viewTo == e . display . reportedViewTo || ( t . signal ( e , "viewportChange" , e , e . display . viewFrom , e . display . viewTo ) , e . display . reportedViewFrom = e . display . viewFrom , e . display . reportedViewTo = e . display . viewTo ) } function A ( e , t ) { var n = new L ( e , t ) ; if ( M ( e , n ) ) { O ( e ) , N ( e , n ) ; var r = p ( e ) ; Re ( e ) , y ( e , r ) , E ( e , r ) , n . finish ( ) } } function E ( e , t ) { e . display . sizer . style . minHeight = t . docHeight + "px" , e . display . heightForcer . style . top = t . docHeight + "px" , e . display . gutters . style . height = t . docHeight + e . display . barHeight + Ye ( e ) + "px" } function O ( e ) { for ( var t = e . display , n = t . lineDiv . offsetTop , r = 0 ; r < t . view . length ; r ++ ) { var i , o = t . view [ r ] ; if ( ! o . hidden ) { if ( xo && 8 > bo ) { var a = o . node . offsetTop + o . node . offsetHeight ; i = a - n , n = a } else { var l = o . node . getBoundingClientRect ( ) ; i = l . bottom - l . top } var s = o . line . height - i ; if ( 2 > i && ( i = yt ( t ) ) , ( s > . 001 || - . 001 > s ) && ( ei ( o . line , i ) , I ( o . line ) , o . rest ) ) for ( var c = 0 ; c < o . rest . length ; c ++ ) I ( o . rest [ c ] ) } } } function I ( e ) { if ( e . widgets ) for ( var t = 0 ; t < e . widgets . length ; ++ t ) e . widgets [ t ] . height = e . widgets [ t ] . node . parentNode . offsetHeight } function P ( e ) { for ( var t = e . display , n = { } , r = { } , i = t . gutters . clientLeft , o = t . gutters . firstChild , a = 0 ; o ; o = o . nextSibling , ++ a ) n [ e . options . gutters [ a ] ] = o . offsetLeft + o . clientLeft + i , r [ e . options . gutters [ a ] ] = o . clientWidth ; return { fixedPos : C ( t ) , gutterTotalWidth : t . gutters . offsetWidth , gutterLeft : n , gutterWidth : r , wrapperWidth : t . wrapper . clientWidth } } function R ( e , t , n ) { function r ( t ) { var n = t . nextSibling ; return wo && Eo && e . display . currentWheelTarget == t ? t . style . display = "none" : t . parentNode . removeChild ( t ) , n } for ( var i = e . display , o = e . options . lineNumbers , a = i . lineDiv , l = a . firstChild , s = i . view , c = i . viewFrom , u = 0 ; u < s . length ; u ++ ) { var f = s [ u ] ; if ( f . hidden ) ; else if ( f . node && f . node . parentNode == a ) { for ( ; l != f . node ; ) l = r ( l ) ; var h = o && null != t && c >= t && f . lineNumber ; f . changes && ( Pi ( f . changes , "gutter" ) > - 1 && ( h = ! 1 ) , D ( e , f , c , n ) ) , h && ( Ui ( f . lineNumber ) , f . lineNumber . appendChild ( document . createTextNode ( S ( e . options , c ) ) ) ) , l = f . node . nextSibling } else { var d = U ( e , f , c , n ) ; a . insertBefore ( d , l ) } c += f . size } for ( ; l ; ) l = r ( l ) } function D ( e , t , n , r ) { for ( var i = 0 ; i < t . changes . length ; i ++ ) { var o = t . changes [ i ] ; "text" == o ? _ ( e , t ) : "gutter" == o ? z ( e , t , n , r ) : "class" == o ? F ( t ) : "widget" == o && j ( e , t , r ) } t . changes = null } function H ( e ) { return e . node == e . text && ( e . node = ji ( "div" , null , null , "position: relative" ) , e . text . parentNode && e . text . parentNode . replaceChild ( e . node , e . text ) , e . node . appendChild ( e . text ) , xo && 8 > bo && ( e . node . style . zIndex = 2 ) ) , e . node } function W ( e ) { var t = e . bgClass ? e . bgClass + " " + ( e . line . bgClass || "" ) : e . line . bgClass ; if ( t && ( t += " CodeMirror-linebackground" ) , e . background ) t ? e . background . className = t : ( e . background . parentNode . removeChild ( e . background ) , e . background = null ) ; else if ( t ) { var n = H ( e ) ; e . background = n . insertBefore ( ji ( "div" , null , t ) , n . firstChild ) } } function B ( e , t ) { var n = e . display . externalMeasured ; return n && n . line == t . line ? ( e . display . externalMeasured = null , t . measure = n . measure , n . built ) : Br ( e , t ) } function _ ( e , t ) { var n = t . text . className , r = B ( e , t ) ; t . text == t . node && ( t . node = r . pre ) , t . text . parentNode . replaceChild ( r . pre , t . text ) , t . text = r . pre , r . bgClass != t . bgClass || r . textClass != t . textClass ? ( t . bgClass = r . bgClass , t . textClass = r . textClass , F ( t ) ) : n && ( t . text . className = n ) } function F ( e ) { W ( e ) , e . line . wrapClass ? H ( e ) . className = e . line . wrapClass : e . node != e . text && ( e . node . className = "" ) ; var t = e . textClass ? e . textClass + " " + ( e . line . textClass || "" ) : e . line . textClass ; e . text . className = t || "" } function z ( e , t , n , r ) { if ( t . gutter && ( t . node . removeChild ( t . gutter ) , t . gutter = null ) , t . gutterBackground && ( t . node . removeChild ( t . gutterBackground ) , t . gutterBackground = null ) , t . line . gutterClass ) { var i = H ( t ) ; t . gutterBackground = ji ( "div" , null , "CodeMirror-gutter-background " + t . line . gutterClass , "left: " + ( e . options . fixedGutter ? r . fixedPos : - r . gutterTotalWidth ) + "px; width: " + r . gutterTotalWidth + "px" ) , i . insertBefore ( t . gutterBackground ,
var o = r . view [ Bt ( e , t ) ] ; if ( null != o . node ) { var a = o . changes || ( o . changes = [ ] ) ; - 1 == Pi ( a , n ) && a . push ( n ) } } } function Wt ( e ) { e . display . viewFrom = e . display . viewTo = e . doc . first , e . display . view = [ ] , e . display . viewOffset = 0 } function Bt ( e , t ) { if ( t >= e . display . viewTo ) return null ; if ( t -= e . display . viewFrom , 0 > t ) return null ; for ( var n = e . display . view , r = 0 ; r < n . length ; r ++ ) if ( t -= n [ r ] . size , 0 > t ) return r } function _t ( e , t , n , r ) { var i , o = Bt ( e , t ) , a = e . display . view ; if ( ! Wo || n == e . doc . first + e . doc . size ) return { index : o , lineN : n } ; for ( var l = 0 , s = e . display . viewFrom ; o > l ; l ++ ) s += a [ l ] . size ; if ( s != t ) { if ( r > 0 ) { if ( o == a . length - 1 ) return null ; i = s + a [ o ] . size - t , o ++ } else i = s - t ; t += i , n += i } for ( ; br ( e . doc , n ) != n ; ) { if ( o == ( 0 > r ? 0 : a . length - 1 ) ) return null ; n += r * a [ o - ( 0 > r ? 1 : 0 ) ] . size , o += r } return { index : o , lineN : n } } function Ft ( e , t , n ) { var r = e . display , i = r . view ; 0 == i . length || t >= r . viewTo || n <= r . viewFrom ? ( r . view = Rt ( e , t , n ) , r . viewFrom = t ) : ( r . viewFrom > t ? r . view = Rt ( e , t , r . viewFrom ) . concat ( r . view ) : r . viewFrom < t && ( r . view = r . view . slice ( Bt ( e , t ) ) ) , r . viewFrom = t , r . viewTo < n ? r . view = r . view . concat ( Rt ( e , r . viewTo , n ) ) : r . viewTo > n && ( r . view = r . view . slice ( 0 , Bt ( e , n ) ) ) ) , r . viewTo = n } function zt ( e ) { for ( var t = e . display . view , n = 0 , r = 0 ; r < t . length ; r ++ ) { var i = t [ r ] ; i . hidden || i . node && ! i . changes || ++ n } return n } function jt ( e ) { function t ( ) { i . activeTouch && ( o = setTimeout ( function ( ) { i . activeTouch = null } , 1e3 ) , a = i . activeTouch , a . end = + new Date ) } function n ( e ) { if ( 1 != e . touches . length ) return ! 1 ; var t = e . touches [ 0 ] ; return t . radiusX <= 1 && t . radiusY <= 1 } function r ( e , t ) { if ( null == t . left ) return ! 0 ; var n = t . left - e . left , r = t . top - e . top ; return n * n + r * r > 400 } var i = e . display ; Ea ( i . scroller , "mousedown" , Et ( e , $t ) ) , xo && 11 > bo ? Ea ( i . scroller , "dblclick" , Et ( e , function ( t ) { if ( ! Ti ( e , t ) ) { var n = Yt ( e , t ) ; if ( n && ! Jt ( e , t ) && ! Gt ( e . display , t ) ) { Ma ( t ) ; var r = e . findWordAt ( n ) ; be ( e . doc , r . anchor , r . head ) } } } ) ) : Ea ( i . scroller , "dblclick" , function ( t ) { Ti ( e , t ) || Ma ( t ) } ) , Do || Ea ( i . scroller , "contextmenu" , function ( t ) { xn ( e , t ) } ) ; var o , a = { end : 0 } ; Ea ( i . scroller , "touchstart" , function ( t ) { if ( ! Ti ( e , t ) && ! n ( t ) ) { clearTimeout ( o ) ; var r = + new Date ; i . activeTouch = { start : r , moved : ! 1 , prev : r - a . end <= 300 ? a : null } , 1 == t . touches . length && ( i . activeTouch . left = t . touches [ 0 ] . pageX , i . activeTouch . top = t . touches [ 0 ] . pageY ) } } ) , Ea ( i . scroller , "touchmove" , function ( ) { i . activeTouch && ( i . activeTouch . moved = ! 0 ) } ) , Ea ( i . scroller , "touchend" , function ( n ) { var o = i . activeTouch ; if ( o && ! Gt ( i , n ) && null != o . left && ! o . moved && new Date - o . start < 300 ) { var a , l = e . coordsChar ( i . activeTouch , "page" ) ; a = ! o . prev || r ( o , o . prev ) ? new fe ( l , l ) : ! o . prev . prev || r ( o , o . prev . prev ) ? e . findWordAt ( l ) : new fe ( Bo ( l . line , 0 ) , me ( e . doc , Bo ( l . line + 1 , 0 ) ) ) , e . setSelection ( a . anchor , a . head ) , e . focus ( ) , Ma ( n ) } t ( ) } ) , Ea ( i . scroller , "touchcancel" , t ) , Ea ( i . scroller , "scroll" , function ( ) { i . scroller . clientHeight && ( rn ( e , i . scroller . scrollTop ) , on ( e , i . scroller . scrollLeft , ! 0 ) , Pa ( e , "scroll" , e ) ) } ) , Ea ( i . scroller , "mousewheel" , function ( t ) { an ( e , t ) } ) , Ea ( i . scroller , "DOMMouseScroll" , function ( t ) { an ( e , t ) } ) , Ea ( i . wrapper , "scroll" , function ( ) { i . wrapper . scrollTop = i . wrapper . scrollLeft = 0 } ) , i . dragFunctions = { enter : function ( t ) { Ti ( e , t ) || Aa ( t ) } , over : function ( t ) { Ti ( e , t ) || ( tn ( e , t ) , Aa ( t ) ) } , start : function ( t ) { en ( e , t ) } , drop : Et ( e , Qt ) , leave : function ( t ) { Ti ( e , t ) || nn ( e ) } } ; var l = i . input . getField ( ) ; Ea ( l , "keyup" , function ( t ) { pn . call ( e , t ) } ) , Ea ( l , "keydown" , Et ( e , hn ) ) , Ea ( l , "keypress" , Et ( e , mn ) ) , Ea ( l , "focus" , Bi ( vn , e ) ) , Ea ( l , "blur" , Bi ( yn , e ) ) } function Ut ( t , n , r ) { var i = r && r != e . Init ; if ( ! n != ! i ) { var o = t . display . dragFunctions , a = n ? Ea : Ia ; a ( t . display . scroller , "dragstart" , o . start ) , a ( t . display . scroller , "dragenter" , o . enter ) , a ( t . display . scroller , "dragover" , o . over ) , a ( t . display . scroller , "dragleave" , o . leave ) , a ( t . display . scroller , "drop" , o . drop ) } } function qt ( e ) { var t = e . display ; t . lastWrapHeight == t . wrapper . clientHeight && t . lastWrapWidth == t . wrapper . clientWidth || ( t . cachedCharWidth = t . cachedTextHeight = t . cachedPaddingH = null , t . scrollbarsClipped = ! 1 , e . setSize ( ) ) } function Gt ( e , t ) { for ( var n = wi ( t ) ; n != e . wrapper ; n = n . parentNode ) if ( ! n || 1 == n . nodeType && "true" == n . getAttribute ( "cm-ignore-events" ) || n . parentNode == e . sizer && n != e . mover ) return ! 0 } function Yt ( e , t , n , r ) { var i = e . display ; if ( ! n && "true" == wi ( t ) . getAttribute ( "cm-not-content" ) ) return null ; var o , a , l = i . lineSpace . getBoundingClientRect ( ) ; try { o = t . clientX - l . left , a = t . clientY - l . top } catch ( t ) { return null } var s , c = g
i . line = t , o && ! kr ( e , t ) ) { var r = ri ( t ) < e . scrollTop ; ei ( t , t . height + Lr ( i ) ) , r && Wn ( o , null , i . height ) , o . curOp . forceUpdate = ! 0 } return ! 0 } ) , i } function Mr ( e , t , n , r ) { e . text = t , e . stateAfter && ( e . stateAfter = null ) , e . styles && ( e . styles = null ) , null != e . order && ( e . order = null ) , cr ( e ) , ur ( e , n ) ; var i = r ? r ( e ) : 1 ; i != e . height && ei ( e , i ) } function Nr ( e ) { e . parent = null , cr ( e ) } function Ar ( e , t ) { if ( e ) for ( ; ; ) { var n = e . match ( /(?:^|\s+)line-(background-)?(\S+)/ ) ; if ( ! n ) break ; e = e . slice ( 0 , n . index ) + e . slice ( n . index + n [ 0 ] . length ) ; var r = n [ 1 ] ? "bgClass" : "textClass" ; null == t [ r ] ? t [ r ] = n [ 2 ] : new RegExp ( "(?:^|s)" + n [ 2 ] + "(?:$|s)" ) . test ( t [ r ] ) || ( t [ r ] += " " + n [ 2 ] ) } return e } function Er ( t , n ) { if ( t . blankLine ) return t . blankLine ( n ) ; if ( t . innerMode ) { var r = e . innerMode ( t , n ) ; return r . mode . blankLine ? r . mode . blankLine ( r . state ) : void 0 } } function Or ( t , n , r , i ) { for ( var o = 0 ; 10 > o ; o ++ ) { i && ( i [ 0 ] = e . innerMode ( t , r ) . mode ) ; var a = t . token ( n , r ) ; if ( n . pos > n . start ) return a } throw new Error ( "Mode " + t . name + " failed to advance stream." ) } function Ir ( e , t , n , r ) { function i ( e ) { return { start : f . start , end : f . pos , string : f . current ( ) , type : o || null , state : e ? sa ( a . mode , u ) : u } } var o , a = e . doc , l = a . mode ; t = me ( a , t ) ; var s , c = Zr ( a , t . line ) , u = je ( e , t . line , n ) , f = new ma ( c . text , e . options . tabSize ) ; for ( r && ( s = [ ] ) ; ( r || f . pos < t . ch ) && ! f . eol ( ) ; ) f . start = f . pos , o = Or ( l , f , u ) , r && s . push ( i ( ! 0 ) ) ; return r ? s : i ( ) } function Pr ( e , t , n , r , i , o , a ) { var l = n . flattenSpans ; null == l && ( l = e . options . flattenSpans ) ; var s , c = 0 , u = null , f = new ma ( t , e . options . tabSize ) , h = e . options . addModeClass && [ null ] ; for ( "" == t && Ar ( Er ( n , r ) , o ) ; ! f . eol ( ) ; ) { if ( f . pos > e . options . maxHighlightLength ? ( l = ! 1 , a && Hr ( e , t , r , f . pos ) , f . pos = t . length , s = null ) : s = Ar ( Or ( n , f , r , h ) , o ) , h ) { var d = h [ 0 ] . name ; d && ( s = "m-" + ( s ? d + " " + s : d ) ) } if ( ! l || u != s ) { for ( ; c < f . start ; ) c = Math . min ( f . start , c + 5e4 ) , i ( c , u ) ; u = s } f . start = f . pos } for ( ; c < f . pos ; ) { var p = Math . min ( f . pos , c + 5e4 ) ; i ( p , u ) , c = p } } function Rr ( e , t , n , r ) { var i = [ e . state . modeGen ] , o = { } ; Pr ( e , t . text , e . doc . mode , n , function ( e , t ) { i . push ( e , t ) } , o , r ) ; for ( var a = 0 ; a < e . state . overlays . length ; ++ a ) { var l = e . state . overlays [ a ] , s = 1 , c = 0 ; Pr ( e , t . text , l . mode , ! 0 , function ( e , t ) { for ( var n = s ; e > c ; ) { var r = i [ s ] ; r > e && i . splice ( s , 1 , e , i [ s + 1 ] , r ) , s += 2 , c = Math . min ( e , r ) } if ( t ) if ( l . opaque ) i . splice ( n , s - n , e , "cm-overlay " + t ) , s = n + 2 ; else for ( ; s > n ; n += 2 ) { var o = i [ n + 1 ] ; i [ n + 1 ] = ( o ? o + " " : "" ) + "cm-overlay " + t } } , o ) } return { styles : i , classes : o . bgClass || o . textClass ? o : null } } function Dr ( e , t , n ) { if ( ! t . styles || t . styles [ 0 ] != e . state . modeGen ) { var r = je ( e , ti ( t ) ) , i = Rr ( e , t , t . text . length > e . options . maxHighlightLength ? sa ( e . doc . mode , r ) : r ) ; t . stateAfter = r , t . styles = i . styles , i . classes ? t . styleClasses = i . classes : t . styleClasses && ( t . styleClasses = null ) , n === e . doc . frontier && e . doc . frontier ++ } return t . styles } function Hr ( e , t , n , r ) { var i = e . doc . mode , o = new ma ( t , e . options . tabSize ) ; for ( o . start = o . pos = r || 0 , "" == t && Er ( i , n ) ; ! o . eol ( ) ; ) Or ( i , o , n ) , o . start = o . pos } function Wr ( e , t ) { if ( ! e || /^\s*$/ . test ( e ) ) return null ; var n = t . addModeClass ? ka : wa ; return n [ e ] || ( n [ e ] = e . replace ( /\S+/g , "cm-$&" ) ) } function Br ( e , t ) { var n = ji ( "span" , null , null , wo ? "padding-right: .1px" : null ) , r = { pre : ji ( "pre" , [ n ] , "CodeMirror-line" ) , content : n , col : 0 , pos : 0 , cm : e , splitSpaces : ( xo || wo ) && e . getOption ( "lineWrapping" ) } ; t . measure = { } ; for ( var i = 0 ; i <= ( t . rest ? t . rest . length : 0 ) ; i ++ ) { var o , a = i ? t . rest [ i - 1 ] : t . line ; r . pos = 0 , r . addToken = Fr , Ji ( e . display . measure ) && ( o = ii ( a ) ) && ( r . addToken = jr ( r . addToken , o ) ) , r . map = [ ] ; var l = t != e . display . externalMeasured && ti ( a ) ; qr ( a , r , Dr ( e , a , l ) ) , a . styleClasses && ( a . styleClasses . bgClass && ( r . bgClass = $i ( a . styleClasses . bgClass , r . bgClass || "" ) ) , a . styleClasses . textClass && ( r . textClass = $i ( a . styleClasses . textClass , r . textClass || "" ) ) ) , 0 == r . map . length && r . map . push ( 0 , 0 , r . content . appendChild ( Zi ( e . display . measure ) ) ) , 0 == i ? ( t . measure . map = r . map , t . measure . cache = { } ) : ( ( t . measure . maps || ( t . measure . maps = [ ] ) ) . push ( r . map ) , ( t . measure . caches || ( t . measure . caches = [ ] ) ) . push ( { } ) ) } if ( wo ) { var s = r . content . lastChild ; ( /\bcm-tab\b/ . test ( s . className ) || s . querySelector && s . querySelector ( ".cm-tab" ) ) && ( r . content . className = "cm-tab-wrap-hack" ) } return Pa ( e , "renderLine" , e , t . line , r . pre ) , r . pre . className && ( r . textClass = $i ( r . pre . className , r . textClass || "" ) ) , r } function _r ( e ) { var t = ji ( "span" , "•" , "cm-invalidchar" ) ; return t . title = "\\u" + e . charCodeAt ( 0 ) . toString ( 16 ) , t . setAttribute ( "aria-label" , t . title ) , t } function Fr ( e , t , n , r , i , o , a ) { if ( t ) { var
for ( var f = e . doc . splitLines ( ce ( e , l , u , a , c ) ) , h = Jr ( e . doc , Bo ( a , 0 ) , Bo ( c , Zr ( e . doc , c ) . text . length ) ) ; f . length > 1 && h . length > 1 ; ) if ( Ii ( f ) == Ii ( h ) ) f . pop ( ) , h . pop ( ) , c -- ; else { if ( f [ 0 ] != h [ 0 ] ) break ; f . shift ( ) , h . shift ( ) , a ++ } for ( var d = 0 , p = 0 , m = f [ 0 ] , g = h [ 0 ] , v = Math . min ( m . length , g . length ) ; v > d && m . charCodeAt ( d ) == g . charCodeAt ( d ) ; ) ++ d ; for ( var y = Ii ( f ) , x = Ii ( h ) , b = Math . min ( y . length - ( 1 == f . length ? d : 0 ) , x . length - ( 1 == h . length ? d : 0 ) ) ; b > p && y . charCodeAt ( y . length - p - 1 ) == x . charCodeAt ( x . length - p - 1 ) ; ) ++ p ; f [ f . length - 1 ] = y . slice ( 0 , y . length - p ) , f [ 0 ] = f [ 0 ] . slice ( d ) ; var w = Bo ( a , d ) , k = Bo ( c , h . length ? Ii ( h ) . length - p : 0 ) ; return f . length > 1 || f [ 0 ] || _o ( w , k ) ? ( In ( e . doc , f , w , k , "+input" ) , ! 0 ) : void 0 } , ensurePolled : function ( ) { this . forceCompositionEnd ( ) } , reset : function ( ) { this . forceCompositionEnd ( ) } , forceCompositionEnd : function ( ) { this . composing && ! this . composing . handled && ( this . applyComposition ( this . composing ) , this . composing . handled = ! 0 , this . div . blur ( ) , this . div . focus ( ) ) } , applyComposition : function ( e ) { this . cm . isReadOnly ( ) ? Et ( this . cm , Dt ) ( this . cm ) : e . data && e . data != e . startData && Et ( this . cm , Z ) ( this . cm , e . data , 0 , e . sel ) } , setUneditable : function ( e ) { e . contentEditable = "false" } , onKeyPress : function ( e ) { e . preventDefault ( ) , this . cm . isReadOnly ( ) || Et ( this . cm , Z ) ( this . cm , String . fromCharCode ( null == e . charCode ? e . keyCode : e . charCode ) , 0 ) } , readOnlyChanged : function ( e ) { this . div . contentEditable = String ( "nocursor" != e ) } , onContextMenu : Di , resetPosition : Di , needsContentAttribute : ! 0 } , ie . prototype ) , e . inputStyles = { textarea : ne , contenteditable : ie } , ue . prototype = { primary : function ( ) { return this . ranges [ this . primIndex ] } , equals : function ( e ) { if ( e == this ) return ! 0 ; if ( e . primIndex != this . primIndex || e . ranges . length != this . ranges . length ) return ! 1 ; for ( var t = 0 ; t < this . ranges . length ; t ++ ) { var n = this . ranges [ t ] , r = e . ranges [ t ] ; if ( 0 != _o ( n . anchor , r . anchor ) || 0 != _o ( n . head , r . head ) ) return ! 1 } return ! 0 } , deepCopy : function ( ) { for ( var e = [ ] , t = 0 ; t < this . ranges . length ; t ++ ) e [ t ] = new fe ( $ ( this . ranges [ t ] . anchor ) , $ ( this . ranges [ t ] . head ) ) ; return new ue ( e , this . primIndex ) } , somethingSelected : function ( ) { for ( var e = 0 ; e < this . ranges . length ; e ++ ) if ( ! this . ranges [ e ] . empty ( ) ) return ! 0 ; return ! 1 } , contains : function ( e , t ) { t || ( t = e ) ; for ( var n = 0 ; n < this . ranges . length ; n ++ ) { var r = this . ranges [ n ] ; if ( _o ( t , r . from ( ) ) >= 0 && _o ( e , r . to ( ) ) <= 0 ) return n } return - 1 } } , fe . prototype = { from : function ( ) { return K ( this . anchor , this . head ) } , to : function ( ) { return V ( this . anchor , this . head ) } , empty : function ( ) { return this . head . line == this . anchor . line && this . head . ch == this . anchor . ch } } ; var zo , jo , Uo , qo = { left : 0 , right : 0 , top : 0 , bottom : 0 } , Go = null , Yo = 0 , $o = 0 , Vo = 0 , Ko = null ; xo ? Ko = - . 53 : go ? Ko = 15 : So ? Ko = - . 7 : Lo && ( Ko = - 1 / 3 ) ; var Xo = function ( e ) { var t = e . wheelDeltaX , n = e . wheelDeltaY ; return null == t && e . detail && e . axis == e . HORIZONTAL _AXIS && ( t = e . detail ) , null == n && e . detail && e . axis == e . VERTICAL _AXIS ? n = e . detail : null == n && ( n = e . wheelDelta ) , { x : t , y : n } } ; e . wheelEventPixels = function ( e ) { var t = Xo ( e ) ; return t . x *= Ko , t . y *= Ko , t } ; var Zo = new Ei , Jo = null , Qo = e . changeEnd = function ( e ) { return e . text ? Bo ( e . from . line + e . text . length - 1 , Ii ( e . text ) . length + ( 1 == e . text . length ? e . from . ch : 0 ) ) : e . to } ; e . prototype = { constructor : e , focus : function ( ) { window . focus ( ) , this . display . input . focus ( ) } , setOption : function ( e , t ) { var n = this . options , r = n [ e ] ; n [ e ] == t && "mode" != e || ( n [ e ] = t , ta . hasOwnProperty ( e ) && Et ( this , ta [ e ] ) ( this , t , r ) ) } , getOption : function ( e ) { return this . options [ e ] } , getDoc : function ( ) { return this . doc } , addKeyMap : function ( e , t ) { this . state . keyMaps [ t ? "push" : "unshift" ] ( $n ( e ) ) } , removeKeyMap : function ( e ) { for ( var t = this . state . keyMaps , n = 0 ; n < t . length ; ++ n ) if ( t [ n ] == e || t [ n ] . name == e ) return t . splice ( n , 1 ) , ! 0 } , addOverlay : Ot ( function ( t , n ) { var r = t . token ? t : e . getMode ( this . options , t ) ; if ( r . startState ) throw new Error ( "Overlays may not be stateful." ) ; this . state . overlays . push ( { mode : r , modeSpec : t , opaque : n && n . opaque } ) , this . state . modeGen ++ , Dt ( this ) } ) , removeOverlay : Ot ( function ( e ) { for ( var t = this . state . overlays , n = 0 ; n < t . length ; ++ n ) { var r = t [ n ] . modeSpec ; if ( r == e || "string" == typeof e && r . name == e ) return t . splice ( n , 1 ) , this . state . modeGen ++ , void Dt ( this ) } } ) , indentLine : Ot ( function ( e , t , n ) { "string" != typeof t && "number" != typeof t && ( t = null == t ? this . options . smartIndent ? "smart" : "prev" : t ? "add" : "subtract" ) , ve ( this . doc , e ) && Fn ( this , e , t , n ) } ) , indentSelection : Ot ( function ( e ) { for ( var t = this . doc . sel . ranges , n =
var r = Pi ( e . parent . children , e ) ; e . parent . children . splice ( r + 1 , 0 , n ) } else { var i = new Vr ( e . children ) ; i . parent = e , e . children = [ i , n ] , e = i } n . parent = e . parent } while ( e . children . length > 10 ) ; e . parent . maybeSpill ( ) } } , iterN : function ( e , t , n ) { for ( var r = 0 ; r < this . children . length ; ++ r ) { var i = this . children [ r ] , o = i . chunkSize ( ) ; if ( o > e ) { var a = Math . min ( t , o - e ) ; if ( i . iterN ( e , a , n ) ) return ! 0 ; if ( 0 == ( t -= a ) ) break ; e = 0 } else e -= o } } } ; var Sa = 0 , Ca = e . Doc = function ( e , t , n , r ) { if ( ! ( this instanceof Ca ) ) return new Ca ( e , t , n , r ) ; null == n && ( n = 0 ) , Vr . call ( this , [ new $r ( [ new ba ( "" , null ) ] ) ] ) , this . first = n , this . scrollTop = this . scrollLeft = 0 , this . cantEdit = ! 1 , this . cleanGeneration = 1 , this . frontier = n ; var i = Bo ( n , 0 ) ; this . sel = de ( i ) , this . history = new oi ( null ) , this . id = ++ Sa , this . modeOption = t , this . lineSep = r , this . extend = ! 1 , "string" == typeof e && ( e = this . splitLines ( e ) ) , Yr ( this , { from : i , to : i , text : e } ) , Te ( this , de ( i ) , Wa ) } ; Ca . prototype = Hi ( Vr . prototype , { constructor : Ca , iter : function ( e , t , n ) { n ? this . iterN ( e - this . first , t - e , n ) : this . iterN ( this . first , this . first + this . size , e ) } , insert : function ( e , t ) { for ( var n = 0 , r = 0 ; r < t . length ; ++ r ) n += t [ r ] . height ; this . insertInner ( e - this . first , t , n ) } , remove : function ( e , t ) { this . removeInner ( e - this . first , t ) } , getValue : function ( e ) { var t = Qr ( this , this . first , this . first + this . size ) ; return e === ! 1 ? t : t . join ( e || this . lineSeparator ( ) ) } , setValue : It ( function ( e ) { var t = Bo ( this . first , 0 ) , n = this . first + this . size - 1 ; Tn ( this , { from : t , to : Bo ( n , Zr ( this , n ) . text . length ) , text : this . splitLines ( e ) , origin : "setValue" , full : ! 0 } , ! 0 ) , Te ( this , de ( t ) ) } ) , replaceRange : function ( e , t , n , r ) { t = me ( this , t ) , n = n ? me ( this , n ) : t , In ( this , e , t , n , r ) } , getRange : function ( e , t , n ) { var r = Jr ( this , me ( this , e ) , me ( this , t ) ) ; return n === ! 1 ? r : r . join ( n || this . lineSeparator ( ) ) } , getLine : function ( e ) { var t = this . getLineHandle ( e ) ; return t && t . text } , getLineHandle : function ( e ) { return ve ( this , e ) ? Zr ( this , e ) : void 0 } , getLineNumber : function ( e ) { return ti ( e ) } , getLineHandleVisualStart : function ( e ) { return "number" == typeof e && ( e = Zr ( this , e ) ) , yr ( e ) } , lineCount : function ( ) { return this . size } , firstLine : function ( ) { return this . first } , lastLine : function ( ) { return this . first + this . size - 1 } , clipPos : function ( e ) { return me ( this , e ) } , getCursor : function ( e ) { var t , n = this . sel . primary ( ) ; return t = null == e || "head" == e ? n . head : "anchor" == e ? n . anchor : "end" == e || "to" == e || e === ! 1 ? n . to ( ) : n . from ( ) } , listSelections : function ( ) { return this . sel . ranges } , somethingSelected : function ( ) { return this . sel . somethingSelected ( ) } , setCursor : It ( function ( e , t , n ) { Se ( this , me ( this , "number" == typeof e ? Bo ( e , t || 0 ) : e ) , null , n ) } ) , setSelection : It ( function ( e , t , n ) { Se ( this , me ( this , e ) , me ( this , t || e ) , n ) } ) , extendSelection : It ( function ( e , t , n ) { be ( this , me ( this , e ) , t && me ( this , t ) , n ) } ) , extendSelections : It ( function ( e , t ) { we ( this , ye ( this , e ) , t ) } ) , extendSelectionsBy : It ( function ( e , t ) { var n = Ri ( this . sel . ranges , e ) ; we ( this , ye ( this , n ) , t ) } ) , setSelections : It ( function ( e , t , n ) { if ( e . length ) { for ( var r = 0 , i = [ ] ; r < e . length ; r ++ ) i [ r ] = new fe ( me ( this , e [ r ] . anchor ) , me ( this , e [ r ] . head ) ) ; null == t && ( t = Math . min ( e . length - 1 , this . sel . primIndex ) ) , Te ( this , he ( i , t ) , n ) } } ) , addSelection : It ( function ( e , t , n ) { var r = this . sel . ranges . slice ( 0 ) ; r . push ( new fe ( me ( this , e ) , me ( this , t || e ) ) ) , Te ( this , he ( r , r . length - 1 ) , n ) } ) , getSelection : function ( e ) { for ( var t , n = this . sel . ranges , r = 0 ; r < n . length ; r ++ ) { var i = Jr ( this , n [ r ] . from ( ) , n [ r ] . to ( ) ) ; t = t ? t . concat ( i ) : i } return e === ! 1 ? t : t . join ( e || this . lineSeparator ( ) ) } , getSelections : function ( e ) { for ( var t = [ ] , n = this . sel . ranges , r = 0 ; r < n . length ; r ++ ) { var i = Jr ( this , n [ r ] . from ( ) , n [ r ] . to ( ) ) ; e !== ! 1 && ( i = i . join ( e || this . lineSeparator ( ) ) ) , t [ r ] = i } return t } , replaceSelection : function ( e , t , n ) { for ( var r = [ ] , i = 0 ; i < this . sel . ranges . length ; i ++ ) r [ i ] = e ; this . replaceSelections ( r , t , n || "+input" ) } , replaceSelections : It ( function ( e , t , n ) { for ( var r = [ ] , i = this . sel , o = 0 ; o < i . ranges . length ; o ++ ) { var a = i . ranges [ o ] ; r [ o ] = { from : a . from ( ) , to : a . to ( ) , text : this . splitLines ( e [ o ] ) , origin : n } } for ( var l = t && "end" != t && Cn ( this , r , t ) , o = r . length - 1 ; o >= 0 ; o -- ) Tn ( this , r [ o ] ) ; l ? Le ( this , l ) : this . cm && Bn ( this . cm ) } ) , undo : It ( function ( ) { Nn ( this , "undo" ) } ) , redo : It ( function ( ) { Nn ( this , "redo" ) } ) , undoSelection : It ( function ( ) { Nn ( this , "undo" , ! 0 ) } ) , redoSelection : It ( function ( ) { Nn ( this , "redo" , ! 0 ) } ) , setExtending : function ( e ) { this . extend = e } , getExtending : function ( ) { return this . extend } , historySize : function ( ) { for ( var
ext : [ "gss" ] } , { name : "CMake" , mime : "text/x-cmake" , mode : "cmake" , ext : [ "cmake" , "cmake.in" ] , file : /^CMakeLists.txt$/ } , { name : "CoffeeScript" , mime : "text/x-coffeescript" , mode : "coffeescript" , ext : [ "coffee" ] , alias : [ "coffee" , "coffee-script" ] } , { name : "Common Lisp" , mime : "text/x-common-lisp" , mode : "commonlisp" , ext : [ "cl" , "lisp" , "el" ] , alias : [ "lisp" ] } , { name : "Cypher" , mime : "application/x-cypher-query" , mode : "cypher" , ext : [ "cyp" , "cypher" ] } , { name : "Cython" , mime : "text/x-cython" , mode : "python" , ext : [ "pyx" , "pxd" , "pxi" ] } , { name : "Crystal" , mime : "text/x-crystal" , mode : "crystal" , ext : [ "cr" ] } , { name : "CSS" , mime : "text/css" , mode : "css" , ext : [ "css" ] } , { name : "CQL" , mime : "text/x-cassandra" , mode : "sql" , ext : [ "cql" ] } , { name : "D" , mime : "text/x-d" , mode : "d" , ext : [ "d" ] } , { name : "Dart" , mimes : [ "application/dart" , "text/x-dart" ] , mode : "dart" , ext : [ "dart" ] } , { name : "diff" , mime : "text/x-diff" , mode : "diff" , ext : [ "diff" , "patch" ] } , { name : "Django" , mime : "text/x-django" , mode : "django" } , { name : "Dockerfile" , mime : "text/x-dockerfile" , mode : "dockerfile" , file : /^Dockerfile$/ } , { name : "DTD" , mime : "application/xml-dtd" , mode : "dtd" , ext : [ "dtd" ] } , { name : "Dylan" , mime : "text/x-dylan" , mode : "dylan" , ext : [ "dylan" , "dyl" , "intr" ] } , { name : "EBNF" , mime : "text/x-ebnf" , mode : "ebnf" } , { name : "ECL" , mime : "text/x-ecl" , mode : "ecl" , ext : [ "ecl" ] } , { name : "edn" , mime : "application/edn" , mode : "clojure" , ext : [ "edn" ] } , { name : "Eiffel" , mime : "text/x-eiffel" , mode : "eiffel" , ext : [ "e" ] } , { name : "Elm" , mime : "text/x-elm" , mode : "elm" , ext : [ "elm" ] } , { name : "Embedded Javascript" , mime : "application/x-ejs" , mode : "htmlembedded" , ext : [ "ejs" ] } , { name : "Embedded Ruby" , mime : "application/x-erb" , mode : "htmlembedded" , ext : [ "erb" ] } , { name : "Erlang" , mime : "text/x-erlang" , mode : "erlang" , ext : [ "erl" ] } , { name : "Factor" , mime : "text/x-factor" , mode : "factor" , ext : [ "factor" ] } , { name : "FCL" , mime : "text/x-fcl" , mode : "fcl" } , { name : "Forth" , mime : "text/x-forth" , mode : "forth" , ext : [ "forth" , "fth" , "4th" ] } , { name : "Fortran" , mime : "text/x-fortran" , mode : "fortran" , ext : [ "f" , "for" , "f77" , "f90" ] } , { name : "F#" , mime : "text/x-fsharp" , mode : "mllike" , ext : [ "fs" ] , alias : [ "fsharp" ] } , { name : "Gas" , mime : "text/x-gas" , mode : "gas" , ext : [ "s" ] } , { name : "Gherkin" , mime : "text/x-feature" , mode : "gherkin" , ext : [ "feature" ] } , { name : "GitHub Flavored Markdown" , mime : "text/x-gfm" , mode : "gfm" , file : /^(readme|contributing|history).md$/i } , { name : "Go" , mime : "text/x-go" , mode : "go" , ext : [ "go" ] } , { name : "Groovy" , mime : "text/x-groovy" , mode : "groovy" , ext : [ "groovy" , "gradle" ] } , { name : "HAML" , mime : "text/x-haml" , mode : "haml" , ext : [ "haml" ] } , { name : "Haskell" , mime : "text/x-haskell" , mode : "haskell" , ext : [ "hs" ] } , { name : "Haskell (Literate)" , mime : "text/x-literate-haskell" , mode : "haskell-literate" , ext : [ "lhs" ] } , { name : "Haxe" , mime : "text/x-haxe" , mode : "haxe" , ext : [ "hx" ] } , { name : "HXML" , mime : "text/x-hxml" , mode : "haxe" , ext : [ "hxml" ] } , { name : "ASP.NET" , mime : "application/x-aspx" , mode : "htmlembedded" , ext : [ "aspx" ] , alias : [ "asp" , "aspx" ] } , { name : "HTML" , mime : "text/html" , mode : "htmlmixed" , ext : [ "html" , "htm" ] , alias : [ "xhtml" ] } , { name : "HTTP" , mime : "message/http" , mode : "http" } , { name : "IDL" , mime : "text/x-idl" , mode : "idl" , ext : [ "pro" ] } , { name : "Jade" , mime : "text/x-jade" , mode : "jade" , ext : [ "jade" ] } , { name : "Java" , mime : "text/x-java" , mode : "clike" , ext : [ "java" ] } , { name : "Java Server Pages" , mime : "application/x-jsp" , mode : "htmlembedded" , ext : [ "jsp" ] , alias : [ "jsp" ] } , { name : "JavaScript" , mimes : [ "text/javascript" , "text/ecmascript" , "application/javascript" , "application/x-javascript" , "application/ecmascript" ] , mode : "javascript" , ext : [ "js" ] , alias : [ "ecmascript" , "js" , "node" ] } , { name : "JSON" , mimes : [ "application/json" , "application/x-json" ] , mode : "javascript" , ext : [ "json" , "map" ] , alias : [ "json5" ] } , { name : "JSON-LD" , mime : "application/ld+json" , mode : "javascript" , ext : [ "jsonld" ] , alias : [ "jsonld" ] } , { name : "JSX" , mime : "text/jsx" , mode : "jsx" , ext : [ "jsx" ] } , { name : "Jinja2" , mime : "null" , mode : "jinja2" } , { name : "Julia" , mime : "text/x-julia" , mode : "julia" , ext : [ "jl" ] } , { name : "Kotlin" , mime : "text/x-kotlin" , mode : "clike" , ext : [ "kt" ] } , { name : "LESS" , mime : "text/x-less" , mode : "css" , ext : [ "less" ] } , { name : "LiveScript" , mime : "text/x-livescript" , mode : "livescript" , ext : [ "ls" ] , alias : [ "ls" ] } , { name : "Lua" , mime : "text/x-lua" , mode : "lua" , ext : [ "lua" ] } , { name : "Markdown" , mime : "text/x-markdown" , mode : "markdown" , ext : [ "markdown" , "md" , "mkd" ] } , { name : "mIRC" , mime : "text/mirc" ,
return this . renderer . list ( a , l ) ; case "list_item_start" : for ( var a = "" ; "list_item_end" !== this . next ( ) . type ; ) a += "text" === this . token . type ? this . parseText ( ) : this . tok ( ) ; return this . renderer . listitem ( a ) ; case "loose_item_start" : for ( var a = "" ; "list_item_end" !== this . next ( ) . type ; ) a += this . tok ( ) ; return this . renderer . listitem ( a ) ; case "html" : var s = this . token . pre || this . options . pedantic ? this . token . text : this . inline . output ( this . token . text ) ; return this . renderer . html ( s ) ; case "paragraph" : return this . renderer . paragraph ( this . inline . output ( this . token . text ) ) ; case "text" : return this . renderer . paragraph ( this . parseText ( ) ) } } , u . exec = u , h . options = h . setOptions = function ( e ) { return f ( h . defaults , e ) , h } , h . defaults = { gfm : ! 0 , tables : ! 0 , breaks : ! 1 , pedantic : ! 1 , sanitize : ! 1 , sanitizer : null , mangle : ! 0 , smartLists : ! 1 , silent : ! 1 , highlight : null , langPrefix : "lang-" , smartypants : ! 1 , headerPrefix : "" , renderer : new o , xhtml : ! 1 } , h . Parser = a , h . parser = a . parse , h . Renderer = o , h . Lexer = t , h . lexer = t . lex , h . InlineLexer = i , h . inlineLexer = i . output , h . parse = h , "undefined" != typeof n && "object" == typeof r ? n . exports = h : "function" == typeof e && e . amd ? e ( function ( ) { return h } ) : this . marked = h } ) . call ( function ( ) { return this || ( "undefined" != typeof window ? window : t ) } ( ) ) } ) . call ( this , "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : { } ) } , { } ] , 18 : [ function ( e , t , n ) { ( function ( n , r ) { "use strict" ; var i = function ( e , t , n , i ) { if ( i = i || { } , this . dictionary = null , this . rules = { } , this . dictionaryTable = { } , this . compoundRules = [ ] , this . compoundRuleCodes = { } , this . replacementTable = [ ] , this . flags = i . flags || { } , e ) { if ( this . dictionary = e , "undefined" != typeof window && "chrome" in window && "extension" in window . chrome && "getURL" in window . chrome . extension ) t || ( t = this . _readFile ( chrome . extension . getURL ( "lib/typo/dictionaries/" + e + "/" + e + ".aff" ) ) ) , n || ( n = this . _readFile ( chrome . extension . getURL ( "lib/typo/dictionaries/" + e + "/" + e + ".dic" ) ) ) ; else { if ( i . dictionaryPath ) var o = i . dictionaryPath ; else if ( "undefined" != typeof r ) var o = r + "/dictionaries" ; else var o = "./dictionaries" ; t || ( t = this . _readFile ( o + "/" + e + "/" + e + ".aff" ) ) , n || ( n = this . _readFile ( o + "/" + e + "/" + e + ".dic" ) ) } this . rules = this . _parseAFF ( t ) , this . compoundRuleCodes = { } ; for ( var a = 0 , l = this . compoundRules . length ; l > a ; a ++ ) for ( var s = this . compoundRules [ a ] , c = 0 , u = s . length ; u > c ; c ++ ) this . compoundRuleCodes [ s [ c ] ] = [ ] ; "ONLYINCOMPOUND" in this . flags && ( this . compoundRuleCodes [ this . flags . ONLYINCOMPOUND ] = [ ] ) , this . dictionaryTable = this . _parseDIC ( n ) ; for ( var a in this . compoundRuleCodes ) 0 == this . compoundRuleCodes [ a ] . length && delete this . compoundRuleCodes [ a ] ; for ( var a = 0 , l = this . compoundRules . length ; l > a ; a ++ ) { for ( var f = this . compoundRules [ a ] , h = "" , c = 0 , u = f . length ; u > c ; c ++ ) { var d = f [ c ] ; h += d in this . compoundRuleCodes ? "(" + this . compoundRuleCodes [ d ] . join ( "|" ) + ")" : d } this . compoundRules [ a ] = new RegExp ( h , "i" ) } } return this } ; i . prototype = { load : function ( e ) { for ( var t in e ) this [ t ] = e [ t ] ; return this } , _readFile : function ( t , r ) { if ( r || ( r = "utf8" ) , "undefined" != typeof XMLHttpRequest ) { var i = new XMLHttpRequest ; return i . open ( "GET" , t , ! 1 ) , i . overrideMimeType && i . overrideMimeType ( "text/plain; charset=" + r ) , i . send ( null ) , i . responseText } if ( "undefined" != typeof e ) { var o = e ( "fs" ) ; try { if ( o . existsSync ( t ) ) { var a = o . statSync ( t ) , l = o . openSync ( t , "r" ) , s = new n ( a . size ) ; return o . readSync ( l , s , 0 , s . length , null ) , s . toString ( r , 0 , s . length ) } console . log ( "Path " + t + " does not exist." ) } catch ( c ) { return console . log ( c ) , "" } } } , _parseAFF : function ( e ) { var t = { } ; e = this . _removeAffixComments ( e ) ; for ( var n = e . split ( "\n" ) , r = 0 , i = n . length ; i > r ; r ++ ) { var o = n [ r ] , a = o . split ( /\s+/ ) , l = a [ 0 ] ; if ( "PFX" == l || "SFX" == l ) { for ( var s = a [ 1 ] , c = a [ 2 ] , u = parseInt ( a [ 3 ] , 10 ) , f = [ ] , h = r + 1 , d = r + 1 + u ; d > h ; h ++ ) { var o = n [ h ] , p = o . split ( /\s+/ ) , m = p [ 2 ] , g = p [ 3 ] . split ( "/" ) , v = g [ 0 ] ; "0" === v && ( v = "" ) ; var y = this . parseRuleCodes ( g [ 1 ] ) , x = p [ 4 ] , b = { } ; b . add = v , y . length > 0 && ( b . continuationClasses = y ) , "." !== x && ( "SFX" === l ? b . match = new RegExp ( x + "$" ) : b . match = new RegExp ( "^" + x ) ) , "0" != m && ( "SFX" === l ? b . remove = new RegExp ( m + "$" ) : b . remove = m ) , f . push ( b ) } t [ s ] = { type : l , combineable : "Y" == c , entries : f } , r += u } else if ( "COMPOUNDRULE" === l ) { for ( var u = parseInt ( a [ 1 ] , 10 ) , h = r + 1 , d = r + 1 + u ; d > h ; h ++ ) { var o = n [ h ] , p = o . split ( /\s+/ ) ; this . compoundRules . push ( p [ 1 ] ) } r += u } else if ( "REP" === l ) { var p = o . split ( /\s+/ ) ; 3 === p . length && this . replacementTable
if ( "|" === e [ t ] ) { for ( var s = ! 1 , c = t + 1 ; c < e . length ; c ++ ) "|" === e [ c ] || r . options . hideIcons && - 1 != r . options . hideIcons . indexOf ( e [ c ] . name ) || ( s = ! 0 ) ; if ( ! s ) continue } ! function ( e ) { var t ; t = "|" === e ? o ( ) : i ( e , r . options . toolbarTips , r . options . shortcuts ) , e . action && ( "function" == typeof e . action ? t . onclick = function ( t ) { t . preventDefault ( ) , e . action ( r ) } : "string" == typeof e . action && ( t . href = e . action , t . target = "_blank" ) ) , a [ e . name || e ] = t , n . appendChild ( t ) } ( e [ t ] ) } r . toolbarElements = a ; var u = this . codemirror ; u . on ( "cursorActivity" , function ( ) { var e = l ( u ) ; for ( var t in a ) ! function ( t ) { var n = a [ t ] ; e [ t ] ? n . className += " active" : "fullscreen" != t && "side-by-side" != t && ( n . className = n . className . replace ( /\s*active\s*/g , "" ) ) } ( t ) } ) ; var f = u . getWrapperElement ( ) ; return f . parentNode . insertBefore ( n , f ) , n } } , B . prototype . createStatusbar = function ( e ) { e = e || this . options . status ; var t = this . options , n = this . codemirror ; if ( e && 0 !== e . length ) { var r , i , o , a = [ ] ; for ( r = 0 ; r < e . length ; r ++ ) if ( i = void 0 , o = void 0 , "object" == typeof e [ r ] ) a . push ( { className : e [ r ] . className , defaultValue : e [ r ] . defaultValue , onUpdate : e [ r ] . onUpdate } ) ; else { var l = e [ r ] ; "words" === l ? ( o = function ( e ) { e . innerHTML = W ( n . getValue ( ) ) } , i = function ( e ) { e . innerHTML = W ( n . getValue ( ) ) } ) : "lines" === l ? ( o = function ( e ) { e . innerHTML = n . lineCount ( ) } , i = function ( e ) { e . innerHTML = n . lineCount ( ) } ) : "cursor" === l ? ( o = function ( e ) { e . innerHTML = "0:0" } , i = function ( e ) { var t = n . getCursor ( ) ; e . innerHTML = t . line + ":" + t . ch } ) : "autosave" === l && ( o = function ( e ) { void 0 != t . autosave && t . autosave . enabled === ! 0 && e . setAttribute ( "id" , "autosaved" ) } ) , a . push ( { className : l , defaultValue : o , onUpdate : i } ) } var s = document . createElement ( "div" ) ; for ( s . className = "editor-statusbar" , r = 0 ; r < a . length ; r ++ ) { var c = a [ r ] , u = document . createElement ( "span" ) ; u . className = c . className , "function" == typeof c . defaultValue && c . defaultValue ( u ) , "function" == typeof c . onUpdate && this . codemirror . on ( "update" , function ( e , t ) { return function ( ) { t . onUpdate ( e ) } } ( u , c ) ) , s . appendChild ( u ) } var f = this . codemirror . getWrapperElement ( ) ; return f . parentNode . insertBefore ( s , f . nextSibling ) , s } } , B . prototype . value = function ( e ) { return void 0 === e ? this . codemirror . getValue ( ) : ( this . codemirror . getDoc ( ) . setValue ( e ) , this ) } , B . toggleBold = c , B . toggleItalic = u , B . toggleStrikethrough = f , B . toggleBlockquote = d , B . toggleHeadingSmaller = p , B . toggleHeadingBigger = m , B . toggleHeading1 = g , B . toggleHeading2 = v , B . toggleHeading3 = y , B . toggleCodeBlock = h , B . toggleUnorderedList = x , B . toggleOrderedList = b , B . cleanBlock = w , B . drawLink = k , B . drawImage = S , B . drawTable = C , B . drawHorizontalRule = L , B . undo = T , B . redo = M , B . togglePreview = A , B . toggleSideBySide = N , B . toggleFullScreen = s , B . prototype . toggleBold = function ( ) { c ( this ) } , B . prototype . toggleItalic = function ( ) { u ( this ) } , B . prototype . toggleStrikethrough = function ( ) { f ( this ) } , B . prototype . toggleBlockquote = function ( ) { d ( this ) } , B . prototype . toggleHeadingSmaller = function ( ) { p ( this ) } , B . prototype . toggleHeadingBigger = function ( ) { m ( this ) } , B . prototype . toggleHeading1 = function ( ) { g ( this ) } , B . prototype . toggleHeading2 = function ( ) { v ( this ) } , B . prototype . toggleHeading3 = function ( ) { y ( this ) } , B . prototype . toggleCodeBlock = function ( ) { h ( this ) } , B . prototype . toggleUnorderedList = function ( ) { x ( this ) } , B . prototype . toggleOrderedList = function ( ) { b ( this ) } , B . prototype . cleanBlock = function ( ) { w ( this ) } , B . prototype . drawLink = function ( ) { k ( this ) } , B . prototype . drawImage = function ( ) { S ( this ) } , B . prototype . drawTable = function ( ) { C ( this ) } , B . prototype . drawHorizontalRule = function ( ) { L ( this ) } , B . prototype . undo = function ( ) { T ( this ) } , B . prototype . redo = function ( ) { M ( this ) } , B . prototype . togglePreview = function ( ) { A ( this ) } , B . prototype . toggleSideBySide = function ( ) { N ( this ) } , B . prototype . toggleFullScreen = function ( ) { s ( this ) } , B . prototype . isPreviewActive = function ( ) { var e = this . codemirror , t = e . getWrapperElement ( ) , n = t . lastChild ; return /editor-preview-active/ . test ( n . className ) } , B . prototype . isSideBySideActive = function ( ) { var e = this . codemirror , t = e . getWrapperElement ( ) , n = t . nextSibling ; return /editor-preview-active-side/ . test ( n . className ) } , B . prototype . isFullscreenActive = function ( ) { var e = this . codemirror ; return e . getOption ( "fullScreen" ) } , B . prototype . getState = function ( ) { var e = this . codemirror ; return l ( e ) } , B . prototype . toTextArea = function ( ) { var e = this . codemirror , t = e . getWrapperElement ( ) ; t . parentNode && ( this . gui . toolbar && t . parent
var E = function ( e ) { return 0 === e . selectionStart && e . selectionEnd === e . value . length } ; if ( ! n . setSelectionRange && n . createTextRange && ( n . setSelectionRange = function ( e , t ) { var n = this . createTextRange ( ) ; n . collapse ( ! 0 ) , n . moveStart ( "character" , e ) , n . moveEnd ( "character" , t ) , n . select ( ) } , E = function ( e ) { try { var t = e . ownerDocument . selection . createRange ( ) } catch ( n ) { } return ! ( ! t || t . parentElement ( ) != e ) && t . text == e . value } ) , i . isOldIE ) { var S = ! 1 , x = function ( e ) { if ( ! S ) { var t = n . value ; if ( ! h && t && t != f ) return e && t == f [ 0 ] ? T . schedule ( ) : ( A ( t ) , S = ! 0 , w ( ) , S = ! 1 , void 0 ) } } , T = o . delayedCall ( x ) ; r . addListener ( n , "propertychange" , x ) ; var N = { 13 : 1 , 27 : 1 } ; r . addListener ( n , "keyup" , function ( e ) { return h && ( ! n . value || N [ e . keyCode ] ) && setTimeout ( F , 0 ) , ( n . value . charCodeAt ( 0 ) || 0 ) < 129 ? T . call ( ) : void ( h ? j ( ) : B ( ) ) } ) , r . addListener ( n , "keydown" , function ( e ) { T . schedule ( 50 ) } ) } var C = function ( e ) { l ? l = ! 1 : E ( n ) ? ( t . selectAll ( ) , b ( ) ) : k && b ( t . selection . isEmpty ( ) ) } , k = null ; this . setInputHandler = function ( e ) { k = e } , this . getInputHandler = function ( ) { return k } ; var L = ! 1 , A = function ( e ) { k && ( e = k ( e ) , k = null ) , c ? ( b ( ) , e && t . onPaste ( e ) , c = ! 1 ) : e == f . charAt ( 0 ) ? L ? t . execCommand ( "del" , { source : "ace" } ) : t . execCommand ( "backspace" , { source : "ace" } ) : ( e . substring ( 0 , 2 ) == f ? e = e . substr ( 2 ) : e . charAt ( 0 ) == f . charAt ( 0 ) ? e = e . substr ( 1 ) : e . charAt ( e . length - 1 ) == f . charAt ( 0 ) && ( e = e . slice ( 0 , - 1 ) ) , e . charAt ( e . length - 1 ) == f . charAt ( 0 ) && ( e = e . slice ( 0 , - 1 ) ) , e && t . onTextInput ( e ) ) , L && ( L = ! 1 ) } , O = function ( e ) { if ( ! h ) { var t = n . value ; A ( t ) , w ( ) } } , M = function ( e , t , n ) { var r = e . clipboardData || window . clipboardData ; if ( r && ! u ) { var i = a || n ? "Text" : "text/plain" ; try { return t ? r . setData ( i , t ) !== ! 1 : r . getData ( i ) } catch ( e ) { if ( ! n ) return M ( e , t , ! 0 ) } } } , _ = function ( e , i ) { var s = t . getCopyText ( ) ; return s ? void ( M ( e , s ) ? ( i ? t . onCut ( ) : t . onCopy ( ) , r . preventDefault ( e ) ) : ( l = ! 0 , n . value = s , n . select ( ) , setTimeout ( function ( ) { l = ! 1 , w ( ) , b ( ) , i ? t . onCut ( ) : t . onCopy ( ) } ) ) ) : r . preventDefault ( e ) } , D = function ( e ) { _ ( e , ! 0 ) } , P = function ( e ) { _ ( e , ! 1 ) } , H = function ( e ) { var s = M ( e ) ; "string" == typeof s ? ( s && t . onPaste ( s , e ) , i . isIE && setTimeout ( b ) , r . preventDefault ( e ) ) : ( n . value = "" , c = ! 0 ) } ; r . addCommandKeyListener ( n , t . onCommandKey . bind ( t ) ) , r . addListener ( n , "select" , C ) , r . addListener ( n , "input" , O ) , r . addListener ( n , "cut" , D ) , r . addListener ( n , "copy" , P ) , r . addListener ( n , "paste" , H ) , ( ! ( "oncut" in n ) || ! ( "oncopy" in n ) || ! ( "onpaste" in n ) ) && r . addListener ( e , "keydown" , function ( e ) { if ( ( ! i . isMac || e . metaKey ) && e . ctrlKey ) switch ( e . keyCode ) { case 67 : P ( e ) ; break ; case 86 : H ( e ) ; break ; case 88 : D ( e ) } } ) ; var B = function ( e ) { h || ! t . onCompositionStart || t . $readOnly || ( h = { } , h . canUndo = t . session . $undoManager , t . onCompositionStart ( ) , setTimeout ( j , 0 ) , t . on ( "mousedown" , F ) , h . canUndo && ! t . selection . isEmpty ( ) && ( t . insert ( "" ) , t . session . markUndoGroup ( ) , t . selection . clearSelection ( ) ) , t . session . markUndoGroup ( ) ) } , j = function ( ) { if ( h && t . onCompositionUpdate && ! t . $readOnly ) { var e = n . value . replace ( /\x01/g , "" ) ; if ( h . lastValue !== e && ( t . onCompositionUpdate ( e ) , h . lastValue && t . undo ( ) , h . canUndo && ( h . lastValue = e ) , h . lastValue ) ) { var r = t . selection . getRange ( ) ; t . insert ( h . lastValue ) , t . session . markUndoGroup ( ) , h . range = t . selection . getRange ( ) , t . selection . setRange ( r ) , t . selection . clearSelection ( ) } } } , F = function ( e ) { if ( t . onCompositionEnd && ! t . $readOnly ) { var r = h ; h = ! 1 ; var i = setTimeout ( function ( ) { i = null ; var e = n . value . replace ( /\x01/g , "" ) ; h || ( e == r . lastValue ? w ( ) : ! r . lastValue && e && ( w ( ) , A ( e ) ) ) } ) ; k = function ( n ) { return i && clearTimeout ( i ) , n = n . replace ( /\x01/g , "" ) , n == r . lastValue ? "" : ( r . lastValue && i && t . undo ( ) , n ) } , t . onCompositionEnd ( ) , t . removeListener ( "mousedown" , F ) , "compositionend" == e . type && r . range && t . selection . setRange ( r . range ) } } , I = o . delayedCall ( j , 50 ) ; r . addListener ( n , "compositionstart" , B ) , i . isGecko ? r . addListener ( n , "text" , function ( ) { I . schedule ( ) } ) : ( r . addListener ( n , "keyup" , function ( ) { I . schedule ( ) } ) , r . addListener ( n , "keydown" , function ( ) { I . schedule ( ) } ) ) , r . addListener ( n , "compositionend" , F ) , this . getElement = function ( ) { return n } , this . setReadOnly = function ( e ) { n . readOnly = e } , this . onContextMenu = function ( e ) { L = ! 0 , b ( t . selection . isEmpty ( ) ) , t . _emit ( "nativecontextmenu" , { target : t , domEvent : e } ) , this . moveToMouse ( e , ! 0 ) } , this . moveToMouse = function ( e , o ) { if ( o || ! i . isOldIE ) { p || ( p = n . style . cssText ) , n . style . cssText = ( o ? "z-index:100000;" : "" ) + "height:" + n . style . height + ";" + ( i . isIE ? "opacity:0.1;" : "" ) ; var u = t . container . getBoundingClientRect ( )
i && ( t . getAccelKey ( ) ? r . removeFold ( i ) : r . expandFold ( i ) , t . stop ( ) ) } ) , e . on ( "gutterclick" , function ( t ) { var n = e . renderer . $gutterLayer . getRegion ( t ) ; if ( "foldWidgets" == n ) { var r = t . getDocumentPosition ( ) . row , i = e . session ; i . foldWidgets && i . foldWidgets [ r ] && e . session . onFoldWidgetClick ( r , t ) , e . isFocused ( ) || e . focus ( ) , t . stop ( ) } } ) , e . on ( "gutterdblclick" , function ( t ) { var n = e . renderer . $gutterLayer . getRegion ( t ) ; if ( "foldWidgets" == n ) { var r = t . getDocumentPosition ( ) . row , i = e . session , s = i . getParentFoldRangeData ( r , ! 0 ) , o = s . range || s . firstRange ; if ( o ) { r = o . start . row ; var u = i . getFoldAt ( r , i . getLine ( r ) . length , 1 ) ; u ? i . removeFold ( u ) : ( i . addFold ( "..." , o ) , e . renderer . scrollCursorIntoView ( { row : o . start . row , column : 0 } ) ) } t . stop ( ) } } ) } t . FoldHandler = r } ) , ace . define ( "ace/keyboard/keybinding" , [ "require" , "exports" , "module" , "ace/lib/keys" , "ace/lib/event" ] , function ( e , t , n ) { "use strict" ; var r = e ( "../lib/keys" ) , i = e ( "../lib/event" ) , s = function ( e ) { this . $editor = e , this . $data = { editor : e } , this . $handlers = [ ] , this . setDefaultHandler ( e . commands ) } ; ( function ( ) { this . setDefaultHandler = function ( e ) { this . removeKeyboardHandler ( this . $defaultHandler ) , this . $defaultHandler = e , this . addKeyboardHandler ( e , 0 ) } , this . setKeyboardHandler = function ( e ) { var t = this . $handlers ; if ( t [ t . length - 1 ] != e ) { for ( ; t [ t . length - 1 ] && t [ t . length - 1 ] != this . $defaultHandler ; ) this . removeKeyboardHandler ( t [ t . length - 1 ] ) ; this . addKeyboardHandler ( e , 1 ) } } , this . addKeyboardHandler = function ( e , t ) { if ( e ) { "function" == typeof e && ! e . handleKeyboard && ( e . handleKeyboard = e ) ; var n = this . $handlers . indexOf ( e ) ; n != - 1 && this . $handlers . splice ( n , 1 ) , void 0 == t ? this . $handlers . push ( e ) : this . $handlers . splice ( t , 0 , e ) , n == - 1 && e . attach && e . attach ( this . $editor ) } } , this . removeKeyboardHandler = function ( e ) { var t = this . $handlers . indexOf ( e ) ; return t != - 1 && ( this . $handlers . splice ( t , 1 ) , e . detach && e . detach ( this . $editor ) , ! 0 ) } , this . getKeyboardHandler = function ( ) { return this . $handlers [ this . $handlers . length - 1 ] } , this . getStatusText = function ( ) { var e = this . $data , t = e . editor ; return this . $handlers . map ( function ( n ) { return n . getStatusText && n . getStatusText ( t , e ) || "" } ) . filter ( Boolean ) . join ( " " ) } , this . $callKeyboardHandlers = function ( e , t , n , r ) { for ( var s , o = ! 1 , u = this . $editor . commands , a = this . $handlers . length ; a -- && ( s = this . $handlers [ a ] . handleKeyboard ( this . $data , e , t , n , r ) , ! ( s && s . command && ( o = "null" == s . command || u . exec ( s . command , this . $editor , s . args , r ) , o && r && e != - 1 && 1 != s . passEvent && 1 != s . command . passEvent && i . stopEvent ( r ) , o ) ) ) ; ) ; return ! o && e == - 1 && ( s = { command : "insertstring" } , o = u . exec ( "insertstring" , this . $editor , t ) ) , o && this . $editor . _signal && this . $editor . _signal ( "keyboardActivity" , s ) , o } , this . onCommandKey = function ( e , t , n ) { var i = r . keyCodeToString ( n ) ; this . $callKeyboardHandlers ( t , i , n , e ) } , this . onTextInput = function ( e ) { this . $callKeyboardHandlers ( - 1 , e ) } } ) . call ( s . prototype ) , t . KeyBinding = s } ) , ace . define ( "ace/range" , [ "require" , "exports" , "module" ] , function ( e , t , n ) { "use strict" ; var r = function ( e , t ) { return e . row - t . row || e . column - t . column } , i = function ( e , t , n , r ) { this . start = { row : e , column : t } , this . end = { row : n , column : r } } ; ( function ( ) { this . isEqual = function ( e ) { return this . start . row === e . start . row && this . end . row === e . end . row && this . start . column === e . start . column && this . end . column === e . end . column } , this . toString = function ( ) { return "Range: [" + this . start . row + "/" + this . start . column + "] -> [" + this . end . row + "/" + this . end . column + "]" } , this . contains = function ( e , t ) { return 0 == this . compare ( e , t ) } , this . compareRange = function ( e ) { var t , n = e . end , r = e . start ; return t = this . compare ( n . row , n . column ) , 1 == t ? ( t = this . compare ( r . row , r . column ) , 1 == t ? 2 : 0 == t ? 1 : 0 ) : t == - 1 ? - 2 : ( t = this . compare ( r . row , r . column ) , t == - 1 ? - 1 : 1 == t ? 42 : 0 ) } , this . comparePoint = function ( e ) { return this . compare ( e . row , e . column ) } , this . containsRange = function ( e ) { return 0 == this . comparePoint ( e . start ) && 0 == this . comparePoint ( e . end ) } , this . intersects = function ( e ) { var t = this . compareRange ( e ) ; return t == - 1 || 0 == t || 1 == t } , this . isEnd = function ( e , t ) { return this . end . row == e && this . end . column == t } , this . isStart = function ( e , t ) { return this . start . row == e && this . start . column == t } , this . setStart = function ( e , t ) { "object" == typeof e ? ( this . start . column = e . column , this . start . row = e . row ) : ( this . start . row = e , this . start . column = t ) } , this . setEnd = function ( e , t ) { "object" == typeof e ? ( this . end . column = e . column , this . end . row = e . row ) : ( this .
return f . autoInsertedBrackets > 0 && e . row === f . autoInsertedRow && n === f . autoInsertedLineEnd [ 0 ] && t . substr ( e . column ) === f . autoInsertedLineEnd } , p . isMaybeInsertedClosing = function ( e , t ) { return f . maybeInsertedBrackets > 0 && e . row === f . maybeInsertedRow && t . substr ( e . column ) === f . maybeInsertedLineEnd && t . substr ( 0 , e . column ) == f . maybeInsertedLineStart } , p . popAutoInsertedClosing = function ( ) { f . autoInsertedLineEnd = f . autoInsertedLineEnd . substr ( 1 ) , f . autoInsertedBrackets -- } , p . clearMaybeInsertedClosing = function ( ) { f && ( f . maybeInsertedBrackets = 0 , f . maybeInsertedRow = - 1 ) } , r . inherits ( p , i ) , t . CstyleBehaviour = p } ) , ace . define ( "ace/unicode" , [ "require" , "exports" , "module" ] , function ( e , t , n ) { "use strict" ; function r ( e ) { var n = /\w{4}/g ; for ( var r in e ) t . packages [ r ] = e [ r ] . replace ( n , "\\u$&" ) } t . packages = { } , r ( { L : "0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC" , Ll : " 0061 - 007 A00AA00B500BA00DF - 00 F600F8 - 00 FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E - 0180018301850188018 C018D019201950199 - 019 B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD - 01 BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B
var r = t . start . row , i = t . start . column , s = e [ r ] || "" ; switch ( t . action ) { case "insert" : var o = t . lines ; if ( 1 === o . length ) e [ r ] = s . substring ( 0 , i ) + t . lines [ 0 ] + s . substring ( i ) ; else { var u = [ r , 1 ] . concat ( t . lines ) ; e . splice . apply ( e , u ) , e [ r ] = s . substring ( 0 , i ) + e [ r ] , e [ r + t . lines . length - 1 ] += s . substring ( i ) } break ; case "remove" : var a = t . end . column , f = t . end . row ; r === f ? e [ r ] = s . substring ( 0 , i ) + s . substring ( a ) : e . splice ( r , f - r + 1 , s . substring ( 0 , i ) + e [ f ] . substring ( a ) ) } } } ) , ace . define ( "ace/anchor" , [ "require" , "exports" , "module" , "ace/lib/oop" , "ace/lib/event_emitter" ] , function ( e , t , n ) { "use strict" ; var r = e ( "./lib/oop" ) , i = e ( "./lib/event_emitter" ) . EventEmitter , s = t . Anchor = function ( e , t , n ) { this . $onChange = this . onChange . bind ( this ) , this . attach ( e ) , "undefined" == typeof n ? this . setPosition ( t . row , t . column ) : this . setPosition ( t , n ) } ; ( function ( ) { function e ( e , t , n ) { var r = n ? e . column <= t . column : e . column < t . column ; return e . row < t . row || e . row == t . row && r } function t ( t , n , r ) { var i = "insert" == t . action , s = ( i ? 1 : - 1 ) * ( t . end . row - t . start . row ) , o = ( i ? 1 : - 1 ) * ( t . end . column - t . start . column ) , u = t . start , a = i ? u : t . end ; return e ( n , u , r ) ? { row : n . row , column : n . column } : e ( a , n , ! r ) ? { row : n . row + s , column : n . column + ( n . row == a . row ? o : 0 ) } : { row : u . row , column : u . column } } r . implement ( this , i ) , this . getPosition = function ( ) { return this . $clipPositionToDocument ( this . row , this . column ) } , this . getDocument = function ( ) { return this . document } , this . $insertRight = ! 1 , this . onChange = function ( e ) { if ( ! ( e . start . row == e . end . row && e . start . row != this . row || e . start . row > this . row ) ) { var n = t ( e , { row : this . row , column : this . column } , this . $insertRight ) ; this . setPosition ( n . row , n . column , ! 0 ) } } , this . setPosition = function ( e , t , n ) { var r ; if ( r = n ? { row : e , column : t } : this . $clipPositionToDocument ( e , t ) , this . row != r . row || this . column != r . column ) { var i = { row : this . row , column : this . column } ; this . row = r . row , this . column = r . column , this . _signal ( "change" , { old : i , value : r } ) } } , this . detach = function ( ) { this . document . removeEventListener ( "change" , this . $onChange ) } , this . attach = function ( e ) { this . document = e || this . document , this . document . on ( "change" , this . $onChange ) } , this . $clipPositionToDocument = function ( e , t ) { var n = { } ; return e >= this . document . getLength ( ) ? ( n . row = Math . max ( 0 , this . document . getLength ( ) - 1 ) , n . column = this . document . getLine ( n . row ) . length ) : e < 0 ? ( n . row = 0 , n . column = 0 ) : ( n . row = e , n . column = Math . min ( this . document . getLine ( n . row ) . length , Math . max ( 0 , t ) ) ) , t < 0 && ( n . column = 0 ) , n } } ) . call ( s . prototype ) } ) , ace . define ( "ace/document" , [ "require" , "exports" , "module" , "ace/lib/oop" , "ace/apply_delta" , "ace/lib/event_emitter" , "ace/range" , "ace/anchor" ] , function ( e , t , n ) { "use strict" ; var r = e ( "./lib/oop" ) , i = e ( "./apply_delta" ) . applyDelta , s = e ( "./lib/event_emitter" ) . EventEmitter , o = e ( "./range" ) . Range , u = e ( "./anchor" ) . Anchor , a = function ( e ) { this . $lines = [ "" ] , 0 === e . length ? this . $lines = [ "" ] : Array . isArray ( e ) ? this . insertMergedLines ( { row : 0 , column : 0 } , e ) : this . insert ( { row : 0 , column : 0 } , e ) } ; ( function ( ) { r . implement ( this , s ) , this . setValue = function ( e ) { var t = this . getLength ( ) - 1 ; this . remove ( new o ( 0 , 0 , t , this . getLine ( t ) . length ) ) , this . insert ( { row : 0 , column : 0 } , e ) } , this . getValue = function ( ) { return this . getAllLines ( ) . join ( this . getNewLineCharacter ( ) ) } , this . createAnchor = function ( e , t ) { return new u ( this , e , t ) } , 0 === "aaa" . split ( /a/ ) . length ? this . $split = function ( e ) { return e . replace ( /\r\n|\r/g , "\n" ) . split ( "\n" ) } : this . $split = function ( e ) { return e . split ( /\r\n|\r|\n/ ) } , this . $detectNewLine = function ( e ) { var t = e . match ( /^.*?(\r\n|\r|\n)/m ) ; this . $autoNewLine = t ? t [ 1 ] : "\n" , this . _signal ( "changeNewLineMode" ) } , this . getNewLineCharacter = function ( ) { switch ( this . $newLineMode ) { case "windows" : return "\r\n" ; case "unix" : return "\n" ; default : return this . $autoNewLine || "\n" } } , this . $autoNewLine = "" , this . $newLineMode = "auto" , this . setNewLineMode = function ( e ) { this . $newLineMode !== e && ( this . $newLineMode = e , this . _signal ( "changeNewLineMode" ) ) } , this . getNewLineMode = function ( ) { return this . $newLineMode } , this . isNewLine = function ( e ) { return "\r\n" == e || "\r" == e || "\n" == e } , this . getLine = function ( e ) { return this . $lines [ e ] || "" } , this . getLines = function ( e , t ) { return this . $lines . slice ( e , t + 1 ) } , this . getAllLines = function ( ) { return this . getLines ( 0 , this . getLength ( ) ) } , this . getLength = function ( ) { return this . $lines . length } , this . getTextRange = function ( e ) { return this . getLinesForRange ( e ) . join ( this . getNewLineCharacte
column : a + o . getCurrentTokenColumn ( ) } } else c == e && ( s += 1 ) ; a += 1 } do u = o . stepForward ( ) ; while ( u && ! n . test ( u . type ) ) ; if ( null == u ) break ; a = 0 } return null } } } var r = e ( "../token_iterator" ) . TokenIterator , i = e ( "../range" ) . Range ; t . BracketMatch = s } ) , ace . define ( "ace/edit_session" , [ "require" , "exports" , "module" , "ace/lib/oop" , "ace/lib/lang" , "ace/config" , "ace/lib/event_emitter" , "ace/selection" , "ace/mode/text" , "ace/range" , "ace/document" , "ace/background_tokenizer" , "ace/search_highlight" , "ace/edit_session/folding" , "ace/edit_session/bracket_match" ] , function ( e , t , n ) { "use strict" ; var r = e ( "./lib/oop" ) , i = e ( "./lib/lang" ) , s = e ( "./config" ) , o = e ( "./lib/event_emitter" ) . EventEmitter , u = e ( "./selection" ) . Selection , a = e ( "./mode/text" ) . Mode , f = e ( "./range" ) . Range , l = e ( "./document" ) . Document , c = e ( "./background_tokenizer" ) . BackgroundTokenizer , h = e ( "./search_highlight" ) . SearchHighlight , p = function ( e , t ) { this . $breakpoints = [ ] , this . $decorations = [ ] , this . $frontMarkers = { } , this . $backMarkers = { } , this . $markerId = 1 , this . $undoSelect = ! 0 , this . $foldData = [ ] , this . id = "session" + ++ p . $uid , this . $foldData . toString = function ( ) { return this . join ( "\n" ) } , this . on ( "changeFold" , this . onChangeFold . bind ( this ) ) , this . $onChange = this . onChange . bind ( this ) , "object" == typeof e && e . getLine || ( e = new l ( e ) ) , this . setDocument ( e ) , this . selection = new u ( this ) , s . resetOptions ( this ) , this . setMode ( t ) , s . _signal ( "session" , this ) } ; ( function ( ) { function m ( e ) { return ! ( e < 4352 ) && ( e >= 4352 && e <= 4447 || e >= 4515 && e <= 4519 || e >= 4602 && e <= 4607 || e >= 9001 && e <= 9002 || e >= 11904 && e <= 11929 || e >= 11931 && e <= 12019 || e >= 12032 && e <= 12245 || e >= 12272 && e <= 12283 || e >= 12288 && e <= 12350 || e >= 12353 && e <= 12438 || e >= 12441 && e <= 12543 || e >= 12549 && e <= 12589 || e >= 12593 && e <= 12686 || e >= 12688 && e <= 12730 || e >= 12736 && e <= 12771 || e >= 12784 && e <= 12830 || e >= 12832 && e <= 12871 || e >= 12880 && e <= 13054 || e >= 13056 && e <= 19903 || e >= 19968 && e <= 42124 || e >= 42128 && e <= 42182 || e >= 43360 && e <= 43388 || e >= 44032 && e <= 55203 || e >= 55216 && e <= 55238 || e >= 55243 && e <= 55291 || e >= 63744 && e <= 64255 || e >= 65040 && e <= 65049 || e >= 65072 && e <= 65106 || e >= 65108 && e <= 65126 || e >= 65128 && e <= 65131 || e >= 65281 && e <= 65376 || e >= 65504 && e <= 65510 ) } r . implement ( this , o ) , this . setDocument = function ( e ) { this . doc && this . doc . removeListener ( "change" , this . $onChange ) , this . doc = e , e . on ( "change" , this . $onChange ) , this . bgTokenizer && this . bgTokenizer . setDocument ( this . getDocument ( ) ) , this . resetCaches ( ) } , this . getDocument = function ( ) { return this . doc } , this . $resetRowCache = function ( e ) { if ( ! e ) return this . $docRowCache = [ ] , void ( this . $screenRowCache = [ ] ) ; var t = this . $docRowCache . length , n = this . $getRowCacheIndex ( this . $docRowCache , e ) + 1 ; t > n && ( this . $docRowCache . splice ( n , t ) , this . $screenRowCache . splice ( n , t ) ) } , this . $getRowCacheIndex = function ( e , t ) { for ( var n = 0 , r = e . length - 1 ; n <= r ; ) { var i = n + r >> 1 , s = e [ i ] ; if ( t > s ) n = i + 1 ; else { if ( ! ( t < s ) ) return i ; r = i - 1 } } return n - 1 } , this . resetCaches = function ( ) { this . $modified = ! 0 , this . $wrapData = [ ] , this . $rowLengthCache = [ ] , this . $resetRowCache ( 0 ) , this . bgTokenizer && this . bgTokenizer . start ( 0 ) } , this . onChangeFold = function ( e ) { var t = e . data ; this . $resetRowCache ( t . start . row ) } , this . onChange = function ( e ) { this . $modified = ! 0 , this . $resetRowCache ( e . start . row ) ; var t = this . $updateInternalDataOnChange ( e ) ; ! this . $fromUndo && this . $undoManager && ! e . ignore && ( this . $deltasDoc . push ( e ) , t && 0 != t . length && this . $deltasFold . push ( { action : "removeFolds" , folds : t } ) , this . $informUndoManager . schedule ( ) ) , this . bgTokenizer && this . bgTokenizer . $updateOnChange ( e ) , this . _signal ( "change" , e ) } , this . setValue = function ( e ) { this . doc . setValue ( e ) , this . selection . moveTo ( 0 , 0 ) , this . $resetRowCache ( 0 ) , this . $deltas = [ ] , this . $deltasDoc = [ ] , this . $deltasFold = [ ] , this . setUndoManager ( this . $undoManager ) , this . getUndoManager ( ) . reset ( ) } , this . getValue = this . toString = function ( ) { return this . doc . getValue ( ) } , this . getSelection = function ( ) { return this . selection } , this . getState = function ( e ) { return this . bgTokenizer . getState ( e ) } , this . getTokens = function ( e ) { return this . bgTokenizer . getTokens ( e ) } , this . getTokenAt = function ( e , t ) { var r , n = this . bgTokenizer . getTokens ( e ) , i = 0 ; if ( null == t ) s = n . length - 1 , i = this . getLine ( e ) . length ; else for ( var s = 0 ; s < n . length && ( i += n [ s ] . value . length , ! ( i >= t ) ) ; s ++ ) ; return r = n [ s ] , r ? ( r . index = s , r . start = i - r . value . length , r ) : null } , this . setUndoManager = function ( e ) { if ( this . $undoManager = e , this . $deltas = [ ] , this . $deltasDoc = [ ] , this
for ( s = 0 ; s < o . length ; s ++ ) { var u = o [ s ] , a = e ( u ) ; if ( a > r ) break } o . splice ( s , 0 , n ) } else delete i [ t ] } , this . addCommands = function ( e ) { e && Object . keys ( e ) . forEach ( function ( t ) { var n = e [ t ] ; if ( n ) { if ( "string" == typeof n ) return this . bindKey ( n , t ) ; "function" == typeof n && ( n = { exec : n } ) , "object" == typeof n && ( n . name || ( n . name = t ) , this . addCommand ( n ) ) } } , this ) } , this . removeCommands = function ( e ) { Object . keys ( e ) . forEach ( function ( t ) { this . removeCommand ( e [ t ] ) } , this ) } , this . bindKeys = function ( e ) { Object . keys ( e ) . forEach ( function ( t ) { this . bindKey ( t , e [ t ] ) } , this ) } , this . _buildKeyHash = function ( e ) { this . bindKey ( e . bindKey , e ) } , this . parseKeys = function ( e ) { var t = e . toLowerCase ( ) . split ( /[\-\+]([\-\+])?/ ) . filter ( function ( e ) { return e } ) , n = t . pop ( ) , i = r [ n ] ; if ( r . FUNCTION _KEYS [ i ] ) n = r . FUNCTION _KEYS [ i ] . toLowerCase ( ) ; else { if ( ! t . length ) return { key : n , hashId : - 1 } ; if ( 1 == t . length && "shift" == t [ 0 ] ) return { key : n . toUpperCase ( ) , hashId : - 1 } } for ( var s = 0 , o = t . length ; o -- ; ) { var u = r . KEY _MODS [ t [ o ] ] ; if ( null == u ) return "undefined" != typeof console && console . error ( "invalid modifier " + t [ o ] + " in " + e ) , ! 1 ; s |= u } return { key : n , hashId : s } } , this . findKeyCommand = function ( t , n ) { var r = s [ t ] + n ; return this . commandKeyBinding [ r ] } , this . handleKeyboard = function ( e , t , n , r ) { if ( ! ( r < 0 ) ) { var i = s [ t ] + n , o = this . commandKeyBinding [ i ] ; return e . $keyChain && ( e . $keyChain += " " + i , o = this . commandKeyBinding [ e . $keyChain ] || o ) , ! o || "chainKeys" != o && "chainKeys" != o [ o . length - 1 ] ? ( e . $keyChain && ( t && 4 != t || 1 != n . length ? ( t == - 1 || r > 0 ) && ( e . $keyChain = "" ) : e . $keyChain = e . $keyChain . slice ( 0 , - i . length - 1 ) ) , { command : o } ) : ( e . $keyChain = e . $keyChain || i , { command : "null" } ) } } , this . getStatusText = function ( e , t ) { return t . $keyChain || "" } } . call ( o . prototype ) , t . HashHandler = o , t . MultiHashHandler = u } ) , ace . define ( "ace/commands/command_manager" , [ "require" , "exports" , "module" , "ace/lib/oop" , "ace/keyboard/hash_handler" , "ace/lib/event_emitter" ] , function ( e , t , n ) { "use strict" ; var r = e ( "../lib/oop" ) , i = e ( "../keyboard/hash_handler" ) . MultiHashHandler , s = e ( "../lib/event_emitter" ) . EventEmitter , o = function ( e , t ) { i . call ( this , t , e ) , this . byName = this . commands , this . setDefaultHandler ( "exec" , function ( e ) { return e . command . exec ( e . editor , e . args || { } ) } ) } ; r . inherits ( o , i ) , function ( ) { r . implement ( this , s ) , this . exec = function ( e , t , n ) { if ( Array . isArray ( e ) ) { for ( var r = e . length ; r -- ; ) if ( this . exec ( e [ r ] , t , n ) ) return ! 0 ; return ! 1 } if ( "string" == typeof e && ( e = this . commands [ e ] ) , ! e ) return ! 1 ; if ( t && t . $readOnly && ! e . readOnly ) return ! 1 ; var i = { editor : t , command : e , args : n } ; return i . returnValue = this . _emit ( "exec" , i ) , this . _signal ( "afterExec" , i ) , i . returnValue !== ! 1 } , this . toggleRecording = function ( e ) { if ( ! this . $inReplay ) return e && e . _emit ( "changeStatus" ) , this . recording ? ( this . macro . pop ( ) , this . removeEventListener ( "exec" , this . $addCommandToMacro ) , this . macro . length || ( this . macro = this . oldMacro ) , this . recording = ! 1 ) : ( this . $addCommandToMacro || ( this . $addCommandToMacro = function ( e ) { this . macro . push ( [ e . command , e . args ] ) } . bind ( this ) ) , this . oldMacro = this . macro , this . macro = [ ] , this . on ( "exec" , this . $addCommandToMacro ) , this . recording = ! 0 ) } , this . replay = function ( e ) { if ( ! this . $inReplay && this . macro ) { if ( this . recording ) return this . toggleRecording ( e ) ; try { this . $inReplay = ! 0 , this . macro . forEach ( function ( t ) { "string" == typeof t ? this . exec ( t , e ) : this . exec ( t [ 0 ] , e , t [ 1 ] ) } , this ) } finally { this . $inReplay = ! 1 } } } , this . trimMacro = function ( e ) { return e . map ( function ( e ) { return "string" != typeof e [ 0 ] && ( e [ 0 ] = e [ 0 ] . name ) , e [ 1 ] || ( e = e [ 0 ] ) , e } ) } } . call ( o . prototype ) , t . CommandManager = o } ) , ace . define ( "ace/commands/default_commands" , [ "require" , "exports" , "module" , "ace/lib/lang" , "ace/config" , "ace/range" ] , function ( e , t , n ) { "use strict" ; function o ( e , t ) { return { win : e , mac : t } } var r = e ( "../lib/lang" ) , i = e ( "../config" ) , s = e ( "../range" ) . Range ; t . commands = [ { name : "showSettingsMenu" , bindKey : o ( "Ctrl-," , "Command-," ) , exec : function ( e ) { i . loadModule ( "ace/ext/settings_menu" , function ( t ) { t . init ( e ) , e . showSettingsMenu ( ) } ) } , readOnly : ! 0 } , { name : "goToNextError" , bindKey : o ( "Alt-E" , "Ctrl-E" ) , exec : function ( e ) { i . loadModule ( "ace/ext/error_marker" , function ( t ) { t . showErrorMarker ( e , 1 ) } ) } , scrollIntoView : "animate" , readOnly : ! 0 } , { name : "goToPreviousError" , bindKey : o ( "Alt-Shift-E" , "Ctrl-Shift-E" ) , exec : function ( e ) { i . loadModule ( "ace/ext/error_marker" , function ( t ) { t . showErrorMarker ( e , - 1 ) } ) } , scrollIntoView : "animate" , readOnly : ! 0 } , { n
this . renderer . updateBreakpoints ( ) } , this . onChangeAnnotation = function ( ) { this . renderer . setAnnotations ( this . session . getAnnotations ( ) ) } , this . onChangeMode = function ( e ) { this . renderer . updateText ( ) , this . _emit ( "changeMode" , e ) } , this . onChangeWrapLimit = function ( ) { this . renderer . updateFull ( ) } , this . onChangeWrapMode = function ( ) { this . renderer . onResize ( ! 0 ) } , this . onChangeFold = function ( ) { this . $updateHighlightActiveLine ( ) , this . renderer . updateFull ( ) } , this . getSelectedText = function ( ) { return this . session . getTextRange ( this . getSelectionRange ( ) ) } , this . getCopyText = function ( ) { var e = this . getSelectedText ( ) ; return this . _signal ( "copy" , e ) , e } , this . onCopy = function ( ) { this . commands . exec ( "copy" , this ) } , this . onCut = function ( ) { this . commands . exec ( "cut" , this ) } , this . onPaste = function ( e , t ) { var n = { text : e , event : t } ; this . commands . exec ( "paste" , this , n ) } , this . $handlePaste = function ( e ) { "string" == typeof e && ( e = { text : e } ) , this . _signal ( "paste" , e ) ; var t = e . text ; if ( ! this . inMultiSelectMode || this . inVirtualSelectionMode ) this . insert ( t ) ; else { var n = t . split ( /\r\n|\r|\n/ ) , r = this . selection . rangeList . ranges ; if ( n . length > r . length || n . length < 2 || ! n [ 1 ] ) return this . commands . exec ( "insertstring" , this , t ) ; for ( var i = r . length ; i -- ; ) { var s = r [ i ] ; s . isEmpty ( ) || this . session . remove ( s ) , this . session . insert ( s . start , n [ i ] ) } } } , this . execCommand = function ( e , t ) { return this . commands . exec ( e , this , t ) } , this . insert = function ( e , t ) { var n = this . session , r = n . getMode ( ) , i = this . getCursorPosition ( ) ; if ( this . getBehavioursEnabled ( ) && ! t ) { var s = r . transformAction ( n . getState ( i . row ) , "insertion" , this , n , e ) ; s && ( e !== s . text && ( this . session . mergeUndoDeltas = ! 1 , this . $mergeNextCommand = ! 1 ) , e = s . text ) } if ( "\t" == e && ( e = this . session . getTabString ( ) ) , this . selection . isEmpty ( ) ) { if ( this . session . getOverwrite ( ) ) { var o = new p . fromPoints ( i , i ) ; o . end . column += e . length , this . session . remove ( o ) } } else { var o = this . getSelectionRange ( ) ; i = this . session . remove ( o ) , this . clearSelection ( ) } if ( "\n" == e || "\r\n" == e ) { var u = n . getLine ( i . row ) ; if ( i . column > u . search ( /\S|$/ ) ) { var a = u . substr ( i . column ) . search ( /\S|$/ ) ; n . doc . removeInLine ( i . row , i . column , i . column + a ) } } this . clearSelection ( ) ; var f = i . column , l = n . getState ( i . row ) , u = n . getLine ( i . row ) , c = r . checkOutdent ( l , u , e ) ; n . insert ( i , e ) ; if ( s && s . selection && ( 2 == s . selection . length ? this . selection . setSelectionRange ( new p ( i . row , f + s . selection [ 0 ] , i . row , f + s . selection [ 1 ] ) ) : this . selection . setSelectionRange ( new p ( i . row + s . selection [ 0 ] , s . selection [ 1 ] , i . row + s . selection [ 2 ] , s . selection [ 3 ] ) ) ) , n . getDocument ( ) . isNewLine ( e ) ) { var d = r . getNextLineIndent ( l , u . slice ( 0 , i . column ) , n . getTabString ( ) ) ; n . insert ( { row : i . row + 1 , column : 0 } , d ) } c && r . autoOutdent ( l , n , i . row ) } , this . onTextInput = function ( e ) { this . keyBinding . onTextInput ( e ) } , this . onCommandKey = function ( e , t , n ) { this . keyBinding . onCommandKey ( e , t , n ) } , this . setOverwrite = function ( e ) { this . session . setOverwrite ( e ) } , this . getOverwrite = function ( ) { return this . session . getOverwrite ( ) } , this . toggleOverwrite = function ( ) { this . session . toggleOverwrite ( ) } , this . setScrollSpeed = function ( e ) { this . setOption ( "scrollSpeed" , e ) } , this . getScrollSpeed = function ( ) { return this . getOption ( "scrollSpeed" ) } , this . setDragDelay = function ( e ) { this . setOption ( "dragDelay" , e ) } , this . getDragDelay = function ( ) { return this . getOption ( "dragDelay" ) } , this . setSelectionStyle = function ( e ) { this . setOption ( "selectionStyle" , e ) } , this . getSelectionStyle = function ( ) { return this . getOption ( "selectionStyle" ) } , this . setHighlightActiveLine = function ( e ) { this . setOption ( "highlightActiveLine" , e ) } , this . getHighlightActiveLine = function ( ) { return this . getOption ( "highlightActiveLine" ) } , this . setHighlightGutterLine = function ( e ) { this . setOption ( "highlightGutterLine" , e ) } , this . getHighlightGutterLine = function ( ) { return this . getOption ( "highlightGutterLine" ) } , this . setHighlightSelectedWord = function ( e ) { this . setOption ( "highlightSelectedWord" , e ) } , this . getHighlightSelectedWord = function ( ) { return this . $highlightSelectedWord } , this . setAnimatedScroll = function ( e ) { this . renderer . setAnimatedScroll ( e ) } , this . getAnimatedScroll = function ( ) { return this . renderer . getAnimatedScroll ( ) } , this . setShowInvisibles = function ( e ) { this . renderer . setShowInvisibles ( e ) } , this . getShowInvisibles = function ( ) { return this . renderer . getShowInvisibles ( ) } , this . setDisplayIndentGuides = function ( e ) { this . renderer . se
var s = this . $getTop ( t . start . row , r ) , o = r . lineHeight ; e . push ( "<div class='" , n , "' style='" , "height:" , o , "px;" , "top:" , s , "px;" , "left:0;right:0;" , i || "" , "'></div>" ) } } ) . call ( s . prototype ) , t . Marker = s } ) , ace . define ( "ace/layer/text" , [ "require" , "exports" , "module" , "ace/lib/oop" , "ace/lib/dom" , "ace/lib/lang" , "ace/lib/useragent" , "ace/lib/event_emitter" ] , function ( e , t , n ) { "use strict" ; var r = e ( "../lib/oop" ) , i = e ( "../lib/dom" ) , s = e ( "../lib/lang" ) , u = ( e ( "../lib/useragent" ) , e ( "../lib/event_emitter" ) . EventEmitter ) , a = function ( e ) { this . element = i . createElement ( "div" ) , this . element . className = "ace_layer ace_text-layer" , e . appendChild ( this . element ) , this . $updateEolChar = this . $updateEolChar . bind ( this ) } ; ( function ( ) { r . implement ( this , u ) , this . EOF _CHAR = "¶" , this . EOL _CHAR _LF = "¬" , this . EOL _CHAR _CRLF = "¤" , this . EOL _CHAR = this . EOL _CHAR _LF , this . TAB _CHAR = "—" , this . SPACE _CHAR = "·" , this . $padding = 0 , this . $updateEolChar = function ( ) { var e = "\n" == this . session . doc . getNewLineCharacter ( ) ? this . EOL _CHAR _LF : this . EOL _CHAR _CRLF ; if ( this . EOL _CHAR != e ) return this . EOL _CHAR = e , ! 0 } , this . setPadding = function ( e ) { this . $padding = e , this . element . style . padding = "0 " + e + "px" } , this . getLineHeight = function ( ) { return this . $fontMetrics . $characterSize . height || 0 } , this . getCharacterWidth = function ( ) { return this . $fontMetrics . $characterSize . width || 0 } , this . $setFontMetrics = function ( e ) { this . $fontMetrics = e , this . $fontMetrics . on ( "changeCharacterSize" , function ( e ) { this . _signal ( "changeCharacterSize" , e ) } . bind ( this ) ) , this . $pollSizeChanges ( ) } , this . checkForSizeChanges = function ( ) { this . $fontMetrics . checkForSizeChanges ( ) } , this . $pollSizeChanges = function ( ) { return this . $pollSizeChangesTimer = this . $fontMetrics . $pollSizeChanges ( ) } , this . setSession = function ( e ) { this . session = e , e && this . $computeTabString ( ) } , this . showInvisibles = ! 1 , this . setShowInvisibles = function ( e ) { return this . showInvisibles != e && ( this . showInvisibles = e , this . $computeTabString ( ) , ! 0 ) } , this . displayIndentGuides = ! 0 , this . setDisplayIndentGuides = function ( e ) { return this . displayIndentGuides != e && ( this . displayIndentGuides = e , this . $computeTabString ( ) , ! 0 ) } , this . $tabStrings = [ ] , this . onChangeTabSize = this . $computeTabString = function ( ) { var e = this . session . getTabSize ( ) ; this . tabSize = e ; for ( var t = this . $tabStrings = [ 0 ] , n = 1 ; n < e + 1 ; n ++ ) this . showInvisibles ? t . push ( "<span class='ace_invisible ace_invisible_tab'>" + s . stringRepeat ( this . TAB _CHAR , n ) + "</span>" ) : t . push ( s . stringRepeat ( " " , n ) ) ; if ( this . displayIndentGuides ) { this . $indentGuideRe = /\s\S| \t|\t |\s$/ ; var r = "ace_indent-guide" , i = "" , o = "" ; if ( this . showInvisibles ) { r += " ace_invisible" , i = " ace_invisible_space" , o = " ace_invisible_tab" ; var u = s . stringRepeat ( this . SPACE _CHAR , this . tabSize ) , a = s . stringRepeat ( this . TAB _CHAR , this . tabSize ) } else var u = s . stringRepeat ( " " , this . tabSize ) , a = u ; this . $tabStrings [ " " ] = "<span class='" + r + i + "'>" + u + "</span>" , this . $tabStrings [ "\t" ] = "<span class='" + r + o + "'>" + a + "</span>" } } , this . updateLines = function ( e , t , n ) { ( this . config . lastRow != e . lastRow || this . config . firstRow != e . firstRow ) && this . scrollLines ( e ) , this . config = e ; for ( var r = Math . max ( t , e . firstRow ) , i = Math . min ( n , e . lastRow ) , s = this . element . childNodes , o = 0 , u = e . firstRow ; u < r ; u ++ ) { var a = this . session . getFoldLine ( u ) ; if ( a ) { if ( a . containsRow ( r ) ) { r = a . start . row ; break } u = a . end . row } o ++ } for ( var u = r , a = this . session . getNextFoldLine ( u ) , f = a ? a . start . row : 1 / 0 ; u > f && ( u = a . end . row + 1 , a = this . session . getNextFoldLine ( u , a ) , f = a ? a . start . row : 1 / 0 ) , ! ( u > i ) ; ) { var l = s [ o ++ ] ; if ( l ) { var c = [ ] ; this . $renderLine ( c , u , ! this . $useLineGroups ( ) , u == f && a ) , l . style . height = e . lineHeight * this . session . getRowLength ( u ) + "px" , l . innerHTML = c . join ( "" ) } u ++ } } , this . scrollLines = function ( e ) { var t = this . config ; if ( this . config = e , ! t || t . lastRow < e . firstRow ) return this . update ( e ) ; if ( e . lastRow < t . firstRow ) return this . update ( e ) ; var n = this . element ; if ( t . firstRow < e . firstRow ) for ( var r = this . session . getFoldedRowCount ( t . firstRow , e . firstRow - 1 ) ; r > 0 ; r -- ) n . removeChild ( n . firstChild ) ; if ( t . lastRow > e . lastRow ) for ( var r = this . session . getFoldedRowCount ( e . lastRow + 1 , t . lastRow ) ; r > 0 ; r -- ) n . removeChild ( n . lastChild ) ; if ( e . firstRow < t . firstRow ) { var i = this . $renderLinesFragment ( e , e . firstRow , t . firstRow - 1 ) ; n . firstChild ? n . insertBefore ( i , n . firstChild ) : n . appendChild ( i ) } if ( e . lastRow > t . lastRow ) { var i = this . $renderLinesFragment ( e , t . lastRow + 1 , e . las
this . content . className = "ace_content" , this . scroller . appendChild ( this . content ) , this . $gutterLayer = new u ( this . $gutter ) , this . $gutterLayer . on ( "changeGutterWidth" , this . onGutterResize . bind ( this ) ) , this . $markerBack = new a ( this . content ) ; var r = this . $textLayer = new f ( this . content ) ; this . canvas = r . element , this . $markerFront = new a ( this . content ) , this . $cursorLayer = new l ( this . content ) , this . $horizScroll = ! 1 , this . $vScroll = ! 1 , this . scrollBar = this . scrollBarV = new h ( this . container , this ) , this . scrollBarH = new c ( this . container , this ) , this . scrollBarV . addEventListener ( "scroll" , function ( e ) { n . $scrollAnimation || n . session . setScrollTop ( e . data - n . scrollMargin . top ) } ) , this . scrollBarH . addEventListener ( "scroll" , function ( e ) { n . $scrollAnimation || n . session . setScrollLeft ( e . data - n . scrollMargin . left ) } ) , this . scrollTop = 0 , this . scrollLeft = 0 , this . cursorPos = { row : 0 , column : 0 } , this . $fontMetrics = new d ( this . container ) , this . $textLayer . $setFontMetrics ( this . $fontMetrics ) , this . $textLayer . addEventListener ( "changeCharacterSize" , function ( e ) { n . updateCharacterSize ( ) , n . onResize ( ! 0 , n . gutterWidth , n . $size . width , n . $size . height ) , n . _signal ( "changeCharacterSize" , e ) } ) , this . $size = { width : 0 , height : 0 , scrollerHeight : 0 , scrollerWidth : 0 , $dirty : ! 0 } , this . layerConfig = { width : 1 , padding : 0 , firstRow : 0 , firstRowScreen : 0 , lastRow : 0 , lineHeight : 0 , characterWidth : 0 , minHeight : 1 , maxHeight : 1 , offset : 0 , height : 1 , gutterOffset : 1 } , this . scrollMargin = { left : 0 , right : 0 , top : 0 , bottom : 0 , v : 0 , h : 0 } , this . $loop = new p ( this . $renderChanges . bind ( this ) , this . container . ownerDocument . defaultView ) , this . $loop . schedule ( this . CHANGE _FULL ) , this . updateCharacterSize ( ) , this . setPadding ( 4 ) , s . resetOptions ( this ) , s . _emit ( "renderer" , this ) } ; ( function ( ) { this . CHANGE _CURSOR = 1 , this . CHANGE _MARKER = 2 , this . CHANGE _GUTTER = 4 , this . CHANGE _SCROLL = 8 , this . CHANGE _LINES = 16 , this . CHANGE _TEXT = 32 , this . CHANGE _SIZE = 64 , this . CHANGE _MARKER _BACK = 128 , this . CHANGE _MARKER _FRONT = 256 , this . CHANGE _FULL = 512 , this . CHANGE _H _SCROLL = 1024 , r . implement ( this , v ) , this . updateCharacterSize = function ( ) { this . $textLayer . allowBoldFonts != this . $allowBoldFonts && ( this . $allowBoldFonts = this . $textLayer . allowBoldFonts , this . setStyle ( "ace_nobold" , ! this . $allowBoldFonts ) ) , this . layerConfig . characterWidth = this . characterWidth = this . $textLayer . getCharacterWidth ( ) , this . layerConfig . lineHeight = this . lineHeight = this . $textLayer . getLineHeight ( ) , this . $updatePrintMargin ( ) } , this . setSession = function ( e ) { this . session && this . session . doc . off ( "changeNewLineMode" , this . onChangeNewLineMode ) , this . session = e , e && this . scrollMargin . top && e . getScrollTop ( ) <= 0 && e . setScrollTop ( - this . scrollMargin . top ) , this . $cursorLayer . setSession ( e ) , this . $markerBack . setSession ( e ) , this . $markerFront . setSession ( e ) , this . $gutterLayer . setSession ( e ) , this . $textLayer . setSession ( e ) , e && ( this . $loop . schedule ( this . CHANGE _FULL ) , this . session . $setFontMetrics ( this . $fontMetrics ) , this . scrollBarV . scrollLeft = this . scrollBarV . scrollTop = null , this . onChangeNewLineMode = this . onChangeNewLineMode . bind ( this ) , this . onChangeNewLineMode ( ) , this . session . doc . on ( "changeNewLineMode" , this . onChangeNewLineMode ) ) } , this . updateLines = function ( e , t , n ) { if ( void 0 === t && ( t = 1 / 0 ) , this . $changedLines ? ( this . $changedLines . firstRow > e && ( this . $changedLines . firstRow = e ) , this . $changedLines . lastRow < t && ( this . $changedLines . lastRow = t ) ) : this . $changedLines = { firstRow : e , lastRow : t } , this . $changedLines . lastRow < this . layerConfig . firstRow ) { if ( ! n ) return ; this . $changedLines . lastRow = this . layerConfig . lastRow } this . $changedLines . firstRow > this . layerConfig . lastRow || this . $loop . schedule ( this . CHANGE _LINES ) } , this . onChangeNewLineMode = function ( ) { this . $loop . schedule ( this . CHANGE _TEXT ) , this . $textLayer . $updateEolChar ( ) } , this . onChangeTabSize = function ( ) { this . $loop . schedule ( this . CHANGE _TEXT | this . CHANGE _MARKER ) , this . $textLayer . onChangeTabSize ( ) } , this . updateText = function ( ) { this . $loop . schedule ( this . CHANGE _TEXT ) } , this . updateFull = function ( e ) { e ? this . $renderChanges ( this . CHANGE _FULL , ! 0 ) : this . $loop . schedule ( this . CHANGE _FULL ) } , this . updateFontSize = function ( ) { this . $textLayer . checkForSizeChanges ( ) } , this . $changes = 0 , this . $updateSizeAsync = function ( ) { this . $loop . pending ? this . $size . $dirty = ! 0 : this . onResize ( ) } , this . onResize = function ( e , t , n , r ) { if ( ! ( this . resizing > 2 ) ) { this . resizing > 0 ? this . resizing ++ : this . resizing = e
if ( this . updateAnchors ( e ) , i && ( this . length += n ) , i && ! this . session . $fromUndo ) if ( "insert" === e . action ) for ( var o = this . others . length - 1 ; o >= 0 ; o -- ) { var u = this . others [ o ] , a = { row : u . row , column : u . column + s } ; this . doc . insertMergedLines ( a , e . lines ) } else if ( "remove" === e . action ) for ( var o = this . others . length - 1 ; o >= 0 ; o -- ) { var u = this . others [ o ] , a = { row : u . row , column : u . column + s } ; this . doc . remove ( new r ( a . row , a . column , a . row , a . column - n ) ) } this . $updating = ! 1 , this . updateMarkers ( ) } } , this . updateAnchors = function ( e ) { this . pos . onChange ( e ) ; for ( var t = this . others . length ; t -- ; ) this . others [ t ] . onChange ( e ) ; this . updateMarkers ( ) } , this . updateMarkers = function ( ) { if ( ! this . $updating ) { var e = this , t = this . session , n = function ( n , i ) { t . removeMarker ( n . markerId ) , n . markerId = t . addMarker ( new r ( n . row , n . column , n . row , n . column + e . length ) , i , null , ! 1 ) } ; n ( this . pos , this . mainClass ) ; for ( var i = this . others . length ; i -- ; ) n ( this . others [ i ] , this . othersClass ) } } , this . onCursorChange = function ( e ) { if ( ! this . $updating && this . session ) { var t = this . session . selection . getCursor ( ) ; t . row === this . pos . row && t . column >= this . pos . column && t . column <= this . pos . column + this . length ? ( this . showOtherMarkers ( ) , this . _emit ( "cursorEnter" , e ) ) : ( this . hideOtherMarkers ( ) , this . _emit ( "cursorLeave" , e ) ) } } , this . detach = function ( ) { this . session . removeMarker ( this . pos && this . pos . markerId ) , this . hideOtherMarkers ( ) , this . doc . removeEventListener ( "change" , this . $onUpdate ) , this . session . selection . removeEventListener ( "changeCursor" , this . $onCursorChange ) , this . session . setUndoSelect ( ! 0 ) , this . session = null } , this . cancel = function ( ) { if ( this . $undoStackDepth !== - 1 ) { for ( var e = this . session . getUndoManager ( ) , t = ( e . $undoStack || e . $undostack ) . length - this . $undoStackDepth , n = 0 ; n < t ; n ++ ) e . undo ( ! 0 ) ; this . selectionBefore && this . session . selection . fromJSON ( this . selectionBefore ) } } } ) . call ( o . prototype ) , t . PlaceHolder = o } ) , ace . define ( "ace/mouse/multi_select_handler" , [ "require" , "exports" , "module" , "ace/lib/event" , "ace/lib/useragent" ] , function ( e , t , n ) { function s ( e , t ) { return e . row == t . row && e . column == t . column } function o ( e ) { var t = e . domEvent , n = t . altKey , o = t . shiftKey , u = t . ctrlKey , a = e . getAccelKey ( ) , f = e . getButton ( ) ; if ( u && i . isMac && ( f = t . button ) , e . editor . inMultiSelectMode && 2 == f ) return void e . editor . textInput . onContextMenu ( e . domEvent ) ; if ( ! u && ! n && ! a ) return void ( 0 === f && e . editor . inMultiSelectMode && e . editor . exitMultiSelectMode ( ) ) ; if ( 0 === f ) { var S , l = e . editor , c = l . selection , h = l . inMultiSelectMode , p = e . getDocumentPosition ( ) , d = c . getCursor ( ) , v = e . inSelection ( ) || c . isEmpty ( ) && s ( p , d ) , m = e . x , g = e . y , y = function ( e ) { m = e . clientX , g = e . clientY } , b = l . session , w = l . renderer . pixelToScreenCoordinates ( m , g ) , E = w ; if ( l . $mouseHandler . $enableJumpToDef ) u && n || a && n ? S = o ? "block" : "add" : n && l . $blockSelectEnabled && ( S = "block" ) ; else if ( a && ! n ) { if ( S = "add" , ! h && o ) return } else n && l . $blockSelectEnabled && ( S = "block" ) ; if ( S && i . isMac && t . ctrlKey && l . $mouseHandler . cancelContextMenu ( ) , "add" == S ) { if ( ! h && v ) return ; if ( ! h ) { var x = c . toOrientedRange ( ) ; l . addSelectionMarker ( x ) } var T = c . rangeList . rangeAtPoint ( p ) ; l . $blockScrolling ++ , l . inVirtualSelectionMode = ! 0 , o && ( T = null , x = c . ranges [ 0 ] || x , l . removeSelectionMarker ( x ) ) , l . once ( "mouseup" , function ( ) { var e = c . toOrientedRange ( ) ; T && e . isEmpty ( ) && s ( T . cursor , e . cursor ) ? c . substractPoint ( e . cursor ) : ( o ? c . substractPoint ( x . cursor ) : x && ( l . removeSelectionMarker ( x ) , c . addRange ( x ) ) , c . addRange ( e ) ) , l . $blockScrolling -- , l . inVirtualSelectionMode = ! 1 } ) } else if ( "block" == S ) { e . stop ( ) , l . inVirtualSelectionMode = ! 0 ; var N , C = [ ] , k = function ( ) { var e = l . renderer . pixelToScreenCoordinates ( m , g ) , t = b . screenToDocumentPosition ( e . row , e . column ) ; s ( E , e ) && s ( t , c . lead ) || ( E = e , l . $blockScrolling ++ , l . selection . moveToPosition ( t ) , l . renderer . scrollCursorIntoView ( ) , l . removeSelectionMarkers ( C ) , C = c . rectangularRangeBlock ( E , w ) , l . $mouseHandler . $clickSelection && 1 == C . length && C [ 0 ] . isEmpty ( ) && ( C [ 0 ] = l . $mouseHandler . $clickSelection . clone ( ) ) , C . forEach ( l . addSelectionMarker , l ) , l . updateSelectionMarkers ( ) , l . $blockScrolling -- ) } ; l . $blockScrolling ++ , h && ! a ? c . toSingleRange ( ) : ! h && a && ( N = c . toOrientedRange ( ) , l . addSelectionMarker ( N ) ) , o ? w = b . documentToScreenPosition ( c . lead ) : c . moveToPosition ( p ) , l . $blockScrolling -- , E = { row : - 1 , column : - 1 } ; var L = function ( e ) { clearInterval ( O ) , l . removeSelectionMarkers ( C ) , C . length || ( C = [ c . toOrientedRange ( ) ] ) , l . $blockScrolling ++ , N && ( l . r
s . column = ( c . pos && "number" != typeof c . column ? c . pos . sc : c . column ) || 0 , s . row = c . row , l = e . renderer . $gutterLayer . $annotations [ s . row ] } else { if ( a ) return ; l = { text : [ "Looks good!" ] , className : "ace_ok" } } e . session . unfold ( s . row ) , e . selection . moveToPosition ( s ) ; var h = { row : s . row , fixedWidth : ! 0 , coverGutter : ! 0 , el : i . createElement ( "div" ) , type : "errorMarker" } , p = h . el . appendChild ( i . createElement ( "div" ) ) , d = h . el . appendChild ( i . createElement ( "div" ) ) ; d . className = "error_widget_arrow " + l . className ; var v = e . renderer . $cursorLayer . getPixelPosition ( s ) . left ; d . style . left = v + e . renderer . gutterWidth - 5 + "px" , h . el . className = "error_widget_wrapper" , p . className = "error_widget " + l . className , p . innerHTML = l . text . join ( "<br>" ) , p . appendChild ( i . createElement ( "div" ) ) ; var m = function ( e , t , n ) { if ( 0 === t && ( "esc" === n || "return" === n ) ) return h . destroy ( ) , { command : "null" } } ; h . destroy = function ( ) { e . $mouseHandler . isMousePressed || ( e . keyBinding . removeKeyboardHandler ( m ) , n . widgetManager . removeLineWidget ( h ) , e . off ( "changeSelection" , h . destroy ) , e . off ( "changeSession" , h . destroy ) , e . off ( "mouseup" , h . destroy ) , e . off ( "change" , h . destroy ) ) } , e . keyBinding . addKeyboardHandler ( m ) , e . on ( "changeSelection" , h . destroy ) , e . on ( "changeSession" , h . destroy ) , e . on ( "mouseup" , h . destroy ) , e . on ( "change" , h . destroy ) , e . session . widgetManager . addLineWidget ( h ) , h . el . onmousedown = e . focus . bind ( e ) , e . renderer . scrollCursorIntoView ( null , . 5 , { bottom : h . el . offsetHeight } ) } , i . importCssString ( " .error_widget_wrapper { background: inherit; color: inherit; border:none } .error_widget { border-top: solid 2px; border-bottom: solid 2px; margin: 5px 0; padding: 10px 40px; white-space: pre-wrap; } .error_widget.ace_error, .error_widget_arrow.ace_error{ border-color: #ff5a5a } .error_widget.ace_warning, .error_widget_arrow.ace_warning{ border-color: #F1D817 } .error_widget.ace_info, .error_widget_arrow.ace_info{ border-color: #5a5a5a } .error_widget.ace_ok, .error_widget_arrow.ace_ok{ border-color: #5aaa5a } .error_widget_arrow { position: absolute; border: solid 5px; border-top-color: transparent!important; border-right-color: transparent!important; border-left-color: transparent!important; top: -5px; }" , "" ) } ) , ace . define ( "ace/ace" , [ "require" , "exports" , "module" , "ace/lib/fixoldbrowsers" , "ace/lib/dom" , "ace/lib/event" , "ace/editor" , "ace/edit_session" , "ace/undomanager" , "ace/virtual_renderer" , "ace/worker/worker_client" , "ace/keyboard/hash_handler" , "ace/placeholder" , "ace/multi_select" , "ace/mode/folding/fold_mode" , "ace/theme/textmate" , "ace/ext/error_marker" , "ace/config" ] , function ( e , t , n ) { "use strict" ; e ( "./lib/fixoldbrowsers" ) ; var r = e ( "./lib/dom" ) , i = e ( "./lib/event" ) , s = e ( "./editor" ) . Editor , o = e ( "./edit_session" ) . EditSession , u = e ( "./undomanager" ) . UndoManager , a = e ( "./virtual_renderer" ) . VirtualRenderer ; e ( "./worker/worker_client" ) , e ( "./keyboard/hash_handler" ) , e ( "./placeholder" ) , e ( "./multi_select" ) , e ( "./mode/folding/fold_mode" ) , e ( "./theme/textmate" ) , e ( "./ext/error_marker" ) , t . config = e ( "./config" ) , t . require = e , "function" == typeof define && ( t . define = define ) , t . edit = function ( e ) { if ( "string" == typeof e ) { var n = e ; if ( e = document . getElementById ( n ) , ! e ) throw new Error ( "ace.edit can't find div #" + n ) } if ( e && e . env && e . env . editor instanceof s ) return e . env . editor ; var o = "" ; if ( e && /input|textarea/i . test ( e . tagName ) ) { var u = e ; o = u . value , e = r . createElement ( "pre" ) , u . parentNode . replaceChild ( e , u ) } else e && ( o = r . getInnerText ( e ) , e . innerHTML = "" ) ; var f = t . createEditSession ( o ) , l = new s ( new a ( e ) ) ; l . setSession ( f ) ; var c = { document : f , editor : l , onResize : l . resize . bind ( l , null ) } ; return u && ( c . textarea = u ) , i . addListener ( window , "resize" , c . onResize ) , l . on ( "destroy" , function ( ) { i . removeListener ( window , "resize" , c . onResize ) , c . editor . container . env = null } ) , l . container . env = l . env = c , l } , t . createEditSession = function ( e , t ) { var n = new o ( e , t ) ; return n . setUndoManager ( new u ) , n } , t . EditSession = o , t . UndoManager = u , t . version = "1.2.5" } ) , function ( ) { ace . require ( [ "ace/ace" ] , function ( a ) { a && ( a . config . init ( ! 0 ) , a . define = ace . define ) , window . ace || ( window . ace = a ) ; for ( var key in a ) a . hasOwnProperty ( key ) && ( window . ace [ key ] = a [ key ] ) }
var v = f . value ; if ( p == o . row && ( v = v . substring ( 0 , o . column - d ) ) , this . voidElements . hasOwnProperty ( v . toLowerCase ( ) ) ) return ; return { text : "></" + v + ">" , selection : [ 1 , 1 ] } } } ) , this . add ( "autoindent" , "insertion" , function ( e , t , n , r , i ) { if ( "\n" == i ) { var o = n . getCursorPosition ( ) , u = r . getLine ( o . row ) , a = new s ( r , o . row , o . column ) , f = a . getCurrentToken ( ) ; if ( f && f . type . indexOf ( "tag-close" ) !== - 1 ) { if ( "/>" == f . value ) return ; for ( ; f && f . type . indexOf ( "tag-name" ) === - 1 ; ) f = a . stepBackward ( ) ; if ( ! f ) return ; var l = f . value , c = a . getCurrentTokenRow ( ) ; if ( f = a . stepBackward ( ) , ! f || f . type . indexOf ( "end-tag" ) !== - 1 ) return ; if ( this . voidElements && ! this . voidElements [ l ] ) { var h = r . getTokenAt ( o . row , o . column + 1 ) , u = r . getLine ( c ) , p = this . $getIndent ( u ) , d = p + r . getTabString ( ) ; return h && "</" === h . value ? { text : "\n" + d + "\n" + p , selection : [ 1 , d . length , 1 , d . length ] } : { text : "\n" + d } } } } } ) } ) ; r . inherits ( a , i ) , t . XmlBehaviour = a } ) , ace . define ( "ace/mode/folding/xml" , [ "require" , "exports" , "module" , "ace/lib/oop" , "ace/lib/lang" , "ace/range" , "ace/mode/folding/fold_mode" , "ace/token_iterator" ] , function ( e , t , n ) { "use strict" ; function l ( e , t ) { return e . type . lastIndexOf ( t + ".xml" ) > - 1 } var r = e ( "../../lib/oop" ) , s = ( e ( "../../lib/lang" ) , e ( "../../range" ) . Range ) , o = e ( "./fold_mode" ) . FoldMode , u = e ( "../../token_iterator" ) . TokenIterator , a = t . FoldMode = function ( e , t ) { o . call ( this ) , this . voidElements = e || { } , this . optionalEndTags = r . mixin ( { } , this . voidElements ) , t && r . mixin ( this . optionalEndTags , t ) } ; r . inherits ( a , o ) ; var f = function ( ) { this . tagName = "" , this . closing = ! 1 , this . selfClosing = ! 1 , this . start = { row : 0 , column : 0 } , this . end = { row : 0 , column : 0 } } ; ( function ( ) { this . getFoldWidget = function ( e , t , n ) { var r = this . _getFirstTagInLine ( e , n ) ; return r ? r . closing || ! r . tagName && r . selfClosing ? "markbeginend" == t ? "end" : "" : ! r . tagName || r . selfClosing || this . voidElements . hasOwnProperty ( r . tagName . toLowerCase ( ) ) ? "" : this . _findEndTagInLine ( e , n , r . tagName , r . end . column ) ? "" : "start" : "" } , this . _getFirstTagInLine = function ( e , t ) { for ( var n = e . getTokens ( t ) , r = new f , i = 0 ; i < n . length ; i ++ ) { var s = n [ i ] ; if ( l ( s , "tag-open" ) ) { if ( r . end . column = r . start . column + s . value . length , r . closing = l ( s , "end-tag-open" ) , s = n [ ++ i ] , ! s ) return null ; for ( r . tagName = s . value , r . end . column += s . value . length , i ++ ; i < n . length ; i ++ ) if ( s = n [ i ] , r . end . column += s . value . length , l ( s , "tag-close" ) ) { r . selfClosing = "/>" == s . value ; break } return r } if ( l ( s , "tag-close" ) ) return r . selfClosing = "/>" == s . value , r ; r . start . column += s . value . length } return null } , this . _findEndTagInLine = function ( e , t , n , r ) { for ( var i = e . getTokens ( t ) , s = 0 , o = 0 ; o < i . length ; o ++ ) { var u = i [ o ] ; if ( s += u . value . length , ! ( s < r ) && l ( u , "end-tag-open" ) && ( u = i [ o + 1 ] , u && u . value == n ) ) return ! 0 } return ! 1 } , this . _readTagForward = function ( e ) { var t = e . getCurrentToken ( ) ; if ( ! t ) return null ; var n = new f ; do if ( l ( t , "tag-open" ) ) n . closing = l ( t , "end-tag-open" ) , n . start . row = e . getCurrentTokenRow ( ) , n . start . column = e . getCurrentTokenColumn ( ) ; else if ( l ( t , "tag-name" ) ) n . tagName = t . value ; else if ( l ( t , "tag-close" ) ) return n . selfClosing = "/>" == t . value , n . end . row = e . getCurrentTokenRow ( ) , n . end . column = e . getCurrentTokenColumn ( ) + t . value . length , e . stepForward ( ) , n ; while ( t = e . stepForward ( ) ) ; return null } , this . _readTagBackward = function ( e ) { var t = e . getCurrentToken ( ) ; if ( ! t ) return null ; var n = new f ; do { if ( l ( t , "tag-open" ) ) return n . closing = l ( t , "end-tag-open" ) , n . start . row = e . getCurrentTokenRow ( ) , n . start . column = e . getCurrentTokenColumn ( ) , e . stepBackward ( ) , n ; l ( t , "tag-name" ) ? n . tagName = t . value : l ( t , "tag-close" ) && ( n . selfClosing = "/>" == t . value , n . end . row = e . getCurrentTokenRow ( ) , n . end . column = e . getCurrentTokenColumn ( ) + t . value . length ) } while ( t = e . stepBackward ( ) ) ; return null } , this . _pop = function ( e , t ) { for ( ; e . length ; ) { var n = e [ e . length - 1 ] ; if ( ! t || n . tagName == t . tagName ) return e . pop ( ) ; { if ( ! this . optionalEndTags . hasOwnProperty ( n . tagName ) ) return null ; e . pop ( ) } } } , this . getFoldWidgetRange = function ( e , t , n ) { var r = this . _getFirstTagInLine ( e , n ) ; if ( ! r ) return null ; var a , i = r . closing || r . selfClosing , o = [ ] ; if ( i ) { for ( var f = new u ( e , n , r . end . column ) , c = { row : n , column : r . start . column } ; a = this . _readTagBackward ( f ) ; ) if ( a . selfClosing ) { if ( ! o . length ) return a . start . column += a . tagName . length + 2 , a . end . column -= 2 , s . fromPoints ( a . start , a . end ) } else if ( a . closing ) o . push ( a ) ; else if ( this . _pop ( o , a ) , 0 == o . length ) return a . start . column += a . tagName . length + 2 , a . start . row == a . end . row && a . start . column < a . end . c
return i . map ( function ( e ) { return { caption : e , snippet : e , meta : "html entity" , score : Number . MAX _VALUE } } ) } } ) . call ( h . prototype ) , t . HtmlCompletions = h } ) , ace . define ( "ace/mode/html" , [ "require" , "exports" , "module" , "ace/lib/oop" , "ace/lib/lang" , "ace/mode/text" , "ace/mode/javascript" , "ace/mode/css" , "ace/mode/html_highlight_rules" , "ace/mode/behaviour/xml" , "ace/mode/folding/html" , "ace/mode/html_completions" , "ace/worker/worker_client" ] , function ( e , t , n ) { "use strict" ; var r = e ( "../lib/oop" ) , i = e ( "../lib/lang" ) , s = e ( "./text" ) . Mode , o = e ( "./javascript" ) . Mode , u = e ( "./css" ) . Mode , a = e ( "./html_highlight_rules" ) . HtmlHighlightRules , f = e ( "./behaviour/xml" ) . XmlBehaviour , l = e ( "./folding/html" ) . FoldMode , c = e ( "./html_completions" ) . HtmlCompletions , h = e ( "../worker/worker_client" ) . WorkerClient , p = [ "area" , "base" , "br" , "col" , "embed" , "hr" , "img" , "input" , "keygen" , "link" , "meta" , "menuitem" , "param" , "source" , "track" , "wbr" ] , d = [ "li" , "dt" , "dd" , "p" , "rt" , "rp" , "optgroup" , "option" , "colgroup" , "td" , "th" ] , v = function ( e ) { this . fragmentContext = e && e . fragmentContext , this . HighlightRules = a , this . $behaviour = new f , this . $completer = new c , this . createModeDelegates ( { "js-" : o , "css-" : u } ) , this . foldingRules = new l ( this . voidElements , i . arrayToMap ( d ) ) } ; r . inherits ( v , s ) , function ( ) { this . blockComment = { start : "<!--" , end : "-->" } , this . voidElements = i . arrayToMap ( p ) , this . getNextLineIndent = function ( e , t , n ) { return this . $getIndent ( t ) } , this . checkOutdent = function ( e , t , n ) { return ! 1 } , this . getCompletions = function ( e , t , n , r ) { return this . $completer . getCompletions ( e , t , n , r ) } , this . createWorker = function ( e ) { if ( this . constructor == v ) { var t = new h ( [ "ace" ] , "ace/mode/html_worker" , "Worker" ) ; return t . attachToDocument ( e . getDocument ( ) ) , this . fragmentContext && t . call ( "setOptions" , [ { context : this . fragmentContext } ] ) , t . on ( "error" , function ( t ) { e . setAnnotations ( t . data ) } ) , t . on ( "terminate" , function ( ) { e . clearAnnotations ( ) } ) , t } } , this . $id = "ace/mode/html" } . call ( v . prototype ) , t . Mode = v } ) , ace . define ( "ace/mode/markdown_highlight_rules" , [ "require" , "exports" , "module" , "ace/lib/oop" , "ace/lib/lang" , "ace/mode/text_highlight_rules" , "ace/mode/javascript_highlight_rules" , "ace/mode/xml_highlight_rules" , "ace/mode/html_highlight_rules" , "ace/mode/css_highlight_rules" ] , function ( e , t , n ) { "use strict" ; function c ( e , t ) { return { token : "support.function" , regex : "^\\s*```" + e + "\\s*$" , push : t + "start" } } var r = e ( "../lib/oop" ) , i = e ( "../lib/lang" ) , s = e ( "./text_highlight_rules" ) . TextHighlightRules , o = e ( "./javascript_highlight_rules" ) . JavaScriptHighlightRules , u = e ( "./xml_highlight_rules" ) . XmlHighlightRules , a = e ( "./html_highlight_rules" ) . HtmlHighlightRules , f = e ( "./css_highlight_rules" ) . CssHighlightRules , l = function ( e ) { return "(?:[^" + i . escapeRegExp ( e ) + "\\\\]|\\\\.)*" } , h = function ( ) { a . call ( this ) , this . $rules . start . unshift ( { token : "empty_line" , regex : "^$" , next : "allowBlock" } , { token : "markup.heading.1" , regex : "^=+(?=\\s*$)" } , { token : "markup.heading.2" , regex : "^\\-+(?=\\s*$)" } , { token : function ( e ) { return "markup.heading." + e . length } , regex : /^#{1,6}(?=\s*[^ #]|\s+#.)/ , next : "header" } , c ( "(?:javascript|js)" , "jscode-" ) , c ( "xml" , "xmlcode-" ) , c ( "html" , "htmlcode-" ) , c ( "css" , "csscode-" ) , { token : "support.function" , regex : "^\\s*```\\s*\\S*(?:{.*?\\})?\\s*$" , next : "githubblock" } , { token : "string.blockquote" , regex : "^\\s*>\\s*(?:[*+-]|\\d+\\.)?\\s+" , next : "blockquote" } , { token : "constant" , regex : "^ {0,2}(?:(?: ?\\* ?){3,}|(?: ?\\- ?){3,}|(?: ?\\_ ?){3,})\\s*$" , next : "allowBlock" } , { token : "markup.list" , regex : "^\\s{0,3}(?:[*+-]|\\d+\\.)\\s+" , next : "listblock-start" } , { include : "basic" } ) , this . addRules ( { basic : [ { token : "constant.language.escape" , regex : /\\[\\`*_{}\[\]()#+\-.!]/ } , { token : "support.function" , regex : "(`+)(.*?[^`])(\\1)" } , { token : [ "text" , "constant" , "text" , "url" , "string" , "text" ] , regex : '^([ ]{0,3}\\[)([^\\]]+)(\\]:\\s*)([^ ]+)(\\s*(?:["][^"]+["])?(\\s*))$' } , { token : [ "text" , "string" , "text" , "constant" , "text" ] , regex : "(\\[)(" + l ( "]" ) + ")(\\]\\s*\\[)(" + l ( "]" ) + ")(\\])" } , { token : [ "text" , "string" , "text" , "markup.underline" , "string" , "text" ] , regex : "(\\[)(" + l ( "]" ) + ')(\\]\\()((?:[^\\)\\s\\\\]|\\\\.|\\s(?=[^"]))*)(\\s*"' + l ( '"' ) + '"\\s*)?(\\))' } , { token : "string.strong" , regex : "([*]{2}|[_]{2}(?=\\S))(.*?\\S[*_]*)(\\1)" } , { token : "string.emphasis" , regex : "([*]|[_](?=\\S))(.*?\\S[*_]*)(\\1)" } , { token : [ "
} function jr ( n ) { if ( "string" == typeof n ) return n ; if ( af ( n ) ) return l ( n , jr ) + "" ; if ( Au ( n ) ) return uo ? uo . call ( n ) : "" ; var t = n + "" ; return "0" == t && 1 / n == - N ? "-0" : t } function wr ( n , t , r ) { var e = - 1 , u = c , i = n . length , o = ! 0 , f = [ ] , l = f ; if ( r ) o = ! 1 , u = a ; else if ( 200 <= i ) { if ( u = t ? null : po ( n ) ) return D ( u ) ; o = ! 1 , u = R , l = new qn } else l = t ? [ ] : f ; n : for ( ; ++ e < i ; ) { var s = n [ e ] , h = t ? t ( s ) : s , s = r || 0 !== s ? s : 0 ; if ( o && h === h ) { for ( var p = l . length ; p -- ; ) if ( l [ p ] === h ) continue n ; t && l . push ( h ) , f . push ( s ) } else u ( l , h , r ) || ( l !== f && l . push ( h ) , f . push ( s ) ) } return f } function mr ( n , t ) { return t = Rr ( t , n ) , n = 2 > t . length ? n : It ( n , vr ( t , 0 , - 1 ) ) , null == n || delete n [ $e ( Ge ( t ) ) ] } function Ar ( n , t , r , e ) { for ( var u = n . length , i = e ? u : - 1 ; ( e ? i -- : ++ i < u ) && t ( n [ i ] , i , n ) ; ) ; return r ? vr ( n , e ? 0 : i , e ? i + 1 : u ) : vr ( n , e ? i + 1 : 0 , e ? u : i ) } function kr ( n , t ) { var r = n ; return r instanceof Mn && ( r = r . value ( ) ) , h ( t , function ( n , t ) { return t . func . apply ( t . thisArg , s ( [ n ] , t . args ) ) } , r ) } function Er ( n , t , r ) { var e = n . length ; if ( 2 > e ) return e ? wr ( n [ 0 ] ) : [ ] ; for ( var u = - 1 , i = Hu ( e ) ; ++ u < e ; ) for ( var o = n [ u ] , f = - 1 ; ++ f < e ; ) f != u && ( i [ u ] = jt ( i [ u ] || o , n [ f ] , t , r ) ) ; return wr ( kt ( i , 1 ) , t , r ) } function Or ( n , t , r ) { for ( var e = - 1 , u = n . length , i = t . length , o = { } ; ++ e < u ; ) r ( o , n [ e ] , e < i ? t [ e ] : F ) ; return o } function Sr ( n ) { return _u ( n ) ? n : [ ] } function Ir ( n ) { return "function" == typeof n ? n : Nu } function Rr ( n , t ) { return af ( n ) ? n : We ( n , t ) ? [ n ] : mo ( zu ( n ) ) } function zr ( n , t , r ) { var e = n . length ; return r = r === F ? e : r , ! t && r >= e ? n : vr ( n , t , r ) } function Wr ( n , t ) { if ( t ) return n . slice ( ) ; var r = n . length , r = yi ? yi ( r ) : new n . constructor ( r ) ; return n . copy ( r ) , r } function Br ( n ) { var t = new n . constructor ( n . byteLength ) ; return new di ( t ) . set ( new di ( n ) ) , t } function Lr ( n , t ) { return new n . constructor ( t ? Br ( n . buffer ) : n . buffer , n . byteOffset , n . length ) } function Ur ( n , t ) { if ( n !== t ) { var r = n !== F , e = null === n , u = n === n , i = Au ( n ) , o = t !== F , f = null === t , c = t === t , a = Au ( t ) ; if ( ! f && ! a && ! i && n > t || i && o && c && ! f && ! a || e && o && c || ! r && c || ! u ) return 1 ; if ( ! e && ! i && ! a && n < t || a && r && u && ! e && ! i || f && r && u || ! o && u || ! c ) return - 1 } return 0 } function Cr ( n , t , r , e ) { var u = - 1 , i = n . length , o = r . length , f = - 1 , c = t . length , a = Di ( i - o , 0 ) , l = Hu ( c + a ) ; for ( e = ! e ; ++ f < c ; ) l [ f ] = t [ f ] ; for ( ; ++ u < o ; ) ( e || u < i ) && ( l [ r [ u ] ] = n [ u ] ) ; for ( ; a -- ; ) l [ f ++ ] = n [ u ++ ] ; return l } function Dr ( n , t , r , e ) { var u = - 1 , i = n . length , o = - 1 , f = r . length , c = - 1 , a = t . length , l = Di ( i - f , 0 ) , s = Hu ( l + a ) ; for ( e = ! e ; ++ u < l ; ) s [ u ] = n [ u ] ; for ( l = u ; ++ c < a ; ) s [ l + c ] = t [ c ] ; for ( ; ++ o < f ; ) ( e || u < i ) && ( s [ l + r [ o ] ] = n [ u ++ ] ) ; return s } function Mr ( n , t ) { var r = - 1 , e = n . length ; for ( t || ( t = Hu ( e ) ) ; ++ r < e ; ) t [ r ] = n [ r ] ; return t } function Tr ( n , t , r , e ) { var u = ! r ; r || ( r = { } ) ; for ( var i = - 1 , o = t . length ; ++ i < o ; ) { var f = t [ i ] , c = e ? e ( r [ f ] , n [ f ] , f , r , n ) : F ; c === F && ( c = n [ f ] ) , u ? _t ( r , f , c ) : at ( r , f , c ) } return r } function $r ( n , t ) { return Tr ( n , vo ( n ) , t ) } function Fr ( n , t ) { return Tr ( n , go ( n ) , t ) } function Nr ( n , t ) { return function ( r , u ) { var i = af ( r ) ? e : st , o = t ? t ( ) : { } ; return i ( r , n , je ( u , 2 ) , o ) } } function Pr ( n ) { return lr ( function ( t , r ) { var e = - 1 , u = r . length , i = 1 < u ? r [ u - 1 ] : F , o = 2 < u ? r [ 2 ] : F , i = 3 < n . length && "function" == typeof i ? ( u -- , i ) : F ; for ( o && ze ( r [ 0 ] , r [ 1 ] , o ) && ( i = 3 > u ? F : i , u = 1 ) , t = ni ( t ) ; ++ e < u ; ) ( o = r [ e ] ) && n ( t , o , e , i ) ; return t } ) } function Zr ( n , t ) { return function ( r , e ) { if ( null == r ) return r ; if ( ! pu ( r ) ) return n ( r , e ) ; for ( var u = r . length , i = t ? u : - 1 , o = ni ( r ) ; ( t ? i -- : ++ i < u ) && ! 1 !== e ( o [ i ] , i , o ) ; ) ; return r } } function qr ( n ) { return function ( t , r , e ) { var u = - 1 , i = ni ( t ) ; e = e ( t ) ; for ( var o = e . length ; o -- ; ) { var f = e [ n ? o : ++ u ] ; if ( ! 1 === r ( i [ f ] , f , i ) ) break } return t } } function Vr ( n , t , r ) { function e ( ) { return ( this && this !== Zn && this instanceof e ? i : n ) . apply ( u ? r : this , arguments ) } var u = 1 & t , i = Hr ( n ) ; return e } function Kr ( n ) { return function ( t ) { t = zu ( t ) ; var r = Bn . test ( t ) ? $ ( t ) : F , e = r ? r [ 0 ] : t . charAt ( 0 ) ; return t = r ? zr ( r , 1 ) . join ( "" ) : t . slice ( 1 ) , e [ n ] ( ) + t } } function Gr ( n ) { return function ( t ) { return h ( $u ( Tu ( t ) . replace ( In , "" ) ) , n , "" ) } } function Hr ( n ) { return function ( ) { var t = arguments ; switch ( t . length ) { case 0 : return new n ; case 1 : return new n ( t [ 0 ] ) ; case 2 : return new n ( t [ 0 ] , t [ 1 ] ) ; case 3 : return new n ( t [ 0 ] , t [ 1 ] , t [ 2 ] ) ; case 4 : return new n ( t [ 0 ] , t [ 1 ] , t [ 2 ] , t [ 3 ] ) ; case 5 : return new n ( t [ 0 ] , t [ 1 ] , t [ 2 ] , t [ 3 ] , t [ 4 ] ) ; case 6 : return new n ( t [ 0 ] , t [ 1 ] , t [ 2 ] , t [ 3 ] , t [ 4 ] , t [ 5 ] ) ; case 7 : return new n ( t [ 0 ] , t [ 1 ] , t [ 2 ] , t [ 3 ] , t [ 4 ] , t [ 5 ] , t [ 6 ] ) } var r = io ( n . prototype ) , t = n . apply ( r , t ) ; return bu ( t ) ? t : r } } function Jr ( n , t , e ) { function u ( ) { for ( var o = arguments . length , f = Hu ( o ) , c = o , a = xe ( u ) ; c -- ; ) f [ c ] = arguments [ c ] ; return c = 3 > o && f [ 0 ] !== a && f [ o - 1 ] !== a ? [ ] : C ( f , a ) , o -= c . length , o < e ? fe ( n , t , Xr , u . placeho
_t ( r , e , t ( n , e , u ) ) } ) , r } , On . matches = function ( n ) { return Qt ( dt ( n , 1 ) ) } , On . matchesProperty = function ( n , t ) { return Xt ( n , dt ( t , 1 ) ) } , On . memoize = lu , On . merge = If , On . mergeWith = Rf , On . method = Kf , On . methodOf = Gf , On . mixin = Zu , On . negate = su , On . nthArg = function ( n ) { return n = Ou ( n ) , lr ( function ( t ) { return tr ( t , n ) } ) } , On . omit = zf , On . omitBy = function ( n , t ) { return Cu ( n , su ( je ( t ) ) ) } , On . once = function ( n ) { return ou ( 2 , n ) } , On . orderBy = function ( n , t , r , e ) { return null == n ? [ ] : ( af ( t ) || ( t = null == t ? [ ] : [ t ] ) , r = e ? F : r , af ( r ) || ( r = null == r ? [ ] : [ r ] ) , rr ( n , t , r ) ) } , On . over = Hf , On . overArgs = tf , On . overEvery = Jf , On . overSome = Yf , On . partial = rf , On . partialRight = ef , On . partition = Go , On . pick = Wf , On . pickBy = Cu , On . property = Vu , On . propertyOf = function ( n ) { return function ( t ) { return null == n ? F : It ( n , t ) } } , On . pull = Ro , On . pullAll = He , On . pullAllBy = function ( n , t , r ) { return n && n . length && t && t . length ? or ( n , t , je ( r , 2 ) ) : n } , On . pullAllWith = function ( n , t , r ) { return n && n . length && t && t . length ? or ( n , t , F , r ) : n } , On . pullAt = zo , On . range = Qf , On . rangeRight = Xf , On . rearg = uf , On . reject = function ( n , t ) { return ( af ( n ) ? f : At ) ( n , su ( je ( t , 3 ) ) ) } , On . remove = function ( n , t ) { var r = [ ] ; if ( ! n || ! n . length ) return r ; var e = - 1 , u = [ ] , i = n . length ; for ( t = je ( t , 3 ) ; ++ e < i ; ) { var o = n [ e ] ; t ( o , e , n ) && ( r . push ( o ) , u . push ( e ) ) } return fr ( n , u ) , r } , On . rest = function ( n , t ) { if ( "function" != typeof n ) throw new ei ( "Expected a function" ) ; return t = t === F ? t : Ou ( t ) , lr ( n , t ) } , On . reverse = Je , On . sampleSize = function ( n , t , r ) { return t = ( r ? ze ( n , t , r ) : t === F ) ? 1 : Ou ( t ) , ( af ( n ) ? ot : hr ) ( n , t ) } , On . set = function ( n , t , r ) { return null == n ? n : pr ( n , t , r ) } , On . setWith = function ( n , t , r , e ) { return e = "function" == typeof e ? e : F , null == n ? n : pr ( n , t , r , e ) } , On . shuffle = function ( n ) { return ( af ( n ) ? ft : _r ) ( n ) } , On . slice = function ( n , t , r ) { var e = null == n ? 0 : n . length ; return e ? ( r && "number" != typeof r && ze ( n , t , r ) ? ( t = 0 , r = e ) : ( t = null == t ? 0 : Ou ( t ) , r = r === F ? e : Ou ( r ) ) , vr ( n , t , r ) ) : [ ] } , On . sortBy = Ho , On . sortedUniq = function ( n ) { return n && n . length ? br ( n ) : [ ] } , On . sortedUniqBy = function ( n , t ) { return n && n . length ? br ( n , je ( t , 2 ) ) : [ ] } , On . split = function ( n , t , r ) { return r && "number" != typeof r && ze ( n , t , r ) && ( t = r = F ) , r = r === F ? 4294967295 : r >>> 0 , r ? ( n = zu ( n ) ) && ( "string" == typeof t || null != t && ! _f ( t ) ) && ( t = jr ( t ) , ! t && Bn . test ( n ) ) ? zr ( $ ( n ) , 0 , r ) : n . split ( t , r ) : [ ] } , On . spread = function ( n , t ) { if ( "function" != typeof n ) throw new ei ( "Expected a function" ) ; return t = null == t ? 0 : Di ( Ou ( t ) , 0 ) , lr ( function ( e ) { var u = e [ t ] ; return e = zr ( e , 0 , t ) , u && s ( e , u ) , r ( n , this , e ) } ) } , On . tail = function ( n ) { var t = null == n ? 0 : n . length ; return t ? vr ( n , 1 , t ) : [ ] } , On . take = function ( n , t , r ) { return n && n . length ? ( t = r || t === F ? 1 : Ou ( t ) , vr ( n , 0 , 0 > t ? 0 : t ) ) : [ ] } , On . takeRight = function ( n , t , r ) { var e = null == n ? 0 : n . length ; return e ? ( t = r || t === F ? 1 : Ou ( t ) , t = e - t , vr ( n , 0 > t ? 0 : t , e ) ) : [ ] } , On . takeRightWhile = function ( n , t ) { return n && n . length ? Ar ( n , je ( t , 3 ) , ! 1 , ! 0 ) : [ ] } , On . takeWhile = function ( n , t ) { return n && n . length ? Ar ( n , je ( t , 3 ) ) : [ ] } , On . tap = function ( n , t ) { return t ( n ) , n } , On . throttle = function ( n , t , r ) { var e = ! 0 , u = ! 0 ; if ( "function" != typeof n ) throw new ei ( "Expected a function" ) ; return bu ( r ) && ( e = "leading" in r ? ! ! r . leading : e , u = "trailing" in r ? ! ! r . trailing : u ) , au ( n , t , { leading : e , maxWait : t , trailing : u } ) } , On . thru = nu , On . toArray = ku , On . toPairs = Bf , On . toPairsIn = Lf , On . toPath = function ( n ) { return af ( n ) ? l ( n , $e ) : Au ( n ) ? [ n ] : Mr ( mo ( zu ( n ) ) ) } , On . toPlainObject = Ru , On . transform = function ( n , t , r ) { var e = af ( n ) , i = e || sf ( n ) || gf ( n ) ; if ( t = je ( t , 4 ) , null == r ) { var o = n && n . constructor ; r = i ? e ? new o : [ ] : bu ( n ) && gu ( o ) ? io ( bi ( n ) ) : { } } return ( i ? u : Et ) ( n , function ( n , e , u ) { return t ( r , n , e , u ) } ) , r } , On . unary = function ( n ) { return iu ( n , 1 ) } , On . union = Wo , On . unionBy = Bo , On . unionWith = Lo , On . uniq = function ( n ) { return n && n . length ? wr ( n ) : [ ] } , On . uniqBy = function ( n , t ) { return n && n . length ? wr ( n , je ( t , 2 ) ) : [ ] } , On . uniqWith = function ( n , t ) { return t = "function" == typeof t ? t : F , n && n . length ? wr ( n , F , t ) : [ ] } , On . unset = function ( n , t ) { return null == n || mr ( n , t ) } , On . unzip = Ye , On . unzipWith = Qe , On . update = function ( n , t , r ) { return null == n ? n : pr ( n , t , Ir ( r ) ( It ( n , t ) ) , void 0 ) } , On . updateWith = function ( n , t , r , e ) { return e = "function" == typeof e ? e : F , null != n && ( n = pr ( n , t , Ir ( r ) ( It ( n , t ) ) , e ) ) , n } , On . values = Du , On . valuesIn = function ( n ) { return null == n ? [ ] : I ( n , Uu ( n ) ) } , On . without = Uo , On . words = $u , On . wrap = function ( n , t ) { return rf ( Ir ( t ) , n ) } , On . xor = Co , On . xorBy = Do , On . xorWith = Mo , On . zip = To , On . zipObject = function ( n , t ) { return Or ( n || [ ] , t || [ ] , at ) } , On . zipObjectDeep = function ( n , t ) { return Or ( n || [ ] , t || [ ] , pr ) } , On . zipWi