From a5f68cc970dcae42963b573012c32310f9a7eff0 Mon Sep 17 00:00:00 2001 From: Florian Mounier Date: Thu, 27 Feb 2014 10:09:33 +0100 Subject: [PATCH] Whoops --- build.sh | 2 +- butterfly/static/javascripts/main.js | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/build.sh b/build.sh index f3c7e15..b89270f 100755 --- a/build.sh +++ b/build.sh @@ -6,4 +6,4 @@ coffee -cb -j butterfly/static/javascripts/main.js \ butterfly/static/coffees/selection.coffee \ butterfly/static/coffees/virtual_input.coffee \ butterfly/static/coffees/main.coffee -uglifyjs butterfly/static/javascripts/main.js -c -m > butterfly/static/javascripts/main.js +uglifyjs butterfly/static/javascripts/main.js -c -m -o butterfly/static/javascripts/main.js diff --git a/butterfly/static/javascripts/main.js b/butterfly/static/javascripts/main.js index e69de29..4e9c5ad 100644 --- a/butterfly/static/javascripts/main.js +++ b/butterfly/static/javascripts/main.js @@ -0,0 +1,2 @@ +var $,Selection,State,Terminal,alt,bench,cancel,cbench,cols,ctl,ctrl,first,next_leaf,previous_leaf,quit,rows,s,selection,send,term,virtual_input,ws,ws_url,__indexOf=[].indexOf||function(t){for(var e=0,s=this.length;s>e;e++)if(e in this&&this[e]===t)return e;return-1},__slice=[].slice;cancel=function(t){return t.preventDefault&&t.preventDefault(),t.stopPropagation&&t.stopPropagation(),t.cancelBubble=!0,!1},s=0,State={normal:s++,escaped:s++,csi:s++,osc:s++,charset:s++,dcs:s++,ignore:s++},Terminal=function(){function t(t,e,s){var i,r,n;for(this.parent=t,this.out=e,this.ctl=null!=s?s:function(){},this.context=this.parent.ownerDocument.defaultView,this.document=this.parent.ownerDocument,this.body=this.document.getElementsByTagName("body")[0],this.element=this.document.createElement("div"),this.element.className="terminal focus",this.element.style.outline="none",this.element.setAttribute("tabindex",0),this.parent.appendChild(this.element),i=this.document.createElement("div"),i.className="line",this.element.appendChild(i),this.children=[i],this.compute_char_size(),i.style.height=this.char_size.height+"px",n=this.parent.getBoundingClientRect(),this.cols=Math.floor(n.width/this.char_size.width)-1,this.rows=Math.floor(n.height/this.char_size.height),r=this.rows-1;r--;)i=this.document.createElement("div"),i.style.height=this.char_size.height+"px",i.className="line",this.element.appendChild(i),this.children.push(i);this.scrollback=1e5,this.visualBell=100,this.convertEol=!1,this.termName="xterm",this.cursorBlink=!0,this.cursorState=0,this.last_cc=0,this.reset_vars(),this.refresh(0,this.rows-1),this.focus(),this.startBlink(),addEventListener("keydown",this.keyDown.bind(this)),addEventListener("keypress",this.keyPress.bind(this)),addEventListener("focus",this.focus.bind(this)),addEventListener("blur",this.blur.bind(this)),addEventListener("paste",this.paste.bind(this)),addEventListener("resize",this.resize.bind(this)),"undefined"!=typeof InstallTrigger&&(this.element.contentEditable="true",this.element.addEventListener("mouseup",function(){var t;return t=getSelection().getRangeAt(0),t.startOffset===t.endOffset?getSelection().removeAllRanges():void 0})),this.initmouse()}return t.prototype.reset_vars=function(){var t;for(this.ybase=0,this.ydisp=0,this.x=0,this.y=0,this.cursorHidden=!1,this.state=State.normal,this.queue="",this.scrollTop=0,this.scrollBottom=this.rows-1,this.applicationKeypad=!1,this.applicationCursor=!1,this.originMode=!1,this.wraparoundMode=!1,this.normal=null,this.charset=null,this.gcharset=null,this.glevel=0,this.charsets=[null],this.defAttr=131840,this.curAttr=this.defAttr,this.params=[],this.currentParam=0,this.prefix="",this.lines=[],t=this.rows;t--;)this.lines.push(this.blankLine());return this.setupStops(),this.skipNextKey=null},t.prototype.compute_char_size=function(){var t;return t=document.createElement("span"),t.textContent="0123456789",this.children[0].appendChild(t),this.char_size={width:t.getBoundingClientRect().width/10,height:this.children[0].getBoundingClientRect().height},this.children[0].removeChild(t)},t.prototype.eraseAttr=function(){return-512&this.defAttr|511&this.curAttr},t.prototype.focus=function(){return this.sendFocus&&this.send(""),this.showCursor(),this.element.classList.add("focus"),this.element.classList.remove("blur")},t.prototype.blur=function(){return this.cursorState=1,this.refresh(this.y,this.y),this.sendFocus&&this.send(""),this.element.classList.add("blur"),this.element.classList.remove("focus")},t.prototype.paste=function(t){return t.clipboardData?this.send(t.clipboardData.getData("text/plain")):this.context.clipboardData&&this.send(this.context.clipboardData.getData("Text")),cancel(t)},t.prototype.initmouse=function(){var t,e,s,i,r,n,o,a=this;return i=32,r=function(t){var r,o;if(r=e(t),o=s(t))switch(n(r,o),t.type){case"mousedown":return i=r;case"mouseup":return i=32}},o=function(t){var e,r;return e=i,(r=s(t))?(e+=32,n(e,r)):void 0},t=function(t,e){return a.utfMouse?2047===e?t.push(0):127>e?t.push(e):(e>2047&&(e=2047),t.push(192|e>>6),t.push(128|63&e)):255===e?t.push(0):(e>127&&(e=127),t.push(e))},n=function(e,s){var i;return a.urxvtMouse?(s.x-=32,s.y-=32,s.x++,s.y++,void a.send("["+e+";"+s.x+";"+s.y+"M")):a.sgrMouse?(s.x-=32,s.y-=32,void a.send("[<"+(3===(3&e)?-4&e:e)+";"+s.x+";"+s.y+(3===(3&e)?"m":"M"))):(i=[],t(i,e),t(i,s.x),t(i,s.y),a.send(""+String.fromCharCode.apply(String,i)))},e=function(t){var e,s,i,r,n;switch(t.type){case"mousedown":e=null!=t.button?+t.button:null!=t.which?t.which-1:null;break;case"mouseup":e=3;break;case"wheel":e=t.deltaY<0?64:65}return n=t.shiftKey?4:0,i=t.metaKey?8:0,s=t.ctrlKey?16:0,r=n|i|s,a.vt200Mouse?r&=s:a.normalMouse||(r=0),32+(r<<2)+e},s=function(t){var e,s,i,r,n;for(r=t.pageX,n=t.pageY,e=a.element;e&&e!==a.document.documentElement;)r-=e.offsetLeft,n-=e.offsetTop,e="offsetParent"in e?e.offsetParent:e.parentNode;return i=a.element.clientWidth,s=a.element.clientHeight,r=Math.ceil(r/i*a.cols),n=Math.ceil(n/s*a.rows),0>r&&(r=0),r>a.cols&&(r=a.cols),0>n&&(n=0),n>a.rows&&(n=a.rows),r+=32,n+=32,{x:r,y:n,type:t.type}},addEventListener("mousedown",function(t){var e;if(a.mouseEvents)return r(t),a.vt200Mouse?(r({__proto__:t,type:"mouseup"}),cancel(t)):(a.normalMouse&&addEventListener("mousemove",o.bind(a)),a.x10Mouse||addEventListener("mouseup",e=function(t){return r(t),a.normalMouse&&removeEventListener("mousemove",o),removeEventListener("mouseup",e),cancel(t)}),cancel(t))}),addEventListener("wheel",function(t){if(a.mouseEvents){if(a.x10Mouse)return;r(t)}else{if(a.applicationKeypad)return;a.scrollDisp(t.deltaY>0?5:-5)}return cancel(t)})},t.prototype.refresh=function(t,e){var s,i,r,n,o,a,h,c,l,u,p,d,f,y,m;for(e-t>=this.rows/3&&(p=this.element.parentNode,null!=p&&p.removeChild(this.element)),f=this.cols,m=t,e>=this.lines.length&&(e=this.lines.length-1);e>=m;){for(d=m+this.ydisp,l=this.lines[d],u="",y=m!==this.y||this.ydisp!==this.ybase&&!this.selectMode||this.cursorHidden?-1/0:this.x,s=this.defAttr,c=0;f>c;){if(o=l[c][0],r=l[c][1],o!==s&&(s!==this.defAttr&&(u+=""),o!==this.defAttr&&(n=[],u+=">9&511,h=o>>18,1&h&&n.push("bold"),2&h&&n.push("underline"),4&h&&n.push("blink"),8&h&&n.push("reverse-video"),16&h&&n.push("invisible"),1&h&&8>a&&(a+=8),n.push("bg-color-"+i),n.push("fg-color-"+a),u+='class="',u+=n.join(" "),u+='">')),c===y&&(u+=''),r.length>1)u+=r;else switch(r){case"&":u+="&";break;case"<":u+="<";break;case">":u+=">";break;default:" ">=r?u+=" ":(r>"＀"&&"￯">r&&c++,u+=r)}c===y&&(u+=""),s=o,c++}s!==this.defAttr&&(u+=""),this.children[m].innerHTML=u,m++}return null!=p?p.appendChild(this.element):void 0},t.prototype._cursorBlink=function(){var t;return this.cursorState^=1,(t=this.element.querySelector(".cursor"))?t.classList.contains("reverse-video")?t.classList.remove("reverse-video"):t.classList.add("reverse-video"):void 0},t.prototype.showCursor=function(){return this.cursorState?void 0:(this.cursorState=1,this.refresh(this.y,this.y))},t.prototype.startBlink=function(){var t=this;if(this.cursorBlink)return this._blinker=function(){return t._cursorBlink()},this.t_blink=setInterval(this._blinker,500)},t.prototype.refreshBlink=function(){return this.cursorBlink?(clearInterval(this.t_blink),this.t_blink=setInterval(this._blinker,500)):void 0},t.prototype.scroll=function(){var t;return++this.ybase===this.scrollback&&(this.ybase=this.ybase/2|0,this.lines=this.lines.slice(-(this.ybase+this.rows)+1)),this.ydisp=this.ybase,t=this.ybase+this.rows-1,t-=this.rows-1-this.scrollBottom,t===this.lines.length?this.lines.push(this.blankLine()):this.lines.splice(t,0,this.blankLine()),0!==this.scrollTop&&(0!==this.ybase&&(this.ybase--,this.ydisp=this.ybase),this.lines.splice(this.ybase+this.scrollTop,1)),this.updateRange(this.scrollTop),this.updateRange(this.scrollBottom)},t.prototype.scrollDisp=function(t){return this.ydisp+=t,this.ydisp>this.ybase?this.ydisp=this.ybase:this.ydisp<0&&(this.ydisp=0),this.refresh(0,this.rows-1)},t.prototype.write=function(e){var s,i,r,n,o,a,h,c,l,u;for(this.refreshStart=this.y,this.refreshEnd=this.y,this.ybase!==this.ydisp&&(this.ydisp=this.ybase,this.maxRange()),n=0,a=e.length;a>n;){switch(s=e[n],this.state){case State.normal:switch(s){case"":this.bell();break;case"\n":case" ":case"\f":this.convertEol&&(this.x=0),this.y++,this.y>this.scrollBottom&&(this.y--,this.scroll());break;case"\r":this.x=0;break;case"\b":this.x>0&&this.x--;break;case" ":this.x=this.nextStop();break;case"":this.setgLevel(1);break;case"":this.setgLevel(0);break;case"":this.state=State.escaped;break;default:if(s>=" "&&((null!=(u=this.charset)?u[s]:void 0)&&(s=this.charset[s]),this.x>=this.cols&&(this.x=0,this.y++,this.y>this.scrollBottom&&(this.y--,this.scroll())),this.lines[this.y+this.ybase][this.x]=[this.curAttr,s],this.x++,this.updateRange(this.y),s>"＀"&&"￯">s)){if(o=this.y+this.ybase,this.cols<2||this.x>=this.cols){this.lines[o][this.x-1]=[this.curAttr," "];break}this.lines[o][this.x]=[this.curAttr," "],this.x++}}break;case State.escaped:switch(s){case"[":this.params=[],this.currentParam=0,this.state=State.csi;break;case"]":this.params=[],this.currentParam=0,this.state=State.osc;break;case"P":this.params=[],this.currentParam=0,this.state=State.dcs;break;case"_":this.state=State.ignore;break;case"^":this.state=State.ignore;break;case"c":this.reset();break;case"E":this.x=0,this.index();break;case"D":this.index();break;case"M":this.reverseIndex();break;case"%":this.setgLevel(0),this.setgCharset(0,t.prototype.charsets.US),this.state=State.normal,n++;break;case"(":case")":case"*":case"+":case"-":case".":switch(s){case"(":this.gcharset=0;break;case")":case"-":this.gcharset=1;break;case"*":case".":this.gcharset=2;break;case"+":this.gcharset=3}this.state=State.charset;break;case"/":this.gcharset=3,this.state=State.charset,n--;break;case"n":this.setgLevel(2);break;case"o":this.setgLevel(3);break;case"|":this.setgLevel(3);break;case"}":this.setgLevel(2);break;case"~":this.setgLevel(1);break;case"7":this.saveCursor(),this.state=State.normal;break;case"8":this.restoreCursor(),this.state=State.normal;break;case"#":this.state=State.normal,n++;break;case"H":this.tabSet();break;case"=":this.applicationKeypad=!0,this.state=State.normal;break;case">":this.applicationKeypad=!1,this.state=State.normal;break;default:this.state=State.normal,console.log("Unknown ESC control:",s)}break;case State.charset:switch(s){case"0":i=t.prototype.charsets.SCLD;break;case"A":i=t.prototype.charsets.UK;break;case"B":i=t.prototype.charsets.US;break;case"4":i=t.prototype.charsets.Dutch;break;case"C":case"5":i=t.prototype.charsets.Finnish;break;case"R":i=t.prototype.charsets.French;break;case"Q":i=t.prototype.charsets.FrenchCanadian;break;case"K":i=t.prototype.charsets.German;break;case"Y":i=t.prototype.charsets.Italian;break;case"E":case"6":i=t.prototype.charsets.NorwegianDanish;break;case"Z":i=t.prototype.charsets.Spanish;break;case"H":case"7":i=t.prototype.charsets.Swedish;break;case"=":i=t.prototype.charsets.Swiss;break;case"/":i=t.prototype.charsets.ISOLatin,n++;break;default:i=t.prototype.charsets.US}this.setgCharset(this.gcharset,i),this.gcharset=null,this.state=State.normal;break;case State.osc:if(""===s||""===s){switch(""===s&&n++,this.params.push(this.currentParam),this.params[0]){case 0:case 1:case 2:this.params[1]&&(this.title=this.params[1]+" - ƸӜƷ butterfly",this.handleTitle(this.title));break;case 99:for(r='
'+this.params[1]+"
",this.lines[this.y+this.ybase][this.x]=[this.curAttr,r],h=0;hthis.scrollBottom&&(this.y--,this.scroll()),h++;this.updateRange(this.y)}this.params=[],this.currentParam=0,this.state=State.normal}else this.params.length?this.currentParam+=s:s>="0"&&"9">=s?this.currentParam=10*this.currentParam+s.charCodeAt(0)-48:";"===s&&(this.params.push(this.currentParam),this.currentParam="");break;case State.csi:if("?"===s||">"===s||"!"===s){this.prefix=s;break}if(s>="0"&&"9">=s){this.currentParam=10*this.currentParam+s.charCodeAt(0)-48;break}if("$"===s||'"'===s||" "===s||"'"===s)break;if(this.params.push(this.currentParam),this.currentParam=0,";"===s)break;switch(this.state=State.normal,s){case"A":this.cursorUp(this.params);break;case"B":this.cursorDown(this.params);break;case"C":this.cursorForward(this.params);break;case"D":this.cursorBackward(this.params);break;case"H":this.cursorPos(this.params);break;case"J":this.eraseInDisplay(this.params);break;case"K":this.eraseInLine(this.params);break;case"m":this.prefix||this.charAttributes(this.params);break;case"n":this.prefix||this.deviceStatus(this.params);break;case"@":this.insertChars(this.params);break;case"E":this.cursorNextLine(this.params);break;case"F":this.cursorPrecedingLine(this.params);break;case"G":this.cursorCharAbsolute(this.params);break;case"L":this.insertLines(this.params);break;case"M":this.deleteLines(this.params);break;case"P":this.deleteChars(this.params);break;case"X":this.eraseChars(this.params);break;case"`":this.charPosAbsolute(this.params);break;case"a":this.HPositionRelative(this.params);break;case"c":this.sendDeviceAttributes(this.params);break;case"d":this.linePosAbsolute(this.params);break;case"e":this.VPositionRelative(this.params);break;case"f":this.HVPosition(this.params);break;case"h":this.setMode(this.params);break;case"l":this.resetMode(this.params);break;case"r":this.setScrollRegion(this.params);break;case"s":this.saveCursor(this.params);break;case"u":this.restoreCursor(this.params);break;case"I":this.cursorForwardTab(this.params);break;case"S":this.scrollUp(this.params);break;case"T":this.params.length<2&&!this.prefix&&this.scrollDown(this.params);break;case"Z":this.cursorBackwardTab(this.params);break;case"b":this.repeatPrecedingCharacter(this.params);break;case"g":this.tabClear(this.params);break;case"p":"!"===this.prefix&&this.softReset(this.params);break;default:console.error("Unknown CSI code: %s.",s)}this.prefix="";break;case State.dcs:if(""===s||""===s){switch(""===s&&n++,this.prefix){case"":break;case"$q":switch(c=this.currentParam,l=!1,c){case'"q':c='0"q';break;case'"p':c='61"p';break;case"r":c=""+(this.scrollTop+1)+";"+(this.scrollBottom+1)+"r";break;case"m":c="0m";break;default:console.error("Unknown DCS Pt: %s.",c),c=""}this.send("P"+ +l+"$r"+c+"\\");break;case"+q":c=this.currentParam,l=!1,this.send("P"+ +l+"+r"+c+"\\");break;default:console.error("Unknown DCS prefix: %s.",this.prefix)}this.currentParam=0,this.prefix="",this.state=State.normal}else this.currentParam?this.currentParam+=s:this.prefix||"$"===s||"+"===s?2===this.prefix.length?this.currentParam=s:this.prefix+=s:this.currentParam=s;break;case State.ignore:(""===s||""===s)&&(""===s&&n++,this.state=State.normal)}n++}return this.updateRange(this.y),this.refresh(this.refreshStart,this.refreshEnd)},t.prototype.writeln=function(t){return this.write(""+t+"\r\n")},t.prototype.keyDown=function(t){var e,s,i;if(t.keyCode>15&&t.keyCode<19)return!0;if((t.shiftKey||t.ctrlKey)&&45===t.keyCode)return!0;if(t.altKey&&90===t.keyCode&&!this.skipNextKey)return this.skipNextKey=!0,this.element.classList.add("skip"),cancel(t);if(this.skipNextKey)return this.skipNextKey=!1,this.element.classList.remove("skip"),!0;switch(t.keyCode){case 8:if(s=t.altKey?"":"",t.shiftKey){s+="\b";break}s+="";break;case 9:if(t.shiftKey){s="";break}s=" ";break;case 13:s="\r";break;case 27:s="";break;case 37:if(this.applicationCursor){s="OD";break}if(t.shiftKey)return!0;s="";break;case 39:if(this.applicationCursor){s="OC";break}if(t.shiftKey)return!0;s="";break;case 38:if(this.applicationCursor){s="OA";break}if(t.ctrlKey)return this.scrollDisp(-1),cancel(t);if(t.shiftKey)return!0;s="";break;case 40:if(this.applicationCursor){s="OB";break}if(t.ctrlKey)return this.scrollDisp(1),cancel(t);if(t.shiftKey)return!0;s="";break;case 46:s="[3~";break;case 45:s="[2~";break;case 36:if(this.applicationKeypad){s="OH";break}s="OH";break;case 35:if(this.applicationKeypad){s="OF";break}s="OF";break;case 33:if(t.shiftKey)return this.scrollDisp(-(this.rows-1)),cancel(t);s="[5~";break;case 34:if(t.shiftKey)return this.scrollDisp(this.rows-1),cancel(t);s="[6~";break;case 112:s="OP";break;case 113:s="OQ";break;case 114:s="OR";break;case 115:s="OS";break;case 116:s="[15~";break;case 117:s="[17~";break;case 118:s="[18~";break;case 119:s="[19~";break;case 120:s="[20~";break;case 121:s="[21~";break;case 122:s="[23~";break;case 123:s="[24~";break;default:if(t.ctrlKey)if(t.keyCode>=65&&t.keyCode<=90){if(67===t.keyCode){if(i=(new Date).getTime(),i-this.last_cc<75)for(e=setTimeout(function(){})-6,this.write("\r\n --8<------8<-- Sectioned --8<------8<-- \r\n\r\n");e--;)e!==this.t_bell&&e!==this.t_queue&&e!==this.t_blink&&clearTimeout(e);this.last_cc=i}s=String.fromCharCode(t.keyCode-64)}else 32===t.keyCode?s=String.fromCharCode(0):t.keyCode>=51&&t.keyCode<=55?s=String.fromCharCode(t.keyCode-51+27):56===t.keyCode?s=String.fromCharCode(127):219===t.keyCode?s=String.fromCharCode(27):221===t.keyCode&&(s=String.fromCharCode(29));else t.altKey&&(t.keyCode>=65&&t.keyCode<=90?s=""+String.fromCharCode(t.keyCode+32):192===t.keyCode?s="`":t.keyCode>=48&&t.keyCode<=57&&(s=""+(t.keyCode-48)))}return t.keyCode>=37&&t.keyCode<=40&&(t.ctrlKey?s=s.slice(0,-1)+"1;5"+s.slice(-1):t.altKey?s=s.slice(0,-1)+"1;3"+s.slice(-1):t.shiftKey&&(s=s.slice(0,-1)+"1;4"+s.slice(-1))),s?this.prefixMode?(this.leavePrefix(),cancel(t)):this.selectMode?(this.keySelect(t,s),cancel(t)):(this.showCursor(),this.handler(s),cancel(t)):!0},t.prototype.setgLevel=function(t){return this.glevel=t,this.charset=this.charsets[t]},t.prototype.setgCharset=function(t,e){return this.charsets[t]=e,this.glevel===t?this.charset=e:void 0},t.prototype.keyPress=function(t){var e;if(this.skipNextKey===!1)return this.skipNextKey=null,!0;if(cancel(t),t.charCode)e=t.charCode;else if(null==t.which)e=t.keyCode;else{if(0===t.which||0===t.charCode)return!1;e=t.which}return!e||t.ctrlKey||t.altKey||t.metaKey?!1:(e=String.fromCharCode(e),this.showCursor(),this.handler(e),!1)},t.prototype.send=function(t){var e=this;return this.queue||(this.t_queue=setTimeout(function(){return e.handler(e.queue),e.queue=""},1)),this.queue+=t},t.prototype.bell=function(){var t=this;if(this.visualBell)return this.element.classList.add("bell"),this.t_bell=setTimeout(function(){return t.element.classList.remove("bell")},this.visualBell)},t.prototype.resize=function(){var t,e,s,i,r,n,o,a;if(n=this.cols,o=this.rows,a=this.parent.getBoundingClientRect(),this.cols=Math.floor(a.width/this.char_size.width)-1,this.rows=Math.floor(a.height/this.char_size.height),n!==this.cols||o!==this.rows){if(this.ctl("Resize",this.cols,this.rows),nthis.cols)for(s=this.lines.length;s--;)for(;this.lines[s].length>this.cols;)this.lines[s].pop();if(this.setupStops(n),i=o,ithis.rows)for(;i-->this.rows;)if(this.lines.length>this.rows+this.ybase&&this.lines.pop(),this.children.length>this.rows){if(e=this.children.pop(),!e)continue;e.parentNode.removeChild(e)}return this.y>=this.rows&&(this.y=this.rows-1),this.x>=this.cols&&(this.x=this.cols-1),this.scrollTop=0,this.scrollBottom=this.rows-1,this.refresh(0,this.rows-1),this.normal=null}},t.prototype.updateRange=function(t){return tthis.refreshEnd?this.refreshEnd=t:void 0},t.prototype.maxRange=function(){return this.refreshStart=0,this.refreshEnd=this.rows-1},t.prototype.setupStops=function(t){var e;for(null!=t?this.tabs[t]||(t=this.prevStop(t)):(this.tabs={},t=0),e=[];t0;);return t>=this.cols?this.cols-1:0>t?0:t},t.prototype.nextStop=function(t){for(null==t&&(t=this.x);!this.tabs[++t]&&t=this.cols?this.cols-1:0>t?0:t},t.prototype.eraseRight=function(t,e){var s,i;for(i=this.lines[this.ybase+e],s=[this.eraseAttr()," "];tthis.scrollBottom&&(this.y--,this.scroll()),this.state=State.normal},t.prototype.reverseIndex=function(){var t;return this.y--,this.ye&&(e=1),this.y-=e,this.y<0?this.y=0:void 0},t.prototype.cursorDown=function(t){var e;return e=t[0],1>e&&(e=1),this.y+=e,this.y>=this.rows?this.y=this.rows-1:void 0},t.prototype.cursorForward=function(t){var e;return e=t[0],1>e&&(e=1),this.x+=e,this.x>=this.cols?this.x=this.cols-1:void 0},t.prototype.cursorBackward=function(t){var e;return e=t[0],1>e&&(e=1),this.x-=e,this.x<0?this.x=0:void 0},t.prototype.cursorPos=function(t){var e,s;return s=t[0]-1,e=t.length>=2?t[1]-1:0,0>s?s=0:s>=this.rows&&(s=this.rows-1),0>e?e=0:e>=this.cols&&(e=this.cols-1),this.x=e,this.y=s},t.prototype.eraseInDisplay=function(t){var e,s,i,r;switch(t[0]){case 0:for(this.eraseRight(this.x,this.y),e=this.y+1,s=[];e>18,s=this.curAttr>>9&511,e=511&this.curAttr,n=t.length,r=0;n>r;)o=t[r],o>=30&&37>=o?s=o-30:o>=40&&47>=o?e=o-40:o>=90&&97>=o?(o+=8,s=o-90):o>=100&&107>=o?(o+=8,e=o-100):0===o?(i=this.defAttr>>18,s=this.defAttr>>9&511,e=511&this.defAttr):1===o?i|=1:4===o?i|=2:5===o?i|=4:7===o?i|=8:8===o?i|=16:22===o?i&=-2:24===o?i&=-3:25===o?i&=-5:27===o?i&=-9:28===o?i&=-17:39===o?s=this.defAttr>>9&511:49===o?e=511&this.defAttr:38===o?2===t[r+1]?(r+=2,s="#"+t[r]&255+t[r+1]&255+t[r+2]&255,r+=2):5===t[r+1]&&(r+=2,s=255&t[r]):48===o?2===t[r+1]?(r+=2,e="#"+t[r]&255+t[r+1]&255+t[r+2]&255,r+=2):5===t[r+1]&&(r+=2,e=255&t[r]):100===o?(s=this.defAttr>>9&511,e=511&this.defAttr):console.error("Unknown SGR attribute: %d.",o),r++;return this.curAttr=i<<18|s<<9|e},t.prototype.deviceStatus=function(t){if(this.prefix){if("?"===this.prefix&&6===t[0])return this.send("[?"+(this.y+1)+";"+(this.x+1)+"R")}else switch(t[0]){case 5:return this.send("");case 6:return this.send("["+(this.y+1)+";"+(this.x+1)+"R")}},t.prototype.insertChars=function(t){var e,s,i,r,n;for(i=t[0],1>i&&(i=1),r=this.y+this.ybase,s=this.x,e=[this.eraseAttr()," "],n=[];i--&&se&&(e=1),this.y+=e,this.y>=this.rows&&(this.y=this.rows-1),this.x=0},t.prototype.cursorPrecedingLine=function(t){var e;return e=t[0],1>e&&(e=1),this.y-=e,this.y<0&&(this.y=0),this.x=0},t.prototype.cursorCharAbsolute=function(t){var e;return e=t[0],1>e&&(e=1),this.x=e-1},t.prototype.insertLines=function(t){var e,s,i;for(s=t[0],1>s&&(s=1),i=this.y+this.ybase,e=this.rows-1-this.scrollBottom,e=this.rows-1+this.ybase-e+1;s--;)this.lines.splice(i,0,this.blankLine(!0)),this.lines.splice(e,1);return this.updateRange(this.y),this.updateRange(this.scrollBottom)},t.prototype.deleteLines=function(t){var e,s,i;for(s=t[0],1>s&&(s=1),i=this.y+this.ybase,e=this.rows-1-this.scrollBottom,e=this.rows-1+this.ybase-e;s--;)this.lines.splice(e+1,0,this.blankLine(!0)),this.lines.splice(i,1);return this.updateRange(this.y),this.updateRange(this.scrollBottom)},t.prototype.deleteChars=function(t){var e,s,i,r;for(s=t[0],1>s&&(s=1),i=this.y+this.ybase,e=[this.eraseAttr()," "],r=[];s--;)this.lines[i].splice(this.x,1),r.push(this.lines[i].push(e));return r},t.prototype.eraseChars=function(t){var e,s,i,r,n;for(i=t[0],1>i&&(i=1),r=this.y+this.ybase,s=this.x,e=[this.eraseAttr()," "],n=[];i--&&se&&(e=1),this.x=e-1,this.x>=this.cols?this.x=this.cols-1:void 0},t.prototype.HPositionRelative=function(t){var e;return e=t[0],1>e&&(e=1),this.x+=e,this.x>=this.cols?this.x=this.cols-1:void 0},t.prototype.sendDeviceAttributes=function(t){if(!(t[0]>0))if(this.prefix){if(">"===this.prefix){if(this.isterm("xterm"))return this.send("[>0;276;0c");if(this.isterm("rxvt-unicode"))return this.send("[>85;95;0c");if(this.isterm("linux"))return this.send(t[0]+"c");if(this.isterm("screen"))return this.send("[>83;40003;0c")}}else{if(this.isterm("xterm")||this.isterm("rxvt-unicode")||this.isterm("screen"))return this.send("[?1;2c");if(this.isterm("linux"))return this.send("[?6c")}},t.prototype.linePosAbsolute=function(t){var e;return e=t[0],1>e&&(e=1),this.y=e-1,this.y>=this.rows?this.y=this.rows-1:void 0},t.prototype.VPositionRelative=function(t){var e;return e=t[0],1>e&&(e=1),this.y+=e,this.y>=this.rows?this.y=this.rows-1:void 0},t.prototype.HVPosition=function(t){return t[0]<1&&(t[0]=1),t[1]<1&&(t[1]=1),this.y=t[0]-1,this.y>=this.rows&&(this.y=this.rows-1),this.x=t[1]-1,this.x>=this.cols?this.x=this.cols-1:void 0},t.prototype.setMode=function(e){var s,i,r;if("object"!=typeof e){if("?"===this.prefix)switch(e){case 1:return this.applicationCursor=!0;case 2:return this.setgCharset(0,t.prototype.charsets.US),this.setgCharset(1,t.prototype.charsets.US),this.setgCharset(2,t.prototype.charsets.US),this.setgCharset(3,t.prototype.charsets.US);case 3:return this.savedCols=this.cols,this.resize(132,this.rows);case 6:return this.originMode=!0;case 7:return this.wraparoundMode=!0;case 66:return this.applicationKeypad=!0;case 9:case 1e3:case 1002:case 1003:return this.x10Mouse=9===e,this.vt200Mouse=1e3===e,this.normalMouse=e>1e3,this.mouseEvents=!0,this.element.style.cursor="pointer";case 1004:return this.sendFocus=!0;case 1005:return this.utfMouse=!0;case 1006:return this.sgrMouse=!0;case 1015:return this.urxvtMouse=!0;case 25:return this.cursorHidden=!1;case 1049:case 47:case 1047:if(!this.normal)return r={lines:this.lines,ybase:this.ybase,ydisp:this.ydisp,x:this.x,y:this.y,scrollTop:this.scrollTop,scrollBottom:this.scrollBottom,tabs:this.tabs},this.reset(),this.normal=r,this.showCursor()}}else for(i=e.length,s=0;i>s;)this.setMode(e[s]),s++},t.prototype.resetMode=function(t){var e,s;if("object"!=typeof t){if("?"===this.prefix)switch(t){case 1:return this.applicationCursor=!1;case 3:return 132===this.cols&&this.savedCols&&this.resize(this.savedCols,this.rows),delete this.savedCols;case 6:return this.originMode=!1;case 7:return this.wraparoundMode=!1;case 66:return this.applicationKeypad=!1;case 9:case 1e3:case 1002:case 1003:return this.x10Mouse=!1,this.vt200Mouse=!1,this.normalMouse=!1,this.mouseEvents=!1,this.element.style.cursor="";case 1004:return this.sendFocus=!1;case 1005:return this.utfMouse=!1;case 1006:return this.sgrMouse=!1;case 1015:return this.urxvtMouse=!1;case 25:return this.cursorHidden=!0;case 1049:case 47:case 1047:if(this.normal)return this.lines=this.normal.lines,this.ybase=this.normal.ybase,this.ydisp=this.normal.ydisp,this.x=this.normal.x,this.y=this.normal.y,this.scrollTop=this.normal.scrollTop,this.scrollBottom=this.normal.scrollBottom,this.tabs=this.normal.tabs,this.normal=null,this.refresh(0,this.rows-1),this.showCursor()}}else for(s=t.length,e=0;s>e;)this.resetMode(t[e]),e++},t.prototype.setScrollRegion=function(t){return this.prefix?void 0:(this.scrollTop=(t[0]||1)-1,this.scrollBottom=(t[1]||this.rows)-1,this.x=0,this.y=0)},t.prototype.saveCursor=function(){return this.savedX=this.x,this.savedY=this.y},t.prototype.restoreCursor=function(){return this.x=this.savedX||0,this.y=this.savedY||0},t.prototype.cursorForwardTab=function(t){var e,s;for(e=t[0]||1,s=[];e--;)s.push(this.x=this.nextStop());return s},t.prototype.scrollUp=function(t){var e;for(e=t[0]||1;e--;)this.lines.splice(this.ybase+this.scrollTop,1),this.lines.splice(this.ybase+this.scrollBottom,0,this.blankLine());return this.updateRange(this.scrollTop),this.updateRange(this.scrollBottom)},t.prototype.scrollDown=function(t){var e;for(e=t[0]||1;e--;)this.lines.splice(this.ybase+this.scrollBottom,1),this.lines.splice(this.ybase+this.scrollTop,0,this.blankLine());return this.updateRange(this.scrollTop),this.updateRange(this.scrollBottom)},t.prototype.initMouseTracking=function(){},t.prototype.resetTitleModes=function(){},t.prototype.cursorBackwardTab=function(t){var e,s;for(e=t[0]||1,s=[];e--;)s.push(this.x=this.prevStop());return s},t.prototype.repeatPrecedingCharacter=function(t){var e,s,i,r;for(i=t[0]||1,s=this.lines[this.ybase+this.y],e=s[this.x-1]||[this.defAttr," "],r=[];i--;)r.push(s[this.x++]=e);return r},t.prototype.tabClear=function(t){var e;return e=t[0],0>=e?delete this.tabs[this.x]:3===e?this.tabs={}:void 0},t.prototype.mediaCopy=function(){},t.prototype.setResources=function(){},t.prototype.disableModifiers=function(){},t.prototype.setPointerMode=function(){},t.prototype.softReset=function(){return this.cursorHidden=!1,this.insertMode=!1,this.originMode=!1,this.wraparoundMode=!1,this.applicationKeypad=!1,this.applicationCursor=!1,this.scrollTop=0,this.scrollBottom=this.rows-1,this.curAttr=this.defAttr,this.x=this.y=0,this.charset=null,this.glevel=0,this.charsets=[null]},t.prototype.requestAnsiMode=function(){},t.prototype.requestPrivateMode=function(){},t.prototype.setConformanceLevel=function(){},t.prototype.loadLEDs=function(){},t.prototype.setCursorStyle=function(){},t.prototype.setCharProtectionAttr=function(){},t.prototype.restorePrivateValues=function(){},t.prototype.setAttrInRectangle=function(t){var e,s,i,r,n,o,a;for(a=t[0],r=t[1],s=t[2],o=t[3],e=t[4];s+1>a;){for(n=this.lines[this.ybase+a],i=r;o>i;)n[i]=[e,n[i][1]],i++;a++}return this.updateRange(t[0]),this.updateRange(t[2])},t.prototype.savePrivateValues=function(){},t.prototype.manipulateWindow=function(){},t.prototype.reverseAttrInRectangle=function(){},t.prototype.setTitleModeFeature=function(){},t.prototype.setWarningBellVolume=function(){},t.prototype.setMarginBellVolume=function(){},t.prototype.copyRectangle=function(){},t.prototype.enableFilterRectangle=function(){},t.prototype.requestParameters=function(){},t.prototype.selectChangeExtent=function(){},t.prototype.fillRectangle=function(t){var e,s,i,r,n,o,a;for(s=t[0],a=t[1],r=t[2],e=t[3],o=t[4];e+1>a;){for(n=this.lines[this.ybase+a],i=r;o>i;)n[i]=[n[i][0],String.fromCharCode(s)],i++;a++}return this.updateRange(t[1]),this.updateRange(t[3]) +},t.prototype.enableLocatorReporting=function(t){var e;return e=t[0]>0},t.prototype.eraseRectangle=function(t){var e,s,i,r,n,o,a;for(a=t[0],r=t[1],e=t[2],o=t[3],s=[this.eraseAttr()," "];e+1>a;){for(n=this.lines[this.ybase+a],i=r;o>i;)n[i]=s,i++;a++}return this.updateRange(t[0]),this.updateRange(t[2])},t.prototype.setLocatorEvents=function(){},t.prototype.selectiveEraseRectangle=function(){},t.prototype.requestLocatorPosition=function(){},t.prototype.insertColumns=function(){var t,e,s,i;for(i=params[0],s=this.ybase+this.rows,t=[this.eraseAttr()," "];i--;)for(e=this.ybase;s>e;)this.lines[e].splice(this.x+1,0,t),this.lines[e].pop(),e++;return this.maxRange()},t.prototype.deleteColumns=function(){var t,e,s,i;for(i=params[0],s=this.ybase+this.rows,t=[this.eraseAttr()," "];i--;)for(e=this.ybase;s>e;)this.lines[e].splice(this.x,1),this.lines[e].push(t),e++;return this.maxRange()},t.prototype.get_html_height_in_lines=function(t){var e,s;return s=document.createElement("div"),s.innerHTML=t,this.element.appendChild(s),e=s.getBoundingClientRect().height,this.element.removeChild(s),Math.ceil(e/this.char_size.height)},t.prototype.charsets={SCLD:{"`":"◆",a:"▒",b:" ",c:"\f",d:"\r",e:"\n",f:"°",g:"±",h:"␤",i:" ",j:"┘",k:"┐",l:"┌",m:"└",n:"┼",o:"⎺",p:"⎻",q:"─",r:"⎼",s:"⎽",t:"├",u:"┤",v:"┴",w:"┬",x:"│",y:"≤",z:"≥","{":"π","|":"≠","}":"£","~":"·"},UK:null,US:null,Dutch:null,Finnish:null,French:null,FrenchCanadian:null,German:null,Italian:null,NorwegianDanish:null,Spanish:null,Swedish:null,Swiss:null,ISOLatin:null},t}(),selection=null,previous_leaf=function(t){var e;for(e=t.previousSibling,e||(e=t.parentNode.previousSibling),e||(e=t.parentNode.parentNode.previousSibling);e.lastChild;)e=e.lastChild;return e},next_leaf=function(t){var e;for(e=t.nextSibling,e||(e=t.parentNode.nextSibling),e||(e=t.parentNode.parentNode.nextSibling);e.firstChild;)e=e.firstChild;return e},Selection=function(){function t(){term.element.classList.add("selection"),this.selection=getSelection()}return t.prototype.reset=function(){var t,e,s;for(this.selection=getSelection(),t=document.createRange(),t.setStart(this.selection.anchorNode,this.selection.anchorOffset),t.setEnd(this.selection.focusNode,this.selection.focusOffset),this.start={node:this.selection.anchorNode,offset:this.selection.anchorOffset},this.end={node:this.selection.focusNode,offset:this.selection.focusOffset},t.collapsed&&(e=[this.end,this.start],this.start=e[0],this.end=e[1]),this.start_line=this.start.node;!this.start_line.classList||__indexOf.call(this.start_line.classList,"line")<0;)this.start_line=this.start_line.parentNode;for(this.end_line=this.end.node,s=[];!this.end_line.classList||__indexOf.call(this.end_line.classList,"line")<0;)s.push(this.end_line=this.end_line.parentNode);return s},t.prototype.clear=function(){return this.selection.removeAllRanges()},t.prototype.destroy=function(){return term.element.classList.remove("selection"),this.clear()},t.prototype.text=function(){return this.selection.toString()},t.prototype.up=function(){return this.go(-1)},t.prototype.down=function(){return this.go(1)},t.prototype.go=function(t){var e;if(e=term.children.indexOf(this.start_line)+t,e>=0&&e=0&&e0;)if(n[--i].match(e))return{node:r,offset:i+1};r=previous_leaf(r),n=r.textContent,i=n.length}else for(;r;){for(;i=0)return!0;if(t.shiftKey&&13===t.keyCode&&!selection&&!getSelection().isCollapsed)return term.handler(getSelection().toString()),getSelection().removeAllRanges(),cancel(t);if(selection){if(selection.reset(),!t.ctrlKey&&t.shiftKey&&37<=(s=t.keyCode)&&40>=s)return!0;if(t.shiftKey&&t.ctrlKey)38===t.keyCode?selection.up():40===t.keyCode&&selection.down();else if(39===t.keyCode)selection.shrink_left();else if(38===t.keyCode)selection.expand_left();else if(37===t.keyCode)selection.shrink_right();else{if(40!==t.keyCode)return cancel(t);selection.expand_right()}return null!=selection&&selection.apply(),cancel(t)}return!selection&&t.ctrlKey&&t.shiftKey&&38===t.keyCode?(selection=new Selection,selection.select_line(term.y-1),selection.apply(),cancel(t)):void 0}),document.addEventListener("keyup",function(t){var e,s;if(e=t.keyCode,__indexOf.call([16,17,18,19],e)>=0)return!0;if(selection){if(13===t.keyCode)return term.handler(selection.text()),selection.destroy(),selection=null,cancel(t);if(s=t.keyCode,__indexOf.call([37,38,39,40],s)<0)return selection.destroy(),selection=null,!0}}),document.addEventListener("dblclick",function(t){var e,s,i,r,n;if(!(t.ctrlKey||t.altkey||(n=getSelection(),n.isCollapsed||n.toString().match(/\s/)))){for(r=document.createRange(),r.setStart(n.anchorNode,n.anchorOffset),r.setEnd(n.focusNode,n.focusOffset),r.collapsed&&(n.removeAllRanges(),i=document.createRange(),i.setStart(n.focusNode,n.focusOffset),i.setEnd(n.anchorNode,n.anchorOffset),n.addRange(i)),r.detach();!n.toString().match(/\s/)&&n.toString();)n.modify("extend","forward","character");for(n.modify("extend","backward","character"),e=n.anchorNode,s=n.anchorOffset,n.collapseToEnd(),n.extend(e,s);!n.toString().match(/\s/)&&n.toString();)n.modify("extend","backward","character");return n.modify("extend","forward","character")}}),/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)&&(ctrl=!1,alt=!1,first=!0,virtual_input=document.createElement("input"),virtual_input.type="password",virtual_input.style.position="fixed",virtual_input.style.top=0,virtual_input.style.left=0,virtual_input.style.border="none",virtual_input.style.outline="none",virtual_input.style.opacity=0,virtual_input.value="0",document.body.appendChild(virtual_input),virtual_input.addEventListener("blur",function(){var t=this;return setTimeout(function(){return t.focus()},10)}),addEventListener("click",function(){return virtual_input.focus()}),addEventListener("touchstart",function(t){return 1===t.touches.length?ctrl=!0:2===t.touches.length?(ctrl=!1,alt=!0):3===t.touches.length?(ctrl=!0,alt=!0):void 0}),virtual_input.addEventListener("keydown",function(t){return term.keyDown(t),!0}),virtual_input.addEventListener("input",function(t){var e;return e=this.value.length,0===e?(t.keyCode=8,term.keyDown(t),this.value="0",!0):(t.keyCode=this.value.charAt(1).charCodeAt(0),!ctrl&&!alt||first?(term.keyPress(t),first=!1,this.value="0",!0):(t.keyCode=this.value.charAt(1).charCodeAt(0),t.ctrlKey=ctrl,t.altKey=alt,t.keyCode>=97&&t.keyCode<=122&&(t.keyCode-=32),term.keyDown(t),this.value="0",ctrl=alt=!1,!0))})),cols=rows=null,quit=!1,$=document.querySelectorAll.bind(document),send=function(t){return ws.send("S"+t)},ctl=function(){var t,e,s;return s=arguments[0],t=2<=arguments.length?__slice.call(arguments,1):[],e=t.join(","),"Resize"===s?ws.send("R"+e):void 0},ws_url="ws://"+document.location.host+"/ws"+location.pathname,ws=new WebSocket(ws_url),ws.addEventListener("open",function(){return console.log("WebSocket open",arguments),ws.send("R"+term.cols+","+term.rows),location.hash?setTimeout(function(){return ws.send("S"+location.hash.slice(1)+"\n")},100):void 0}),ws.addEventListener("error",function(){return console.log("WebSocket error",arguments)}),ws.addEventListener("message",function(t){return setTimeout(function(){return term.write(t.data)},1)}),ws.addEventListener("close",function(){return console.log("WebSocket closed",arguments),quit=!0,open("","_self").close()}),term=new Terminal($("#wrapper")[0],send,ctl),addEventListener("beforeunload",function(){return quit?void 0:"This will exit the terminal session"}),bench=function(t){var e,s;for(null==t&&(t=1e8),e="";e.length