").addClass("terminal-output").attr("role","log").appendTo(Me);ne.addClass("terminal");if(Fe.login&&W("onBeforeLogin")===false){Oe=false}var We;if(typeof e==="string"){We=e}else if(is_array(e)){for(var qe=0,Ke=e.length;qe
',{raw:true})}function a(e){var t=window.URL||window.webkitURL;return t.createObjectURL(e)}function o(e,t){if(!t){var n={target:ne};if(typeof e==="string"){n["text"]=e}else if(e instanceof Blob){n["image"]=a(e)}var r=W("onPaste",[n]);if(r){if(is_function(r.then||r.done)){return(r.then||r.done).call(r,function(e){o(e,true)})}else{o(r,true)}}else if(r!==false){o(n.image||n.text,true)}}else if(e instanceof Blob){i(a(e))}else if(typeof e==="string"){if(e.match(/^(data:|blob:)/)){i(e)}else{ne.insert(e)}}}if(e.clipboardData){if(ne.enabled()){var n=e.clipboardData.items;if(n){for(var r=0;r
").appendTo(Me).cmd({tabindex:Fe.tabindex,mobileDelete:Fe.mobileDelete,mobileIngoreAutoSpace:Fe.mobileIngoreAutoSpace,prompt:Je?false:t,history:Fe.memory?"memory":Fe.history,historyFilter:Fe.historyFilter,historySize:Fe.historySize,caseSensitiveSearch:Fe.caseSensitiveSearch,onPaste:Fe.onPaste,width:"100%",enabled:false,char_width:ke.width,keydown:X,keymap:Ze,clickTimeout:Fe.clickTimeout,holdTimeout:Fe.holdTimeout,holdRepeatTimeout:Fe.holdRepeatTimeout,repeatTimeoutKeys:Fe.repeatTimeoutKeys,allowedAttributes:Fe.allowedAttributes,keypress:Z,tabs:Fe.tabs,onPositionChange:function(){var e=[].slice.call(arguments);K();W("onPositionChange",e)},onCommandChange:function(e){if(xe!==Ue.width()){ne.resizer()}W("onCommandChange",[e]);K()},commands:I});function n(e){if(is_mobile){return}e=e.originalEvent;if(e){var t=document.elementFromPoint(e.clientX,e.clientY);if(!$(t).closest(".terminal").length&&ne.enabled()){ne.disable()}}}ne.oneTime(100,function(){$(document).bind("click.terminal_"+ne.id(),n).bind("contextmenu.terminal_"+ne.id(),n)});var r=$(window);document.addEventListener("resume",function(){ne.disable()});if(is_mobile){(function(){ne.addClass("terminal-mobile");var i;var a;var n;var o=3;var e=Pe.clip();var r=200;var u;e.$node.off("touchstart.cmd");ne.on("touchstart.terminal",function(e){e=e.originalEvent;window.touch_event=e;if(e.target.tagName.toLowerCase()==="a"){return}if(!Be&&e.touches.length===1){n=ne.enabled();var t=e.touches[0];i={x:t.clientX,y:t.clientY};u=setTimeout(function(){i=null},r)}}).on("touchmove.terminal",function(e){if(e.touches.length===1&&i){var t=e.touches[0];var n=Math.abs(t.clientX-i.x);var r=Math.abs(t.clientY-i.y);if(n>o||r>o){a=true}}}).on("touchend.terminal",function(){if(i){clearTimeout(u);if(!a){if(!n){e.focus();ne.focus()}else{e.blur();ne.disable()}}}a=false;i=null})})()}else{r.on("focus.terminal_"+ne.id(),Qe).on("blur.terminal_"+ne.id(),Ye);(function(){var t=0;var r;var n="click_"+ne.id();var i=ne.find(".cmd textarea");function a(){if(r.is(".terminal")||r.is(".terminal-wrapper")){var e=ne.get_command().length;ne.set_position(e)}else if(r.closest(".cmd-prompt").length){ne.set_position(0)}if(!i.is(":focus")){var t=Pe.offset();var n=ne.offset();i.css({left:n.left-t.left,top:Math.max(n.top-t.top,0)}).focus();ne.stopTime("focus");ne.oneTime(10,"focus",function(){i.css({left:"",top:""})})}o()}function o(){t=0;r=null}var u=".terminal-output textarea,"+".terminal-output input";ne.mousedown(function(e){if(!scrollbar_event(e,Ue)){r=$(e.target)}}).mouseup(function(){if(r&&r.closest(u).length){if(Re){ne.disable()}}else if(get_selected_html()===""&&r){if(++t===1){if(!Be){if(!Re){ne.focus()}else{var e=Fe.clickTimeout;ne.oneTime(e,n,a);return}}}else{ne.stopTime(n)}}o()}).dblclick(function(){o();ne.stopTime(n)})})();(function(){var p=Pe.clip().$node;function m(e){return e.type==="mousedown"&&e.buttons===2||e.type==="contextmenu"}var e;if("oncontextmenu"in window){e="contextmenu.terminal"}else{e="mousedown.terminal"}ne.on(e,function(e){if(get_selected_html()===""&&m(e)){var t=$(e.target);if(t.is("img,value,audio,object,canvas,a")){return}if(!ne.enabled()){ne.enable()}var n=Pe.offset();var r=Pe[0].getBoundingClientRect();var i=e.pageY-n.top-20;var a=e.pageX-n.left-20;var o=4*14;var u=5*14;var s=ne[0].getBoundingClientRect();var l=Ue.outerWidth();var f=i+r.top+o;f=f-s.height-s.top;var c=a+r.left+u;c=c-l-s.left;if(f>0){o-=Math.ceil(f)}if(c>0){u-=Math.ceil(c)}p.css({left:a,top:i,width:u,height:o});if(!p.is(":focus")){p.focus()}ne.stopTime("textarea");ne.oneTime(100,"textarea",function(){var e={left:"",top:"",width:"",height:""};if(!is_css_variables_supported){var t=ne.find(".cmd .cmd-cursor-line").prevUntil(".cmd-prompt").length;e.top=t*14+"px"}p.css(e)});ne.stopTime("selection");ne.everyTime(20,"selection",function(){if(p[0].selection!==p[0].value){if(get_textarea_selection(p[0])){clear_textarea_selection(p[0]);select(ne.find(".terminal-output")[0],ne.find(".cmd div:last-of-type")[0]);ne.stopTime("selection")}}})}})})()}ne.on("click","a",function(e){var t=$(this);if(t.closest(".terminal-exception").length){var n=t.attr("href");if(n.match(/:[0-9]+$/)){e.preventDefault();m(n,ne.cols())}}if(Re){ne.find(".cmd textarea").focus()}});function i(){var e=ke.width;ke=get_char_size(ne);if(e!==ke.width){Pe.option("char_width",ke.width).refresh()}}a();function a(){if(ne.is(":visible")){var e=Ue.width();var t=Ue.height();if(Ee!==t||xe!==e){ne.resize()}Ee=t;xe=e}}function o(){var e={prefix:"terminal-"};ne.resizer("unbind").resizer(a,e);He.resizer("unbind").resizer(function(){i();ne.resize()},e)}function u(e){be=e[0].intersectionRatio===1}function s(){if(window.IntersectionObserver){var e=$('
').appendTo(ne);var t=e;if(Fe.scrollBottomOffset!==-1){t=$("
").css({height:Fe.scrollBottomOffset}).appendTo(e)}ye=new IntersectionObserver(u,{root:ne[0]});ye.observe(t[0])}}s();if(ne.is(":visible")){o()}function l(){if(Ie){if(Ie.unobserve){Ie.unobserve(ne[0])}else{clearInterval(Ie)}}var e=ne.enabled();var t=ne.is(":visible");if(e&&!t){ne.disable()}if(t){o()}else{Me.css("visibility","hidden")}function n(){if(ne.is(":visible")&&!t){t=true;o();i();a();if(e){ne.enable()}Me.css("visibility","")}else if(t&&!ne.is(":visible")){t=false;e=$.terminal.active()===ne&&ne.enabled();ne.disable();Me.css("visibility","hidden")}}if(window.IntersectionObserver&&ne.css("position")!=="fixed"){Ie=new IntersectionObserver(n,{root:null});Ie.observe(ne[0])}else{Ie=setInterval(n,100)}}var f=!!ne.closest("body").length;var c=window.MutationObserver||window.WebKitMutationObserver;if(c){Ne=new c(function(){if(ne.closest("body").length){if(!f){ne.scroll_to_bottom();l();a()}f=true}else if(f){f=false}});Ne.observe(document.body,{childList:true})}if(f){l()}ve.resolve();if(Re&&ne.is(":visible")&&!is_mobile){ne.focus(undefined,true)}else{ne.disable()}if(is_function(Je)){ne.login(Je,true,Q)}else{Q()}function p(e){var t=terminals.get()[e[0]];if(t&&fe===t.id()){if(!e[2]){n.resolve();return n.promise()}else if(je){var n=$.Deferred();z.push(function(){return t.exec(e[2]).done(function(){t.save_state(e[2],true,e[1]);n.resolve()})});return n.promise()}else{return t.exec(e[2]).done(function(){t.save_state(e[2],true,e[1])})}}}if(Fe.execHash){if(location.hash){setTimeout(function(){try{var e=location.hash.replace(/^#/,"");hash_commands=JSON.parse(decodeURIComponent(e));var n=0;(function e(){var t=hash_commands[n++];if(t){p(t).done(e)}else{change_hash=true}})()}catch(e){}})}else{change_hash=true}}else{change_hash=true}(function(){var i=false;$(document).bind("keydown.terminal_"+ne.id(),function(e){if(e.shiftKey){i=true}}).bind("keyup.terminal_"+ne.id(),function(e){if(e.shiftKey||e.which===16){i=false}});function n(e,t){if(!i){var n=Le.top();var r;if(is_function(n.mousewheel)){r=n.mousewheel(e,t,ne)}else if(is_function(Fe.mousewheel)){r=Fe.mousewheel(e,t,ne)}if(r===true){return}if((B()||r===false)&&!e.ctrlKey){e.stopPropagation();e.preventDefault()}if(r===false){return false}if(t>0){ne.scroll(-40)}else{ne.scroll(40)}}}if($.event.special.mousewheel){ne.on("mousewheel",n)}else{var r;var e=document.createElement("div");if("onwheel"in e){r="wheel"}else if(document.onmousewheel!==undefined){r="mousewheel"}else{r="DOMMouseScroll"}e=null;ne.on(r,function(e){var t;if(r==="mousewheel"){t=-1/40*e.originalEvent.wheelDelta}else{t=e.originalEvent.deltaY||e.originalEvent.detail}n(e,-t)})}ne.touch_scroll(function(e){var t=e.current.clientY-e.previous.clientY;var n;var r=Le.top();if(is_function(r.touchscroll)){n=r.touchscroll(e,t,ne)}else if(is_function(Fe.touchscroll)){n=Fe.touchscroll(e,t,ne)}css(ne[0],{"--terminal-scroll":ne.prop("scrollTop")});if(n===true){return}return false})})()});return ne}});
//# sourceMappingURL=jquery.terminal.min.js.map
\ No newline at end of file
diff --git a/js/jquery.terminal.min.js.map b/js/jquery.terminal.min.js.map
index d8ba21c70..a6240a832 100644
--- a/js/jquery.terminal.min.js.map
+++ b/js/jquery.terminal.min.js.map
@@ -1 +1 @@
-{"version":3,"sources":["jquery.terminal.js"],"names":["ctx","sprintf","cache","hasOwnProperty","arguments","parse","format","call","parse_tree","argv","cursor","tree_length","length","node_type","arg","output","i","k","match","pad","pad_character","pad_length","get_type","push","test","toString","String","fromCharCode","parseInt","toExponential","parseFloat","toFixed","slice","toUpperCase","charAt","str_repeat","join","fmt","_fmt","arg_names","exec","field_list","replacement_field","field_match","vsprintf","_argv","splice","apply","variable","Object","prototype","toLowerCase","input","multiplier","global","window","factory","undefined","root","define","amd","jquery","wcwidth","module","exports","jQuery","require","$","debug","str","console","log","DelayQueue","callbacks","Callbacks","resolved","this","resolve","fire","add","fn","omap","o","result","each","v","text_length","map","text","get","reduce","a","b","Clone","clone_object","object","tmp","isArray","clone_array","key","array","is_function","Array","Error","item","bind","clone","Map","clear","forEach","value","delete","localStorage","hasLS","testKey","storage","setItem","removeItem","error","hasCookies","document","cookie","split","e","isLS","wls","n","c","wc","dt","Date","setTime","getTime","toGMTString","rls","rc","nn","ca","indexOf","dls","dc","extend","Storage","set","remove","debounce","FUNC_ERROR_TEXT","isObject","type","now","func","wait","options","nativeMax","Math","max","nativeMin","min","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","leadingEdge","setTimeout","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","timeWaiting","shouldInvoke","trailingEdge","cancel","clearTimeout","flush","debounced","isInvoking","everyTime","interval","label","times","belay","timer","oneTime","stopTime","guid","regex","powers","ms","cs","ds","s","das","hs","ks","timeParse","trim","num","mult","element","counter","isFunction","isNaN","constructor","Number","$timers","$timerID","handler","inProgress","setInterval","timers","ret","lab","clearInterval","_fn","navigator","userAgent","one","els","undef","nativeSplit","compliantExecNpcg","self","separator","limit","flags","ignoreCase","multiline","extended","sticky","lastLastIndex","separator2","lastIndex","lastLength","RegExp","source","index","replace","caret","pos","target","isContentEditable","contentEditable","getSelection","is","focus","range1","getRangeAt","range2","cloneRange","selectNodeContents","setEnd","endContainer","endOffset","selectionStart","selection","createRange","body","createTextRange","moveToElementText","setEndPoint","range","duplicate","bookmark","getBookmark","moveToBookmark","moveStart","collapse","focusNode","setSelectionRange","select","make_callback_plugin","factory_settings","init","noop","destroy","name","callback","trigger","unbind","data_name","$this","fireWith","data","has","removeData","resizer","settings","prefix","first","on","ResizeObserver","observe","iframe","addClass","appendTo","contentWindow","observer","unobserve","find","off","touch_scroll","origin","previous","originalEvent","tagName","touches","current","preventDefault","jquery_resolve","defer","Deferred","promise","unpromise","catch","done","then","is_fully_in_viewport","is_visible","node","container","box","getBoundingClientRect","viewport","top","bottom","height","IntersectionObserver","item_observer","entries","isIntersecting","ratio","entity_re","combine_chr_re","astral_symbols_re","emoji_re","mobile_re","tablet_re","format_split_re","format_parts_re","format_re","format_exist_re","format_full_re","format_begin_re","format_start_re","format_end_re","self_closing_re","color_hex_re","url_re","url_nf_re","email_re","url_full_re","email_full_re","command_re","extended_command_re","format_exec_re","float_re","re_re","string_re","unclosed_strings_re","broken_image","use_broken_image","animation_supported","animation","domPrefixes","elm","createElement","style","animationName","agent","is_IE","is_IEMobile","is_ch_unit_supported","div","width","is_css_variables_supported","CSS","supports","is_android","is_key_native","KeyboardEvent","proto","getOwnPropertyDescriptor","is_mobile","check","substr","platform","maxTouchPoints","vendor","opera","ch_unit_bug","base","ch","space","abs","css","obj","isPlainObject","keys","setProperty","getPropertyValue","a11y_hide","attr","role","aria-hidden","excepctions","alert_exception","terminal","Exception","message","exception_message","scrollbar_event","left","offset","outerWidth","clientX","fileName","Cycle","rotate","skip","defined","filter","append","front","restart","Boolean","Stack","is_array","size","pop","concat","WorkerCache","validation","action","onCache","_onCache","_action","_validation","_cache","validate","valid","History","memory","enabled","storage_key","JSON","stringify","new_data","reset","last","end","position","next","old","purge","enable","disable","toggle","cmd_index","cmd","defaults","mask","caseSensitiveSearch","historySize","prompt","history","onPositionChange","onCommandChange","inputStyle","mobileDelete","onPaste","clickTimeout","holdTimeout","holdRepeatTimeout","mobileIngoreAutoSpace","repeatTimeoutKeys","tabindex","tabs","mobile_ignore_key","maybe_data","id","wrapper","cursor_line","clip","$node","autocapitalize","autocorrect","spellcheck","insertAfter","val","html","blur","removeAllRanges","num_chars","char_width","last_rendered_prompt","prompt_last_line","prompt_len","prompt_node","reverse_search","rev_search_str","reverse_search_position","backup_prompt","command","last_command","kill_text","formatted_position","restart_animation","paste_count","line_marker","line_marker_re","empty_marker_re","get_char_pos","closest","parent","prevAll","prevUntil","key_mapping","SPACEBAR","UP","DOWN","LEFT","RIGHT","DEL","MULTIPLY","DIVIDE","SUBTRACT","ADD","ie_key_fix","get_key","combo","ctrlKey","metaKey","shiftKey","altKey","keycodes","3","6","8","9","12","13","16","17","18","19","20","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","48","49","50","51","52","53","54","55","56","57","91","93","144","145","181","182","183","186","187","188","189","190","191","192","219","220","221","222","224","225","246","247","248","249","250","251","letter","reversed_keycodes","which","keymap","default_keymap","ALT+D","delete_forward","clipboard","HOLD+ALT+D","hold","HOLD+DELETE","HOLD+SHIFT+DELETE","ENTER","historyFilter","prev_command","no_keydown","commands","draw_prompt","SHIFT+ENTER","insert","BACKSPACE","backspace_key","SHIFT+BACKSPACE","TAB","CTRL+D","DELETE","HOLD+ARROWUP","up_arrow","ARROWUP","CTRL+ARROWUP","prev_history","CTRL+P","ARROWDOWN","down_arrow","HOLD+ARROWDOWN","CTRL+N","next_history","CTRL+ARROWDOWN","ARROWLEFT","HOLD+ARROWLEFT","CTRL+B","CTRL+ARROWLEFT","len","CTRL+R","reverse_history_search","draw_reverse_prompt","redraw","CTRL+G","ARROWRIGHT","right","HOLD+ARROWRIGHT","CTRL+F","CTRL+ARROWRIGHT","re","bare_text","F12","return_true","END","CTRL+END","CTRL+E","HOME","home","CTRL+HOME","CTRL+A","SHIFT+INSERT","paste_event","CTRL+SHIFT+T","CTRL+W","delete_backward","HOLD+BACKSPACE","HOLD+SHIFT+BACKSPACE","CTRL+H","CTRL+X","CTRL+C","get_selected_html","CTRL+T","CTRL+Y","CTRL+V","META+V","CTRL+K","text_to_clipboard","CTRL+U","CTRL+TAB","META+`","META+R","META+L","delete_character_forward","delete_word_forward","substring","m","delete_character_backward","delete_word_backward","isenabled","paste","fix_textarea","first_up_history","have_newlines","string","have_wrapping","lengths","line","wrap","simple_split_command_line","formatted","lines","split_equal","escape_regex","unescape_brackets","formatting","strip","before","col","column","prev","splitted","left_over","diff","after","$line","ending","lastIndexOf","sum","mobile_focus","$clip","fix_cursor","getComputedStyle","_class","className","position_only","removeClass","new_cursor","insertBefore","animating","blink","toggleClass","clear_reverse_state","history_data","save_string","j","get_char_width","$prompt","get_num_chars","floor","process_cmd_line","skip_empty","nextUntil","escape_brackets","first_len","strlen","cmd_line_worker","_previous_value","_cols","split_command_line","skip_formatted_position","escape_formatting","format_options","unixFormattingEscapeBrackets","apply_formatters","normalize","stack","encoded","encode","allowedAttributes","partition","raw","is_multiline","start","is_emoji_formatting","is_formatting","draw_cursor_line","end_line","cursor_end_line","empty_cursor","before_str","c_before","cursor_len","lines_after","last_ins","lines_before","display","original_string","from_last","last_len","new_pos","line_index","current_len","msg","strings","redrawError","in_line","find_position","make_guess","opts","cmp","search_pos","guess","next_guess","codepoint_len","binary_search","chars","split_characters","prev_prompt_data","crlf","have_formatting","format_split","encoded_last_line","last_line","spans","hide","show","fire_change_command","option","stay","removed","silent","new_keymap","original","bare_command","doc","keypress_event","keydown_event","input_event","include_prompt","user_prompt","should_redraw","relative","refresh","display_position","command_len","new_formatted_pos","visible","resize","new_num_chars","invoke_key","shortcut","ctrl","shift","alt","meta","Event","documentElement","keyCode","new_mask","skip_keypress","dead_key","single_key","no_keypress","no_key","backspace","process","hold_pause","skip_insert","prev_key","is_backspace","is_single","is_delay_key","specials","clear_reverse_search_key","skip_keydown","fake","exception","keydown","clear_hold","is_terminal_selected","keypress","normalized","inArray","event","chr","skip_input","get_next_character","keycode","charCodeAt","was_down","count","$target","is_prompt","down","button","count_selfclosing_formatting","safe","char_len","make_re_fn","starts_with","make_next_char_fun","tests","m1","m2","match_entity","match_combo","match_emoji","astral_match","normalize_position","acc","char_width_prop","extra_css","bare","wide_characters","specs","arr","spec","make_string","compare_fn","more_args","mid","startContainer","parentNode","term","sel","rangeCount","appendChild","cloneContents","innerHTML","with_selection","ranges","addRange","process_selected_line","$self","hasClass","process_div","process_selected_html","stdout","$html","$cmd_lines","queryCommandSupported","$textarea","had_focus","writeText","execCommand","$text","get_textarea_selection","textarea","selectionEnd","clear_textarea_selection","common_string","matchCase","string_case","candidate","candidateLower","currentLower","trigger_terminal_change","terminals","onTerminalChange","setBaseAndExtent","setStart","childNodes","process_command","quotes","rest","args_quotes","version","date","color_names","valid_color","color","unclosed_strings","special","tracking_replace","rex","replacement","new_string","rep_string","new_position","last_index","c0","rep_len","iterate_formatting","is_space","is_open_formatting","is_escape_bracket","is_text","not_formatting","opening","next_iteration","char","is_next_space","prev_space","is_last","in_text","space_count","re_ent","braket","start_index","end_index","start_formatting","end_formatting","prev_index","_","semicolons","amp","keep_words","prev_format","first_index","line_length","last_bracket","can_break","stripped","text_len","after_index","new_index","closed_formatting","matched","sp","nested_formatting","get_inherit_style","ignore","__inherit__","test_lengths","formatter","__no_warn__","warn","formatters","apply_function_formatter","__meta__","found_position","partials","this_len","length_before","loop","after_len","position_partial","partial","linksNoReferrer","linksNoFollow","escape","anyLinks","filter_attr_names","names","allowed","filters","clean_data","add_attrs","attrs","rel_attr","rel","unshift","is_path","url","with_url_validation","valid_href","valid_src","background","data_text","style_str","text_decoration","extra","columns","cols","no_formatting","column_limit","whole","bracket","active","last_id","parse_argument","strict","parse_string","quote","parse_arguments","split_arguments","parse_command","split_command","parse_options","boolean","token","single","extended_command","invokeMethods","deferred","change_hash","reject","eval","iterator","Symbol","replacer","search","new_formatter","Terminal_Exception","hidden","warnings","ids","jrpc","method","params","success","validJSONRPC","response","isNumeric","request","jsonrpc","ajax","beforeSend","jxhr","status","jqXHR","content_type","getResponseHeader","json","contentType","dataType","async","terminal_ready","get_char_size","rect","visiblity","temp","char_size","get_num_rows","all","same","same_case","is_promise","version_set","copyright","version_string","reg","name_ver","signatures","exit","maskChar","checkArity","exceptionHandler","pauseEvents","softPause","mousewheel","touchscroll","cancelableAjax","processArguments","processRPCResponse","completionEscape","convertLinks","scrollObject","historyState","importHistory","echoCommand","scrollOnEcho","login","outputLimit","onAjaxError","pasteImage","scrollBottomOffset","wordAutocomplete","caseSensitiveAutocomplete","describe","onRPCError","doubleTab","doubleTabEchoCommand","ansiParser","completion","onInit","onClear","onBlur","onFocus","onExit","onPush","onPop","renderHandler","onAfterRedraw","onEchoCommand","onFlush","onBeforeCommand","onAfterCommand","onBeforeEcho","onAfterEcho","onBeforeLogin","onAfterLogout","onBeforeLogout","comletionParameters","wrongPasswordTryAgain","wrongPassword","ajaxAbortError","wrongArity","commandNotFound","oneRPCWithIgnore","oneInterpreterFunction","loginFunctionMissing","noTokenError","serverResponse","wrongGreetings","notWhileLogin","loginIsNotAFunction","canExitError","invalidCompletion","invalidSelector","invalidTerminalId","password","recursiveLoop","notAString","invalidStrings","defunctTerminal","requests","save_state","hash_commands","fire_hash_change","first_instance","init_interpreter","StorageHelper","get_processed_command","preprocess_value","is_node","unmount","prepare_render","finalize","replaceWith","render","echo","get_node","Element","display_object","print_line","url_spec","pause","file","code","resume","display_json_rpc_error","at","make_basic_json_rpc","auth","interpreter","display_exception","ajax_error","make_object_interpreter","arity","fallback","user_command","onCommandNotFound","xhr","responseText","make_json_rpc_object","jrpc_success","jrpc_request","jrpc_response","procs","field","interpreter_object","proc","args_len","help","found","make_interpreter","user_intrp","rpc_count","fn_interpreter","recur","interpreters","new_obj","make_json_rpc_login","user","passwd","output_buffer","NEW_LINE","format_cache","buffer_line","use_cache","useCache","format_buff","newline","links","escaped","should_wrap","string_cache","process_line","line_settings","stringify_value","parts","prev_exec_cmd","words","keepWords","update","scroll","command_line","detached_output","empty","detach","lines_to_show","rows","pivot","fire_event","limit_lines","$lines","for_remove","parents","show_greetings","greetings","signature","make_label_error","echo_command","get_command","have_scrollbar","fill","restore_state","command_idx","import_view","export_view","maybe_update_hash","location","hash","first_command","resume_callbacks","init_state","execHash","after_exec","saved_change_hash","invoke","force_awake","when","paused","ghost","level","logout","in_login","get_token","set_token","global_logout","clear_loging_storage","global_login_fn","initialize","prefix_name","maybe_append_name","interpreter_name","prepare_top_interpreter","login_name","context_callback_proxy","fun","init_queue","onStart","skip_local","scroll_to_view","scroll_to","it","make_cursor_visible","hashchange","decodeURIComponent","was_paused","onPause","user_key_down","get_position","set_command","CTRL+L","orignal","caseSensitive","before_cursor","complete","word","scroll_to_bottom","PAGEDOWN","PAGEUP","key_down","tab_count","r","readyState","abort","key_press","ready","queue","selector","body_terminal","terminal_id","prop","scrollTop","user_export","get_prompt","view","when_ready","set_prompt","ignore_hash","state","d","cmd_ready","delayed_commands","autologin","infinite","logins","popUserPass","login_callback","set_mask","pass","cmd_strings","double_quotes","single_quote","prev_string","sensitive","slash","matched_strings","pre","post","to_insert","set_position","reverse","common","set_interpreter","overwrite_interpreter","numChars","numRows","num_rows","history_state","run","setImmediate","clear_history_state","x","animate","freeze","frozen","clear_cache","is_bottom","get_output","new_num_rows","self_offset","--terminal-height","--terminal-x","--terminal-y","--terminal-scroll","e1","e2","remove_line","arg_defined","locals","img","Image","onerror","src","lineNumber","trace","amount","round","local","local_name","intrp","read","infiniteLogin","push_settings","object_or_name","font_resizer","blur_terminal","focus_terminal","visibility_observer","scroll_marker","is_bottom_observer","mutation_observer","disconnect","$body","removeAttr","defunct","elem","scrollHeight","is_bottom_detected","scroll_height","scroll_top","offsetHeight","command_queue","old_width","old_height","old_enabled","ignoreSystemDescribe","base_interpreter","parseObject","proxy","is_type","echo_image","image","data_uri","blob","URL","webkitURL","createObjectURL","ignoreEvents","Blob","clipboardData","items","getAsFile","getAsString","getData","onResize","elementFromPoint","clientY","$win","addEventListener","move","SENSITIVITY","HOLD_TIME","touch_event","point","y","diff_x","diff_y","click","ignore_elements","mousedown","mouseup","timeout","dblclick","is_context_event","buttons","event_name","cmd_offset","cmd_rect","pageY","pageX","content_width","diff_h","diff_w","ceil","props","href","calculate_char_size","create_resizers","bottom_detect","intersections","intersectionRatio","create_bottom_detect","marker","observe_visibility","was_enabled","visibility_checker","in_dom","MutationObsrv","MutationObserver","WebKitMutationObserver","childList","exec_spec","delta","stopPropagation","onmousewheel","wheelDelta","deltaY","detail"],"mappings":"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","sourcesContent":["/**@license\n * __ _____ ________ __\n * / // _ /__ __ _____ ___ __ _/__ ___/__ ___ ______ __ __ __ ___ / /\n * __ / // // // // // _ // _// // / / // _ // _// // // \\/ // _ \\/ /\n * / / // // // // // ___// / / // / / // ___// / / / / // // /\\ // // / /__\n * \\___//____ \\\\___//____//_/ _\\_ / /_//____//_/ /_/ /_//_//_/ /_/ \\__\\_\\___/\n * \\/ /____/ version DEV\n *\n * This file is part of jQuery Terminal. https://terminal.jcubic.pl\n *\n * Copyright (c) 2010-2020 Jakub T. Jankiewicz
e\n * Released under the MIT license\n *\n * Contains:\n *\n * Storage plugin Distributed under the MIT License\n * modified to work from Data URIs that block storage and cookies in Chrome\n * Copyright (c) 2010 Dave Schindler\n *\n * jQuery Timers licenced with the WTFPL\n * \n *\n * Cross-Browser Split 1.1.1\n * Copyright 2007-2012 Steven Levithan \n * Available under the MIT License\n *\n * jQuery Caret\n * Copyright (c) 2009, Gideon Sireling\n * 3 clause BSD License\n *\n * sprintf.js\n * Copyright (c) 2007-2013 Alexandru Marasteanu \n * licensed under 3 clause BSD license\n *\n * debounce function from Lodash\n * Copyright JS Foundation and other contributors \n * The MIT License\n *\n * emoji regex v7.0.1 by Mathias Bynens\n * MIT license\n *\n * broken image by Sophia Bai from the Noun Project (CC-BY)\n *\n * Date: Sat, 04 Jul 2020 13:18:22 +0000\n */\n/* global define, Map */\n/* eslint-disable */\n/* istanbul ignore next */\n(function(ctx) {\n var sprintf = function() {\n if (!sprintf.cache.hasOwnProperty(arguments[0])) {\n sprintf.cache[arguments[0]] = sprintf.parse(arguments[0]);\n }\n return sprintf.format.call(null, sprintf.cache[arguments[0]], arguments);\n };\n sprintf.format = function(parse_tree, argv) {\n var cursor = 1, tree_length = parse_tree.length, node_type = '', arg, output = [], i, k, match, pad, pad_character, pad_length;\n for (i = 0; i < tree_length; i++) {\n node_type = get_type(parse_tree[i]);\n if (node_type === 'string') {\n output.push(parse_tree[i]);\n }\n else if (node_type === 'array') {\n match = parse_tree[i]; // convenience purposes only\n if (match[2]) { // keyword argument\n arg = argv[cursor];\n for (k = 0; k < match[2].length; k++) {\n if (!arg.hasOwnProperty(match[2][k])) {\n throw(sprintf('[sprintf] property \"%s\" does not exist', match[2][k]));\n }\n arg = arg[match[2][k]];\n }\n }\n else if (match[1]) { // positional argument (explicit)\n arg = argv[match[1]];\n }\n else { // positional argument (implicit)\n arg = argv[cursor++];\n }\n\n if (/[^s]/.test(match[8]) && (get_type(arg) !== 'number')) {\n throw(sprintf('[sprintf] expecting number but found %s', get_type(arg)));\n }\n switch (match[8]) {\n case 'b': arg = arg.toString(2); break;\n case 'c': arg = String.fromCharCode(arg); break;\n case 'd': arg = parseInt(arg, 10); break;\n case 'e': arg = match[7] ? arg.toExponential(match[7]) : arg.toExponential(); break;\n case 'f': arg = match[7] ? parseFloat(arg).toFixed(match[7]) : parseFloat(arg); break;\n case 'o': arg = arg.toString(8); break;\n case 's': arg = ((arg = String(arg)) && match[7] ? arg.slice(0, match[7]) : arg); break;\n case 'u': arg = arg >>> 0; break;\n case 'x': arg = arg.toString(16); break;\n case 'X': arg = arg.toString(16).toUpperCase(); break;\n }\n arg = (/[def]/.test(match[8]) && match[3] && arg >= 0 ? ' +' + arg : arg);\n pad_character = match[4] ? match[4] === '0' ? '0' : match[4].charAt(1) : ' ';\n pad_length = match[6] - String(arg).length;\n pad = match[6] ? str_repeat(pad_character, pad_length) : '';\n output.push(match[5] ? arg + pad : pad + arg);\n }\n }\n return output.join('');\n };\n\n sprintf.cache = {};\n\n sprintf.parse = function(fmt) {\n var _fmt = fmt, match = [], parse_tree = [], arg_names = 0;\n while (_fmt) {\n if ((match = /^[^\\x25]+/.exec(_fmt)) !== null) {\n parse_tree.push(match[0]);\n }\n else if ((match = /^\\x25{2}/.exec(_fmt)) !== null) {\n parse_tree.push('%');\n }\n else if ((match = /^\\x25(?:([1-9]\\d*)\\$|\\(([^\\)]+)\\))?(\\+)?(0|'[^$])?(-)?(\\d+)?(?:\\.(\\d+))?([b-fosuxX])/.exec(_fmt)) !== null) {\n if (match[2]) {\n arg_names |= 1;\n var field_list = [], replacement_field = match[2], field_match = [];\n if ((field_match = /^([a-z_][a-z_\\d]*)/i.exec(replacement_field)) !== null) {\n field_list.push(field_match[1]);\n while ((replacement_field = replacement_field.slice(field_match[0].length)) !== '') {\n if ((field_match = /^\\.([a-z_][a-z_\\d]*)/i.exec(replacement_field)) !== null) {\n field_list.push(field_match[1]);\n }\n else if ((field_match = /^\\[(\\d+)\\]/.exec(replacement_field)) !== null) {\n field_list.push(field_match[1]);\n }\n else {\n throw('[sprintf] huh?');\n }\n }\n }\n else {\n throw('[sprintf] huh?');\n }\n match[2] = field_list;\n }\n else {\n arg_names |= 2;\n }\n if (arg_names === 3) {\n throw('[sprintf] mixing positional and named placeholders is not (yet) supported');\n }\n parse_tree.push(match);\n }\n else {\n throw('[sprintf] huh?');\n }\n _fmt = _fmt.slice(match[0].length);\n }\n return parse_tree;\n };\n\n var vsprintf = function(fmt, argv, _argv) {\n _argv = argv.slice(0);\n _argv.splice(0, 0, fmt);\n return sprintf.apply(null, _argv);\n };\n\n /**\n * helpers\n */\n function get_type(variable) {\n return Object.prototype.toString.call(variable).slice(8, -1).toLowerCase();\n }\n\n function str_repeat(input, multiplier) {\n for (var output = []; multiplier > 0; output[--multiplier] = input) {/* do nothing */}\n return output.join('');\n }\n\n /**\n * export to either browser or node.js\n */\n ctx.sprintf = sprintf;\n ctx.vsprintf = vsprintf;\n})(typeof global !== \"undefined\" ? global : window);\n// -----------------------------------------------------------------------\n/* eslint-enable */\n// UMD taken from https://github.com/umdjs/umd\n(function(factory, undefined) {\n var root = typeof window !== 'undefined' ? window : global;\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n // istanbul ignore next\n define(['jquery', 'wcwidth'], function(jquery, wcwidth) {\n factory(jquery, wcwidth, root);\n return jquery;\n });\n } else if (typeof module === 'object' && module.exports) {\n // Node/CommonJS\n module.exports = function(root, jQuery, wcwidth) {\n if (jQuery === undefined) {\n // require('jQuery') returns a factory that requires window to\n // build a jQuery instance, we normalize how we use modules\n // that require this pattern but the window provided is a noop\n // if it's defined (how jquery works)\n if (window !== undefined) {\n jQuery = require('jquery');\n } else {\n jQuery = require('jquery')(root);\n }\n }\n if (wcwidth === undefined) {\n wcwidth = require('wcwidth');\n }\n factory(jQuery, wcwidth, root);\n return jQuery;\n };\n } else {\n // Browser\n // istanbul ignore next\n factory(root.jQuery, root.wcwidth, root);\n }\n})(function($, wcwidth, root, undefined) {\n 'use strict';\n // -----------------------------------------------------------------------\n // :: debug functions\n // -----------------------------------------------------------------------\n /* eslint-disable */\n /* istanbul ignore next */\n function debug(str) {\n if (false) {\n console.log(str);\n //$.terminal.active().echo(str);\n }\n }\n /* eslint-enable */\n // -----------------------------------------------------------------------\n // :: Replacemenet for jQuery 2 deferred objects\n // -----------------------------------------------------------------------\n function DelayQueue() {\n var callbacks = $.Callbacks();\n var resolved = false;\n this.resolve = function() {\n callbacks.fire();\n resolved = true;\n };\n this.add = function(fn) {\n if (resolved) {\n fn();\n } else {\n callbacks.add(fn);\n }\n };\n }\n // -----------------------------------------------------------------------\n // :: map object to object\n // -----------------------------------------------------------------------\n $.omap = function(o, fn) {\n var result = {};\n $.each(o, function(k, v) {\n result[k] = fn.call(o, k, v);\n });\n return result;\n };\n $.fn.text_length = function() {\n return this.map(function() {\n return $(this).text().length;\n }).get().reduce(function(a, b) {\n return a + b;\n }, 0);\n };\n // -----------------------------------------------------------------------\n // :: Deep clone of objects and arrays\n // -----------------------------------------------------------------------\n var Clone = {\n clone_object: function(object) {\n var tmp = {};\n if (typeof object === 'object') {\n if ($.isArray(object)) {\n return this.clone_array(object);\n } else if (object === null) {\n return object;\n } else {\n for (var key in object) {\n if ($.isArray(object[key])) {\n tmp[key] = this.clone_array(object[key]);\n } else if (typeof object[key] === 'object') {\n tmp[key] = this.clone_object(object[key]);\n } else {\n tmp[key] = object[key];\n }\n }\n }\n }\n return tmp;\n },\n clone_array: function(array) {\n if (!is_function(Array.prototype.map)) {\n throw new Error(\"Your browser don't support ES5 array map \" +\n 'use es5-shim');\n }\n return array.slice(0).map(function(item) {\n if (typeof item === 'object') {\n return this.clone_object(item);\n } else {\n return item;\n }\n }.bind(this));\n }\n };\n var clone = function(object) {\n return Clone.clone_object(object);\n };\n // -----------------------------------------------------------------------\n // IE11 polyfill\n // -----------------------------------------------------------------------\n /* eslint-disable */\n if (!('clear' in Map.prototype)) {\n Map.prototype.clear = function() {\n this.forEach(function(value, key, map) {\n map.delete(key);\n });\n };\n }\n // -----------------------------------------------------------------------\n // :: Storage plugin\n // -----------------------------------------------------------------------\n var localStorage;\n /* istanbul ignore next */\n (function() {\n var hasLS = function() {\n try {\n var testKey = 'test', storage = window.localStorage;\n storage.setItem(testKey, '1');\n storage.removeItem(testKey);\n return true;\n } catch (error) {\n return false;\n }\n };\n var hasCookies = function() {\n try {\n document.cookie.split(';');\n return true;\n } catch (e) {\n return false;\n }\n };\n // Private data\n var isLS = hasLS();\n // Private functions\n function wls(n, v) {\n var c;\n if (typeof n === 'string' && typeof v === 'string') {\n localStorage[n] = v;\n return true;\n } else if (typeof n === 'object' && typeof v === 'undefined') {\n for (c in n) {\n if (n.hasOwnProperty(c)) {\n localStorage[c] = n[c];\n }\n }\n return true;\n }\n return false;\n }\n function wc(n, v) {\n var dt, e, c;\n dt = new Date();\n dt.setTime(dt.getTime() + 31536000000);\n e = '; expires=' + dt.toGMTString();\n if (typeof n === 'string' && typeof v === 'string') {\n document.cookie = n + '=' + v + e + '; path=/';\n return true;\n } else if (typeof n === 'object' && typeof v === 'undefined') {\n for (c in n) {\n if (n.hasOwnProperty(c)) {\n document.cookie = c + '=' + n[c] + e + '; path=/';\n }\n }\n return true;\n }\n return false;\n }\n function rls(n) {\n return localStorage[n];\n }\n function rc(n) {\n var nn, ca, i, c;\n nn = n + '=';\n ca = document.cookie.split(';');\n for (i = 0; i < ca.length; i++) {\n c = ca[i];\n while (c.charAt(0) === ' ') {\n c = c.slice(1, c.length);\n }\n if (c.indexOf(nn) === 0) {\n return c.slice(nn.length, c.length);\n }\n }\n return null;\n }\n function dls(n) {\n return delete localStorage[n];\n }\n function dc(n) {\n return wc(n, '', -1);\n }\n /**\n * Public API\n * $.Storage.set(\"name\", \"value\")\n * $.Storage.set({\"name1\":\"value1\", \"name2\":\"value2\", etc})\n * $.Storage.get(\"name\")\n * $.Storage.remove(\"name\")\n */\n if (!hasCookies() && !isLS) {\n localStorage = {};\n $.extend({\n Storage: {\n set: wls,\n get: rls,\n remove: dls\n }\n });\n } else {\n if (isLS) {\n localStorage = window.localStorage;\n }\n $.extend({\n Storage: {\n set: isLS ? wls : wc,\n get: isLS ? rls : rc,\n remove: isLS ? dls : dc\n }\n });\n }\n })();\n // -----------------------------------------------------------------------\n // :: Debounce from Lodash\n // -----------------------------------------------------------------------\n /* istanbul ignore next */\n var debounce = (function() {\n var FUNC_ERROR_TEXT = 'Expected a function';\n function isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n }\n function now() {\n return Date.now();\n }\n return function debounce(func, wait, options) {\n var nativeMax = Math.max,\n nativeMin = Math.min;\n\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = wait || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(options.maxWait || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n };\n })();\n // -----------------------------------------------------------------------\n // :: jQuery Timers\n // -----------------------------------------------------------------------\n var jQuery = $;\n /* istanbul ignore next */\n (function($) {\n jQuery.fn.extend({\n everyTime: function(interval, label, fn, times, belay) {\n return this.each(function() {\n jQuery.timer.add(this, interval, label, fn, times, belay);\n });\n },\n oneTime: function(interval, label, fn) {\n return this.each(function() {\n jQuery.timer.add(this, interval, label, fn, 1);\n });\n },\n stopTime: function(label, fn) {\n return this.each(function() {\n jQuery.timer.remove(this, label, fn);\n });\n }\n });\n\n jQuery.extend({\n timer: {\n guid: 1,\n global: {},\n regex: /^([0-9]+)\\s*(.*s)?$/,\n powers: {\n // Yeah this is major overkill...\n 'ms': 1,\n 'cs': 10,\n 'ds': 100,\n 's': 1000,\n 'das': 10000,\n 'hs': 100000,\n 'ks': 1000000\n },\n timeParse: function(value) {\n if (value === undefined || value === null) {\n return null;\n }\n var result = this.regex.exec(jQuery.trim(value.toString()));\n if (result[2]) {\n var num = parseInt(result[1], 10);\n var mult = this.powers[result[2]] || 1;\n return num * mult;\n } else {\n return value;\n }\n },\n add: function(element, interval, label, fn, times, belay) {\n var counter = 0;\n\n if (jQuery.isFunction(label)) {\n if (!times) {\n times = fn;\n }\n fn = label;\n label = interval;\n }\n\n interval = jQuery.timer.timeParse(interval);\n\n if (typeof interval !== 'number' ||\n isNaN(interval) ||\n interval <= 0) {\n return;\n }\n if (times && times.constructor !== Number) {\n belay = !!times;\n times = 0;\n }\n\n times = times || 0;\n belay = belay || false;\n\n if (!element.$timers) {\n element.$timers = {};\n }\n if (!element.$timers[label]) {\n element.$timers[label] = {};\n }\n fn.$timerID = fn.$timerID || this.guid++;\n\n var handler = function() {\n if (belay && handler.inProgress) {\n return;\n }\n handler.inProgress = true;\n if ((++counter > times && times !== 0) ||\n fn.call(element, counter) === false) {\n jQuery.timer.remove(element, label, fn);\n }\n handler.inProgress = false;\n };\n\n handler.$timerID = fn.$timerID;\n\n if (!element.$timers[label][fn.$timerID]) {\n element.$timers[label][fn.$timerID] = window.setInterval(handler, interval);\n }\n\n if (!this.global[label]) {\n this.global[label] = [];\n }\n this.global[label].push(element);\n\n },\n remove: function(element, label, fn) {\n var timers = element.$timers, ret;\n\n if (timers) {\n\n if (!label) {\n for (var lab in timers) {\n if (timers.hasOwnProperty(lab)) {\n this.remove(element, lab, fn);\n }\n }\n } else if (timers[label]) {\n if (fn) {\n if (fn.$timerID) {\n window.clearInterval(timers[label][fn.$timerID]);\n delete timers[label][fn.$timerID];\n }\n } else {\n for (var _fn in timers[label]) {\n if (timers[label].hasOwnProperty(_fn)) {\n window.clearInterval(timers[label][_fn]);\n delete timers[label][_fn];\n }\n }\n }\n\n for (ret in timers[label]) {\n if (timers[label].hasOwnProperty(ret)) {\n break;\n }\n }\n if (!ret) {\n ret = null;\n delete timers[label];\n }\n }\n\n for (ret in timers) {\n if (timers.hasOwnProperty(ret)) {\n break;\n }\n }\n if (!ret) {\n element.$timers = null;\n }\n }\n }\n }\n });\n if (/(msie) ([\\w.]+)/.exec(navigator.userAgent.toLowerCase())) {\n $(window).one('unload', function() {\n var global = jQuery.timer.global;\n for (var label in global) {\n if (global.hasOwnProperty(label)) {\n var els = global[label], i = els.length;\n while (--i) {\n jQuery.timer.remove(els[i], label);\n }\n }\n }\n });\n }\n })(jQuery);\n // -----------------------------------------------------------------------\n // :: CROSS BROWSER SPLIT\n // -----------------------------------------------------------------------\n /* istanbul ignore next */\n (function(undef) {\n // prevent double include\n\n if (!String.prototype.split.toString().match(/\\[native/)) {\n return;\n }\n\n var nativeSplit = String.prototype.split,\n compliantExecNpcg = /()??/.exec(\"\")[1] === undef, // NPCG: nonparticipating capturing group\n self;\n\n self = function(str, separator, limit) {\n // If `separator` is not a regex, use `nativeSplit`\n if (Object.prototype.toString.call(separator) !== \"[object RegExp]\") {\n return nativeSplit.call(str, separator, limit);\n }\n var output = [],\n flags = (separator.ignoreCase ? \"i\" : \"\") +\n (separator.multiline ? \"m\" : \"\") +\n (separator.extended ? \"x\" : \"\") + // Proposed for ES6\n (separator.sticky ? \"y\" : \"\"), // Firefox 3+\n lastLastIndex = 0,\n // Make `global` and avoid `lastIndex` issues by working with a copy\n separator2, match, lastIndex, lastLength;\n separator = new RegExp(separator.source, flags + \"g\");\n str += \"\"; // Type-convert\n if (!compliantExecNpcg) {\n // Doesn't need flags gy, but they don't hurt\n separator2 = new RegExp(\"^\" + separator.source + \"$(?!\\\\s)\", flags);\n }\n /* Values for `limit`, per the spec:\n * If undefined: 4294967295 // Math.pow(2, 32) - 1\n * If 0, Infinity, or NaN: 0\n * If positive number: limit = Math.floor(limit); if (limit > 4294967295) limit -= 4294967296;\n * If negative number: 4294967296 - Math.floor(Math.abs(limit))\n * If other: Type-convert, then use the above rules\n */\n // ? Math.pow(2, 32) - 1 : ToUint32(limit)\n limit = limit === undef ? -1 >>> 0 : limit >>> 0;\n while (match = separator.exec(str)) {\n // `separator.lastIndex` is not reliable cross-browser\n lastIndex = match.index + match[0].length;\n if (lastIndex > lastLastIndex) {\n output.push(str.slice(lastLastIndex, match.index));\n // Fix browsers whose `exec` methods don't consistently return `undefined` for\n // nonparticipating capturing groups\n if (!compliantExecNpcg && match.length > 1) {\n match[0].replace(separator2, function() {\n for (var i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undef) {\n match[i] = undef;\n }\n }\n });\n }\n if (match.length > 1 && match.index < str.length) {\n Array.prototype.push.apply(output, match.slice(1));\n }\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= limit) {\n break;\n }\n }\n if (separator.lastIndex === match.index) {\n separator.lastIndex++; // Avoid an infinite loop\n }\n }\n if (lastLastIndex === str.length) {\n if (lastLength || !separator.test(\"\")) {\n output.push(\"\");\n }\n } else {\n output.push(str.slice(lastLastIndex));\n }\n return output.length > limit ? output.slice(0, limit) : output;\n };\n\n // For convenience\n String.prototype.split = function(separator, limit) {\n return self(this, separator, limit);\n };\n\n return self;\n\n })();\n // -----------------------------------------------------------------------\n // :: jQuery Caret\n // -----------------------------------------------------------------------\n /* istanbul ignore next */\n $.fn.caret = function(pos) {\n var target = this[0];\n var isContentEditable = target.contentEditable === 'true';\n //get\n if (arguments.length === 0) {\n //HTML5\n if (window.getSelection) {\n //contenteditable\n if (isContentEditable) {\n if (!this.is(':focus')) {\n target.focus();\n }\n var range1 = window.getSelection().getRangeAt(0),\n range2 = range1.cloneRange();\n range2.selectNodeContents(target);\n range2.setEnd(range1.endContainer, range1.endOffset);\n return range2.toString().length;\n }\n //textarea\n return target.selectionStart;\n }\n //IE<9\n if (document.selection) {\n target.focus();\n //contenteditable\n if (isContentEditable) {\n var range1 = document.selection.createRange(),\n range2 = document.body.createTextRange();\n range2.moveToElementText(target);\n range2.setEndPoint('EndToEnd', range1);\n return range2.text.length;\n }\n //textarea\n var pos = 0,\n range = target.createTextRange(),\n range2 = document.selection.createRange().duplicate(),\n bookmark = range2.getBookmark();\n range.moveToBookmark(bookmark);\n while (range.moveStart('character', -1) !== 0) pos++;\n return pos;\n }\n //not supported\n return 0;\n }\n //set\n if (pos === -1)\n pos = this[isContentEditable? 'text' : 'val']().length;\n //HTML5\n if (window.getSelection) {\n //contenteditable\n if (isContentEditable) {\n if (!this.is(':focus')) {\n target.focus();\n }\n var selection = window.getSelection();\n selection.collapse(selection.focusNode, pos);\n }\n //textarea\n else\n target.setSelectionRange(pos, pos);\n }\n //IE<9\n else if (document.body.createTextRange) {\n var range = document.body.createTextRange();\n range.moveToElementText(target);\n range.moveStart('character', pos);\n range.collapse(true);\n range.select();\n }\n if (!isContentEditable && !this.is(':focus')) {\n target.focus();\n }\n return pos;\n };\n /* eslint-enable */\n // -----------------------------------------------------------------------\n // :: callback based event handler plugin generator\n // -----------------------------------------------------------------------\n function make_callback_plugin(options) {\n var factory_settings = $.extend({\n init: $.noop,\n destroy: $.noop,\n name: 'event'\n }, options);\n return function(callback, options) {\n var trigger = arguments.length === 0;\n var unbind = arguments[0] === \"unbind\";\n if (!trigger && !unbind && !is_function(callback)) {\n throw new Error('Invalid argument, it need to a function or string ' +\n '\"unbind\" or no arguments.');\n }\n if (unbind) {\n callback = is_function(arguments[1]) ? arguments[1] : null;\n }\n var data_name = 'callbacks_' + factory_settings.name;\n return this.each(function() {\n var $this = $(this);\n var callbacks;\n function handler(arg) {\n callbacks.fireWith($this, [arg]);\n }\n if (trigger || unbind) {\n callbacks = $this.data(data_name);\n if (trigger) {\n callbacks && callbacks.fire();\n } else {\n if (callback && callbacks) {\n callbacks.remove(callback);\n if (!callbacks.has()) {\n callbacks = null;\n }\n } else {\n callbacks = null;\n }\n if (!callbacks) {\n $this.removeData(data_name);\n factory_settings.destroy.call(this, handler, options);\n }\n }\n } else if ($this.data(data_name)) {\n $(this).data(data_name).add(callback);\n } else {\n callbacks = $.Callbacks();\n callbacks.add(callback);\n $this.data(data_name, callbacks);\n factory_settings.init.call(this, handler, options);\n }\n });\n };\n }\n // -----------------------------------------------------------------------\n // :: Cross-browser resize element plugin using sentinel iframe or\n // :: resizeObserver\n // -----------------------------------------------------------------------\n $.fn.resizer = make_callback_plugin({\n name: 'resize',\n init: function(handler, options) {\n var settings = $.extend({\n prefix: ''\n }, options);\n var $this = $(this);\n var resizer;\n var first = true;\n if ($this.is('body')) {\n $(window).on('resize.resizer', handler);\n } else if (window.ResizeObserver) {\n resizer = new ResizeObserver(function() {\n if (!first) {\n handler();\n }\n first = false;\n });\n resizer.observe(this);\n $this.data('observer', resizer);\n } else {\n var iframe = $('').addClass(settings.prefix + 'resizer')\n .appendTo(this)[0];\n $(iframe.contentWindow).on('resize', handler);\n }\n },\n destroy: function() {\n var $this = $(this);\n if (window.ResizeObserver) {\n var observer = $this.data('observer');\n if (observer) {\n observer.unobserve(this);\n $this.removeData('observer');\n }\n } else {\n var iframe = $this.find('> iframe[class$=\"resizer\"]');\n if (iframe.length) {\n // just in case of memory leaks in IE\n $(iframe[0].contentWindow).off('resize').remove();\n iframe.remove();\n } else if ($this.is('body')) {\n $(window).off('resize.resizer');\n }\n }\n }\n });\n // -----------------------------------------------------------------------\n // :: mobile friendly scroll that work without scrollbar (for less)\n // -----------------------------------------------------------------------\n $.fn.touch_scroll = make_callback_plugin({\n name: 'touch',\n init: function(handler) {\n var origin;\n var previous;\n $(this).on('touchstart.scroll', function(e) {\n e = e.originalEvent;\n if (e.target.tagName.toLowerCase() !== 'a' && e.touches.length === 1) {\n previous = origin = e.touches[0];\n }\n }).on('touchmove.scroll', function(e) {\n e = e.originalEvent;\n if (origin && e.touches.length === 1) {\n var current = e.touches[0];\n var ret = handler({\n origin: origin,\n previous: previous,\n current: current\n });\n if (ret === false) {\n e.preventDefault();\n }\n previous = current;\n }\n }).on('touchend.scroll', function() {\n if (origin || previous) {\n origin = previous = null;\n }\n });\n },\n destroy: function() {\n $(this).off('touchstart.scroll touchmove.scroll touchend.scroll');\n }\n });\n // -----------------------------------------------------------------------\n function jquery_resolve(value) {\n var defer = jQuery.Deferred();\n defer.resolve(value);\n return defer.promise();\n }\n // -----------------------------------------------------------------------\n function unpromise(value, callback, error) {\n if (value !== undefined) {\n if (is_function(value.catch)) {\n value.catch(error);\n }\n if (is_function(value.done)) {\n return value.done(callback);\n } else if (is_function(value.then)) {\n return value.then(callback);\n } else {\n return callback(value);\n }\n }\n }\n // -----------------------------------------------------------------------\n // :: based on https://github.com/zeusdeux/isInViewport\n // :: work only vertically and on dom elements\n // -----------------------------------------------------------------------\n $.fn.is_fully_in_viewport = (function() {\n function is_visible(node, container) {\n var box = node.getBoundingClientRect();\n var viewport = container[0].getBoundingClientRect();\n var top = box.top - viewport.top;\n var bottom = box.bottom - viewport.top;\n var height = container.height();\n return bottom > 0 && top <= height;\n }\n if (window.IntersectionObserver) {\n return function(container) {\n var node = this[0];\n var defer = jQuery.Deferred();\n var item_observer = new window.IntersectionObserver(function(entries) {\n defer.resolve(entries[0].isIntersecting && entries[0].ratio === 1);\n item_observer.unobserve(node);\n }, {\n root: container[0]\n });\n item_observer.observe(node);\n return defer.promise();\n };\n } else {\n return function(container) {\n return jquery_resolve(is_visible(this[0], container));\n };\n }\n })();\n // -------------------------------------------------------------------------\n /* eslint-disable */\n var entity_re = /(&(?:[a-z\\d]+|#\\d+|#x[a-f\\d]+);)/i;\n // regex that match single character at begining and folowing combine character\n // https://en.wikipedia.org/wiki/Combining_character\n var combine_chr_re = /(.(?:[\\u0300-\\u036F]|[\\u1AB0-\\u1abE]|[\\u1DC0-\\u1DF9]|[\\u1DFB-\\u1DFF]|[\\u20D0-\\u20F0]|[\\uFE20-\\uFE2F])+)/;\n // source: https://mathiasbynens.be/notes/javascript-unicode\n var astral_symbols_re = /([\\uD800-\\uDBFF][\\uDC00-\\uDFFF])/;\n // source: https://github.com/mathiasbynens/emoji-regex\n var emoji_re = /(\\uD83C\\uDFF4(?:\\uDB40\\uDC67\\uDB40\\uDC62(?:\\uDB40\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67|\\uDB40\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73|\\uDB40\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74)\\uDB40\\uDC7F|\\u200D\\u2620\\uFE0F)|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC68(?:\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83D\\uDC68|(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDB0-\\uDDB3])|(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDB0-\\uDDB3]))|\\uD83D\\uDC69\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDB0-\\uDDB3])|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|(?:\\uD83D\\uDC41\\uFE0F\\u200D\\uD83D\\uDDE8|\\uD83D\\uDC69(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2695\\u2696\\u2708]|\\uD83D\\uDC68(?:(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|(?:(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)\\uFE0F|\\uD83D\\uDC6F|\\uD83E[\\uDD3C\\uDDDE\\uDDDF])\\u200D[\\u2640\\u2642]|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2640\\u2642]|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDD6-\\uDDDD])(?:(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2640\\u2642]|\\u200D[\\u2640\\u2642])|\\uD83D\\uDC69\\u200D[\\u2695\\u2696\\u2708])\\uFE0F|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83D\\uDC68(?:\\u200D(?:(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83D[\\uDC66\\uDC67])|\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C\\uDFF3\\uFE0F\\u200D\\uD83C\\uDF08|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDB0-\\uDDB3])|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66|\\uD83C\\uDDF6\\uD83C\\uDDE6|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83D\\uDC69(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C\\uDDED(?:\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA])|\\uD83C\\uDDEC(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE])|\\uD83C\\uDDEA(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA])|\\uD83C\\uDDE8(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF5\\uDDF7\\uDDFA-\\uDDFF])|\\uD83C\\uDDF2(?:\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF])|\\uD83C\\uDDF3(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF])|\\uD83C\\uDDFC(?:\\uD83C[\\uDDEB\\uDDF8])|\\uD83C\\uDDFA(?:\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF])|\\uD83C\\uDDF0(?:\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDEF(?:\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5])|\\uD83C\\uDDF8(?:\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF])|\\uD83C\\uDDEE(?:\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9])|\\uD83C\\uDDFF(?:\\uD83C[\\uDDE6\\uDDF2\\uDDFC])|\\uD83C\\uDDEB(?:\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7])|\\uD83C\\uDDF5(?:\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE])|\\uD83C\\uDDE9(?:\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF])|\\uD83C\\uDDF9(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF])|\\uD83C\\uDDE7(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF])|[#\\*0-9]\\uFE0F\\u20E3|\\uD83C\\uDDF1(?:\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE])|\\uD83C\\uDDE6(?:\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF])|\\uD83C\\uDDF7(?:\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC])|\\uD83C\\uDDFB(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA])|\\uD83C\\uDDFE(?:\\uD83C[\\uDDEA\\uDDF9])|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:[\\u261D\\u270A-\\u270D]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC70\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDCAA\\uDD74\\uDD7A\\uDD90\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD36\\uDDB5\\uDDB6\\uDDD1-\\uDDD5])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:[\\u231A\\u231B\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u25FE\\u2614\\u2615\\u2648-\\u2653\\u267F\\u2693\\u26A1\\u26AA\\u26AB\\u26BD\\u26BE\\u26C4\\u26C5\\u26CE\\u26D4\\u26EA\\u26F2\\u26F3\\u26F5\\u26FA\\u26FD\\u2705\\u270A\\u270B\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2795-\\u2797\\u27B0\\u27BF\\u2B1B\\u2B1C\\u2B50\\u2B55]|\\uD83C[\\uDC04\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF93\\uDFA0-\\uDFCA\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF4\\uDFF8-\\uDFFF]|\\uD83D[\\uDC00-\\uDC3E\\uDC40\\uDC42-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDD7A\\uDD95\\uDD96\\uDDA4\\uDDFB-\\uDE4F\\uDE80-\\uDEC5\\uDECC\\uDED0-\\uDED2\\uDEEB\\uDEEC\\uDEF4-\\uDEF9]|\\uD83E[\\uDD10-\\uDD3A\\uDD3C-\\uDD3E\\uDD40-\\uDD45\\uDD47-\\uDD70\\uDD73-\\uDD76\\uDD7A\\uDD7C-\\uDDA2\\uDDB0-\\uDDB9\\uDDC0-\\uDDC2\\uDDD0-\\uDDFF])|(?:[#\\*0-9\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u261D\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A1\\u26AA\\u26AB\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C5\\u26C8\\u26CE\\u26CF\\u26D1\\u26D3\\u26D4\\u26E9\\u26EA\\u26F0-\\u26F5\\u26F7-\\u26FA\\u26FD\\u2702\\u2705\\u2708-\\u270D\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763\\u2764\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC04\\uDCCF\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE02\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF21\\uDF24-\\uDF93\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E-\\uDFF0\\uDFF3-\\uDFF5\\uDFF7-\\uDFFF]|\\uD83D[\\uDC00-\\uDCFD\\uDCFF-\\uDD3D\\uDD49-\\uDD4E\\uDD50-\\uDD67\\uDD6F\\uDD70\\uDD73-\\uDD7A\\uDD87\\uDD8A-\\uDD8D\\uDD90\\uDD95\\uDD96\\uDDA4\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA-\\uDE4F\\uDE80-\\uDEC5\\uDECB-\\uDED2\\uDEE0-\\uDEE5\\uDEE9\\uDEEB\\uDEEC\\uDEF0\\uDEF3-\\uDEF9]|\\uD83E[\\uDD10-\\uDD3A\\uDD3C-\\uDD3E\\uDD40-\\uDD45\\uDD47-\\uDD70\\uDD73-\\uDD76\\uDD7A\\uDD7C-\\uDDA2\\uDDB0-\\uDDB9\\uDDC0-\\uDDC2\\uDDD0-\\uDDFF])\\uFE0F|(?:[\\u261D\\u26F9\\u270A-\\u270D]|\\uD83C[\\uDF85\\uDFC2-\\uDFC4\\uDFC7\\uDFCA-\\uDFCC]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66-\\uDC69\\uDC6E\\uDC70-\\uDC78\\uDC7C\\uDC81-\\uDC83\\uDC85-\\uDC87\\uDCAA\\uDD74\\uDD75\\uDD7A\\uDD90\\uDD95\\uDD96\\uDE45-\\uDE47\\uDE4B-\\uDE4F\\uDEA3\\uDEB4-\\uDEB6\\uDEC0\\uDECC]|\\uD83E[\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD26\\uDD30-\\uDD39\\uDD3D\\uDD3E\\uDDB5\\uDDB6\\uDDB8\\uDDB9\\uDDD1-\\uDDDD]))/;\n // https://stackoverflow.com/questions/11381673/detecting-a-mobile-browser\n var mobile_re = /(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;\n var tablet_re = /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;\n var format_split_re = /(\\[\\[(?:-?[@!gbiuso])*;[^;]*;[^\\]]*\\](?:[^\\]\\\\]*(?:\\\\\\\\)*\\\\\\][^\\]]*|[^\\]]*|[^[]*\\[[^\\]]*)\\]?)/i;\n var format_parts_re = /\\[\\[((?:-?[@!gbiuso])*);([^;]*);([^;\\]]*);?([^;\\]]*);?([^\\]]*)\\]([^\\]\\\\]*\\\\\\][^\\]]*|[^\\]]*|[^[]*\\[[^\\]]+)\\]?/gi;\n var format_re = /\\[\\[((?:-?[@!gbiuso])*;[^;\\]]*;[^;\\]]*(?:;|[^\\]()]*);?[^\\]]*)\\]([^\\]]*\\\\\\][^\\]]*|[^\\]]*|[^[]*\\[[^\\]]*)\\]?/gi;\n var format_exist_re = /\\[\\[((?:-?[@!gbiuso])*;[^;\\]]*;[^;\\]]*(?:;|[^\\]()]*);?[^\\]]*)\\]([^\\]]*\\\\\\][^\\]]*|[^\\]]*|[^[]*\\[[^\\]]*)\\]/gi;\n var format_full_re = /^(\\[\\[(?:(?:-?[@!gbiuso])*;[^;\\]]*;[^;\\]]*(?:;|[^\\]()]*);?[^\\]]*)\\])([^\\]]*\\\\\\][^\\]]*|[^\\]]*|[^[]*\\[[^\\]]*)(\\])$/i;\n var format_begin_re = /(\\[\\[(?:-?[@!gbiuso])*;[^;]*;[^\\]]*\\])/i;\n var format_start_re = /^(\\[\\[(?:-?[@!gbiuso])*;[^;]*;[^\\]]*\\])/i;\n var format_end_re = /\\[\\[(?:-?[@!gbiuso])*;[^;]*;[^\\]]*\\]?$/i;\n var self_closing_re = /^(?:\\[\\[)?[^;]*@[^;]*;/;\n var color_hex_re = /^#([0-9a-f]{3}|[0-9a-f]{6})$/i;\n var url_re = /(\\bhttps?:\\/\\/(?:(?:(?!&[^;]+;)|(?=&))[^\\s\"'<>\\][)])+)/gi;\n var url_nf_re = /\\b(?![^\"\\s[\\]]*])(https?:\\/\\/(?:(?:(?!&[^;]+;)|(?=&))[^\\s\"'<>\\][)])+)/gi;\n var email_re = /((([^<>('\")[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,})))/g;\n var url_full_re = /^(https?:\\/\\/(?:(?:(?!&[^;]+;)|(?=&))[^\\s\"'<>\\][)])+)$/gi;\n var email_full_re = /^((([^<>('\")[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,})))$/g;\n var command_re = /((?:\"[^\"\\\\]*(?:\\\\[\\S\\s][^\"\\\\]*)*\"|'[^'\\\\]*(?:\\\\[\\S\\s][^'\\\\]*)*'|\\/[^\\/\\\\]*(?:\\\\[\\S\\s][^\\/\\\\]*)*\\/[gimsuy]*(?=\\s|$)|(?:\\\\\\s|\\S))+)(?=\\s|$)/gi;\n var extended_command_re = /^\\s*((terminal|cmd)::([a-z_]+)\\(([\\s\\S]*)\\))\\s*$/;\n var format_exec_re = /(\\[\\[(?:[^\\][]|\\\\\\])+\\]\\])/;\n var float_re = /^[-+]?[0-9]*\\.?[0-9]+([eE][-+]?[0-9]+)?$/;\n var re_re = /^\\/((?:\\\\\\/|[^/]|\\[[^\\]]*\\/[^\\]]*\\])+)\\/([gimsuy]*)$/;\n var string_re = /(\"(?:[^\"\\\\]|\\\\(?:\\\\\\\\)*\"|\\\\\\\\)*\"|'(?:[^'\\\\]|\\\\(?:\\\\\\\\)*'|\\\\\\\\)*')/;\n var unclosed_strings_re = /^(?=((?:[^\"']+|\"[^\"\\\\]*(?:\\\\[^][^\"\\\\]*)*\"|'[^'\\\\]*(?:\\\\[^][^'\\\\]*)*')*))\\1./;\n var broken_image = '';\n var use_broken_image = '';\n /* eslint-enable */\n // -------------------------------------------------------------------------\n // :: features flags\n // -------------------------------------------------------------------------\n // taken from https://hacks.mozilla.org/2011/09/detecting-and-generating-\n // css-animations-in-javascript/\n var animation_supported = (function() {\n var animation = false,\n domPrefixes = 'Webkit Moz O ms Khtml'.split(' '),\n elm = document.createElement('div');\n if (elm.style.animationName) {\n animation = true;\n }\n if (animation === false) {\n for (var i = 0; i < domPrefixes.length; i++) {\n var name = domPrefixes[i] + 'AnimationName';\n if (elm.style[name] !== undefined) {\n animation = true;\n break;\n }\n }\n }\n elm = null;\n return animation;\n })();\n // -------------------------------------------------------------------------\n var agent = window.navigator.userAgent;\n var is_IE = /MSIE|Trident/.test(agent) || /rv:11.0/i.test(agent);\n var is_IEMobile = /IEMobile/.test(agent);\n // -------------------------------------------------------------------------\n var is_ch_unit_supported = (function() {\n if (is_IE && !is_IEMobile) {\n return false;\n }\n var div = document.createElement('div');\n div.style.width = '1ch';\n return div.style.width === '1ch';\n })();\n // -------------------------------------------------------------------------\n var is_css_variables_supported = window.CSS && window.CSS.supports &&\n window.CSS.supports('--fake-var', 0);\n // -------------------------------------------------------------------------\n var is_android = navigator.userAgent.toLowerCase().indexOf('android') !== -1;\n // -------------------------------------------------------------------------\n var is_key_native = (function is_key_native() {\n if (!('KeyboardEvent' in window && 'key' in window.KeyboardEvent.prototype)) {\n return false;\n }\n var proto = window.KeyboardEvent.prototype;\n var get = Object.getOwnPropertyDescriptor(proto, 'key').get;\n return !!get.toString().match(/\\[native code\\]/);\n })();\n // -------------------------------------------------------------------------\n var is_mobile = (function(a) {\n var check = false;\n if (mobile_re.test(a) || tablet_re.test(a.substr(0, 4))) {\n check = true;\n }\n // detect iPad 13\n // ref: https://stackoverflow.com/a/57924983/387194s\n if (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1) {\n return true;\n }\n return check;\n })(navigator.userAgent || navigator.vendor || window.opera);\n\n // -------------------------------------------------------------------------\n // IE ch unit bug detection - better that UserAgent that can be changed\n // -------------------------------------------------------------------------\n var ch_unit_bug = false;\n $(function() {\n function width(e) {\n return e[0].getBoundingClientRect().width;\n }\n var base = ' ').appendTo('body');\n var space = $(base + '\"> ').appendTo('body');\n // in FireFox the size of space is fraction larger #579\n ch_unit_bug = Math.abs(width(ch) - width(space)) > 0.0001;\n ch.remove();\n space.remove();\n });\n // -----------------------------------------------------------------------\n // :: css helper that work with css variables\n // :: jQuery css method from 3.4 support them by default\n // -----------------------------------------------------------------------\n function css(node, obj, value) {\n if ($.isPlainObject(obj)) {\n Object.keys(obj).forEach(function(key) {\n node.style.setProperty(key, obj[key]);\n });\n } else if (typeof value === 'undefined') {\n return node.style.getPropertyValue(obj);\n } else {\n node.style.setProperty(obj, value);\n }\n }\n // -----------------------------------------------------------------------\n // :: hide elements from screen readers\n // -----------------------------------------------------------------------\n function a11y_hide(element) {\n element.attr({\n role: 'presentation',\n 'aria-hidden': 'true'\n });\n }\n // ---------------------------------------------------------------------\n // :: alert only first exception of type\n // ---------------------------------------------------------------------\n var excepctions = [];\n function alert_exception(label, e) {\n if (arguments[0] instanceof $.terminal.Exception) {\n label = arguments[0].type;\n e = arguments[0];\n }\n var message = (label ? label + ': ' : '') + exception_message(e);\n if (excepctions.indexOf(message) === -1) {\n excepctions.push(message);\n setTimeout(function() {\n throw e;\n }, 0);\n //alert(message + (e.stack ? '\\n' + e.stack : ''));\n }\n }\n // ---------------------------------------------------------------------\n // :; detect if mouse event happen on scrollbar\n // ---------------------------------------------------------------------\n function scrollbar_event(e, node) {\n var left = node.offset().left;\n return node.outerWidth() <= e.clientX - left;\n }\n // ---------------------------------------------------------------------\n // :: Return exception message as string\n // ---------------------------------------------------------------------\n function exception_message(e) {\n if (typeof e === 'string') {\n return e;\n } else if (typeof e.fileName === 'string') {\n return e.fileName + ': ' + e.message;\n } else {\n return e.message;\n }\n }\n // -----------------------------------------------------------------------\n // :: CYCLE DATA STRUCTURE\n // -----------------------------------------------------------------------\n function Cycle() {\n var data = [].slice.call(arguments);\n var pos = 0;\n $.extend(this, {\n get: function() {\n return data;\n },\n index: function() {\n return pos;\n },\n rotate: function(skip, init) {\n if (init === undefined) {\n init = pos;\n } else if (init === pos) {\n return;\n }\n if (!skip) {\n var defined = data.filter(function(item) {\n return typeof item !== 'undefined';\n });\n if (!defined.length) {\n return;\n }\n }\n if (!data.length) {\n return;\n }\n if (data.length === 1) {\n return data[0];\n } else {\n if (pos === data.length - 1) {\n pos = 0;\n } else {\n ++pos;\n }\n if (typeof data[pos] !== 'undefined') {\n return data[pos];\n } else {\n return this.rotate(true, init);\n }\n }\n },\n length: function() {\n return data.length;\n },\n remove: function(index) {\n delete data[index];\n },\n set: function(item) {\n for (var i = data.length; i--;) {\n if (data[i] === item) {\n pos = i;\n return;\n }\n }\n this.append(item);\n pos = data.length - 1;\n },\n front: function() {\n if (data.length) {\n var index = pos;\n var restart = false;\n while (!data[index]) {\n index++;\n if (index > data.length) {\n if (restart) {\n break;\n }\n index = 0;\n restart = true;\n }\n }\n return data[index];\n }\n },\n map: function(fn) {\n return data.map(function(item, i) {\n if (typeof item !== 'undefined') {\n return fn(item, i);\n }\n return null;\n }).filter(Boolean);\n },\n forEach: function(fn) {\n return data.forEach(function(item, i) {\n if (typeof item !== 'undefined') {\n fn(item, i);\n }\n });\n },\n append: function(item) {\n data.push(item);\n }\n });\n }\n /*\n function time() {\n // performance.now almost equal Date.now()- performance.timing.navigationStart\n // the difference check should be almost the same\n return performance ? performance.now() : Date.now();\n }\n */\n // -----------------------------------------------------------------------\n // :: STACK DATA STRUCTURE\n // -----------------------------------------------------------------------\n function Stack(init) {\n var data = is_array(init) ? init : init ? [init] : [];\n $.extend(this, {\n data: function() {\n return data;\n },\n map: function(fn) {\n return $.map(data, fn);\n },\n size: function() {\n return data.length;\n },\n pop: function() {\n if (data.length === 0) {\n return null;\n } else {\n var value = data[data.length - 1];\n data = data.slice(0, data.length - 1);\n return value;\n }\n },\n push: function(value) {\n data = data.concat([value]);\n return value;\n },\n top: function() {\n return data.length > 0 ? data[data.length - 1] : null;\n },\n clone: function() {\n return new Stack(data.slice(0));\n }\n });\n }\n // -------------------------------------------------------------------------\n // :: Class for Worker that do some computation when needed\n // :: if validation function return false it mean that condition changed\n // :: and cache need to be cleared. If value was not prcessed it will run\n // :: the action\n // -------------------------------------------------------------------------\n function WorkerCache(options) {\n var settings = $.extend({\n validation: $.noop,\n action: $.noop,\n onCache: $.noop\n }, options);\n this._onCache = settings.onCache.bind(this);\n this._action = settings.action.bind(this);\n this._validation = settings.validation.bind(this);\n this._cache = new Map();\n }\n // -------------------------------------------------------------------------\n WorkerCache.prototype.validate = function(key) {\n var valid = this._validation(key);\n var test = valid === undefined || valid === true;\n if (!test) {\n this._cache.clear();\n }\n return test;\n };\n // -------------------------------------------------------------------------\n WorkerCache.prototype.get = function(key) {\n var value;\n if (this.validate(key) && this._cache.has(key)) {\n value = this._cache.get(key);\n this._onCache({cache: value});\n return value;\n }\n value = this._action(key);\n this._cache.set(key, value);\n return value;\n };\n // -------------------------------------------------------------------------\n // :: HISTORY CLASS\n // -------------------------------------------------------------------------\n function History(name, size, memory) {\n var enabled = true;\n var storage_key = '';\n if (typeof name === 'string' && name !== '') {\n storage_key = name + '_';\n }\n storage_key += 'commands';\n var data;\n if (memory) {\n data = [];\n } else {\n data = $.Storage.get(storage_key);\n data = data ? JSON.parse(data) : [];\n }\n var pos = data.length - 1;\n $.extend(this, {\n append: function(item) {\n if (enabled) {\n if (data[data.length - 1] !== item) {\n data.push(item);\n if (size && data.length > size) {\n data = data.slice(-size);\n }\n pos = data.length - 1;\n if (!memory) {\n $.Storage.set(storage_key, JSON.stringify(data));\n }\n }\n }\n },\n set: function(new_data) {\n if (is_array(new_data)) {\n data = new_data;\n if (!memory) {\n $.Storage.set(storage_key, JSON.stringify(data));\n }\n }\n },\n data: function() {\n return data;\n },\n reset: function() {\n pos = data.length - 1;\n },\n last: function() {\n return data[data.length - 1];\n },\n end: function() {\n return pos === data.length - 1;\n },\n position: function() {\n return pos;\n },\n current: function() {\n return data[pos];\n },\n next: function() {\n var old = pos;\n if (pos < data.length - 1) {\n ++pos;\n }\n if (old !== pos) {\n return data[pos];\n }\n },\n previous: function() {\n var old = pos;\n if (pos > 0) {\n --pos;\n }\n if (old !== pos) {\n return data[pos];\n }\n },\n clear: function() {\n data = [];\n this.purge();\n },\n enabled: function() {\n return enabled;\n },\n enable: function() {\n enabled = true;\n },\n purge: function() {\n if (!memory) {\n $.Storage.remove(storage_key);\n }\n },\n disable: function() {\n enabled = false;\n },\n toggle: function(value) {\n if (typeof value === 'undefined') {\n enabled = !enabled;\n } else {\n enabled = value;\n }\n }\n });\n }\n // -------------------------------------------------------------------------\n // :: COMMAND LINE PLUGIN\n // -------------------------------------------------------------------------\n var cmd_index = 0;\n $.cmd = {\n defaults: {\n mask: false,\n caseSensitiveSearch: true,\n historySize: 60,\n prompt: '> ',\n enabled: true,\n history: true,\n onPositionChange: $.noop,\n onCommandChange: $.noop,\n inputStyle: 'textarea',\n mobileDelete: is_mobile,\n onPaste: $.noop,\n clickTimeout: 200,\n holdTimeout: 400,\n holdRepeatTimeout: 200,\n mobileIngoreAutoSpace: [],\n repeatTimeoutKeys: [],\n tabindex: 1,\n tabs: 4\n }\n };\n $.fn.cmd = function(options) {\n var settings = $.extend({}, $.cmd.defaults, options);\n function mobile_ignore_key(key) {\n return settings.mobileIngoreAutoSpace.length &&\n settings.mobileIngoreAutoSpace.indexOf(key) !== -1 && is_android;\n }\n var self = this;\n var maybe_data = self.data('cmd');\n if (maybe_data) {\n return maybe_data;\n }\n var id = cmd_index++;\n self.addClass('cmd');\n var wrapper = $('').appendTo(self);\n wrapper.append('
');\n wrapper.append('
' +\n '' +\n '' +\n ' ' +\n '' +\n '
');\n var cursor_line = wrapper.find('.cmd-cursor-line');\n // a11y: don't read command it's in textarea that's in focus\n a11y_hide(cursor_line);\n // on mobile the only way to hide textarea on desktop it's needed because\n // textarea show up after focus\n //self.append('
');\n var clip;\n if (is_mobile) {\n clip = (function() {\n var $node = $('').attr({\n autocapitalize: 'off',\n autocorrect: 'off',\n spellcheck: 'false',\n tabindex: settings.tabindex\n }).insertAfter(self);\n $node.on('focus', function() {\n self.enable();\n }).on('blur', function() {\n self.disable();\n });\n var timer;\n var clip = {\n $node: $node,\n val: function(value) {\n if (typeof value === 'undefined') {\n return $node.text();\n } else {\n $node.html(value);\n }\n },\n reset: function() {\n clearTimeout(timer);\n timer = setTimeout(function() {\n $node.css({\n top: '',\n bottom: ''\n });\n }, 400);\n },\n focus: function() {\n css($node[0], {\n top: 'calc(var(--terminal-scroll, 0) * 1px)'\n });\n clip.reset();\n },\n blur: function() {\n $node.css({\n top: '100%',\n bottom: 0\n }).blur();\n // just in case of Webkit bug\n window.getSelection().removeAllRanges();\n clip.reset();\n }\n };\n return clip;\n })();\n self.addClass('cmd-mobile');\n } else {\n clip = (function() {\n var $node = $('