@@ -1,33 +1,34 @@
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 ] . hashWorker = null , r ( e , t ) } } , ! 1 ) ; var t , a , o , s , p , f ; return f = function ( e ) { n . postMessage ( { message : e . target . result , block : a } ) } , p = function ( ) { a . end !== l . size && ( a . start += t , a . end += t , a . end > l . size && ( a . end = l . size ) , o = new FileReader , o . onload = f , l . slice ? s = l . slice ( a . start , a . end ) : l . webkitSlice ? s = l . webkitSlice ( a . start , a . end ) : l . mozSlice && ( s = l . mozSlice ( a . start , a . end ) ) , o . readAsArrayBuffer ( s ) ) } , t = 1048576 , a = { file _size : l . size , start : 0 } , a . end = t > l . size ? l . size : t , n . addEventListener ( "message" , p , ! 1 ) , o = new FileReader , o . onload = f , l . slice ? s = l . slice ( a . start , a . end ) : l . webkitSlice ? s = l . webkitSlice ( a . start , a . end ) : l . mozSlice && ( s = l . mozSlice ( a . start , a . end ) ) , o . readAsArrayBuffer ( s ) , void ( R [ e ] . hashWorker = n ) } catch ( u ) { } } i ( e ) } function r ( e , l ) { if ( 1 == u ( e ) ) { var n = ! 1 , t = function ( l ) { return 1 == u ( e ) && ( ! n && ( n = ! 0 , Y ( e , 100 ) , G ( e , l ) , ! 0 ) ) } , a = function ( ) { return 1 == u ( e ) && ( ! n && ( n = ! 0 , i ( e ) , ! 0 ) ) } , o = function ( l ) { return 1 == u ( e ) && ( ! n && ( n = ! 0 , K ( e , { name : "HashError" , message : l } ) , ! 0 Line truncated
case 47 : case 98 : case 116 : case 110 : case 102 : case 114 : value += Unescapes [ charCode ] , Index ++ ; break ; case 117 : for ( begin = ++ Index , position = Index + 4 ; Index < position ; Index ++ ) charCode = source . charCodeAt ( Index ) , charCode >= 48 && charCode <= 57 || charCode >= 97 && charCode <= 102 || charCode >= 65 && charCode <= 70 || abort ( ) ; value += fromCharCode ( "0x" + source . slice ( begin , Index ) ) ; break ; default : abort ( ) } else { if ( 34 == charCode ) break ; for ( charCode = source . charCodeAt ( Index ) , begin = Index ; charCode >= 32 && 92 != charCode && 34 != charCode ; ) charCode = source . charCodeAt ( ++ Index ) ; value += source . slice ( begin , Index ) } if ( 34 == source . charCodeAt ( Index ) ) return Index ++ , value ; abort ( ) ; default : if ( begin = Index , 45 == charCode && ( isSigned = ! 0 , charCode = source . charCodeAt ( ++ Index ) ) , charCode >= 48 && charCode <= 57 ) { for ( 48 == charCode && ( charCode = source . charCodeAt ( Index + 1 ) , charCode >= 48 && charCode <= 57 ) && abort ( ) , isSigned = ! 1 ; Index < length && ( charCode = source . charCodeAt ( Index ) , charCode >= 48 && charCode <= 57 ) ; Index ++ ) ; if ( 46 == source . charCodeAt ( Index ) ) { for ( position = ++ Index ; position < length && ( charCode = source . charCodeAt ( position ) , charCode >= 48 && charCode <= 57 ) ; position ++ ) ; position == Index && abort ( ) , Index = position } if ( charCode = source . charCodeAt ( Index ) , 101 == charCode || 69 == charCode ) { for ( charCode = source . charCodeAt ( ++ Index ) , 43 != charCode && 45 != charCode || Index ++ , position = Index ; position < length && ( charCode = source . charCodeAt ( position ) , charCode >= 48 && charCode <= 57 ) ; position ++ ) ; position == Index && abort ( ) , Index = position } return + source . slice ( begin , Index ) } if ( isSigned && abort ( ) , "true" == source . slice ( Index , Index + 4 ) ) return Index += 4 , ! 0 ; if ( "false" == source . slice ( Index , Index + 5 ) ) return Index += 5 , ! 1 ; if ( "null" == source . slice ( Index , Index + 4 ) ) return Index += 4 , null ; abort ( ) } return "$" } , get = function ( value ) { var results , hasMembers ; if ( "$" == value && abort ( ) , "string" == typeof value ) { if ( "@" == ( charIndexBuggy ? value . charAt ( 0 ) : value [ 0 ] ) ) return value . slice ( 1 ) ; if ( "[" == value ) { for ( results = [ ] ; value = lex ( ) , "]" != value ; hasMembers || ( hasMembers = ! 0 ) ) hasMembers && ( "," == value ? ( value = lex ( ) , "]" == value && abort ( ) ) : abort ( ) ) , "," == value && abort ( ) , results . push ( get ( value ) ) ; return results } if ( "{" == value ) { for ( results = { } ; value = lex ( ) , "}" != value ; hasMembers || ( hasMembers = ! 0 ) ) hasMembers && ( "," == value ? ( value = lex ( ) , "}" == value && abort ( ) ) : abort ( ) ) , "," != value && "string" == typeof value && "@" == ( charIndexBuggy ? value . charAt ( 0 ) : value [ 0 ] ) && ":" == lex ( ) || abort ( ) , results [ value . slice ( 1 ) ] = get ( lex ( ) ) ; return results } abort ( ) } return value } , update = function ( source , property , callback ) { var element = walk ( source , property , callback ) ; element === undef ? delete source [ property ] : source [ property ] = element } , walk = function ( source , property , callback ) { var length , value = source [ property ] ; if ( "object" == typeof value && value ) if ( getClass . call ( value ) == arrayClass ) for ( length = value . length ; length -- ; ) update ( value , length , callback ) ; else forEach ( value , function ( property ) { update ( value , property , callback ) } ) ; return callback . call ( source , property , value ) } ; exports . parse = function ( source , callback ) { var result , value ; return Index = 0 , Source = "" + source , result = get ( lex ( ) ) , "$" != lex ( ) && abort ( ) , Index = Source = null , callback && getClass . call ( callback ) == functionClass ? walk ( ( value = { } , value [ "" ] = result , value ) , "" , callback ) : result } } } return exports . runInContext = runInContext , exports } var isLoader = "function" == typeof define && define . amd , objectTypes = { function : ! 0 , object : ! 0 } , freeExports = objectTypes [ typeof exports ] && exports && ! exports . nodeType && exports , root = objectTypes [ typeof window ] && window || this , freeGlobal = freeExports && objectTypes [ typeof module ] && module && ! module . nodeType && "object" == typeof global && global ; if ( ! freeGlobal || freeGlobal . global !== freeGlobal && freeGlobal . window !== freeGlobal && freeGlobal . self !== freeGlobal || ( root = freeGlobal ) , freeExports && ! isLoader ) runInContext ( root , freeExports ) ; else { var nativeJSON = root . JSON , previousJSON = root . JSON3 , isRestored = ! 1 , JSON3 = runInContext ( root , root . JSON3 = { noConflict : function ( ) { return isRestored || ( isRestored = ! 0 , root . JSON = nativeJSON , root . JSON3 = previousJSON , nativeJSON = previousJSON = null ) , JSON3 } } ) ; root . JSON = { parse : JSON3 . parse , stringify : JSON3 . stringify } } isLoader && define ( function ( ) { return JSON3 } ) } ) . call ( this ) } ) . call ( exports , _ _webpack _require _ _ ( 8 ) ( module ) , function ( ) { return this } ( ) ) } , function ( module , exports ) { module . exports = function ( module ) { return module . webpackPolyfill || ( module . deprecate = function ( ) { } , module . paths = [ ] , module . children = [ ] , module . webpackPolyfill = 1 ) , module } } , function ( module , exports ) { module . exports = Array . isArray || function ( arr ) { return "[object Array]" == Object . prototype . toString . call ( arr ) } } , function ( module , exports ) { function Emitter ( obj ) { if ( obj ) return mixin ( obj ) } function mixin ( obj ) { for ( var key in Emitter . prototype ) obj [ key ] = Emitter . prototype [ key ] ; return obj } module . exports = Emitter , Emitter . prototype . on = Emitter . prototype . addEventListener = function ( event , fn ) { return this . _callbacks = this . _callbacks || { } , ( this . _callbacks [ event ] = this . _callbacks [ event ] || [ ] ) . push ( fn ) , this } , Emitter . prototype . once = function ( event , fn ) { function on ( ) { self . off ( event , on ) , fn . apply ( this , arguments ) } var self = this ; return this . _callbacks = this . _callbacks || { } , on . fn = fn , this . on ( event , on ) , this } , Emitter . prototype . off = Emitter . prototype . removeListener = Emitter . pr Line truncated
} catch ( e ) { return void setTimeout ( function ( ) { self . onError ( e ) } , 0 ) } global . document && ( this . index = Request . requestsCount ++ , Request . requests [ this . index ] = this ) } , Request . prototype . onSuccess = function ( ) { this . emit ( "success" ) , this . cleanup ( ) } , Request . prototype . onData = function ( data ) { this . emit ( "data" , data ) , this . onSuccess ( ) } , Request . prototype . onError = function ( err ) { this . emit ( "error" , err ) , this . cleanup ( ! 0 ) } , Request . prototype . cleanup = function ( fromError ) { if ( "undefined" != typeof this . xhr && null !== this . xhr ) { if ( this . hasXDR ( ) ? this . xhr . onload = this . xhr . onerror = empty : this . xhr . onreadystatechange = empty , fromError ) try { this . xhr . abort ( ) } catch ( e ) { } global . document && delete Request . requests [ this . index ] , this . xhr = null } } , Request . prototype . onLoad = function ( ) { var data ; try { var contentType ; try { contentType = this . xhr . getResponseHeader ( "Content-Type" ) . split ( ";" ) [ 0 ] } catch ( e ) { } if ( "application/octet-stream" === contentType ) data = this . xhr . response || this . xhr . responseText ; else if ( this . supportsBinary ) try { data = String . fromCharCode . apply ( null , new Uint8Array ( this . xhr . response ) ) } catch ( e ) { for ( var ui8Arr = new Uint8Array ( this . xhr . response ) , dataArray = [ ] , idx = 0 , length = ui8Arr . length ; idx < length ; idx ++ ) dataArray . push ( ui8Arr [ idx ] ) ; data = String . fromCharCode . apply ( null , dataArray ) } else data = this . xhr . responseText } catch ( e ) { this . onError ( e ) } null != data && this . onData ( data ) } , Request . prototype . hasXDR = function ( ) { return "undefined" != typeof global . XDomainRequest && ! this . xs && this . enablesXDR } , Request . prototype . abort = function ( ) { this . cleanup ( ) } , Request . requestsCount = 0 , Request . requests = { } , global . document && ( global . attachEvent ? global . attachEvent ( "onunload" , unloadHandler ) : global . addEventListener && global . addEventListener ( "beforeunload" , unloadHandler , ! 1 ) ) } ) . call ( exports , function ( ) { return this } ( ) ) } , function ( module , exports , _ _webpack _require _ _ ) { function Polling ( opts ) { var forceBase64 = opts && opts . forceBase64 ; hasXHR2 && ! forceBase64 || ( this . supportsBinary = ! 1 ) , Transport . call ( this , opts ) } var Transport = _ _webpack _require _ _ ( 22 ) , parseqs = _ _webpack _require _ _ ( 32 ) , parser = _ _webpack _require _ _ ( 23 ) , inherit = _ _webpack _require _ _ ( 33 ) , yeast = _ _webpack _require _ _ ( 34 ) , debug = _ _webpack _require _ _ ( 3 ) ( "engine.io-client:polling" ) ; module . exports = Polling ; var hasXHR2 = function ( ) { var XMLHttpRequest = _ _webpack _require _ _ ( 18 ) , xhr = new XMLHttpRequest ( { xdomain : ! 1 } ) ; return null != xhr . responseType } ( ) ; inherit ( Polling , Transport ) , Polling . prototype . name = "polling" , Polling . prototype . doOpen = function ( ) { this . poll ( ) } , Polling . prototype . pause = function ( onPause ) { function pause ( ) { debug ( "paused" ) , self . readyState = "paused" , onPause ( ) } var self = this ; if ( this . readyState = "pausing" , this . polling || ! this . writable ) { var total = 0 ; this . polling && ( debug ( "we are currently polling - waiting to pause" ) , total ++ , this . once ( "pollComplete" , function ( ) { debug ( "pre-pause polling complete" ) , -- total || pause ( ) } ) ) , this . writable || ( debug ( "we are currently writing - waiting to pause" ) , total ++ , this . once ( "drain" , function ( ) { debug ( "pre-pause writing complete" ) , -- total || pause ( ) } ) ) } else pause ( ) } , Polling . prototype . poll = function ( ) { debug ( "polling" ) , this . polling = ! 0 , this . doPoll ( ) , this . emit ( "poll" ) } , Polling . prototype . onData = function ( data ) { var self = this ; debug ( "polling got data %s" , data ) ; var callback = function ( packet , index , total ) { return "opening" === self . readyState && self . onOpen ( ) , "close" === packet . type ? ( self . onClose ( ) , ! 1 ) : void self . onPacket ( packet ) } ; parser . decodePayload ( data , this . socket . binaryType , callback ) , "closed" !== this . readyState && ( this . polling = ! 1 , this . emit ( "pollComplete" ) , "open" === this . readyState ? this . poll ( ) : debug ( 'ignoring poll - transport state "%s"' , this . readyState ) ) } , Polling . prototype . doClose = function ( ) { function close ( ) { debug ( "writing close packet" ) , self . write ( [ { type : "close" } ] ) } var self = this ; "open" === this . readyState ? ( debug ( "transport open - closing" ) , close ( ) ) : ( debug ( "transport not open - deferring close" ) , this . once ( "open" , close ) ) } , Polling . prototype . write = function ( packets ) { var self = this ; this . writable = ! 1 ; var callbackfn = function ( ) { self . writable = ! 0 , self . emit ( "drain" ) } ; parser . encodePayload ( packets , this . supportsBinary , function ( data ) { self . doWrite ( data , callbackfn ) } ) } , Polling . prototype . uri = function ( ) { var query = this . query || { } , schema = this . secure ? "https" : "http" , port = "" ; ! 1 !== this . timestampRequests && ( query [ this . timestampParam ] = yeast ( ) ) , this . supportsBinary || query . sid || ( query . b64 = 1 ) , query = parseqs . encode ( query ) , this . port && ( "https" === schema && 443 !== this . port || "http" === schema && 80 !== this . port ) && ( port = ":" + this . port ) , query . length && ( query = "?" + query ) ; var ipv6 = this . hostname . indexOf ( ":" ) !== - 1 ; return schema + "://" + ( ipv6 ? "[" + this . hostname + "]" : this . hostname ) + port + this . path + query } } , function ( module , exports , _ _webpack _require _ _ ) { function Transport ( opts ) { this . path = opts . path , this . hostname = opts . hostname , this . port = opts . port , this . secure = opts . secure , this . query = opts . query , this . timestampParam = opts . timestampParam , this . timestampRequests = opts . timestampRequests , this . readyState = "" , this . agent = opts . agent || ! 1 , this . socket = opts . socket , this . enablesXDR = opts . enablesXDR , this . pfx = opts . pfx , this . key = opts . key , this . passphrase = opts . passphrase , this . cert = opts . cert , this . ca = opts . ca , this . ciphers Line truncated
} } ) . call ( exports , function ( ) { return this } ( ) ) } , function ( module , exports , _ _webpack _require _ _ ) { "use strict" ; function Socket ( io , nsp , opts ) { this . io = io , this . nsp = nsp , this . json = this , this . ids = 0 , this . acks = { } , this . receiveBuffer = [ ] , this . sendBuffer = [ ] , this . connected = ! 1 , this . disconnected = ! 0 , opts && opts . query && ( this . query = opts . query ) , this . io . autoConnect && this . open ( ) } var parser = _ _webpack _require _ _ ( 6 ) , Emitter = _ _webpack _require _ _ ( 41 ) , toArray = _ _webpack _require _ _ ( 42 ) , on = _ _webpack _require _ _ ( 43 ) , bind = _ _webpack _require _ _ ( 44 ) , debug = _ _webpack _require _ _ ( 3 ) ( "socket.io-client:socket" ) , hasBin = _ _webpack _require _ _ ( 45 ) ; module . exports = exports = Socket ; var events = { connect : 1 , connect _error : 1 , connect _timeout : 1 , connecting : 1 , disconnect : 1 , error : 1 , reconnect : 1 , reconnect _attempt : 1 , reconnect _failed : 1 , reconnect _error : 1 , reconnecting : 1 , ping : 1 , pong : 1 } , emit = Emitter . prototype . emit ; Emitter ( Socket . prototype ) , Socket . prototype . subEvents = function ( ) { if ( ! this . subs ) { var io = this . io ; this . subs = [ on ( io , "open" , bind ( this , "onopen" ) ) , on ( io , "packet" , bind ( this , "onpacket" ) ) , on ( io , "close" , bind ( this , "onclose" ) ) ] } } , Socket . prototype . open = Socket . prototype . connect = function ( ) { return this . connected ? this : ( this . subEvents ( ) , this . io . open ( ) , "open" === this . io . readyState && this . onopen ( ) , this . emit ( "connecting" ) , this ) } , Socket . prototype . send = function ( ) { var args = toArray ( arguments ) ; return args . unshift ( "message" ) , this . emit . apply ( this , args ) , this } , Socket . prototype . emit = function ( ev ) { if ( events . hasOwnProperty ( ev ) ) return emit . apply ( this , arguments ) , this ; var args = toArray ( arguments ) , parserType = parser . EVENT ; hasBin ( args ) && ( parserType = parser . BINARY _EVENT ) ; var packet = { type : parserType , data : args } ; return packet . options = { } , packet . options . compress = ! this . flags || ! 1 !== this . flags . compress , "function" == typeof args [ args . length - 1 ] && ( debug ( "emitting packet with ack id %d" , this . ids ) , this . acks [ this . ids ] = args . pop ( ) , packet . id = this . ids ++ ) , this . connected ? this . packet ( packet ) : this . sendBuffer . push ( packet ) , delete this . flags , this } , Socket . prototype . packet = function ( packet ) { packet . nsp = this . nsp , this . io . packet ( packet ) } , Socket . prototype . onopen = function ( ) { debug ( "transport is open - connecting" ) , "/" !== this . nsp && ( this . query ? this . packet ( { type : parser . CONNECT , query : this . query } ) : this . packet ( { type : parser . CONNECT } ) ) } , Socket . prototype . onclose = function ( reason ) { debug ( "close (%s)" , reason ) , this . connected = ! 1 , this . disconnected = ! 0 , delete this . id , this . emit ( "disconnect" , reason ) } , Socket . prototype . onpacket = function ( packet ) { if ( packet . nsp === this . nsp ) switch ( packet . type ) { case parser . CONNECT : this . onconnect ( ) ; break ; case parser . EVENT : this . onevent ( packet ) ; break ; case parser . BINARY _EVENT : this . onevent ( packet ) ; break ; case parser . ACK : this . onack ( packet ) ; break ; case parser . BINARY _ACK : this . onack ( packet ) ; break ; case parser . DISCONNECT : this . ondisconnect ( ) ; break ; case parser . ERROR : this . emit ( "error" , packet . data ) } } , Socket . prototype . onevent = function ( packet ) { var args = packet . data || [ ] ; debug ( "emitting event %j" , args ) , null != packet . id && ( debug ( "attaching ack callback to event" ) , args . push ( this . ack ( packet . id ) ) ) , this . connected ? emit . apply ( this , args ) : this . receiveBuffer . push ( args ) } , Socket . prototype . ack = function ( id ) { var self = this , sent = ! 1 ; return function ( ) { if ( ! sent ) { sent = ! 0 ; var args = toArray ( arguments ) ; debug ( "sending ack %j" , args ) ; var type = hasBin ( args ) ? parser . BINARY _ACK : parser . ACK ; self . packet ( { type : type , id : id , data : args } ) } } } , Socket . prototype . onack = function ( packet ) { var ack = this . acks [ packet . id ] ; "function" == typeof ack ? ( debug ( "calling ack %s with %j" , packet . id , packet . data ) , ack . apply ( this , packet . data ) , delete this . acks [ packet . id ] ) : debug ( "bad ack %s" , packet . id ) } , Socket . prototype . onconnect = function ( ) { this . connected = ! 0 , this . disconnected = ! 1 , this . emit ( "connect" ) , this . emitBuffered ( ) } , Socket . prototype . emitBuffered = function ( ) { var i ; for ( i = 0 ; i < this . receiveBuffer . length ; i ++ ) emit . apply ( this , this . receiveBuffer [ i ] ) ; for ( this . receiveBuffer = [ ] , i = 0 ; i < this . sendBuffer . length ; i ++ ) this . packet ( this . sendBuffer [ i ] ) ; this . sendBuffer = [ ] } , Socket . prototype . ondisconnect = function ( ) { debug ( "server disconnect (%s)" , this . nsp ) , this . destroy ( ) , this . onclose ( "io server disconnect" ) } , Socket . prototype . destroy = function ( ) { if ( this . subs ) { for ( var i = 0 ; i < this . subs . length ; i ++ ) this . subs [ i ] . destroy ( ) ; this . subs = null } this . io . destroy ( this ) } , Socket . prototype . close = Socket . prototype . disconnect = function ( ) { return this . connected && ( debug ( "performing disconnect (%s)" , this . nsp ) , this . packet ( { type : parser . DISCONNECT } ) ) , this . destroy ( ) , this . connected && this . onclose ( "io client disconnect" ) , this } , Socket . prototype . compress = function ( compress ) { return this . flags = this . flags || { } , this . flags . compress = compress , this } } , function ( module , exports ) { function Emitter ( obj ) { if ( obj ) return mixin ( obj ) } function mixin ( obj ) { for ( var key in Emitter . prototype ) obj [ key ] = Emitter . prototype [ key ] ; return obj } module . exports = Emitter , Emitter . prototype . on = Emitter . prototype . addEventListener = function ( event , fn ) { return this . _callbacks = this . _callbacks || { } , ( this . _callbacks [ "$" + event ] = this . _callbacks [ "$" + event ] || [ ] ) . push ( fn ) , this } , Emitter . prototype . once = function ( event , fn ) { function on ( ) { this . off ( event , on ) , fn . apply ( this , arguments ) } retu Line truncated
var b = a . replace ( _ , aa ) ; return function ( a ) { var c = "undefined" != typeof a . getAttributeNode && a . getAttributeNode ( "id" ) ; return c && c . value === b } } , d . find . ID = function ( a , b ) { if ( "undefined" != typeof b . getElementById && p ) { var c , d , e , f = b . getElementById ( a ) ; if ( f ) { if ( c = f . getAttributeNode ( "id" ) , c && c . value === a ) return [ f ] ; for ( e = b . getElementsByName ( a ) , d = 0 ; f = e [ d ++ ] ; ) if ( c = f . getAttributeNode ( "id" ) , c && c . value === a ) return [ f ] } return [ ] } } ) , d . find . TAG = c . getElementsByTagName ? function ( a , b ) { return "undefined" != typeof b . getElementsByTagName ? b . getElementsByTagName ( a ) : c . qsa ? b . querySelectorAll ( a ) : void 0 } : function ( a , b ) { var c , d = [ ] , e = 0 , f = b . getElementsByTagName ( a ) ; if ( "*" === a ) { for ( ; c = f [ e ++ ] ; ) 1 === c . nodeType && d . push ( c ) ; return d } return f } , d . find . CLASS = c . getElementsByClassName && function ( a , b ) { if ( "undefined" != typeof b . getElementsByClassName && p ) return b . getElementsByClassName ( a ) } , r = [ ] , q = [ ] , ( c . qsa = Y . test ( n . querySelectorAll ) ) && ( ja ( function ( a ) { o . appendChild ( a ) . innerHTML = "<a id='" + u + "'></a><select id='" + u + "-\r\\' msallowcapture=''><option selected=''></option></select>" , a . querySelectorAll ( "[msallowcapture^='']" ) . length && q . push ( "[*^$]=" + K + "*(?:''|\"\")" ) , a . querySelectorAll ( "[selected]" ) . length || q . push ( "\\[" + K + "*(?:value|" + J + ")" ) , a . querySelectorAll ( "[id~=" + u + "-]" ) . length || q . push ( "~=" ) , a . querySelectorAll ( ":checked" ) . length || q . push ( ":checked" ) , a . querySelectorAll ( "a#" + u + "+*" ) . length || q . push ( ".#.+[+~]" ) } ) , ja ( function ( a ) { a . innerHTML = "<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>" ; var b = n . createElement ( "input" ) ; b . setAttribute ( "type" , "hidden" ) , a . appendChild ( b ) . setAttribute ( "name" , "D" ) , a . querySelectorAll ( "[name=d]" ) . length && q . push ( "name" + K + "*[*^$|!~]?=" ) , 2 !== a . querySelectorAll ( ":enabled" ) . length && q . push ( ":enabled" , ":disabled" ) , o . appendChild ( a ) . disabled = ! 0 , 2 !== a . querySelectorAll ( ":disabled" ) . length && q . push ( ":enabled" , ":disabled" ) , a . querySelectorAll ( "*,:x" ) , q . push ( ",.*:" ) } ) ) , ( c . matchesSelector = Y . test ( s = o . matches || o . webkitMatchesSelector || o . mozMatchesSelector || o . oMatchesSelector || o . msMatchesSelector ) ) && ja ( function ( a ) { c . disconnectedMatch = s . call ( a , "*" ) , s . call ( a , "[s!='']:x" ) , r . push ( "!=" , N ) } ) , q = q . length && new RegExp ( q . join ( "|" ) ) , r = r . length && new RegExp ( r . join ( "|" ) ) , b = Y . test ( o . compareDocumentPosition ) , t = b || Y . test ( o . contains ) ? function ( a , b ) { var c = 9 === a . nodeType ? a . documentElement : a , d = b && b . parentNode ; return a === d || ! ( ! d || 1 !== d . nodeType || ! ( c . contains ? c . contains ( d ) : a . compareDocumentPosition && 16 & a . compareDocumentPosition ( d ) ) ) } : function ( a , b ) { if ( b ) for ( ; b = b . parentNode ; ) if ( b === a ) return ! 0 ; return ! 1 } , B = b ? function ( a , b ) { if ( a === b ) return l = ! 0 , 0 ; var d = ! a . compareDocumentPosition - ! b . compareDocumentPosition ; return d ? d : ( d = ( a . ownerDocument || a ) === ( b . ownerDocument || b ) ? a . compareDocumentPosition ( b ) : 1 , 1 & d || ! c . sortDetached && b . compareDocumentPosition ( a ) === d ? a === n || a . ownerDocument === v && t ( v , a ) ? - 1 : b === n || b . ownerDocument === v && t ( v , b ) ? 1 : k ? I ( k , a ) - I ( k , b ) : 0 : 4 & d ? - 1 : 1 ) } : function ( a , b ) { if ( a === b ) return l = ! 0 , 0 ; var c , d = 0 , e = a . parentNode , f = b . parentNode , g = [ a ] , h = [ b ] ; if ( ! e || ! f ) return a === n ? - 1 : b === n ? 1 : e ? - 1 : f ? 1 : k ? I ( k , a ) - I ( k , b ) : 0 ; if ( e === f ) return la ( a , b ) ; for ( c = a ; c = c . parentNode ; ) g . unshift ( c ) ; for ( c = b ; c = c . parentNode ; ) h . unshift ( c ) ; for ( ; g [ d ] === h [ d ] ; ) d ++ ; return d ? la ( g [ d ] , h [ d ] ) : g [ d ] === v ? - 1 : h [ d ] === v ? 1 : 0 } , n ) : n } , ga . matches = function ( a , b ) { return ga ( a , null , null , b ) } , ga . matchesSelector = function ( a , b ) { if ( ( a . ownerDocument || a ) !== n && m ( a ) , b = b . replace ( S , "='$1']" ) , c . matchesSelector && p && ! A [ b + " " ] && ( ! r || ! r . test ( b ) ) && ( ! q || ! q . test ( b ) ) ) try { var d = s . call ( a , b ) ; if ( d || c . disconnectedMatch || a . document && 11 !== a . document . nodeType ) return d } catch ( e ) { } return ga ( b , n , null , [ a ] ) . length > 0 } , ga . contains = function ( a , b ) { return ( a . ownerDocument || a ) !== n && m ( a ) , t ( a , b ) } , ga . attr = function ( a , b ) { ( a . ownerDocument || a ) !== n && m ( a ) ; var e = d . attrHandle [ b . toLowerCase ( ) ] , f = e && C . call ( d . attrHandle , b . toLowerCase ( ) ) ? e ( a , b , ! p ) : void 0 ; return void 0 !== f ? f : c . attributes || ! p ? a . getAttribute ( b ) : ( f = a . getAttributeNode ( b ) ) && f . specified ? f . value : null } , ga . escape = function ( a ) { return ( a + "" ) . replace ( ba , ca ) } , ga . error = function ( a ) { throw new Error ( "Syntax error, unrecognized expression: " + a ) } , ga . uniqueSort = function ( a ) { var b , d = [ ] , e = 0 , f = 0 ; if ( l = ! c . detectDuplicates , k = ! c . sortStable && a . slice ( 0 ) , a . sort ( B ) , l ) { for ( ; b = a [ f ++ ] ; ) b === a [ f ] && ( e = d . push ( f ) ) ; for ( ; e -- ; ) a . splice ( d [ e ] , 1 ) } return k = null , a } , e = ga . getText = function ( a ) { var b , c = "" , d = 0 , f = a . nodeType ; if ( f ) { if ( 1 === f || 9 === f || 11 === f ) { if ( "string" == typeof a . textContent ) return a . textContent ; for ( a = a . firstChild ; a ; a = a . nextSibling ) c += e ( a ) } else if ( 3 === f || 4 === f ) return a . nodeValue } else for ( ; b = a [ d ++ ] ; ) c += e ( b ) ; return c } , d = ga . selectors = { cacheLength : 50 , createPseudo : ia , match : V , attrHandle : { } , find : { } , relative : { ">" : { dir : "parentNode" , first : ! 0 } , " " : { dir : "parentNode" } , "+" : { dir : "previousSibling" , first : ! 0 } , "~" : { dir : "previousSibling" } } , preFilter : { ATTR : function ( a ) { return a [ 1 ] = a [ 1 ] . replace ( _ , aa ) , a [ 3 ] = ( a [ 3 ] || a [ 4 ] || a [ 5 ] || "" ) . replace ( _ , aa ) , "~=" === a [ 2 ] && ( a [ 3 ] = " " + a [ 3 ] + " " ) , a . slice ( 0 , 4 ) } , CHILD : function ( a ) { return a [ 1 ] = a [ 1 ] . toLowerCase ( ) , "nth" === a [ 1 ] . slice ( 0 , 3 ) ? ( a [ 3 ] || ga . error ( a [ 0 ] ) , a [ 4 ] = + ( a [ 4 ] ? a [ 5 ] + ( a [ 6 ] || 1 ) : 2 * ( "even" === a [ 3 ] || "odd" === a [ 3 ] ) ) , a [ 5 ] = + ( a [ 7 ] + a [ 8 ] || "odd" === a [ 3 ] ) ) : a [ 3 ] && ga . error ( a [ 0 ] ) , a } , PSEUDO Line truncated
var b = Da ( this , a ) ; b . insertBefore ( a , b . firstChild ) } } ) } , before : function ( ) { return Ia ( this , arguments , function ( a ) { this . parentNode && this . parentNode . insertBefore ( a , this ) } ) } , after : function ( ) { return Ia ( this , arguments , function ( a ) { this . parentNode && this . parentNode . insertBefore ( a , this . nextSibling ) } ) } , empty : function ( ) { for ( var a , b = 0 ; null != ( a = this [ b ] ) ; b ++ ) 1 === a . nodeType && ( r . cleanData ( ma ( a , ! 1 ) ) , a . textContent = "" ) ; return this } , clone : function ( a , b ) { return a = null != a && a , b = null == b ? a : b , this . map ( function ( ) { return r . clone ( this , a , b ) } ) } , html : function ( a ) { return S ( this , function ( a ) { var b = this [ 0 ] || { } , c = 0 , d = this . length ; if ( void 0 === a && 1 === b . nodeType ) return b . innerHTML ; if ( "string" == typeof a && ! za . test ( a ) && ! la [ ( ja . exec ( a ) || [ "" , "" ] ) [ 1 ] . toLowerCase ( ) ] ) { a = r . htmlPrefilter ( a ) ; try { for ( ; c < d ; c ++ ) b = this [ c ] || { } , 1 === b . nodeType && ( r . cleanData ( ma ( b , ! 1 ) ) , b . innerHTML = a ) ; b = 0 } catch ( e ) { } } b && this . empty ( ) . append ( a ) } , null , a , arguments . length ) } , replaceWith : function ( ) { var a = [ ] ; return Ia ( this , arguments , function ( b ) { var c = this . parentNode ; r . inArray ( this , a ) < 0 && ( r . cleanData ( ma ( this ) ) , c && c . replaceChild ( b , this ) ) } , a ) } } ) , r . each ( { appendTo : "append" , prependTo : "prepend" , insertBefore : "before" , insertAfter : "after" , replaceAll : "replaceWith" } , function ( a , b ) { r . fn [ a ] = function ( a ) { for ( var c , d = [ ] , e = r ( a ) , f = e . length - 1 , g = 0 ; g <= f ; g ++ ) c = g === f ? this : this . clone ( ! 0 ) , r ( e [ g ] ) [ b ] ( c ) , h . apply ( d , c . get ( ) ) ; return this . pushStack ( d ) } } ) ; var Ka = /^margin/ , La = new RegExp ( "^(" + _ + ")(?!px)[a-z%]+$" , "i" ) , Ma = function ( b ) { var c = b . ownerDocument . defaultView ; return c && c . opener || ( c = a ) , c . getComputedStyle ( b ) } ; ! function ( ) { function b ( ) { if ( i ) { i . style . cssText = "box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%" , i . innerHTML = "" , qa . appendChild ( h ) ; var b = a . getComputedStyle ( i ) ; c = "1%" !== b . top , g = "2px" === b . marginLeft , e = "4px" === b . width , i . style . marginRight = "50%" , f = "4px" === b . marginRight , qa . removeChild ( h ) , i = null } } var c , e , f , g , h = d . createElement ( "div" ) , i = d . createElement ( "div" ) ; i . style && ( i . style . backgroundClip = "content-box" , i . cloneNode ( ! 0 ) . style . backgroundClip = "" , o . clearCloneStyle = "content-box" === i . style . backgroundClip , h . style . cssText = "border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute" , h . appendChild ( i ) , r . extend ( o , { pixelPosition : function ( ) { return b ( ) , c } , boxSizingReliable : function ( ) { return b ( ) , e } , pixelMarginRight : function ( ) { return b ( ) , f } , reliableMarginLeft : function ( ) { return b ( ) , g } } ) ) } ( ) ; var Pa = /^(none|table(?!-c[ea]).+)/ , Qa = { position : "absolute" , visibility : "hidden" , display : "block" } , Ra = { letterSpacing : "0" , fontWeight : "400" } , Sa = [ "Webkit" , "Moz" , "ms" ] , Ta = d . createElement ( "div" ) . style ; r . extend ( { cssHooks : { opacity : { get : function ( a , b ) { if ( b ) { var c = Na ( a , "opacity" ) ; return "" === c ? "1" : c } } } } , cssNumber : { animationIterationCount : ! 0 , columnCount : ! 0 , fillOpacity : ! 0 , flexGrow : ! 0 , flexShrink : ! 0 , fontWeight : ! 0 , lineHeight : ! 0 , opacity : ! 0 , order : ! 0 , orphans : ! 0 , widows : ! 0 , zIndex : ! 0 , zoom : ! 0 } , cssProps : { float : "cssFloat" } , style : function ( a , b , c , d ) { if ( a && 3 !== a . nodeType && 8 !== a . nodeType && a . style ) { var e , f , g , h = r . camelCase ( b ) , i = a . style ; return b = r . cssProps [ h ] || ( r . cssProps [ h ] = Ua ( h ) || h ) , g = r . cssHooks [ b ] || r . cssHooks [ h ] , void 0 === c ? g && "get" in g && void 0 !== ( e = g . get ( a , ! 1 , d ) ) ? e : i [ b ] : ( f = typeof c , "string" === f && ( e = aa . exec ( c ) ) && e [ 1 ] && ( c = ea ( a , b , e ) , f = "number" ) , void ( null != c && c === c && ( "number" === f && ( c += e && e [ 3 ] || ( r . cssNumber [ h ] ? "" : "px" ) ) , o . clearCloneStyle || "" !== c || 0 !== b . indexOf ( "background" ) || ( i [ b ] = "inherit" ) , g && "set" in g && void 0 === ( c = g . set ( a , c , d ) ) || ( i [ b ] = c ) ) ) ) } } , css : function ( a , b , c , d ) { var e , f , g , h = r . camelCase ( b ) ; return b = r . cssProps [ h ] || ( r . cssProps [ h ] = Ua ( h ) || h ) , g = r . cssHooks [ b ] || r . cssHooks [ h ] , g && "get" in g && ( e = g . get ( a , ! 0 , c ) ) , void 0 === e && ( e = Na ( a , b , d ) ) , "normal" === e && b in Ra && ( e = Ra [ b ] ) , "" === c || c ? ( f = parseFloat ( e ) , c === ! 0 || isFinite ( f ) ? f || 0 : e ) : e } } ) , r . each ( [ "height" , "width" ] , function ( a , b ) { r . cssHooks [ b ] = { get : function ( a , c , d ) { if ( c ) return ! Pa . test ( r . css ( a , "display" ) ) || a . getClientRects ( ) . length && a . getBoundingClientRect ( ) . width ? Xa ( a , b , d ) : da ( a , Qa , function ( ) { return Xa ( a , b , d ) } ) } , set : function ( a , c , d ) { var e , f = d && Ma ( a ) , g = d && Wa ( a , b , d , "border-box" === r . css ( a , "boxSizing" , ! 1 , f ) , f ) ; return g && ( e = aa . exec ( c ) ) && "px" !== ( e [ 3 ] || "px" ) && ( a . style [ b ] = c , c = r . css ( a , b ) ) , Va ( a , c , g ) } } } ) , r . cssHooks . marginLeft = Oa ( o . reliableMarginLeft , function ( a , b ) { if ( b ) return ( parseFloat ( Na ( a , "marginLeft" ) ) || a . getBoundingClientRect ( ) . left - da ( a , { marginLeft : 0 } , function ( ) { return a . getBoundingClientRect ( ) . left } ) ) + "px" } ) , r . each ( { margin : "" , padding : "" , border : "Width" } , function ( a , b ) { r . cssHooks [ a + b ] = { expand : function ( c ) { for ( var d = 0 , e = { } , f = "string" == typeof c ? c . split ( " " ) : [ c ] ; d < 4 ; d ++ ) e [ a + ba [ d ] + b ] = f [ d ] || f [ d - 2 ] || f [ 0 ] ; return e } } , Ka . test ( a ) || ( r . cssHooks [ a + b ] . set = Va ) } ) , r . fn . extend ( { css : function ( a , b ) { return S ( this , function ( a , b , c ) { var d , e , f = { } , g = 0 ; if ( r . isArray ( b ) ) { for ( d = Ma ( a ) , e = b . length ; g < e ; g ++ ) f [ b [ g ] ] = r . css ( a , b [ g ] , ! 1 , d ) ; return f } return void 0 !== c ? r . style ( a , b , c ) : r . css ( a , b ) } , a , b , arguments . length > 1 ) } } ) , r . Tween = Ya , Ya . prototype = { constructor : Ya , init : function ( a , b , c , d , e , f ) { this . elem = a , this . prop = c , this . easing = e || r . easing . _default , this . options = b , this . start = this . now = this . cur ( ) , this . end = d , this . unit = f || ( r . cssNumber [ c ] ? "" : "px" ) } , cur : fu Line truncated
return 36 === t || 95 === t } function y ( e , t , n , r ) { Object . defineProperty ( e , t , { value : n , enumerable : ! ! r , writable : ! 0 , configurable : ! 0 } ) } function _ ( e ) { if ( ! Sr . test ( e ) ) { var t = e . split ( "." ) ; return function ( e ) { for ( var n = 0 ; n < t . length ; n ++ ) { if ( ! e ) return ; e = e [ t [ n ] ] } return e } } } function b ( e ) { return /native code/ . test ( e . toString ( ) ) } function $ ( e ) { Hr . target && Ur . push ( Hr . target ) , Hr . target = e } function w ( ) { Hr . target = Ur . pop ( ) } function C ( ) { zr . length = 0 , Vr = { } , Jr = qr = ! 1 } function x ( ) { for ( qr = ! 0 , zr . sort ( function ( e , t ) { return e . id - t . id } ) , Kr = 0 ; Kr < zr . length ; Kr ++ ) { var e = zr [ Kr ] , t = e . id ; Vr [ t ] = null , e . run ( ) } Ir && Tr . devtools && Ir . emit ( "flush" ) , C ( ) } function k ( e ) { var t = e . id ; if ( null == Vr [ t ] ) { if ( Vr [ t ] = ! 0 , qr ) { for ( var n = zr . length - 1 ; n >= 0 && zr [ n ] . id > e . id ; ) n -- ; zr . splice ( Math . max ( n , Kr ) + 1 , 0 , e ) } else zr . push ( e ) ; Jr || ( Jr = ! 0 , Br ( x ) ) } } function A ( e , t ) { var n , r ; t || ( t = Gr , t . clear ( ) ) ; var i = Array . isArray ( e ) , a = l ( e ) ; if ( ( i || a ) && Object . isExtensible ( e ) ) { if ( e . _ _ob _ _ ) { var o = e . _ _ob _ _ . dep . id ; if ( t . has ( o ) ) return ; t . add ( o ) } if ( i ) for ( n = e . length ; n -- ; ) A ( e [ n ] , t ) ; else if ( a ) for ( r = Object . keys ( e ) , n = r . length ; n -- ; ) A ( e [ r [ n ] ] , t ) } } function O ( e , t ) { e . _ _proto _ _ = t } function T ( e , t , n ) { for ( var r = 0 , i = n . length ; r < i ; r ++ ) { var a = n [ r ] ; y ( e , a , t [ a ] ) } } function S ( e ) { if ( l ( e ) ) { var t ; return i ( e , "__ob__" ) && e . _ _ob _ _ instanceof ti ? t = e . _ _ob _ _ : ei . shouldConvert && ! Tr . _isServer && ( Array . isArray ( e ) || f ( e ) ) && Object . isExtensible ( e ) && ! e . _isVue && ( t = new ti ( e ) ) , t } } function E ( e , t , n , r ) { var i = new Hr , a = Object . getOwnPropertyDescriptor ( e , t ) ; if ( ! a || a . configurable !== ! 1 ) { var o = a && a . get , s = a && a . set , c = S ( n ) ; Object . defineProperty ( e , t , { enumerable : ! 0 , configurable : ! 0 , get : function ( ) { var t = o ? o . call ( e ) : n ; return Hr . target && ( i . depend ( ) , c && c . dep . depend ( ) , Array . isArray ( t ) && N ( t ) ) , t } , set : function ( t ) { var r = o ? o . call ( e ) : n ; t !== r && ( s ? s . call ( e , t ) : n = t , c = S ( t ) , i . notify ( ) ) } } ) } } function j ( e , t , n ) { if ( Array . isArray ( e ) ) return e . splice ( t , 1 , n ) , n ; if ( i ( e , t ) ) return void ( e [ t ] = n ) ; var r = e . _ _ob _ _ ; return e . _isVue || r && r . vmCount ? void 0 : r ? ( E ( r . value , t , n ) , r . dep . notify ( ) , n ) : void ( e [ t ] = n ) } function L ( e , t ) { var n = e . _ _ob _ _ ; e . _isVue || n && n . vmCount || i ( e , t ) && ( delete e [ t ] , n && n . dep . notify ( ) ) } function N ( e ) { for ( var t = void 0 , n = 0 , r = e . length ; n < r ; n ++ ) t = e [ n ] , t && t . _ _ob _ _ && t . _ _ob _ _ . dep . depend ( ) , Array . isArray ( t ) && N ( t ) } function D ( e ) { e . _watchers = [ ] , M ( e ) , P ( e ) , R ( e ) , B ( e ) , F ( e ) } function M ( e ) { var t = e . $options . props ; if ( t ) { var n = e . $options . propsData || { } , r = e . $options . _propKeys = Object . keys ( t ) , i = ! e . $parent ; ei . shouldConvert = i ; for ( var a = function ( i ) { var a = r [ i ] ; E ( e , a , Le ( a , t , n , e ) ) } , o = 0 ; o < r . length ; o ++ ) a ( o ) ; ei . shouldConvert = ! 0 } } function P ( e ) { var t = e . $options . data ; t = e . _data = "function" == typeof t ? t . call ( e ) : t || { } , f ( t ) || ( t = { } ) ; for ( var n = Object . keys ( t ) , r = e . $options . props , a = n . length ; a -- ; ) r && i ( r , n [ a ] ) || z ( e , n [ a ] ) ; S ( t ) , t . _ _ob _ _ && t . _ _ob _ _ . vmCount ++ } function R ( e ) { var t = e . $options . computed ; if ( t ) for ( var n in t ) { var r = t [ n ] ; "function" == typeof r ? ( ni . get = I ( r , e ) , ni . set = p ) : ( ni . get = r . get ? r . cache !== ! 1 ? I ( r . get , e ) : s ( r . get , e ) : p , ni . set = r . set ? s ( r . set , e ) : p ) , Object . defineProperty ( e , n , ni ) } } function I ( e , t ) { var n = new Zr ( t , e , p , { lazy : ! 0 } ) ; return function ( ) { return n . dirty && n . evaluate ( ) , Hr . target && n . depend ( ) , n . value } } function B ( e ) { var t = e . $options . methods ; if ( t ) for ( var n in t ) e [ n ] = null == t [ n ] ? p : s ( t [ n ] , e ) } function F ( e ) { var t = e . $options . watch ; if ( t ) for ( var n in t ) { var r = t [ n ] ; if ( Array . isArray ( r ) ) for ( var i = 0 ; i < r . length ; i ++ ) H ( e , n , r [ i ] ) ; else H ( e , n , r ) } } function H ( e , t , n ) { var r ; f ( n ) && ( r = n , n = n . handler ) , "string" == typeof n && ( n = e [ n ] ) , e . $watch ( t , n , r ) } function U ( e ) { var t = { } ; t . get = function ( ) { return this . _data } , Object . defineProperty ( e . prototype , "$data" , t ) , e . prototype . $set = j , e . prototype . $delete = L , e . prototype . $watch = function ( e , t , n ) { var r = this ; n = n || { } , n . user = ! 0 ; var i = new Zr ( r , e , t , n ) ; return n . immediate && t . call ( r , i . value ) , function ( ) { i . teardown ( ) } } } function z ( e , t ) { g ( t ) || Object . defineProperty ( e , t , { configurable : ! 0 , enumerable : ! 0 , get : function ( ) { return e . _data [ t ] } , set : function ( n ) { e . _data [ t ] = n } } ) } function V ( e ) { var t = new ri ( e . tag , e . data , e . children , e . text , e . elm , e . ns , e . context , e . componentOptions ) ; return t . isStatic = e . isStatic , t . key = e . key , t . isCloned = ! 0 , t } function J ( e ) { for ( var t = new Array ( e . length ) , n = 0 ; n < e . length ; n ++ ) t [ n ] = V ( e [ n ] ) ; return t } function q ( e , t , n , r ) { r += t ; var i = e . _ _injected || ( e . _ _injected = { } ) ; if ( ! i [ r ] ) { i [ r ] = ! 0 ; var a = e [ t ] ; a ? e [ t ] = function ( ) { a . apply ( this , arguments ) , n . apply ( this , arguments ) } : e [ t ] = n } } function K ( e , t , n , r , i ) { var a , o , s , c , u , l ; for ( a in e ) if ( o = e [ a ] , s = t [ a ] , o ) if ( s ) { if ( o !== s ) if ( Array . isArray ( s ) ) { s . length = o . length ; for ( var f = 0 ; f < s . length ; f ++ ) s [ f ] = o [ f ] ; e [ a ] = s } else s . fn = o , e [ a ] = s } else l = "!" === a . charAt ( 0 ) , u = l ? a . slice ( 1 ) : a , Array . isArray ( o ) ? n ( u , o . invoker = W ( o ) , l ) : ( o . invoker || ( c = o , o = e [ a ] = { } , o . fn = c , o . invoker = Z ( o ) ) , n ( u , o . invoker , l ) ) ; for ( a in t ) e [ a ] || ( u = "!" === a . charAt ( 0 ) ? a . slice ( 1 ) : a , r ( u , t [ a ] . invoker ) ) } function W ( e ) { return function ( t ) { for ( var n = arguments , r = 1 === arguments . length , i = 0 ; i < e . length ; i ++ ) r ? e [ i ] ( t ) : e [ i ] . apply ( null , n ) } } function Z ( e ) { return function ( t ) { var n = 1 === arguments . length ; n ? e . fn ( t ) : e . fn . apply ( null , arguments ) } } function G ( e , t , n ) { if ( a ( e ) ) return [ Y ( e ) ] ; if ( Array . isArray ( e ) ) { for ( var r = [ ] , i = 0 , o = e . length ; i < o ; i ++ ) { var s = e [ i ] , c = r [ r . length - 1 ] ; Array . isArray ( s ) ? r . push . apply ( r , G ( s , t , ( n || "" ) + "_" + i ) ) : a ( s ) ? c && c . text ? c . text += String ( s ) Line truncated
c . length = a , s = a && c [ a - 1 ] . tag } else "br" === n . toLowerCase ( ) ? t . start && t . start ( n , [ ] , ! 0 , r , i ) : "p" === n . toLowerCase ( ) && ( t . start && t . start ( n , [ ] , ! 1 , r , i ) , t . end && t . end ( n , r , i ) ) } for ( var o , s , c = [ ] , u = t . expectHTML , l = t . isUnaryTag || Or , f = 0 ; e ; ) { if ( o = e , s && Ja ( s ) ) { var d = s . toLowerCase ( ) , p = qa [ d ] || ( qa [ d ] = new RegExp ( "([\\s\\S]*?)(</" + d + "[^>]*>)" , "i" ) ) , v = 0 , h = e . replace ( p , function ( e , n , r ) { return v = r . length , "script" !== d && "style" !== d && "noscript" !== d && ( n = n . replace ( /<!--([\s\S]*?)-->/g , "$1" ) . replace ( /<!\[CDATA\[([\s\S]*?)\]\]>/g , "$1" ) ) , t . chars && t . chars ( n ) , "" } ) ; f += e . length - h . length , e = h , a ( "</" + d + ">" , d , f - v , f ) } else { var m = e . indexOf ( "<" ) ; if ( 0 === m ) { if ( /^<!--/ . test ( e ) ) { var g = e . indexOf ( "-->" ) ; if ( g >= 0 ) { n ( g + 3 ) ; continue } } if ( /^<!\[/ . test ( e ) ) { var y = e . indexOf ( "]>" ) ; if ( y >= 0 ) { n ( y + 2 ) ; continue } } var _ = e . match ( Aa ) ; if ( _ ) { n ( _ [ 0 ] . length ) ; continue } var b = e . match ( ka ) ; if ( b ) { var $ = f ; n ( b [ 0 ] . length ) , a ( b [ 0 ] , b [ 1 ] , $ , f ) ; continue } var w = r ( ) ; if ( w ) { i ( w ) ; continue } } var C = void 0 ; m >= 0 ? ( C = e . substring ( 0 , m ) , n ( m ) ) : ( C = e , e = "" ) , t . chars && t . chars ( C ) } if ( e === o ) throw new Error ( "Error parsing template:\n\n" + e ) } a ( ) } function tn ( e ) { function t ( ) { ( o || ( o = [ ] ) ) . push ( e . slice ( d , i ) . trim ( ) ) , d = i + 1 } var n , r , i , a , o , s = ! 1 , c = ! 1 , u = 0 , l = 0 , f = 0 , d = 0 ; for ( i = 0 ; i < e . length ; i ++ ) if ( r = n , n = e . charCodeAt ( i ) , s ) 39 === n && 92 !== r && ( s = ! s ) ; else if ( c ) 34 === n && 92 !== r && ( c = ! c ) ; else if ( 124 !== n || 124 === e . charCodeAt ( i + 1 ) || 124 === e . charCodeAt ( i - 1 ) || u || l || f ) switch ( n ) { case 34 : c = ! 0 ; break ; case 39 : s = ! 0 ; break ; case 40 : f ++ ; break ; case 41 : f -- ; break ; case 91 : l ++ ; break ; case 93 : l -- ; break ; case 123 : u ++ ; break ; case 125 : u -- } else void 0 === a ? ( d = i + 1 , a = e . slice ( 0 , i ) . trim ( ) ) : t ( ) ; if ( void 0 === a ? a = e . slice ( 0 , i ) . trim ( ) : 0 !== d && t ( ) , o ) for ( i = 0 ; i < o . length ; i ++ ) a = nn ( a , o [ i ] ) ; return a } function nn ( e , t ) { var n = t . indexOf ( "(" ) ; if ( n < 0 ) return '_f("' + t + '")(' + e + ")" ; var r = t . slice ( 0 , n ) , i = t . slice ( n + 1 ) ; return '_f("' + r + '")(' + e + "," + i } function rn ( e , t ) { var n = t ? eo ( t ) : Qa ; if ( n . test ( e ) ) { for ( var r , i , a = [ ] , o = n . lastIndex = 0 ; r = n . exec ( e ) ; ) { i = r . index , i > o && a . push ( JSON . stringify ( e . slice ( o , i ) ) ) ; var s = tn ( r [ 1 ] . trim ( ) ) ; a . push ( "_s(" + s + ")" ) , o = i + r [ 0 ] . length } return o < e . length && a . push ( JSON . stringify ( e . slice ( o ) ) ) , a . join ( "+" ) } } function an ( e ) { console . error ( "[Vue parser]: " + e ) } function on ( e , t ) { return e ? e . map ( function ( e ) { return e [ t ] } ) . filter ( function ( e ) { return e } ) : [ ] } function sn ( e , t , n ) { ( e . props || ( e . props = [ ] ) ) . push ( { name : t , value : n } ) } function cn ( e , t , n ) { ( e . attrs || ( e . attrs = [ ] ) ) . push ( { name : t , value : n } ) } function un ( e , t , n , r , i , a ) { ( e . directives || ( e . directives = [ ] ) ) . push ( { name : t , rawName : n , value : r , arg : i , modifiers : a } ) } function ln ( e , t , n , r , i ) { r && r . capture && ( delete r . capture , t = "!" + t ) ; var a ; r && r . native ? ( delete r . native , a = e . nativeEvents || ( e . nativeEvents = { } ) ) : a = e . events || ( e . events = { } ) ; var o = { value : n , modifiers : r } , s = a [ t ] ; Array . isArray ( s ) ? i ? s . unshift ( o ) : s . push ( o ) : s ? a [ t ] = i ? [ o , s ] : [ s , o ] : a [ t ] = o } function fn ( e , t , n ) { var r = dn ( e , ":" + t ) || dn ( e , "v-bind:" + t ) ; if ( null != r ) return r ; if ( n !== ! 1 ) { var i = dn ( e , t ) ; if ( null != i ) return JSON . stringify ( i ) } } function dn ( e , t ) { var n ; if ( null != ( n = e . attrsMap [ t ] ) ) for ( var r = e . attrsList , i = 0 , a = r . length ; i < a ; i ++ ) if ( r [ i ] . name === t ) { r . splice ( i , 1 ) ; break } return n } function pn ( e , t ) { Ta = t . warn || an , Sa = t . getTagNamespace || Or , Ea = t . mustUseProp || Or , ja = t . isPreTag || Or , La = on ( t . modules , "preTransformNode" ) , Na = on ( t . modules , "transformNode" ) , Da = on ( t . modules , "postTransformNode" ) , Ma = t . delimiters ; var n , r , i = [ ] , a = t . preserveWhitespace !== ! 1 , o = ! 1 , s = ! 1 ; return en ( e , { expectHTML : t . expectHTML , isUnaryTag : t . isUnaryTag , shouldDecodeNewlines : t . shouldDecodeNewlines , start : function ( e , a , c ) { function u ( e ) { } var l = r && r . ns || Sa ( e ) ; t . isIE && "svg" === l && ( a = En ( a ) ) ; var f = { type : 1 , tag : e , attrsList : a , attrsMap : On ( a , t . isIE ) , parent : r , children : [ ] } ; l && ( f . ns = l ) , Sn ( f ) && ( f . forbidden = ! 0 ) ; for ( var d = 0 ; d < La . length ; d ++ ) La [ d ] ( f , t ) ; if ( o || ( vn ( f ) , f . pre && ( o = ! 0 ) ) , ja ( f . tag ) && ( s = ! 0 ) , o ) hn ( f ) ; else { yn ( f ) , _n ( f ) , $n ( f ) , mn ( f ) , f . plain = ! f . key && ! a . length , gn ( f ) , wn ( f ) , Cn ( f ) ; for ( var p = 0 ; p < Na . length ; p ++ ) Na [ p ] ( f , t ) ; xn ( f ) } n || ( n = f , u ( n ) ) , r && ! f . forbidden && ( f . else ? bn ( f , r ) : ( r . children . push ( f ) , f . parent = r ) ) , c || ( r = f , i . push ( f ) ) ; for ( var v = 0 ; v < Da . length ; v ++ ) Da [ v ] ( f , t ) } , end : function ( ) { var e = i [ i . length - 1 ] , t = e . children [ e . children . length - 1 ] ; t && 3 === t . type && " " === t . text && e . children . pop ( ) , i . length -= 1 , r = i [ i . length - 1 ] , e . pre && ( o = ! 1 ) , ja ( e . tag ) && ( s = ! 1 ) } , chars : function ( e ) { if ( r && ( e = s || e . trim ( ) ? uo ( e ) : a && r . children . length ? " " : "" ) ) { var t ; ! o && " " !== e && ( t = rn ( e , Ma ) ) ? r . children . push ( { type : 2 , expression : t , text : e } ) : ( e = e . replace ( co , "" ) , r . children . push ( { type : 3 , text : e } ) ) } } } ) , n } function vn ( e ) { null != dn ( e , "v-pre" ) && ( e . pre = ! 0 ) } function hn ( e ) { var t = e . attrsList . length ; if ( t ) for ( var n = e . attrs = new Array ( t ) , r = 0 ; r < t ; r ++ ) n [ r ] = { name : e . attrsList [ r ] . name , value : JSON . stringify ( e . attrsList [ r ] . value ) } ; else e . pre || ( e . plain = ! 0 ) } function mn ( e ) { var t = fn ( e , "key" ) ; t && ( e . key = t ) } function gn ( e ) { var t = fn ( e , "ref" ) ; t && ( e . ref = t , e . refInFor = kn ( e ) ) } function yn ( e ) { var t ; if ( t = dn ( e , "v-for" ) ) { var n = t . match ( no ) ; if ( ! n ) return ; e . for = n [ 2 ] . trim ( ) ; var r = n [ 1 ] . trim ( ) , i = r . match ( ro ) ; i ? ( e . alias = i [ 1 ] . trim ( ) , e . iterator1 = i [ 2 ] . trim ( ) , i [ 3 ] && ( e . iterator2 = i [ 3 ] . trim ( ) ) ) : e . alias = r } } function _n ( e ) { var t = dn ( e , "v-if" ) ; t && ( e . if = t ) , null != dn ( e , "v-else" ) && ( e . else = ! 0 ) } function bn ( e , t ) { var n = Tn ( t . children ) ; n && n . if && ( n . elseBlock = e ) } function $n ( e ) { var t = dn ( e , " Line truncated
if ( r && ! a ( r ) . length && ( l = ! 1 ) , g . scrollTarget || p && q && r ) { for ( ; l && j < h . length ; ) f . is ( c ( h [ j ++ ] ) ) && ( l = ! 1 ) ; for ( ; l && k < i . length ; ) f . closest ( i [ k ++ ] ) . length && ( l = ! 1 ) } else l = ! 1 ; l && ( g . preventDefault && b . preventDefault ( ) , a . extend ( m , g , { scrollTarget : g . scrollTarget || r , link : e } ) , a . smoothScroll ( m ) ) } ; return null !== b . delegateSelector ? this . off ( "click.smoothscroll" , b . delegateSelector ) . on ( "click.smoothscroll" , b . delegateSelector , e ) : this . off ( "click.smoothscroll" ) . on ( "click.smoothscroll" , e ) , this } } ) , a . smoothScroll = function ( b , d ) { if ( "options" === b && "object" == typeof d ) return a . extend ( c , d ) ; var e , f , g , h , i , j = 0 , k = "offset" , l = "scrollTop" , m = { } , n = { } ; "number" == typeof b ? ( e = a . extend ( { link : null } , a . fn . smoothScroll . defaults , c ) , g = b ) : ( e = a . extend ( { link : null } , a . fn . smoothScroll . defaults , b || { } , c ) , e . scrollElement && ( k = "position" , "static" === e . scrollElement . css ( "position" ) && e . scrollElement . css ( "position" , "relative" ) ) ) , l = "left" === e . direction ? "scrollLeft" : l , e . scrollElement ? ( f = e . scrollElement , /^(?:HTML|BODY)$/ . test ( f [ 0 ] . nodeName ) || ( j = f [ l ] ( ) ) ) : f = a ( "html, body" ) . firstScrollable ( e . direction ) , e . beforeScroll . call ( f , e ) , g = "number" == typeof b ? b : d || a ( e . scrollTarget ) [ k ] ( ) && a ( e . scrollTarget ) [ k ] ( ) [ e . direction ] || 0 , m [ l ] = g + j + e . offset , h = e . speed , "auto" === h && ( i = Math . abs ( m [ l ] - f [ l ] ( ) ) , h = i / e . autoCoefficient ) , n = { duration : h , easing : e . easing , complete : function ( ) { e . afterScroll . call ( e . link , e ) } } , e . step && ( n . step = e . step ) , f . length ? f . stop ( ) . animate ( m , n ) : e . afterScroll . call ( e . link , e ) } , a . smoothScroll . version = b , a . smoothScroll . filterPath = function ( a ) { return a = a || "" , a . replace ( /^\// , "" ) . replace ( /(?:index|default).[a-zA-Z]{3,4}$/ , "" ) . replace ( /\/$/ , "" ) } , a . fn . smoothScroll . defaults = d } ) , simpleUpload . maxUploads = 10 , simpleUpload . activeUploads = 0 , simpleUpload . uploads = [ ] , simpleUpload . iframes = { } , simpleUpload . iframeCount = 0 , simpleUpload . queueUpload = function ( e , l ) { simpleUpload . uploads [ simpleUpload . uploads . length ] = { uploads : e , callback : l } } , simpleUpload . uploadNext = function ( ) { if ( simpleUpload . uploads . length > 0 && simpleUpload . activeUploads < simpleUpload . maxUploads ) { var e = simpleUpload . uploads [ 0 ] , l = e . callback , n = e . uploads . splice ( 0 , 1 ) [ 0 ] ; 0 == e . uploads . length && simpleUpload . uploads . splice ( 0 , 1 ) , simpleUpload . activeUploads ++ , l ( n ) , simpleUpload . uploadNext ( ) } } , simpleUpload . queueIframe = function ( e ) { for ( var l = 0 ; 0 == l || l in simpleUpload . iframes ; ) l = Math . floor ( 999999999 * Math . random ( ) + 1 ) ; return simpleUpload . iframes [ l ] = e , simpleUpload . iframeCount ++ , $ ( "body" ) . append ( '<iframe name="simpleUpload_iframe_' + l + '" style="display: none;"></iframe>' ) , l } , simpleUpload . dequeueIframe = function ( e ) { e in simpleUpload . iframes && ( $ ( "iframe[name=simpleUpload_iframe_" + e + "]" ) . remove ( ) , delete simpleUpload . iframes [ e ] , simpleUpload . iframeCount -- ) } , simpleUpload . convertDataType = function ( e , l , n ) { var t = "auto" ; if ( "auto" == e ) { if ( "string" == typeof l && "" != l ) { var a = l . toLowerCase ( ) , o = [ "json" , "xml" , "html" , "script" , "text" ] ; for ( var r in o ) if ( o [ r ] == a ) { t = a ; break } } } else t = e ; if ( "auto" == t ) return "undefined" == typeof n ? "" : "object" == typeof n ? n : String ( n ) ; if ( "json" == t ) { if ( "undefined" == typeof n || null === n ) return null ; if ( "object" == typeof n ) return n ; if ( "string" == typeof n ) try { return $ . parseJSON ( n ) } catch ( i ) { return ! 1 } return ! 1 } if ( "xml" == t ) { if ( "undefined" == typeof n || null === n ) return null ; if ( "string" == typeof n ) try { return $ . parseXML ( n ) } catch ( i ) { return ! 1 } return ! 1 } if ( "script" == t ) { if ( "undefined" == typeof n ) return "" ; if ( "string" == typeof n ) try { return $ . globalEval ( n ) , n } catch ( i ) { return ! 1 } return ! 1 } return "undefined" == typeof n ? "" : String ( n ) } , simpleUpload . iframeCallback = function ( e ) { if ( "object" == typeof e && null !== e ) { var l = e . id ; if ( l in simpleUpload . iframes ) { var n = simpleUpload . convertDataType ( simpleUpload . iframes [ l ] . expect , e . type , e . data ) ; n !== ! 1 ? simpleUpload . iframes [ l ] . complete ( n ) : simpleUpload . iframes [ l ] . error ( "Could not get response from server" ) } } } , simpleUpload . postMessageCallback = function ( e ) { try { var l = e . message ? "message" : "data" , n = e [ l ] ; if ( "string" == typeof n && "" != n && ( n = $ . parseJSON ( n ) , "object" == typeof n && null !== n && "string" == typeof n . namespace && "simpleUpload" == n . namespace ) ) { var t = n . id ; if ( t in simpleUpload . iframes && e . origin === simpleUpload . iframes [ t ] . origin ) { var a = simpleUpload . convertDataType ( simpleUpload . iframes [ t ] . expect , n . type , n . data ) ; a !== ! 1 ? simpleUpload . iframes [ t ] . complete ( a ) : simpleUpload . iframes [ t ] . error ( "Could not get response from server" ) } } } catch ( e ) { } } , window . addEventListener ? window . addEventListener ( "message" , simpleUpload . postMessageCallback , ! 1 ) : window . attachEvent ( "onmessage" , simpleUpload . postMessageCallback ) , function ( e ) { "function" == typeof define && define . amd ? define ( [ "jquery" ] , e ) : "object" == typeof exports ? module . exports = e ( require ( "jquery" ) ) : e ( jQuery ) } ( function ( e ) { e . fn . simpleUpload = function ( l , n ) { return 0 == e ( this ) . length && "object" == typeof n && null !== n && "object" == typeof n . files && null !== n . files ? ( new simpleUpload ( l , null , n ) , this ) : this . each ( function ( ) { new simpleUpload ( l , this , n ) } ) } , e . fn . simpleUpload . maxSimultaneousUploads = function ( e ) { return "undefined" == typeof e ? simpleUpload . maxUploads : "number" == typeof e && e > 0 ? ( simpleUpload . maxUploads = e , this ) : void 0 } } ) , ! function ( e ) { "function" == typeof define && define . amd ? define ( [ "jquery" ] , e ) : e ( "object" == typeof exports ? requ Line truncated
return t . renderElement ( i ) } ) } } , 10 ) } , t . prototype . renderElement = function ( t ) { var i = this ; t . sticky = { } , t . sticky . active = ! 1 , t . sticky . marginTop = parseInt ( t . getAttribute ( "data-margin-top" ) ) || this . options . marginTop , t . sticky . stickyFor = parseInt ( t . getAttribute ( "data-sticky-for" ) ) || this . options . stickyFor , t . sticky . stickyClass = t . getAttribute ( "data-sticky-class" ) || this . options . stickyClass , t . sticky . container = this . getStickyContainer ( t ) , t . sticky . container . rect = this . getRectangle ( t . sticky . container ) , t . sticky . rect = this . getRectangle ( t ) , "img" === t . tagName . toLowerCase && ( t . onload = function ( ) { return t . sticky . rect = i . getRectangle ( t ) } ) , this . activate ( t ) } , t . prototype . activate = function ( t ) { var i = t . sticky . container . offsetHeight ; this . css ( t , { position : "fixed" } ) ; var e = t . sticky . container . offsetHeight ; this . css ( t , { position : "" } ) , e >= i && t . sticky . stickyFor < this . vp . width && ! t . sticky . active && ( t . sticky . active = ! 0 ) , this . elements . indexOf ( t ) < 0 && this . elements . push ( t ) , t . sticky . resizeEvent || ( this . initResizeEvents ( t ) , t . sticky . resizeEvent = ! 0 ) , t . sticky . scrollEvent || ( this . initScrollEvents ( t ) , t . sticky . scrollEvent = ! 0 ) } , t . prototype . initResizeEvents = function ( t ) { var i = this ; t . sticky . resizeListener = function ( ) { return i . onResizeEvents ( t ) } , window . addEventListener ( "resize" , t . sticky . resizeListener ) } , t . prototype . onResizeEvents = function ( t ) { this . vp = this . getViewportSize ( ) , t . sticky . rect = this . getRectangle ( t ) , t . sticky . container . rect = this . getRectangle ( t . sticky . container ) , t . sticky . stickyFor < this . vp . width && ! t . sticky . active ? t . sticky . active = ! 0 : t . sticky . stickyFor >= this . vp . width && t . sticky . active && ( t . sticky . active = ! 1 ) , this . setPosition ( t ) } , t . prototype . initScrollEvents = function ( t ) { var i = this ; t . sticky . scrollListener = function ( ) { return i . onScrollEvents ( t ) } , window . addEventListener ( "scroll" , t . sticky . scrollListener ) } , t . prototype . onScrollEvents = function ( t ) { this . scrollTop = this . getScrollTopPosition ( ) , t . sticky . active && this . setPosition ( t ) } , t . prototype . setPosition = function ( t ) { this . css ( t , { position : "" , width : "" , top : "" , left : "" } ) , this . vp . height < t . sticky . rect . height || ! t . sticky . active || ( t . sticky . rect . width || ( t . sticky . rect = this . getRectangle ( t ) ) , this . scrollTop > t . sticky . rect . top - t . sticky . marginTop ? ( this . css ( t , { position : "fixed" , width : t . sticky . rect . width + "px" , left : t . sticky . rect . left + "px" } ) , this . scrollTop + t . sticky . rect . height + t . sticky . marginTop > t . sticky . container . rect . top + t . sticky . container . offsetHeight ? ( t . sticky . stickyClass && t . classList . remove ( t . sticky . stickyClass ) , this . css ( t , { top : t . sticky . container . rect . top + t . sticky . container . offsetHeight - ( this . scrollTop + t . sticky . rect . height ) + "px" } ) ) : ( t . sticky . stickyClass && t . classList . add ( t . sticky . stickyClass ) , this . css ( t , { top : t . sticky . marginTop + "px" } ) ) ) : ( t . sticky . stickyClass && t . classList . remove ( t . sticky . stickyClass ) , this . css ( t , { position : "" , width : "" , top : "" , left : "" } ) ) ) } , t . prototype . update = function ( ) { var t = this ; this . forEach ( this . elements , function ( i ) { i . sticky . rect = t . getRectangle ( i ) , i . sticky . container . rect = t . getRectangle ( i . sticky . container ) , t . activate ( i ) , t . setPosition ( i ) } ) } , t . prototype . getStickyContainer = function ( t ) { for ( var i = t ; ! i . hasAttribute ( "data-sticky-container" ) && i !== document . querySelector ( "body" ) ; ) i = i . parentNode ; return i } , t . prototype . getRectangle = function ( t ) { this . css ( t , { position : "" , width : "" , top : "" , left : "" } ) ; var i = Math . max ( t . offsetWidth , t . clientWidth , t . scrollWidth ) , e = Math . max ( t . offsetHeight , t . clientHeight , t . scrollHeight ) , s = 0 , o = 0 ; do s += t . offsetTop || 0 , o += t . offsetLeft || 0 , t = t . offsetParent ; while ( t ) ; return { top : s , left : o , width : i , height : e } } , t . prototype . getViewportSize = function ( ) { return { width : Math . max ( document . documentElement . clientWidth , window . innerWidth || 0 ) , height : Math . max ( document . documentElement . clientHeight , window . innerHeight || 0 ) } } , t . prototype . getScrollTopPosition = function ( ) { return ( window . pageYOffset || document . scrollTop ) - ( document . clientTop || 0 ) || 0 } , t . prototype . forEach = function ( t , i ) { for ( var e = 0 , s = t . length ; e < s ; e ++ ) i ( t [ e ] ) } , t . prototype . css = function ( t , i ) { for ( var e in i ) i . hasOwnProperty ( e ) && ( t . style [ e ] = i [ e ] ) } , t } ( ) ; ! function ( t , i ) { "undefined" != typeof exports ? module . exports = i : "function" == typeof define && define . amd ? define ( [ ] , i ) : t . Sticky = i } ( this , Sticky ) , ! function ( e ) { if ( "object" == typeof exports && "undefined" != typeof module ) module . exports = e ( ) ; else if ( "function" == typeof define && define . amd ) define ( [ ] , e ) ; else { var t ; t = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this , t . SimpleMDE = e ( ) } } ( function ( ) { var e ; return function t ( e , n , r ) { function i ( a , l ) { if ( ! n [ a ] ) { if ( ! e [ a ] ) { var s = "function" == typeof require && require ; if ( ! l && s ) return s ( a , ! 0 ) ; if ( o ) return o ( a , ! 0 ) ; var c = new Error ( "Cannot find module '" + a + "'" ) ; throw c . code = "MODULE_NOT_FOUND" , c } var u = n [ a ] = { exports : { } } ; e [ a ] [ 0 ] . call ( u . exports , function ( t ) { var n = e [ a ] [ 1 ] [ t ] ; return i ( n ? n : t ) } , u , u . exports , t , e , n , r ) } return n [ a ] . exports } for ( var o = "function" == typeof require && require , a = 0 ; a < r . length ; a ++ ) i ( r [ a ] ) ; return i } ( { 1 : [ function ( e , t , n ) { "use strict" ; function r ( ) { for ( var e = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" , t = 0 , n = e . length ; n > t ; ++ t ) s [ t ] = e [ t ] , c [ e . charCodeAt ( t ) ] = t ; c [ "-" . charCodeAt ( 0 ) ] = 62 , c [ "_" . charCodeAt ( 0 ) ] = 63 } fu Line truncated
} function a ( e ) { if ( ! e . somethingSelected ( ) ) return i ( e ) ; if ( e . listSelections ( ) . length > 1 ) return o ( e ) ; var t = e . getCursor ( "start" ) , n = e . getCursor ( "end" ) , a = e . state . markedSelection ; if ( ! a . length ) return r ( e , t , n ) ; var s = a [ 0 ] . find ( ) , u = a [ a . length - 1 ] . find ( ) ; if ( ! s || ! u || n . line - t . line < l || c ( t , u . to ) >= 0 || c ( n , s . from ) <= 0 ) return o ( e ) ; for ( ; c ( t , s . from ) > 0 ; ) a . shift ( ) . clear ( ) , s = a [ 0 ] . find ( ) ; for ( c ( t , s . from ) < 0 && ( s . to . line - t . line < l ? ( a . shift ( ) . clear ( ) , r ( e , t , s . to , 0 ) ) : r ( e , t , s . from , 0 ) ) ; c ( n , u . to ) < 0 ; ) a . pop ( ) . clear ( ) , u = a [ a . length - 1 ] . find ( ) ; c ( n , u . to ) > 0 && ( n . line - u . from . line < l ? ( a . pop ( ) . clear ( ) , r ( e , u . from , n ) ) : r ( e , u . to , n ) ) } e . defineOption ( "styleSelectedText" , ! 1 , function ( r , a , l ) { var s = l && l != e . Init ; a && ! s ? ( r . state . markedSelection = [ ] , r . state . markedSelectionStyle = "string" == typeof a ? a : "CodeMirror-selectedtext" , o ( r ) , r . on ( "cursorActivity" , t ) , r . on ( "change" , n ) ) : ! a && s && ( r . off ( "cursorActivity" , t ) , r . off ( "change" , n ) , i ( r ) , r . state . markedSelection = r . state . markedSelectionStyle = null ) } ) ; var l = 8 , s = e . Pos , c = e . cmpPos } ) } , { "../../lib/codemirror" : 10 } ] , 10 : [ function ( t , n , r ) { ! function ( t ) { if ( "object" == typeof r && "object" == typeof n ) n . exports = t ( ) ; else { if ( "function" == typeof e && e . amd ) return e ( [ ] , t ) ; ( this || window ) . CodeMirror = t ( ) } } ( function ( ) { "use strict" ; function e ( n , r ) { if ( ! ( this instanceof e ) ) return new e ( n , r ) ; this . options = r = r ? Wi ( r ) : { } , Wi ( ea , r , ! 1 ) , d ( r ) ; var i = r . value ; "string" == typeof i && ( i = new Ca ( i , r . mode , null , r . lineSeparator ) ) , this . doc = i ; var o = new e . inputStyles [ r . inputStyle ] ( this ) , a = this . display = new t ( n , i , o ) ; a . wrapper . CodeMirror = this , c ( this ) , l ( this ) , r . lineWrapping && ( this . display . wrapper . className += " CodeMirror-wrap" ) , r . autofocus && ! Ao && a . input . focus ( ) , v ( this ) , this . state = { keyMaps : [ ] , overlays : [ ] , modeGen : 0 , overwrite : ! 1 , delayingBlurEvent : ! 1 , focused : ! 1 , suppressEdits : ! 1 , pasteIncoming : ! 1 , cutIncoming : ! 1 , selectingText : ! 1 , draggingText : ! 1 , highlight : new Ei , keySeq : null , specialChars : null } ; var s = this ; xo && 11 > bo && setTimeout ( function ( ) { s . display . input . reset ( ! 0 ) } , 20 ) , jt ( this ) , Ki ( ) , bt ( this ) , this . curOp . forceUpdate = ! 0 , Xr ( this , i ) , r . autofocus && ! Ao || s . hasFocus ( ) ? setTimeout ( Bi ( vn , this ) , 20 ) : yn ( this ) ; for ( var u in ta ) ta . hasOwnProperty ( u ) && ta [ u ] ( this , r [ u ] , na ) ; k ( this ) , r . finishInit && r . finishInit ( this ) ; for ( var f = 0 ; f < aa . length ; ++ f ) aa [ f ] ( this ) ; kt ( this ) , wo && r . lineWrapping && "optimizelegibility" == getComputedStyle ( a . lineDiv ) . textRendering && ( a . lineDiv . style . textRendering = "auto" ) } function t ( e , t , n ) { var r = this ; this . input = n , r . scrollbarFiller = ji ( "div" , null , "CodeMirror-scrollbar-filler" ) , r . scrollbarFiller . setAttribute ( "cm-not-content" , "true" ) , r . gutterFiller = ji ( "div" , null , "CodeMirror-gutter-filler" ) , r . gutterFiller . setAttribute ( "cm-not-content" , "true" ) , r . lineDiv = ji ( "div" , null , "CodeMirror-code" ) , r . selectionDiv = ji ( "div" , null , null , "position: relative; z-index: 1" ) , r . cursorDiv = ji ( "div" , null , "CodeMirror-cursors" ) , r . measure = ji ( "div" , null , "CodeMirror-measure" ) , r . lineMeasure = ji ( "div" , null , "CodeMirror-measure" ) , r . lineSpace = ji ( "div" , [ r . measure , r . lineMeasure , r . selectionDiv , r . cursorDiv , r . lineDiv ] , null , "position: relative; outline: none" ) , r . mover = ji ( "div" , [ ji ( "div" , [ r . lineSpace ] , "CodeMirror-lines" ) ] , null , "position: relative" ) , r . sizer = ji ( "div" , [ r . mover ] , "CodeMirror-sizer" ) , r . sizerWidth = null , r . heightForcer = ji ( "div" , null , null , "position: absolute; height: " + Da + "px; width: 1px;" ) , r . gutters = ji ( "div" , null , "CodeMirror-gutters" ) , r . lineGutter = null , r . scroller = ji ( "div" , [ r . sizer , r . heightForcer , r . gutters ] , "CodeMirror-scroll" ) , r . scroller . setAttribute ( "tabIndex" , "-1" ) , r . wrapper = ji ( "div" , [ r . scrollbarFiller , r . gutterFiller , r . scroller ] , "CodeMirror" ) , xo && 8 > bo && ( r . gutters . style . zIndex = - 1 , r . scroller . style . paddingRight = 0 ) , wo || go && Ao || ( r . scroller . draggable = ! 0 ) , e && ( e . appendChild ? e . appendChild ( r . wrapper ) : e ( r . wrapper ) ) , r . viewFrom = r . viewTo = t . first , r . reportedViewFrom = r . reportedViewTo = t . first , r . view = [ ] , r . renderedView = null , r . externalMeasured = null , r . viewOffset = 0 , r . lastWrapHeight = r . lastWrapWidth = 0 , r . updateLineNumbers = null , r . nativeBarWidth = r . barHeight = r . barWidth = 0 , r . scrollbarsClipped = ! 1 , r . lineNumWidth = r . lineNumInnerWidth = r . lineNumChars = null , r . alignWidgets = ! 1 , r . cachedCharWidth = r . cachedTextHeight = r . cachedPaddingH = null , r . maxLine = null , r . maxLineLength = 0 , r . maxLineChanged = ! 1 , r . wheelDX = r . wheelDY = r . wheelStartX = r . wheelStartY = null , r . shift = ! 1 , r . selForContextMenu = null , r . activeTouch = null , n . init ( r ) } function n ( t ) { t . doc . mode = e . getMode ( t . options , t . doc . modeOption ) , r ( t ) } function r ( e ) { e . doc . iter ( function ( e ) { e . stateAfter && ( e . stateAfter = null ) , e . styles && ( e . styles = null ) } ) , e . doc . frontier = e . doc . first , _e ( e , 100 ) , e . state . modeGen ++ , e . curOp && Dt ( e ) } function i ( e ) { e . options . lineWrapping ? ( Ja ( e . display . wrapper , "CodeMirror-wrap" ) , e . display . sizer . style . minWidth = "" , e . display . sizerWidth = null ) : ( Za ( e . display . wrapper , "CodeMirror-wrap" ) , h ( e ) ) , a ( e ) , Dt ( e ) , lt ( e ) , setTimeout ( function ( ) { y ( e ) } , 100 ) } function o ( e ) { var t = yt ( e . display ) , n = e . options . lineWrapping , r = n && Math . max ( 5 , e . display . scroller . clientWidth / xt ( e . display ) - 3 ) ; return function ( i ) { if ( kr ( e . doc , i ) ) return 0 ; var o = 0 ; if ( i . widgets ) for ( var a = 0 ; a < i . widgets . length ; a ++ ) i . widgets [ a ] . height && ( o += i . widgets [ a ] . height ) ; return n ? o + ( Math . ceil ( i . text . length / r ) || 1 ) * t : o + t } } function a ( e ) { var t = e . doc , n Line truncated
r . lineN = n ; var i = r . built = Br ( e , r ) ; return r . text = i . pre , qi ( e . display . lineMeasure , i . pre ) , r } function Je ( e , t , n , r ) { return tt ( e , et ( e , t ) , n , r ) } function Qe ( e , t ) { if ( t >= e . display . viewFrom && t < e . display . viewTo ) return e . display . view [ Bt ( e , t ) ] ; var n = e . display . externalMeasured ; return n && t >= n . lineN && t < n . lineN + n . size ? n : void 0 } function et ( e , t ) { var n = ti ( t ) , r = Qe ( e , n ) ; r && ! r . text ? r = null : r && r . changes && ( D ( e , r , n , P ( e ) ) , e . curOp . forceUpdate = ! 0 ) , r || ( r = Ze ( e , t ) ) ; var i = Xe ( r , t , n ) ; return { line : t , view : r , rect : null , map : i . map , cache : i . cache , before : i . before , hasHeights : ! 1 } } function tt ( e , t , n , r , i ) { t . before && ( n = - 1 ) ; var o , a = n + ( r || "" ) ; return t . cache . hasOwnProperty ( a ) ? o = t . cache [ a ] : ( t . rect || ( t . rect = t . view . text . getBoundingClientRect ( ) ) , t . hasHeights || ( Ke ( e , t . view , t . rect ) , t . hasHeights = ! 0 ) , o = rt ( e , t , n , r ) , o . bogus || ( t . cache [ a ] = o ) ) , { left : o . left , right : o . right , top : i ? o . rtop : o . top , bottom : i ? o . rbottom : o . bottom } } function nt ( e , t , n ) { for ( var r , i , o , a , l = 0 ; l < e . length ; l += 3 ) { var s = e [ l ] , c = e [ l + 1 ] ; if ( s > t ? ( i = 0 , o = 1 , a = "left" ) : c > t ? ( i = t - s , o = i + 1 ) : ( l == e . length - 3 || t == c && e [ l + 3 ] > t ) && ( o = c - s , i = o - 1 , t >= c && ( a = "right" ) ) , null != i ) { if ( r = e [ l + 2 ] , s == c && n == ( r . insertLeft ? "left" : "right" ) && ( a = n ) , "left" == n && 0 == i ) for ( ; l && e [ l - 2 ] == e [ l - 3 ] && e [ l - 1 ] . insertLeft ; ) r = e [ ( l -= 3 ) + 2 ] , a = "left" ; if ( "right" == n && i == c - s ) for ( ; l < e . length - 3 && e [ l + 3 ] == e [ l + 4 ] && ! e [ l + 5 ] . insertLeft ; ) r = e [ ( l += 3 ) + 2 ] , a = "right" ; break } } return { node : r , start : i , end : o , collapse : a , coverStart : s , coverEnd : c } } function rt ( e , t , n , r ) { var i , o = nt ( t . map , n , r ) , a = o . node , l = o . start , s = o . end , c = o . collapse ; if ( 3 == a . nodeType ) { for ( var u = 0 ; 4 > u ; u ++ ) { for ( ; l && zi ( t . line . text . charAt ( o . coverStart + l ) ) ; ) -- l ; for ( ; o . coverStart + s < o . coverEnd && zi ( t . line . text . charAt ( o . coverStart + s ) ) ; ) ++ s ; if ( xo && 9 > bo && 0 == l && s == o . coverEnd - o . coverStart ) i = a . parentNode . getBoundingClientRect ( ) ; else if ( xo && e . options . lineWrapping ) { var f = qa ( a , l , s ) . getClientRects ( ) ; i = f . length ? f [ "right" == r ? f . length - 1 : 0 ] : qo } else i = qa ( a , l , s ) . getBoundingClientRect ( ) || qo ; if ( i . left || i . right || 0 == l ) break ; s = l , l -= 1 , c = "right" } xo && 11 > bo && ( i = it ( e . display . measure , i ) ) } else { l > 0 && ( c = r = "right" ) ; var f ; i = e . options . lineWrapping && ( f = a . getClientRects ( ) ) . length > 1 ? f [ "right" == r ? f . length - 1 : 0 ] : a . getBoundingClientRect ( ) } if ( xo && 9 > bo && ! l && ( ! i || ! i . left && ! i . right ) ) { var h = a . parentNode . getClientRects ( ) [ 0 ] ; i = h ? { left : h . left , right : h . left + xt ( e . display ) , top : h . top , bottom : h . bottom } : qo } for ( var d = i . top - t . rect . top , p = i . bottom - t . rect . top , m = ( d + p ) / 2 , g = t . view . measure . heights , u = 0 ; u < g . length - 1 && ! ( m < g [ u ] ) ; u ++ ) ; var v = u ? g [ u - 1 ] : 0 , y = g [ u ] , x = { left : ( "right" == c ? i . right : i . left ) - t . rect . left , right : ( "left" == c ? i . left : i . right ) - t . rect . left , top : v , bottom : y } ; return i . left || i . right || ( x . bogus = ! 0 ) , e . options . singleCursorHeightPerLine || ( x . rtop = d , x . rbottom = p ) , x } function it ( e , t ) { if ( ! window . screen || null == screen . logicalXDPI || screen . logicalXDPI == screen . deviceXDPI || ! Qi ( e ) ) return t ; var n = screen . logicalXDPI / screen . deviceXDPI , r = screen . logicalYDPI / screen . deviceYDPI ; return { left : t . left * n , right : t . right * n , top : t . top * r , bottom : t . bottom * r } } function ot ( e ) { if ( e . measure && ( e . measure . cache = { } , e . measure . heights = null , e . rest ) ) for ( var t = 0 ; t < e . rest . length ; t ++ ) e . measure . caches [ t ] = { } } function at ( e ) { e . display . externalMeasure = null , Ui ( e . display . lineMeasure ) ; for ( var t = 0 ; t < e . display . view . length ; t ++ ) ot ( e . display . view [ t ] ) } function lt ( e ) { at ( e ) , e . display . cachedCharWidth = e . display . cachedTextHeight = e . display . cachedPaddingH = null , e . options . lineWrapping || ( e . display . maxLineChanged = ! 0 ) , e . display . lineNumChars = null } function st ( ) { return window . pageXOffset || ( document . documentElement || document . body ) . scrollLeft } function ct ( ) { return window . pageYOffset || ( document . documentElement || document . body ) . scrollTop } function ut ( e , t , n , r ) { if ( t . widgets ) for ( var i = 0 ; i < t . widgets . length ; ++ i ) if ( t . widgets [ i ] . above ) { var o = Lr ( t . widgets [ i ] ) ; n . top += o , n . bottom += o } if ( "line" == r ) return n ; r || ( r = "local" ) ; var a = ri ( t ) ; if ( "local" == r ? a += Ue ( e . display ) : a -= e . display . viewOffset , "page" == r || "window" == r ) { var l = e . display . lineSpace . getBoundingClientRect ( ) ; a += l . top + ( "window" == r ? 0 : ct ( ) ) ; var s = l . left + ( "window" == r ? 0 : st ( ) ) ; n . left += s , n . right += s } return n . top += a , n . bottom += a , n } function ft ( e , t , n ) { if ( "div" == n ) return t ; var r = t . left , i = t . top ; if ( "page" == n ) r -= st ( ) , i -= ct ( ) ; else if ( "local" == n || ! n ) { var o = e . display . sizer . getBoundingClientRect ( ) ; r += o . left , i += o . top } var a = e . display . lineSpace . getBoundingClientRect ( ) ; return { left : r - a . left , top : i - a . top } } function ht ( e , t , n , r , i ) { return r || ( r = Zr ( e . doc , t . line ) ) , ut ( e , r , Je ( e , r , t . ch , i ) , n ) } function dt ( e , t , n , r , i , o ) { function a ( t , a ) { var l = tt ( e , i , t , a ? "right" : "left" , o ) ; return a ? l . left = l . right : l . right = l . left , ut ( e , r , l , n ) } function l ( e , t ) { var n = s [ t ] , r = n . level % 2 ; return e == to ( n ) && t && n . level < s [ t - 1 ] . level ? ( n = s [ -- t ] , e = no ( n ) - ( n . level % 2 ? 0 : 1 ) , r = ! 0 ) : e == no ( n ) && t < s . length - 1 && n . level < s [ t + 1 ] . level && ( n = s [ ++ t ] , e = to ( n ) - n . level % 2 , r = ! 1 ) , r && e == n . to && e > n . from ? a ( e - 1 ) : a ( e , r ) } r = r || Zr ( e . doc , t . line ) , i || ( i = et ( e , r ) ) ; var s = ii ( r ) , c = t . ch ; if ( ! s ) return a ( c ) ; var u = co ( s , c ) , f = l ( c , u ) ; return null != al && ( f . other = l ( c , al ) ) , f } function pt ( e , t ) { var n = 0 , t = me ( e . doc , t ) ; e . options . lineWrapping || ( n = xt ( e . display ) * t . ch ) ; var r = Zr ( e . doc , t . line ) , i = ri ( r ) + Ue ( e . display ) ; return { left : n , right : n , top : i , bottom : i + r . height } } function mt ( e , t , n , r ) { var i = Bo ( e , t ) ; return i . xRel = r , n && ( i . o Line truncated
Math . abs ( e . doc . scrollLeft - u ) > 1 && ( o = ! 0 ) ) , ! o ) break } return a } function Dn ( e , t , n , r , i ) { var o = Hn ( e , t , n , r , i ) ; null != o . scrollTop && rn ( e , o . scrollTop ) , null != o . scrollLeft && on ( e , o . scrollLeft ) } function Hn ( e , t , n , r , i ) { var o = e . display , a = yt ( e . display ) ; 0 > n && ( n = 0 ) ; var l = e . curOp && null != e . curOp . scrollTop ? e . curOp . scrollTop : o . scroller . scrollTop , s = Ve ( e ) , c = { } ; i - n > s && ( i = n + s ) ; var u = e . doc . height + qe ( o ) , f = a > n , h = i > u - a ; if ( l > n ) c . scrollTop = f ? 0 : n ; else if ( i > l + s ) { var d = Math . min ( n , ( h ? u : i ) - s ) ; d != l && ( c . scrollTop = d ) } var p = e . curOp && null != e . curOp . scrollLeft ? e . curOp . scrollLeft : o . scroller . scrollLeft , m = $e ( e ) - ( e . options . fixedGutter ? o . gutters . offsetWidth : 0 ) , g = r - t > m ; return g && ( r = t + m ) , 10 > t ? c . scrollLeft = 0 : p > t ? c . scrollLeft = Math . max ( 0 , t - ( g ? 0 : 10 ) ) : r > m + p - 3 && ( c . scrollLeft = r + ( g ? 0 : 10 ) - m ) , c } function Wn ( e , t , n ) { null == t && null == n || _n ( e ) , null != t && ( e . curOp . scrollLeft = ( null == e . curOp . scrollLeft ? e . doc . scrollLeft : e . curOp . scrollLeft ) + t ) , null != n && ( e . curOp . scrollTop = ( null == e . curOp . scrollTop ? e . doc . scrollTop : e . curOp . scrollTop ) + n ) } function Bn ( e ) { _n ( e ) ; var t = e . getCursor ( ) , n = t , r = t ; e . options . lineWrapping || ( n = t . ch ? Bo ( t . line , t . ch - 1 ) : t , r = Bo ( t . line , t . ch + 1 ) ) , e . curOp . scrollToPos = { from : n , to : r , margin : e . options . cursorScrollMargin , isCursor : ! 0 } } function _n ( e ) { var t = e . curOp . scrollToPos ; if ( t ) { e . curOp . scrollToPos = null ; var n = pt ( e , t . from ) , r = pt ( e , t . to ) , i = Hn ( e , Math . min ( n . left , r . left ) , Math . min ( n . top , r . top ) - t . margin , Math . max ( n . right , r . right ) , Math . max ( n . bottom , r . bottom ) + t . margin ) ; e . scrollTo ( i . scrollLeft , i . scrollTop ) } } function Fn ( e , t , n , r ) { var i , o = e . doc ; null == n && ( n = "add" ) , "smart" == n && ( o . mode . indent ? i = je ( e , t ) : n = "prev" ) ; var a = e . options . tabSize , l = Zr ( o , t ) , s = Fa ( l . text , null , a ) ; l . stateAfter && ( l . stateAfter = null ) ; var c , u = l . text . match ( /^\s*/ ) [ 0 ] ; if ( r || /\S/ . test ( l . text ) ) { if ( "smart" == n && ( c = o . mode . indent ( i , l . text . slice ( u . length ) , l . text ) , c == Ha || c > 150 ) ) { if ( ! r ) return ; n = "prev" } } else c = 0 , n = "not" ; "prev" == n ? c = t > o . first ? Fa ( Zr ( o , t - 1 ) . text , null , a ) : 0 : "add" == n ? c = s + e . options . indentUnit : "subtract" == n ? c = s - e . options . indentUnit : "number" == typeof n && ( c = s + n ) , c = Math . max ( 0 , c ) ; var f = "" , h = 0 ; if ( e . options . indentWithTabs ) for ( var d = Math . floor ( c / a ) ; d ; -- d ) h += a , f += "\t" ; if ( c > h && ( f += Oi ( c - h ) ) , f != u ) return In ( o , f , Bo ( t , 0 ) , Bo ( t , u . length ) , "+input" ) , l . stateAfter = null , ! 0 ; for ( var d = 0 ; d < o . sel . ranges . length ; d ++ ) { var p = o . sel . ranges [ d ] ; if ( p . head . line == t && p . head . ch < u . length ) { var h = Bo ( t , u . length ) ; ke ( o , d , new fe ( h , h ) ) ; break } } } function zn ( e , t , n , r ) { var i = t , o = t ; return "number" == typeof t ? o = Zr ( e , pe ( e , t ) ) : i = ti ( t ) , null == i ? null : ( r ( o , i ) && e . cm && Ht ( e . cm , i , n ) , o ) } function jn ( e , t ) { for ( var n = e . doc . sel . ranges , r = [ ] , i = 0 ; i < n . length ; i ++ ) { for ( var o = t ( n [ i ] ) ; r . length && _o ( o . from , Ii ( r ) . to ) <= 0 ; ) { var a = r . pop ( ) ; if ( _o ( a . from , o . from ) < 0 ) { o . from = a . from ; break } } r . push ( o ) } At ( e , function ( ) { for ( var t = r . length - 1 ; t >= 0 ; t -- ) In ( e . doc , "" , r [ t ] . from , r [ t ] . to , "+delete" ) ; Bn ( e ) } ) } function Un ( e , t , n , r , i ) { function o ( ) { var t = l + n ; return ! ( t < e . first || t >= e . first + e . size ) && ( l = t , u = Zr ( e , t ) ) } function a ( e ) { var t = ( i ? fo : ho ) ( u , s , n , ! 0 ) ; if ( null == t ) { if ( e || ! o ( ) ) return ! 1 ; s = i ? ( 0 > n ? io : ro ) ( u ) : 0 > n ? u . text . length : 0 } else s = t ; return ! 0 } var l = t . line , s = t . ch , c = n , u = Zr ( e , l ) ; if ( "char" == r ) a ( ) ; else if ( "column" == r ) a ( ! 0 ) ; else if ( "word" == r || "group" == r ) for ( var f = null , h = "group" == r , d = e . cm && e . cm . getHelper ( t , "wordChars" ) , p = ! 0 ; ! ( 0 > n ) || a ( ! p ) ; p = ! 1 ) { var m = u . text . charAt ( s ) || "\n" , g = _i ( m , d ) ? "w" : h && "\n" == m ? "n" : ! h || /\s/ . test ( m ) ? null : "p" ; if ( ! h || p || g || ( g = "s" ) , f && f != g ) { 0 > n && ( n = 1 , a ( ) ) ; break } if ( g && ( f = g ) , n > 0 && ! a ( ! p ) ) break } var v = Ie ( e , Bo ( l , s ) , t , c , ! 0 ) ; return _o ( t , v ) || ( v . hitSide = ! 0 ) , v } function qn ( e , t , n , r ) { var i , o = e . doc , a = t . left ; if ( "page" == r ) { var l = Math . min ( e . display . wrapper . clientHeight , window . innerHeight || document . documentElement . clientHeight ) ; i = t . top + n * ( l - ( 0 > n ? 1.5 : . 5 ) * yt ( e . display ) ) } else "line" == r && ( i = n > 0 ? t . bottom + 3 : t . top - 3 ) ; for ( ; ; ) { var s = gt ( e , a , i ) ; if ( ! s . outside ) break ; if ( 0 > n ? 0 >= i : i >= o . height ) { s . hitSide = ! 0 ; break } i += 5 * n } return s } function Gn ( t , n , r , i ) { e . defaults [ t ] = n , r && ( ta [ t ] = i ? function ( e , t , n ) { n != na && r ( e , t , n ) } : r ) } function Yn ( e ) { for ( var t , n , r , i , o = e . split ( /-(?!$)/ ) , e = o [ o . length - 1 ] , a = 0 ; a < o . length - 1 ; a ++ ) { var l = o [ a ] ; if ( /^(cmd|meta|m)$/i . test ( l ) ) i = ! 0 ; else if ( /^a(lt)?$/i . test ( l ) ) t = ! 0 ; else if ( /^(c|ctrl|control)$/i . test ( l ) ) n = ! 0 ; else { if ( ! /^s(hift)$/i . test ( l ) ) throw new Error ( "Unrecognized modifier name: " + l ) ; r = ! 0 } } return t && ( e = "Alt-" + e ) , n && ( e = "Ctrl-" + e ) , i && ( e = "Cmd-" + e ) , r && ( e = "Shift-" + e ) , e } function $n ( e ) { return "string" == typeof e ? fa [ e ] : e } function Vn ( e , t , n , r , i ) { if ( r && r . shared ) return Kn ( e , t , n , r , i ) ; if ( e . cm && ! e . cm . curOp ) return Et ( e . cm , Vn ) ( e , t , n , r , i ) ; var o = new va ( e , i ) , a = _o ( t , n ) ; if ( r && Wi ( r , o , ! 1 ) , a > 0 || 0 == a && o . clearWhenEmpty !== ! 1 ) return o ; if ( o . replacedWith && ( o . collapsed = ! 0 , o . widgetNode = ji ( "span" , [ o . replacedWith ] , "CodeMirror-widget" ) , r . handleMouseEvents || o . widgetNode . setAttribute ( "cm-ignore-events" , "true" ) , r . insertLeft && ( o . widgetNode . insertLeft = ! 0 ) ) , o . collapsed ) { if ( vr ( e , t . line , t , n , o ) || t . line != n . line && vr ( e , n . line , t , n , o ) ) throw new Error ( "Inserting collapsed marker partially overlapping an existing one" ) ; Wo = ! 0 } o . addToHistory && ci ( e , { from : t , to : n , origin : "markText" } , e . sel , NaN ) ; var l , s = t . line , c = e . cm ; if ( e . iter ( s , n . line + 1 , function ( e ) { c && o . collapsed && ! c . options . lineWrapping && yr ( e ) == c . display . maxLine && ( l = ! 0 ) , o . collapsed Line truncated
this . checkedZeroWidth = ! 0 ) , { right : n ? r : 0 , bottom : t ? r : 0 } } , setScrollLeft : function ( e ) { this . horiz . scrollLeft != e && ( this . horiz . scrollLeft = e ) , this . disableHoriz && this . enableZeroWidthBar ( this . horiz , this . disableHoriz ) } , setScrollTop : function ( e ) { this . vert . scrollTop != e && ( this . vert . scrollTop = e ) , this . disableVert && this . enableZeroWidthBar ( this . vert , this . disableVert ) } , zeroWidthHack : function ( ) { var e = Eo && ! To ? "12px" : "18px" ; this . horiz . style . height = this . vert . style . width = e , this . horiz . style . pointerEvents = this . vert . style . pointerEvents = "none" , this . disableHoriz = new Ei , this . disableVert = new Ei } , enableZeroWidthBar : function ( e , t ) { function n ( ) { var r = e . getBoundingClientRect ( ) , i = document . elementFromPoint ( r . left + 1 , r . bottom - 1 ) ; i != e ? e . style . pointerEvents = "none" : t . set ( 1e3 , n ) } e . style . pointerEvents = "auto" , t . set ( 1e3 , n ) } , clear : function ( ) { var e = this . horiz . parentNode ; e . removeChild ( this . horiz ) , e . removeChild ( this . vert ) } } , m . prototype ) , g . prototype = Wi ( { update : function ( ) { return { bottom : 0 , right : 0 } } , setScrollLeft : function ( ) { } , setScrollTop : function ( ) { } , clear : function ( ) { } } , g . prototype ) , e . scrollbarModel = { native : m , null : g } , L . prototype . signal = function ( e , t ) { Ni ( e , t ) && this . events . push ( arguments ) } , L . prototype . finish = function ( ) { for ( var e = 0 ; e < this . events . length ; e ++ ) Pa . apply ( null , this . events [ e ] ) } ; var Bo = e . Pos = function ( e , t ) { return this instanceof Bo ? ( this . line = e , void ( this . ch = t ) ) : new Bo ( e , t ) } , _o = e . cmpPos = function ( e , t ) { return e . line - t . line || e . ch - t . ch } , Fo = null ; ne . prototype = Wi ( { init : function ( e ) { function t ( e ) { if ( ! Ti ( r , e ) ) { if ( r . somethingSelected ( ) ) Fo = { lineWise : ! 1 , text : r . getSelections ( ) } , n . inaccurateSelection && ( n . prevInput = "" , n . inaccurateSelection = ! 1 , o . value = Fo . text . join ( "\n" ) , Ua ( o ) ) ; else { if ( ! r . options . lineWiseCopyCut ) return ; var t = ee ( r ) ; Fo = { lineWise : ! 0 , text : t . text } , "cut" == e . type ? r . setSelections ( t . ranges , null , Wa ) : ( n . prevInput = "" , o . value = t . text . join ( "\n" ) , Ua ( o ) ) } "cut" == e . type && ( r . state . cutIncoming = ! 0 ) } } var n = this , r = this . cm , i = this . wrapper = re ( ) , o = this . textarea = i . firstChild ; e . wrapper . insertBefore ( i , e . wrapper . firstChild ) , No && ( o . style . width = "0px" ) , Ea ( o , "input" , function ( ) { xo && bo >= 9 && n . hasSelection && ( n . hasSelection = null ) , n . poll ( ) } ) , Ea ( o , "paste" , function ( e ) { Ti ( r , e ) || J ( e , r ) || ( r . state . pasteIncoming = ! 0 , n . fastPoll ( ) ) } ) , Ea ( o , "cut" , t ) , Ea ( o , "copy" , t ) , Ea ( e . scroller , "paste" , function ( t ) { Gt ( e , t ) || Ti ( r , t ) || ( r . state . pasteIncoming = ! 0 , n . focus ( ) ) } ) , Ea ( e . lineSpace , "selectstart" , function ( t ) { Gt ( e , t ) || Ma ( t ) } ) , Ea ( o , "compositionstart" , function ( ) { var e = r . getCursor ( "from" ) ; n . composing && n . composing . range . clear ( ) , n . composing = { start : e , range : r . markText ( e , r . getCursor ( "to" ) , { className : "CodeMirror-composing" } ) } } ) , Ea ( o , "compositionend" , function ( ) { n . composing && ( n . poll ( ) , n . composing . range . clear ( ) , n . composing = null ) } ) } , prepareSelection : function ( ) { var e = this . cm , t = e . display , n = e . doc , r = De ( e ) ; if ( e . options . moveInputWithCursor ) { var i = dt ( e , n . sel . primary ( ) . head , "div" ) , o = t . wrapper . getBoundingClientRect ( ) , a = t . lineDiv . getBoundingClientRect ( ) ; r . teTop = Math . max ( 0 , Math . min ( t . wrapper . clientHeight - 10 , i . top + a . top - o . top ) ) , r . teLeft = Math . max ( 0 , Math . min ( t . wrapper . clientWidth - 10 , i . left + a . left - o . left ) ) } return r } , showSelection : function ( e ) { var t = this . cm , n = t . display ; qi ( n . cursorDiv , e . cursors ) , qi ( n . selectionDiv , e . selection ) , null != e . teTop && ( this . wrapper . style . top = e . teTop + "px" , this . wrapper . style . left = e . teLeft + "px" ) } , reset : function ( e ) { if ( ! this . contextMenuPending ) { var t , n , r = this . cm , i = r . doc ; if ( r . somethingSelected ( ) ) { this . prevInput = "" ; var o = i . sel . primary ( ) ; t = rl && ( o . to ( ) . line - o . from ( ) . line > 100 || ( n = r . getSelection ( ) ) . length > 1e3 ) ; var a = t ? "-" : n || r . getSelection ( ) ; this . textarea . value = a , r . state . focused && Ua ( this . textarea ) , xo && bo >= 9 && ( this . hasSelection = a ) } else e || ( this . prevInput = this . textarea . value = "" , xo && bo >= 9 && ( this . hasSelection = null ) ) ; this . inaccurateSelection = t } } , getField : function ( ) { return this . textarea } , supportsTouch : function ( ) { return ! 1 } , focus : function ( ) { if ( "nocursor" != this . cm . options . readOnly && ( ! Ao || Gi ( ) != this . textarea ) ) try { this . textarea . focus ( ) } catch ( e ) { } } , blur : function ( ) { this . textarea . blur ( ) } , resetPosition : function ( ) { this . wrapper . style . top = this . wrapper . style . left = 0 } , receivedFocus : function ( ) { this . slowPoll ( ) } , slowPoll : function ( ) { var e = this ; e . pollingFast || e . polling . set ( this . cm . options . pollInterval , function ( ) { e . poll ( ) , e . cm . state . focused && e . slowPoll ( ) } ) } , fastPoll : function ( ) { function e ( ) { var r = n . poll ( ) ; r || t ? ( n . pollingFast = ! 1 , n . slowPoll ( ) ) : ( t = ! 0 , n . polling . set ( 60 , e ) ) } var t = ! 1 , n = this ; n . pollingFast = ! 0 , n . polling . set ( 20 , e ) } , poll : function ( ) { var e = this . cm , t = this . textarea , n = this . prevInput ; if ( this . contextMenuPending || ! e . state . focused || nl ( t ) && ! n && ! this . composing || e . isReadOnly ( ) || e . options . disableInput || e . state . keySeq ) return ! 1 ; var r = t . value ; if ( r == n && ! e . somethingSelected ( ) ) return ! 1 ; if ( xo && bo >= 9 && this . hasSelection === r || Eo && /[\uf700-\uf7ff]/ . test ( r ) ) return e . display . input . reset ( ) , ! 1 ; if ( e . doc . sel == e . display . selForContextMenu ) { var i = r . charCodeAt ( 0 ) ; if ( 8203 != i || n || ( n = " " ) , 8666 == i ) return this . reset ( ) , this . cm . execCommand ( "undo" ) } for ( var o = 0 , a = Math . min ( n . length , r . length ) ; a > o && n . charCodeAt ( o ) == r . charCodeAt ( o ) ; ) ++ o ; var l = this ; return At ( e , function ( ) { Z ( e , r . slice ( o ) , n . length - o , null , l . composing ? " * Line truncated
e . somethingSelected ( ) ? e . indentSelection ( "add" ) : e . execCommand ( "insertTab" ) } , transposeChars : function ( e ) { At ( e , function ( ) { for ( var t = e . listSelections ( ) , n = [ ] , r = 0 ; r < t . length ; r ++ ) { var i = t [ r ] . head , o = Zr ( e . doc , i . line ) . text ; if ( o ) if ( i . ch == o . length && ( i = new Bo ( i . line , i . ch - 1 ) ) , i . ch > 0 ) i = new Bo ( i . line , i . ch + 1 ) , e . replaceRange ( o . charAt ( i . ch - 1 ) + o . charAt ( i . ch - 2 ) , Bo ( i . line , i . ch - 2 ) , i , "+transpose" ) ; else if ( i . line > e . doc . first ) { var a = Zr ( e . doc , i . line - 1 ) . text ; a && e . replaceRange ( o . charAt ( 0 ) + e . doc . lineSeparator ( ) + a . charAt ( a . length - 1 ) , Bo ( i . line - 1 , a . length - 1 ) , Bo ( i . line , 1 ) , "+transpose" ) } n . push ( new fe ( i , i ) ) } e . setSelections ( n ) } ) } , newlineAndIndent : function ( e ) { At ( e , function ( ) { for ( var t = e . listSelections ( ) . length , n = 0 ; t > n ; n ++ ) { var r = e . listSelections ( ) [ n ] ; e . replaceRange ( e . doc . lineSeparator ( ) , r . anchor , r . head , "+input" ) , e . indentLine ( r . from ( ) . line + 1 , null , ! 0 ) } Bn ( e ) } ) } , openLine : function ( e ) { e . replaceSelection ( "\n" , "start" ) } , toggleOverwrite : function ( e ) { e . toggleOverwrite ( ) } } , fa = e . keyMap = { } ; fa . basic = { Left : "goCharLeft" , Right : "goCharRight" , Up : "goLineUp" , Down : "goLineDown" , End : "goLineEnd" , Home : "goLineStartSmart" , PageUp : "goPageUp" , PageDown : "goPageDown" , Delete : "delCharAfter" , Backspace : "delCharBefore" , "Shift-Backspace" : "delCharBefore" , Tab : "defaultTab" , "Shift-Tab" : "indentAuto" , Enter : "newlineAndIndent" , Insert : "toggleOverwrite" , Esc : "singleSelection" } , fa . pcDefault = { "Ctrl-A" : "selectAll" , "Ctrl-D" : "deleteLine" , "Ctrl-Z" : "undo" , "Shift-Ctrl-Z" : "redo" , "Ctrl-Y" : "redo" , "Ctrl-Home" : "goDocStart" , "Ctrl-End" : "goDocEnd" , "Ctrl-Up" : "goLineUp" , "Ctrl-Down" : "goLineDown" , "Ctrl-Left" : "goGroupLeft" , "Ctrl-Right" : "goGroupRight" , "Alt-Left" : "goLineStart" , "Alt-Right" : "goLineEnd" , "Ctrl-Backspace" : "delGroupBefore" , "Ctrl-Delete" : "delGroupAfter" , "Ctrl-S" : "save" , "Ctrl-F" : "find" , "Ctrl-G" : "findNext" , "Shift-Ctrl-G" : "findPrev" , "Shift-Ctrl-F" : "replace" , "Shift-Ctrl-R" : "replaceAll" , "Ctrl-[" : "indentLess" , "Ctrl-]" : "indentMore" , "Ctrl-U" : "undoSelection" , "Shift-Ctrl-U" : "redoSelection" , "Alt-U" : "redoSelection" , fallthrough : "basic" } , fa . emacsy = { "Ctrl-F" : "goCharRight" , "Ctrl-B" : "goCharLeft" , "Ctrl-P" : "goLineUp" , "Ctrl-N" : "goLineDown" , "Alt-F" : "goWordRight" , "Alt-B" : "goWordLeft" , "Ctrl-A" : "goLineStart" , "Ctrl-E" : "goLineEnd" , "Ctrl-V" : "goPageDown" , "Shift-Ctrl-V" : "goPageUp" , "Ctrl-D" : "delCharAfter" , "Ctrl-H" : "delCharBefore" , "Alt-D" : "delWordAfter" , "Alt-Backspace" : "delWordBefore" , "Ctrl-K" : "killLine" , "Ctrl-T" : "transposeChars" , "Ctrl-O" : "openLine" } , fa . macDefault = { "Cmd-A" : "selectAll" , "Cmd-D" : "deleteLine" , "Cmd-Z" : "undo" , "Shift-Cmd-Z" : "redo" , "Cmd-Y" : "redo" , "Cmd-Home" : "goDocStart" , "Cmd-Up" : "goDocStart" , "Cmd-End" : "goDocEnd" , "Cmd-Down" : "goDocEnd" , "Alt-Left" : "goGroupLeft" , "Alt-Right" : "goGroupRight" , "Cmd-Left" : "goLineLeft" , "Cmd-Right" : "goLineRight" , "Alt-Backspace" : "delGroupBefore" , "Ctrl-Alt-Backspace" : "delGroupAfter" , "Alt-Delete" : "delGroupAfter" , "Cmd-S" : "save" , "Cmd-F" : "find" , "Cmd-G" : "findNext" , "Shift-Cmd-G" : "findPrev" , "Cmd-Alt-F" : "replace" , "Shift-Cmd-Alt-F" : "replaceAll" , "Cmd-[" : "indentLess" , "Cmd-]" : "indentMore" , "Cmd-Backspace" : "delWrappedLineLeft" , "Cmd-Delete" : "delWrappedLineRight" , "Cmd-U" : "undoSelection" , "Shift-Cmd-U" : "redoSelection" , "Ctrl-Up" : "goDocStart" , "Ctrl-Down" : "goDocEnd" , fallthrough : [ "basic" , "emacsy" ] } , fa . default = Eo ? fa . macDefault : fa . pcDefault , e . normalizeKeyMap = function ( e ) { var t = { } ; for ( var n in e ) if ( e . hasOwnProperty ( n ) ) { var r = e [ n ] ; if ( /^(name|fallthrough|(de|at)tach)$/ . test ( n ) ) continue ; if ( "..." == r ) { delete e [ n ] ; continue } for ( var i = Ri ( n . split ( " " ) , Yn ) , o = 0 ; o < i . length ; o ++ ) { var a , l ; o == i . length - 1 ? ( l = i . join ( " " ) , a = r ) : ( l = i . slice ( 0 , o + 1 ) . join ( " " ) , a = "..." ) ; var s = t [ l ] ; if ( s ) { if ( s != a ) throw new Error ( "Inconsistent bindings for " + l ) } else t [ l ] = a } delete e [ n ] } for ( var c in t ) e [ c ] = t [ c ] ; return e } ; var ha = e . lookupKey = function ( e , t , n , r ) { t = $n ( t ) ; var i = t . call ? t . call ( e , r ) : t [ e ] ; if ( i === ! 1 ) return "nothing" ; if ( "..." === i ) return "multi" ; if ( null != i && n ( i ) ) return "handled" ; if ( t . fallthrough ) { if ( "[object Array]" != Object . prototype . toString . call ( t . fallthrough ) ) return ha ( e , t . fallthrough , n , r ) ; for ( var o = 0 ; o < t . fallthrough . length ; o ++ ) { var a = ha ( e , t . fallthrough [ o ] , n , r ) ; if ( a ) return a } } } , da = e . isModifierKey = function ( e ) { var t = "string" == typeof e ? e : ol [ e . keyCode ] ; return "Ctrl" == t || "Alt" == t || "Shift" == t || "Mod" == t } , pa = e . keyName = function ( e , t ) { if ( Co && 34 == e . keyCode && e . char ) return ! 1 ; var n = ol [ e . keyCode ] , r = n ; return null != r && ! e . altGraphKey && ( e . altKey && "Alt" != n && ( r = "Alt-" + r ) , ( Ro ? e . metaKey : e . ctrlKey ) && "Ctrl" != n && ( r = "Ctrl-" + r ) , ( Ro ? e . ctrlKey : e . metaKey ) && "Cmd" != n && ( r = "Cmd-" + r ) , ! t && e . shiftKey && "Shift" != n && ( r = "Shift-" + r ) , r ) } ; e . fromTextArea = function ( t , n ) { function r ( ) { t . value = c . getValue ( ) } if ( n = n ? Wi ( n ) : { } , n . value = t . value , ! n . tabindex && t . tabIndex && ( n . tabindex = t . tabIndex ) , ! n . placeholder && t . placeholder && ( n . placeholder = t . placeholder ) , null == n . autofocus ) { var i = Gi ( ) ; n . autofocus = i == t || null != t . getAttribute ( "autofocus" ) && i == document . body } if ( t . form && ( Ea ( t . form , "submit" , r ) , ! n . leaveSubmitMethodAlone ) ) { var o = t . form , a = o . submit ; try { var l = o . submit = function ( ) { r ( ) , o . submit = a , o . submit ( ) , o . submit = l } } catch ( s ) { } } n . finishInit = function ( e ) { e . save = r , e . getTextArea = function ( ) { return t } , e . toTextArea = function ( ) { e . toTextArea = isNaN , r ( ) , t . parentNode . Line truncated
function o ( e , t , n ) { return t . f = t . block = n , n ( e , t ) } function a ( e ) { return ! e || ! /\S/ . test ( e . string ) } function l ( e ) { return e . linkTitle = ! 1 , e . em = ! 1 , e . strong = ! 1 , e . strikethrough = ! 1 , e . quote = 0 , e . indentedCode = ! 1 , k && e . f == c && ( e . f = p , e . block = s ) , e . trailingSpace = 0 , e . trailingSpaceNewLine = ! 1 , e . prevLine = e . thisLine , e . thisLine = null , null } function s ( t , o ) { var l = t . sol ( ) , s = o . list !== ! 1 , c = o . indentedCode ; o . indentedCode = ! 1 , s && ( o . indentationDiff >= 0 ? ( o . indentationDiff < 4 && ( o . indentation -= o . indentationDiff ) , o . list = null ) : o . indentation > 0 ? o . list = null : o . list = ! 1 ) ; var f = null ; if ( o . indentationDiff >= 4 ) return t . skipToEnd ( ) , c || a ( o . prevLine ) ? ( o . indentation -= 4 , o . indentedCode = ! 0 , S . code ) : null ; if ( t . eatSpace ( ) ) return null ; if ( ( f = t . match ( A ) ) && f [ 1 ] . length <= 6 ) return o . header = f [ 1 ] . length , n . highlightFormatting && ( o . formatting = "header" ) , o . f = o . inline , h ( o ) ; if ( ! ( a ( o . prevLine ) || o . quote || s || c ) && ( f = t . match ( E ) ) ) return o . header = "=" == f [ 0 ] . charAt ( 0 ) ? 1 : 2 , n . highlightFormatting && ( o . formatting = "header" ) , o . f = o . inline , h ( o ) ; if ( t . eat ( ">" ) ) return o . quote = l ? 1 : o . quote + 1 , n . highlightFormatting && ( o . formatting = "quote" ) , t . eatSpace ( ) , h ( o ) ; if ( "[" === t . peek ( ) ) return i ( t , o , y ) ; if ( t . match ( L , ! 0 ) ) return o . hr = ! 0 , S . hr ; if ( ( a ( o . prevLine ) || s ) && ( t . match ( T , ! 1 ) || t . match ( M , ! 1 ) ) ) { var d = null ; for ( t . match ( T , ! 0 ) ? d = "ul" : ( t . match ( M , ! 0 ) , d = "ol" ) , o . indentation = t . column ( ) + t . current ( ) . length , o . list = ! 0 ; o . listStack && t . column ( ) < o . listStack [ o . listStack . length - 1 ] ; ) o . listStack . pop ( ) ; return o . listStack . push ( o . indentation ) , n . taskLists && t . match ( N , ! 1 ) && ( o . taskList = ! 0 ) , o . f = o . inline , n . highlightFormatting && ( o . formatting = [ "list" , "list-" + d ] ) , h ( o ) } return n . fencedCodeBlocks && ( f = t . match ( I , ! 0 ) ) ? ( o . fencedChars = f [ 1 ] , o . localMode = r ( f [ 2 ] ) , o . localMode && ( o . localState = e . startState ( o . localMode ) ) , o . f = o . block = u , n . highlightFormatting && ( o . formatting = "code-block" ) , o . code = - 1 , h ( o ) ) : i ( t , o , o . inline ) } function c ( t , n ) { var r = w . token ( t , n . htmlState ) ; if ( ! k ) { var i = e . innerMode ( w , n . htmlState ) ; ( "xml" == i . mode . name && null === i . state . tagStart && ! i . state . context && i . state . tokenize . isInText || n . md _inside && t . current ( ) . indexOf ( ">" ) > - 1 ) && ( n . f = p , n . block = s , n . htmlState = null ) } return r } function u ( e , t ) { return t . fencedChars && e . match ( t . fencedChars , ! 1 ) ? ( t . localMode = t . localState = null , t . f = t . block = f , null ) : t . localMode ? t . localMode . token ( e , t . localState ) : ( e . skipToEnd ( ) , S . code ) } function f ( e , t ) { e . match ( t . fencedChars ) , t . block = s , t . f = p , t . fencedChars = null , n . highlightFormatting && ( t . formatting = "code-block" ) , t . code = 1 ; var r = h ( t ) ; return t . code = 0 , r } function h ( e ) { var t = [ ] ; if ( e . formatting ) { t . push ( S . formatting ) , "string" == typeof e . formatting && ( e . formatting = [ e . formatting ] ) ; for ( var r = 0 ; r < e . formatting . length ; r ++ ) t . push ( S . formatting + "-" + e . formatting [ r ] ) , "header" === e . formatting [ r ] && t . push ( S . formatting + "-" + e . formatting [ r ] + "-" + e . header ) , "quote" === e . formatting [ r ] && ( ! n . maxBlockquoteDepth || n . maxBlockquoteDepth >= e . quote ? t . push ( S . formatting + "-" + e . formatting [ r ] + "-" + e . quote ) : t . push ( "error" ) ) } if ( e . taskOpen ) return t . push ( "meta" ) , t . length ? t . join ( " " ) : null ; if ( e . taskClosed ) return t . push ( "property" ) , t . length ? t . join ( " " ) : null ; if ( e . linkHref ? t . push ( S . linkHref , "url" ) : ( e . strong && t . push ( S . strong ) , e . em && t . push ( S . em ) , e . strikethrough && t . push ( S . strikethrough ) , e . linkText && t . push ( S . linkText ) , e . code && t . push ( S . code ) ) , e . header && t . push ( S . header , S . header + "-" + e . header ) , e . quote && ( t . push ( S . quote ) , ! n . maxBlockquoteDepth || n . maxBlockquoteDepth >= e . quote ? t . push ( S . quote + "-" + e . quote ) : t . push ( S . quote + "-" + n . maxBlockquoteDepth ) ) , e . list !== ! 1 ) { var i = ( e . listStack . length - 1 ) % 3 ; i ? 1 === i ? t . push ( S . list2 ) : t . push ( S . list3 ) : t . push ( S . list1 ) } return e . trailingSpaceNewLine ? t . push ( "trailing-space-new-line" ) : e . trailingSpace && t . push ( "trailing-space-" + ( e . trailingSpace % 2 ? "a" : "b" ) ) , t . length ? t . join ( " " ) : null } function d ( e , t ) { return e . match ( O , ! 0 ) ? h ( t ) : void 0 } function p ( t , r ) { var i = r . text ( t , r ) ; if ( "undefined" != typeof i ) return i ; if ( r . list ) return r . list = null , h ( r ) ; if ( r . taskList ) { var a = "x" !== t . match ( N , ! 0 ) [ 1 ] ; return a ? r . taskOpen = ! 0 : r . taskClosed = ! 0 , n . highlightFormatting && ( r . formatting = "task" ) , r . taskList = ! 1 , h ( r ) } if ( r . taskOpen = ! 1 , r . taskClosed = ! 1 , r . header && t . match ( /^#+$/ , ! 0 ) ) return n . highlightFormatting && ( r . formatting = "header" ) , h ( r ) ; var l = t . sol ( ) , s = t . next ( ) ; if ( r . linkTitle ) { r . linkTitle = ! 1 ; var u = s ; "(" === s && ( u = ")" ) , u = ( u + "" ) . replace ( /([.?*+^$[\]\\(){}|-])/g , "\\$1" ) ; var f = "^\\s*(?:[^" + u + "\\\\]+|\\\\\\\\|\\\\.)" + u ; if ( t . match ( new RegExp ( f ) , ! 0 ) ) return S . linkHref } if ( "`" === s ) { var d = r . formatting ; n . highlightFormatting && ( r . formatting = "code" ) , t . eatWhile ( "`" ) ; var p = t . current ( ) . length ; if ( 0 == r . code ) return r . code = p , h ( r ) ; if ( p == r . code ) { var v = h ( r ) ; return r . code = 0 , v } return r . formatting = d , h ( r ) } if ( r . code ) return h ( r ) ; if ( "\\" === s && ( t . next ( ) , n . highlightFormatting ) ) { var y = h ( r ) , x = S . formatting + "-escape" ; return y ? y + " " + x : x } if ( "!" === s && t . match ( /\[[^\]]*\] ?(?:\(|\[)/ , ! 1 ) ) return t . match ( /\[[^\]]*\]/ ) , r . inline = r . f = g , S . image ; if ( "[" === s && t . match ( /[^\]]*\](\(.*\)| ?\[.*?\])/ , ! 1 ) ) return r . linkText = ! 0 , n . highlightFormatting && ( r . formatting = "link" ) , h ( r ) ; if ( "]" === s && r . linkText && t . match ( /\(.*?\)| ?\[.*?\]/ , ! 1 ) ) { n . highlightFormatting && ( r . formatting = "link" ) ; var y = h ( r ) ; return r . linkText = ! 1 , r . inline = r . f = g , y } if ( "<" === s && t . match ( / ^ ( h t t p s ? | f t p s ? ) : \ / \ / ( ? : [ ^ Line truncated
d . blockquote = c ( d . blockquote ) ( "def" , d . def ) ( ) , d . _tag = "(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b" , d . html = c ( d . html ) ( "comment" , /<!--[\s\S]*?-->/ ) ( "closed" , /<(tag)[\s\S]+?<\/\1>/ ) ( "closing" , /<tag(?:"[^"]*"|'[^']*'|[^'">])*?>/ ) ( /tag/g , d . _tag ) ( ) , d . paragraph = c ( d . paragraph ) ( "hr" , d . hr ) ( "heading" , d . heading ) ( "lheading" , d . lheading ) ( "blockquote" , d . blockquote ) ( "tag" , "<" + d . _tag ) ( "def" , d . def ) ( ) , d . normal = f ( { } , d ) , d . gfm = f ( { } , d . normal , { fences : /^ *(`{3,}|~{3,})[ \.]*(\S+)? *\n([\s\S]*?)\s*\1 *(?:\n+|$)/ , paragraph : /^/ , heading : /^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/ } ) , d . gfm . paragraph = c ( d . paragraph ) ( "(?!" , "(?!" + d . gfm . fences . source . replace ( "\\1" , "\\2" ) + "|" + d . list . source . replace ( "\\1" , "\\3" ) + "|" ) ( ) , d . tables = f ( { } , d . gfm , { nptable : /^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/ , table : /^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/ } ) , t . rules = d , t . lex = function ( e , n ) { var r = new t ( n ) ; return r . lex ( e ) } , t . prototype . lex = function ( e ) { return e = e . replace ( /\r\n|\r/g , "\n" ) . replace ( /\t/g , " " ) . replace ( /\u00a0/g , " " ) . replace ( /\u2424/g , "\n" ) , this . token ( e , ! 0 ) } , t . prototype . token = function ( e , t , n ) { for ( var r , i , o , a , l , s , c , u , f , e = e . replace ( /^ +$/gm , "" ) ; e ; ) if ( ( o = this . rules . newline . exec ( e ) ) && ( e = e . substring ( o [ 0 ] . length ) , o [ 0 ] . length > 1 && this . tokens . push ( { type : "space" } ) ) , o = this . rules . code . exec ( e ) ) e = e . substring ( o [ 0 ] . length ) , o = o [ 0 ] . replace ( /^ {4}/gm , "" ) , this . tokens . push ( { type : "code" , text : this . options . pedantic ? o : o . replace ( /\n+$/ , "" ) } ) ; else if ( o = this . rules . fences . exec ( e ) ) e = e . substring ( o [ 0 ] . length ) , this . tokens . push ( { type : "code" , lang : o [ 2 ] , text : o [ 3 ] || "" } ) ; else if ( o = this . rules . heading . exec ( e ) ) e = e . substring ( o [ 0 ] . length ) , this . tokens . push ( { type : "heading" , depth : o [ 1 ] . length , text : o [ 2 ] } ) ; else if ( t && ( o = this . rules . nptable . exec ( e ) ) ) { for ( e = e . substring ( o [ 0 ] . length ) , s = { type : "table" , header : o [ 1 ] . replace ( /^ *| *\| *$/g , "" ) . split ( / *\| */ ) , align : o [ 2 ] . replace ( /^ *|\| *$/g , "" ) . split ( / *\| */ ) , cells : o [ 3 ] . replace ( /\n$/ , "" ) . split ( "\n" ) } , u = 0 ; u < s . align . length ; u ++ ) / ^ * - + : * $ / . test ( s . align [ u ] ) ? s . align [ u ] = "right" : /^ *:-+: *$/ . test ( s . align [ u ] ) ? s . align [ u ] = "center" : /^ *:-+ *$/ . test ( s . align [ u ] ) ? s . align [ u ] = "left" : s . align [ u ] = null ; for ( u = 0 ; u < s . cells . length ; u ++ ) s . cells [ u ] = s . cells [ u ] . split ( / *\| */ ) ; this . tokens . push ( s ) } else if ( o = this . rules . lheading . exec ( e ) ) e = e . substring ( o [ 0 ] . length ) , this . tokens . push ( { type : "heading" , depth : "=" === o [ 2 ] ? 1 : 2 , text : o [ 1 ] } ) ; else if ( o = this . rules . hr . exec ( e ) ) e = e . substring ( o [ 0 ] . length ) , this . tokens . push ( { type : "hr" } ) ; else if ( o = this . rules . blockquote . exec ( e ) ) e = e . substring ( o [ 0 ] . length ) , this . tokens . push ( { type : "blockquote_start" } ) , o = o [ 0 ] . replace ( /^ *> ?/gm , "" ) , this . token ( o , t , ! 0 ) , this . tokens . push ( { type : "blockquote_end" } ) ; else if ( o = this . rules . list . exec ( e ) ) { for ( e = e . substring ( o [ 0 ] . length ) , a = o [ 2 ] , this . tokens . push ( { type : "list_start" , ordered : a . length > 1 } ) , o = o [ 0 ] . match ( this . rules . item ) , r = ! 1 , f = o . length , u = 0 ; f > u ; u ++ ) s = o [ u ] , c = s . length , s = s . replace ( /^ *([*+-]|\d+\.) +/ , "" ) , ~ s . indexOf ( "\n " ) && ( c -= s . length , s = this . options . pedantic ? s . replace ( /^ {1,4}/gm , "" ) : s . replace ( new RegExp ( "^ {1," + c + "}" , "gm" ) , "" ) ) , this . options . smartLists && u !== f - 1 && ( l = d . bullet . exec ( o [ u + 1 ] ) [ 0 ] , a === l || a . length > 1 && l . length > 1 || ( e = o . slice ( u + 1 ) . join ( "\n" ) + e , u = f - 1 ) ) , i = r || /\n\n(?!\s*$)/ . test ( s ) , u !== f - 1 && ( r = "\n" === s . charAt ( s . length - 1 ) , i || ( i = r ) ) , this . tokens . push ( { type : i ? "loose_item_start" : "list_item_start" } ) , this . token ( s , ! 1 , n ) , this . tokens . push ( { type : "list_item_end" } ) ; this . tokens . push ( { type : "list_end" } ) } else if ( o = this . rules . html . exec ( e ) ) e = e . substring ( o [ 0 ] . length ) , this . tokens . push ( { type : this . options . sanitize ? "paragraph" : "html" , pre : ! this . options . sanitizer && ( "pre" === o [ 1 ] || "script" === o [ 1 ] || "style" === o [ 1 ] ) , text : o [ 0 ] } ) ; else if ( ! n && t && ( o = this . rules . def . exec ( e ) ) ) e = e . substring ( o [ 0 ] . length ) , this . tokens . links [ o [ 1 ] . toLowerCase ( ) ] = { href : o [ 2 ] , title : o [ 3 ] } ; else if ( t && ( o = this . rules . table . exec ( e ) ) ) { for ( e = e . substring ( o [ 0 ] . length ) , s = { type : "table" , header : o [ 1 ] . replace ( /^ *| *\| *$/g , "" ) . split ( / *\| */ ) , align : o [ 2 ] . replace ( /^ *|\| *$/g , "" ) . split ( / *\| */ ) , cells : o [ 3 ] . replace ( /(?: *\| *)?\n$/ , "" ) . split ( "\n" ) } , u = 0 ; u < s . align . length ; u ++ ) / ^ * - + : * $ / . test ( s . align [ u ] ) ? s . align [ u ] = "right" : /^ *:-+: *$/ . test ( s . align [ u ] ) ? s . align [ u ] = "center" : /^ *:-+ *$/ . test ( s . align [ u ] ) ? s . align [ u ] = "left" : s . align [ u ] = null ; for ( u = 0 ; u < s . cells . length ; u ++ ) s . cells [ u ] = s . cells [ u ] . replace ( /^ *\| *| *\| *$/g , "" ) . split ( / *\| */ ) ; this . tokens . push ( s ) } else if ( t && ( o = this . rules . paragraph . exec ( e ) ) ) e = e . substring ( o [ 0 ] . length ) , this . tokens . push ( { type : "paragraph" , text : "\n" === o [ 1 ] . charAt ( o [ 1 ] . length - 1 ) ? o [ 1 ] . slice ( 0 , - 1 ) : o [ 1 ] } ) ; else if ( o = this . rules . text . exec ( e ) ) e = e . substring ( o [ 0 ] . length ) , this . tokens . push ( { type : "text" , text : o [ 0 ] } ) ; else if ( e ) throw new Error ( "Infinite loop on byte: " + e . charCodeAt ( 0 ) ) ; return this . tokens } ; var p = { escape : /^\\([\\`*{}\[\]()#+\-.!_>])/ , autolink : /^<([^ >]+(@|:\/)[^ >]+)>/ , url : u , tag : /^<!--[\s\S]*?-->|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/ , link : /^!?\[(inside)\]\(href\)/ , reflink : /^!?\[(inside)\]\s*\[([^\]]*)\]/ , nolink : /^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/ , strong : / ^ _ _ ( [ \ s \ S ] + ? ) _ _ Line truncated
if ( void 0 === e . toolbar ) { e . toolbar = [ ] ; for ( var o in K ) K . hasOwnProperty ( o ) && ( - 1 != o . indexOf ( "separator-" ) && e . toolbar . push ( "|" ) , ( K [ o ] . default === ! 0 || e . showIcons && e . showIcons . constructor === Array && - 1 != e . showIcons . indexOf ( o ) ) && e . toolbar . push ( o ) ) } e . hasOwnProperty ( "status" ) || ( e . status = [ "autosave" , "lines" , "words" , "cursor" ] ) , e . previewRender || ( e . previewRender = function ( e ) { return this . parent . markdown ( e ) } ) , e . parsingConfig = H ( { highlightFormatting : ! 0 } , e . parsingConfig || { } ) , e . insertTexts = H ( { } , X , e . insertTexts || { } ) , e . promptTexts = Z , e . blockStyles = H ( { } , J , e . blockStyles || { } ) , e . shortcuts = H ( { } , G , e . shortcuts || { } ) , void 0 != e . autosave && void 0 != e . autosave . unique _id && "" != e . autosave . unique _id && ( e . autosave . uniqueId = e . autosave . unique _id ) , this . options = e , this . render ( ) , ! e . initialValue || this . options . autosave && this . options . autosave . foundSavedValue === ! 0 || this . value ( e . initialValue ) } function _ ( ) { if ( "object" != typeof localStorage ) return ! 1 ; try { localStorage . setItem ( "smde_localStorage" , 1 ) , localStorage . removeItem ( "smde_localStorage" ) } catch ( e ) { return ! 1 } return ! 0 } var F = e ( "codemirror" ) ; e ( "codemirror/addon/edit/continuelist.js" ) , e ( "./codemirror/tablist" ) , e ( "codemirror/addon/display/fullscreen.js" ) , e ( "codemirror/mode/markdown/markdown.js" ) , e ( "codemirror/addon/mode/overlay.js" ) , e ( "codemirror/addon/display/placeholder.js" ) , e ( "codemirror/addon/selection/mark-selection.js" ) , e ( "codemirror/mode/gfm/gfm.js" ) , e ( "codemirror/mode/xml/xml.js" ) ; var z = e ( "codemirror-spell-checker" ) , j = e ( "marked" ) , U = /Mac/ . test ( navigator . platform ) , q = { toggleBold : c , toggleItalic : u , drawLink : k , toggleHeadingSmaller : p , toggleHeadingBigger : m , drawImage : S , toggleBlockquote : d , toggleOrderedList : b , toggleUnorderedList : x , toggleCodeBlock : h , togglePreview : A , toggleStrikethrough : f , toggleHeading1 : g , toggleHeading2 : v , toggleHeading3 : y , cleanBlock : w , drawTable : C , drawHorizontalRule : L , undo : T , redo : M , toggleSideBySide : N , toggleFullScreen : s } , G = { toggleBold : "Cmd-B" , toggleItalic : "Cmd-I" , drawLink : "Cmd-K" , toggleHeadingSmaller : "Cmd-H" , toggleHeadingBigger : "Shift-Cmd-H" , cleanBlock : "Cmd-E" , drawImage : "Cmd-Alt-I" , toggleBlockquote : "Cmd-'" , toggleOrderedList : "Cmd-Alt-L" , toggleUnorderedList : "Cmd-L" , toggleCodeBlock : "Cmd-Alt-C" , togglePreview : "Cmd-P" , toggleSideBySide : "F9" , toggleFullScreen : "F11" } , Y = function ( e ) { for ( var t in q ) if ( q [ t ] === e ) return t ; return null } , $ = function ( ) { var e = ! 1 ; return function ( t ) { ( /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i . test ( t ) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i . test ( t . substr ( 0 , 4 ) ) ) && ( e = ! 0 ) } ( navigator . userAgent || navigator . vendor || window . opera ) , e } , V = "" , K = { bold : { name : "bold" , action : c , className : "fa fa-bold" , title : "Bold" , default : ! 0 } , italic : { name : "italic" , action : u , className : "fa fa-italic" , title : "Italic" , default : ! 0 } , strikethrough : { name : "strikethrough" , action : f , className : "fa fa-strikethrough" , title : "Strikethrough" } , heading : { name : "heading" , action : p , className : "fa fa-header" , title : "Heading" , default : ! 0 } , "heading-smaller" : { name : "heading-smaller" , action : p , className : "fa fa-header fa-header-x fa-header-smaller" , title : "Smaller Heading" } , "heading-bigger" : { name : "heading-bigger" , action : m , className : "fa fa-header fa-header-x fa-header-bigger" , title : "Bigger Heading" } , "heading-1" : { name : "heading-1" , action : g , className : Line truncated
e . super _ = t , e . prototype = Object . create ( t . prototype , { constructor : { value : e , enumerable : ! 1 , writable : ! 0 , configurable : ! 0 } } ) } , t . mixin = function ( e , t ) { for ( var n in t ) e [ n ] = t [ n ] ; return e } , t . implement = function ( e , n ) { t . mixin ( e , n ) } } ) , ace . define ( "ace/lib/keys" , [ "require" , "exports" , "module" , "ace/lib/fixoldbrowsers" , "ace/lib/oop" ] , function ( e , t , n ) { "use strict" ; e ( "./fixoldbrowsers" ) ; var r = e ( "./oop" ) , i = function ( ) { var t , n , e = { MODIFIER _KEYS : { 16 : "Shift" , 17 : "Ctrl" , 18 : "Alt" , 224 : "Meta" } , KEY _MODS : { ctrl : 1 , alt : 2 , option : 2 , shift : 4 , super : 8 , meta : 8 , command : 8 , cmd : 8 } , FUNCTION _KEYS : { 8 : "Backspace" , 9 : "Tab" , 13 : "Return" , 19 : "Pause" , 27 : "Esc" , 32 : "Space" , 33 : "PageUp" , 34 : "PageDown" , 35 : "End" , 36 : "Home" , 37 : "Left" , 38 : "Up" , 39 : "Right" , 40 : "Down" , 44 : "Print" , 45 : "Insert" , 46 : "Delete" , 96 : "Numpad0" , 97 : "Numpad1" , 98 : "Numpad2" , 99 : "Numpad3" , 100 : "Numpad4" , 101 : "Numpad5" , 102 : "Numpad6" , 103 : "Numpad7" , 104 : "Numpad8" , 105 : "Numpad9" , "-13" : "NumpadEnter" , 112 : "F1" , 113 : "F2" , 114 : "F3" , 115 : "F4" , 116 : "F5" , 117 : "F6" , 118 : "F7" , 119 : "F8" , 120 : "F9" , 121 : "F10" , 122 : "F11" , 123 : "F12" , 144 : "Numlock" , 145 : "Scrolllock" } , PRINTABLE _KEYS : { 32 : " " , 48 : "0" , 49 : "1" , 50 : "2" , 51 : "3" , 52 : "4" , 53 : "5" , 54 : "6" , 55 : "7" , 56 : "8" , 57 : "9" , 59 : ";" , 61 : "=" , 65 : "a" , 66 : "b" , 67 : "c" , 68 : "d" , 69 : "e" , 70 : "f" , 71 : "g" , 72 : "h" , 73 : "i" , 74 : "j" , 75 : "k" , 76 : "l" , 77 : "m" , 78 : "n" , 79 : "o" , 80 : "p" , 81 : "q" , 82 : "r" , 83 : "s" , 84 : "t" , 85 : "u" , 86 : "v" , 87 : "w" , 88 : "x" , 89 : "y" , 90 : "z" , 107 : "+" , 109 : "-" , 110 : "." , 186 : ";" , 187 : "=" , 188 : "," , 189 : "-" , 190 : "." , 191 : "/" , 192 : "`" , 219 : "[" , 220 : "\\" , 221 : "]" , 222 : "'" , 111 : "/" , 106 : "*" } } ; for ( n in e . FUNCTION _KEYS ) t = e . FUNCTION _KEYS [ n ] . toLowerCase ( ) , e [ t ] = parseInt ( n , 10 ) ; for ( n in e . PRINTABLE _KEYS ) t = e . PRINTABLE _KEYS [ n ] . toLowerCase ( ) , e [ t ] = parseInt ( n , 10 ) ; return r . mixin ( e , e . MODIFIER _KEYS ) , r . mixin ( e , e . PRINTABLE _KEYS ) , r . mixin ( e , e . FUNCTION _KEYS ) , e . enter = e . return , e . escape = e . esc , e . del = e . delete , e [ 173 ] = "-" , function ( ) { for ( var t = [ "cmd" , "ctrl" , "alt" , "shift" ] , n = Math . pow ( 2 , t . length ) ; n -- ; ) e . KEY _MODS [ n ] = t . filter ( function ( t ) { return n & e . KEY _MODS [ t ] } ) . join ( "-" ) + "-" } ( ) , e . KEY _MODS [ 0 ] = "" , e . KEY _MODS [ - 1 ] = "input-" , e } ( ) ; r . mixin ( t , i ) , t . keyCodeToString = function ( e ) { var t = i [ e ] ; return "string" != typeof t && ( t = String . fromCharCode ( e ) ) , t . toLowerCase ( ) } } ) , ace . define ( "ace/lib/useragent" , [ "require" , "exports" , "module" ] , function ( e , t , n ) { "use strict" ; if ( t . OS = { LINUX : "LINUX" , MAC : "MAC" , WINDOWS : "WINDOWS" } , t . getOS = function ( ) { return t . isMac ? t . OS . MAC : t . isLinux ? t . OS . LINUX : t . OS . WINDOWS } , "object" == typeof navigator ) { var r = ( navigator . platform . match ( /mac|win|linux/i ) || [ "other" ] ) [ 0 ] . toLowerCase ( ) , i = navigator . userAgent ; t . isWin = "win" == r , t . isMac = "mac" == r , t . isLinux = "linux" == r , t . isIE = "Microsoft Internet Explorer" == navigator . appName || navigator . appName . indexOf ( "MSAppHost" ) >= 0 ? parseFloat ( ( i . match ( /(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/ ) || [ ] ) [ 1 ] ) : parseFloat ( ( i . match ( /(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/ ) || [ ] ) [ 1 ] ) , t . isOldIE = t . isIE && t . isIE < 9 , t . isGecko = t . isMozilla = ( window . Controllers || window . controllers ) && "Gecko" === window . navigator . product , t . isOldGecko = t . isGecko && parseInt ( ( i . match ( /rv:(\d+)/ ) || [ ] ) [ 1 ] , 10 ) < 4 , t . isOpera = window . opera && "[object Opera]" == Object . prototype . toString . call ( window . opera ) , t . isWebKit = parseFloat ( i . split ( "WebKit/" ) [ 1 ] ) || void 0 , t . isChrome = parseFloat ( i . split ( " Chrome/" ) [ 1 ] ) || void 0 , t . isAIR = i . indexOf ( "AdobeAIR" ) >= 0 , t . isIPad = i . indexOf ( "iPad" ) >= 0 , t . isTouchPad = i . indexOf ( "TouchPad" ) >= 0 , t . isChromeOS = i . indexOf ( " CrOS " ) >= 0 } } ) , ace . define ( "ace/lib/event" , [ "require" , "exports" , "module" , "ace/lib/keys" , "ace/lib/useragent" ] , function ( e , t , n ) { "use strict" ; function a ( e , t , n ) { var a = u ( t ) ; if ( ! i . isMac && s ) { if ( t . getModifierState && ( t . getModifierState ( "OS" ) || t . getModifierState ( "Win" ) ) && ( a |= 8 ) , s . altGr ) { if ( 3 == ( 3 & a ) ) return ; s . altGr = 0 } if ( 18 === n || 17 === n ) { var f = "location" in t ? t . location : t . keyLocation ; if ( 17 === n && 1 === f ) 1 == s [ n ] && ( o = t . timeStamp ) ; else if ( 18 === n && 3 === a && 2 === f ) { var l = t . timeStamp - o ; l < 50 && ( s . altGr = ! 0 ) } } } if ( n in r . MODIFIER _KEYS && ( n = - 1 ) , 8 & a && n >= 91 && n <= 93 && ( n = - 1 ) , ! a && 13 === n ) { var f = "location" in t ? t . location : t . keyLocation ; if ( 3 === f && ( e ( t , a , - n ) , t . defaultPrevented ) ) return } if ( i . isChromeOS && 8 & a ) { if ( e ( t , a , n ) , t . defaultPrevented ) return ; a &= - 9 } return ! ! ( a || n in r . FUNCTION _KEYS || n in r . PRINTABLE _KEYS ) && e ( t , a , n ) } function f ( ) { s = Object . create ( null ) } var r = e ( "./keys" ) , i = e ( "./useragent" ) , s = null , o = 0 ; t . addListener = function ( e , t , n ) { if ( e . addEventListener ) return e . addEventListener ( t , n , ! 1 ) ; if ( e . attachEvent ) { var r = function ( ) { n . call ( e , window . event ) } ; n . _wrapper = r , e . attachEvent ( "on" + t , r ) } } , t . removeListener = function ( e , t , n ) { return e . removeEventListener ? e . removeEventListener ( t , n , ! 1 ) : void ( e . detachEvent && e . detachEvent ( "on" + t , n . _wrapper || n ) ) } , t . stopEvent = function ( e ) { return t . stopPropagation ( e ) , t . preventDefault ( e ) , ! 1 } , t . stopPropagation = function ( e ) { e . stopPropagation ? e . stopPropagation ( ) : e . cancelBubble = ! 0 } , t . preventDefault = function ( e ) { e . preventDefault ? e . preventDefault ( ) : e . returnValue = ! 1 } , t . getButton = function ( e ) { return "dblclick" == e . type ? 0 : "contextmenu" == e . type || i . isMac && e . ctrlKey && ! e . altKey && ! e . shiftKey ? 2 : e . preventDefault ? e . button : { 1 : 0 , 2 : 2 , 4 : 1 } [ e . button ] } , t . capture = function ( e , n , r ) { function i ( e ) { n && n ( e ) , r && r ( e ) , t . removeListener ( document , "mousemove" , n , ! 0 ) , t . removeList Line truncated
this . setState ( "dragReady" ) } , this . onMouseDrag = function ( e ) { var t = this . editor . container ; if ( s . isIE && "dragReady" == this . state ) { var n = l ( this . mousedownEvent . x , this . mousedownEvent . y , this . x , this . y ) ; n > 3 && t . dragDrop ( ) } if ( "dragWait" === this . state ) { var n = l ( this . mousedownEvent . x , this . mousedownEvent . y , this . x , this . y ) ; n > 0 && ( t . draggable = ! 1 , this . startSelect ( this . mousedownEvent . getDocumentPosition ( ) ) ) } } , this . onMouseDown = function ( e ) { if ( this . $dragEnabled ) { this . mousedownEvent = e ; var t = this . editor , n = e . inSelection ( ) , r = e . getButton ( ) , i = e . domEvent . detail || 1 ; if ( 1 === i && 0 === r && n ) { if ( e . editor . inMultiSelectMode && ( e . getAccelKey ( ) || e . getShiftKey ( ) ) ) return ; this . mousedownEvent . time = Date . now ( ) ; var o = e . domEvent . target || e . domEvent . srcElement ; if ( "unselectable" in o && ( o . unselectable = "on" ) , t . getDragDelay ( ) ) { if ( s . isWebKit ) { this . cancelDrag = ! 0 ; var u = t . container ; u . draggable = ! 0 } this . setState ( "dragWait" ) } else this . startDrag ( ) ; this . captureMouse ( e , this . onMouseDrag . bind ( this ) ) , e . defaultPrevented = ! 0 } } } } ) . call ( f . prototype ) , t . DragdropHandler = f } ) , ace . define ( "ace/lib/net" , [ "require" , "exports" , "module" , "ace/lib/dom" ] , function ( e , t , n ) { "use strict" ; var r = e ( "./dom" ) ; t . get = function ( e , t ) { var n = new XMLHttpRequest ; n . open ( "GET" , e , ! 0 ) , n . onreadystatechange = function ( ) { 4 === n . readyState && t ( n . responseText ) } , n . send ( null ) } , t . loadScript = function ( e , t ) { var n = r . getDocumentHead ( ) , i = document . createElement ( "script" ) ; i . src = e , n . appendChild ( i ) , i . onload = i . onreadystatechange = function ( e , n ) { ! n && i . readyState && "loaded" != i . readyState && "complete" != i . readyState || ( i = i . onload = i . onreadystatechange = null , n || t ( ) ) } } , t . qualifyURL = function ( e ) { var t = document . createElement ( "a" ) ; return t . href = e , t . href } } ) , ace . define ( "ace/lib/event_emitter" , [ "require" , "exports" , "module" ] , function ( e , t , n ) { "use strict" ; var r = { } , i = function ( ) { this . propagationStopped = ! 0 } , s = function ( ) { this . defaultPrevented = ! 0 } ; r . _emit = r . _dispatchEvent = function ( e , t ) { this . _eventRegistry || ( this . _eventRegistry = { } ) , this . _defaultHandlers || ( this . _defaultHandlers = { } ) ; var n = this . _eventRegistry [ e ] || [ ] , r = this . _defaultHandlers [ e ] ; if ( n . length || r ) { "object" == typeof t && t || ( t = { } ) , t . type || ( t . type = e ) , t . stopPropagation || ( t . stopPropagation = i ) , t . preventDefault || ( t . preventDefault = s ) , n = n . slice ( ) ; for ( var o = 0 ; o < n . length && ( n [ o ] ( t , this ) , ! t . propagationStopped ) ; o ++ ) ; return r && ! t . defaultPrevented ? r ( t , this ) : void 0 } } , r . _signal = function ( e , t ) { var n = ( this . _eventRegistry || { } ) [ e ] ; if ( n ) { n = n . slice ( ) ; for ( var r = 0 ; r < n . length ; r ++ ) n [ r ] ( t , this ) } } , r . once = function ( e , t ) { var n = this ; t && this . addEventListener ( e , function r ( ) { n . removeEventListener ( e , r ) , t . apply ( null , arguments ) } ) } , r . setDefaultHandler = function ( e , t ) { var n = this . _defaultHandlers ; if ( n || ( n = this . _defaultHandlers = { _disabled _ : { } } ) , n [ e ] ) { var r = n [ e ] , i = n . _disabled _ [ e ] ; i || ( n . _disabled _ [ e ] = i = [ ] ) , i . push ( r ) ; var s = i . indexOf ( t ) ; s != - 1 && i . splice ( s , 1 ) } n [ e ] = t } , r . removeDefaultHandler = function ( e , t ) { var n = this . _defaultHandlers ; if ( n ) { var r = n . _disabled _ [ e ] ; if ( n [ e ] == t ) { n [ e ] ; r && this . setDefaultHandler ( e , r . pop ( ) ) } else if ( r ) { var s = r . indexOf ( t ) ; s != - 1 && r . splice ( s , 1 ) } } } , r . on = r . addEventListener = function ( e , t , n ) { this . _eventRegistry = this . _eventRegistry || { } ; var r = this . _eventRegistry [ e ] ; return r || ( r = this . _eventRegistry [ e ] = [ ] ) , r . indexOf ( t ) == - 1 && r [ n ? "unshift" : "push" ] ( t ) , t } , r . off = r . removeListener = r . removeEventListener = function ( e , t ) { this . _eventRegistry = this . _eventRegistry || { } ; var n = this . _eventRegistry [ e ] ; if ( n ) { var r = n . indexOf ( t ) ; r !== - 1 && n . splice ( r , 1 ) } } , r . removeAllListeners = function ( e ) { this . _eventRegistry && ( this . _eventRegistry [ e ] = [ ] ) } , t . EventEmitter = r } ) , ace . define ( "ace/lib/app_config" , [ "require" , "exports" , "module" , "ace/lib/oop" , "ace/lib/event_emitter" ] , function ( e , t , n ) { "no use strict" ; function o ( e ) { "undefined" != typeof console && console . warn && console . warn . apply ( console , arguments ) } function u ( e , t ) { var n = new Error ( e ) ; n . data = t , "object" == typeof console && console . error && console . error ( n ) , setTimeout ( function ( ) { throw n } ) } var r = e ( "./oop" ) , i = e ( "./event_emitter" ) . EventEmitter , s = { setOptions : function ( e ) { Object . keys ( e ) . forEach ( function ( t ) { this . setOption ( t , e [ t ] ) } , this ) } , getOptions : function ( e ) { var t = { } ; return e ? Array . isArray ( e ) || ( t = e , e = Object . keys ( t ) ) : e = Object . keys ( this . $options ) , e . forEach ( function ( e ) { t [ e ] = this . getOption ( e ) } , this ) , t } , setOption : function ( e , t ) { if ( this [ "$" + e ] !== t ) { var n = this . $options [ e ] ; return n ? n . forwardTo ? this [ n . forwardTo ] && this [ n . forwardTo ] . setOption ( e , t ) : ( n . handlesSet || ( this [ "$" + e ] = t ) , void ( n && n . set && n . set . call ( this , t ) ) ) : o ( 'misspelled option "' + e + '"' ) } } , getOption : function ( e ) { var t = this . $options [ e ] ; return t ? t . forwardTo ? this [ t . forwardTo ] && this [ t . forwardTo ] . getOption ( e ) : t && t . get ? t . get . call ( this ) : this [ "$" + e ] : o ( 'misspelled option "' + e + '"' ) } } , a = function ( ) { this . $defaultOptions = { } } ; ( function ( ) { r . implement ( this , i ) , this . defineOptions = function ( e , t , n ) { return e . $options || ( this . $defaultOptions [ t ] = e . $options = { } ) , Object . keys ( n ) . forEach ( function ( t ) { var r = n [ t ] ; "string" == typeof r && ( r = { forwardTo : r } ) , r . name || ( r . name = t ) , e . $options [ r . name ] = r , "initialValue" in r && ( e [ "$" + r . name ] = r . initialValue ) } ) , r . implement ( e , s ) , this } , this . resetOptions = function ( e ) { Object . keys ( e . $options ) . forEach ( function ( t ) { var n = e . $options [ t ] ; "value" in Line truncated
t = n . shift ( ) ) } else var n = [ ] ; var r = t || "start" , s = this . states [ r ] ; s || ( r = "start" , s = this . states [ r ] ) ; var o = this . matchMappings [ r ] , u = this . regExps [ r ] ; u . lastIndex = 0 ; for ( var a , f = [ ] , l = 0 , c = 0 , h = { type : null , value : "" } ; a = u . exec ( e ) ; ) { var p = o . defaultToken , d = null , v = a [ 0 ] , m = u . lastIndex ; if ( m - v . length > l ) { var g = e . substring ( l , m - v . length ) ; h . type == p ? h . value += g : ( h . type && f . push ( h ) , h = { type : p , value : g } ) } for ( var y = 0 ; y < a . length - 2 ; y ++ ) if ( void 0 !== a [ y + 1 ] ) { d = s [ o [ y ] ] , p = d . onMatch ? d . onMatch ( v , r , n ) : d . token , d . next && ( r = "string" == typeof d . next ? d . next : d . next ( r , n ) , s = this . states [ r ] , s || ( this . reportError ( "state doesn't exist" , r ) , r = "start" , s = this . states [ r ] ) , o = this . matchMappings [ r ] , l = m , u = this . regExps [ r ] , u . lastIndex = m ) ; break } if ( v ) if ( "string" == typeof p ) d && d . merge === ! 1 || h . type !== p ? ( h . type && f . push ( h ) , h = { type : p , value : v } ) : h . value += v ; else if ( p ) { h . type && f . push ( h ) , h = { type : null , value : "" } ; for ( var y = 0 ; y < p . length ; y ++ ) f . push ( p [ y ] ) } if ( l == e . length ) break ; if ( l = m , c ++ > i ) { for ( c > 2 * e . length && this . reportError ( "infinite loop with in ace tokenizer" , { startState : t , line : e } ) ; l < e . length ; ) h . type && f . push ( h ) , h = { value : e . substring ( l , l += 2e3 ) , type : "overflow" } ; r = "start" , n = [ ] ; break } } return h . type && f . push ( h ) , n . length > 1 && n [ 0 ] !== r && n . unshift ( "#tmp" , r ) , { tokens : f , state : n . length ? n : r } } , this . reportError = r . reportError } ) . call ( s . prototype ) , t . Tokenizer = s } ) , ace . define ( "ace/mode/text_highlight_rules" , [ "require" , "exports" , "module" , "ace/lib/lang" ] , function ( e , t , n ) { "use strict" ; var r = e ( "../lib/lang" ) , i = function ( ) { this . $rules = { start : [ { token : "empty_line" , regex : "^$" } , { defaultToken : "text" } ] } } ; ( function ( ) { this . addRules = function ( e , t ) { if ( t ) for ( var n in e ) { for ( var r = e [ n ] , i = 0 ; i < r . length ; i ++ ) { var s = r [ i ] ; ( s . next || s . onMatch ) && ( "string" == typeof s . next && 0 !== s . next . indexOf ( t ) && ( s . next = t + s . next ) , s . nextState && 0 !== s . nextState . indexOf ( t ) && ( s . nextState = t + s . nextState ) ) } this . $rules [ t + n ] = r } else for ( var n in e ) this . $rules [ n ] = e [ n ] } , this . getRules = function ( ) { return this . $rules } , this . embedRules = function ( e , t , n , i , s ) { var o = "function" == typeof e ? ( new e ) . getRules ( ) : e ; if ( i ) for ( var u = 0 ; u < i . length ; u ++ ) i [ u ] = t + i [ u ] ; else { i = [ ] ; for ( var a in o ) i . push ( t + a ) } if ( this . addRules ( o , t ) , n ) for ( var f = Array . prototype [ s ? "push" : "unshift" ] , u = 0 ; u < i . length ; u ++ ) f . apply ( this . $rules [ i [ u ] ] , r . deepCopy ( n ) ) ; this . $embeds || ( this . $embeds = [ ] ) , this . $embeds . push ( t ) } , this . getEmbeds = function ( ) { return this . $embeds } ; var e = function ( e , t ) { return ( "start" != e || t . length ) && t . unshift ( this . nextState , e ) , this . nextState } , t = function ( e , t ) { return t . shift ( ) , t . shift ( ) || "start" } ; this . normalizeRules = function ( ) { function i ( s ) { var o = r [ s ] ; o . processed = ! 0 ; for ( var u = 0 ; u < o . length ; u ++ ) { var a = o [ u ] , f = null ; Array . isArray ( a ) && ( f = a , a = { } ) , ! a . regex && a . start && ( a . regex = a . start , a . next || ( a . next = [ ] ) , a . next . push ( { defaultToken : a . token } , { token : a . token + ".end" , regex : a . end || a . start , next : "pop" } ) , a . token = a . token + ".start" , a . push = ! 0 ) ; var l = a . next || a . push ; if ( l && Array . isArray ( l ) ) { var c = a . stateName ; c || ( c = a . token , "string" != typeof c && ( c = c [ 0 ] || "" ) , r [ c ] && ( c += n ++ ) ) , r [ c ] = l , a . next = c , i ( c ) } else "pop" == l && ( a . next = t ) ; if ( a . push && ( a . nextState = a . next || a . push , a . next = e , delete a . push ) , a . rules ) for ( var h in a . rules ) r [ h ] ? r [ h ] . push && r [ h ] . push . apply ( r [ h ] , a . rules [ h ] ) : r [ h ] = a . rules [ h ] ; var p = "string" == typeof a ? a : "string" == typeof a . include ? a . include : "" ; if ( p && ( f = r [ p ] ) , f ) { var d = [ u , 1 ] . concat ( f ) ; a . noEscape && ( d = d . filter ( function ( e ) { return ! e . next } ) ) , o . splice . apply ( o , d ) , u -- } a . keywordMap && ( a . token = this . createKeywordMapper ( a . keywordMap , a . defaultToken || "text" , a . caseInsensitive ) , delete a . defaultToken ) } } var n = 0 , r = this . $rules ; Object . keys ( r ) . forEach ( i , this ) } , this . createKeywordMapper = function ( e , t , n , r ) { var i = Object . create ( null ) ; return Object . keys ( e ) . forEach ( function ( t ) { var s = e [ t ] ; n && ( s = s . toLowerCase ( ) ) ; for ( var o = s . split ( r || "|" ) , u = o . length ; u -- ; ) i [ o [ u ] ] = t } ) , Object . getPrototypeOf ( i ) && ( i . _ _proto _ _ = null ) , this . $keywordList = Object . keys ( i ) , e = null , n ? function ( e ) { return i [ e . toLowerCase ( ) ] || t } : function ( e ) { return i [ e ] || t } } , this . getKeywords = function ( ) { return this . $keywords } } ) . call ( i . prototype ) , t . TextHighlightRules = i } ) , ace . define ( "ace/mode/behaviour" , [ "require" , "exports" , "module" ] , function ( e , t , n ) { "use strict" ; var r = function ( ) { this . $behaviours = { } } ; ( function ( ) { this . add = function ( e , t , n ) { switch ( void 0 ) { case this . $behaviours : this . $behaviours = { } ; case this . $behaviours [ e ] : this . $behaviours [ e ] = { } } this . $behaviours [ e ] [ t ] = n } , this . addBehaviours = function ( e ) { for ( var t in e ) for ( var n in e [ t ] ) this . add ( t , n , e [ t ] [ n ] ) } , this . remove = function ( e ) { this . $behaviours && this . $behaviours [ e ] && delete this . $behaviours [ e ] } , this . inherit = function ( e , t ) { if ( "function" == typeof e ) var n = ( new e ) . getBehaviours ( t ) ; else var n = e . getBehaviours ( t ) ; this . addBehaviours ( n ) } , this . getBehaviours = function ( e ) { if ( ! e ) return this . $behaviours ; for ( var t = { } , n = 0 ; n < e . length ; n ++ ) this . $behaviours [ e [ n ] ] && ( t [ e [ n ] ] = this . $behaviours [ e [ n ] ] ) ; return t } } ) . call ( r . prototype ) , t . Behaviour = r } ) , ace . define ( "ace/token_iterator" , [ "require" , "exports" , "module" ] , function ( e , t , n ) { "use strict" ; var r = function ( e , t , n ) { this . $session = e , this . $row = t , this . $rowTokens = e . getTokens ( t ) ; var r = e . getTokenAt ( t , n ) ; this . $tokenIndex = r ? r . index : - 1 } ; ( function ( ) { this . stepBackward = function ( ) { for ( this . $tokenIndex -= 1 ; this . $t Line truncated
Z : "002000A01680180E2000-200A20282029202F205F3000" , Zs : "002000A01680180E2000-200A202F205F3000" , Zl : "2028" , Zp : "2029" , C : "0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF" , Cc : "0000-001F007F-009F" , Cf : "00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB" , Co : "E000-F8FF" , Cs : "D800-DFFF" , Cn : " 03780379037 F - 0383038 B038D03A20526 - 05300557055805600588058 B - 059005 C8 - 05 CF05EB - 05 EF05F5 - 05 FF06040605061C061D0620065F070E074B074C07B2 - 07 BF07FB - 07 FF082E082F083F - 08 FF093A093B094F095609570973 - 097809800984098 D098E0991099209A909B109B3 - 09 B509BA09BB09C509C609C909CA09CF - 09 D609D8 - 09 DB09DE09E409E509FC - 0 A000A040A0B - 0 A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43 - 0 A460A490A4A0A4E - 0 A500A52 - 0 A580A5D0A5F - 0 A650A76 - 0 A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1 - 0 ADF0AE40AE50AF00AF2 - 0B000 B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E - 0 B550B58 - 0 B5B0B5E0B640B650B72 - 0 B810B840B8B - 0 B8D0B910B96 - 0 B980B9B0B9D0BA0 - 0 BA20BA5 - 0 BA70BAB - 0 BAD0BBA - 0 BBD0BC3 - 0 BC50BC90BCE0BCF0BD1 - 0 BD60BD8 - 0 BE50BFB - 0 C000C040C0D0C110C290C340C3A - 0 C3C0C450C490C4E - 0 C540C570C5A - 0 C5F0C640C650C70 - 0 C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE - 0 CD40CD7 - 0 CDD0CDF0CE40CE50CF00CF3 - 0 D010D040D0D0D110D290D3A - 0 D3C0D450D490D4E - 0 D560D58 - 0 D5F0D640D650D76 - 0 D780D800D810D840D97 - 0 D990DB20DBC0DBE0DBF0DC7 - 0 DC90DCB - 0 DCE0DD50DD70DE0 - 0 DF10DF5 - 0E000 E3B - 0E3 E0E5C - 0E800 E830E850E860E890E8B0E8C0E8E - 0E930 E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE - 0 EFF0F480F6D - 0 F700F8C - 0 F8F0F980FBD0FCD0FD9 - 0 FFF10C6 - 10 CF10FD - 10 FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B - 135E137 D - 137 F139A - 139 F13F5 - 13 FF169D - 169 F16F1 - 16 FF170D1715 - 171 F1737 - 173 F1754 - 175 F176D17711774 - 177 F17DE17DF17EA - 17 EF17FA - 17 FF180F181A - 181 F1878 - 187 F18AB - 18 AF18F6 - 18 FF191D - 191 F192C - 192 F193C - 193 F1941 - 1943196E196 F1975 - 197 F19AC - 19 AF19CA - 19 CF19DB - 19 DD1A1C1A1D1A5F1A7D1A7E1A8A - 1 A8F1A9A - 1 A9F1AAE - 1 AFF1B4C - 1 B4F1B7D - 1 B7F1BAB - 1 BAD1BBA - 1 BFF1C38 - 1 C3A1C4A - 1 C4C1C80 - 1 CCF1CF3 - 1 CFF1DE7 - 1 DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065 - 206920722073208 F2095 - 209 F20B9 - 20 CF20F1 - 20 FF218A - 218 F23E9 - 23 FF2427 - 243 F244B - 245 F26CE26E226E4 - 26E727002705270 A270B2728274C274E2753 - 2755275 F27602795 - 279727 B027BF27CB27CD - 27 CF2B4D - 2 B4F2B5A - 2 BFF2C2F2C5F2CF2 - 2 CF82D26 - 2 D2F2D66 - 2 D6E2D70 - 2 D7F2D97 - 2 D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32 - 2E7 F2E9A2EF4 - 2 EFF2FD6 - 2 FEF2FFC - 2 FFF3040309730983100 - Line truncated
! r ) return null ; for ( var s , o , i = { end : { column : 0 } } , u = 0 ; u < r . folds . length ; u ++ ) { o = r . folds [ u ] ; var a = o . range . compareEnd ( e , t ) ; if ( a == - 1 ) { s = this . getLine ( o . start . row ) . substring ( i . end . column , o . start . column ) ; break } if ( 0 === a ) return null ; i = o } return s || ( s = this . getLine ( o . start . row ) . substring ( i . end . column ) ) , n == - 1 ? s . substring ( 0 , t - i . end . column ) : 1 == n ? s . substring ( t - i . end . column ) : s } , this . getFoldLine = function ( e , t ) { var n = this . $foldData , r = 0 ; for ( t && ( r = n . indexOf ( t ) ) , r == - 1 && ( r = 0 ) , r ; r < n . length ; r ++ ) { var i = n [ r ] ; if ( i . start . row <= e && i . end . row >= e ) return i ; if ( i . end . row > e ) return null } return null } , this . getNextFoldLine = function ( e , t ) { var n = this . $foldData , r = 0 ; for ( t && ( r = n . indexOf ( t ) ) , r == - 1 && ( r = 0 ) , r ; r < n . length ; r ++ ) { var i = n [ r ] ; if ( i . end . row >= e ) return i } return null } , this . getFoldedRowCount = function ( e , t ) { for ( var n = this . $foldData , r = t - e + 1 , i = 0 ; i < n . length ; i ++ ) { var s = n [ i ] , o = s . end . row , u = s . start . row ; if ( o >= t ) { u < t && ( u >= e ? r -= t - u : r = 0 ) ; break } o >= e && ( r -= u >= e ? o - u : o - e + 1 ) } return r } , this . $addFoldLine = function ( e ) { return this . $foldData . push ( e ) , this . $foldData . sort ( function ( e , t ) { return e . start . row - t . start . row } ) , e } , this . addFold = function ( e , t ) { var o , n = this . $foldData , r = ! 1 ; e instanceof s ? o = e : ( o = new s ( t , e ) , o . collapseChildren = t . collapseChildren ) , this . $clipRangeToDocument ( o . range ) ; var u = o . start . row , a = o . start . column , f = o . end . row , l = o . end . column ; if ( u < f || u == f && a <= l - 2 ) { var c = this . getFoldAt ( u , a , 1 ) , h = this . getFoldAt ( f , l , - 1 ) ; if ( c && h == c ) return c . addSubFold ( o ) ; c && ! c . range . isStart ( u , a ) && this . removeFold ( c ) , h && ! h . range . isEnd ( f , l ) && this . removeFold ( h ) ; var p = this . getFoldsInRange ( o . range ) ; p . length > 0 && ( this . removeFolds ( p ) , p . forEach ( function ( e ) { o . addSubFold ( e ) } ) ) ; for ( var d = 0 ; d < n . length ; d ++ ) { var v = n [ d ] ; if ( f == v . start . row ) { v . addFold ( o ) , r = ! 0 ; break } if ( u == v . end . row ) { if ( v . addFold ( o ) , r = ! 0 , ! o . sameRow ) { var m = n [ d + 1 ] ; if ( m && m . start . row == f ) { v . merge ( m ) ; break } } break } if ( f <= v . start . row ) break } return r || ( v = this . $addFoldLine ( new i ( this . $foldData , o ) ) ) , this . $useWrapMode ? this . $updateWrapData ( v . start . row , v . start . row ) : this . $updateRowLengthCache ( v . start . row , v . start . row ) , this . $modified = ! 0 , this . _signal ( "changeFold" , { data : o , action : "add" } ) , o } throw new Error ( "The range has to be at least 2 characters width" ) } , this . addFolds = function ( e ) { e . forEach ( function ( e ) { this . addFold ( e ) } , this ) } , this . removeFold = function ( e ) { var t = e . foldLine , n = t . start . row , r = t . end . row , i = this . $foldData , s = t . folds ; if ( 1 == s . length ) i . splice ( i . indexOf ( t ) , 1 ) ; else if ( t . range . isEnd ( e . end . row , e . end . column ) ) s . pop ( ) , t . end . row = s [ s . length - 1 ] . end . row , t . end . column = s [ s . length - 1 ] . end . column ; else if ( t . range . isStart ( e . start . row , e . start . column ) ) s . shift ( ) , t . start . row = s [ 0 ] . start . row , t . start . column = s [ 0 ] . start . column ; else if ( e . sameRow ) s . splice ( s . indexOf ( e ) , 1 ) ; else { var o = t . split ( e . start . row , e . start . column ) ; s = o . folds , s . shift ( ) , o . start . row = s [ 0 ] . start . row , o . start . column = s [ 0 ] . start . column } this . $updating || ( this . $useWrapMode ? this . $updateWrapData ( n , r ) : this . $updateRowLengthCache ( n , r ) ) , this . $modified = ! 0 , this . _signal ( "changeFold" , { data : e , action : "remove" } ) } , this . removeFolds = function ( e ) { for ( var t = [ ] , n = 0 ; n < e . length ; n ++ ) t . push ( e [ n ] ) ; t . forEach ( function ( e ) { this . removeFold ( e ) } , this ) , this . $modified = ! 0 } , this . expandFold = function ( e ) { this . removeFold ( e ) , e . subFolds . forEach ( function ( t ) { e . restoreRange ( t ) , this . addFold ( t ) } , this ) , e . collapseChildren > 0 && this . foldAll ( e . start . row + 1 , e . end . row , e . collapseChildren - 1 ) , e . subFolds = [ ] } , this . expandFolds = function ( e ) { e . forEach ( function ( e ) { this . expandFold ( e ) } , this ) } , this . unfold = function ( e , t ) { var n , i ; if ( null == e ? ( n = new r ( 0 , 0 , this . getLength ( ) , 0 ) , t = ! 0 ) : n = "number" == typeof e ? new r ( e , 0 , e , this . getLine ( e ) . length ) : "row" in e ? r . fromPoints ( e , e ) : e , i = this . getFoldsInRangeList ( n ) , t ) this . removeFolds ( i ) ; else for ( var s = i ; s . length ; ) this . expandFolds ( s ) , s = this . getFoldsInRangeList ( n ) ; if ( i . length ) return i } , this . isRowFolded = function ( e , t ) { return ! ! this . getFoldLine ( e , t ) } , this . getRowFoldEnd = function ( e , t ) { var n = this . getFoldLine ( e , t ) ; return n ? n . end . row : e } , this . getRowFoldStart = function ( e , t ) { var n = this . getFoldLine ( e , t ) ; return n ? n . start . row : e } , this . getFoldDisplayLine = function ( e , t , n , r , i ) { null == r && ( r = e . start . row ) , null == i && ( i = 0 ) , null == t && ( t = e . end . row ) , null == n && ( n = this . getLine ( t ) . length ) ; var s = this . doc , o = "" ; return e . walk ( function ( e , t , n , u ) { if ( ! ( t < r ) ) { if ( t == r ) { if ( n < i ) return ; u = Math . max ( i , u ) } o += null != e ? e : s . getLine ( t ) . substring ( u , n ) } } , t , n ) , o } , this . getDisplayLine = function ( e , t , n , r ) { var i = this . getFoldLine ( e ) ; if ( ! i ) { var s ; return s = this . doc . getLine ( e ) , s . substring ( r || 0 , t || s . length ) } return this . getFoldDisplayLine ( i , e , t , n , r ) } , this . $cloneFoldData = function ( ) { var e = [ ] ; return e = this . $foldData . map ( function ( t ) { var n = t . folds . map ( function ( e ) { return e . clone ( ) } ) ; return new i ( e , n ) } ) } , this . toggleFold = function ( e ) { var r , i , t = this . selection , n = t . getRange ( ) ; if ( n . isEmpty ( ) ) { var s = n . start ; if ( r = this . getFoldAt ( s . row , s . column ) ) return void this . expandFold ( r ) ; ( i = this . findMatchingBracket ( s ) ) ? 1 == n . comparePoint ( i ) ? n . end = i : ( n . start = i , n . start . column ++ , n . end . column -- ) : ( i = this . findMatchingBracket ( { row : s . row , column : s . column + 1 } ) ) ? ( 1 == n . comparePoint ( i ) ? n . end = i : n . start = i , n . start . column ++ ) : n = this . getCommentFoldRange ( s . row , s . column ) || n } else { var o = this . getFoldsInRange ( n ) ; if ( e && o . lengt Line truncated
! ( n > t ) ) ; i ++ ) ; return [ n , i ] } , this . lineWidgets = null , this . getRowLength = function ( e ) { if ( this . lineWidgets ) var t = this . lineWidgets [ e ] && this . lineWidgets [ e ] . rowCount || 0 ; else t = 0 ; return this . $useWrapMode && this . $wrapData [ e ] ? this . $wrapData [ e ] . length + 1 + t : 1 + t } , this . getRowLineCount = function ( e ) { return this . $useWrapMode && this . $wrapData [ e ] ? this . $wrapData [ e ] . length + 1 : 1 } , this . getRowWrapIndent = function ( e ) { if ( this . $useWrapMode ) { var t = this . screenToDocumentPosition ( e , Number . MAX _VALUE ) , n = this . $wrapData [ t . row ] ; return n . length && n [ 0 ] < t . column ? n . indent : 0 } return 0 } , this . getScreenLastRowColumn = function ( e ) { var t = this . screenToDocumentPosition ( e , Number . MAX _VALUE ) ; return this . documentToScreenColumn ( t . row , t . column ) } , this . getDocumentLastRowColumn = function ( e , t ) { var n = this . documentToScreenRow ( e , t ) ; return this . getScreenLastRowColumn ( n ) } , this . getDocumentLastRowColumnPosition = function ( e , t ) { var n = this . documentToScreenRow ( e , t ) ; return this . screenToDocumentPosition ( n , Number . MAX _VALUE / 10 ) } , this . getRowSplitData = function ( e ) { return this . $useWrapMode ? this . $wrapData [ e ] : void 0 } , this . getScreenTabSize = function ( e ) { return this . $tabSize - e % this . $tabSize } , this . screenToDocumentRow = function ( e , t ) { return this . screenToDocumentPosition ( e , t ) . row } , this . screenToDocumentColumn = function ( e , t ) { return this . screenToDocumentPosition ( e , t ) . column } , this . screenToDocumentPosition = function ( e , t ) { if ( e < 0 ) return { row : 0 , column : 0 } ; var n , s , r = 0 , i = 0 , o = 0 , u = 0 , a = this . $screenRowCache , f = this . $getRowCacheIndex ( a , e ) , l = a . length ; if ( l && f >= 0 ) var o = a [ f ] , r = this . $docRowCache [ f ] , c = e > a [ l - 1 ] ; else var c = ! l ; for ( var h = this . getLength ( ) - 1 , p = this . getNextFoldLine ( r ) , d = p ? p . start . row : 1 / 0 ; o <= e && ( u = this . getRowLength ( r ) , ! ( o + u > e || r >= h ) ) ; ) o += u , r ++ , r > d && ( r = p . end . row + 1 , p = this . getNextFoldLine ( r , p ) , d = p ? p . start . row : 1 / 0 ) , c && ( this . $docRowCache . push ( r ) , this . $screenRowCache . push ( o ) ) ; if ( p && p . start . row <= r ) n = this . getFoldDisplayLine ( p ) , r = p . start . row ; else { if ( o + u <= e || r > h ) return { row : h , column : this . getLine ( h ) . length } ; n = this . getLine ( r ) , p = null } var v = 0 ; if ( this . $useWrapMode ) { var m = this . $wrapData [ r ] ; if ( m ) { var g = Math . floor ( e - o ) ; s = m [ g ] , g > 0 && m . length && ( v = m . indent , i = m [ g - 1 ] || m [ m . length - 1 ] , n = n . substring ( i ) ) } } return i += this . $getStringScreenWidth ( n , t - v ) [ 1 ] , this . $useWrapMode && i >= s && ( i = s - 1 ) , p ? p . idxToPosition ( i ) : { row : r , column : i } } , this . documentToScreenPosition = function ( e , t ) { if ( "undefined" == typeof t ) var n = this . $clipPositionToDocument ( e . row , e . column ) ; else n = this . $clipPositionToDocument ( e , t ) ; e = n . row , t = n . column ; var r = 0 , i = null , s = null ; s = this . getFoldAt ( e , t , 1 ) , s && ( e = s . start . row , t = s . start . column ) ; var o , u = 0 , a = this . $docRowCache , f = this . $getRowCacheIndex ( a , e ) , l = a . length ; if ( l && f >= 0 ) var u = a [ f ] , r = this . $screenRowCache [ f ] , c = e > a [ l - 1 ] ; else var c = ! l ; for ( var h = this . getNextFoldLine ( u ) , p = h ? h . start . row : 1 / 0 ; u < e ; ) { if ( u >= p ) { if ( o = h . end . row + 1 , o > e ) break ; h = this . getNextFoldLine ( o , h ) , p = h ? h . start . row : 1 / 0 } else o = u + 1 ; r += this . getRowLength ( u ) , u = o , c && ( this . $docRowCache . push ( u ) , this . $screenRowCache . push ( r ) ) } var d = "" ; h && u >= p ? ( d = this . getFoldDisplayLine ( h , e , t ) , i = h . start . row ) : ( d = this . getLine ( e ) . substring ( 0 , t ) , i = e ) ; var v = 0 ; if ( this . $useWrapMode ) { var m = this . $wrapData [ i ] ; if ( m ) { for ( var g = 0 ; d . length >= m [ g ] ; ) r ++ , g ++ ; d = d . substring ( m [ g - 1 ] || 0 , d . length ) , v = g > 0 ? m . indent : 0 } } return { row : r , column : v + this . $getStringScreenWidth ( d ) [ 0 ] } } , this . documentToScreenColumn = function ( e , t ) { return this . documentToScreenPosition ( e , t ) . column } , this . documentToScreenRow = function ( e , t ) { return this . documentToScreenPosition ( e , t ) . row } , this . getScreenLength = function ( ) { var e = 0 , t = null ; if ( this . $useWrapMode ) for ( var i = this . $wrapData . length , s = 0 , r = 0 , t = this . $foldData [ r ++ ] , o = t ? t . start . row : 1 / 0 ; s < i ; ) { var u = this . $wrapData [ s ] ; e += u ? u . length + 1 : 1 , s ++ , s > o && ( s = t . end . row + 1 , t = this . $foldData [ r ++ ] , o = t ? t . start . row : 1 / 0 ) } else { e = this . getLength ( ) ; for ( var n = this . $foldData , r = 0 ; r < n . length ; r ++ ) t = n [ r ] , e -= t . end . row - t . start . row } return this . lineWidgets && ( e += this . $getWidgetScreenLength ( ) ) , e } , this . $setFontMetrics = function ( e ) { this . $enableVarChar && ( this . $getStringScreenWidth = function ( t , n , r ) { if ( 0 === n ) return [ 0 , 0 ] ; n || ( n = 1 / 0 ) , r = r || 0 ; var i , s ; for ( s = 0 ; s < t . length && ( i = t . charAt ( s ) , r += "\t" === i ? this . getScreenTabSize ( r ) : e . getCharacterWidth ( i ) , ! ( r > n ) ) ; s ++ ) ; return [ r , s ] } ) } , this . destroy = function ( ) { this . bgTokenizer && ( this . bgTokenizer . setDocument ( null ) , this . bgTokenizer = null ) , this . $stopWorker ( ) } } ) . call ( p . prototype ) , e ( "./edit_session/folding" ) . Folding . call ( p . prototype ) , e ( "./edit_session/bracket_match" ) . BracketMatch . call ( p . prototype ) , s . defineOptions ( p . prototype , "session" , { wrap : { set : function ( e ) { if ( e && "off" != e ? "free" == e ? e = ! 0 : "printMargin" == e ? e = - 1 : "string" == typeof e && ( e = parseInt ( e , 10 ) || ! 1 ) : e = ! 1 , this . $wrap != e ) if ( this . $wrap = e , e ) { var t = "number" == typeof e ? e : null ; this . setWrapLimitRange ( t , t ) , this . setUseWrapMode ( ! 0 ) } else this . setUseWrapMode ( ! 1 ) } , get : function ( ) { return this . getUseWrapMode ( ) ? this . $wrap == - 1 ? "printMargin" : this . getWrapLimitRange ( ) . min ? this . $wrap : "free" : "off" } , handlesSet : ! 0 } , wrapMethod : { set : function ( e ) { e = "auto" == e ? "text" != this . $mode . type : "text" != e , e != this . $wrapAsCode && ( this . $wrapAsCode = e , this . $useWrapMode && ( this . $modified = ! 0 , this . $resetRowCache ( 0 ) , this . $updateWrapData ( 0 , this . getLength ( ) - 1 ) ) ) } , initialValue : "auto" } , i Line truncated
this . curOp . docChanged = ! 0 } . bind ( this ) , ! 0 ) , this . on ( "changeSelection" , function ( ) { this . curOp || this . startOperation ( ) , this . curOp . selectionChanged = ! 0 } . bind ( this ) , ! 0 ) } , this . curOp = null , this . prevOp = { } , this . startOperation = function ( e ) { if ( this . curOp ) { if ( ! e || this . curOp . command ) return ; this . prevOp = this . curOp } e || ( this . previousCommand = null , e = { } ) , this . $opResetTimer . schedule ( ) , this . curOp = { command : e . command || { } , args : e . args , scrollTop : this . renderer . scrollTop } , this . curOp . command . name && void 0 !== this . curOp . command . scrollIntoView && this . $blockScrolling ++ } , this . endOperation = function ( e ) { if ( this . curOp ) { if ( e && e . returnValue === ! 1 ) return this . curOp = null ; this . _signal ( "beforeEndOperation" ) ; var t = this . curOp . command ; t . name && this . $blockScrolling > 0 && this . $blockScrolling -- ; var n = t && t . scrollIntoView ; if ( n ) { switch ( n ) { case "center-animate" : n = "animate" ; case "center" : this . renderer . scrollCursorIntoView ( null , . 5 ) ; break ; case "animate" : case "cursor" : this . renderer . scrollCursorIntoView ( ) ; break ; case "selectionPart" : var r = this . selection . getRange ( ) , i = this . renderer . layerConfig ; ( r . start . row >= i . lastRow || r . end . row <= i . firstRow ) && this . renderer . scrollSelectionIntoView ( this . selection . anchor , this . selection . lead ) } "animate" == n && this . renderer . animateScrolling ( this . curOp . scrollTop ) } this . prevOp = this . curOp , this . curOp = null } } , this . $mergeableCommands = [ "backspace" , "del" , "insertstring" ] , this . $historyTracker = function ( e ) { if ( this . $mergeUndoDeltas ) { var t = this . prevOp , n = this . $mergeableCommands , r = t . command && e . command . name == t . command . name ; if ( "insertstring" == e . command . name ) { var i = e . args ; void 0 === this . mergeNextCommand && ( this . mergeNextCommand = ! 0 ) , r = r && this . mergeNextCommand && ( ! /\s/ . test ( i ) || /\s/ . test ( t . args ) ) , this . mergeNextCommand = ! 0 } else r = r && n . indexOf ( e . command . name ) !== - 1 ; "always" != this . $mergeUndoDeltas && Date . now ( ) - this . sequenceStartTime > 2e3 && ( r = ! 1 ) , r ? this . session . mergeUndoDeltas = ! 0 : n . indexOf ( e . command . name ) !== - 1 && ( this . sequenceStartTime = Date . now ( ) ) } } , this . setKeyboardHandler = function ( e , t ) { if ( e && "string" == typeof e ) { this . $keybindingId = e ; var n = this ; g . loadModule ( [ "keybinding" , e ] , function ( r ) { n . $keybindingId == e && n . keyBinding . setKeyboardHandler ( r && r . handler ) , t && t ( ) } ) } else this . $keybindingId = null , this . keyBinding . setKeyboardHandler ( e ) , t && t ( ) } , this . getKeyboardHandler = function ( ) { return this . keyBinding . getKeyboardHandler ( ) } , this . setSession = function ( e ) { if ( this . session != e ) { this . curOp && this . endOperation ( ) , this . curOp = { } ; var t = this . session ; if ( t ) { this . session . off ( "change" , this . $onDocumentChange ) , this . session . off ( "changeMode" , this . $onChangeMode ) , this . session . off ( "tokenizerUpdate" , this . $onTokenizerUpdate ) , this . session . off ( "changeTabSize" , this . $onChangeTabSize ) , this . session . off ( "changeWrapLimit" , this . $onChangeWrapLimit ) , this . session . off ( "changeWrapMode" , this . $onChangeWrapMode ) , this . session . off ( "changeFold" , this . $onChangeFold ) , this . session . off ( "changeFrontMarker" , this . $onChangeFrontMarker ) , this . session . off ( "changeBackMarker" , this . $onChangeBackMarker ) , this . session . off ( "changeBreakpoint" , this . $onChangeBreakpoint ) , this . session . off ( "changeAnnotation" , this . $onChangeAnnotation ) , this . session . off ( "changeOverwrite" , this . $onCursorChange ) , this . session . off ( "changeScrollTop" , this . $onScrollTopChange ) , this . session . off ( "changeScrollLeft" , this . $onScrollLeftChange ) ; var n = this . session . getSelection ( ) ; n . off ( "changeCursor" , this . $onCursorChange ) , n . off ( "changeSelection" , this . $onSelectionChange ) } this . session = e , e ? ( this . $onDocumentChange = this . onDocumentChange . bind ( this ) , e . on ( "change" , this . $onDocumentChange ) , this . renderer . setSession ( e ) , this . $onChangeMode = this . onChangeMode . bind ( this ) , e . on ( "changeMode" , this . $onChangeMode ) , this . $onTokenizerUpdate = this . onTokenizerUpdate . bind ( this ) , e . on ( "tokenizerUpdate" , this . $onTokenizerUpdate ) , this . $onChangeTabSize = this . renderer . onChangeTabSize . bind ( this . renderer ) , e . on ( "changeTabSize" , this . $onChangeTabSize ) , this . $onChangeWrapLimit = this . onChangeWrapLimit . bind ( this ) , e . on ( "changeWrapLimit" , this . $onChangeWrapLimit ) , this . $onChangeWrapMode = this . onChangeWrapMode . bind ( this ) , e . on ( "changeWrapMode" , this . $onChangeWrapMode ) , this . $onChangeFold = this . onChangeFold . bind ( this ) , e . on ( "changeFold" , this . $onChangeFold ) , this . $onChangeFrontMarker = this . onChangeFrontMarker . bind ( this ) , this . session . on ( "changeFrontMarker" , this . $onChangeFrontMarker ) , this . $onChangeBackMarker = this . onChangeBackMarker . bind ( this ) , this . session . on ( "changeBackMarker" , this . $onChangeBackMarker ) , this . $onChangeBreakpoint = this . onChangeBreakpoint . bind ( this ) , this . session . on ( "changeBreakpoint" , this . $onChangeBreakpoint ) , this . $onChangeAnnotation = this . onChangeAnnotation . bind ( this ) , this . session . on ( "changeAnnotation" , this . $onChangeAnnotation ) , this . $onCursorChange = this . onCursorChange . bind ( this ) , this . session . on ( "changeOverwrite" , this . $onCursorChange ) , this . $onScrollTopChange = this . onScrollTopChange . bind ( this ) , this . session . on ( "changeScrollTop" , this . $onScrollTopChange ) , this . $onScrollLeftChange = this . onScrollLeftChange . bind ( this ) , this . session . on ( "changeScrollLeft" , this . $onScrollLeftChange ) , this . selection = e . getSelection ( ) , this . selection . on ( "changeCursor" , this . $onCursorChange ) , this . $onSelection Line truncated
this . renderer . off ( "beforeRender" , o ) ) } } } , this . $resetCursorStyle = function ( ) { var e = this . $cursorStyle || "ace" , t = this . renderer . $cursorLayer ; t && ( t . setSmoothBlinking ( /smooth/ . test ( e ) ) , t . isBlinking = ! this . $readOnly && "wide" != e , i . setCssClass ( t . element , "ace_slim-cursors" , /slim/ . test ( e ) ) ) } } ) . call ( b . prototype ) , g . defineOptions ( b . prototype , "editor" , { selectionStyle : { set : function ( e ) { this . onSelectionChange ( ) , this . _signal ( "changeSelectionStyle" , { data : e } ) } , initialValue : "line" } , highlightActiveLine : { set : function ( ) { this . $updateHighlightActiveLine ( ) } , initialValue : ! 0 } , highlightSelectedWord : { set : function ( e ) { this . $onSelectionChange ( ) } , initialValue : ! 0 } , readOnly : { set : function ( e ) { this . $resetCursorStyle ( ) } , initialValue : ! 1 } , cursorStyle : { set : function ( e ) { this . $resetCursorStyle ( ) } , values : [ "ace" , "slim" , "smooth" , "wide" ] , initialValue : "ace" } , mergeUndoDeltas : { values : [ ! 1 , ! 0 , "always" ] , initialValue : ! 0 } , behavioursEnabled : { initialValue : ! 0 } , wrapBehavioursEnabled : { initialValue : ! 0 } , autoScrollEditorIntoView : { set : function ( e ) { this . setAutoScrollEditorIntoView ( e ) } } , keyboardHandler : { set : function ( e ) { this . setKeyboardHandler ( e ) } , get : function ( ) { return this . keybindingId } , handlesSet : ! 0 } , hScrollBarAlwaysVisible : "renderer" , vScrollBarAlwaysVisible : "renderer" , highlightGutterLine : "renderer" , animatedScroll : "renderer" , showInvisibles : "renderer" , showPrintMargin : "renderer" , printMarginColumn : "renderer" , printMargin : "renderer" , fadeFoldWidgets : "renderer" , showFoldWidgets : "renderer" , showLineNumbers : "renderer" , showGutter : "renderer" , displayIndentGuides : "renderer" , fontSize : "renderer" , fontFamily : "renderer" , maxLines : "renderer" , minLines : "renderer" , scrollPastEnd : "renderer" , fixedWidthGutter : "renderer" , theme : "renderer" , scrollSpeed : "$mouseHandler" , dragDelay : "$mouseHandler" , dragEnabled : "$mouseHandler" , focusTimout : "$mouseHandler" , tooltipFollowsMouse : "$mouseHandler" , firstLineNumber : "session" , overwrite : "session" , newLineMode : "session" , useWorker : "session" , useSoftTabs : "session" , tabSize : "session" , wrap : "session" , indentedSoftWrap : "session" , foldStyle : "session" , mode : "session" } ) , t . Editor = b } ) , ace . define ( "ace/undomanager" , [ "require" , "exports" , "module" ] , function ( e , t , n ) { "use strict" ; var r = function ( ) { this . reset ( ) } ; ( function ( ) { function e ( e ) { return { action : e . action , start : e . start , end : e . end , lines : 1 == e . lines . length ? null : e . lines , text : 1 == e . lines . length ? e . lines [ 0 ] : null } } function t ( e ) { return { action : e . action , start : e . start , end : e . end , lines : e . lines || [ e . text ] } } function n ( e , t ) { for ( var n = new Array ( e . length ) , r = 0 ; r < e . length ; r ++ ) { for ( var i = e [ r ] , s = { group : i . group , deltas : new Array ( i . length ) } , o = 0 ; o < i . deltas . length ; o ++ ) { var u = i . deltas [ o ] ; s . deltas [ o ] = t ( u ) } n [ r ] = s } return n } this . execute = function ( e ) { var t = e . args [ 0 ] ; this . $doc = e . args [ 1 ] , e . merge && this . hasUndo ( ) && ( this . dirtyCounter -- , t = this . $undoStack . pop ( ) . concat ( t ) ) , this . $undoStack . push ( t ) , this . $redoStack = [ ] , this . dirtyCounter < 0 && ( this . dirtyCounter = NaN ) , this . dirtyCounter ++ } , this . undo = function ( e ) { var t = this . $undoStack . pop ( ) , n = null ; return t && ( n = this . $doc . undoChanges ( t , e ) , this . $redoStack . push ( t ) , this . dirtyCounter -- ) , n } , this . redo = function ( e ) { var t = this . $redoStack . pop ( ) , n = null ; return t && ( n = this . $doc . redoChanges ( this . $deserializeDeltas ( t ) , e ) , this . $undoStack . push ( t ) , this . dirtyCounter ++ ) , n } , this . reset = function ( ) { this . $undoStack = [ ] , this . $redoStack = [ ] , this . dirtyCounter = 0 } , this . hasUndo = function ( ) { return this . $undoStack . length > 0 } , this . hasRedo = function ( ) { return this . $redoStack . length > 0 } , this . markClean = function ( ) { this . dirtyCounter = 0 } , this . isClean = function ( ) { return 0 === this . dirtyCounter } , this . $serializeDeltas = function ( t ) { return n ( t , e ) } , this . $deserializeDeltas = function ( e ) { return n ( e , t ) } } ) . call ( r . prototype ) , t . UndoManager = r } ) , ace . define ( "ace/layer/gutter" , [ "require" , "exports" , "module" , "ace/lib/dom" , "ace/lib/oop" , "ace/lib/lang" , "ace/lib/event_emitter" ] , function ( e , t , n ) { "use strict" ; var r = e ( "../lib/dom" ) , i = e ( "../lib/oop" ) , s = e ( "../lib/lang" ) , o = e ( "../lib/event_emitter" ) . EventEmitter , u = function ( e ) { this . element = r . createElement ( "div" ) , this . element . className = "ace_layer ace_gutter-layer" , e . appendChild ( this . element ) , this . setShowFoldWidgets ( this . $showFoldWidgets ) , this . gutterWidth = 0 , this . $annotations = [ ] , this . $updateAnnotations = this . $updateAnnotations . bind ( this ) , this . $cells = [ ] } ; ( function ( ) { i . implement ( this , o ) , this . setSession = function ( e ) { this . session && this . session . removeEventListener ( "change" , this . $updateAnnotations ) , this . session = e , e && e . on ( "change" , this . $updateAnnotations ) } , this . addGutterDecoration = function ( e , t ) { window . console && console . warn && console . warn ( "deprecated use session.addGutterDecoration" ) , this . session . addGutterDecoration ( e , t ) } , this . removeGutterDecoration = function ( e , t ) { window . console && console . warn && console . warn ( "deprecated use session.removeGutterDecoration" ) , this . session . removeGutterDecoration ( e , t ) } , this . setAnnotations = function ( e ) { this . $annotations = [ ] ; for ( var t = 0 ; t < e . length ; t ++ ) { var n = e [ t ] , r = n . row , i = this . $annotations [ r ] ; i || ( i = this . $annotations [ r ] = { text : [ ] } ) ; var o = n . text ; o = o ? s . escapeHTML ( o ) : n . html || "" , i . text . indexOf ( o ) === - 1 && i . text . push ( o ) ; var u = n . type ; "error" == u ? i . className = " ace_error" : "warning" == u && " ace_error" ! Line truncated
i . importCssString ( m , "ace_editor.css" ) ; var g = function ( e , t ) { var n = this ; this . container = e || i . createElement ( "div" ) , this . $keepTextAreaAtCursor = ! o . isOldIE , i . addCssClass ( this . container , "ace_editor" ) , this . setTheme ( t ) , this . $gutter = i . createElement ( "div" ) , this . $gutter . className = "ace_gutter" , this . container . appendChild ( this . $gutter ) , this . scroller = i . createElement ( "div" ) , this . scroller . className = "ace_scroller" , this . container . appendChild ( this . scroller ) , this . content = i . createElement ( "div" ) , 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 ? 1 : 0 ; var i = this . container ; r || ( r = i . clientHeight || i . scrollHeight ) , n || ( n = i . clientWidth || i . scrollWidth ) ; var s = this . $updateCachedSize ( e , t , n , r ) ; return this . $size . scrollerHeight && ( n || r ) ? ( e && ( this . $gutterLayer . $padding = null ) , e ? this . $renderChanges ( s | this . $changes , ! 0 ) : this . $loop . schedule ( s | this . $changes ) , this . resizing && ( this . resizing = 0 ) , this . scrollBarV . scrollLeft = this . scrollBarV . scrollTop = null , void 0 ) : this . resizing = 0 } } , this . $updateCach Line truncated
if ( this . othersActive ) { this . othersActive = ! 1 ; for ( var e = 0 ; e < this . others . length ; e ++ ) this . session . removeMarker ( this . others [ e ] . markerId ) } } , this . onUpdate = function ( e ) { if ( this . $updating ) return this . updateAnchors ( e ) ; var t = e ; if ( t . start . row === t . end . row && t . start . row === this . pos . row ) { this . $updating = ! 0 ; var n = "insert" === e . action ? t . end . column - t . start . column : t . start . column - t . end . column , i = t . start . column >= this . pos . column && t . start . column <= this . pos . column + this . length + 1 , s = t . start . column - this . pos . column ; 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 . removeSelectionMarker ( N ) , c . toSingleRange ( N ) ) ; for ( var t = 0 ; t < C . length ; t ++ ) c . addRange ( C [ t ] ) ; l . inVirtualSelectionMode = ! 1 , l . $mouseHandler . $clickSelection = null , l . $blockScrolling -- } , A = k ; r . capture ( l . container , y , L ) ; var O = setInterval ( function ( ) { A ( ) } , 20 ) ; return e . preventDefault ( ) } } } var r = e ( "../lib/event" ) , i = e ( "../lib/useragent" ) ; t . onMouseDown = o } ) , ace . define ( "ace/commands/multi_select_commands" , [ "require" , "exports" , "module" , " ace / Line truncated
} var a = [ ] ; t = u . row ; do a [ n < 0 ? "unshift" : "push" ] ( u ) , u = r [ i += n ] ; while ( u && u . row == t ) ; return a . length && a } } } var r = e ( "../line_widgets" ) . LineWidgets , i = e ( "../lib/dom" ) , s = e ( "../range" ) . Range ; t . showErrorMarker = function ( e , t ) { var n = e . session ; n . widgetManager || ( n . widgetManager = new r ( n ) , n . widgetManager . attach ( e ) ) ; var s = e . getCursorPosition ( ) , o = s . row , a = n . widgetManager . getWidgetsAtRow ( o ) . filter ( function ( e ) { return "errorMarker" == e . type } ) [ 0 ] ; a ? a . destroy ( ) : o -= t ; var l , f = u ( n , o , t ) ; if ( f ) { var c = f [ 0 ] ; 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 ] ) } ) } ( ) , ace . define ( "ace/ext/modelist" , [ "require" , "exports" , "module" ] , function ( e , t , n ) { "use strict" ; function i ( e ) { for ( var t = a . text , n = e . split ( /[\/\\]/ ) . pop ( ) , i = 0 ; i < r . length ; i ++ ) if ( r [ i ] . supportsFile ( n ) ) { t = r [ i ] ; break } return t } var r = [ ] , s = function ( e , t , n ) { this . name = e , this . caption = t , this . mode = "ace/mode/" + e , this . extensions = n ; var r ; r = /\^/ . test ( n ) ? n . replace ( /\|(\^)?/g , function ( e , t ) { return "$|" + ( t ? "^" : "^.*\\." ) } ) + "$" : "^.*\\.(" + n + ")$" , this . extRe Line truncated
if ( u ( f , "reference.attribute-value" ) ) return ; if ( u ( f , "attribute-value" ) ) { var l = f . value . charAt ( 0 ) ; if ( '"' == l || "'" == l ) { var c = f . value . charAt ( f . value . length - 1 ) , h = a . getCurrentTokenColumn ( ) + f . value . length ; if ( h > o . column || h == o . column && l != c ) return } } for ( ; ! u ( f , "tag-name" ) ; ) if ( f = a . stepBackward ( ) , "<" == f . value ) { f = a . stepForward ( ) ; break } var p = a . getCurrentTokenRow ( ) , d = a . getCurrentTokenColumn ( ) ; if ( u ( a . stepBackward ( ) , "end-tag-open" ) ) return ; 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 . column && ( a . start . column = a . end . column ) , s . fromPoints ( a . start , c ) } else { var f = new u ( e , n , r . start . column ) , l = { row : n , column : r . start . column + r . tagName . length + 2 } ; for ( r . start . row == r . end . row && ( l . column = r . end . column ) ; a = this . _readTagForward ( 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 ) { if ( this . _pop ( o , a ) , 0 == o . length ) return s . fromPoints ( l , a . start ) } else o . push ( a ) } } } ) . call ( a . prototype ) } ) , ace . define ( " ace / mod Line truncated
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 : [ "text" , "url" , "text" ] , regex : "(<)((?:https?|ftp|dict):[^'\">\\s]+|(?:mailto:)?[-.\\w]+\\@[-a-z0-9]+(?:\\.[-a-z0-9]+)*\\.[a-z]+)(>)" } ] , allowBlock : [ { token : "support.function" , regex : "^ {4}.+" , next : "allowBlock" } , { token : "empty_line" , regex : "^$" , next : "allowBlock" } , { token : "empty" , regex : "" , next : "start" } ] , header : [ { regex : "$" , next : "start" } , { include : "basic" } , { defaultToken : "heading" } ] , "listblock-start" : [ { token : "support.variable" , regex : /(?:\[[ x]\])?/ , next : "listblock" } ] , listblock : [ { token : "empty_line" , regex : "^$" , next : "start" } , { token : "markup.list" , regex : "^\\s{0,3}(?:[*+-]|\\d+\\.)\\s+" , next : "listblock-start" } , { include : "basic" , noEscape : ! 0 } , { token : "support.function" , regex : "^\\s*```\\s*[a-zA-Z]*(?:{.*?\\})?\\s*$" , next : "githubblock" } , { defaultToken : "list" } ] , blockquote : [ { token : "empty_line" , regex : "^\\s*$" , next : "start" } , { token : "string.blockquote" , regex : "^\\s*>\\s*(?:[*+-]|\\d+\\.)?\\s+" , next : "blockquote" } , { include : " basi Line truncated
} } return i } function xr ( n ) { return "number" == typeof n ? n : xu ( n ) ? P : + n } function jr ( n ) { if ( "string" == typeof n ) return n ; if ( uf ( n ) ) return l ( n , jr ) + "" ; if ( xu ( n ) ) return no ? no . 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 : ao ( 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 , 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 Ar ( 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 kr ( n , t , r ) { var e = n . length ; if ( 2 > e ) return e ? wr ( n [ 0 ] ) : [ ] ; for ( var u = - 1 , i = qu ( e ) ; ++ u < e ; ) for ( var o = n [ u ] , f = - 1 ; ++ f < e ; ) { var c = n [ f ] ; c !== o && ( i [ u ] = jt ( i [ u ] || o , c , t , r ) ) } return wr ( kt ( i , 1 ) , t , r ) } function Er ( 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 Or ( n ) { return lu ( n ) ? n : [ ] } function Sr ( n ) { return "function" == typeof n ? n : Mu } function Ir ( n ) { return uf ( n ) ? n : bo ( n ) } function Rr ( n , t , r ) { var e = n . length ; return r = r === F ? e : r , ! t && r >= e ? n : vr ( n , t , r ) } function zr ( n , t ) { if ( t ) return n . slice ( ) ; var r = n . length , r = _i ? _i ( r ) : new n . constructor ( r ) ; return n . copy ( r ) , r } function Wr ( n ) { var t = new n . constructor ( n . byteLength ) ; return new pi ( t ) . set ( new pi ( n ) ) , t } function Br ( n , t ) { return new n . constructor ( t ? Wr ( n . buffer ) : n . buffer , n . byteOffset , n . length ) } function Lr ( n , t ) { if ( n !== t ) { var r = n !== F , e = null === n , u = n === n , i = xu ( n ) , o = t !== F , f = null === t , c = t === t , a = xu ( 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 Ur ( n , t , r , e ) { var u = - 1 , i = n . length , o = r . length , f = - 1 , c = t . length , a = Bi ( i - o , 0 ) , l = qu ( 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 Cr ( n , t , r , e ) { var u = - 1 , i = n . length , o = - 1 , f = r . length , c = - 1 , a = t . length , l = Bi ( i - f , 0 ) , s = qu ( 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 Dr ( n , t ) { var r = - 1 , e = n . length ; for ( t || ( t = qu ( e ) ) ; ++ r < e ; ) t [ r ] = n [ r ] ; return t } function Mr ( 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 ) : lt ( r , f , c ) } return r } function Tr ( n , t ) { return Mr ( n , so ( n ) , t ) } function $r ( n , t ) { return function ( r , u ) { var i = uf ( r ) ? e : ht , o = t ? t ( ) : { } ; return i ( r , n , ve ( u , 2 ) , o ) } } function Fr ( 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 && ke ( r [ 0 ] , r [ 1 ] , o ) && ( i = 3 > u ? F : i , u = 1 ) , t = Ju ( t ) ; ++ e < u ; ) ( o = r [ e ] ) && n ( t , o , e , i ) ; return t } ) } function Nr ( n , t ) { return function ( r , e ) { if ( null == r ) return r ; if ( ! au ( r ) ) return n ( r , e ) ; for ( var u = r . length , i = t ? u : - 1 , o = Ju ( r ) ; ( t ? i -- : ++ i < u ) && ! 1 !== e ( o [ i ] , i , o ) ; ) ; return r } } function Pr ( n ) { return function ( t , r , e ) { var u = - 1 , i = Ju ( 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 Zr ( n , t , r ) { function e ( ) { return ( this && this !== Zn && this instanceof e ? i : n ) . apply ( u ? r : this , arguments ) } var u = 1 & t , i = Kr ( n ) ; return e } function qr ( n ) { return function ( t ) { t = Ou ( t ) ; var r = Bn . test ( t ) ? $ ( t ) : F , e = r ? r [ 0 ] : t . charAt ( 0 ) ; return t = r ? Rr ( r , 1 ) . join ( "" ) : t . slice ( 1 ) , e [ n ] ( ) + t } } function Vr ( n ) { return function ( t ) { return h ( Cu ( Uu ( t ) . replace ( In , "" ) ) , n , "" ) } } function Kr ( 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 = to ( n . prototype ) , t = n . apply ( r , t ) ; return vu ( t ) ? t : r } } function Gr ( n , t , e ) { function u ( ) { for ( var o = arguments . length , f = qu ( o ) , c = o , a = _e ( 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 ? ie ( n , t , Yr , u . placeholder , F , f , c , F , F , e - o ) : r ( this && this !== Zn && this instanceof u ? i : n , this , f ) } var i = Kr ( n ) ; return u } function Hr ( n ) { return function ( t , r , e ) { var u = Ju ( t ) ; if ( ! au ( t ) ) { var i = ve ( r , 3 ) ; t = Ru ( t ) , r = function ( n ) { return i ( u [ n ] , n , u ) } } return r = n ( t , r , e ) , - 1 < r ? u [ i ? t [ r ] : r ] : F } } function Jr ( n ) { return se ( function ( t ) { var r = t . length , e = r , u = zn . prototype . thru ; for ( n && t . reverse ( ) ; e -- ; ) { var i = t [ e ] ; if ( "function" != typeof i ) throw new Xu ( "Expected a function" ) ; if ( u && ! o && "wrapper" == pe ( i ) ) var o = new zn ( [ ] , ( ! 0 ) ) } for ( e = o ? e : r ; ++ e < r ; ) var i = t [ e ] , u = pe ( i ) , f = "wrapper" == u ? lo ( i ) : F , o = f && Oe ( f [ 0 ] ) && 424 == f [ 1 ] && ! f [ 4 ] . length && 1 == f [ 9 ] ? o [ pe ( f [ 0 ] ) ] . apply ( o , f [ 3 ] ) : 1 == i . length && Oe ( i ) ? o [ u ] ( ) : o . thru ( i ) ; return function ( ) { var n = arguments , e = n [ 0 ] ; if ( o && 1 == n . length && uf ( e ) && 200 <= e . length ) return o . plant ( e ) . value ( ) ; for ( var u = 0 , n = r ? t [ u ] . apply ( this , n ) : e ; ++ u < r ; ) n = t [ u ] . call ( this , n ) ; return n } } ) } function Yr ( n , t , r , e , u , i , o , f , c , a ) { function l ( ) { for ( var d = arguments . length , y = qu ( d ) , b = d ; b -- ; ) y [ b ] = arguments [ b ] ; if ( _ ) { var x , j = _e ( l ) , b = y . length ; for ( x = 0 ; b -- ; ) y [ b ] === j && Line truncated
} , On . once = function ( n ) { return ru ( 2 , n ) } , On . orderBy = function ( n , t , r , e ) { return null == n ? [ ] : ( uf ( t ) || ( t = null == t ? [ ] : [ t ] ) , r = e ? F : r , uf ( r ) || ( r = null == r ? [ ] : [ r ] ) , rr ( n , t , r ) ) } , On . over = qf , On . overArgs = Yo , On . overEvery = Vf , On . overSome = Kf , On . partial = Qo , On . partialRight = Xo , On . partition = Zo , On . pick = Sf , On . pickBy = Wu , On . property = Nu , On . propertyOf = function ( n ) { return function ( t ) { return null == n ? F : It ( n , t ) } } , On . pull = Eo , On . pullAll = qe , On . pullAllBy = function ( n , t , r ) { return n && n . length && t && t . length ? or ( n , t , ve ( r , 2 ) ) : n } , On . pullAllWith = function ( n , t , r ) { return n && n . length && t && t . length ? or ( n , t , F , r ) : n } , On . pullAt = Oo , On . range = Gf , On . rangeRight = Hf , On . rearg = nf , On . reject = function ( n , t ) { return ( uf ( n ) ? f : At ) ( n , fu ( ve ( t , 3 ) ) ) } , On . remove = function ( n , t ) { var r = [ ] ; if ( ! n || ! n . length ) return r ; var e = - 1 , u = [ ] , i = n . length ; for ( t = ve ( 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 Xu ( "Expected a function" ) ; return t = t === F ? t : mu ( t ) , lr ( n , t ) } , On . reverse = Ve , On . sampleSize = function ( n , t , r ) { return t = ( r ? ke ( n , t , r ) : t === F ) ? 1 : mu ( t ) , ( uf ( 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 ( uf ( n ) ? ft : _r ) ( n ) } , On . slice = function ( n , t , r ) { var e = null == n ? 0 : n . length ; return e ? ( r && "number" != typeof r && ke ( n , t , r ) ? ( t = 0 , r = e ) : ( t = null == t ? 0 : mu ( t ) , r = r === F ? e : mu ( r ) ) , vr ( n , t , r ) ) : [ ] } , On . sortBy = qo , On . sortedUniq = function ( n ) { return n && n . length ? br ( n ) : [ ] } , On . sortedUniqBy = function ( n , t ) { return n && n . length ? br ( n , ve ( t , 2 ) ) : [ ] } , On . split = function ( n , t , r ) { return r && "number" != typeof r && ke ( n , t , r ) && ( t = r = F ) , r = r === F ? 4294967295 : r >>> 0 , r ? ( n = Ou ( n ) ) && ( "string" == typeof t || null != t && ! lf ( t ) ) && ( t = jr ( t ) , ! t && Bn . test ( n ) ) ? Rr ( $ ( n ) , 0 , r ) : n . split ( t , r ) : [ ] } , On . spread = function ( n , t ) { if ( "function" != typeof n ) throw new Xu ( "Expected a function" ) ; return t = t === F ? 0 : Bi ( mu ( t ) , 0 ) , lr ( function ( e ) { var u = e [ t ] ; return e = Rr ( 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 : mu ( 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 : mu ( t ) , t = e - t , vr ( n , 0 > t ? 0 : t , e ) ) : [ ] } , On . takeRightWhile = function ( n , t ) { return n && n . length ? mr ( n , ve ( t , 3 ) , ! 1 , ! 0 ) : [ ] } , On . takeWhile = function ( n , t ) { return n && n . length ? mr ( n , ve ( 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 Xu ( "Expected a function" ) ; return vu ( r ) && ( e = "leading" in r ? ! ! r . leading : e , u = "trailing" in r ? ! ! r . trailing : u ) , iu ( n , t , { leading : e , maxWait : t , trailing : u } ) } , On . thru = Je , On . toArray = ju , On . toPairs = If , On . toPairsIn = Rf , On . toPath = function ( n ) { return uf ( n ) ? l ( n , Ce ) : xu ( n ) ? [ n ] : Dr ( bo ( n ) ) } , On . toPlainObject = Eu , On . transform = function ( n , t , r ) { var e = uf ( n ) , i = e || ff ( n ) || hf ( n ) ; if ( t = ve ( t , 4 ) , null == r ) { var o = n && n . constructor ; r = i ? e ? new o : [ ] : vu ( n ) && hu ( o ) ? to ( vi ( n ) ) : { } } return ( i ? u : Et ) ( n , function ( n , e , u ) { return t ( r , n , e , u ) } ) , r } , On . unary = function ( n ) { return tu ( n , 1 ) } , On . union = So , On . unionBy = Io , On . unionWith = Ro , On . uniq = function ( n ) { return n && n . length ? wr ( n ) : [ ] } , On . uniqBy = function ( n , t ) { return n && n . length ? wr ( n , ve ( 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 ) { var r ; if ( null == n ) r = ! 0 ; else { r = n ; var e = t , e = Ee ( e , r ) ? [ e ] : Ir ( e ) ; r = We ( r , e ) , e = Ce ( Ze ( e ) ) , r = ! ( null != r && ui . call ( r , e ) ) || delete r [ e ] } return r } , On . unzip = Ke , On . unzipWith = Ge , On . update = function ( n , t , r ) { return null == n ? n : pr ( n , t , Sr ( 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 , Sr ( r ) ( It ( n , t ) ) , e ) ) , n } , On . values = Bu , On . valuesIn = function ( n ) { return null == n ? [ ] : I ( n , zu ( n ) ) } , On . without = zo , On . words = Cu , On . wrap = function ( n , t ) { return Qo ( Sr ( t ) , n ) } , On . xor = Wo , On . xorBy = Bo , On . xorWith = Lo , On . zip = Uo , On . zipObject = function ( n , t ) { return Er ( n || [ ] , t || [ ] , lt ) } , On . zipObjectDeep = function ( n , t ) { return Er ( n || [ ] , t || [ ] , pr ) } , On . zipWith = Co , On . entries = If , On . entriesIn = Rf , On . extend = gf , On . extendWith = df , $u ( On , On ) , On . add = Jf , On . attempt = Tf , On . camelCase = zf , On . capitalize = Lu , On . ceil = Yf , On . clamp = function ( n , t , r ) { return r === F && ( r = t , t = F ) , r !== F && ( r = ku ( r ) , r = r === r ? r : 0 ) , t !== F && ( t = ku ( t ) , t = t === t ? t : 0 ) , gt ( ku ( n ) , t , r ) } , On . clone = function ( n ) { return dt ( n , ! 1 , ! 0 ) } , On . cloneDeep = function ( n ) { return dt ( n , ! 0 , ! 0 ) } , On . cloneDeepWith = function ( n , t ) { return t = "function" == typeof t ? t : F , dt ( n , ! 0 , ! 0 , t ) } , On . cloneWith = function ( n , t ) { return t = "function" == typeof t ? t : F , dt ( n , ! 1 , ! 0 , t ) } , On . conformsTo = function ( n , t ) { return null == t || bt ( n , t , Ru ( t ) ) } , On . deburr = Uu , On . defaultTo = function ( n , t ) { return null == n || n !== n ? t : n } , On . divide = Qf , On . endsWith = function ( n , t , r ) { n = Ou ( n ) , t = jr ( t ) ; var e = n . length , e = r = r === F ? e : gt ( mu ( r ) , 0 , e ) ; return r -= t . length , 0 <= r && n . slice ( r , e ) == t } , On . eq = cu , On . escape = function ( n ) { return ( n = Ou ( n ) ) && Y . test ( n ) ? n . replace ( H , et ) : n } , On . escapeRegExp = function ( n ) { return ( n = Ou ( n ) ) && fn . test ( n ) ? n . replace ( on , "\\$&" ) : n } , On . every = function ( n , t , r ) { var e = uf ( n ) ? o : wt ; return r && ke ( n , t , r ) && ( t = F ) , e ( n , ve ( t , 3 ) ) } , On . find = To , On . findIndex = $e , On . findKey = function ( n , t ) { return v ( n , ve ( t , 3 ) , Et ) } , On . findLast = $o , On . findLastIndex = Fe , On . findLastKey = functi Line truncated
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 ] . hashWorker = null , r ( e , t ) } } , ! 1 ) ; var t , a , o , s , p , f ; return f = function ( e ) { n . postMessage ( { message : e . target . result , block : a } ) } , p = function ( ) { a . end !== l . size && ( a . start += t , a . end += t , a . end > l . size && ( a . end = l . size ) , o = new FileReader , o . onload = f , l . slice ? s = l . slice ( a . start , a . end ) : l . webkitSlice ? s = l . webkitSlice ( a . start , a . end ) : l . mozSlice && ( s = l . mozSlice ( a . start , a . end ) ) , o . readAsArrayBuffer ( s ) ) } , t = 1048576 , a = { file _size : l . size , start : 0 } , a . end = t > l . size ? l . size : t , n . addEventListener ( "message" , p , ! 1 ) , o = new FileReader , o . onload = f , l . slice ? s = l . slice ( a . start , a . end ) : l . webkitSlice ? s = l . webkitSlice ( a . start , a . end ) : l . mozSlice && ( s = l . mozSlice ( a . start , a . end ) ) , o . readAsArrayBuffer ( s ) , void ( R [ e ] . hashWorker = n ) } catch ( u ) { } } i ( e ) } function r ( e , l ) { if ( 1 == u ( e ) ) { var n = ! 1 , t = function ( l ) { return 1 == u ( e ) && ( ! n && ( n = ! 0 , Y ( e , 100 ) , G ( e , l ) , ! 0 ) ) } , a = function ( ) { return 1 == u ( e ) && ( ! n && ( n = ! 0 , i ( e ) , ! 0 ) ) } , o = function ( l ) { return 1 == u ( e ) && ( ! n && ( n = ! 0 , K ( e , { name : "HashError" , message : l } ) , ! 0 Line truncated
"object" == typeof nativeJSON && nativeJSON && ( exports . stringify = nativeJSON . stringify , exports . parse = nativeJSON . parse ) ; var isProperty , forEach , undef , objectProto = Object . prototype , getClass = objectProto . toString , isExtended = new Date ( ( - 0xc782b5b800cec ) ) ; try { isExtended = isExtended . getUTCFullYear ( ) == - 109252 && 0 === isExtended . getUTCMonth ( ) && 1 === isExtended . getUTCDate ( ) && 10 == isExtended . getUTCHours ( ) && 37 == isExtended . getUTCMinutes ( ) && 6 == isExtended . getUTCSeconds ( ) && 708 == isExtended . getUTCMilliseconds ( ) } catch ( exception ) { } if ( ! has ( "json" ) ) { var functionClass = "[object Function]" , dateClass = "[object Date]" , numberClass = "[object Number]" , stringClass = "[object String]" , arrayClass = "[object Array]" , booleanClass = "[object Boolean]" , charIndexBuggy = has ( "bug-string-char-index" ) ; if ( ! isExtended ) var floor = Math . floor , Months = [ 0 , 31 , 59 , 90 , 120 , 151 , 181 , 212 , 243 , 273 , 304 , 334 ] , getDay = function ( year , month ) { return Months [ month ] + 365 * ( year - 1970 ) + floor ( ( year - 1969 + ( month = + ( month > 1 ) ) ) / 4 ) - floor ( ( year - 1901 + month ) / 100 ) + floor ( ( year - 1601 + month ) / 400 ) } ; if ( ( isProperty = objectProto . hasOwnProperty ) || ( isProperty = function ( property ) { var constructor , members = { } ; return ( members . _ _proto _ _ = null , members . _ _proto _ _ = { toString : 1 } , members ) . toString != getClass ? isProperty = function ( property ) { var original = this . _ _proto _ _ , result = property in ( this . _ _proto _ _ = null , this ) ; return this . _ _proto _ _ = original , result } : ( constructor = members . constructor , isProperty = function ( property ) { var parent = ( this . constructor || constructor ) . prototype ; return property in this && ! ( property in parent && this [ property ] === parent [ property ] ) } ) , members = null , isProperty . call ( this , property ) } ) , forEach = function ( object , callback ) { var Properties , members , property , size = 0 ; ( Properties = function ( ) { this . valueOf = 0 } ) . prototype . valueOf = 0 , members = new Properties ; for ( property in members ) isProperty . call ( members , property ) && size ++ ; return Properties = members = null , size ? forEach = 2 == size ? function ( object , callback ) { var property , members = { } , isFunction = getClass . call ( object ) == functionClass ; for ( property in object ) isFunction && "prototype" == property || isProperty . call ( members , property ) || ! ( members [ property ] = 1 ) || ! isProperty . call ( object , property ) || callback ( property ) } : function ( object , callback ) { var property , isConstructor , isFunction = getClass . call ( object ) == functionClass ; for ( property in object ) isFunction && "prototype" == property || ! isProperty . call ( object , property ) || ( isConstructor = "constructor" === property ) || callback ( property ) ; ( isConstructor || isProperty . call ( object , property = "constructor" ) ) && callback ( property ) } : ( members = [ "valueOf" , "toString" , "toLocaleString" , "propertyIsEnumerable" , "isPrototypeOf" , "hasOwnProperty" , "constructor" ] , forEach = function ( object , callback ) { var property , length , isFunction = getClass . call ( object ) == functionClass , hasProperty = ! isFunction && "function" != typeof object . constructor && objectTypes [ typeof object . hasOwnProperty ] && object . hasOwnProperty || isProperty ; for ( property in object ) isFunction && "prototype" == property || ! hasProperty . call ( object , property ) || callback ( property ) ; for ( length = members . length ; property = members [ -- length ] ; hasProperty . call ( object , property ) && callback ( property ) ) ; } ) , forEach ( object , callback ) } , ! has ( "json-stringify" ) ) { var Escapes = { 92 : "\\\\" , 34 : '\\"' , 8 : "\\b" , 12 : "\\f" , 10 : "\\n" , 13 : "\\r" , 9 : "\\t" } , leadingZeroes = "000000" , toPaddedString = function ( width , value ) { return ( leadingZeroes + ( value || 0 ) ) . slice ( - width ) } , unicodePrefix = "\\u00" , quote = function ( value ) { for ( var result = '"' , index = 0 , length = value . length , useCharIndex = ! charIndexBuggy || length > 10 , symbols = useCharIndex && ( charIndexBuggy ? value . split ( "" ) : value ) ; index < length ; index ++ ) { var charCode = value . charCodeAt ( index ) ; switch ( charCode ) { case 8 : case 9 : case 10 : case 12 : case 13 : case 34 : case 92 : result += Escapes [ charCode ] ; break ; default : if ( charCode < 32 ) { result += unicodePrefix + toPaddedString ( 2 , charCode . toString ( 16 ) ) ; break } result += useCharIndex ? symbols [ index ] : value . charAt ( index ) } } return result + '"' } , serialize = function ( property , object , callback , properties , whitespace , indentation , stack ) { var value , className , year , month , date , time , hours , minutes , seconds , milliseconds , results , element , index , length , prefix , result ; try { value = object [ property ] } catch ( exception ) { } if ( "object" == typeof value && value ) if ( className = getClass . call ( value ) , className != dateClass || isProperty . call ( value , "toJSON" ) ) "function" == typeof value . toJSON && ( className != numberClass && className != stringClass && className != arrayClass || isProperty . call ( value , "toJSON" ) ) && ( value = value . toJSON ( property ) ) ; else if ( value > - 1 / 0 && value < 1 / 0 ) { if ( getDay ) { for ( date = floor ( value / 864e5 ) , year = floor ( date / 365.2425 ) + 1970 - 1 ; getDay ( year + 1 , 0 ) <= date ; year ++ ) ; for ( month = floor ( ( date - getDay ( year , 0 ) ) / 30.42 ) ; getDay ( year , month + 1 ) <= date ; month ++ ) ; date = 1 + date - getDay ( year , month ) , time = ( value % 864e5 + 864e5 ) % 864e5 , hours = floor ( time / 36e5 ) % 24 , minutes = floor ( time / 6e4 ) % 60 , seconds = floor ( time / 1e3 ) % 60 , milliseconds = time % 1e3 } else year = value . getUTCFullYear ( ) , month = value . getUTCMonth ( ) , date = value . getUTCDate ( ) , hours = value . getUTCHours ( ) , minutes = value . getUTCMinutes ( ) , seconds = value . getUTCSeconds ( ) , milliseconds = value . getUTCMilliseconds ( ) ; value = ( year <= 0 || year >= 1e4 ? ( year < 0 ? "-" : "+" ) + toPaddedString ( 6 , year < 0 ? - Line truncated
this . on ( "heartbeat" , this . onHeartbeat ) ) } , Socket . prototype . onHeartbeat = function ( timeout ) { clearTimeout ( this . pingTimeoutTimer ) ; var self = this ; self . pingTimeoutTimer = setTimeout ( function ( ) { "closed" !== self . readyState && self . onClose ( "ping timeout" ) } , timeout || self . pingInterval + self . pingTimeout ) } , Socket . prototype . setPing = function ( ) { var self = this ; clearTimeout ( self . pingIntervalTimer ) , self . pingIntervalTimer = setTimeout ( function ( ) { debug ( "writing ping packet - expecting pong within %sms" , self . pingTimeout ) , self . ping ( ) , self . onHeartbeat ( self . pingTimeout ) } , self . pingInterval ) } , Socket . prototype . ping = function ( ) { var self = this ; this . sendPacket ( "ping" , function ( ) { self . emit ( "ping" ) } ) } , Socket . prototype . onDrain = function ( ) { this . writeBuffer . splice ( 0 , this . prevBufferLen ) , this . prevBufferLen = 0 , 0 === this . writeBuffer . length ? this . emit ( "drain" ) : this . flush ( ) } , Socket . prototype . flush = function ( ) { "closed" !== this . readyState && this . transport . writable && ! this . upgrading && this . writeBuffer . length && ( debug ( "flushing %d packets in socket" , this . writeBuffer . length ) , this . transport . send ( this . writeBuffer ) , this . prevBufferLen = this . writeBuffer . length , this . emit ( "flush" ) ) } , Socket . prototype . write = Socket . prototype . send = function ( msg , options , fn ) { return this . sendPacket ( "message" , msg , options , fn ) , this } , Socket . prototype . sendPacket = function ( type , data , options , fn ) { if ( "function" == typeof data && ( fn = data , data = void 0 ) , "function" == typeof options && ( fn = options , options = null ) , "closing" !== this . readyState && "closed" !== this . readyState ) { options = options || { } , options . compress = ! 1 !== options . compress ; var packet = { type : type , data : data , options : options } ; this . emit ( "packetCreate" , packet ) , this . writeBuffer . push ( packet ) , fn && this . once ( "flush" , fn ) , this . flush ( ) } } , Socket . prototype . close = function ( ) { function close ( ) { self . onClose ( "forced close" ) , debug ( "socket closing - telling transport to close" ) , self . transport . close ( ) } function cleanupAndClose ( ) { self . removeListener ( "upgrade" , cleanupAndClose ) , self . removeListener ( "upgradeError" , cleanupAndClose ) , close ( ) } function waitForUpgrade ( ) { self . once ( "upgrade" , cleanupAndClose ) , self . once ( "upgradeError" , cleanupAndClose ) } if ( "opening" === this . readyState || "open" === this . readyState ) { this . readyState = "closing" ; var self = this ; this . writeBuffer . length ? this . once ( "drain" , function ( ) { this . upgrading ? waitForUpgrade ( ) : close ( ) } ) : this . upgrading ? waitForUpgrade ( ) : close ( ) } return this } , Socket . prototype . onError = function ( err ) { debug ( "socket error %j" , err ) , Socket . priorWebsocketSuccess = ! 1 , this . emit ( "error" , err ) , this . onClose ( "transport error" , err ) } , Socket . prototype . onClose = function ( reason , desc ) { if ( "opening" === this . readyState || "open" === this . readyState || "closing" === this . readyState ) { debug ( 'socket close with reason: "%s"' , reason ) ; var self = this ; clearTimeout ( this . pingIntervalTimer ) , clearTimeout ( this . pingTimeoutTimer ) , this . transport . removeAllListeners ( "close" ) , this . transport . close ( ) , this . transport . removeAllListeners ( ) , this . readyState = "closed" , this . id = null , this . emit ( "close" , reason , desc ) , self . writeBuffer = [ ] , self . prevBufferLen = 0 } } , Socket . prototype . filterUpgrades = function ( upgrades ) { for ( var filteredUpgrades = [ ] , i = 0 , j = upgrades . length ; i < j ; i ++ ) ~ index ( this . transports , upgrades [ i ] ) && filteredUpgrades . push ( upgrades [ i ] ) ; return filteredUpgrades } } ) . call ( exports , function ( ) { return this } ( ) ) } , function ( module , exports , _ _webpack _require _ _ ) { ( function ( global ) { function polling ( opts ) { var xhr , xd = ! 1 , xs = ! 1 , jsonp = ! 1 !== opts . jsonp ; if ( global . location ) { var isSSL = "https:" === location . protocol , port = location . port ; port || ( port = isSSL ? 443 : 80 ) , xd = opts . hostname !== location . hostname || port !== opts . port , xs = opts . secure !== isSSL } if ( opts . xdomain = xd , opts . xscheme = xs , xhr = new XMLHttpRequest ( opts ) , "open" in xhr && ! opts . forceJSONP ) return new XHR ( opts ) ; if ( ! jsonp ) throw new Error ( "JSONP disabled" ) ; return new JSONP ( opts ) } var XMLHttpRequest = _ _webpack _require _ _ ( 22 ) , XHR = _ _webpack _require _ _ ( 24 ) , JSONP = _ _webpack _require _ _ ( 40 ) , websocket = _ _webpack _require _ _ ( 41 ) ; exports . polling = polling , exports . websocket = websocket } ) . call ( exports , function ( ) { return this } ( ) ) } , function ( module , exports , _ _webpack _require _ _ ) { ( function ( global ) { var hasCORS = _ _webpack _require _ _ ( 23 ) ; module . exports = function ( opts ) { var xdomain = opts . xdomain , xscheme = opts . xscheme , enablesXDR = opts . enablesXDR ; try { if ( "undefined" != typeof XMLHttpRequest && ( ! xdomain || hasCORS ) ) return new XMLHttpRequest } catch ( e ) { } try { if ( "undefined" != typeof XDomainRequest && ! xscheme && enablesXDR ) return new XDomainRequest } catch ( e ) { } if ( ! xdomain ) try { return new ( global [ [ "Active" ] . concat ( "Object" ) . join ( "X" ) ] ) ( "Microsoft.XMLHTTP" ) } catch ( e ) { } } } ) . call ( exports , function ( ) { return this } ( ) ) } , function ( module , exports ) { try { module . exports = "undefined" != typeof XMLHttpRequest && "withCredentials" in new XMLHttpRequest } catch ( err ) { module . exports = ! 1 } } , function ( module , exports , _ _webpack _require _ _ ) { ( function ( global ) { function empty ( ) { } function XHR ( opts ) { if ( Polling . call ( this , opts ) , this . requestTimeout = opts . requestTimeout , global . location ) { var isSSL = "https:" === location . protocol , port = location . port ; port || ( port = isSSL ? 443 : 80 ) , this . xd = opts . hostname !== global . location . hostname || port !== opts . port , this . xs = opts . secure !== isSSL } el Line truncated
} , Emitter . prototype . emit = function ( event ) { this . _callbacks = this . _callbacks || { } ; var args = [ ] . slice . call ( arguments , 1 ) , callbacks = this . _callbacks [ "$" + event ] ; if ( callbacks ) { callbacks = callbacks . slice ( 0 ) ; for ( var i = 0 , len = callbacks . length ; i < len ; ++ i ) callbacks [ i ] . apply ( this , args ) } return this } , Emitter . prototype . listeners = function ( event ) { return this . _callbacks = this . _callbacks || { } , this . _callbacks [ "$" + event ] || [ ] } , Emitter . prototype . hasListeners = function ( event ) { return ! ! this . listeners ( event ) . length } } , function ( module , exports ) { exports . encode = function ( obj ) { var str = "" ; for ( var i in obj ) obj . hasOwnProperty ( i ) && ( str . length && ( str += "&" ) , str += encodeURIComponent ( i ) + "=" + encodeURIComponent ( obj [ i ] ) ) ; return str } , exports . decode = function ( qs ) { for ( var qry = { } , pairs = qs . split ( "&" ) , i = 0 , l = pairs . length ; i < l ; i ++ ) { var pair = pairs [ i ] . split ( "=" ) ; qry [ decodeURIComponent ( pair [ 0 ] ) ] = decodeURIComponent ( pair [ 1 ] ) } return qry } } , function ( module , exports ) { module . exports = function ( a , b ) { var fn = function ( ) { } ; fn . prototype = b . prototype , a . prototype = new fn , a . prototype . constructor = a } } , function ( module , exports ) { "use strict" ; function encode ( num ) { var encoded = "" ; do encoded = alphabet [ num % length ] + encoded , num = Math . floor ( num / length ) ; while ( num > 0 ) ; return encoded } function decode ( str ) { var decoded = 0 ; for ( i = 0 ; i < str . length ; i ++ ) decoded = decoded * length + map [ str . charAt ( i ) ] ; return decoded } function yeast ( ) { var now = encode ( + new Date ) ; return now !== prev ? ( seed = 0 , prev = now ) : now + "." + encode ( seed ++ ) } for ( var prev , alphabet = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_" . split ( "" ) , length = 64 , map = { } , seed = 0 , i = 0 ; i < length ; i ++ ) map [ alphabet [ i ] ] = i ; yeast . encode = encode , yeast . decode = decode , module . exports = yeast } , function ( module , exports , _ _webpack _require _ _ ) { ( function ( global ) { function empty ( ) { } function JSONPPolling ( opts ) { Polling . call ( this , opts ) , this . query = this . query || { } , callbacks || ( global . _ _ _eio || ( global . _ _ _eio = [ ] ) , callbacks = global . _ _ _eio ) , this . index = callbacks . length ; var self = this ; callbacks . push ( function ( msg ) { self . onData ( msg ) } ) , this . query . j = this . index , global . document && global . addEventListener && global . addEventListener ( "beforeunload" , function ( ) { self . script && ( self . script . onerror = empty ) } , ! 1 ) } var Polling = _ _webpack _require _ _ ( 25 ) , inherit = _ _webpack _require _ _ ( 38 ) ; module . exports = JSONPPolling ; var callbacks , rNewline = /\n/g , rEscapedNewline = /\\n/g ; inherit ( JSONPPolling , Polling ) , JSONPPolling . prototype . supportsBinary = ! 1 , JSONPPolling . prototype . doClose = function ( ) { this . script && ( this . script . parentNode . removeChild ( this . script ) , this . script = null ) , this . form && ( this . form . parentNode . removeChild ( this . form ) , this . form = null , this . iframe = null ) , Polling . prototype . doClose . call ( this ) } , JSONPPolling . prototype . doPoll = function ( ) { var self = this , script = document . createElement ( "script" ) ; this . script && ( this . script . parentNode . removeChild ( this . script ) , this . script = null ) , script . async = ! 0 , script . src = this . uri ( ) , script . onerror = function ( e ) { self . onError ( "jsonp poll error" , e ) } ; var insertAt = document . getElementsByTagName ( "script" ) [ 0 ] ; insertAt ? insertAt . parentNode . insertBefore ( script , insertAt ) : ( document . head || document . body ) . appendChild ( script ) , this . script = script ; var isUAgecko = "undefined" != typeof navigator && /gecko/i . test ( navigator . userAgent ) ; isUAgecko && setTimeout ( function ( ) { var iframe = document . createElement ( "iframe" ) ; document . body . appendChild ( iframe ) , document . body . removeChild ( iframe ) } , 100 ) } , JSONPPolling . prototype . doWrite = function ( data , fn ) { function complete ( ) { initIframe ( ) , fn ( ) } function initIframe ( ) { if ( self . iframe ) try { self . form . removeChild ( self . iframe ) } catch ( e ) { self . onError ( "jsonp polling iframe removal error" , e ) } try { var html = '<iframe src="javascript:0" name="' + self . iframeId + '">' ; iframe = document . createElement ( html ) } catch ( e ) { iframe = document . createElement ( "iframe" ) , iframe . name = self . iframeId , iframe . src = "javascript:0" } iframe . id = self . iframeId , self . form . appendChild ( iframe ) , self . iframe = iframe } var self = this ; if ( ! this . form ) { var iframe , form = document . createElement ( "form" ) , area = document . createElement ( "textarea" ) , id = this . iframeId = "eio_iframe_" + this . index ; form . className = "socketio" , form . style . position = "absolute" , form . style . top = "-1000px" , form . style . left = "-1000px" , form . target = id , form . method = "POST" , form . setAttribute ( "accept-charset" , "utf-8" ) , area . name = "d" , form . appendChild ( area ) , document . body . appendChild ( form ) , this . form = form , this . area = area } this . form . action = this . uri ( ) , initIframe ( ) , data = data . replace ( rEscapedNewline , "\\\n" ) , this . area . value = data . replace ( rNewline , "\\n" ) ; try { this . form . submit ( ) } catch ( e ) { } this . iframe . attachEvent ? this . iframe . onreadystatechange = function ( ) { "complete" === self . iframe . readyState && complete ( ) } : this . iframe . onload = complete } } ) . call ( exports , function ( ) { return this } ( ) ) } , function ( module , exports , _ _webpack _require _ _ ) { ( function ( global ) { function WS ( opts ) { var forceBase64 = opts && opts . forceBase64 ; forceBase64 && ( this . supportsBinary = ! 1 ) , this . perMessageDeflate = opts . perMessageDeflate , this . usingBrowserWebSocket = BrowserWebSocket && ! opts . forceNode , this . usingBrowserWebSocket || ( WebSocket = NodeWebSocket ) , Transport . call ( this , opts ) } var NodeWebSocket , Transport = _ _webpack _require _ _ ( 26 ) , parser = _ _webpack _require _ _ ( 27 ) , p Line truncated
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 . nodeType || g ) if ( l = b [ u ] || ( b [ u ] = { } ) , k = l [ b . uniqueID ] || ( l [ b . uniqueID ] = { } ) , e && e === b . nodeName . toLowerCase ( ) ) b = b [ d ] || b ; else { if ( ( j = k [ f ] ) && j [ 0 ] === w && j [ 1 ] === h ) return m [ 2 ] = j [ 2 ] ; if ( k [ f ] = m , m [ 2 ] = a ( b , c , i ) ) return ! 0 } return ! 1 } } function ua ( a ) { return a . length > 1 ? function ( b , c , d ) { for ( var e = a . length ; e -- ; ) if ( ! a [ e ] ( b , c , d ) ) return ! 1 ; return ! 0 } : a [ 0 ] } function va ( a , b , c ) { for ( var d = 0 , e = b . length ; d < e ; d ++ ) ga ( a , b [ d ] , c ) ; return c } function wa ( a , b , c , d , e ) { for ( var f , g = [ ] , h = 0 , i = a . length , j = null != b ; h < i ; h ++ ) ( f = a [ h ] ) && ( c && ! c ( f , d , e ) || ( g . push ( f ) , j && b . push ( h ) ) ) ; return g } function xa ( a , b , c , d , e , f ) { return d && ! d [ u ] && ( d = xa ( d ) ) , e && ! e [ u ] && ( e = xa ( e , f ) ) , ia ( function ( f , g , h , i ) { var j , k , l , m = [ ] , n = [ ] , o = g . length , p = f || va ( b || "*" , h . nodeType ? [ h ] : h , [ ] ) , q = ! a || ! f && b ? p : wa ( p , m , a , h , i ) , r = c ? e || ( f ? a : o || d ) ? [ ] : g : q ; if ( c && c ( q , r , h , i ) , d ) for ( j = wa ( r , n ) , d ( j , [ ] , h , i ) , k = j . length ; k -- ; ) ( l = j [ k ] ) && ( r [ n [ k ] ] = ! ( q [ n [ k ] ] = l ) ) ; if ( f ) { if ( e || a ) { if ( e ) { for ( j = [ ] , k = r . length ; k -- ; ) ( l = r [ k ] ) && j . push ( q [ k ] = l ) ; e ( null , r = [ ] , j , i ) } for ( k = r . length ; k -- ; ) ( l = r [ k ] ) && ( j = e ? I ( f , l ) : m [ k ] ) > - 1 && ( f [ j ] = ! ( g [ j ] = l ) ) } } else r = wa ( r === g ? r . splice ( o , r . length ) : r ) , e ? e ( null , g , r , i ) : G . apply ( g , r ) } ) } function ya ( a ) { for ( var b , c , e , f = a . length , g = d . relative [ a [ 0 ] . type ] , h = g || d . relative [ " " ] , i = g ? 1 : 0 , k = ta ( function ( a ) { return a === b } , h , ! 0 ) , l = ta ( function ( a ) { return I ( b , a ) > - 1 } , h , ! 0 ) , m = [ function ( a , c , d ) { var e = ! g && ( d || c !== j ) || ( ( b = c ) . nodeType ? k ( a , c , d ) : l ( a , c , d ) ) ; return b = null , e } ] ; i < f ; i ++ ) if ( c = d . relative [ a [ i ] . type ] ) m = [ ta ( ua ( m ) , c ) ] ; else { if ( c = d . filter [ a [ i ] . type ] . apply ( null , a [ i ] . matches ) , c [ u ] ) { for ( e = ++ i ; e < f && ! d . relative [ a [ e ] . type ] ; e ++ ) ; return xa ( i > 1 && ua ( m ) , i > 1 && sa ( a . slice ( 0 , i - 1 ) . concat ( { value : " " === a [ i - 2 ] . type ? "*" : "" } ) ) . replace ( P , "$1" ) , c , i < e && ya ( a . slice ( i , e ) ) , e < f && ya ( a = a . slice ( e ) ) , e < f && sa ( a ) ) } m . push ( c ) } return ua ( m ) } function za ( a , b ) { var c = b . length > 0 , e = a . length > 0 , f = function ( f , g , h , i , k ) { var l , o , q , r = 0 , s = "0" , t = f && [ ] , u = [ ] , v = j , x = f || e && d . find . TAG ( "*" , k ) , y = w += null == v ? 1 : Math . random ( ) || . 1 , z = x . length ; for ( k && ( j = g === n || g || k ) ; s !== z && null != ( l = x [ s ] ) ; s ++ ) { if ( e && l ) { for ( o = 0 , g || l . ownerDocument === n || ( m ( l ) , h = ! p ) ; q = a [ o ++ ] ; ) if ( q ( l , g || n , h ) ) { i . push ( l ) ; break } k && ( w = y ) } c && ( ( l = ! q && l ) && r -- , f && t . push ( l ) ) } if ( r += s , c && s !== r ) { for ( o = 0 ; q = b [ o ++ ] ; ) q ( t , u , g , h ) ; if ( f ) { if ( r > 0 ) for ( ; s -- ; ) t [ s ] || u [ s ] || ( u [ s ] = E . call ( i ) ) ; u = wa ( u ) } G . apply ( i , u ) , k && ! f && u . length > 0 && r + b . length > 1 && ga . uniqueSort ( i ) } return k && ( w = y , j = v ) , t } ; return c ? ia ( f ) : f } var b , c , d , e , f , g , h , i , j , k , l , m , n , o , p , q , r , s , t , u = "sizzle" + 1 * new Date , v = a . document , w = 0 , x = 0 , y = ha ( ) , z = ha ( ) , A = ha ( ) , B = function ( a , b ) { return a === b && ( l = ! 0 ) , 0 } , C = { } . hasOwnProperty , D = [ ] , E = D . pop , F = D . push , G = D . push , H = D . slice , I = function ( a , b ) { for ( var c = 0 , d = a . length ; c < d ; c ++ ) if ( a [ c ] === b ) return c ; return - 1 } , J = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped" , K = "[\\x20\\t\\r\\n\\f]" , L = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+" , M = "\\[" + K + "*(" + L + ")(?:" + K + "*([*^$|!~]?=)" + K + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + L + "))|)" + K + "*\\]" , N = ":(" + L + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + M + ")*)|.*)\\)|)" , O = new RegExp ( K + "+" , "g" ) , P = new RegExp ( "^" + K + " + | ( ( ? : ^ | [ ^ \ \ \ \ ] ) ( ? : \ \ \ \ . Line truncated
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 . origType ] || { } ) . handle || g . handler ) . apply ( f . elem , i ) , void 0 !== e && ( b . result = e ) === ! 1 && ( b . preventDefault ( ) , b . stopPropagation ( ) ) ) ; return k . postDispatch && k . postDispatch . call ( this , b ) , b . result } } , handlers : function ( a , b ) { var c , d , e , f , g , h = [ ] , i = b . delegateCount , j = a . target ; if ( i && j . nodeType && ! ( "click" === a . type && a . button >= 1 ) ) for ( ; j !== this ; j = j . parentNode || this ) if ( 1 === j . nodeType && ( "click" !== a . type || j . disabled !== ! 0 ) ) { for ( f = [ ] , g = { } , c = 0 ; c < i ; c ++ ) d = b [ c ] , e = d . selector + " " , void 0 === g [ e ] && ( g [ e ] = d . needsContext ? r ( e , this ) . index ( j ) > - 1 : r . find ( e , this , null , [ j ] ) . length ) , g [ e ] && f . push ( d ) ; f . length && h . push ( { elem : j , handlers : f } ) } return j = this , i < b . length && h . push ( { elem : j , handlers : b . slice ( i ) } ) , h } , addProp : function ( a , b ) { Object . defineProperty ( r . Event . prototype , a , { enumerable : ! 0 , configurable : ! 0 , get : r . isFunction ( b ) ? function ( ) { if ( this . originalEvent ) return b ( this . originalEvent ) } : function ( ) { if ( this . originalEvent ) return this . originalEvent [ a ] } , set : function ( b ) { Object . defineProperty ( this , a , { enumerable : ! 0 , configurable : ! 0 , writable : ! 0 , value : b } ) } } ) } , fix : function ( a ) { return a [ r . expando ] ? a : new r . Event ( a ) } , special : { load : { noBubble : ! 0 } , focus : { trigger : function ( ) { if ( this !== wa ( ) && this . focus ) return this . focus ( ) , ! 1 } , delegateType : "focusin" } , blur : { trigger : function ( ) { if ( this === wa ( ) && this . blur ) return this . blur ( ) , ! 1 } , delegateType : "focusout" } , click : { trigger : function ( ) { if ( "checkbox" === this . type && this . click && r . nodeName ( this , "input" ) ) return this . click ( ) , ! 1 } , _default : function ( a ) { return r . nodeName ( a . target , "a" ) } } , beforeunload : { postDispatch : function ( a ) { void 0 !== a . result && a . originalEvent && ( a . originalEvent . returnValue = a . result ) } } } } , r . removeEvent = function ( a , b , c ) { a . removeEventListener && a . removeEventListener ( b , c ) } , r . Event = function ( a , b ) { return this instanceof r . Event ? ( a && a . type ? ( this . originalEvent = a , this . type = a . type , this . isDefaultPrevented = a . defaultPrevented || void 0 === a . defaultPrevented && a . returnValue === ! 1 ? ua : va , this . target = a . target && 3 === a . target . nodeType ? a . target . parentNode : a . target , this . currentTarget = a . currentTarget , this . relatedTarget = a . relatedTarget ) : this . type = a , b && r . extend ( this , b ) , this . timeStamp = a && a . timeStamp || r . now ( ) , void ( this [ r . expando ] = ! 0 ) ) : new r . Event ( a , b ) } , r . Event . prototype = { constructor : r . Event , isDefaultPrevented : va , isPropagationStopped : va , isImmediatePropagationStopped : va , isSimulated : ! 1 , preventDefault : function ( ) { var a = this . originalEvent ; this . isDefaultPrevented = ua , a && ! this . isSimulated && a . preventDefault ( ) } , stopPropagation : function ( ) { var a = this . originalEvent ; this . isPropagationStopped = ua , a && ! this . isSimulated && a . stopPropagation ( ) } , stopImmediatePropagation : function ( ) { var a = this . originalEvent ; this . isImmediatePropagationStopped = ua , a && ! this . isSimulated && a . stopImmediatePropagation ( ) , this . stopPropagation ( ) } } , r . each ( { altKey : ! 0 , bubbles : ! 0 , cancelable : ! 0 , changedTouches : ! 0 , ctrlKey : ! 0 , detail : ! 0 , eventPhase : ! 0 , metaKey : ! 0 , pageX : ! 0 , pageY : ! 0 , shiftKey : ! 0 , view : ! 0 , char : ! 0 , charCode : ! 0 , key : ! 0 , keyCode : ! 0 , button : ! 0 , buttons : ! 0 , clientX : ! 0 , clientY : ! 0 , offsetX : ! 0 , offsetY : ! 0 , pointerId : ! 0 , pointerType : ! 0 , screenX : ! 0 , screenY : ! 0 , targetTouches : ! 0 , toElement : ! 0 , touches Line truncated
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 = d . implementation . createHTMLDocument ( "" ) . body ; return a . innerHTML = "<form></form><form></form>" , 2 === a . childNodes . length } ( ) , r . parseHTML = function ( a , b , c ) { if ( "string" != typeof a ) return [ ] ; "boolean" == typeof b && ( c = b , b = ! 1 ) ; var e , f , g ; return b || ( o . createHTMLDocument ? ( b = d . implementation . createHTMLDocument ( "" ) , e = b . createElement ( "base" ) , e . href = d . location . href , b . head . appendChild ( e ) ) : b = d ) , f = B . exec ( a ) , g = ! c && [ ] , f ? [ b . createElement ( f [ 1 ] ) ] : ( f = pa ( [ a ] , b , g ) , g && g . length && r ( g ) . remove ( ) , r . merge ( [ ] , f . childNodes ) ) } , r . fn . load = function ( a , b , c ) { var d , e , f , g = this , h = a . indexOf ( " " ) ; return h > - 1 && ( d = mb ( a . slice ( h ) ) , a = a . slice ( 0 , h ) ) , r . isFunction ( b ) ? ( c = b , b = void 0 ) : b && "object" == typeof b && ( e = "POST" ) , g . length > 0 && r . ajax ( { url : a , type : e || "GET" , dataType : "html" , data : b } ) . done ( function ( a ) { f = arguments , g . html ( d ? r ( "<div>" ) . append ( r . parseHTML ( a ) ) . find ( d ) : a ) } ) . always ( c && function ( a , b ) { g . each ( function ( ) { c . apply ( this , f || [ a . responseText , b , a ] ) } ) } ) , this } , r . each ( [ "ajaxStart" , "ajaxStop" , "ajaxComplete" , "ajaxError" , "ajaxSuccess" , "ajaxSend" ] , function ( a , b ) { r . fn [ b ] = function ( a ) { return this . on ( b , a ) } } ) , r . expr . pseudos . animated = function ( a ) { return r . grep ( r . timers , function ( b ) { return a === b . elem } ) . length } , r . offset = { setOffset : function ( a , b , c ) { var d , e , f , g , h , i , j , k = r . css ( a , "position" ) , l = r ( a ) , m = { } ; "static" === k && ( a . style . position = "relative" ) , h = l . offset ( ) , f = r . css ( a , "top" ) , i = r . css ( a , "left" ) , j = ( "absolute" === k || "fixed" === k ) && ( f + i ) . indexOf ( "auto" ) > - 1 , j ? ( d = l . position ( ) , g = d . top , e = d . left ) : ( g = parseFloat ( f ) || 0 , e = parseFloat ( i ) || 0 ) , r . isFunction ( b ) && ( b = b . call ( a , c , r . extend ( { } , h ) ) ) , null != b . top && ( m . top = b . top - h . top + g ) , null != b . left && ( m . left = b . left - h . left + e ) , "using" in b ? b . using . call ( a , m ) : l . css ( m ) } } , r . fn . extend ( { offset : function ( a ) { if ( arguments . length ) return void 0 === a ? this : this . each ( function ( b ) { r . offset . setOffset ( this , a , b ) } ) ; var b , c , d , e , f = this [ 0 ] ; return f ? f . getClientRects ( ) . length ? ( d = f . getBoundingClientRect ( ) , d . width || d . height ? ( e = f . ownerDocument , c = Sb ( e ) , b = e . documentElement , { top : d . top + c . pageYOffset - b . clientTop , left : d . left + c . pageXOffset - b . clientLeft } ) : d ) : { top : 0 , left : 0 } : void 0 } , position : function ( ) { if ( this [ 0 ] ) { var a , b , c = this [ 0 ] , d = { top : 0 , left : 0 } ; return "fixed" === r . css ( c , "position" ) ? b = c . getBoundingClientRect ( ) : ( a = this . offsetParent ( ) , b = this . offset ( ) , r . nodeName ( a [ 0 ] , "html" ) || ( d = a . offset ( ) ) , d = { top : d . top + r . css ( a [ 0 ] , "borderTopWidth" , ! 0 ) , left : d . left + r . css ( a [ 0 ] , "borderLeftWidth" , ! 0 ) } ) , { top : b . top - d . top - r . css ( c , "marginTop" , ! 0 ) , left : b . left - d . left - r . css ( c , "marginLeft" , ! 0 ) } } } , offsetParent : function ( ) { return this . map ( function ( ) { for ( var a = this . offsetParent ; a && "static" === r . css ( a , "position" ) ; ) a = a . offsetParent ; return a || qa } ) } } ) , r . each ( { scrollLeft : "pageXOffset" , scrollTop : "pageYOffset" } , function ( a , b ) { var c = "pageYOffset" === b ; r . fn [ a ] = function ( d ) { return S ( this , function ( a , d , e ) { var f = Sb ( a ) ; return void 0 === e ? f ? f [ b ] : a [ d ] : void ( f ? f . scrollTo ( c ? f . pageXOffset : e , c ? e : f . pageYOffset ) : a [ d ] = e ) } , a , d , arguments . length ) } } ) , r . each ( [ "top" , "left" ] , function ( a , b ) { r . cssHooks [ b ] = Oa ( o . pixelPosition , function ( a , c ) { if ( c ) return c = Na ( a , b ) , La . test ( c ) ? r ( a ) . position ( ) [ b ] + "px" : c } ) } ) , r . each ( { Height : "height" , Width : "width" } , function ( a , b ) { r . each ( { padding : "inner" + a , content : b , "" : "outer" + a } , func Line truncated
bt ( n , "componentUpdated" , t , e ) } ) } , "dir-postpatch" ) , ! o ) for ( n in a ) s [ n ] || bt ( a [ n ] , "unbind" , e ) } } function yt ( 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 = co ) , n [ _t ( i ) ] = i , i . def = P ( t . $options , "directives" , i . name , ! 0 ) ; return n } function _t ( e ) { return e . rawName || e . name + "." + Object . keys ( e . modifiers || { } ) . join ( "." ) } function bt ( e , t , n , r ) { var i = e . def && e . def [ t ] ; i && i ( n . elm , e , n , r ) } function $t ( e , t ) { if ( e . data . attrs || t . data . attrs ) { var n , r , i , o = t . elm , a = e . data . attrs || { } , s = t . data . attrs || { } ; s . _ _ob _ _ && ( s = t . data . attrs = l ( { } , s ) ) ; for ( n in s ) r = s [ n ] , i = a [ n ] , i !== r && wt ( o , n , r ) ; for ( n in a ) null == s [ n ] && ( Ji ( n ) ? o . removeAttributeNS ( zi , Ki ( n ) ) : Hi ( n ) || o . removeAttribute ( n ) ) } } function wt ( e , t , n ) { Vi ( t ) ? qi ( n ) ? e . removeAttribute ( t ) : e . setAttribute ( t , t ) : Hi ( t ) ? e . setAttribute ( t , qi ( n ) || "false" === n ? "false" : "true" ) : Ji ( t ) ? qi ( n ) ? e . removeAttributeNS ( zi , Ki ( t ) ) : e . setAttributeNS ( zi , t , n ) : qi ( n ) ? e . removeAttribute ( t ) : e . setAttribute ( t , n ) } function xt ( e , t ) { var n = t . elm , r = t . data , i = e . data ; if ( r . staticClass || r . class || i && ( i . staticClass || i . class ) ) { var o = ze ( t ) , a = n . _transitionClasses ; a && ( o = qe ( o , We ( a ) ) ) , o !== n . _prevClass && ( n . setAttribute ( "class" , o ) , n . _prevClass = o ) } } function Ct ( e , t ) { if ( e . data . on || t . data . on ) { var n = t . data . on || { } , r = e . data . on || { } , i = t . elm . _v _add || ( t . elm . _v _add = function ( e , n , r ) { t . elm . addEventListener ( e , n , r ) } ) , o = t . elm . _v _remove || ( t . elm . _v _remove = function ( e , n ) { t . elm . removeEventListener ( e , n ) } ) ; oe ( n , r , i , o , t . context ) } } function kt ( e , t ) { if ( e . data . domProps || t . data . domProps ) { var n , r , i = t . elm , o = e . data . domProps || { } , a = t . data . domProps || { } ; a . _ _ob _ _ && ( a = t . data . domProps = l ( { } , a ) ) ; for ( n in o ) null == a [ n ] && ( i [ n ] = "" ) ; for ( n in a ) if ( r = a [ n ] , "textContent" !== n && "innerHTML" !== n || ( t . children && ( t . children . length = 0 ) , r !== o [ n ] ) ) if ( "value" === n ) { i . _value = r ; var s = null == r ? "" : String ( r ) ; i . value === s || i . composing || ( i . value = s ) } else i [ n ] = r } } function At ( e ) { var t = Ot ( e . style ) ; return e . staticStyle ? l ( e . staticStyle , t ) : t } function Ot ( e ) { return Array . isArray ( e ) ? d ( e ) : "string" == typeof e ? ho ( e ) : e } function St ( e , t ) { var n , r = { } ; if ( t ) for ( var i = e ; i . child ; ) i = i . child . _vnode , i . data && ( n = At ( i . data ) ) && l ( r , n ) ; ( n = At ( e . data ) ) && l ( r , n ) ; for ( var o = e ; o = o . parent ; ) o . data && ( n = At ( o . data ) ) && l ( r , n ) ; return r } function Tt ( e , t ) { var n = t . data , r = e . data ; if ( n . staticStyle || n . style || r . staticStyle || r . style ) { var i , o , a = t . elm , s = e . data . staticStyle , c = e . data . style || { } , u = s || c , f = Ot ( t . data . style ) || { } ; t . data . style = f . _ _ob _ _ ? l ( { } , f ) : f ; var d = St ( t , ! 0 ) ; for ( o in u ) null == d [ o ] && go ( a , o , "" ) ; for ( o in d ) i = d [ o ] , i !== u [ o ] && go ( a , o , null == i ? "" : i ) } } function jt ( e , t ) { if ( t && t . trim ( ) ) if ( e . classList ) t . indexOf ( " " ) > - 1 ? t . split ( /\s+/ ) . forEach ( function ( t ) { return e . classList . add ( t ) } ) : e . classList . add ( t ) ; else { var n = " " + e . getAttribute ( "class" ) + " " ; n . indexOf ( " " + t + " " ) < 0 && e . setAttribute ( "class" , ( n + t ) . trim ( ) ) } } function Et ( e , t ) { if ( t && t . trim ( ) ) if ( e . classList ) t . indexOf ( " " ) > - 1 ? t . split ( /\s+/ ) . forEach ( function ( t ) { return e . classList . remove ( t ) } ) : e . classList . remove ( t ) ; else { for ( var n = " " + e . getAttribute ( "class" ) + " " , r = " " + t + " " ; n . indexOf ( r ) >= 0 ; ) n = n . replace ( r , " " ) ; e . setAttribute ( "class" , n . trim ( ) ) } } function Nt ( e ) { So ( function ( ) { So ( e ) } ) } function Lt ( e , t ) { ( e . _transitionClasses || ( e . _transitionClasses = [ ] ) ) . push ( t ) , jt ( e , t ) } function Dt ( e , t ) { e . _transitionClasses && r ( e . _transitionClasses , t ) , Et ( e , t ) } function Mt ( e , t , n ) { var r = Pt ( e , t ) , i = r . type , o = r . timeout , a = r . propCount ; if ( ! i ) return n ( ) ; var s = i === wo ? ko : Oo , c = 0 , l = function ( ) { e . removeEventListener ( s , u ) , n ( ) } , u = function ( t ) { t . target === e && ++ c >= a && l ( ) } ; setTimeout ( function ( ) { c < a && l ( ) } , o + 1 ) , e . addEventListener ( s , u ) } function Pt ( e , t ) { var n , r = window . getComputedStyle ( e ) , i = r [ Co + "Delay" ] . split ( ", " ) , o = r [ Co + "Duration" ] . split ( ", " ) , a = Rt ( i , o ) , s = r [ Ao + "Delay" ] . split ( ", " ) , c = r [ Ao + "Duration" ] . split ( ", " ) , l = Rt ( s , c ) , u = 0 , f = 0 ; t === wo ? a > 0 && ( n = wo , u = a , f = o . length ) : t === xo ? l > 0 && ( n = xo , u = l , f = c . length ) : ( u = Math . max ( a , l ) , n = u > 0 ? a > l ? wo : xo : null , f = n ? n === wo ? o . length : c . length : 0 ) ; var d = n === wo && To . test ( r [ Co + "Property" ] ) ; return { type : n , timeout : u , propCount : f , hasTransform : d } } function Rt ( e , t ) { for ( ; e . length < t . length ; ) e = e . concat ( e ) ; return Math . max . apply ( null , t . map ( function ( t , n ) { return It ( t ) + It ( e [ n ] ) } ) ) } function It ( e ) { return 1e3 * Number ( e . slice ( 0 , - 1 ) ) } function Ft ( e ) { var t = e . elm ; t . _leaveCb && ( t . _leaveCb . cancelled = ! 0 , t . _leaveCb ( ) ) ; var n = Ut ( e . data . transition ) ; if ( n && ! t . _enterCb && 1 === t . nodeType ) { var r = n . css , i = n . type , o = n . enterClass , a = n . enterActiveClass , s = n . appearClass , c = n . appearActiveClass , l = n . beforeEnter , u = n . enter , f = n . afterEnter , d = n . enterCancelled , p = n . beforeAppear , v = n . appear , h = n . afterAppear , m = n . appearCancelled , g = Li . $vnode , y = g && g . parent ? g . parent . context : Li , _ = ! y . _isMounted || ! e . isRootInsert ; if ( ! _ || v || "" === v ) { var b = _ ? s : o , $ = _ ? c : a , w = _ ? p || l : l , x = _ && "function" == typeof v ? v : u , C = _ ? h || f : f , k = _ ? m || d : d , A = r !== ! 1 && ! ti , O = x && ( x . _length || x . length ) > 1 , S = t . _enterCb = Ht ( function ( ) { A && Dt ( t , $ ) , S . cancelled ? ( A && Dt ( t , b ) , k && k ( t ) ) : C && C ( t ) , t . _enterCb = null } ) ; e . data . show || ie ( e . data . hook || ( e . data . hook = { } ) , "insert" , function ( ) { var n = t . parentNode , r = n && n . _pending && n . _pending [ e . key ] ; r && r . tag === e . tag && r . elm . _leaveCb && r . elm . _leaveCb ( ) , x && x ( t , S ) } , "transition-insert" ) , w && w ( t ) , A && ( Lt ( t , b ) , Lt ( t , $ ) , Nt ( function ( ) { Dt ( t , b ) , S . cancelled || O || Mt ( t , i , S ) } ) ) Line truncated
var r = null == e . key ? t . Ctor . cid + ( t . tag ? "::" + t . tag : "" ) : e . key ; this . cache [ r ] ? e . child = this . cache [ r ] . child : this . cache [ r ] = e , e . data . keepAlive = ! 0 } return e } , destroyed : function ( ) { var e = this ; for ( var t in this . cache ) { var n = e . cache [ t ] ; ve ( n . child , "deactivated" ) , n . child . $destroy ( ) } } } , Fi = { KeepAlive : Ii } ; Ve ( Re ) , Object . defineProperty ( Re . prototype , "$isServer" , { get : oi } ) , Re . version = "2.1.0" ; var Bi , Ui = function ( e , t ) { return "value" === t && ( "input" === e || "textarea" === e || "option" === e ) || "selected" === t && "option" === e || "checked" === t && "input" === e || "muted" === t && "video" === e } , Hi = n ( "contenteditable,draggable,spellcheck" ) , Vi = n ( "allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible" ) , zi = "http://www.w3.org/1999/xlink" , Ji = function ( e ) { return ":" === e . charAt ( 5 ) && "xlink" === e . slice ( 0 , 5 ) } , Ki = function ( e ) { return Ji ( e ) ? e . slice ( 6 , e . length ) : "" } , qi = function ( e ) { return null == e || e === ! 1 } , Wi = { svg : "http://www.w3.org/2000/svg" , math : "http://www.w3.org/1998/Math/MathML" , xhtml : "http://www.w3.org/1999/xhtml" } , Zi = n ( "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,menuitem,summary,content,element,shadow,template" ) , Gi = n ( "area,base,br,col,embed,frame,hr,img,input,isindex,keygen,link,meta,param,source,track,wbr" , ! 0 ) , Yi = n ( "colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source" , ! 0 ) , Qi = n ( "address,article,aside,base,blockquote,body,caption,col,colgroup,dd,details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,title,tr,track" , ! 0 ) , Xi = n ( "svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font,font-face,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view" , ! 0 ) , eo = function ( e ) { return "pre" === e } , to = function ( e ) { return Zi ( e ) || Xi ( e ) } , no = Object . create ( null ) , ro = Object . freeze ( { createElement : Qe , createElementNS : Xe , createTextNode : et , createComment : tt , insertBefore : nt , removeChild : rt , appendChild : it , parentNode : ot , nextSibling : at , tagName : st , setTextContent : ct , childNodes : lt , setAttribute : ut } ) , io = { create : function ( e , t ) { ft ( t ) } , update : function ( e , t ) { e . data . ref !== t . data . ref && ( ft ( e , ! 0 ) , ft ( t ) ) } , destroy : function ( e ) { ft ( e , ! 0 ) } } , oo = new Ei ( "" , { } , [ ] ) , ao = [ "create" , "update" , "remove" , "destroy" ] , so = { create : gt , update : gt , destroy : function ( e ) { gt ( e , oo ) } } , co = Object . create ( null ) , lo = [ io , so ] , uo = { create : $t , update : $t } , fo = { create : xt , update : xt } , po = { create : Ct , update : Ct } , vo = { create : kt , update : kt } , ho = a ( function ( e ) { var t = { } , n = e . indexOf ( "background" ) >= 0 , r = n ? /;(?![^(]*\))/g : ";" , i = n ? /:(.+)/ : ":" ; return e . split ( r ) . forEach ( function ( e ) { if ( e ) { var n = e . split ( i ) ; n . length > 1 && ( t [ n [ 0 ] . trim ( ) ] = n [ 1 ] . trim ( ) ) } } ) , t } ) , mo = /^--/ , go = function ( e , t , n ) { mo . test ( t ) ? e . style . setProperty ( t , n ) : e . style [ _o ( t ) ] = n } , yo = [ "Webkit" , "Moz" , "ms" ] , _o = a ( function ( e ) { if ( Bi = Bi || document . createElement ( "div" ) , e = Vr ( e ) , "filter" !== e && e in Bi . style ) return e ; for ( var t = e . charAt ( 0 ) . toUpperCase ( ) + e . slice ( 1 ) , n = 0 ; n < yo . length ; n ++ ) { var r = yo [ n ] + t ; if ( r in Bi . style ) return r } } ) , bo = { create : Tt , update : Tt } , $o = Qr && ! ti , wo = "transition" , xo = "animation" , Co = "transition" , ko = "transitionend" , Ao = "animation" , Oo = "animationend" ; $o && ( void 0 === window . ontransitionend && void 0 !== window . onwebkittransitionend && ( Co = "WebkitTransition" , ko = "webkitTransitionEnd" ) , void 0 === window . onanimationend && void 0 !== window . onwebkitanimationend && ( Ao = "WebkitAnimation" , Oo = "webkitAnimationEnd" ) ) ; var So = Qr && window . requestAnimationFrame || setTimeout , To = /\b(transform|all)(,|$)/ , jo = a ( function ( e ) { return { enterClass : e + "-enter" , leaveClass : e + "-leave" , appearClass : e + "-enter" , enterActiveClass : e + "-enter-active" , leaveActiveClass : e + "-leave-active" , appearActiveClass : e + "-enter-active" } } ) , Eo = Qr ? { create : function ( e , t ) { t . data . show || Ft ( t ) } , remove : function ( e , t ) { e . data . show ? t ( ) : Bt ( e , t ) } } : { } , No = [ uo , fo , po , vo , bo , Eo ] , Lo = No . concat ( lo ) , Do = mt ( { nodeOps : ro , modules : Lo } ) ; ti && document . addEventListener ( "selectionchange" , function ( ) { var e = document . activeElement ; e && e . vmodel && Wt ( e , "input" ) } ) ; var Mo = { inserted : function ( e , t , n ) { if ( "select" === n . tag ) { var r = function ( ) { Vt ( e , t , n . context ) } ; r ( ) , ( ei || ni ) && setTimeout ( r , 0 ) } else "textarea" !== n . tag && "text" !== e . type || t . modifiers . lazy || ( ri || ( e . addEventListener ( "compositionstart" , Kt ) , e . addEventListener ( "compositionend" , qt ) ) , t Line truncated
if ( e ( "#context-menu-layer" ) . trigger ( "mousedown" ) , t . $trigger = s , t . events . show . call ( s , t ) === ! 1 ) return void ( o = null ) ; if ( h . update . call ( s , t ) , t . position . call ( s , t , n , a ) , t . zIndex ) { var c = t . zIndex ; "function" == typeof t . zIndex && ( c = t . zIndex . call ( s , t ) ) , i . zIndex = p ( s ) + c } h . layer . call ( t . $menu , t , i . zIndex ) , t . $menu . find ( "ul" ) . css ( "zIndex" , i . zIndex + 1 ) , t . $menu . css ( i ) [ t . animation . show ] ( t . animation . duration , function ( ) { s . trigger ( "contextmenu:visible" ) } ) , s . data ( "contextMenu" , t ) . addClass ( "context-menu-active" ) , e ( document ) . off ( "keydown.contextMenu" ) . on ( "keydown.contextMenu" , f . key ) , t . autoHide && e ( document ) . on ( "mousemove.contextMenuAutoHide" , function ( e ) { var n = s . offset ( ) ; n . right = n . left + s . outerWidth ( ) , n . bottom = n . top + s . outerHeight ( ) , ! t . $layer || t . hovering || e . pageX >= n . left && e . pageX <= n . right && e . pageY >= n . top && e . pageY <= n . bottom || setTimeout ( function ( ) { t . hovering || null == t . $menu || t . $menu . trigger ( "contextmenu:hide" ) } , 50 ) } ) } , hide : function ( t , n ) { var a = e ( this ) ; if ( t || ( t = a . data ( "contextMenu" ) || { } ) , n || ! t . events || t . events . hide . call ( a , t ) !== ! 1 ) { if ( a . removeData ( "contextMenu" ) . removeClass ( "context-menu-active" ) , t . $layer ) { setTimeout ( function ( e ) { return function ( ) { e . remove ( ) } } ( t . $layer ) , 10 ) ; try { delete t . $layer } catch ( e ) { t . $layer = null } } o = null , t . $menu . find ( "." + t . classNames . hover ) . trigger ( "contextmenu:blur" ) , t . $selected = null , t . $menu . find ( "." + t . classNames . visible ) . removeClass ( t . classNames . visible ) , e ( document ) . off ( ".contextMenuAutoHide" ) . off ( "keydown.contextMenu" ) , t . $menu && t . $menu [ t . animation . hide ] ( t . animation . duration , function ( ) { t . build && ( t . $menu . remove ( ) , e . each ( t , function ( e ) { switch ( e ) { case "ns" : case "selector" : case "build" : case "trigger" : return ! 0 ; default : t [ e ] = void 0 ; try { delete t [ e ] } catch ( e ) { } return ! 0 } } ) ) , setTimeout ( function ( ) { a . trigger ( "contextmenu:hidden" ) } , 10 ) } ) } } , create : function ( n , a ) { function o ( t ) { var n = e ( "<span></span>" ) ; if ( t . _accesskey ) t . _beforeAccesskey && n . append ( document . createTextNode ( t . _beforeAccesskey ) ) , e ( "<span></span>" ) . addClass ( "context-menu-accesskey" ) . text ( t . _accesskey ) . appendTo ( n ) , t . _afterAccesskey && n . append ( document . createTextNode ( t . _afterAccesskey ) ) ; else if ( t . isHtmlName ) { if ( "undefined" != typeof t . accesskey ) throw new Error ( "accesskeys are not compatible with HTML names and cannot be used together in the same item" ) ; n . html ( t . name ) } else n . text ( t . name ) ; return n } void 0 === a && ( a = n ) , n . $menu = e ( '<ul class="context-menu-list"></ul>' ) . addClass ( n . className || "" ) . data ( { contextMenu : n , contextMenuRoot : a } ) , e . each ( [ "callbacks" , "commands" , "inputs" ] , function ( e , t ) { n [ t ] = { } , a [ t ] || ( a [ t ] = { } ) } ) , a . accesskeys || ( a . accesskeys = { } ) , e . each ( n . items , function ( s , i ) { var c = e ( '<li class="context-menu-item"></li>' ) . addClass ( i . className || "" ) , r = null , l = null ; if ( c . on ( "click" , e . noop ) , "string" != typeof i && "cm_separator" !== i . type || ( i = { type : "cm_seperator" } ) , i . $node = c . data ( { contextMenu : n , contextMenuRoot : a , contextMenuKey : s } ) , "undefined" != typeof i . accesskey ) for ( var d , m = t ( i . accesskey ) , p = 0 ; d = m [ p ] ; p ++ ) if ( ! a . accesskeys [ d ] ) { a . accesskeys [ d ] = i ; var x = i . name . match ( new RegExp ( "^(.*?)(" + d + ")(.*)$" , "i" ) ) ; x && ( i . _beforeAccesskey = x [ 1 ] , i . _accesskey = x [ 2 ] , i . _afterAccesskey = x [ 3 ] ) ; break } if ( i . type && u [ i . type ] ) u [ i . type ] . call ( c , i , n , a ) , e . each ( [ n , a ] , function ( t , a ) { a . commands [ s ] = i , ! e . isFunction ( i . callback ) || void 0 !== a . callbacks [ s ] && void 0 !== n . type || ( a . callbacks [ s ] = i . callback ) } ) ; else { switch ( "cm_seperator" === i . type ? c . addClass ( "context-menu-separator " + a . classNames . notSelectable ) : "html" === i . type ? c . addClass ( "context-menu-html " + a . classNames . notSelectable ) : "sub" === i . type || ( i . type ? ( r = e ( "<label></label>" ) . appendTo ( c ) , o ( i ) . appendTo ( r ) , c . addClass ( "context-menu-input" ) , n . hasTypes = ! 0 , e . each ( [ n , a ] , function ( e , t ) { t . commands [ s ] = i , t . inputs [ s ] = i } ) ) : i . items && ( i . type = "sub" ) ) , i . type ) { case "cm_seperator" : break ; case "text" : l = e ( '<input type="text" value="1" name="" />' ) . attr ( "name" , "context-menu-input-" + s ) . val ( i . value || "" ) . appendTo ( r ) ; break ; case "textarea" : l = e ( '<textarea name=""></textarea>' ) . attr ( "name" , "context-menu-input-" + s ) . val ( i . value || "" ) . appendTo ( r ) , i . height && l . height ( i . height ) ; break ; case "checkbox" : l = e ( '<input type="checkbox" value="1" name="" />' ) . attr ( "name" , "context-menu-input-" + s ) . val ( i . value || "" ) . prop ( "checked" , ! ! i . selected ) . prependTo ( r ) ; break ; case "radio" : l = e ( '<input type="radio" value="1" name="" />' ) . attr ( "name" , "context-menu-input-" + i . radio ) . val ( i . value || "" ) . prop ( "checked" , ! ! i . selected ) . prependTo ( r ) ; break ; case "select" : l = e ( '<select name=""></select>' ) . attr ( "name" , "context-menu-input-" + s ) . appendTo ( r ) , i . options && ( e . each ( i . options , function ( t , n ) { e ( "<option></option>" ) . val ( t ) . text ( n ) . appendTo ( l ) } ) , l . val ( i . selected ) ) ; break ; case "sub" : o ( i ) . appendTo ( c ) , i . appendTo = i . $node , c . data ( "contextMenu" , i ) . addClass ( "context-menu-submenu" ) , i . callback = null , "function" == typeof i . items . then ? h . processPromises ( i , a , i . items ) : h . create ( i , a ) ; break ; case "html" : e ( i . html ) . appendTo ( c ) ; break ; default : e . each ( [ n , a ] , function ( t , a ) { a . commands [ s ] = i , ! e . isFunction ( i . callback ) || void 0 !== a . callbacks [ s ] && void 0 !== n . type || ( a . callbacks [ s ] = i . callback ) } ) , o ( i ) . appendTo ( c ) } i . type && "sub" !== i . type && "html" !== i . type && "cm_seperator" !== i . type && ( l . on ( "focus" , f . focusInput ) . on ( "blur" , f . blurInput ) , i . events && l . on ( i . eve Line truncated
0 > e ? ( e += n , 0 > e && ( e = 0 ) ) : e > n && ( e = n ) , 0 > t ? ( t += n , 0 > t && ( t = 0 ) ) : t > n && ( t = n ) , e > t && ( t = e ) ; var r ; if ( a . TYPED _ARRAY _SUPPORT ) r = this . subarray ( e , t ) , r . _ _proto _ _ = a . prototype ; else { var i = t - e ; r = new a ( i , ( void 0 ) ) ; for ( var o = 0 ; i > o ; o ++ ) r [ o ] = this [ o + e ] } return r } , a . prototype . readUIntLE = function ( e , t , n ) { e = 0 | e , t = 0 | t , n || R ( e , t , this . length ) ; for ( var r = this [ e ] , i = 1 , o = 0 ; ++ o < t && ( i *= 256 ) ; ) r += this [ e + o ] * i ; return r } , a . prototype . readUIntBE = function ( e , t , n ) { e = 0 | e , t = 0 | t , n || R ( e , t , this . length ) ; for ( var r = this [ e + -- t ] , i = 1 ; t > 0 && ( i *= 256 ) ; ) r += this [ e + -- t ] * i ; return r } , a . prototype . readUInt8 = function ( e , t ) { return t || R ( e , 1 , this . length ) , this [ e ] } , a . prototype . readUInt16LE = function ( e , t ) { return t || R ( e , 2 , this . length ) , this [ e ] | this [ e + 1 ] << 8 } , a . prototype . readUInt16BE = function ( e , t ) { return t || R ( e , 2 , this . length ) , this [ e ] << 8 | this [ e + 1 ] } , a . prototype . readUInt32LE = function ( e , t ) { return t || R ( e , 4 , this . length ) , ( this [ e ] | this [ e + 1 ] << 8 | this [ e + 2 ] << 16 ) + 16777216 * this [ e + 3 ] } , a . prototype . readUInt32BE = function ( e , t ) { return t || R ( e , 4 , this . length ) , 16777216 * this [ e ] + ( this [ e + 1 ] << 16 | this [ e + 2 ] << 8 | this [ e + 3 ] ) } , a . prototype . readIntLE = function ( e , t , n ) { e = 0 | e , t = 0 | t , n || R ( e , t , this . length ) ; for ( var r = this [ e ] , i = 1 , o = 0 ; ++ o < t && ( i *= 256 ) ; ) r += this [ e + o ] * i ; return i *= 128 , r >= i && ( r -= Math . pow ( 2 , 8 * t ) ) , r } , a . prototype . readIntBE = function ( e , t , n ) { e = 0 | e , t = 0 | t , n || R ( e , t , this . length ) ; for ( var r = t , i = 1 , o = this [ e + -- r ] ; r > 0 && ( i *= 256 ) ; ) o += this [ e + -- r ] * i ; return i *= 128 , o >= i && ( o -= Math . pow ( 2 , 8 * t ) ) , o } , a . prototype . readInt8 = function ( e , t ) { return t || R ( e , 1 , this . length ) , 128 & this [ e ] ? - 1 * ( 255 - this [ e ] + 1 ) : this [ e ] } , a . prototype . readInt16LE = function ( e , t ) { t || R ( e , 2 , this . length ) ; var n = this [ e ] | this [ e + 1 ] << 8 ; return 32768 & n ? 4294901760 | n : n } , a . prototype . readInt16BE = function ( e , t ) { t || R ( e , 2 , this . length ) ; var n = this [ e + 1 ] | this [ e ] << 8 ; return 32768 & n ? 4294901760 | n : n } , a . prototype . readInt32LE = function ( e , t ) { return t || R ( e , 4 , this . length ) , this [ e ] | this [ e + 1 ] << 8 | this [ e + 2 ] << 16 | this [ e + 3 ] << 24 } , a . prototype . readInt32BE = function ( e , t ) { return t || R ( e , 4 , this . length ) , this [ e ] << 24 | this [ e + 1 ] << 16 | this [ e + 2 ] << 8 | this [ e + 3 ] } , a . prototype . readFloatLE = function ( e , t ) { return t || R ( e , 4 , this . length ) , Z . read ( this , e , ! 0 , 23 , 4 ) } , a . prototype . readFloatBE = function ( e , t ) { return t || R ( e , 4 , this . length ) , Z . read ( this , e , ! 1 , 23 , 4 ) } , a . prototype . readDoubleLE = function ( e , t ) { return t || R ( e , 8 , this . length ) , Z . read ( this , e , ! 0 , 52 , 8 ) } , a . prototype . readDoubleBE = function ( e , t ) { return t || R ( e , 8 , this . length ) , Z . read ( this , e , ! 1 , 52 , 8 ) } , a . prototype . writeUIntLE = function ( e , t , n , r ) { if ( e = + e , t = 0 | t , n = 0 | n , ! r ) { var i = Math . pow ( 2 , 8 * n ) - 1 ; D ( this , e , t , n , i , 0 ) } var o = 1 , a = 0 ; for ( this [ t ] = 255 & e ; ++ a < n && ( o *= 256 ) ; ) this [ t + a ] = e / o & 255 ; return t + n } , a . prototype . writeUIntBE = function ( e , t , n , r ) { if ( e = + e , t = 0 | t , n = 0 | n , ! r ) { var i = Math . pow ( 2 , 8 * n ) - 1 ; D ( this , e , t , n , i , 0 ) } var o = n - 1 , a = 1 ; for ( this [ t + o ] = 255 & e ; -- o >= 0 && ( a *= 256 ) ; ) this [ t + o ] = e / a & 255 ; return t + n } , a . prototype . writeUInt8 = function ( e , t , n ) { return e = + e , t = 0 | t , n || D ( this , e , t , 1 , 255 , 0 ) , a . TYPED _ARRAY _SUPPORT || ( e = Math . floor ( e ) ) , this [ t ] = 255 & e , t + 1 } , a . prototype . writeUInt16LE = function ( e , t , n ) { return e = + e , t = 0 | t , n || D ( this , e , t , 2 , 65535 , 0 ) , a . TYPED _ARRAY _SUPPORT ? ( this [ t ] = 255 & e , this [ t + 1 ] = e >>> 8 ) : H ( this , e , t , ! 0 ) , t + 2 } , a . prototype . writeUInt16BE = function ( e , t , n ) { return e = + e , t = 0 | t , n || D ( this , e , t , 2 , 65535 , 0 ) , a . TYPED _ARRAY _SUPPORT ? ( this [ t ] = e >>> 8 , this [ t + 1 ] = 255 & e ) : H ( this , e , t , ! 1 ) , t + 2 } , a . prototype . writeUInt32LE = function ( e , t , n ) { return e = + e , t = 0 | t , n || D ( this , e , t , 4 , 4294967295 , 0 ) , a . TYPED _ARRAY _SUPPORT ? ( this [ t + 3 ] = e >>> 24 , this [ t + 2 ] = e >>> 16 , this [ t + 1 ] = e >>> 8 , this [ t ] = 255 & e ) : W ( this , e , t , ! 0 ) , t + 4 } , a . prototype . writeUInt32BE = function ( e , t , n ) { return e = + e , t = 0 | t , n || D ( this , e , t , 4 , 4294967295 , 0 ) , a . TYPED _ARRAY _SUPPORT ? ( this [ t ] = e >>> 24 , this [ t + 1 ] = e >>> 16 , this [ t + 2 ] = e >>> 8 , this [ t + 3 ] = 255 & e ) : W ( this , e , t , ! 1 ) , t + 4 } , a . prototype . writeIntLE = function ( e , t , n , r ) { if ( e = + e , t = 0 | t , ! r ) { var i = Math . pow ( 2 , 8 * n - 1 ) ; D ( this , e , t , n , i - 1 , - i ) } var o = 0 , a = 1 , l = 0 ; for ( this [ t ] = 255 & e ; ++ o < n && ( a *= 256 ) ; ) 0 > e && 0 === l && 0 !== this [ t + o - 1 ] && ( l = 1 ) , this [ t + o ] = ( e / a >> 0 ) - l & 255 ; return t + n } , a . prototype . writeIntBE = function ( e , t , n , r ) { if ( e = + e , t = 0 | t , ! r ) { var i = Math . pow ( 2 , 8 * n - 1 ) ; D ( this , e , t , n , i - 1 , - i ) } var o = n - 1 , a = 1 , l = 0 ; for ( this [ t + o ] = 255 & e ; -- o >= 0 && ( a *= 256 ) ; ) 0 > e && 0 === l && 0 !== this [ t + o + 1 ] && ( l = 1 ) , this [ t + o ] = ( e / a >> 0 ) - l & 255 ; return t + n } , a . prototype . writeInt8 = function ( e , t , n ) { return e = + e , t = 0 | t , n || D ( this , e , t , 1 , 127 , - 128 ) , a . TYPED _ARRAY _SUPPORT || ( e = Math . floor ( e ) ) , 0 > e && ( e = 255 + e + 1 ) , this [ t ] = 255 & e , t + 1 } , a . prototype . writeInt16LE = function ( e , t , n ) { return e = + e , t = 0 | t , n || D ( this , e , t , 2 , 32767 , - 32768 ) , a . TYPED _ARRAY _SUPPORT ? ( this [ t ] = 255 & e , this [ t + 1 ] = e >>> 8 ) : H ( this , e , t , ! 0 ) , t + 2 } , a . prototype . writeInt16BE = function ( e , t , n ) { return e = + e , t = 0 | t , n || D ( this , e , t , 2 , 32767 , - 32768 ) , a . TYPED _ARRAY _SUPPORT ? ( this [ t ] = e >>> 8 , this [ t + 1 ] = 255 & e ) : H ( this , e , t , ! 1 ) , t + 2 } , a . prototype . writeInt32LE = function ( e , t , n ) { return e = + e , t = 0 | t , n || D ( this , e , t , 4 , 2147483647 , - 2147483648 ) , a . TYPED _ARRAY _SUPPORT ? ( this [ t ] = 255 & e , this [ t + 1 ] = e >>> 8 , this [ t + 2 ] = e >>> 16 , this [ t + 3 ] = e >>> 24 ) : W ( this , e , t , ! 0 ) , t + 4 } , a . prototype . writeInt32BE = function ( e , t , n ) { return e = + e , t = 0 | t , n || D ( this , e , t , 4 , 2147483647 , - 2147483648 ) , 0 > e && ( e = 4294967295 + e + 1 ) , a . TYPED _ARRAY _SUPPORT ? ( this [ t ] = e >>> 24 , this [ t + 1 ] = e >>> 16 , this [ t + 2 ] = e >>> 8 , this [ t + 3 ] = 255 & e ) : W ( this , e , t , ! 1 ) , t + 4 } , a . prototype . writeFloatLE = function ( e , t , n ) { return _ ( this , e , t , ! 0 , n ) } , a . prototype Line truncated
var d = e . curOp . updateInput , p = { from : f , to : h , text : s ? s [ c % s . length ] : l , origin : i || ( a ? "paste" : e . state . cutIncoming ? "cut" : "+input" ) } ; Tn ( e . doc , p ) , Ci ( e , "inputRead" , e , p ) } t && ! a && Q ( e , t ) , Bn ( e ) , e . curOp . updateInput = d , e . curOp . typing = ! 0 , e . state . pasteIncoming = e . state . cutIncoming = ! 1 } function J ( e , t ) { var n = e . clipboardData && e . clipboardData . getData ( "text/plain" ) ; return n ? ( e . preventDefault ( ) , t . isReadOnly ( ) || t . options . disableInput || At ( t , function ( ) { Z ( t , n , 0 , null , "paste" ) } ) , ! 0 ) : void 0 } function Q ( e , t ) { if ( e . options . electricChars && e . options . smartIndent ) for ( var n = e . doc . sel , r = n . ranges . length - 1 ; r >= 0 ; r -- ) { var i = n . ranges [ r ] ; if ( ! ( i . head . ch > 100 || r && n . ranges [ r - 1 ] . head . line == i . head . line ) ) { var o = e . getModeAt ( i . head ) , a = ! 1 ; if ( o . electricChars ) { for ( var l = 0 ; l < o . electricChars . length ; l ++ ) if ( t . indexOf ( o . electricChars . charAt ( l ) ) > - 1 ) { a = Fn ( e , i . head . line , "smart" ) ; break } } else o . electricInput && o . electricInput . test ( Zr ( e . doc , i . head . line ) . text . slice ( 0 , i . head . ch ) ) && ( a = Fn ( e , i . head . line , "smart" ) ) ; a && Ci ( e , "electricInput" , e , i . head . line ) } } } function ee ( e ) { for ( var t = [ ] , n = [ ] , r = 0 ; r < e . doc . sel . ranges . length ; r ++ ) { var i = e . doc . sel . ranges [ r ] . head . line , o = { anchor : Bo ( i , 0 ) , head : Bo ( i + 1 , 0 ) } ; n . push ( o ) , t . push ( e . getRange ( o . anchor , o . head ) ) } return { text : t , ranges : n } } function te ( e ) { e . setAttribute ( "autocorrect" , "off" ) , e . setAttribute ( "autocapitalize" , "off" ) , e . setAttribute ( "spellcheck" , "false" ) } function ne ( e ) { this . cm = e , this . prevInput = "" , this . pollingFast = ! 1 , this . polling = new Ei , this . inaccurateSelection = ! 1 , this . hasSelection = ! 1 , this . composing = null } function re ( ) { var e = ji ( "textarea" , null , null , "position: absolute; padding: 0; width: 1px; height: 1em; outline: none" ) , t = ji ( "div" , [ e ] , null , "overflow: hidden; position: relative; width: 3px; height: 0px;" ) ; return wo ? e . style . width = "1000px" : e . setAttribute ( "wrap" , "off" ) , No && ( e . style . border = "1px solid black" ) , te ( e ) , t } function ie ( e ) { this . cm = e , this . lastAnchorNode = this . lastAnchorOffset = this . lastFocusNode = this . lastFocusOffset = null , this . polling = new Ei , this . gracePeriod = ! 1 } function oe ( e , t ) { var n = Qe ( e , t . line ) ; if ( ! n || n . hidden ) return null ; var r = Zr ( e . doc , t . line ) , i = Xe ( n , r , t . line ) , o = ii ( r ) , a = "left" ; if ( o ) { var l = co ( o , t . ch ) ; a = l % 2 ? "right" : "left" } var s = nt ( i . map , t . ch , a ) ; return s . offset = "right" == s . collapse ? s . end : s . start , s } function ae ( e , t ) { return t && ( e . bad = ! 0 ) , e } function le ( e , t , n ) { var r ; if ( t == e . display . lineDiv ) { if ( r = e . display . lineDiv . childNodes [ n ] , ! r ) return ae ( e . clipPos ( Bo ( e . display . viewTo - 1 ) ) , ! 0 ) ; t = null , n = 0 } else for ( r = t ; ; r = r . parentNode ) { if ( ! r || r == e . display . lineDiv ) return null ; if ( r . parentNode && r . parentNode == e . display . lineDiv ) break } for ( var i = 0 ; i < e . display . view . length ; i ++ ) { var o = e . display . view [ i ] ; if ( o . node == r ) return se ( o , t , n ) } } function se ( e , t , n ) { function r ( t , n , r ) { for ( var i = - 1 ; i < ( u ? u . length : 0 ) ; i ++ ) for ( var o = 0 > i ? c . map : u [ i ] , a = 0 ; a < o . length ; a += 3 ) { var l = o [ a + 2 ] ; if ( l == t || l == n ) { var s = ti ( 0 > i ? e . line : e . rest [ i ] ) , f = o [ a ] + r ; return ( 0 > r || l != t ) && ( f = o [ a + ( r ? 1 : 0 ) ] ) , Bo ( s , f ) } } } var i = e . text . firstChild , o = ! 1 ; if ( ! t || ! Va ( i , t ) ) return ae ( Bo ( ti ( e . line ) , 0 ) , ! 0 ) ; if ( t == i && ( o = ! 0 , t = i . childNodes [ n ] , n = 0 , ! t ) ) { var a = e . rest ? Ii ( e . rest ) : e . line ; return ae ( Bo ( ti ( a ) , a . text . length ) , o ) } var l = 3 == t . nodeType ? t : null , s = t ; for ( l || 1 != t . childNodes . length || 3 != t . firstChild . nodeType || ( l = t . firstChild , n && ( n = l . nodeValue . length ) ) ; s . parentNode != i ; ) s = s . parentNode ; var c = e . measure , u = c . maps , f = r ( l , s , n ) ; if ( f ) return ae ( f , o ) ; for ( var h = s . nextSibling , d = l ? l . nodeValue . length - n : 0 ; h ; h = h . nextSibling ) { if ( f = r ( h , h . firstChild , 0 ) ) return ae ( Bo ( f . line , f . ch - d ) , o ) ; d += h . textContent . length } for ( var p = s . previousSibling , d = n ; p ; p = p . previousSibling ) { if ( f = r ( p , p . firstChild , - 1 ) ) return ae ( Bo ( f . line , f . ch + d ) , o ) ; d += h . textContent . length } } function ce ( e , t , n , r , i ) { function o ( e ) { return function ( t ) { return t . id == e } } function a ( t ) { if ( 1 == t . nodeType ) { var n = t . getAttribute ( "cm-text" ) ; if ( null != n ) return "" == n && ( n = t . textContent . replace ( /\u200b/g , "" ) ) , void ( l += n ) ; var u , f = t . getAttribute ( "cm-marker" ) ; if ( f ) { var h = e . findMarks ( Bo ( r , 0 ) , Bo ( i + 1 , 0 ) , o ( + f ) ) ; return void ( h . length && ( u = h [ 0 ] . find ( ) ) && ( l += Jr ( e . doc , u . from , u . to ) . join ( c ) ) ) } if ( "false" == t . getAttribute ( "contenteditable" ) ) return ; for ( var d = 0 ; d < t . childNodes . length ; d ++ ) a ( t . childNodes [ d ] ) ; /^(pre|div|p)$/i . test ( t . nodeName ) && ( s = ! 0 ) } else if ( 3 == t . nodeType ) { var p = t . nodeValue ; if ( ! p ) return ; s && ( l += c , s = ! 1 ) , l += p } } for ( var l = "" , s = ! 1 , c = e . doc . lineSeparator ( ) ; a ( t ) , t != n ; ) t = t . nextSibling ; return l } function ue ( e , t ) { this . ranges = e , this . primIndex = t } function fe ( e , t ) { this . anchor = e , this . head = t } function he ( e , t ) { var n = e [ t ] ; e . sort ( function ( e , t ) { return _o ( e . from ( ) , t . from ( ) ) } ) , t = Pi ( e , n ) ; for ( var r = 1 ; r < e . length ; r ++ ) { var i = e [ r ] , o = e [ r - 1 ] ; if ( _o ( o . to ( ) , i . from ( ) ) >= 0 ) { var a = K ( o . from ( ) , i . from ( ) ) , l = V ( o . to ( ) , i . to ( ) ) , s = o . empty ( ) ? i . from ( ) == i . head : o . from ( ) == o . head ; t >= r && -- t , e . splice ( -- r , 2 , new fe ( s ? l : a , s ? a : l ) ) } } return new ue ( e , t ) } function de ( e , t ) { return new ue ( [ new fe ( e , t || e ) ] , 0 ) } function pe ( e , t ) { return Math . max ( e . first , Math . min ( t , e . first + e . size - 1 ) ) } function me ( e , t ) { if ( t . line < e . first ) return Bo ( e . first , 0 ) ; var n = e . first + e . size - 1 ; return t . line > n ? Bo ( n , Zr ( e , n ) . text . length ) : ge ( t , Zr ( e , t . line ) . text . length ) } function ge ( e , t ) { var n = e . ch ; return null == n || n > t ? Bo ( e . line , t ) : 0 > n ? Bo ( e . line , 0 ) : e } function ve ( e , t ) { return t >= e . first && t < e . fir Line truncated
u && setTimeout ( Et ( e , function ( ) { y == n && ( s . scroller . scrollTop += u , a ( t ) ) } ) , 50 ) } } function l ( t ) { e . state . selectingText = ! 1 , y = 1 / 0 , Ma ( t ) , s . input . focus ( ) , Ia ( document , "mousemove" , x ) , Ia ( document , "mouseup" , w ) , c . history . lastSelOrigin = null } var s = e . display , c = e . doc ; Ma ( t ) ; var u , f , h = c . sel , d = h . ranges ; if ( i && ! t . shiftKey ? ( f = c . sel . contains ( n ) , u = f > - 1 ? d [ f ] : new fe ( n , n ) ) : ( u = c . sel . primary ( ) , f = c . sel . primIndex ) , Oo ? t . shiftKey && t . metaKey : t . altKey ) r = "rect" , i || ( u = new fe ( n , n ) ) , n = Yt ( e , t , ! 0 , ! 0 ) , f = - 1 ; else if ( "double" == r ) { var p = e . findWordAt ( n ) ; u = e . display . shift || c . extend ? xe ( c , u , p . anchor , p . head ) : p } else if ( "triple" == r ) { var m = new fe ( Bo ( n . line , 0 ) , me ( c , Bo ( n . line + 1 , 0 ) ) ) ; u = e . display . shift || c . extend ? xe ( c , u , m . anchor , m . head ) : m } else u = xe ( c , u , n ) ; i ? - 1 == f ? ( f = d . length , Te ( c , he ( d . concat ( [ u ] ) , f ) , { scroll : ! 1 , origin : "*mouse" } ) ) : d . length > 1 && d [ f ] . empty ( ) && "single" == r && ! t . shiftKey ? ( Te ( c , he ( d . slice ( 0 , f ) . concat ( d . slice ( f + 1 ) ) , 0 ) , { scroll : ! 1 , origin : "*mouse" } ) , h = c . sel ) : ke ( c , f , u , Ba ) : ( f = 0 , Te ( c , new ue ( [ u ] , 0 ) , Ba ) , h = c . sel ) ; var g = n , v = s . wrapper . getBoundingClientRect ( ) , y = 0 , x = Et ( e , function ( e ) { ki ( e ) ? a ( e ) : l ( e ) } ) , w = Et ( e , l ) ; e . state . selectingText = w , Ea ( document , "mousemove" , x ) , Ea ( document , "mouseup" , w ) } function Zt ( e , t , n , r ) { try { var i = t . clientX , o = t . clientY } catch ( t ) { return ! 1 } if ( i >= Math . floor ( e . display . gutters . getBoundingClientRect ( ) . right ) ) return ! 1 ; r && Ma ( t ) ; var a = e . display , l = a . lineDiv . getBoundingClientRect ( ) ; if ( o > l . bottom || ! Ni ( e , n ) ) return bi ( t ) ; o -= l . top - a . viewOffset ; for ( var s = 0 ; s < e . options . gutters . length ; ++ s ) { var c = a . gutters . childNodes [ s ] ; if ( c && c . getBoundingClientRect ( ) . right >= i ) { var u = ni ( e . doc , o ) , f = e . options . gutters [ s ] ; return Pa ( e , n , e , u , f , t ) , bi ( t ) } } } function Jt ( e , t ) { return Zt ( e , t , "gutterClick" , ! 0 ) } function Qt ( e ) { var t = this ; if ( nn ( t ) , ! Ti ( t , e ) && ! Gt ( t . display , e ) ) { Ma ( e ) , xo && ( $o = + new Date ) ; var n = Yt ( t , e , ! 0 ) , r = e . dataTransfer . files ; if ( n && ! t . isReadOnly ( ) ) if ( r && r . length && window . FileReader && window . File ) for ( var i = r . length , o = Array ( i ) , a = 0 , l = function ( e , r ) { if ( ! t . options . allowDropFileTypes || - 1 != Pi ( t . options . allowDropFileTypes , e . type ) ) { var l = new FileReader ; l . onload = Et ( t , function ( ) { var e = l . result ; if ( /[\x00-\x08\x0e-\x1f]{2}/ . test ( e ) && ( e = "" ) , o [ r ] = e , ++ a == i ) { n = me ( t . doc , n ) ; var s = { from : n , to : n , text : t . doc . splitLines ( o . join ( t . doc . lineSeparator ( ) ) ) , origin : "paste" } ; Tn ( t . doc , s ) , Le ( t . doc , de ( n , Qo ( s ) ) ) } } ) , l . readAsText ( e ) } } , s = 0 ; i > s ; ++ s ) l ( r [ s ] , s ) ; else { if ( t . state . draggingText && t . doc . sel . contains ( n ) > - 1 ) return t . state . draggingText ( e ) , void setTimeout ( function ( ) { t . display . input . focus ( ) } , 20 ) ; try { var o = e . dataTransfer . getData ( "Text" ) ; if ( o ) { if ( t . state . draggingText && ! ( Eo ? e . altKey : e . ctrlKey ) ) var c = t . listSelections ( ) ; if ( Me ( t . doc , de ( n , n ) ) , c ) for ( var s = 0 ; s < c . length ; ++ s ) In ( t . doc , "" , c [ s ] . anchor , c [ s ] . head , "drag" ) ; t . replaceSelection ( o , "around" , "paste" ) , t . display . input . focus ( ) } } catch ( e ) { } } } } function en ( e , t ) { if ( xo && ( ! e . state . draggingText || + new Date - $o < 100 ) ) return void Aa ( t ) ; if ( ! Ti ( e , t ) && ! Gt ( e . display , t ) && ( t . dataTransfer . setData ( "Text" , e . getSelection ( ) ) , t . dataTransfer . effectAllowed = "copyMove" , t . dataTransfer . setDragImage && ! Lo ) ) { var n = ji ( "img" , null , null , "position: fixed; left: 0; top: 0;" ) ; n . src = "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" , Co && ( n . width = n . height = 1 , e . display . wrapper . appendChild ( n ) , n . _top = n . offsetTop ) , t . dataTransfer . setDragImage ( n , 0 , 0 ) , Co && n . parentNode . removeChild ( n ) } } function tn ( e , t ) { var n = Yt ( e , t ) ; if ( n ) { var r = document . createDocumentFragment ( ) ; He ( e , n , r ) , e . display . dragCursor || ( e . display . dragCursor = ji ( "div" , null , "CodeMirror-cursors CodeMirror-dragcursors" ) , e . display . lineSpace . insertBefore ( e . display . dragCursor , e . display . cursorDiv ) ) , qi ( e . display . dragCursor , r ) } } function nn ( e ) { e . display . dragCursor && ( e . display . lineSpace . removeChild ( e . display . dragCursor ) , e . display . dragCursor = null ) } function rn ( e , t ) { Math . abs ( e . doc . scrollTop - t ) < 2 || ( e . doc . scrollTop = t , go || A ( e , { top : t } ) , e . display . scroller . scrollTop != t && ( e . display . scroller . scrollTop = t ) , e . display . scrollbars . setScrollTop ( t ) , go && A ( e ) , _e ( e , 100 ) ) } function on ( e , t , n ) { ( n ? t == e . doc . scrollLeft : Math . abs ( e . doc . scrollLeft - t ) < 2 ) || ( t = Math . min ( t , e . display . scroller . scrollWidth - e . display . scroller . clientWidth ) , e . doc . scrollLeft = t , w ( e ) , e . display . scroller . scrollLeft != t && ( e . display . scroller . scrollLeft = t ) , e . display . scrollbars . setScrollLeft ( t ) ) } function an ( e , t ) { var n = Xo ( t ) , r = n . x , i = n . y , o = e . display , a = o . scroller , l = a . scrollWidth > a . clientWidth , s = a . scrollHeight > a . clientHeight ; if ( r && l || i && s ) { if ( i && Eo && wo ) e : for ( var c = t . target , u = o . view ; c != a ; c = c . parentNode ) for ( var f = 0 ; f < u . length ; f ++ ) if ( u [ f ] . node == c ) { e . display . currentWheelTarget = c ; break e } if ( r && ! go && ! Co && null != Ko ) return i && s && rn ( e , Math . max ( 0 , Math . min ( a . scrollTop + i * Ko , a . scrollHeight - a . clientHeight ) ) ) , on ( e , Math . max ( 0 , Math . min ( a . scrollLeft + r * Ko , a . scrollWidth - a . clientWidth ) ) ) , ( ! i || i && s ) && Ma ( t ) , void ( o . wheelStartX = null ) ; if ( i && null != Ko ) { var h = i * Ko , d = e . doc . scrollTop , p = d + o . wrapper . clientHeight ; 0 > h ? d = Math . max ( 0 , d + h - 50 ) : p = Math . min ( e . doc . height , p + h + 50 ) , A ( e , { top : d , bottom : p } ) } 20 > Vo && ( null == o . wheelStartX ? ( o . wheelStartX = a . scrollLeft , o . wheelStartY = a . scrollTop , o . wheelDX = r , o . wheelDY = i , setTimeout ( function ( ) { if ( null != o . wheelStartX ) { var e = a . scrollLeft - o . wheelStartX , t = a . scrollTop - o . wh Line truncated
if ( ! h ) { var L = C > S ? g . slice ( 0 , S - p ) : g ; t . addToken ( t , L , a ? a + s : s , u , p + L . length == v ? c : "" , f , l ) } if ( C >= S ) { g = g . slice ( S - p ) , p = S ; break } p = C , u = "" } g = i . slice ( o , o = n [ m ++ ] ) , a = Wr ( n [ m ++ ] , t . cm . options ) } } else for ( var m = 1 ; m < n . length ; m += 2 ) t . addToken ( t , i . slice ( o , o = n [ m ] ) , Wr ( n [ m + 1 ] , t . cm . options ) ) } function Gr ( e , t ) { return 0 == t . from . ch && 0 == t . to . ch && "" == Ii ( t . text ) && ( ! e . cm || e . cm . options . wholeLineUpdateBefore ) } function Yr ( e , t , n , r ) { function i ( e ) { return n ? n [ e ] : null } function o ( e , n , i ) { Mr ( e , n , i , r ) , Ci ( e , "change" , e , t ) } function a ( e , t ) { for ( var n = e , o = [ ] ; t > n ; ++ n ) o . push ( new ba ( c [ n ] , i ( n ) , r ) ) ; return o } var l = t . from , s = t . to , c = t . text , u = Zr ( e , l . line ) , f = Zr ( e , s . line ) , h = Ii ( c ) , d = i ( c . length - 1 ) , p = s . line - l . line ; if ( t . full ) e . insert ( 0 , a ( 0 , c . length ) ) , e . remove ( c . length , e . size - c . length ) ; else if ( Gr ( e , t ) ) { var m = a ( 0 , c . length - 1 ) ; o ( f , f . text , d ) , p && e . remove ( l . line , p ) , m . length && e . insert ( l . line , m ) } else if ( u == f ) if ( 1 == c . length ) o ( u , u . text . slice ( 0 , l . ch ) + h + u . text . slice ( s . ch ) , d ) ; else { var m = a ( 1 , c . length - 1 ) ; m . push ( new ba ( h + u . text . slice ( s . ch ) , d , r ) ) , o ( u , u . text . slice ( 0 , l . ch ) + c [ 0 ] , i ( 0 ) ) , e . insert ( l . line + 1 , m ) } else if ( 1 == c . length ) o ( u , u . text . slice ( 0 , l . ch ) + c [ 0 ] + f . text . slice ( s . ch ) , i ( 0 ) ) , e . remove ( l . line + 1 , p ) ; else { o ( u , u . text . slice ( 0 , l . ch ) + c [ 0 ] , i ( 0 ) ) , o ( f , h + f . text . slice ( s . ch ) , d ) ; var m = a ( 1 , c . length - 1 ) ; p > 1 && e . remove ( l . line + 1 , p - 1 ) , e . insert ( l . line + 1 , m ) } Ci ( e , "change" , e , t ) } function $r ( e ) { this . lines = e , this . parent = null ; for ( var t = 0 , n = 0 ; t < e . length ; ++ t ) e [ t ] . parent = this , n += e [ t ] . height ; this . height = n } function Vr ( e ) { this . children = e ; for ( var t = 0 , n = 0 , r = 0 ; r < e . length ; ++ r ) { var i = e [ r ] ; t += i . chunkSize ( ) , n += i . height , i . parent = this } this . size = t , this . height = n , this . parent = null } function Kr ( e , t , n ) { function r ( e , i , o ) { if ( e . linked ) for ( var a = 0 ; a < e . linked . length ; ++ a ) { var l = e . linked [ a ] ; if ( l . doc != i ) { var s = o && l . sharedHist ; n && ! s || ( t ( l . doc , s ) , r ( l . doc , e , s ) ) } } } r ( e , null , ! 0 ) } function Xr ( e , t ) { if ( t . cm ) throw new Error ( "This document is already in use." ) ; e . doc = t , t . cm = e , a ( e ) , n ( e ) , e . options . lineWrapping || h ( e ) , e . options . mode = t . modeOption , Dt ( e ) } function Zr ( e , t ) { if ( t -= e . first , 0 > t || t >= e . size ) throw new Error ( "There is no line " + ( t + e . first ) + " in the document." ) ; for ( var n = e ; ! n . lines ; ) for ( var r = 0 ; ; ++ r ) { var i = n . children [ r ] , o = i . chunkSize ( ) ; if ( o > t ) { n = i ; break } t -= o } return n . lines [ t ] } function Jr ( e , t , n ) { var r = [ ] , i = t . line ; return e . iter ( t . line , n . line + 1 , function ( e ) { var o = e . text ; i == n . line && ( o = o . slice ( 0 , n . ch ) ) , i == t . line && ( o = o . slice ( t . ch ) ) , r . push ( o ) , ++ i } ) , r } function Qr ( e , t , n ) { var r = [ ] ; return e . iter ( t , n , function ( e ) { r . push ( e . text ) } ) , r } function ei ( e , t ) { var n = t - e . height ; if ( n ) for ( var r = e ; r ; r = r . parent ) r . height += n } function ti ( e ) { if ( null == e . parent ) return null ; for ( var t = e . parent , n = Pi ( t . lines , e ) , r = t . parent ; r ; t = r , r = r . parent ) for ( var i = 0 ; r . children [ i ] != t ; ++ i ) n += r . children [ i ] . chunkSize ( ) ; return n + t . first } function ni ( e , t ) { var n = e . first ; e : do { for ( var r = 0 ; r < e . children . length ; ++ r ) { var i = e . children [ r ] , o = i . height ; if ( o > t ) { e = i ; continue e } t -= o , n += i . chunkSize ( ) } return n } while ( ! e . lines ) ; for ( var r = 0 ; r < e . lines . length ; ++ r ) { var a = e . lines [ r ] , l = a . height ; if ( l > t ) break ; t -= l } return n + r } function ri ( e ) { e = yr ( e ) ; for ( var t = 0 , n = e . parent , r = 0 ; r < n . lines . length ; ++ r ) { var i = n . lines [ r ] ; if ( i == e ) break ; t += i . height } for ( var o = n . parent ; o ; n = o , o = n . parent ) for ( var r = 0 ; r < o . children . length ; ++ r ) { var a = o . children [ r ] ; if ( a == n ) break ; t += a . height } return t } function ii ( e ) { var t = e . order ; return null == t && ( t = e . order = ll ( e . text ) ) , t } function oi ( e ) { this . done = [ ] , this . undone = [ ] , this . undoDepth = 1 / 0 , this . lastModTime = this . lastSelTime = 0 , this . lastOp = this . lastSelOp = null , this . lastOrigin = this . lastSelOrigin = null , this . generation = this . maxGeneration = e || 1 } function ai ( e , t ) { var n = { from : $ ( t . from ) , to : Qo ( t ) , text : Jr ( e , t . from , t . to ) } ; return di ( e , n , t . from . line , t . to . line + 1 ) , Kr ( e , function ( e ) { di ( e , n , t . from . line , t . to . line + 1 ) } , ! 0 ) , n } function li ( e ) { for ( ; e . length ; ) { var t = Ii ( e ) ; if ( ! t . ranges ) break ; e . pop ( ) } } function si ( e , t ) { return t ? ( li ( e . done ) , Ii ( e . done ) ) : e . done . length && ! Ii ( e . done ) . ranges ? Ii ( e . done ) : e . done . length > 1 && ! e . done [ e . done . length - 2 ] . ranges ? ( e . done . pop ( ) , Ii ( e . done ) ) : void 0 } function ci ( e , t , n , r ) { var i = e . history ; i . undone . length = 0 ; var o , a = + new Date ; if ( ( i . lastOp == r || i . lastOrigin == t . origin && t . origin && ( "+" == t . origin . charAt ( 0 ) && e . cm && i . lastModTime > a - e . cm . options . historyEventDelay || "*" == t . origin . charAt ( 0 ) ) ) && ( o = si ( i , i . lastOp == r ) ) ) { var l = Ii ( o . changes ) ; 0 == _o ( t . from , t . to ) && 0 == _o ( t . from , l . to ) ? l . to = Qo ( t ) : o . changes . push ( ai ( e , t ) ) } else { var s = Ii ( i . done ) ; for ( s && s . ranges || hi ( e . sel , i . done ) , o = { changes : [ ai ( e , t ) ] , generation : i . generation } , i . done . push ( o ) ; i . done . length > i . undoDepth ; ) i . done . shift ( ) , i . done [ 0 ] . ranges || i . done . shift ( ) } i . done . push ( n ) , i . generation = ++ i . maxGeneration , i . lastModTime = i . lastSelTime = a , i . lastOp = i . lastSelOp = r , i . lastOrigin = i . lastSelOrigin = t . origin , l || Pa ( e , "historyAdded" ) } function ui ( e , t , n , r ) { var i = t . charAt ( 0 ) ; return "*" == i || "+" == i && n . ranges . length == r . ranges . length && n . somethingSelected ( ) == r . somethingSelected ( ) && new Date - e . history . lastSelTime <= ( e . cm ? e . cm . options . historyEventDelay : 500 ) } function fi ( e , t , n , r ) { var i = e . history , o = r && r . origin ; n == i . lastSelOp || o && i . lastSelOrigin == o && ( i . lastModTime == i . lastSelTime && i . lastOrigin == o || ui ( e , o , Ii ( i . done ) , t ) ) ? i . done [ i . done . length - 1 ] = t : hi ( t , i . done ) , i . lastSelTime = + ne Line truncated
! e ) return null } else { var t = ti ( e ) ; if ( null == t ) return null } return { line : t , handle : e , text : e . text , gutterMarkers : e . gutterMarkers , textClass : e . textClass , bgClass : e . bgClass , wrapClass : e . wrapClass , widgets : e . widgets } } , getViewport : function ( ) { return { from : this . display . viewFrom , to : this . display . viewTo } } , addWidget : function ( e , t , n , r , i ) { var o = this . display ; e = dt ( this , me ( this . doc , e ) ) ; var a = e . bottom , l = e . left ; if ( t . style . position = "absolute" , t . setAttribute ( "cm-ignore-events" , "true" ) , this . display . input . setUneditable ( t ) , o . sizer . appendChild ( t ) , "over" == r ) a = e . top ; else if ( "above" == r || "near" == r ) { var s = Math . max ( o . wrapper . clientHeight , this . doc . height ) , c = Math . max ( o . sizer . clientWidth , o . lineSpace . clientWidth ) ; ( "above" == r || e . bottom + t . offsetHeight > s ) && e . top > t . offsetHeight ? a = e . top - t . offsetHeight : e . bottom + t . offsetHeight <= s && ( a = e . bottom ) , l + t . offsetWidth > c && ( l = c - t . offsetWidth ) } t . style . top = a + "px" , t . style . left = t . style . right = "" , "right" == i ? ( l = o . sizer . clientWidth - t . offsetWidth , t . style . right = "0px" ) : ( "left" == i ? l = 0 : "middle" == i && ( l = ( o . sizer . clientWidth - t . offsetWidth ) / 2 ) , t . style . left = l + "px" ) , n && Dn ( this , l , a , l + t . offsetWidth , a + t . offsetHeight ) } , triggerOnKeyDown : Ot ( hn ) , triggerOnKeyPress : Ot ( mn ) , triggerOnKeyUp : pn , execCommand : function ( e ) { return ua . hasOwnProperty ( e ) ? ua [ e ] . call ( null , this ) : void 0 } , triggerElectric : Ot ( function ( e ) { Q ( this , e ) } ) , findPosH : function ( e , t , n , r ) { var i = 1 ; 0 > t && ( i = - 1 , t = - t ) ; for ( var o = 0 , a = me ( this . doc , e ) ; t > o && ( a = Un ( this . doc , a , i , n , r ) , ! a . hitSide ) ; ++ o ) ; return a } , moveH : Ot ( function ( e , t ) { var n = this ; n . extendSelectionsBy ( function ( r ) { return n . display . shift || n . doc . extend || r . empty ( ) ? Un ( n . doc , r . head , e , t , n . options . rtlMoveVisually ) : 0 > e ? r . from ( ) : r . to ( ) } , _a ) } ) , deleteH : Ot ( function ( e , t ) { var n = this . doc . sel , r = this . doc ; n . somethingSelected ( ) ? r . replaceSelection ( "" , null , "+delete" ) : jn ( this , function ( n ) { var i = Un ( r , n . head , e , t , ! 1 ) ; return 0 > e ? { from : i , to : n . head } : { from : n . head , to : i } } ) } ) , findPosV : function ( e , t , n , r ) { var i = 1 , o = r ; 0 > t && ( i = - 1 , t = - t ) ; for ( var a = 0 , l = me ( this . doc , e ) ; t > a ; ++ a ) { var s = dt ( this , l , "div" ) ; if ( null == o ? o = s . left : s . left = o , l = qn ( this , s , i , n ) , l . hitSide ) break } return l } , moveV : Ot ( function ( e , t ) { var n = this , r = this . doc , i = [ ] , o = ! n . display . shift && ! r . extend && r . sel . somethingSelected ( ) ; if ( r . extendSelectionsBy ( function ( a ) { if ( o ) return 0 > e ? a . from ( ) : a . to ( ) ; var l = dt ( n , a . head , "div" ) ; null != a . goalColumn && ( l . left = a . goalColumn ) , i . push ( l . left ) ; var s = qn ( n , l , e , t ) ; return "page" == t && a == r . sel . primary ( ) && Wn ( n , null , ht ( n , s , "div" ) . top - l . top ) , s } , _a ) , i . length ) for ( var a = 0 ; a < r . sel . ranges . length ; a ++ ) r . sel . ranges [ a ] . goalColumn = i [ a ] } ) , findWordAt : function ( e ) { var t = this . doc , n = Zr ( t , e . line ) . text , r = e . ch , i = e . ch ; if ( n ) { var o = this . getHelper ( e , "wordChars" ) ; ( e . xRel < 0 || i == n . length ) && r ? -- r : ++ i ; for ( var a = n . charAt ( r ) , l = _i ( a , o ) ? function ( e ) { return _i ( e , o ) } : /\s/ . test ( a ) ? function ( e ) { return /\s/ . test ( e ) } : function ( e ) { return ! /\s/ . test ( e ) && ! _i ( e ) } ; r > 0 && l ( n . charAt ( r - 1 ) ) ; ) -- r ; for ( ; i < n . length && l ( n . charAt ( i ) ) ; ) ++ i } return new fe ( Bo ( e . line , r ) , Bo ( e . line , i ) ) } , toggleOverwrite : function ( e ) { null != e && e == this . state . overwrite || ( ( this . state . overwrite = ! this . state . overwrite ) ? Ja ( this . display . cursorDiv , "CodeMirror-overwrite" ) : Za ( this . display . cursorDiv , "CodeMirror-overwrite" ) , Pa ( this , "overwriteToggle" , this , this . state . overwrite ) ) } , hasFocus : function ( ) { return this . display . input . getField ( ) == Gi ( ) } , isReadOnly : function ( ) { return ! ( ! this . options . readOnly && ! this . doc . cantEdit ) } , scrollTo : Ot ( function ( e , t ) { null == e && null == t || _n ( this ) , null != e && ( this . curOp . scrollLeft = e ) , null != t && ( this . curOp . scrollTop = t ) } ) , getScrollInfo : function ( ) { var e = this . display . scroller ; return { left : e . scrollLeft , top : e . scrollTop , height : e . scrollHeight - Ye ( this ) - this . display . barHeight , width : e . scrollWidth - Ye ( this ) - this . display . barWidth , clientHeight : Ve ( this ) , clientWidth : $e ( this ) } } , scrollIntoView : Ot ( function ( e , t ) { if ( null == e ? ( e = { from : this . doc . sel . primary ( ) . head , to : null } , null == t && ( t = this . options . cursorScrollMargin ) ) : "number" == typeof e ? e = { from : Bo ( e , 0 ) , to : null } : null == e . from && ( e = { from : e , to : null } ) , e . to || ( e . to = e . from ) , e . margin = t || 0 , null != e . from . line ) _n ( this ) , this . curOp . scrollToPos = e ; else { var n = Hn ( this , Math . min ( e . from . left , e . to . left ) , Math . min ( e . from . top , e . to . top ) - e . margin , Math . max ( e . from . right , e . to . right ) , Math . max ( e . from . bottom , e . to . bottom ) + e . margin ) ; this . scrollTo ( n . scrollLeft , n . scrollTop ) } } ) , setSize : Ot ( function ( e , t ) { function n ( e ) { return "number" == typeof e || /^\d+$/ . test ( String ( e ) ) ? e + "px" : e } var r = this ; null != e && ( r . display . wrapper . style . width = n ( e ) ) , null != t && ( r . display . wrapper . style . height = n ( t ) ) , r . options . lineWrapping && at ( this ) ; var i = r . display . viewFrom ; r . doc . iter ( i , r . display . viewTo , function ( e ) { if ( e . widgets ) for ( var t = 0 ; t < e . widgets . length ; t ++ ) if ( e . widgets [ t ] . noHScroll ) { Ht ( r , i , "widget" ) ; break } ++ i } ) , r . curOp . forceUpdate = ! 0 , Pa ( r , "refresh" , this ) } ) , operation : function ( e ) { return At ( this , e ) } , refresh : Ot ( function ( ) { var e = this . display . cachedTextHeight ; Dt ( this ) , this . curOp . forceUpdate = ! 0 , lt ( this ) , this . scrollTo ( this . doc . scrollLeft , this . doc . scrollTop ) , u ( this ) , ( null == e || Math . abs ( e - yt ( this . display ) ) > . 5 ) && a ( this ) , Pa ( this , "refresh" , this ) } ) , swapDoc : Ot ( function ( e ) { var t = this . doc ; return t . cm = null , Xr ( this , e ) , lt ( this ) , this . display . input . reset ( ) , this . scrollTo ( e . scrollL Line truncated
e = me ( this , e ) ; var t = e . ch ; if ( e . line < this . first || e . ch < 0 ) return 0 ; var n = this . lineSeparator ( ) . length ; return this . iter ( this . first , e . line , function ( e ) { t += e . text . length + n } ) , t } , copy : function ( e ) { var t = new Ca ( Qr ( this , this . first , this . first + this . size ) , this . modeOption , this . first , this . lineSep ) ; return t . scrollTop = this . scrollTop , t . scrollLeft = this . scrollLeft , t . sel = this . sel , t . extend = ! 1 , e && ( t . history . undoDepth = this . history . undoDepth , t . setHistory ( this . getHistory ( ) ) ) , t } , linkedDoc : function ( e ) { e || ( e = { } ) ; var t = this . first , n = this . first + this . size ; null != e . from && e . from > t && ( t = e . from ) , null != e . to && e . to < n && ( n = e . to ) ; var r = new Ca ( Qr ( this , t , n ) , e . mode || this . modeOption , t , this . lineSep ) ; return e . sharedHist && ( r . history = this . history ) , ( this . linked || ( this . linked = [ ] ) ) . push ( { doc : r , sharedHist : e . sharedHist } ) , r . linked = [ { doc : this , isParent : ! 0 , sharedHist : e . sharedHist } ] , Zn ( r , Xn ( this ) ) , r } , unlinkDoc : function ( t ) { if ( t instanceof e && ( t = t . doc ) , this . linked ) for ( var n = 0 ; n < this . linked . length ; ++ n ) { var r = this . linked [ n ] ; if ( r . doc == t ) { this . linked . splice ( n , 1 ) , t . unlinkDoc ( this ) , Jn ( Xn ( this ) ) ; break } } if ( t . history == this . history ) { var i = [ t . id ] ; Kr ( t , function ( e ) { i . push ( e . id ) } , ! 0 ) , t . history = new oi ( null ) , t . history . done = gi ( this . history . done , i ) , t . history . undone = gi ( this . history . undone , i ) } } , iterLinkedDocs : function ( e ) { Kr ( this , e ) } , getMode : function ( ) { return this . mode } , getEditor : function ( ) { return this . cm } , splitLines : function ( e ) { return this . lineSep ? e . split ( this . lineSep ) : tl ( e ) } , lineSeparator : function ( ) { return this . lineSep || "\n" } } ) , Ca . prototype . eachLine = Ca . prototype . iter ; var La = "iter insert remove copy getEditor constructor" . split ( " " ) ; for ( var Ta in Ca . prototype ) Ca . prototype . hasOwnProperty ( Ta ) && Pi ( La , Ta ) < 0 && ( e . prototype [ Ta ] = function ( e ) { return function ( ) { return e . apply ( this . doc , arguments ) } } ( Ca . prototype [ Ta ] ) ) ; Ai ( Ca ) ; var Ma = e . e _preventDefault = function ( e ) { e . preventDefault ? e . preventDefault ( ) : e . returnValue = ! 1 } , Na = e . e _stopPropagation = function ( e ) { e . stopPropagation ? e . stopPropagation ( ) : e . cancelBubble = ! 0 } , Aa = e . e _stop = function ( e ) { Ma ( e ) , Na ( e ) } , Ea = e . on = function ( e , t , n ) { if ( e . addEventListener ) e . addEventListener ( t , n , ! 1 ) ; else if ( e . attachEvent ) e . attachEvent ( "on" + t , n ) ; else { var r = e . _handlers || ( e . _handlers = { } ) , i = r [ t ] || ( r [ t ] = [ ] ) ; i . push ( n ) } } , Oa = [ ] , Ia = e . off = function ( e , t , n ) { if ( e . removeEventListener ) e . removeEventListener ( t , n , ! 1 ) ; else if ( e . detachEvent ) e . detachEvent ( "on" + t , n ) ; else for ( var r = Si ( e , t , ! 1 ) , i = 0 ; i < r . length ; ++ i ) if ( r [ i ] == n ) { r . splice ( i , 1 ) ; break } } , Pa = e . signal = function ( e , t ) { var n = Si ( e , t , ! 0 ) ; if ( n . length ) for ( var r = Array . prototype . slice . call ( arguments , 2 ) , i = 0 ; i < n . length ; ++ i ) n [ i ] . apply ( null , r ) } , Ra = null , Da = 30 , Ha = e . Pass = { toString : function ( ) { return "CodeMirror.Pass" } } , Wa = { scroll : ! 1 } , Ba = { origin : "*mouse" } , _a = { origin : "+move" } ; Ei . prototype . set = function ( e , t ) { clearTimeout ( this . id ) , this . id = setTimeout ( t , e ) } ; var Fa = e . countColumn = function ( e , t , n , r , i ) { null == t && ( t = e . search ( /[^\s\u00a0]/ ) , - 1 == t && ( t = e . length ) ) ; for ( var o = r || 0 , a = i || 0 ; ; ) { var l = e . indexOf ( "\t" , o ) ; if ( 0 > l || l >= t ) return a + ( t - o ) ; a += l - o , a += n - a % n , o = l + 1 } } , za = e . findColumn = function ( e , t , n ) { for ( var r = 0 , i = 0 ; ; ) { var o = e . indexOf ( "\t" , r ) ; - 1 == o && ( o = e . length ) ; var a = o - r ; if ( o == e . length || i + a >= t ) return r + Math . min ( a , t - i ) ; if ( i += o - r , i += n - i % n , r = o + 1 , i >= t ) return r } } , ja = [ "" ] , Ua = function ( e ) { e . select ( ) } ; No ? Ua = function ( e ) { e . selectionStart = 0 , e . selectionEnd = e . value . length } : xo && ( Ua = function ( e ) { try { e . select ( ) } catch ( t ) { } } ) ; var qa , Ga = /[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/ , Ya = e . isWordChar = function ( e ) { return /\w/ . test ( e ) || e > "" && ( e . toUpperCase ( ) != e . toLowerCase ( ) || Ga . test ( e ) ) } , $a = / [ \ u 0 3 0 0 - \ u 0 3 6 f \ u 0 4 8 3 - \ u 0 4 8 9 \ u 0 5 9 1 - \ u 0 5 b d \ u 0 5 b f \ u 0 5 c 1 \ u 0 5 c 2 \ u 0 5 c 4 \ u 0 5 c 5 \ u 0 5 c 7 \ u 0 6 1 0 - \ u 0 6 1 a \ u 0 6 4 b - \ u 0 6 5 e \ u 0 6 7 0 \ u 0 6 d 6 - \ u 0 6 d c \ u 0 6 d e - \ u 0 6 e 4 \ u 0 6 e 7 \ u 0 6 e 8 \ u 0 6 e a - \ u 0 6 e d \ u 0 7 1 1 \ u 0 7 3 0 - \ u 0 7 4 a \ u 0 7 a 6 - \ u 0 7 b 0 \ u 0 7 e b - \ u 0 7 f 3 \ u 0 8 1 6 - \ u 0 8 1 9 \ u 0 8 1 b - \ u 0 8 2 3 \ u 0 8 2 5 - \ u 0 8 2 7 \ u 0 8 2 9 - \ u 0 8 2 d \ u 0 9 0 0 - \ u 0 9 0 2 \ u 0 9 3 c \ u 0 9 4 1 - \ u 0 9 4 8 \ u 0 9 4 d \ u 0 9 5 1 - \ u 0 9 5 5 \ u 0 9 6 2 \ u 0 9 6 3 \ u 0 9 8 1 \ u 0 9 b c \ u 0 9 b e \ u 0 9 c 1 - \ u 0 9 c 4 \ u 0 9 c d \ u 0 9 d 7 \ u 0 9 e 2 \ u 0 9 e 3 \ u 0 a 0 1 \ u 0 a 0 2 \ u 0 a 3 c \ u 0 a 4 1 \ u 0 a 4 2 \ u 0 a 4 7 \ u 0 a 4 8 \ u 0 a 4 b - \ u 0 a 4 d \ u 0 a 5 1 \ u 0 a 7 0 \ u 0 a 7 1 \ u 0 a 7 5 \ u 0 a 8 1 \ u 0 a 8 2 \ u 0 a b c \ u 0 a c 1 - \ u 0 a c 5 \ u 0 a c 7 \ u 0 a c 8 \ u 0 a c d \ u 0 a e 2 \ u 0 a e 3 \ u 0 b 0 1 \ u 0 b 3 c \ u 0 b 3 e \ u 0 b 3 f \ u 0 b 4 1 - \ u 0 b 4 4 \ u 0 b 4 d \ u 0 b 5 6 \ u 0 b 5 7 \ u 0 b 6 2 \ u 0 b 6 3 \ u 0 b 8 2 \ u 0 b b e \ u 0 b c 0 \ u 0 b c d \ u 0 b d 7 \ u 0 c 3 e - \ u 0 c 4 0 \ u 0 c 4 6 - \ u 0 c 4 8 \ u 0 c 4 a - \ u 0 c 4 d \ u 0 c 5 5 \ u 0 c 5 6 \ u 0 c 6 2 \ u 0 c 6 3 \ u 0 c b c \ u 0 c b f \ u 0 c c 2 \ u 0 c c 6 \ u 0 c c c \ u 0 c c d \ u 0 c d 5 \ u 0 c d 6 \ u 0 c e 2 \ u 0 c e 3 \ u 0 d 3 e \ u 0 d 4 1 - \ u 0 d 4 4 \ u 0 d 4 d \ u 0 d 5 7 \ u 0 d 6 2 \ u 0 d 6 3 \ u 0 d c a \ u 0 d c f \ u 0 d d 2 - \ u 0 d d 4 \ u 0 d d 6 \ u 0 d d f \ u 0 e 3 1 \ u 0 e 3 4 - \ u 0 e 3 a \ u 0 e 4 7 - \ u 0 e 4 e \ u 0 e b 1 \ u 0 e b 4 - \ u 0 e b 9 \ u 0 e b b \ u 0 e b c \ u 0 e c 8 - \ u 0 e c d \ u 0 f 1 8 \ u 0 f 1 9 \ u 0 f 3 5 \ u 0 f 3 7 \ u 0 f 3 9 \ u 0 f 7 1 - \ u 0 f 7 e \ u 0 f 8 0 - \ u 0 f 8 4 \ u 0 f 8 6 \ u 0 f 8 7 \ u 0 f 9 0 - \ u 0 f 9 7 \ u 0 f 9 9 - \ u 0 f b c \ u 0 f c 6 \ u 1 0 2 d - \ u 1 0 3 0 \ u 1 0 3 2 - \ u 1 0 3 7 \ u 1 0 3 9 \ u 1 0 3 a \ u 1 0 3 d \ u 1 0 3 e \ u 1 0 5 8 \ u 1 0 5 9 \ u 1 0 5 e - \ u 1 0 6 0 \ u 1 0 7 1 - \ u 1 0 7 4 \ u 1 0 8 2 \ u 1 0 8 5 \ u 1 0 8 6 \ u 1 0 8 d \ u 1 0 9 d \ u 1 3 5 f \ u 1 7 1 2 - \ u 1 7 1 4 \ u 1 7 3 2 - \ u 1 7 3 4 \ u 1 7 5 2 \ u 1 7 5 3 \ u 1 7 7 2 \ u 1 7 7 3 \ u 1 7 b 7 - \ u 1 7 b d \ u 1 7 c 6 \ u 1 7 c 9 - \ u 1 7 d 3 \ u 1 7 d d \ u 1 8 0 b - \ u 1 8 0 d \ u 1 8 a 9 \ u 1 9 2 0 - \ u 1 9 2 2 \ u 1 9 2 7 \ u 1 9 2 8 \ u 1 9 3 2 \ u 1 9 3 9 - \ u 1 9 3 b \ u 1 a 1 7 \ u 1 a 1 8 \ u 1 a 5 6 \ u 1 a 5 8 - \ u 1 a 5 e \ u 1 a 6 0 \ u 1 a 6 2 \ u 1 a 6 5 - \ u 1 a 6 c \ u 1 a 7 3 - \ u 1 a 7 c \ u 1 a 7 f \ u 1 b 0 0 - \ u 1 b 0 3 \ u 1 b 3 4 \ u 1 b 3 6 - \ u 1 b 3 a \ u 1 b 3 c \ u 1 b 4 2 \ u 1 b 6 b - \ u 1 b 7 3 \ u 1 b 8 0 \ u 1 b 8 1 \ u 1 b a 2 - \ u 1 b a 5 \ u 1 b a 8 \ u 1 b a 9 \ u 1 c 2 c - \ u 1 c 3 3 \ u 1 c 3 6 \ u 1 c 3 7 \ u 1 c d 0 - \ u 1 c d 2 \ u 1 c d 4 - \ u 1 c e 0 \ u 1 c e 2 - \ u 1 c e 8 \ u 1 c e d Line truncated
alias : [ "bash" , "sh" , "zsh" ] , file : /^PKGBUILD$/ } , { name : "Sieve" , mime : "application/sieve" , mode : "sieve" , ext : [ "siv" , "sieve" ] } , { name : "Slim" , mimes : [ "text/x-slim" , "application/x-slim" ] , mode : "slim" , ext : [ "slim" ] } , { name : "Smalltalk" , mime : "text/x-stsrc" , mode : "smalltalk" , ext : [ "st" ] } , { name : "Smarty" , mime : "text/x-smarty" , mode : "smarty" , ext : [ "tpl" ] } , { name : "Solr" , mime : "text/x-solr" , mode : "solr" } , { name : "Soy" , mime : "text/x-soy" , mode : "soy" , ext : [ "soy" ] , alias : [ "closure template" ] } , { name : "SPARQL" , mime : "application/sparql-query" , mode : "sparql" , ext : [ "rq" , "sparql" ] , alias : [ "sparul" ] } , { name : "Spreadsheet" , mime : "text/x-spreadsheet" , mode : "spreadsheet" , alias : [ "excel" , "formula" ] } , { name : "SQL" , mime : "text/x-sql" , mode : "sql" , ext : [ "sql" ] } , { name : "Squirrel" , mime : "text/x-squirrel" , mode : "clike" , ext : [ "nut" ] } , { name : "Swift" , mime : "text/x-swift" , mode : "swift" , ext : [ "swift" ] } , { name : "sTeX" , mime : "text/x-stex" , mode : "stex" } , { name : "LaTeX" , mime : "text/x-latex" , mode : "stex" , ext : [ "text" , "ltx" ] , alias : [ "tex" ] } , { name : "SystemVerilog" , mime : "text/x-systemverilog" , mode : "verilog" , ext : [ "v" ] } , { name : "Tcl" , mime : "text/x-tcl" , mode : "tcl" , ext : [ "tcl" ] } , { name : "Textile" , mime : "text/x-textile" , mode : "textile" , ext : [ "textile" ] } , { name : "TiddlyWiki " , mime : "text/x-tiddlywiki" , mode : "tiddlywiki" } , { name : "Tiki wiki" , mime : "text/tiki" , mode : "tiki" } , { name : "TOML" , mime : "text/x-toml" , mode : "toml" , ext : [ "toml" ] } , { name : "Tornado" , mime : "text/x-tornado" , mode : "tornado" } , { name : "troff" , mime : "text/troff" , mode : "troff" , ext : [ "1" , "2" , "3" , "4" , "5" , "6" , "7" , "8" , "9" ] } , { name : "TTCN" , mime : "text/x-ttcn" , mode : "ttcn" , ext : [ "ttcn" , "ttcn3" , "ttcnpp" ] } , { name : "TTCN_CFG" , mime : "text/x-ttcn-cfg" , mode : "ttcn-cfg" , ext : [ "cfg" ] } , { name : "Turtle" , mime : "text/turtle" , mode : "turtle" , ext : [ "ttl" ] } , { name : "TypeScript" , mime : "application/typescript" , mode : "javascript" , ext : [ "ts" ] , alias : [ "ts" ] } , { name : "Twig" , mime : "text/x-twig" , mode : "twig" } , { name : "Web IDL" , mime : "text/x-webidl" , mode : "webidl" , ext : [ "webidl" ] } , { name : "VB.NET" , mime : "text/x-vb" , mode : "vb" , ext : [ "vb" ] } , { name : "VBScript" , mime : "text/vbscript" , mode : "vbscript" , ext : [ "vbs" ] } , { name : "Velocity" , mime : "text/velocity" , mode : "velocity" , ext : [ "vtl" ] } , { name : "Verilog" , mime : "text/x-verilog" , mode : "verilog" , ext : [ "v" ] } , { name : "VHDL" , mime : "text/x-vhdl" , mode : "vhdl" , ext : [ "vhd" , "vhdl" ] } , { name : "XML" , mimes : [ "application/xml" , "text/xml" ] , mode : "xml" , ext : [ "xml" , "xsl" , "xsd" ] , alias : [ "rss" , "wsdl" , "xsd" ] } , { name : "XQuery" , mime : "application/xquery" , mode : "xquery" , ext : [ "xy" , "xquery" ] } , { name : "Yacas" , mime : "text/x-yacas" , mode : "yacas" , ext : [ "ys" ] } , { name : "YAML" , mime : "text/x-yaml" , mode : "yaml" , ext : [ "yaml" , "yml" ] , alias : [ "yml" ] } , { name : "Z80" , mime : "text/x-z80" , mode : "z80" , ext : [ "z80" ] } , { name : "mscgen" , mime : "text/x-mscgen" , mode : "mscgen" , ext : [ "mscgen" , "mscin" , "msc" ] } , { name : "xu" , mime : "text/x-xu" , mode : "mscgen" , ext : [ "xu" ] } , { name : "msgenny" , mime : "text/x-msgenny" , mode : "mscgen" , ext : [ "msgenny" ] } ] ; for ( var t = 0 ; t < e . modeInfo . length ; t ++ ) { var n = e . modeInfo [ t ] ; n . mimes && ( n . mime = n . mimes [ 0 ] ) } e . findModeByMIME = function ( t ) { t = t . toLowerCase ( ) ; for ( var n = 0 ; n < e . modeInfo . length ; n ++ ) { var r = e . modeInfo [ n ] ; if ( r . mime == t ) return r ; if ( r . mimes ) for ( var i = 0 ; i < r . mimes . length ; i ++ ) if ( r . mimes [ i ] == t ) return r } } , e . findModeByExtension = function ( t ) { for ( var n = 0 ; n < e . modeInfo . length ; n ++ ) { var r = e . modeInfo [ n ] ; if ( r . ext ) for ( var i = 0 ; i < r . ext . length ; i ++ ) if ( r . ext [ i ] == t ) return r } } , e . findModeByFileName = function ( t ) { for ( var n = 0 ; n < e . modeInfo . length ; n ++ ) { var r = e . modeInfo [ n ] ; if ( r . file && r . file . test ( t ) ) return r } var i = t . lastIndexOf ( "." ) , o = i > - 1 && t . substring ( i + 1 , t . length ) ; return o ? e . findModeByExtension ( o ) : void 0 } , e . findModeByName = function ( t ) { t = t . toLowerCase ( ) ; for ( var n = 0 ; n < e . modeInfo . length ; n ++ ) { var r = e . modeInfo [ n ] ; if ( r . name . toLowerCase ( ) == t ) return r ; if ( r . alias ) for ( var i = 0 ; i < r . alias . length ; i ++ ) if ( r . alias [ i ] . toLowerCase ( ) == t ) return r } } } ) } , { "../lib/codemirror" : 10 } ] , 14 : [ function ( t , n , r ) { ! function ( i ) { "object" == typeof r && "object" == typeof n ? i ( t ( "../../lib/codemirror" ) ) : "function" == typeof e && e . amd ? e ( [ "../../lib/codemirror" ] , i ) : i ( CodeMirror ) } ( function ( e ) { "use strict" ; var t = { autoSelfClosers : { area : ! 0 , base : ! 0 , br : ! 0 , col : ! 0 , command : ! 0 , embed : ! 0 , frame : ! 0 , hr : ! 0 , img : ! 0 , input : ! 0 , keygen : ! 0 , link : ! 0 , meta : ! 0 , param : ! 0 , source : ! 0 , track : ! 0 , wbr : ! 0 , menuitem : ! 0 } , implicitlyClosed : { dd : ! 0 , li : ! 0 , optgroup : ! 0 , option : ! 0 , p : ! 0 , rp : ! 0 , rt : ! 0 , tbody : ! 0 , td : ! 0 , tfoot : ! 0 , th : ! 0 , tr : ! 0 } , contextGrabbers : { dd : { dd : ! 0 , dt : ! 0 } , dt : { dd : ! 0 , dt : ! 0 } , li : { li : ! 0 } , option : { option : ! 0 , optgroup : ! 0 } , optgroup : { optgroup : ! 0 } , p : { address : ! 0 , article : ! 0 , aside : ! 0 , blockquote : ! 0 , dir : ! 0 , div : ! 0 , dl : ! 0 , fieldset : ! 0 , footer : ! 0 , form : ! 0 , h1 : ! 0 , h2 : ! 0 , h3 : ! 0 , h4 : ! 0 , h5 : ! 0 , h6 : ! 0 , header : ! 0 , hgroup : ! 0 , hr : ! 0 , menu : ! 0 , nav : ! 0 , ol : ! 0 , p : ! 0 , pre : ! 0 , section : ! 0 , table : ! 0 , ul : ! 0 } , rp : { rp : ! 0 , rt : ! 0 } , rt : { rp : ! 0 , rt : ! 0 } , tbody : { tbody : ! 0 , tfoot : ! 0 } , td : { td : ! 0 , th : ! 0 } , tfoot : { tbody : ! 0 } , th : { td : ! 0 , th : ! 0 } , thead : { tbody : ! 0 , tfoot : ! 0 } , tr : { tr : ! 0 } } , doNotIndent : { pre : ! 0 } , allowUnquoted : ! 0 , allowMissing : ! 0 , caseFold : ! 0 } , n = { autoSelfClosers : { } , implicitlyClosed : { } , contextGrabbers : { } , doNotIndent : { } , allowUnquoted : ! 1 , allowMissing : ! 1 , caseFold : ! 1 } ; e . defineMode ( "xml" , function ( r , i ) { function o ( e , t ) { function n ( n ) { return t . tokenize = n , n ( e , t ) } var r = e . next ( ) ; if ( "<" == r ) return e . eat ( "!" ) ? e . eat ( "[" ) ? e . Line truncated
for ( var s = [ ] , a = 0 , l = o . length ; l > a ; a ++ ) { var u = o [ a ] ; u [ 1 ] && s . push ( u [ 0 ] + u [ 1 ] . substring ( 1 ) ) } for ( var f = [ ] , a = 0 , l = o . length ; l > a ; a ++ ) { var u = o [ a ] ; u [ 1 ] . length > 1 && f . push ( u [ 0 ] + u [ 1 ] [ 1 ] + u [ 1 ] [ 0 ] + u [ 1 ] . substring ( 2 ) ) } for ( var h = [ ] , a = 0 , l = o . length ; l > a ; a ++ ) { var u = o [ a ] ; if ( u [ 1 ] ) for ( var d = 0 , p = c . alphabet . length ; p > d ; d ++ ) h . push ( u [ 0 ] + c . alphabet [ d ] + u [ 1 ] . substring ( 1 ) ) } for ( var m = [ ] , a = 0 , l = o . length ; l > a ; a ++ ) { var u = o [ a ] ; if ( u [ 1 ] ) for ( var d = 0 , p = c . alphabet . length ; p > d ; d ++ ) h . push ( u [ 0 ] + c . alphabet [ d ] + u [ 1 ] ) } t = t . concat ( s ) , t = t . concat ( f ) , t = t . concat ( h ) , t = t . concat ( m ) } return t } function r ( e ) { for ( var t = [ ] , n = 0 ; n < e . length ; n ++ ) c . check ( e [ n ] ) && t . push ( e [ n ] ) ; return t } function i ( e ) { function i ( e , t ) { return e [ 1 ] < t [ 1 ] ? - 1 : 1 } for ( var o = n ( [ e ] ) , a = n ( o ) , l = r ( o ) . concat ( r ( a ) ) , s = { } , u = 0 , f = l . length ; f > u ; u ++ ) l [ u ] in s ? s [ l [ u ] ] += 1 : s [ l [ u ] ] = 1 ; var h = [ ] ; for ( var u in s ) h . push ( [ u , s [ u ] ] ) ; h . sort ( i ) . reverse ( ) ; for ( var d = [ ] , u = 0 , f = Math . min ( t , h . length ) ; f > u ; u ++ ) c . hasFlag ( h [ u ] [ 0 ] , "NOSUGGEST" ) || d . push ( h [ u ] [ 0 ] ) ; return d } if ( t || ( t = 5 ) , this . check ( e ) ) return [ ] ; for ( var o = 0 , a = this . replacementTable . length ; a > o ; o ++ ) { var l = this . replacementTable [ o ] ; if ( - 1 !== e . indexOf ( l [ 0 ] ) ) { var s = e . replace ( l [ 0 ] , l [ 1 ] ) ; if ( this . check ( s ) ) return [ s ] } } var c = this ; return c . alphabet = "abcdefghijklmnopqrstuvwxyz" , i ( e ) } } , "undefined" != typeof t && ( t . exports = i ) } ) . call ( this , e ( "buffer" ) . Buffer , "/node_modules/typo-js" ) } , { buffer : 3 , fs : 2 } ] , 19 : [ function ( e , t , n ) { var r = e ( "codemirror" ) ; r . commands . tabAndIndentMarkdownList = function ( e ) { var t = e . listSelections ( ) , n = t [ 0 ] . head , r = e . getStateAfter ( n . line ) , i = r . list !== ! 1 ; if ( i ) return void e . execCommand ( "indentMore" ) ; if ( e . options . indentWithTabs ) e . execCommand ( "insertTab" ) ; else { var o = Array ( e . options . tabSize + 1 ) . join ( " " ) ; e . replaceSelection ( o ) } } , r . commands . shiftTabAndUnindentMarkdownList = function ( e ) { var t = e . listSelections ( ) , n = t [ 0 ] . head , r = e . getStateAfter ( n . line ) , i = r . list !== ! 1 ; if ( i ) return void e . execCommand ( "indentLess" ) ; if ( e . options . indentWithTabs ) e . execCommand ( "insertTab" ) ; else { var o = Array ( e . options . tabSize + 1 ) . join ( " " ) ; e . replaceSelection ( o ) } } } , { codemirror : 10 } ] , 20 : [ function ( e , t , n ) { "use strict" ; function r ( e ) { return e = U ? e . replace ( "Ctrl" , "Cmd" ) : e . replace ( "Cmd" , "Ctrl" ) } function i ( e , t , n ) { e = e || { } ; var r = document . createElement ( "a" ) ; return t = void 0 == t || t , e . title && t && ( r . title = a ( e . title , e . action , n ) , U && ( r . title = r . title . replace ( "Ctrl" , "⌘" ) , r . title = r . title . replace ( "Alt" , "⌥" ) ) ) , r . tabIndex = - 1 , r . className = e . className , r } function o ( ) { var e = document . createElement ( "i" ) ; return e . className = "separator" , e . innerHTML = "|" , e } function a ( e , t , n ) { var i , o = e ; return t && ( i = Y ( t ) , n [ i ] && ( o += " (" + r ( n [ i ] ) + ")" ) ) , o } function l ( e , t ) { t = t || e . getCursor ( "start" ) ; var n = e . getTokenAt ( t ) ; if ( ! n . type ) return { } ; for ( var r , i , o = n . type . split ( " " ) , a = { } , l = 0 ; l < o . length ; l ++ ) r = o [ l ] , "strong" === r ? a . bold = ! 0 : "variable-2" === r ? ( i = e . getLine ( t . line ) , /^\s*\d+\.\s/ . test ( i ) ? a [ "ordered-list" ] = ! 0 : a [ "unordered-list" ] = ! 0 ) : "atom" === r ? a . quote = ! 0 : "em" === r ? a . italic = ! 0 : "quote" === r ? a . quote = ! 0 : "strikethrough" === r ? a . strikethrough = ! 0 : "comment" === r ? a . code = ! 0 : "link" === r ? a . link = ! 0 : "tag" === r ? a . image = ! 0 : r . match ( /^header(\-[1-6])?$/ ) && ( a [ r . replace ( "header" , "heading" ) ] = ! 0 ) ; return a } function s ( e ) { var t = e . codemirror ; t . setOption ( "fullScreen" , ! t . getOption ( "fullScreen" ) ) , t . getOption ( "fullScreen" ) ? ( V = document . body . style . overflow , document . body . style . overflow = "hidden" ) : document . body . style . overflow = V ; var n = t . getWrapperElement ( ) ; /fullscreen/ . test ( n . previousSibling . className ) ? n . previousSibling . className = n . previousSibling . className . replace ( /\s*fullscreen\b/ , "" ) : n . previousSibling . className += " fullscreen" ; var r = e . toolbarElements . fullscreen ; /active/ . test ( r . className ) ? r . className = r . className . replace ( /\s*active\s*/g , "" ) : r . className += " active" ; var i = t . getWrapperElement ( ) . nextSibling ; /editor-preview-active-side/ . test ( i . className ) && N ( e ) } function c ( e ) { P ( e , "bold" , e . options . blockStyles . bold ) } function u ( e ) { P ( e , "italic" , e . options . blockStyles . italic ) } function f ( e ) { P ( e , "strikethrough" , "~~" ) } function h ( e ) { function t ( e ) { if ( "object" != typeof e ) throw "fencing_line() takes a 'line' object (not a line number, or line text). Got: " + typeof e + ": " + e ; return e . styles && e . styles [ 2 ] && - 1 !== e . styles [ 2 ] . indexOf ( "formatting-code-block" ) } function n ( e ) { return e . state . base . base || e . state . base } function r ( e , r , i , o , a ) { i = i || e . getLineHandle ( r ) , o = o || e . getTokenAt ( { line : r , ch : 1 } ) , a = a || ! ! i . text && e . getTokenAt ( { line : r , ch : i . text . length - 1 } ) ; var l = o . type ? o . type . split ( " " ) : [ ] ; return a && n ( a ) . indentedCode ? "indented" : - 1 !== l . indexOf ( "comment" ) && ( n ( o ) . fencedChars || n ( a ) . fencedChars || t ( i ) ? "fenced" : "single" ) } function i ( e , t , n , r ) { var i = t . line + 1 , o = n . line + 1 , a = t . line !== n . line , l = r + "\n" , s = "\n" + r ; a && o ++ , a && 0 === n . ch && ( s = r + "\n" , o -- ) , E ( e , ! 1 , [ l , s ] ) , e . setSelection ( { line : i , ch : 0 } , { line : o , ch : 0 } ) } var o , a , l , s = e . options . blockStyles . code , c = e . codemirror , u = c . getCursor ( "start" ) , f = c . getCursor ( "end" ) , h = c . getTokenAt ( { line : u . line , ch : u . ch || 1 } ) , d = c . getLineHandle ( u . line ) , p = r ( c , u . line , d , h ) ; if ( "single" === p ) { var m = d . text . slice ( 0 , u . ch ) . replace ( "`" , "" ) , g = d . text . slice ( u . ch ) . replace ( "`" , "" ) ; c . replaceRange ( m + g , { line : u . line , ch : 0 } , { line : u . line , ch : 99999999999999 } ) , u . ch -- , u !== f && f . ch -- , c . setSelection ( u , f ) , c . focus ( ) } else if ( "fenced" === p ) if ( u . Line truncated
if ( Array . prototype . indexOf ) return e . indexOf ( t , n ) ; for ( var r = n || 0 ; r < e . length ; r ++ ) if ( e [ r ] === t ) return r ; return - 1 } var r = { exec : RegExp . prototype . exec , test : RegExp . prototype . test , match : String . prototype . match , replace : String . prototype . replace , split : String . prototype . split } , i = void 0 === r . exec . call ( /()??/ , "" ) [ 1 ] , s = function ( ) { var e = /^/g ; return r . test . call ( e , "" ) , ! e . lastIndex } ( ) ; s && i || ( RegExp . prototype . exec = function ( e ) { var n , a , t = r . exec . apply ( this , arguments ) ; if ( "string" == typeof e && t ) { if ( ! i && t . length > 1 && u ( t , "" ) > - 1 && ( a = RegExp ( this . source , r . replace . call ( o ( this ) , "g" , "" ) ) , r . replace . call ( e . slice ( t . index ) , a , function ( ) { for ( var e = 1 ; e < arguments . length - 2 ; e ++ ) void 0 === arguments [ e ] && ( t [ e ] = void 0 ) } ) ) , this . _xregexp && this . _xregexp . captureNames ) for ( var f = 1 ; f < t . length ; f ++ ) n = this . _xregexp . captureNames [ f - 1 ] , n && ( t [ n ] = t [ f ] ) ; ! s && this . global && ! t [ 0 ] . length && this . lastIndex > t . index && this . lastIndex -- } return t } , s || ( RegExp . prototype . test = function ( e ) { var t = r . exec . call ( this , e ) ; return t && this . global && ! t [ 0 ] . length && this . lastIndex > t . index && this . lastIndex -- , ! ! t } ) ) } ) , ace . define ( "ace/lib/es5-shim" , [ "require" , "exports" , "module" ] , function ( e , t , n ) { function r ( ) { } function w ( e ) { try { return Object . defineProperty ( e , "sentinel" , { } ) , "sentinel" in e } catch ( t ) { } } function H ( e ) { return e = + e , e !== e ? e = 0 : 0 !== e && e !== 1 / 0 && e !== - 1 / 0 && ( e = ( e > 0 || - 1 ) * Math . floor ( Math . abs ( e ) ) ) , e } Function . prototype . bind || ( Function . prototype . bind = function ( t ) { var n = this ; if ( "function" != typeof n ) throw new TypeError ( "Function.prototype.bind called on incompatible " + n ) ; var i = u . call ( arguments , 1 ) , s = function ( ) { if ( this instanceof s ) { var e = n . apply ( this , i . concat ( u . call ( arguments ) ) ) ; return Object ( e ) === e ? e : this } return n . apply ( t , i . concat ( u . call ( arguments ) ) ) } ; return n . prototype && ( r . prototype = n . prototype , s . prototype = new r , r . prototype = null ) , s } ) ; var l , c , h , p , d , i = Function . prototype . call , s = Array . prototype , o = Object . prototype , u = s . slice , a = i . bind ( o . toString ) , f = i . bind ( o . hasOwnProperty ) ; if ( ( d = f ( o , "__defineGetter__" ) ) && ( l = i . bind ( o . _ _defineGetter _ _ ) , c = i . bind ( o . _ _defineSetter _ _ ) , h = i . bind ( o . _ _lookupGetter _ _ ) , p = i . bind ( o . _ _lookupSetter _ _ ) ) , 2 != [ 1 , 2 ] . splice ( 0 ) . length ) if ( function ( ) { function e ( e ) { var t = new Array ( e + 2 ) ; return t [ 0 ] = t [ 1 ] = 0 , t } var n , t = [ ] ; if ( t . splice . apply ( t , e ( 20 ) ) , t . splice . apply ( t , e ( 26 ) ) , n = t . length , t . splice ( 5 , 0 , "XXX" ) , n + 1 == t . length , n + 1 == t . length ) return ! 0 } ( ) ) { var v = Array . prototype . splice ; Array . prototype . splice = function ( e , t ) { return arguments . length ? v . apply ( this , [ void 0 === e ? 0 : e , void 0 === t ? this . length - e : t ] . concat ( u . call ( arguments , 2 ) ) ) : [ ] } } else Array . prototype . splice = function ( e , t ) { var n = this . length ; e > 0 ? e > n && ( e = n ) : void 0 == e ? e = 0 : e < 0 && ( e = Math . max ( n + e , 0 ) ) , e + t < n || ( t = n - e ) ; var r = this . slice ( e , e + t ) , i = u . call ( arguments , 2 ) , s = i . length ; if ( e === n ) s && this . push . apply ( this , i ) ; else { var o = Math . min ( t , n - e ) , a = e + o , f = a + s - o , l = n - a , c = n - o ; if ( f < a ) for ( var h = 0 ; h < l ; ++ h ) this [ f + h ] = this [ a + h ] ; else if ( f > a ) for ( h = l ; h -- ; ) this [ f + h ] = this [ a + h ] ; if ( s && e === c ) this . length = c , this . push . apply ( this , i ) ; else for ( this . length = c + s , h = 0 ; h < s ; ++ h ) this [ e + h ] = i [ h ] } return r } ; Array . isArray || ( Array . isArray = function ( t ) { return "[object Array]" == a ( t ) } ) ; var m = Object ( "a" ) , g = "a" != m [ 0 ] || ! ( 0 in m ) ; if ( Array . prototype . forEach || ( Array . prototype . forEach = function ( t ) { var n = F ( this ) , r = g && "[object String]" == a ( this ) ? this . split ( "" ) : n , i = arguments [ 1 ] , s = - 1 , o = r . length >>> 0 ; if ( "[object Function]" != a ( t ) ) throw new TypeError ; for ( ; ++ s < o ; ) s in r && t . call ( i , r [ s ] , s , n ) } ) , Array . prototype . map || ( Array . prototype . map = function ( t ) { var n = F ( this ) , r = g && "[object String]" == a ( this ) ? this . split ( "" ) : n , i = r . length >>> 0 , s = Array ( i ) , o = arguments [ 1 ] ; if ( "[object Function]" != a ( t ) ) throw new TypeError ( t + " is not a function" ) ; for ( var u = 0 ; u < i ; u ++ ) u in r && ( s [ u ] = t . call ( o , r [ u ] , u , n ) ) ; return s } ) , Array . prototype . filter || ( Array . prototype . filter = function ( t ) { var o , n = F ( this ) , r = g && "[object String]" == a ( this ) ? this . split ( "" ) : n , i = r . length >>> 0 , s = [ ] , u = arguments [ 1 ] ; if ( "[object Function]" != a ( t ) ) throw new TypeError ( t + " is not a function" ) ; for ( var f = 0 ; f < i ; f ++ ) f in r && ( o = r [ f ] , t . call ( u , o , f , n ) && s . push ( o ) ) ; return s } ) , Array . prototype . every || ( Array . prototype . every = function ( t ) { var n = F ( this ) , r = g && "[object String]" == a ( this ) ? this . split ( "" ) : n , i = r . length >>> 0 , s = arguments [ 1 ] ; if ( "[object Function]" != a ( t ) ) throw new TypeError ( t + " is not a function" ) ; for ( var o = 0 ; o < i ; o ++ ) if ( o in r && ! t . call ( s , r [ o ] , o , n ) ) return ! 1 ; return ! 0 } ) , Array . prototype . some || ( Array . prototype . some = function ( t ) { var n = F ( this ) , r = g && "[object String]" == a ( this ) ? this . split ( "" ) : n , i = r . length >>> 0 , s = arguments [ 1 ] ; if ( "[object Function]" != a ( t ) ) throw new TypeError ( t + " is not a function" ) ; for ( var o = 0 ; o < i ; o ++ ) if ( o in r && t . call ( s , r [ o ] , o , n ) ) return ! 0 ; return ! 1 } ) , Array . prototype . reduce || ( Array . prototype . reduce = function ( t ) { var n = F ( this ) , r = g && "[object String]" == a ( this ) ? this . split ( "" ) : n , i = r . length >>> 0 ; if ( "[object Function]" != a ( t ) ) throw new TypeError ( t + " is not a function" ) ; if ( ! i && 1 == arguments . length ) throw new TypeError ( "reduce of empty array with no initial value" ) ; var o , s = 0 ; if ( arguments . length >= 2 ) o = arguments [ 1 ] ; else for ( ; ; ) { if ( s in r ) { o = r [ s ++ ] ; break } if ( ++ s >= i ) throw new TypeError ( "reduce of empty array with no initial value" ) } for ( ; s < i ; s ++ ) s in r && ( o = t . call ( void 0 , o , r [ s ] , s , n Line truncated
} , this . startSelect = function ( e , t ) { e = e || this . editor . renderer . screenToTextCoordinates ( this . x , this . y ) ; var n = this . editor ; n . $blockScrolling ++ , this . mousedownEvent . getShiftKey ( ) ? n . selection . selectToPosition ( e ) : t || n . selection . moveToPosition ( e ) , t || this . select ( ) , n . renderer . scroller . setCapture && n . renderer . scroller . setCapture ( ) , n . setStyle ( "ace_selecting" ) , this . setState ( "select" ) , n . $blockScrolling -- } , this . select = function ( ) { var e , t = this . editor , n = t . renderer . screenToTextCoordinates ( this . x , this . y ) ; if ( t . $blockScrolling ++ , this . $clickSelection ) { var r = this . $clickSelection . comparePoint ( n ) ; if ( r == - 1 ) e = this . $clickSelection . end ; else if ( 1 == r ) e = this . $clickSelection . start ; else { var i = f ( this . $clickSelection , n ) ; n = i . cursor , e = i . anchor } t . selection . setSelectionAnchor ( e . row , e . column ) } t . selection . selectToPosition ( n ) , t . $blockScrolling -- , t . renderer . scrollCursorIntoView ( ) } , this . extendSelectionBy = function ( e ) { var t , n = this . editor , r = n . renderer . screenToTextCoordinates ( this . x , this . y ) , i = n . selection [ e ] ( r . row , r . column ) ; if ( n . $blockScrolling ++ , this . $clickSelection ) { var s = this . $clickSelection . comparePoint ( i . start ) , o = this . $clickSelection . comparePoint ( i . end ) ; if ( s == - 1 && o <= 0 ) t = this . $clickSelection . end , i . end . row == r . row && i . end . column == r . column || ( r = i . start ) ; else if ( 1 == o && s >= 0 ) t = this . $clickSelection . start , i . start . row == r . row && i . start . column == r . column || ( r = i . end ) ; else if ( s == - 1 && 1 == o ) r = i . end , t = i . start ; else { var u = f ( this . $clickSelection , r ) ; r = u . cursor , t = u . anchor } n . selection . setSelectionAnchor ( t . row , t . column ) } n . selection . selectToPosition ( r ) , n . $blockScrolling -- , n . renderer . scrollCursorIntoView ( ) } , this . selectEnd = this . selectAllEnd = this . selectByWordsEnd = this . selectByLinesEnd = function ( ) { this . $clickSelection = null , this . editor . unsetStyle ( "ace_selecting" ) , this . editor . renderer . scroller . releaseCapture && this . editor . renderer . scroller . releaseCapture ( ) } , this . focusWait = function ( ) { var e = a ( this . mousedownEvent . x , this . mousedownEvent . y , this . x , this . y ) , t = Date . now ( ) ; ( e > o || t - this . mousedownEvent . time > this . $focusTimout ) && this . startSelect ( this . mousedownEvent . getDocumentPosition ( ) ) } , this . onDoubleClick = function ( e ) { var t = e . getDocumentPosition ( ) , n = this . editor , r = n . session , i = r . getBracketRange ( t ) ; i ? ( i . isEmpty ( ) && ( i . start . column -- , i . end . column ++ ) , this . setState ( "select" ) ) : ( i = n . selection . getWordRange ( t . row , t . column ) , this . setState ( "selectByWords" ) ) , this . $clickSelection = i , this . select ( ) } , this . onTripleClick = function ( e ) { var t = e . getDocumentPosition ( ) , n = this . editor ; this . setState ( "selectByLines" ) ; var r = n . getSelectionRange ( ) ; r . isMultiLine ( ) && r . contains ( t . row , t . column ) ? ( this . $clickSelection = n . selection . getLineRange ( r . start . row ) , this . $clickSelection . end = n . selection . getLineRange ( r . end . row ) . end ) : this . $clickSelection = n . selection . getLineRange ( t . row ) , this . select ( ) } , this . onQuadClick = function ( e ) { var t = this . editor ; t . selectAll ( ) , this . $clickSelection = t . getSelectionRange ( ) , this . setState ( "selectAll" ) } , this . onMouseWheel = function ( e ) { if ( ! e . getAccelKey ( ) ) { e . getShiftKey ( ) && e . wheelY && ! e . wheelX && ( e . wheelX = e . wheelY , e . wheelY = 0 ) ; var t = e . domEvent . timeStamp , n = t - ( this . $lastScrollTime || 0 ) , r = this . editor , i = r . renderer . isScrollableBy ( e . wheelX * e . speed , e . wheelY * e . speed ) ; return i || n < 200 ? ( this . $lastScrollTime = t , r . renderer . scrollBy ( e . wheelX * e . speed , e . wheelY * e . speed ) , e . stop ( ) ) : void 0 } } , this . onTouchMove = function ( e ) { var t = e . domEvent . timeStamp , n = t - ( this . $lastScrollTime || 0 ) , r = this . editor , i = r . renderer . isScrollableBy ( e . wheelX * e . speed , e . wheelY * e . speed ) ; if ( i || n < 200 ) return this . $lastScrollTime = t , r . renderer . scrollBy ( e . wheelX * e . speed , e . wheelY * e . speed ) , e . stop ( ) } } ) . call ( u . prototype ) , t . DefaultHandlers = u } ) , ace . define ( "ace/tooltip" , [ "require" , "exports" , "module" , "ace/lib/oop" , "ace/lib/dom" ] , function ( e , t , n ) { "use strict" ; function s ( e ) { this . isOpen = ! 1 , this . $element = null , this . $parentNode = e } var i = ( e ( "./lib/oop" ) , e ( "./lib/dom" ) ) ; ( function ( ) { this . $init = function ( ) { return this . $element = i . createElement ( "div" ) , this . $element . className = "ace_tooltip" , this . $element . style . display = "none" , this . $parentNode . appendChild ( this . $element ) , this . $element } , this . getElement = function ( ) { return this . $element || this . $init ( ) } , this . setText = function ( e ) { i . setInnerText ( this . getElement ( ) , e ) } , this . setHtml = function ( e ) { this . getElement ( ) . innerHTML = e } , this . setPosition = function ( e , t ) { this . getElement ( ) . style . left = e + "px" , this . getElement ( ) . style . top = t + "px" } , this . setClassName = function ( e ) { i . addCssClass ( this . getElement ( ) , e ) } , this . show = function ( e , t , n ) { null != e && this . setText ( e ) , null != t && null != n && this . setPosition ( t , n ) , this . isOpen || ( this . getElement ( ) . style . display = "block" , this . isOpen = ! 0 ) } , this . hide = function ( ) { this . isOpen && ( this . getElement ( ) . style . display = "none" , this . isOpen = ! 1 ) } , this . getHeight = function ( ) { return this . getElement ( ) . offsetHeight } , this . getWidth = function ( ) { return this . getElement ( ) . offsetWidth } } ) . call ( s . prototype ) , t . Tooltip = s } ) , ace . define ( "ace/mouse/default_gutter_handler" , [ "require" , "exports" , "module" , "ace/lib/dom" , "ace/lib/oop" , "ace/lib/event" , "ace/tooltip" ] , function ( e , t , n ) { "use strict" ; function u ( e ) { function l ( ) { var r = u . getDocumentPosition ( ) . row , s = n . $annotations [ r ] ; if ( ! s ) return c ( ) ; var o = t . session . getLength ( ) ; if ( r == o ) { var
Line truncated
var t = this ; this . lead . on ( "change" , function ( e ) { t . _emit ( "changeCursor" ) , t . $isEmpty || t . _emit ( "changeSelection" ) , ! t . $keepDesiredColumnOnChange && e . old . column != e . value . column && ( t . $desiredColumn = null ) } ) , this . selectionAnchor . on ( "change" , function ( ) { t . $isEmpty || t . _emit ( "changeSelection" ) } ) } ; ( function ( ) { r . implement ( this , s ) , this . isEmpty = function ( ) { return this . $isEmpty || this . anchor . row == this . lead . row && this . anchor . column == this . lead . column } , this . isMultiLine = function ( ) { return ! this . isEmpty ( ) && this . getRange ( ) . isMultiLine ( ) } , this . getCursor = function ( ) { return this . lead . getPosition ( ) } , this . setSelectionAnchor = function ( e , t ) { this . anchor . setPosition ( e , t ) , this . $isEmpty && ( this . $isEmpty = ! 1 , this . _emit ( "changeSelection" ) ) } , this . getSelectionAnchor = function ( ) { return this . $isEmpty ? this . getSelectionLead ( ) : this . anchor . getPosition ( ) } , this . getSelectionLead = function ( ) { return this . lead . getPosition ( ) } , this . shiftSelection = function ( e ) { if ( this . $isEmpty ) return void this . moveCursorTo ( this . lead . row , this . lead . column + e ) ; var t = this . getSelectionAnchor ( ) , n = this . getSelectionLead ( ) , r = this . isBackwards ( ) ; ( ! r || 0 !== t . column ) && this . setSelectionAnchor ( t . row , t . column + e ) , ( r || 0 !== n . column ) && this . $moveSelection ( function ( ) { this . moveCursorTo ( n . row , n . column + e ) } ) } , this . isBackwards = function ( ) { var e = this . anchor , t = this . lead ; return e . row > t . row || e . row == t . row && e . column > t . column } , this . getRange = function ( ) { var e = this . anchor , t = this . lead ; return this . isEmpty ( ) ? o . fromPoints ( t , t ) : this . isBackwards ( ) ? o . fromPoints ( t , e ) : o . fromPoints ( e , t ) } , this . clearSelection = function ( ) { this . $isEmpty || ( this . $isEmpty = ! 0 , this . _emit ( "changeSelection" ) ) } , this . selectAll = function ( ) { var e = this . doc . getLength ( ) - 1 ; this . setSelectionAnchor ( 0 , 0 ) , this . moveCursorTo ( e , this . doc . getLine ( e ) . length ) } , this . setRange = this . setSelectionRange = function ( e , t ) { t ? ( this . setSelectionAnchor ( e . end . row , e . end . column ) , this . selectTo ( e . start . row , e . start . column ) ) : ( this . setSelectionAnchor ( e . start . row , e . start . column ) , this . selectTo ( e . end . row , e . end . column ) ) , this . getRange ( ) . isEmpty ( ) && ( this . $isEmpty = ! 0 ) , this . $desiredColumn = null } , this . $moveSelection = function ( e ) { var t = this . lead ; this . $isEmpty && this . setSelectionAnchor ( t . row , t . column ) , e . call ( this ) } , this . selectTo = function ( e , t ) { this . $moveSelection ( function ( ) { this . moveCursorTo ( e , t ) } ) } , this . selectToPosition = function ( e ) { this . $moveSelection ( function ( ) { this . moveCursorToPosition ( e ) } ) } , this . moveTo = function ( e , t ) { this . clearSelection ( ) , this . moveCursorTo ( e , t ) } , this . moveToPosition = function ( e ) { this . clearSelection ( ) , this . moveCursorToPosition ( e ) } , this . selectUp = function ( ) { this . $moveSelection ( this . moveCursorUp ) } , this . selectDown = function ( ) { this . $moveSelection ( this . moveCursorDown ) } , this . selectRight = function ( ) { this . $moveSelection ( this . moveCursorRight ) } , this . selectLeft = function ( ) { this . $moveSelection ( this . moveCursorLeft ) } , this . selectLineStart = function ( ) { this . $moveSelection ( this . moveCursorLineStart ) } , this . selectLineEnd = function ( ) { this . $moveSelection ( this . moveCursorLineEnd ) } , this . selectFileEnd = function ( ) { this . $moveSelection ( this . moveCursorFileEnd ) } , this . selectFileStart = function ( ) { this . $moveSelection ( this . moveCursorFileStart ) } , this . selectWordRight = function ( ) { this . $moveSelection ( this . moveCursorWordRight ) } , this . selectWordLeft = function ( ) { this . $moveSelection ( this . moveCursorWordLeft ) } , this . getWordRange = function ( e , t ) { if ( "undefined" == typeof t ) { var n = e || this . lead ; e = n . row , t = n . column } return this . session . getWordRange ( e , t ) } , this . selectWord = function ( ) { this . setSelectionRange ( this . getWordRange ( ) ) } , this . selectAWord = function ( ) { var e = this . getCursor ( ) , t = this . session . getAWordRange ( e . row , e . column ) ; this . setSelectionRange ( t ) } , this . getLineRange = function ( e , t ) { var r , n = "number" == typeof e ? e : this . lead . row , i = this . session . getFoldLine ( n ) ; return i ? ( n = i . start . row , r = i . end . row ) : r = n , t === ! 0 ? new o ( n , 0 , r , this . session . getLine ( r ) . length ) : new o ( n , 0 , r + 1 , 0 ) } , this . selectLine = function ( ) { this . setSelectionRange ( this . getLineRange ( ) ) } , this . moveCursorUp = function ( ) { this . moveCursorBy ( - 1 , 0 ) } , this . moveCursorDown = function ( ) { this . moveCursorBy ( 1 , 0 ) } , this . moveCursorLeft = function ( ) { var t , e = this . lead . getPosition ( ) ; if ( t = this . session . getFoldAt ( e . row , e . column , - 1 ) ) this . moveCursorTo ( t . start . row , t . start . column ) ; else if ( 0 === e . column ) e . row > 0 && this . moveCursorTo ( e . row - 1 , this . doc . getLine ( e . row - 1 ) . length ) ; else { var n = this . session . getTabSize ( ) ; this . session . isTabStop ( e ) && this . doc . getLine ( e . row ) . slice ( e . column - n , e . column ) . split ( " " ) . length - 1 == n ? this . moveCursorBy ( 0 , - n ) : this . moveCursorBy ( 0 , - 1 ) } } , this . moveCursorRight = function ( ) { var t , e = this . lead . getPosition ( ) ; if ( t = this . session . getFoldAt ( e . row , e . column , 1 ) ) this . moveCursorTo ( t . end . row , t . end . column ) ; else if ( this . lead . column == this . doc . getLine ( this . lead . row ) . length ) this . lead . row < this . doc . getLength ( ) - 1 && this . moveCursorTo ( this . lead . row + 1 , 0 ) ; else { var n = this . session . getTabSize ( ) , e = this . lead ; this . session . isTabStop ( e ) && this . doc . getLine ( e . row ) . slice ( e . column , e . column + n ) . split ( " " ) . length - 1 == n ? this . moveCursorBy ( 0 , n ) : this . moveCursorBy ( 0 , 1 ) } } , this . moveCursorLineStart = function ( ) { var e = this . lead . row , t = this . lead . column , n = this . session . documentToScreenRow ( e , t ) , r = this . session . screenToDo Line truncated
Lt : "01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC" , Lm : "02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F" , Lo : "01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-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-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-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-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC" , M : "0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26" , Mn : " 0300 - 036 F0483 - 04870591 - 05 BD05BF05C105C205C405C505C70610 - 061 A064B - 065E067006 D6 - 06 DC06DF - 06E406 E706E806EA - 06 ED07110730 - 074 A07A6 - 07 B007EB - 07 F30816 - 0819081 B - 08230825 - 08270829 - 082 D0900 - 0902093 C0941 - 0948094 D0951 - 095509620963098109 BC09C1 - 09 C409CD09E209E30A010A020A3C0A410A420A470A480A4B - 0 A4D0A510A700A710A750A810A820ABC0AC1 - 0 AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41 - 0 B440B4D0B560B620B630B820BC00BCD0C3E - 0 C400C46 - 0 C480C4A - 0 C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41 - 0 D440D4D0D620D630DCA0DD2 - 0 DD40DD60E310E34 - 0E3 A0E47 - 0E4 E0EB10EB4 - 0 EB90EBB0EBC0EC8 - 0 ECD0F180F190F350F370F390F71 - 0 F7E0F80 - 0 F840F860F870F90 - 0 F970F99 - 0 FBC0FC6102D - 10301032 - 10371039103 A103D103E10581059105E - 10601071 - 1074108210851086108 D109D135F1712 - 17141732 - 1734175217531772177317 B7 - 17 BD17C617C9 - 17 D317DD180B - 180 D18A91920 - 19221927192819321939 - 193 B1A171A181A561A58 - 1 A5E1A601A621A65 - 1 A6C1A73 - 1 A7C1A7F1B00 - 1 B031B341B36 - 1 B3A1B3C1B421B6B - 1 B731B801B811BA2 - 1 BA51BA81BA91C2C - 1 C331C361C371CD0 - 1 CD21CD4 - 1 CE01CE2 - 1 CE81CED1DC0 - 1 DE61DFD - 1 DFF20D0 - 20 DC20E120E5 - 20 F02CEF - 2 CF12DE0 - 2 DFF302A - 302 F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0 - A8F1A926 - A92DA947 - A951A980 - A982A9B3A9B6 - A9B9A9BCAA29 - AA2EAA31AA32AA35AA3 Line truncated
for ( var n = this . $lines || this . getAllLines ( ) , r = this . getNewLineCharacter ( ) . length , i = 0 , s = Math . min ( e . row , n . length ) , o = t || 0 ; o < s ; ++ o ) i += n [ o ] . length + r ; return i + e . column } } ) . call ( a . prototype ) , t . Document = a } ) , ace . define ( "ace/background_tokenizer" , [ "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 = function ( e , t ) { this . running = ! 1 , this . lines = [ ] , this . states = [ ] , this . currentLine = 0 , this . tokenizer = e ; var n = this ; this . $worker = function ( ) { if ( n . running ) { for ( var e = new Date , t = n . currentLine , r = - 1 , i = n . doc , s = t ; n . lines [ t ] ; ) t ++ ; var o = i . getLength ( ) , u = 0 ; for ( n . running = ! 1 ; t < o ; ) { n . $tokenizeRow ( t ) , r = t ; do t ++ ; while ( n . lines [ t ] ) ; if ( u ++ , u % 5 === 0 && new Date - e > 20 ) { n . running = setTimeout ( n . $worker , 20 ) ; break } } n . currentLine = t , s <= r && n . fireUpdateEvent ( s , r ) } } } ; ( function ( ) { r . implement ( this , i ) , this . setTokenizer = function ( e ) { this . tokenizer = e , this . lines = [ ] , this . states = [ ] , this . start ( 0 ) } , this . setDocument = function ( e ) { this . doc = e , this . lines = [ ] , this . states = [ ] , this . stop ( ) } , this . fireUpdateEvent = function ( e , t ) { var n = { first : e , last : t } ; this . _signal ( "update" , { data : n } ) } , this . start = function ( e ) { this . currentLine = Math . min ( e || 0 , this . currentLine , this . doc . getLength ( ) ) , this . lines . splice ( this . currentLine , this . lines . length ) , this . states . splice ( this . currentLine , this . states . length ) , this . stop ( ) , this . running = setTimeout ( this . $worker , 700 ) } , this . scheduleStart = function ( ) { this . running || ( this . running = setTimeout ( this . $worker , 700 ) ) } , this . $updateOnChange = function ( e ) { var t = e . start . row , n = e . end . row - t ; if ( 0 === n ) this . lines [ t ] = null ; else if ( "remove" == e . action ) this . lines . splice ( t , n + 1 , null ) , this . states . splice ( t , n + 1 , null ) ; else { var r = Array ( n + 1 ) ; r . unshift ( t , 1 ) , this . lines . splice . apply ( this . lines , r ) , this . states . splice . apply ( this . states , r ) } this . currentLine = Math . min ( t , this . currentLine , this . doc . getLength ( ) ) , this . stop ( ) } , this . stop = function ( ) { this . running && clearTimeout ( this . running ) , this . running = ! 1 } , this . getTokens = function ( e ) { return this . lines [ e ] || this . $tokenizeRow ( e ) } , this . getState = function ( e ) { return this . currentLine == e && this . $tokenizeRow ( e ) , this . states [ e ] || "start" } , this . $tokenizeRow = function ( e ) { var t = this . doc . getLine ( e ) , n = this . states [ e - 1 ] , r = this . tokenizer . getLineTokens ( t , n , e ) ; return this . states [ e ] + "" != r . state + "" ? ( this . states [ e ] = r . state , this . lines [ e + 1 ] = null , this . currentLine > e + 1 && ( this . currentLine = e + 1 ) ) : this . currentLine == e && ( this . currentLine = e + 1 ) , this . lines [ e ] = r . tokens } } ) . call ( s . prototype ) , t . BackgroundTokenizer = s } ) , ace . define ( "ace/search_highlight" , [ "require" , "exports" , "module" , "ace/lib/lang" , "ace/lib/oop" , "ace/range" ] , function ( e , t , n ) { "use strict" ; var r = e ( "./lib/lang" ) , s = ( e ( "./lib/oop" ) , e ( "./range" ) . Range ) , o = function ( e , t , n ) { this . setRegexp ( e ) , this . clazz = t , this . type = n || "text" } ; ( function ( ) { this . MAX _RANGES = 500 , this . setRegexp = function ( e ) { this . regExp + "" != e + "" && ( this . regExp = e , this . cache = [ ] ) } , this . update = function ( e , t , n , i ) { if ( this . regExp ) for ( var o = i . firstRow , u = i . lastRow , a = o ; a <= u ; a ++ ) { var f = this . cache [ a ] ; null == f && ( f = r . getMatchOffsets ( n . getLine ( a ) , this . regExp ) , f . length > this . MAX _RANGES && ( f = f . slice ( 0 , this . MAX _RANGES ) ) , f = f . map ( function ( e ) { return new s ( a , e . offset , a , e . offset + e . length ) } ) , this . cache [ a ] = f . length ? f : "" ) ; for ( var l = f . length ; l -- ; ) t . drawSingleLineMarker ( e , f [ l ] . toScreenRange ( n ) , this . clazz , i ) } } } ) . call ( o . prototype ) , t . SearchHighlight = o } ) , ace . define ( "ace/edit_session/fold_line" , [ "require" , "exports" , "module" , "ace/range" ] , function ( e , t , n ) { "use strict" ; function i ( e , t ) { this . foldData = e , Array . isArray ( t ) ? this . folds = t : t = this . folds = [ t ] ; var n = t [ t . length - 1 ] ; this . range = new r ( t [ 0 ] . start . row , t [ 0 ] . start . column , n . end . row , n . end . column ) , this . start = this . range . start , this . end = this . range . end , this . folds . forEach ( function ( e ) { e . setFoldLine ( this ) } , this ) } var r = e ( "../range" ) . Range ; ( function ( ) { this . shiftRow = function ( e ) { this . start . row += e , this . end . row += e , this . folds . forEach ( function ( t ) { t . start . row += e , t . end . row += e } ) } , this . addFold = function ( e ) { if ( e . sameRow ) { if ( e . start . row < this . startRow || e . endRow > this . endRow ) throw new Error ( "Can't add a fold to this FoldLine as it has no connection" ) ; this . folds . push ( e ) , this . folds . sort ( function ( e , t ) { return - e . range . compareEnd ( t . start . row , t . start . column ) } ) , this . range . compareEnd ( e . start . row , e . start . column ) > 0 ? ( this . end . row = e . end . row , this . end . column = e . end . column ) : this . range . compareStart ( e . end . row , e . end . column ) < 0 && ( this . start . row = e . start . row , this . start . column = e . start . column ) } else if ( e . start . row == this . end . row ) this . folds . push ( e ) , this . end . row = e . end . row , this . end . column = e . end . column ; else { if ( e . end . row != this . start . row ) throw new Error ( "Trying to add fold to FoldRow that doesn't have a matching row" ) ; this . folds . unshift ( e ) , this . start . row = e . start . row , this . start . column = e . start . column } e . foldLine = this } , this . containsRow = function ( e ) { return e >= this . start . row && e <= this . end . row } , this . walk = function ( e , t , n ) { var s , o , u , r = 0 , i = this . folds , a = ! 0 ; null == t && ( t = this . end . row , n = this . end . column ) ; for ( var f = 0 ; f < i . length ; f ++ ) { if ( s = i [ f ] , o = s . range . compareStart ( t , n ) , o == - 1 ) return void e ( null , t , n , r , a ) ; if ( u = e ( null , s . start . row , s . start . column , r , a ) , u = ! u && e ( s . placeholder , s . start . row , s . start . c Line truncated
} , this . onReloadTokenizer = function ( e ) { var t = e . data ; this . bgTokenizer . start ( t . first ) , this . _signal ( "tokenizerUpdate" , e ) } , this . $modes = { } , this . $mode = null , this . $modeId = null , this . setMode = function ( e , t ) { if ( e && "object" == typeof e ) { if ( e . getTokenizer ) return this . $onChangeMode ( e ) ; var n = e , r = n . path } else r = e || "ace/mode/text" ; return this . $modes [ "ace/mode/text" ] || ( this . $modes [ "ace/mode/text" ] = new a ) , this . $modes [ r ] && ! n ? ( this . $onChangeMode ( this . $modes [ r ] ) , void ( t && t ( ) ) ) : ( this . $modeId = r , s . loadModule ( [ "mode" , r ] , function ( e ) { return this . $modeId !== r ? t && t ( ) : ( this . $modes [ r ] && ! n ? this . $onChangeMode ( this . $modes [ r ] ) : e && e . Mode && ( e = new e . Mode ( n ) , n || ( this . $modes [ r ] = e , e . $id = r ) , this . $onChangeMode ( e ) ) , void ( t && t ( ) ) ) } . bind ( this ) ) , this . $mode || this . $onChangeMode ( this . $modes [ "ace/mode/text" ] , ! 0 ) , void 0 ) } , this . $onChangeMode = function ( e , t ) { if ( t || ( this . $modeId = e . $id ) , this . $mode !== e ) { this . $mode = e , this . $stopWorker ( ) , this . $useWorker && this . $startWorker ( ) ; var n = e . getTokenizer ( ) ; if ( void 0 !== n . addEventListener ) { var r = this . onReloadTokenizer . bind ( this ) ; n . addEventListener ( "update" , r ) } if ( this . bgTokenizer ) this . bgTokenizer . setTokenizer ( n ) ; else { this . bgTokenizer = new c ( n ) ; var i = this ; this . bgTokenizer . addEventListener ( "update" , function ( e ) { i . _signal ( "tokenizerUpdate" , e ) } ) } this . bgTokenizer . setDocument ( this . getDocument ( ) ) , this . tokenRe = e . tokenRe , this . nonTokenRe = e . nonTokenRe , t || ( e . attachToSession && e . attachToSession ( this ) , this . $options . wrapMethod . set . call ( this , this . $wrapMethod ) , this . $setFolding ( e . foldingRules ) , this . bgTokenizer . start ( 0 ) , this . _emit ( "changeMode" ) ) } } , this . $stopWorker = function ( ) { this . $worker && ( this . $worker . terminate ( ) , this . $worker = null ) } , this . $startWorker = function ( ) { try { this . $worker = this . $mode . createWorker ( this ) } catch ( e ) { s . warn ( "Could not load worker" , e ) , this . $worker = null } } , this . getMode = function ( ) { return this . $mode } , this . $scrollTop = 0 , this . setScrollTop = function ( e ) { this . $scrollTop === e || isNaN ( e ) || ( this . $scrollTop = e , this . _signal ( "changeScrollTop" , e ) ) } , this . getScrollTop = function ( ) { return this . $scrollTop } , this . $scrollLeft = 0 , this . setScrollLeft = function ( e ) { this . $scrollLeft === e || isNaN ( e ) || ( this . $scrollLeft = e , this . _signal ( "changeScrollLeft" , e ) ) } , this . getScrollLeft = function ( ) { return this . $scrollLeft } , this . getScreenWidth = function ( ) { return this . $computeWidth ( ) , this . lineWidgets ? Math . max ( this . getLineWidgetMaxWidth ( ) , this . screenWidth ) : this . screenWidth } , this . getLineWidgetMaxWidth = function ( ) { if ( null != this . lineWidgetsWidth ) return this . lineWidgetsWidth ; var e = 0 ; return this . lineWidgets . forEach ( function ( t ) { t && t . screenWidth > e && ( e = t . screenWidth ) } ) , this . lineWidgetWidth = e } , this . $computeWidth = function ( e ) { if ( this . $modified || e ) { if ( this . $modified = ! 1 , this . $useWrapMode ) return this . screenWidth = this . $wrapLimit ; for ( var t = this . doc . getAllLines ( ) , n = this . $rowLengthCache , r = 0 , i = 0 , s = this . $foldData [ i ] , o = s ? s . start . row : 1 / 0 , u = t . length , a = 0 ; a < u ; a ++ ) { if ( a > o ) { if ( a = s . end . row + 1 , a >= u ) break ; s = this . $foldData [ i ++ ] , o = s ? s . start . row : 1 / 0 } null == n [ a ] && ( n [ a ] = this . $getStringScreenWidth ( t [ a ] ) [ 0 ] ) , n [ a ] > r && ( r = n [ a ] ) } this . screenWidth = r } } , this . getLine = function ( e ) { return this . doc . getLine ( e ) } , this . getLines = function ( e , t ) { return this . doc . getLines ( e , t ) } , this . getLength = function ( ) { return this . doc . getLength ( ) } , this . getTextRange = function ( e ) { return this . doc . getTextRange ( e || this . selection . getRange ( ) ) } , this . insert = function ( e , t ) { return this . doc . insert ( e , t ) } , this . remove = function ( e ) { return this . doc . remove ( e ) } , this . removeFullLines = function ( e , t ) { return this . doc . removeFullLines ( e , t ) } , this . undoChanges = function ( e , t ) { if ( e . length ) { this . $fromUndo = ! 0 ; for ( var n = null , r = e . length - 1 ; r != - 1 ; r -- ) { var i = e [ r ] ; "doc" == i . group ? ( this . doc . revertDeltas ( i . deltas ) , n = this . $getUndoSelection ( i . deltas , ! 0 , n ) ) : i . deltas . forEach ( function ( e ) { this . addFolds ( e . folds ) } , this ) } return this . $fromUndo = ! 1 , n && this . $undoSelect && ! t && this . selection . setSelectionRange ( n ) , n } } , this . redoChanges = function ( e , t ) { if ( e . length ) { this . $fromUndo = ! 0 ; for ( var n = null , r = 0 ; r < e . length ; r ++ ) { var i = e [ r ] ; "doc" == i . group && ( this . doc . applyDeltas ( i . deltas ) , n = this . $getUndoSelection ( i . deltas , ! 1 , n ) ) } return this . $fromUndo = ! 1 , n && this . $undoSelect && ! t && this . selection . setSelectionRange ( n ) , n } } , this . setUndoSelect = function ( e ) { this . $undoSelect = e } , this . $getUndoSelection = function ( e , t , n ) { function r ( e ) { return t ? "insert" !== e . action : "insert" === e . action } var s , o , i = e [ 0 ] , u = ! 1 ; r ( i ) ? ( s = f . fromPoints ( i . start , i . end ) , u = ! 0 ) : ( s = f . fromPoints ( i . start , i . start ) , u = ! 1 ) ; for ( var a = 1 ; a < e . length ; a ++ ) i = e [ a ] , r ( i ) ? ( o = i . start , s . compare ( o . row , o . column ) == - 1 && s . setStart ( o ) , o = i . end , 1 == s . compare ( o . row , o . column ) && s . setEnd ( o ) , u = ! 0 ) : ( o = i . start , s . compare ( o . row , o . column ) == - 1 && ( s = f . fromPoints ( i . start , i . start ) ) , u = ! 1 ) ; if ( null != n ) { 0 === f . comparePoints ( n . start , s . start ) && ( n . start . column += s . end . column - s . start . column , n . end . column += s . end . column - s . start . column ) ; var l = n . compareRange ( s ) ; 1 == l ? s . setStart ( n . start ) : l == - 1 && s . setEnd ( n . end ) } return s } , this . replace = function ( e , t ) { return this . doc . replace ( e , t ) } , this . moveText = function ( e , t , n ) { var r = this . getTextRange ( e ) , i = this . getFoldsInRange ( e ) , s = f . fromPoints ( t , t ) ; if ( ! n ) { this . remove ( e ) ; var o = e . start . row - e . end . row , u = o ? - e . end . column : e . start . column - e . end . column ; Line truncated
readOnly : ! 0 } , { name : "selectleft" , bindKey : o ( "Shift-Left" , "Shift-Left" ) , exec : function ( e ) { e . getSelection ( ) . selectLeft ( ) } , multiSelectAction : "forEach" , scrollIntoView : "cursor" , readOnly : ! 0 } , { name : "gotoleft" , bindKey : o ( "Left" , "Left|Ctrl-B" ) , exec : function ( e , t ) { e . navigateLeft ( t . times ) } , multiSelectAction : "forEach" , scrollIntoView : "cursor" , readOnly : ! 0 } , { name : "selectwordright" , bindKey : o ( "Ctrl-Shift-Right" , "Option-Shift-Right" ) , exec : function ( e ) { e . getSelection ( ) . selectWordRight ( ) } , multiSelectAction : "forEach" , scrollIntoView : "cursor" , readOnly : ! 0 } , { name : "gotowordright" , bindKey : o ( "Ctrl-Right" , "Option-Right" ) , exec : function ( e ) { e . navigateWordRight ( ) } , multiSelectAction : "forEach" , scrollIntoView : "cursor" , readOnly : ! 0 } , { name : "selecttolineend" , bindKey : o ( "Alt-Shift-Right" , "Command-Shift-Right" ) , exec : function ( e ) { e . getSelection ( ) . selectLineEnd ( ) } , multiSelectAction : "forEach" , scrollIntoView : "cursor" , readOnly : ! 0 } , { name : "gotolineend" , bindKey : o ( "Alt-Right|End" , "Command-Right|End|Ctrl-E" ) , exec : function ( e ) { e . navigateLineEnd ( ) } , multiSelectAction : "forEach" , scrollIntoView : "cursor" , readOnly : ! 0 } , { name : "selectright" , bindKey : o ( "Shift-Right" , "Shift-Right" ) , exec : function ( e ) { e . getSelection ( ) . selectRight ( ) } , multiSelectAction : "forEach" , scrollIntoView : "cursor" , readOnly : ! 0 } , { name : "gotoright" , bindKey : o ( "Right" , "Right|Ctrl-F" ) , exec : function ( e , t ) { e . navigateRight ( t . times ) } , multiSelectAction : "forEach" , scrollIntoView : "cursor" , readOnly : ! 0 } , { name : "selectpagedown" , bindKey : "Shift-PageDown" , exec : function ( e ) { e . selectPageDown ( ) } , readOnly : ! 0 } , { name : "pagedown" , bindKey : o ( null , "Option-PageDown" ) , exec : function ( e ) { e . scrollPageDown ( ) } , readOnly : ! 0 } , { name : "gotopagedown" , bindKey : o ( "PageDown" , "PageDown|Ctrl-V" ) , exec : function ( e ) { e . gotoPageDown ( ) } , readOnly : ! 0 } , { name : "selectpageup" , bindKey : "Shift-PageUp" , exec : function ( e ) { e . selectPageUp ( ) } , readOnly : ! 0 } , { name : "pageup" , bindKey : o ( null , "Option-PageUp" ) , exec : function ( e ) { e . scrollPageUp ( ) } , readOnly : ! 0 } , { name : "gotopageup" , bindKey : "PageUp" , exec : function ( e ) { e . gotoPageUp ( ) } , readOnly : ! 0 } , { name : "scrollup" , bindKey : o ( "Ctrl-Up" , null ) , exec : function ( e ) { e . renderer . scrollBy ( 0 , - 2 * e . renderer . layerConfig . lineHeight ) } , readOnly : ! 0 } , { name : "scrolldown" , bindKey : o ( "Ctrl-Down" , null ) , exec : function ( e ) { e . renderer . scrollBy ( 0 , 2 * e . renderer . layerConfig . lineHeight ) } , readOnly : ! 0 } , { name : "selectlinestart" , bindKey : "Shift-Home" , exec : function ( e ) { e . getSelection ( ) . selectLineStart ( ) } , multiSelectAction : "forEach" , scrollIntoView : "cursor" , readOnly : ! 0 } , { name : "selectlineend" , bindKey : "Shift-End" , exec : function ( e ) { e . getSelection ( ) . selectLineEnd ( ) } , multiSelectAction : "forEach" , scrollIntoView : "cursor" , readOnly : ! 0 } , { name : "togglerecording" , bindKey : o ( "Ctrl-Alt-E" , "Command-Option-E" ) , exec : function ( e ) { e . commands . toggleRecording ( e ) } , readOnly : ! 0 } , { name : "replaymacro" , bindKey : o ( "Ctrl-Shift-E" , "Command-Shift-E" ) , exec : function ( e ) { e . commands . replay ( e ) } , readOnly : ! 0 } , { name : "jumptomatching" , bindKey : o ( "Ctrl-P" , "Ctrl-P" ) , exec : function ( e ) { e . jumpToMatching ( ) } , multiSelectAction : "forEach" , scrollIntoView : "animate" , readOnly : ! 0 } , { name : "selecttomatching" , bindKey : o ( "Ctrl-Shift-P" , "Ctrl-Shift-P" ) , exec : function ( e ) { e . jumpToMatching ( ! 0 ) } , multiSelectAction : "forEach" , scrollIntoView : "animate" , readOnly : ! 0 } , { name : "expandToMatching" , bindKey : o ( "Ctrl-Shift-M" , "Ctrl-Shift-M" ) , exec : function ( e ) { e . jumpToMatching ( ! 0 , ! 0 ) } , multiSelectAction : "forEach" , scrollIntoView : "animate" , readOnly : ! 0 } , { name : "passKeysToBrowser" , bindKey : o ( null , null ) , exec : function ( ) { } , passEvent : ! 0 , readOnly : ! 0 } , { name : "copy" , exec : function ( e ) { } , readOnly : ! 0 } , { name : "cut" , exec : function ( e ) { var t = e . getSelectionRange ( ) ; e . _emit ( "cut" , t ) , e . selection . isEmpty ( ) || ( e . session . remove ( t ) , e . clearSelection ( ) ) } , scrollIntoView : "cursor" , multiSelectAction : "forEach" } , { name : "paste" , exec : function ( e , t ) { e . $handlePaste ( t ) } , scrollIntoView : "cursor" } , { name : "removeline" , bindKey : o ( "Ctrl-D" , "Command-D" ) , exec : function ( e ) { e . removeLines ( ) } , scrollIntoView : "cursor" , multiSelectAction : "forEachLine" } , { name : "duplicateSelection" , bindKey : o ( "Ctrl-Shift-D" , "Command-Shift-D" ) , exec : function ( e ) { e . duplicateSelection ( ) } , scrollIntoView : "cursor" , multiSelectAction : "forEach" } , { name : "sortlines" , bindKey : o ( "Ctrl-Alt-S" , "Command-Alt-S" ) , exec : function ( e ) { e . sortLines ( ) } , scrollIntoView : "selection" , multiSelectAction : "forEachLine" } , { name : "togglecomment" , bindKey : o ( "Ctrl-/" , "Command-/" ) , exec : function ( e ) { e . toggleCommentLines ( ) } , multiSelectAction : "forEachLine" , scrollIntoView : "selectionPart" } , { name : "toggleBlockComment" , bindKey : o ( "Ctrl-Shift-/" , "Command-Shift-/" ) , exec : function ( e ) { e . toggleBlockComment ( ) } , multiSelectAction : "forEach" , scrollIntoView : "selectionPart" } , { name : "modifyNumberUp" , bindKey : o ( "Ctrl-Shift-Up" , "Alt-Shift-Up" ) , exec : function ( e ) { e . modifyNumber ( 1 ) } , scrollIntoView : "cursor" , multiSelectAction : "forEach" } , { name : "modifyNumberDown" , bindKey : o ( "Ctrl-Shift-Down" , "Alt-Shift-Down" ) , exec : function ( e ) { e . modifyNumber ( - 1 ) } , scrollIntoView : "cursor" , multiSelectAction : "forEach" } , { name : "replace" , bindKey : o ( "Ctrl-H" , "Command-Option-F" ) , exec : function ( e ) { i . loadModule ( "ace/ext/searchbox" , function ( t ) { t . Search ( e , ! 0 ) } ) } } , { name : "undo" , bindKey : o ( "Ctrl-Z" , " Command Line truncated
r . start . row = i , r . end . row = i , r . end . column = s . length , t . replace ( r , n [ i - e . first ] ) } } , this . toggleCommentLines = function ( ) { var e = this . session . getState ( this . getCursorPosition ( ) . row ) , t = this . $getSelectedRows ( ) ; this . session . getMode ( ) . toggleCommentLines ( e , this . session , t . first , t . last ) } , this . toggleBlockComment = function ( ) { var e = this . getCursorPosition ( ) , t = this . session . getState ( e . row ) , n = this . getSelectionRange ( ) ; this . session . getMode ( ) . toggleBlockComment ( t , this . session , n , e ) } , this . getNumberAt = function ( e , t ) { var n = /[\-]?[0-9]+(?:\.[0-9]+)?/g ; n . lastIndex = 0 ; for ( var r = this . session . getLine ( e ) ; n . lastIndex < t ; ) { var i = n . exec ( r ) ; if ( i . index <= t && i . index + i [ 0 ] . length >= t ) { var s = { value : i [ 0 ] , start : i . index , end : i . index + i [ 0 ] . length } ; return s } } return null } , this . modifyNumber = function ( e ) { var t = this . selection . getCursor ( ) . row , n = this . selection . getCursor ( ) . column , r = new p ( t , n - 1 , t , n ) , i = this . session . getTextRange ( r ) ; if ( ! isNaN ( parseFloat ( i ) ) && isFinite ( i ) ) { var s = this . getNumberAt ( t , n ) ; if ( s ) { var o = s . value . indexOf ( "." ) >= 0 ? s . start + s . value . indexOf ( "." ) + 1 : s . end , u = s . start + s . value . length - o , a = parseFloat ( s . value ) ; a *= Math . pow ( 10 , u ) , e *= o !== s . end && n < o ? Math . pow ( 10 , s . end - n - 1 ) : Math . pow ( 10 , s . end - n ) , a += e , a /= Math . pow ( 10 , u ) ; var f = a . toFixed ( u ) , l = new p ( t , s . start , t , s . end ) ; this . session . replace ( l , f ) , this . moveCursorTo ( t , Math . max ( s . start + 1 , n + f . length - s . value . length ) ) } } } , this . removeLines = function ( ) { var e = this . $getSelectedRows ( ) ; this . session . removeFullLines ( e . first , e . last ) , this . clearSelection ( ) } , this . duplicateSelection = function ( ) { var e = this . selection , t = this . session , n = e . getRange ( ) , r = e . isBackwards ( ) ; if ( n . isEmpty ( ) ) { var i = n . start . row ; t . duplicateLines ( i , i ) } else { var s = r ? n . start : n . end , o = t . insert ( s , t . getTextRange ( n ) , ! 1 ) ; n . start = s , n . end = o , e . setSelectionRange ( n , r ) } } , this . moveLinesDown = function ( ) { this . $moveLines ( 1 , ! 1 ) } , this . moveLinesUp = function ( ) { this . $moveLines ( - 1 , ! 1 ) } , this . moveText = function ( e , t , n ) { return this . session . moveText ( e , t , n ) } , this . copyLinesUp = function ( ) { this . $moveLines ( - 1 , ! 0 ) } , this . copyLinesDown = function ( ) { this . $moveLines ( 1 , ! 0 ) } , this . $moveLines = function ( e , t ) { var n , r , i = this . selection ; if ( ! i . inMultiSelectMode || this . inVirtualSelectionMode ) { var s = i . toOrientedRange ( ) ; n = this . $getSelectedRows ( s ) , r = this . session . $moveLines ( n . first , n . last , t ? 0 : e ) , t && e == - 1 && ( r = 0 ) , s . moveBy ( r , 0 ) , i . fromOrientedRange ( s ) } else { var o = i . rangeList . ranges ; i . rangeList . detach ( this . session ) , this . inVirtualSelectionMode = ! 0 ; for ( var u = 0 , a = 0 , f = o . length , l = 0 ; l < f ; l ++ ) { var c = l ; o [ l ] . moveBy ( u , 0 ) , n = this . $getSelectedRows ( o [ l ] ) ; for ( var h = n . first , p = n . last ; ++ l < f ; ) { a && o [ l ] . moveBy ( a , 0 ) ; var d = this . $getSelectedRows ( o [ l ] ) ; if ( t && d . first != p ) break ; if ( ! t && d . first > p + 1 ) break ; p = d . last } for ( l -- , u = this . session . $moveLines ( h , p , t ? 0 : e ) , t && e == - 1 && ( c = l + 1 ) ; c <= l ; ) o [ c ] . moveBy ( u , 0 ) , c ++ ; t || ( u = 0 ) , a += u } i . fromOrientedRange ( i . ranges [ 0 ] ) , i . rangeList . attach ( this . session ) , this . inVirtualSelectionMode = ! 1 } } , this . $getSelectedRows = function ( e ) { return e = ( e || this . getSelectionRange ( ) ) . collapseRows ( ) , { first : this . session . getRowFoldStart ( e . start . row ) , last : this . session . getRowFoldEnd ( e . end . row ) } } , this . onCompositionStart = function ( e ) { this . renderer . showComposition ( this . getCursorPosition ( ) ) } , this . onCompositionUpdate = function ( e ) { this . renderer . setCompositionText ( e ) } , this . onCompositionEnd = function ( ) { this . renderer . hideComposition ( ) } , this . getFirstVisibleRow = function ( ) { return this . renderer . getFirstVisibleRow ( ) } , this . getLastVisibleRow = function ( ) { return this . renderer . getLastVisibleRow ( ) } , this . isRowVisible = function ( e ) { return e >= this . getFirstVisibleRow ( ) && e <= this . getLastVisibleRow ( ) } , this . isRowFullyVisible = function ( e ) { return e >= this . renderer . getFirstFullyVisibleRow ( ) && e <= this . renderer . getLastFullyVisibleRow ( ) } , this . $getVisibleRowCount = function ( ) { return this . renderer . getScrollBottomRow ( ) - this . renderer . getScrollTopRow ( ) + 1 } , this . $moveByPage = function ( e , t ) { var n = this . renderer , r = this . renderer . layerConfig , i = e * Math . floor ( r . height / r . lineHeight ) ; this . $blockScrolling ++ , t === ! 0 ? this . selection . $moveSelection ( function ( ) { this . moveCursorBy ( i , 0 ) } ) : t === ! 1 && ( this . selection . moveCursorBy ( i , 0 ) , this . selection . clearSelection ( ) ) , this . $blockScrolling -- ; var s = n . scrollTop ; n . scrollBy ( 0 , i * r . lineHeight ) , null != t && n . scrollCursorIntoView ( null , . 5 ) , n . animateScrolling ( s ) } , this . selectPageDown = function ( ) { this . $moveByPage ( 1 , ! 0 ) } , this . selectPageUp = function ( ) { this . $moveByPage ( - 1 , ! 0 ) } , this . gotoPageDown = function ( ) { this . $moveByPage ( 1 , ! 1 ) } , this . gotoPageUp = function ( ) { this . $moveByPage ( - 1 , ! 1 ) } , this . scrollPageDown = function ( ) { this . $moveByPage ( 1 ) } , this . scrollPageUp = function ( ) { this . $moveByPage ( - 1 ) } , this . scrollToRow = function ( e ) { this . renderer . scrollToRow ( e ) } , this . scrollToLine = function ( e , t , n , r ) { this . renderer . scrollToLine ( e , t , n , r ) } , this . centerSelection = function ( ) { var e = this . getSelectionRange ( ) , t = { row : Math . floor ( e . start . row + ( e . end . row - e . start . row ) / 2 ) , column : Math . floor ( e . start . column + ( e . end . column - e . start . column ) / 2 ) } ; this . renderer . alignCursor ( t , . 5 ) } , this . getCursorPosition = function ( ) { return this . selection . getCursor ( ) } , this . getCursorPositionScreen = function ( ) { return this . session . documentToScreenPosition ( this . getCursorPosition ( ) ) } , this . getSelectionRange = function ( ) { return t Line truncated
r . push ( { type : e [ i ] . type , value : o } ) , s = t + o . length , i += 1 } for ( ; s < n && i < e . length ; ) { var o = e [ i ] . value ; o . length + s > n ? r . push ( { type : e [ i ] . type , value : o . substring ( 0 , n - s ) } ) : r . push ( e [ i ] ) , s += o . length , i += 1 } } var n = this . session , r = [ ] , s = n . getTokens ( e ) ; return t . walk ( function ( e , t , o , u , a ) { null != e ? r . push ( { type : "fold" , value : e } ) : ( a && ( s = n . getTokens ( t ) ) , s . length && i ( s , u , o ) ) } , t . end . row , this . session . getLine ( t . end . row ) . length ) , r } , this . $useLineGroups = function ( ) { return this . session . getUseWrapMode ( ) } , this . destroy = function ( ) { clearInterval ( this . $pollSizeChangesTimer ) , this . $measureNode && this . $measureNode . parentNode . removeChild ( this . $measureNode ) , delete this . $measureNode } } ) . call ( a . prototype ) , t . Text = a } ) , ace . define ( "ace/layer/cursor" , [ "require" , "exports" , "module" , "ace/lib/dom" ] , function ( e , t , n ) { "use strict" ; var i , r = e ( "../lib/dom" ) , s = function ( e ) { this . element = r . createElement ( "div" ) , this . element . className = "ace_layer ace_cursor-layer" , e . appendChild ( this . element ) , void 0 === i && ( i = ! ( "opacity" in this . element . style ) ) , this . isVisible = ! 1 , this . isBlinking = ! 0 , this . blinkInterval = 1e3 , this . smoothBlinking = ! 1 , this . cursors = [ ] , this . cursor = this . addCursor ( ) , r . addCssClass ( this . element , "ace_hidden-cursors" ) , this . $updateCursors = ( i ? this . $updateVisibility : this . $updateOpacity ) . bind ( this ) } ; ( function ( ) { this . $updateVisibility = function ( e ) { for ( var t = this . cursors , n = t . length ; n -- ; ) t [ n ] . style . visibility = e ? "" : "hidden" } , this . $updateOpacity = function ( e ) { for ( var t = this . cursors , n = t . length ; n -- ; ) t [ n ] . style . opacity = e ? "" : "0" } , this . $padding = 0 , this . setPadding = function ( e ) { this . $padding = e } , this . setSession = function ( e ) { this . session = e } , this . setBlinking = function ( e ) { e != this . isBlinking && ( this . isBlinking = e , this . restartTimer ( ) ) } , this . setBlinkInterval = function ( e ) { e != this . blinkInterval && ( this . blinkInterval = e , this . restartTimer ( ) ) } , this . setSmoothBlinking = function ( e ) { e != this . smoothBlinking && ! i && ( this . smoothBlinking = e , r . setCssClass ( this . element , "ace_smooth-blinking" , e ) , this . $updateCursors ( ! 0 ) , this . $updateCursors = this . $updateOpacity . bind ( this ) , this . restartTimer ( ) ) } , this . addCursor = function ( ) { var e = r . createElement ( "div" ) ; return e . className = "ace_cursor" , this . element . appendChild ( e ) , this . cursors . push ( e ) , e } , this . removeCursor = function ( ) { if ( this . cursors . length > 1 ) { var e = this . cursors . pop ( ) ; return e . parentNode . removeChild ( e ) , e } } , this . hideCursor = function ( ) { this . isVisible = ! 1 , r . addCssClass ( this . element , "ace_hidden-cursors" ) , this . restartTimer ( ) } , this . showCursor = function ( ) { this . isVisible = ! 0 , r . removeCssClass ( this . element , "ace_hidden-cursors" ) , this . restartTimer ( ) } , this . restartTimer = function ( ) { var e = this . $updateCursors ; if ( clearInterval ( this . intervalId ) , clearTimeout ( this . timeoutId ) , this . smoothBlinking && r . removeCssClass ( this . element , "ace_smooth-blinking" ) , e ( ! 0 ) , this . isBlinking && this . blinkInterval && this . isVisible ) { this . smoothBlinking && setTimeout ( function ( ) { r . addCssClass ( this . element , "ace_smooth-blinking" ) } . bind ( this ) ) ; var t = function ( ) { this . timeoutId = setTimeout ( function ( ) { e ( ! 1 ) } , . 6 * this . blinkInterval ) } . bind ( this ) ; this . intervalId = setInterval ( function ( ) { e ( ! 0 ) , t ( ) } , this . blinkInterval ) , t ( ) } } , this . getPixelPosition = function ( e , t ) { if ( ! this . config || ! this . session ) return { left : 0 , top : 0 } ; e || ( e = this . session . selection . getCursor ( ) ) ; var n = this . session . documentToScreenPosition ( e ) , r = this . $padding + n . column * this . config . characterWidth , i = ( n . row - ( t ? this . config . firstRowScreen : 0 ) ) * this . config . lineHeight ; return { left : r , top : i } } , this . update = function ( e ) { this . config = e ; var t = this . session . $selectionMarkers , n = 0 , r = 0 ; void 0 !== t && 0 !== t . length || ( t = [ { cursor : null } ] ) ; for ( var n = 0 , i = t . length ; n < i ; n ++ ) { var s = this . getPixelPosition ( t [ n ] . cursor , ! 0 ) ; if ( ! ( ( s . top > e . height + e . offset || s . top < 0 ) && n > 1 ) ) { var o = ( this . cursors [ r ++ ] || this . addCursor ( ) ) . style ; this . drawCursor ? this . drawCursor ( o , s , e , t [ n ] , this . session ) : ( o . left = s . left + "px" , o . top = s . top + "px" , o . width = e . characterWidth + "px" , o . height = e . lineHeight + "px" ) } } for ( ; this . cursors . length > r ; ) this . removeCursor ( ) ; var u = this . session . getOverwrite ( ) ; this . $setOverwrite ( u ) , this . $pixelPos = s , this . restartTimer ( ) } , this . drawCursor = null , this . $setOverwrite = function ( e ) { e != this . overwrite && ( this . overwrite = e , e ? r . addCssClass ( this . element , "ace_overwrite-cursors" ) : r . removeCssClass ( this . element , "ace_overwrite-cursors" ) ) } , this . destroy = function ( ) { clearInterval ( this . intervalId ) , clearTimeout ( this . timeoutId ) } } ) . call ( s . prototype ) , t . Cursor = s } ) , ace . define ( "ace/scrollbar" , [ "require" , "exports" , "module" , "ace/lib/oop" , "ace/lib/dom" , "ace/lib/event" , "ace/lib/event_emitter" ] , function ( e , t , n ) { "use strict" ; var r = e ( "./lib/oop" ) , i = e ( "./lib/dom" ) , s = e ( "./lib/event" ) , o = e ( "./lib/event_emitter" ) . EventEmitter , u = 32768 , a = function ( e ) { this . element = i . createElement ( "div" ) , this . element . className = "ace_scrollbar ace_scrollbar" + this . classSuffix , this . inner = i . createElement ( "div" ) , this . inner . className = "ace_scrollbar-inner" , this . element . appendChild ( this . inner ) , e . appendChild ( this . element ) , this . setVisible ( ! 1 ) , this . skipEvent = ! 1 , s . addListener ( this . element , "scroll" , this . onScroll . bind ( this ) ) , s . addListener ( this . element , "mousedown" , s . preventDefault ) } ; ( function ( ) { r . implement ( this , o ) , this . setVisible = function ( e ) { this . element . style . disp Line truncated
t -= e . offset ; var r = this . textarea . style , i = this . lineHeight ; if ( t < 0 || t > e . height - i ) return void ( r . top = r . left = "0" ) ; var s = this . characterWidth ; if ( this . $composition ) { var o = this . textarea . value . replace ( /^\x01+/ , "" ) ; s *= this . session . $getStringScreenWidth ( o ) [ 0 ] + 2 , i += 2 } n -= this . scrollLeft , n > this . $size . scrollerWidth - s && ( n = this . $size . scrollerWidth - s ) , n += this . gutterWidth , r . height = i + "px" , r . width = s + "px" , r . left = Math . min ( n , this . $size . scrollerWidth - s ) + "px" , r . top = Math . min ( t , this . $size . height - i ) + "px" } } , this . getFirstVisibleRow = function ( ) { return this . layerConfig . firstRow } , this . getFirstFullyVisibleRow = function ( ) { return this . layerConfig . firstRow + ( 0 === this . layerConfig . offset ? 0 : 1 ) } , this . getLastFullyVisibleRow = function ( ) { var e = this . layerConfig , t = e . lastRow , n = this . session . documentToScreenRow ( t , 0 ) * e . lineHeight ; return n - this . session . getScrollTop ( ) > e . height - e . lineHeight ? t - 1 : t } , this . getLastVisibleRow = function ( ) { return this . layerConfig . lastRow } , this . $padding = null , this . setPadding = function ( e ) { this . $padding = e , this . $textLayer . setPadding ( e ) , this . $cursorLayer . setPadding ( e ) , this . $markerFront . setPadding ( e ) , this . $markerBack . setPadding ( e ) , this . $loop . schedule ( this . CHANGE _FULL ) , this . $updatePrintMargin ( ) } , this . setScrollMargin = function ( e , t , n , r ) { var i = this . scrollMargin ; i . top = 0 | e , i . bottom = 0 | t , i . right = 0 | r , i . left = 0 | n , i . v = i . top + i . bottom , i . h = i . left + i . right , i . top && this . scrollTop <= 0 && this . session && this . session . setScrollTop ( - i . top ) , this . updateFull ( ) } , this . getHScrollBarAlwaysVisible = function ( ) { return this . $hScrollBarAlwaysVisible } , this . setHScrollBarAlwaysVisible = function ( e ) { this . setOption ( "hScrollBarAlwaysVisible" , e ) } , this . getVScrollBarAlwaysVisible = function ( ) { return this . $vScrollBarAlwaysVisible } , this . setVScrollBarAlwaysVisible = function ( e ) { this . setOption ( "vScrollBarAlwaysVisible" , e ) } , this . $updateScrollBarV = function ( ) { var e = this . layerConfig . maxHeight , t = this . $size . scrollerHeight ; ! this . $maxLines && this . $scrollPastEnd && ( e -= ( t - this . lineHeight ) * this . $scrollPastEnd , this . scrollTop > e - t && ( e = this . scrollTop + t , this . scrollBarV . scrollTop = null ) ) , this . scrollBarV . setScrollHeight ( e + this . scrollMargin . v ) , this . scrollBarV . setScrollTop ( this . scrollTop + this . scrollMargin . top ) } , this . $updateScrollBarH = function ( ) { this . scrollBarH . setScrollWidth ( this . layerConfig . width + 2 * this . $padding + this . scrollMargin . h ) , this . scrollBarH . setScrollLeft ( this . scrollLeft + this . scrollMargin . left ) } , this . $frozen = ! 1 , this . freeze = function ( ) { this . $frozen = ! 0 } , this . unfreeze = function ( ) { this . $frozen = ! 1 } , this . $renderChanges = function ( e , t ) { if ( this . $changes && ( e |= this . $changes , this . $changes = 0 ) , ! this . session || ! this . container . offsetWidth || this . $frozen || ! e && ! t ) return void ( this . $changes |= e ) ; if ( this . $size . $dirty ) return this . $changes |= e , this . onResize ( ! 0 ) ; this . lineHeight || this . $textLayer . checkForSizeChanges ( ) , this . _signal ( "beforeRender" ) ; var n = this . layerConfig ; if ( e & this . CHANGE _FULL || e & this . CHANGE _SIZE || e & this . CHANGE _TEXT || e & this . CHANGE _LINES || e & this . CHANGE _SCROLL || e & this . CHANGE _H _SCROLL ) { if ( e |= this . $computeLayerConfig ( ) , n . firstRow != this . layerConfig . firstRow && n . firstRowScreen == this . layerConfig . firstRowScreen ) { var r = this . scrollTop + ( n . firstRow - this . layerConfig . firstRow ) * this . lineHeight ; r > 0 && ( this . scrollTop = r , e |= this . CHANGE _SCROLL , e |= this . $computeLayerConfig ( ) ) } n = this . layerConfig , this . $updateScrollBarV ( ) , e & this . CHANGE _H _SCROLL && this . $updateScrollBarH ( ) , this . $gutterLayer . element . style . marginTop = - n . offset + "px" , this . content . style . marginTop = - n . offset + "px" , this . content . style . width = n . width + 2 * this . $padding + "px" , this . content . style . height = n . minHeight + "px" } return e & this . CHANGE _H _SCROLL && ( this . content . style . marginLeft = - this . scrollLeft + "px" , this . scroller . className = this . scrollLeft <= 0 ? "ace_scroller" : "ace_scroller ace_scroll-left" ) , e & this . CHANGE _FULL ? ( this . $textLayer . update ( n ) , this . $showGutter && this . $gutterLayer . update ( n ) , this . $markerBack . update ( n ) , this . $markerFront . update ( n ) , this . $cursorLayer . update ( n ) , this . $moveTextAreaToCursor ( ) , this . $highlightGutterLine && this . $updateGutterLineHighlight ( ) , this . _signal ( "afterRender" ) , void 0 ) : e & this . CHANGE _SCROLL ? ( e & this . CHANGE _TEXT || e & this . CHANGE _LINES ? this . $textLayer . update ( n ) : this . $textLayer . scrollLines ( n ) , this . $showGutter && this . $gutterLayer . update ( n ) , this . $markerBack . update ( n ) , this . $markerFront . update ( n ) , this . $cursorLayer . update ( n ) , this . $highlightGutterLine && this . $updateGutterLineHighlight ( ) , this . $moveTextAreaToCursor ( ) , this . _signal ( "afterRender" ) , void 0 ) : ( e & this . CHANGE _TEXT ? ( this . $textLayer . update ( n ) , this . $showGutter && this . $gutterLayer . update ( n ) ) : e & this . CHANGE _LINES ? ( this . $updateLines ( ) || e & this . CHANGE _GUTTER && this . $showGutter ) && this . $gutterLayer . update ( n ) : ( e & this . CHANGE _TEXT || e & this . CHANGE _GUTTER ) && this . $showGutter && this . $gutterLayer . update ( n ) , e & this . CHANGE _CURSOR && ( this . $cursorLayer . update ( n ) , this . $moveTextAreaToCursor ( ) , this . $highlightGutterLine && this . $updateGutterLineHighlight ( ) ) , e & ( this . CHANGE _MARKER | this . CHANGE _MARKER _FRONT ) && this . $markerFront . update ( n ) , e & ( this . CHANGE _MARKER | this . CHANGE _MARKER _BACK ) && this . $markerBack . update ( n ) , this . _signal ( "afterRender" ) , void 0 ) } , this . $autosize = function ( ) { var e = this . session . getScreenLengt Line truncated
var r = this . rangeList . add ( e ) ; return this . $onAddRange ( e ) , r . length && this . $onRemoveRange ( r ) , this . rangeCount > 1 && ! this . inMultiSelectMode && ( this . _signal ( "multiSelect" ) , this . inMultiSelectMode = ! 0 , this . session . $undoSelect = ! 1 , this . rangeList . attach ( this . session ) ) , t || this . fromOrientedRange ( e ) } } , this . toSingleRange = function ( e ) { e = e || this . ranges [ 0 ] ; var t = this . rangeList . removeAll ( ) ; t . length && this . $onRemoveRange ( t ) , e && this . fromOrientedRange ( e ) } , this . substractPoint = function ( e ) { var t = this . rangeList . substractPoint ( e ) ; if ( t ) return this . $onRemoveRange ( t ) , t [ 0 ] } , this . mergeOverlappingRanges = function ( ) { var e = this . rangeList . merge ( ) ; e . length ? this . $onRemoveRange ( e ) : this . ranges [ 0 ] && this . fromOrientedRange ( this . ranges [ 0 ] ) } , this . $onAddRange = function ( e ) { this . rangeCount = this . rangeList . ranges . length , this . ranges . unshift ( e ) , this . _signal ( "addRange" , { range : e } ) } , this . $onRemoveRange = function ( e ) { if ( this . rangeCount = this . rangeList . ranges . length , 1 == this . rangeCount && this . inMultiSelectMode ) { var t = this . rangeList . ranges . pop ( ) ; e . push ( t ) , this . rangeCount = 0 } for ( var n = e . length ; n -- ; ) { var r = this . ranges . indexOf ( e [ n ] ) ; this . ranges . splice ( r , 1 ) } this . _signal ( "removeRange" , { ranges : e } ) , 0 === this . rangeCount && this . inMultiSelectMode && ( this . inMultiSelectMode = ! 1 , this . _signal ( "singleSelect" ) , this . session . $undoSelect = ! 0 , this . rangeList . detach ( this . session ) ) , t = t || this . ranges [ 0 ] , t && ! t . isEqual ( this . getRange ( ) ) && this . fromOrientedRange ( t ) } , this . $initRangeList = function ( ) { this . rangeList || ( this . rangeList = new r , this . ranges = [ ] , this . rangeCount = 0 ) } , this . getAllRanges = function ( ) { return this . rangeCount ? this . rangeList . ranges . concat ( ) : [ this . getRange ( ) ] } , this . splitIntoLines = function ( ) { if ( this . rangeCount > 1 ) { var e = this . rangeList . ranges , t = e [ e . length - 1 ] , n = i . fromPoints ( e [ 0 ] . start , t . end ) ; this . toSingleRange ( ) , this . setSelectionRange ( n , t . cursor == t . start ) } else { var n = this . getRange ( ) , r = this . isBackwards ( ) , s = n . start . row , o = n . end . row ; if ( s == o ) { if ( r ) var u = n . end , a = n . start ; else var u = n . start , a = n . end ; return this . addRange ( i . fromPoints ( a , a ) ) , void this . addRange ( i . fromPoints ( u , u ) ) } var f = [ ] , l = this . getLineRange ( s , ! 0 ) ; l . start . column = n . start . column , f . push ( l ) ; for ( var c = s + 1 ; c < o ; c ++ ) f . push ( this . getLineRange ( c , ! 0 ) ) ; l = this . getLineRange ( o , ! 0 ) , l . end . column = n . end . column , f . push ( l ) , f . forEach ( this . addRange , this ) } } , this . toggleBlockSelection = function ( ) { if ( this . rangeCount > 1 ) { var e = this . rangeList . ranges , t = e [ e . length - 1 ] , n = i . fromPoints ( e [ 0 ] . start , t . end ) ; this . toSingleRange ( ) , this . setSelectionRange ( n , t . cursor == t . start ) } else { var r = this . session . documentToScreenPosition ( this . selectionLead ) , s = this . session . documentToScreenPosition ( this . selectionAnchor ) , o = this . rectangularRangeBlock ( r , s ) ; o . forEach ( this . addRange , this ) } } , this . rectangularRangeBlock = function ( e , t , n ) { var r = [ ] , s = e . column < t . column ; if ( s ) var o = e . column , u = t . column ; else var o = t . column , u = e . column ; var a = e . row < t . row ; if ( a ) var f = e . row , l = t . row ; else var f = t . row , l = e . row ; o < 0 && ( o = 0 ) , f < 0 && ( f = 0 ) , f == l && ( n = ! 0 ) ; for ( var c = f ; c <= l ; c ++ ) { var h = i . fromPoints ( this . session . screenToDocumentPosition ( c , o ) , this . session . screenToDocumentPosition ( c , u ) ) ; if ( h . isEmpty ( ) ) { if ( p && v ( h . end , p ) ) break ; var p = h . end } h . cursor = s ? h . start : h . end , r . push ( h ) } if ( a && r . reverse ( ) , ! n ) { for ( var d = r . length - 1 ; r [ d ] . isEmpty ( ) && d > 0 ; ) d -- ; if ( d > 0 ) for ( var m = 0 ; r [ m ] . isEmpty ( ) ; ) m ++ ; for ( var g = d ; g >= m ; g -- ) r [ g ] . isEmpty ( ) && r . splice ( g , 1 ) } return r } } . call ( s . prototype ) ; var d = e ( "./editor" ) . Editor ; ( function ( ) { this . updateSelectionMarkers = function ( ) { this . renderer . updateCursor ( ) , this . renderer . updateBackMarkers ( ) } , this . addSelectionMarker = function ( e ) { e . cursor || ( e . cursor = e . end ) ; var t = this . getSelectionStyle ( ) ; return e . marker = this . session . addMarker ( e , "ace_selection" , t ) , this . session . $selectionMarkers . push ( e ) , this . session . selectionMarkerCount = this . session . $selectionMarkers . length , e } , this . removeSelectionMarker = function ( e ) { if ( e . marker ) { this . session . removeMarker ( e . marker ) ; var t = this . session . $selectionMarkers . indexOf ( e ) ; t != - 1 && this . session . $selectionMarkers . splice ( t , 1 ) , this . session . selectionMarkerCount = this . session . $selectionMarkers . length } } , this . removeSelectionMarkers = function ( e ) { for ( var t = this . session . $selectionMarkers , n = e . length ; n -- ; ) { var r = e [ n ] ; if ( r . marker ) { this . session . removeMarker ( r . marker ) ; var i = t . indexOf ( r ) ; i != - 1 && t . splice ( i , 1 ) } } this . session . selectionMarkerCount = t . length } , this . $onAddRange = function ( e ) { this . addSelectionMarker ( e . range ) , this . renderer . updateCursor ( ) , this . renderer . updateBackMarkers ( ) } , this . $onRemoveRange = function ( e ) { this . removeSelectionMarkers ( e . ranges ) , this . renderer . updateCursor ( ) , this . renderer . updateBackMarkers ( ) } , this . $onMultiSelect = function ( e ) { this . inMultiSelectMode || ( this . inMultiSelectMode = ! 0 , this . setStyle ( "ace_multiselect" ) , this . keyBinding . addKeyboardHandler ( f . keyboardHandler ) , this . commands . setDefaultHandler ( "exec" , this . $onMultiSelectExec ) , this . renderer . updateCursor ( ) , this . renderer . updateBackMarkers ( ) ) } , this . $onSingleSelect = function ( e ) { this . session . multiSelect . inVirtualMode || ( this . inMultiSelectMode = ! 1 , this . unsetStyle ( "ace_multiselect" ) , this . keyBinding . removeKeyboardHandler ( f . keyboardHandler ) , this . commands . removeDefaultHandler ( "exec" , this . $onMultiSelectExec ) , this . render Line truncated
function a ( ) { var e = o . replace ( "\\d" , "\\d\\-" ) , t = { onMatch : function ( e , t , n ) { var r = "/" == e . charAt ( 1 ) ? 2 : 1 ; return 1 == r ? ( t != this . nextState ? n . unshift ( this . next , this . nextState , 0 ) : n . unshift ( this . next ) , n [ 2 ] ++ ) : 2 == r && t == this . nextState && ( n [ 1 ] -- , ( ! n [ 1 ] || n [ 1 ] < 0 ) && ( n . shift ( ) , n . shift ( ) ) ) , [ { type : "meta.tag.punctuation." + ( 1 == r ? "" : "end-" ) + "tag-open.xml" , value : e . slice ( 0 , r ) } , { type : "meta.tag.tag-name.xml" , value : e . substr ( r ) } ] } , regex : "</?" + e , next : "jsxAttributes" , nextState : "jsx" } ; this . $rules . start . unshift ( t ) ; var n = { regex : "{" , token : "paren.quasi.start" , push : "start" } ; this . $rules . jsx = [ n , t , { include : "reference" } , { defaultToken : "string" } ] , this . $rules . jsxAttributes = [ { token : "meta.tag.punctuation.tag-close.xml" , regex : "/?>" , onMatch : function ( e , t , n ) { return t == n [ 0 ] && n . shift ( ) , 2 == e . length && ( n [ 0 ] == this . nextState && n [ 1 ] -- , ( ! n [ 1 ] || n [ 1 ] < 0 ) && n . splice ( 0 , 2 ) ) , this . next = n [ 0 ] || "start" , [ { type : this . token , value : e } ] } , nextState : "jsx" } , n , f ( "jsxAttributes" ) , { token : "entity.other.attribute-name.xml" , regex : e } , { token : "keyword.operator.attribute-equals.xml" , regex : "=" } , { token : "text.tag-whitespace.xml" , regex : "\\s+" } , { token : "string.attribute-value.xml" , regex : "'" , stateName : "jsx_attr_q" , push : [ { token : "string.attribute-value.xml" , regex : "'" , next : "pop" } , { include : "reference" } , { defaultToken : "string.attribute-value.xml" } ] } , { token : "string.attribute-value.xml" , regex : '"' , stateName : "jsx_attr_qq" , push : [ { token : "string.attribute-value.xml" , regex : '"' , next : "pop" } , { include : "reference" } , { defaultToken : "string.attribute-value.xml" } ] } , t ] , this . $rules . reference = [ { token : "constant.language.escape.reference.xml" , regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" } ] } function f ( e ) { return [ { token : "comment" , regex : /\/\*/ , next : [ i . getTagRule ( ) , { token : "comment" , regex : "\\*\\/" , next : e || "pop" } , { defaultToken : "comment" , caseInsensitive : ! 0 } ] } , { token : "comment" , regex : "\\/\\/" , next : [ i . getTagRule ( ) , { token : "comment" , regex : "$|^" , next : e || "pop" } , { defaultToken : "comment" , caseInsensitive : ! 0 } ] } ] } var r = e ( "../lib/oop" ) , i = e ( "./doc_comment_highlight_rules" ) . DocCommentHighlightRules , s = e ( "./text_highlight_rules" ) . TextHighlightRules , o = "[a-zA-Z\\$_¡-][a-zA-Z\\d\\$_¡-]*" , u = function ( e ) { var t = this . createKeywordMapper ( { "variable.language" : "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document" , keyword : "const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static" , "storage.type" : "const|let|var|function" , "constant.language" : "null|Infinity|NaN|undefined" , "support.function" : "alert" , "constant.language.boolean" : "true|false" } , "identifier" ) , n = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void" , r = "\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)" ; this . $rules = { no _regex : [ i . getStartRule ( "doc-start" ) , f ( "no_regex" ) , { token : "string" , regex : "'(?=.)" , next : "qstring" } , { token : "string" , regex : '"(?=.)' , next : "qqstring" } , { token : "constant.numeric" , regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\b/ } , { token : "constant.numeric" , regex : /[+-]?\d[\d_]*(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/ } , { token : [ "storage.type" , "punctuation.operator" , "support.function" , "punctuation.operator" , "entity.name.function" , "text" , "keyword.operator" ] , regex : "(" + o + ")(\\.)(prototype)(\\.)(" + o + ")(\\s*)(=)" , next : "function_arguments" } , { token : [ "storage.type" , "punctuation.operator" , "entity.name.function" , "text" , "keyword.operator" , "text" , "storage.type" , "text" , "paren.lparen" ] , regex : "(" + o + ")(\\.)(" + o + ")(\\s*)(=)(\\s*)(function)(\\s*)(\\()" , next : "function_arguments" } , { token : [ "entity.name.function" , "text" , "keyword.operator" , "text" , "storage.type" , "text" , "paren.lparen" ] , regex : "(" + o + ")(\\s*)(=)(\\s*)(function)(\\s*)(\\()" , next : "function_arguments" } , { token : [ "storage.type" , "punctuation.operator" , "entity.name.function" , "text" , "keyword.operator" , "text" , "storage.type" , "text" , "entity.name.function" , "text" , "paren.lparen" ] , regex : "(" + o + ")(\\.)(" + o + ")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()" , next : "function_arguments" } , { token : [ "storage.type" , "text" , "entity.name.function" , "text" , "paren.lparen" ] , regex : "(function)(\\s+)(" + o + ")(\\s*)(\\()" , next : "function_arguments" } , { token : [ "entity.name.function" , "text" , "punctuation.operator" , "text" , "storage.type" , "text" , "paren.lparen" ] , regex : "(" + o + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()" , next : "function_arguments" } , { token : [ "text" , "text" , "storage.type" , "text" , "paren.lparen" ] , regex : "(:)(\\s*)(function)(\\s*)(\\()" , next : " function _arg Line truncated
var e = this . createKeywordMapper ( { "support.function" : u , "support.constant" : a , "support.type" : o , "support.constant.color" : f , "support.constant.fonts" : l } , "text" , ! 0 ) ; this . $rules = { start : [ { token : "comment" , regex : "\\/\\*" , push : "comment" } , { token : "paren.lparen" , regex : "\\{" , push : "ruleset" } , { token : "string" , regex : "@.*?{" , push : "media" } , { token : "keyword" , regex : "#[a-z0-9-_]+" } , { token : "variable" , regex : "\\.[a-z0-9-_]+" } , { token : "string" , regex : ":[a-z0-9-_]+" } , { token : "constant" , regex : "[a-z0-9-_]+" } , { caseInsensitive : ! 0 } ] , media : [ { token : "comment" , regex : "\\/\\*" , push : "comment" } , { token : "paren.lparen" , regex : "\\{" , push : "ruleset" } , { token : "string" , regex : "\\}" , next : "pop" } , { token : "keyword" , regex : "#[a-z0-9-_]+" } , { token : "variable" , regex : "\\.[a-z0-9-_]+" } , { token : "string" , regex : ":[a-z0-9-_]+" } , { token : "constant" , regex : "[a-z0-9-_]+" } , { caseInsensitive : ! 0 } ] , comment : [ { token : "comment" , regex : "\\*\\/" , next : "pop" } , { defaultToken : "comment" } ] , ruleset : [ { token : "paren.rparen" , regex : "\\}" , next : "pop" } , { token : "comment" , regex : "\\/\\*" , push : "comment" } , { token : "string" , regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' } , { token : "string" , regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" } , { token : [ "constant.numeric" , "keyword" ] , regex : "(" + c + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)" } , { token : "constant.numeric" , regex : c } , { token : "constant.numeric" , regex : "#[a-f0-9]{6}" } , { token : "constant.numeric" , regex : "#[a-f0-9]{3}" } , { token : [ "punctuation" , "entity.other.attribute-name.pseudo-element.css" ] , regex : h } , { token : [ "punctuation" , "entity.other.attribute-name.pseudo-class.css" ] , regex : p } , { token : [ "support.function" , "string" , "support.function" ] , regex : "(url\\()(.*)(\\))" } , { token : e , regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*" } , { caseInsensitive : ! 0 } ] } , this . normalizeRules ( ) } ; r . inherits ( d , s ) , t . CssHighlightRules = d } ) , ace . define ( "ace/mode/css_completions" , [ "require" , "exports" , "module" ] , function ( e , t , n ) { "use strict" ; var r = { background : { "#$0" : 1 } , "background-color" : { "#$0" : 1 , transparent : 1 , fixed : 1 } , "background-image" : { "url('/$0')" : 1 } , "background-repeat" : { repeat : 1 , "repeat-x" : 1 , "repeat-y" : 1 , "no-repeat" : 1 , inherit : 1 } , "background-position" : { bottom : 2 , center : 2 , left : 2 , right : 2 , top : 2 , inherit : 2 } , "background-attachment" : { scroll : 1 , fixed : 1 } , "background-size" : { cover : 1 , contain : 1 } , "background-clip" : { "border-box" : 1 , "padding-box" : 1 , "content-box" : 1 } , "background-origin" : { "border-box" : 1 , "padding-box" : 1 , "content-box" : 1 } , border : { "solid $0" : 1 , "dashed $0" : 1 , "dotted $0" : 1 , "#$0" : 1 } , "border-color" : { "#$0" : 1 } , "border-style" : { solid : 2 , dashed : 2 , dotted : 2 , double : 2 , groove : 2 , hidden : 2 , inherit : 2 , inset : 2 , none : 2 , outset : 2 , ridged : 2 } , "border-collapse" : { collapse : 1 , separate : 1 } , bottom : { px : 1 , em : 1 , "%" : 1 } , clear : { left : 1 , right : 1 , both : 1 , none : 1 } , color : { "#$0" : 1 , "rgb(#$00,0,0)" : 1 } , cursor : { default : 1 , pointer : 1 , move : 1 , text : 1 , wait : 1 , help : 1 , progress : 1 , "n-resize" : 1 , "ne-resize" : 1 , "e-resize" : 1 , "se-resize" : 1 , "s-resize" : 1 , "sw-resize" : 1 , "w-resize" : 1 , "nw-resize" : 1 } , display : { none : 1 , block : 1 , inline : 1 , "inline-block" : 1 , "table-cell" : 1 } , "empty-cells" : { show : 1 , hide : 1 } , float : { left : 1 , right : 1 , none : 1 } , "font-family" : { Arial : 2 , "Comic Sans MS" : 2 , Consolas : 2 , "Courier New" : 2 , Courier : 2 , Georgia : 2 , Monospace : 2 , "Sans-Serif" : 2 , "Segoe UI" : 2 , Tahoma : 2 , "Times New Roman" : 2 , "Trebuchet MS" : 2 , Verdana : 1 } , "font-size" : { px : 1 , em : 1 , "%" : 1 } , "font-weight" : { bold : 1 , normal : 1 } , "font-style" : { italic : 1 , normal : 1 } , "font-variant" : { normal : 1 , "small-caps" : 1 } , height : { px : 1 , em : 1 , "%" : 1 } , left : { px : 1 , em : 1 , "%" : 1 } , "letter-spacing" : { normal : 1 } , "line-height" : { normal : 1 } , "list-style-type" : { none : 1 , disc : 1 , circle : 1 , square : 1 , decimal : 1 , "decimal-leading-zero" : 1 , "lower-roman" : 1 , "upper-roman" : 1 , "lower-greek" : 1 , "lower-latin" : 1 , "upper-latin" : 1 , georgian : 1 , "lower-alpha" : 1 , "upper-alpha" : 1 } , margin : { px : 1 , em : 1 , "%" : 1 } , "margin-right" : { px : 1 , em : 1 , "%" : 1 } , "margin-left" : { px : 1 , em : 1 , "%" : 1 } , "margin-top" : { px : 1 , em : 1 , "%" : 1 } , "margin-bottom" : { px : 1 , em : 1 , "%" : 1 } , "max-height" : { px : 1 , em : 1 , "%" : 1 } , "max-width" : { px : 1 , em : 1 , "%" : 1 } , "min-height" : { px : 1 , em : 1 , "%" : 1 } , "min-width" : { px : 1 , em : 1 , "%" : 1 } , overflow : { hidden : 1 , visible : 1 , auto : 1 , scroll : 1 } , "overflow-x" : { hidden : 1 , visible : 1 , auto : 1 , scroll : 1 } , "overflow-y" : { hidden : 1 , visible : 1 , auto : 1 , scroll : 1 } , padding : { px : 1 , em : 1 , "%" : 1 } , "padding-top" : { px : 1 , em : 1 , "%" : 1 } , "padding-right" : { px : 1 , em : 1 , "%" : 1 } , "padding-bottom" : { px : 1 , em : 1 , "%" : 1 } , "padding-left" : { px : 1 , em : 1 , "%" : 1 } , "page-break-after" : { auto : 1 , always : 1 , avoid : 1 , left : 1 , right : 1 } , "page-break-before" : { auto : 1 , always : 1 , avoid : 1 , left : 1 , right : 1 } , position : { absolute : 1 , relative : 1 , fixed : 1 , static : 1 } , right : { px : 1 , em : 1 , "%" : 1 } , "table-layout" : { fixed : 1 , auto : 1 } , "text-decoration" : { none : 1 , underline : 1 , "line-through" : 1 , blink : 1 } , "text-align" : { left : 1 , right : 1 , center : 1 , justify : 1 } , "text-transform" : { capitalize : 1 , uppercase : 1 , lowercase : 1 , none : 1 } , top : { px : 1 , em : 1 , "%" : 1 } , "vertical-align" : { top : 1 , bottom : 1 } , visibility : { hidden : 1 , visible : 1 } , "white-space" : { nowrap : 1 , normal : 1 , pre : 1 , "pre-line" : 1 , "pre-wrap" : 1 } , width : { px : 1 , em : 1 , "%" : 1 } , "word-spacing" : { normal : 1 } , filter : { "alpha(opacity=$0100)" : 1 } , "text-shadow" : { "$02px 2px 2px #777" : 1 } , "text-overflow" : { "ellipsis-word" : 1 , clip : 1 , ellipsis : 1 } , "-moz-border-radius" : 1 , "-moz-border-radius-topright" : 1 , " - moz - b Line truncated
var i = { iec : "_Ki_Mi_Gi_Ti_Pi_Ei_Zi_Yi" , si : "_K_M_G_T_P_E_Z_Y" } ; return function ( e , _ , o ) { e = Math . abs ( e ) , _ || 0 === _ || ( _ = 1 ) ; var t = "si" == o ? 1e3 : 1024 , n = 0 ; for ( i [ o ] || ( o = "si" ) ; e >= t ; ) e /= t , ++ n ; return e . toFixed ( _ ) + " " + i [ o ] . split ( "_" ) [ n ] + "b" } } ) , function ( ) { function n ( n , t ) { return n . set ( t [ 0 ] , t [ 1 ] ) , n } function t ( n , t ) { return n . add ( t ) , n } function r ( n , t , r ) { switch ( r . length ) { case 0 : return n . call ( t ) ; case 1 : return n . call ( t , r [ 0 ] ) ; case 2 : return n . call ( t , r [ 0 ] , r [ 1 ] ) ; case 3 : return n . call ( t , r [ 0 ] , r [ 1 ] , r [ 2 ] ) } return n . apply ( t , r ) } function e ( n , t , r , e ) { for ( var u = - 1 , i = null == n ? 0 : n . length ; ++ u < i ; ) { var o = n [ u ] ; t ( e , o , r ( o ) , n ) } return e } function u ( n , t ) { for ( var r = - 1 , e = null == n ? 0 : n . length ; ++ r < e && ! 1 !== t ( n [ r ] , r , n ) ; ) ; return n } function i ( n , t ) { for ( var r = null == n ? 0 : n . length ; r -- && ! 1 !== t ( n [ r ] , r , n ) ; ) ; return n } function o ( n , t ) { for ( var r = - 1 , e = null == n ? 0 : n . length ; ++ r < e ; ) if ( ! t ( n [ r ] , r , n ) ) return ! 1 ; return ! 0 } function f ( n , t ) { for ( var r = - 1 , e = null == n ? 0 : n . length , u = 0 , i = [ ] ; ++ r < e ; ) { var o = n [ r ] ; t ( o , r , n ) && ( i [ u ++ ] = o ) } return i } function c ( n , t ) { return ! ( null == n || ! n . length ) && - 1 < d ( n , t , 0 ) } function a ( n , t , r ) { for ( var e = - 1 , u = null == n ? 0 : n . length ; ++ e < u ; ) if ( r ( t , n [ e ] ) ) return ! 0 ; return ! 1 } function l ( n , t ) { for ( var r = - 1 , e = null == n ? 0 : n . length , u = Array ( e ) ; ++ r < e ; ) u [ r ] = t ( n [ r ] , r , n ) ; return u } function s ( n , t ) { for ( var r = - 1 , e = t . length , u = n . length ; ++ r < e ; ) n [ u + r ] = t [ r ] ; return n } function h ( n , t , r , e ) { var u = - 1 , i = null == n ? 0 : n . length ; for ( e && i && ( r = n [ ++ u ] ) ; ++ u < i ; ) r = t ( r , n [ u ] , u , n ) ; return r } function p ( n , t , r , e ) { var u = null == n ? 0 : n . length ; for ( e && u && ( r = n [ -- u ] ) ; u -- ; ) r = t ( r , n [ u ] , u , n ) ; return r } function _ ( n , t ) { for ( var r = - 1 , e = null == n ? 0 : n . length ; ++ r < e ; ) if ( t ( n [ r ] , r , n ) ) return ! 0 ; return ! 1 } function v ( n , t , r ) { var e ; return r ( n , function ( n , r , u ) { if ( t ( n , r , u ) ) return e = r , ! 1 } ) , e } function g ( n , t , r , e ) { var u = n . length ; for ( r += e ? 1 : - 1 ; e ? r -- : ++ r < u ; ) if ( t ( n [ r ] , r , n ) ) return r ; return - 1 } function d ( n , t , r ) { if ( t === t ) n : { -- r ; for ( var e = n . length ; ++ r < e ; ) if ( n [ r ] === t ) { n = r ; break n } n = - 1 } else n = g ( n , b , r ) ; return n } function y ( n , t , r , e ) { -- r ; for ( var u = n . length ; ++ r < u ; ) if ( e ( n [ r ] , t ) ) return r ; return - 1 } function b ( n ) { return n !== n } function x ( n , t ) { var r = null == n ? 0 : n . length ; return r ? k ( n , t ) / r : P } function j ( n ) { return function ( t ) { return null == t ? F : t [ n ] } } function w ( n ) { return function ( t ) { return null == n ? F : n [ t ] } } function m ( n , t , r , e , u ) { return u ( n , function ( n , u , i ) { r = e ? ( e = ! 1 , n ) : t ( r , n , u , i ) } ) , r } function A ( n , t ) { var r = n . length ; for ( n . sort ( t ) ; r -- ; ) n [ r ] = n [ r ] . c ; return n } function k ( n , t ) { for ( var r , e = - 1 , u = n . length ; ++ e < u ; ) { var i = t ( n [ e ] ) ; i !== F && ( r = r === F ? i : r + i ) } return r } function E ( n , t ) { for ( var r = - 1 , e = Array ( n ) ; ++ r < n ; ) e [ r ] = t ( r ) ; return e } function O ( n , t ) { return l ( t , function ( t ) { return [ t , n [ t ] ] } ) } function S ( n ) { return function ( t ) { return n ( t ) } } function I ( n , t ) { return l ( t , function ( t ) { return n [ t ] } ) } function R ( n , t ) { return n . has ( t ) } function z ( n , t ) { for ( var r = - 1 , e = n . length ; ++ r < e && - 1 < d ( t , n [ r ] , 0 ) ; ) ; return r } function W ( n , t ) { for ( var r = n . length ; r -- && - 1 < d ( t , n [ r ] , 0 ) ; ) ; return r } function B ( n ) { return "\\" + Tn [ n ] } function L ( n ) { var t = - 1 , r = Array ( n . size ) ; return n . forEach ( function ( n , e ) { r [ ++ t ] = [ e , n ] } ) , r } function U ( n , t ) { return function ( r ) { return n ( t ( r ) ) } } function C ( n , t ) { for ( var r = - 1 , e = n . length , u = 0 , i = [ ] ; ++ r < e ; ) { var o = n [ r ] ; o !== t && "__lodash_placeholder__" !== o || ( n [ r ] = "__lodash_placeholder__" , i [ u ++ ] = r ) } return i } function D ( n ) { var t = - 1 , r = Array ( n . size ) ; return n . forEach ( function ( n ) { r [ ++ t ] = n } ) , r } function M ( n ) { var t = - 1 , r = Array ( n . size ) ; return n . forEach ( function ( n ) { r [ ++ t ] = [ n , n ] } ) , r } function T ( n ) { if ( Bn . test ( n ) ) { for ( var t = zn . lastIndex = 0 ; zn . test ( n ) ; ) ++ t ; n = t } else n = tt ( n ) ; return n } function $ ( n ) { return Bn . test ( n ) ? n . match ( zn ) || [ ] : n . split ( "" ) } var F , N = 1 / 0 , P = NaN , Z = [ [ "ary" , 128 ] , [ "bind" , 1 ] , [ "bindKey" , 2 ] , [ "curry" , 8 ] , [ "curryRight" , 16 ] , [ "flip" , 512 ] , [ "partial" , 32 ] , [ "partialRight" , 64 ] , [ "rearg" , 256 ] ] , q = /\b__p\+='';/g , V = /\b(__p\+=)''\+/g , K = /(__e\(.*?\)|\b__t\))\+'';/g , G = /&(?:amp|lt|gt|quot|#39);/g , H = /[&<>"']/g , J = RegExp ( G . source ) , Y = RegExp ( H . source ) , Q = /<%-([\s\S]+?)%>/g , X = /<%([\s\S]+?)%>/g , nn = /<%=([\s\S]+?)%>/g , tn = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/ , rn = /^\w*$/ , en = /^\./ , un = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g , on = /[\\^$.*+?()[\]{}|]/g , fn = RegExp ( on . source ) , cn = /^\s+|\s+$/g , an = /^\s+/ , ln = /\s+$/ , sn = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/ , hn = /\{\n\/\* \[wrapped with (.+)\] \*/ , pn = /,? & / , _n = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g , vn = /\\(\\)?/g , gn = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g , dn = /\w*$/ , yn = /^[-+]0x[0-9a-f]+$/i , bn = /^0b[01]+$/i , xn = /^\[object .+?Constructor\]$/ , jn = /^0o[0-7]+$/i , wn = /^(?:0|[1-9]\d*)$/ , mn = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g , An = /($^)/ , kn = /['\n\r\u2028\u2029\\]/g , En = "[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?(?:\\u200d(?:[^\\ud800-\\udfff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?)*" , On = "(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])" + En , Sn = " ( ? : [ ^ \ \ud800 - \ \udfff ] [ \ \u0300 - \ \u036f \ \ufe20 - \ \ufe2f \ \u20d0 - \ \u20ff ] ? | [ \ \u0300 - \ \u036f \ \ufe20 - \ \ufe2f \ \u20d0 - \ \u20ff ] | ( ? : \ \ud83c [ \ \udde6 - \ \uddff ] ) { 2 } | [ \ \ud800 - \ \ udb Line truncated
case "[object Int32Array]" : case "[object Uint8Array]" : case "[object Uint8ClampedArray]" : case "[object Uint16Array]" : case "[object Uint32Array]" : return Ur ( r , i ) ; case "[object Map]" : return e = i ? u ( L ( r ) , 1 ) : L ( r ) , h ( e , n , new r . constructor ) ; case "[object Number]" : case "[object String]" : return new o ( r ) ; case "[object RegExp]" : return e = new r . constructor ( r . source , dn . exec ( r ) ) , e . lastIndex = r . lastIndex , e ; case "[object Set]" : return e = i ? u ( D ( r ) , 1 ) : D ( r ) , h ( e , t , new r . constructor ) ; case "[object Symbol]" : return ro ? Xu ( ro . call ( r ) ) : { } } } function Oe ( n ) { return cf ( n ) || ff ( n ) || ! ! ( wi && n && n [ wi ] ) } function Se ( n , t ) { return t = null == t ? 9007199254740991 : t , ! ! t && ( "number" == typeof n || wn . test ( n ) ) && - 1 < n && 0 == n % 1 && n < t } function Ie ( n , t , r ) { if ( ! yu ( r ) ) return ! 1 ; var e = typeof t ; return ! ! ( "number" == e ? hu ( r ) && Se ( t , r . length ) : "string" == e && t in r ) && su ( r [ t ] , n ) } function Re ( n , t ) { if ( cf ( n ) ) return ! 1 ; var r = typeof n ; return ! ( "number" != r && "symbol" != r && "boolean" != r && null != n && ! mu ( n ) ) || rn . test ( n ) || ! tn . test ( n ) || null != t && n in Xu ( t ) } function ze ( n ) { var t = de ( n ) , r = On [ t ] ; return "function" == typeof r && t in Mn . prototype && ( n === r || ( t = po ( r ) , ! ! t && n === t [ 0 ] ) ) } function We ( n ) { var t = n && n . constructor ; return n === ( "function" == typeof t && t . prototype || ui ) } function Be ( n , t ) { return function ( r ) { return null != r && r [ n ] === t && ( t !== F || n in Xu ( r ) ) } } function Le ( n , t , r , e , u , i ) { return yu ( n ) && yu ( t ) && ( i . set ( t , n ) , tr ( n , t , F , Le , i ) , i . delete ( t ) ) , n } function Ue ( n , t , e ) { return t = Ci ( t === F ? n . length - 1 : t , 0 ) , function ( ) { for ( var u = arguments , i = - 1 , o = Ci ( u . length - t , 0 ) , f = Gu ( o ) ; ++ i < o ; ) f [ i ] = u [ t + i ] ; for ( i = - 1 , o = Gu ( t + 1 ) ; ++ i < t ; ) o [ i ] = u [ i ] ; return o [ t ] = e ( f ) , r ( n , this , o ) } } function Ce ( n , t , r ) { var e = t + "" ; t = jo ; var u , i = Fe ; return u = ( u = e . match ( hn ) ) ? u [ 1 ] . split ( pn ) : [ ] , r = i ( u , r ) , ( i = r . length ) && ( u = i - 1 , r [ u ] = ( 1 < i ? "& " : "" ) + r [ u ] , r = r . join ( 2 < i ? ", " : " " ) , e = e . replace ( sn , "{\n/* [wrapped with " + r + "] */\n" ) ) , t ( n , e ) } function De ( n ) { var t = 0 , r = 0 ; return function ( ) { var e = Mi ( ) , u = 16 - ( e - r ) ; if ( r = e , 0 < u ) { if ( 800 <= ++ t ) return arguments [ 0 ] } else t = 0 ; return n . apply ( F , arguments ) } } function Me ( n , t ) { var r = - 1 , e = n . length , u = e - 1 ; for ( t = t === F ? e : t ; ++ r < t ; ) { var e = ar ( r , u ) , i = n [ e ] ; n [ e ] = n [ r ] , n [ r ] = i } return n . length = t , n } function Te ( n ) { if ( "string" == typeof n || mu ( n ) ) return n ; var t = n + "" ; return "0" == t && 1 / n == - N ? "-0" : t } function $e ( n ) { if ( null != n ) { try { return oi . call ( n ) } catch ( n ) { } return n + "" } return "" } function Fe ( n , t ) { return u ( Z , function ( r ) { var e = "_." + r [ 0 ] ; t & r [ 1 ] && ! c ( n , e ) && n . push ( e ) } ) , n . sort ( ) } function Ne ( n ) { if ( n instanceof Mn ) return n . clone ( ) ; var t = new zn ( n . _ _wrapped _ _ , n . _ _chain _ _ ) ; return t . _ _actions _ _ = Tr ( n . _ _actions _ _ ) , t . _ _index _ _ = n . _ _index _ _ , t . _ _values _ _ = n . _ _values _ _ , t } function Pe ( n , t , r ) { var e = null == n ? 0 : n . length ; return e ? ( r = null == r ? 0 : Eu ( r ) , 0 > r && ( r = Ci ( e + r , 0 ) ) , g ( n , be ( t , 3 ) , r ) ) : - 1 } function Ze ( n , t , r ) { var e = null == n ? 0 : n . length ; if ( ! e ) return - 1 ; var u = e - 1 ; return r !== F && ( u = Eu ( r ) , u = 0 > r ? Ci ( e + u , 0 ) : Di ( u , e - 1 ) ) , g ( n , be ( t , 3 ) , u , ! 0 ) } function qe ( n ) { return ( null == n ? 0 : n . length ) ? Et ( n , 1 ) : [ ] } function Ve ( n ) { return n && n . length ? n [ 0 ] : F } function Ke ( n ) { var t = null == n ? 0 : n . length ; return t ? n [ t - 1 ] : F } function Ge ( n , t ) { return n && n . length && t && t . length ? fr ( n , t ) : n } function He ( n ) { return null == n ? n : Fi . call ( n ) } function Je ( n ) { if ( ! n || ! n . length ) return [ ] ; var t = 0 ; return n = f ( n , function ( n ) { if ( pu ( n ) ) return t = Ci ( n . length , t ) , ! 0 } ) , E ( t , function ( t ) { return l ( n , j ( t ) ) } ) } function Ye ( n , t ) { if ( ! n || ! n . length ) return [ ] ; var e = Je ( n ) ; return null == t ? e : l ( e , function ( n ) { return r ( t , F , n ) } ) } function Qe ( n ) { return n = On ( n ) , n . _ _chain _ _ = ! 0 , n } function Xe ( n , t ) { return t ( n ) } function nu ( ) { return this } function tu ( n , t ) { return ( cf ( n ) ? u : io ) ( n , be ( t , 3 ) ) } function ru ( n , t ) { return ( cf ( n ) ? i : oo ) ( n , be ( t , 3 ) ) } function eu ( n , t ) { return ( cf ( n ) ? l : Qt ) ( n , be ( t , 3 ) ) } function uu ( n , t , r ) { return t = r ? F : t , t = n && null == t ? n . length : t , se ( n , 128 , F , F , F , F , t ) } function iu ( n , t ) { var r ; if ( "function" != typeof t ) throw new ri ( "Expected a function" ) ; return n = Eu ( n ) , function ( ) { return 0 < -- n && ( r = t . apply ( this , arguments ) ) , 1 >= n && ( t = F ) , r } } function ou ( n , t , r ) { return t = r ? F : t , n = se ( n , 8 , F , F , F , F , F , t ) , n . placeholder = ou . placeholder , n } function fu ( n , t , r ) { return t = r ? F : t , n = se ( n , 16 , F , F , F , F , F , t ) , n . placeholder = fu . placeholder , n } function cu ( n , t , r ) { function e ( t ) { var r = c , e = a ; return c = a = F , _ = t , s = n . apply ( e , r ) } function u ( n ) { var r = n - p ; return n -= _ , p === F || r >= t || 0 > r || g && n >= l } function i ( ) { var n = Ho ( ) ; if ( u ( n ) ) return o ( n ) ; var r , e = xo ; r = n - _ , n = t - ( n - p ) , r = g ? Di ( n , l - r ) : n , h = e ( i , r ) } function o ( n ) { return h = F , d && c ? e ( n ) : ( c = a = F , s ) } function f ( ) { var n = Ho ( ) , r = u ( n ) ; if ( c = arguments , a = this , p = n , r ) { if ( h === F ) return _ = n = p , h = xo ( i , t ) , v ? e ( n ) : s ; if ( g ) return h = xo ( i , t ) , e ( p ) } return h === F && ( h = xo ( i , t ) ) , s } var c , a , l , s , h , p , _ = 0 , v = ! 1 , g = ! 1 , d = ! 0 ; if ( "function" != typeof n ) throw new ri ( "Expected a function" ) ; return t = Su ( t ) || 0 , yu ( r ) && ( v = ! ! r . leading , l = ( g = "maxWait" in r ) ? Ci ( Su ( r . maxWait ) || 0 , t ) : l , d = "trailing" in r ? ! ! r . trailing : d ) , f . cancel = function ( ) { h !== F && so ( h ) , _ = 0 , c = p = a = h = F } , f . flush = function ( ) { return h === F ? s : o ( Ho ( ) ) } , f } function au ( n , t ) { function r ( ) { var e = arguments , u = t ? t . apply ( this , e ) : e [ 0 ] , i = r . cache ; return i . has ( u ) ? i . get ( u ) : ( e = n . apply ( this , e ) , r . cache = i . set ( u , e ) || i , e ) } if ( "function" != typeof n || null != t && "function" != typeof t ) throw new ri ( "Expected a function" ) ; return r . cache = new ( au . Cache || Pn ) , r } function lu ( n ) { if ( "function" != typeof n ) throw new ri ( "Expected a function" ) ; return functi Line truncated
r && Ie ( n , t , r ) && ( t = F ) , n = Ru ( n ) , t = xf ( { } , t , e , ct ) , r = xf ( { } , t . imports , e . imports , ct ) ; var u , i , o = Bu ( r ) , f = I ( r , o ) , c = 0 ; r = t . interpolate || An ; var a = "__p+='" ; r = ni ( ( t . escape || An ) . source + "|" + r . source + "|" + ( r === nn ? gn : An ) . source + "|" + ( t . evaluate || An ) . source + "|$" , "g" ) ; var l = "sourceURL" in t ? "//# sourceURL=" + t . sourceURL + "\n" : "" ; if ( n . replace ( r , function ( t , r , e , o , f , l ) { return e || ( e = o ) , a += n . slice ( c , l ) . replace ( kn , B ) , r && ( u = ! 0 , a += "'+__e(" + r + ")+'" ) , f && ( i = ! 0 , a += "';" + f + ";\n__p+='" ) , e && ( a += "'+((__t=(" + e + "))==null?'':__t)+'" ) , c = l + t . length , t } ) , a += "';" , ( t = t . variable ) || ( a = "with(obj){" + a + "}" ) , a = ( i ? a . replace ( q , "" ) : a ) . replace ( V , "$1" ) . replace ( K , "$1;" ) , a = "function(" + ( t || "obj" ) + "){" + ( t ? "" : "obj||(obj={});" ) + "var __t,__p=''" + ( u ? ",__e=_.escape" : "" ) + ( i ? ",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}" : ";" ) + a + "return __p}" , t = Nf ( function ( ) { return Yu ( o , l + "return " + a ) . apply ( F , f ) } ) , t . source = a , _u ( t ) ) throw t ; return t } , On . times = function ( n , t ) { if ( n = Eu ( n ) , 1 > n || 9007199254740991 < n ) return [ ] ; var r = 4294967295 , e = Di ( n , 4294967295 ) ; for ( t = be ( t ) , n -= 4294967295 , e = E ( e , t ) ; ++ r < n ; ) t ( r ) ; return e } , On . toFinite = ku , On . toInteger = Eu , On . toLength = Ou , On . toLower = function ( n ) { return Ru ( n ) . toLowerCase ( ) } , On . toNumber = Su , On . toSafeInteger = function ( n ) { return dt ( Eu ( n ) , - 9007199254740991 , 9007199254740991 ) } , On . toString = Ru , On . toUpper = function ( n ) { return Ru ( n ) . toUpperCase ( ) } , On . trim = function ( n , t , r ) { return ( n = Ru ( n ) ) && ( r || t === F ) ? n . replace ( cn , "" ) : n && ( t = wr ( t ) ) ? ( n = $ ( n ) , r = $ ( t ) , t = z ( n , r ) , r = W ( n , r ) + 1 , Wr ( n , t , r ) . join ( "" ) ) : n } , On . trimEnd = function ( n , t , r ) { return ( n = Ru ( n ) ) && ( r || t === F ) ? n . replace ( ln , "" ) : n && ( t = wr ( t ) ) ? ( n = $ ( n ) , t = W ( n , $ ( t ) ) + 1 , Wr ( n , 0 , t ) . join ( "" ) ) : n } , On . trimStart = function ( n , t , r ) { return ( n = Ru ( n ) ) && ( r || t === F ) ? n . replace ( an , "" ) : n && ( t = wr ( t ) ) ? ( n = $ ( n ) , t = z ( n , $ ( t ) ) , Wr ( n , t ) . join ( "" ) ) : n } , On . truncate = function ( n , t ) { var r = 30 , e = "..." ; if ( yu ( t ) ) var u = "separator" in t ? t . separator : u , r = "length" in t ? Eu ( t . length ) : r , e = "omission" in t ? wr ( t . omission ) : e ; n = Ru ( n ) ; var i = n . length ; if ( Bn . test ( n ) ) var o = $ ( n ) , i = o . length ; if ( r >= i ) return n ; if ( i = r - T ( e ) , 1 > i ) return e ; if ( r = o ? Wr ( o , 0 , i ) . join ( "" ) : n . slice ( 0 , i ) , u === F ) return r + e ; if ( o && ( i += r . length - i ) , pf ( u ) ) { if ( n . slice ( i ) . search ( u ) ) { var f = r ; for ( u . global || ( u = ni ( u . source , Ru ( dn . exec ( u ) ) + "g" ) ) , u . lastIndex = 0 ; o = u . exec ( f ) ; ) var c = o . index ; r = r . slice ( 0 , c === F ? i : c ) } } else n . indexOf ( wr ( u ) , i ) != i && ( u = r . lastIndexOf ( u ) , - 1 < u && ( r = r . slice ( 0 , u ) ) ) ; return r + e } , On . unescape = function ( n ) { return ( n = Ru ( n ) ) && J . test ( n ) ? n . replace ( G , ut ) : n } , On . uniqueId = function ( n ) { var t = ++ ci ; return Ru ( n ) + t } , On . upperCase = $f , On . upperFirst = Ff , On . each = tu , On . eachRight = ru , On . first = Ve , Pu ( On , function ( ) { var n = { } ; return Ot ( On , function ( t , r ) { fi . call ( On . prototype , r ) || ( n [ r ] = t ) } ) , n } ( ) , { chain : ! 1 } ) , On . VERSION = "4.17.2" , u ( "bind bindKey curry curryRight partial partialRight" . split ( " " ) , function ( n ) { On [ n ] . placeholder = On } ) , u ( [ "drop" , "take" ] , function ( n , t ) { Mn . prototype [ n ] = function ( r ) { var e = this . _ _filtered _ _ ; if ( e && ! t ) return new Mn ( this ) ; r = r === F ? 1 : Ci ( Eu ( r ) , 0 ) ; var u = this . clone ( ) ; return e ? u . _ _takeCount _ _ = Di ( r , u . _ _takeCount _ _ ) : u . _ _views _ _ . push ( { size : Di ( r , 4294967295 ) , type : n + ( 0 > u . _ _dir _ _ ? "Right" : "" ) } ) , u } , Mn . prototype [ n + "Right" ] = function ( t ) { return this . reverse ( ) [ n ] ( t ) . reverse ( ) } } ) , u ( [ "filter" , "map" , "takeWhile" ] , function ( n , t ) { var r = t + 1 , e = 1 == r || 3 == r ; Mn . prototype [ n ] = function ( n ) { var t = this . clone ( ) ; return t . _ _iteratees _ _ . push ( { iteratee : be ( n , 3 ) , type : r } ) , t . _ _filtered _ _ = t . _ _filtered _ _ || e , t } } ) , u ( [ "head" , "last" ] , function ( n , t ) { var r = "take" + ( t ? "Right" : "" ) ; Mn . prototype [ n ] = function ( ) { return this [ r ] ( 1 ) . value ( ) [ 0 ] } } ) , u ( [ "initial" , "tail" ] , function ( n , t ) { var r = "drop" + ( t ? "" : "Right" ) ; Mn . prototype [ n ] = function ( ) { return this . _ _filtered _ _ ? new Mn ( this ) : this [ r ] ( 1 ) } } ) , Mn . prototype . compact = function ( ) { return this . filter ( Fu ) } , Mn . prototype . find = function ( n ) { return this . filter ( n ) . head ( ) } , Mn . prototype . findLast = function ( n ) { return this . reverse ( ) . find ( n ) } , Mn . prototype . invokeMap = sr ( function ( n , t ) { return "function" == typeof n ? new Mn ( this ) : this . map ( function ( r ) { return Mt ( r , n , t ) } ) } ) , Mn . prototype . reject = function ( n ) { return this . filter ( lu ( be ( n ) ) ) } , Mn . prototype . slice = function ( n , t ) { n = Eu ( n ) ; var r = this ; return r . _ _filtered _ _ && ( 0 < n || 0 > t ) ? new Mn ( r ) : ( 0 > n ? r = r . takeRight ( - n ) : n && ( r = r . drop ( n ) ) , t !== F && ( t = Eu ( t ) , r = 0 > t ? r . dropRight ( - t ) : r . take ( t - n ) ) , r ) } , Mn . prototype . takeRightWhile = function ( n ) { return this . reverse ( ) . takeWhile ( n ) . reverse ( ) } , Mn . prototype . toArray = function ( ) { return this . take ( 4294967295 ) } , Ot ( Mn . prototype , function ( n , t ) { var r = /^(?:filter|find|map|reject)|While$/ . test ( t ) , e = /^(?:head|last)$/ . test ( t ) , u = On [ e ? "take" + ( "last" == t ? "Right" : "" ) : t ] , i = e || /^find/ . test ( t ) ; u && ( On . prototype [ t ] = function ( ) { function t ( n ) { return n = u . apply ( On , s ( [ n ] , f ) ) , e && h ? n [ 0 ] : n } var o = this . _ _wrapped _ _ , f = e ? [ 1 ] : arguments , c = o instanceof Mn , a = f [ 0 ] , l = c || cf ( o ) ; l && r && "function" == typeof a && 1 != a . length && ( c = l = ! 1 ) ; var h = this . _ _chain _ _ , p = ! ! this . _ _actions _ _ . length , a = i && ! h , c = c && ! p ; return ! i && l ? ( o = c ? o : new Mn ( this ) , o = n . apply ( o , f ) , o . _ _actions _ _ . push ( { func : Xe , args : [ t ] , thisArg : F } ) , new zn ( o , h ) ) : a && c ? n . apply ( this , f ) : ( o = this . thru ( t ) , a ? e ? o . value ( ) [ 0 ] : o . value ( ) : o ) } ) } ) , u ( "pop push shift sort splice unshift" . split ( " " ) , function ( n ) { var t = ei [ n ] , r = /^(?:push|sort|unshift)$/ . test ( n ) ? "tap" : "thru" , e = / ^ ( ? : p o p | s h i f Line truncated