function js_beautify(d,s){var a,w,o,H,k,u,P,R,Q;var z,M,g,m,q,O;var F,K,x,y,h,e;var r;var s=s||{};var C=s.indent_size||4;var j=s.indent_char||" ";var J=typeof s.preserve_newlines==="undefined"?true:s.preserve_newlines;var N=s.indent_level||0;var B=typeof s.var_space==="undefined"?true:s.var_space;function p(){while(w.length&&(w[w.length-1]===" "||w[w.length-1]===Q)){w.pop()}}function v(S){S=typeof S==="undefined"?true:S;e=false;p();if(!w.length){return}if(w[w.length-1]!=="\n"||!S){w.push("\n")}for(var t=0;t<r;t++){w.push(Q)}}function i(){var t=" ";if(w.length){t=w[w.length-1]}if(t!==" "&&t!=="\n"&&t!==Q){w.push(" ")}}function A(){w.push(o)}function n(){r++}function G(){if(r){r--}}function E(){if(w.length&&w[w.length-1]===Q){w.pop()}}function l(t){R.push(P);P=t}function f(){x=P==="DO_BLOCK";P=R.pop()}function D(T,t){for(var S=0;S<t.length;S++){if(t[S]===T){return true}}return false}function L(){var Z=0;if(m>=a.length){return["","TK_EOF"]}var X=a.charAt(m);m+=1;while(D(X,z)){if(m>=a.length){return["","TK_EOF"]}if(X==="\n"){Z+=1}X=a.charAt(m);m+=1}var Y=false;if(J){if(Z>1){for(var U=0;U<2;U++){v(U===0)}}Y=(Z===1)}if(D(X,M)){if(m<a.length){while(D(a.charAt(m),M)){X+=a.charAt(m);m+=1;if(m===a.length){break}}}if(m!==a.length&&X.match(/^[0-9]+[Ee]$/)&&(a.charAt(m)==="-"||a.charAt(m)==="+")){var T=a.charAt(m);m+=1;var aa=L(m);X+=T+aa[0];return[X,"TK_WORD"]}if(X==="in"){return[X,"TK_OPERATOR"]}if(Y&&H!=="TK_OPERATOR"&&!e){v()}return[X,"TK_WORD"]}if(X==="("||X==="["){return[X,"TK_START_EXPR"]}if(X===")"||X==="]"){return[X,"TK_END_EXPR"]}if(X==="{"){return[X,"TK_START_BLOCK"]}if(X==="}"){return[X,"TK_END_BLOCK"]}if(X===";"){return[X,"TK_SEMICOLON"]}if(X==="/"){var V="";if(a.charAt(m)==="*"){m+=1;if(m<a.length){while(!(a.charAt(m)==="*"&&a.charAt(m+1)&&a.charAt(m+1)==="/")&&m<a.length){V+=a.charAt(m);m+=1;if(m>=a.length){break}}}m+=2;return["/*"+V+"*/","TK_BLOCK_COMMENT"]}if(a.charAt(m)==="/"){V=X;while(a.charAt(m)!=="\x0d"&&a.charAt(m)!=="\x0a"){V+=a.charAt(m);m+=1;if(m>=a.length){break}}m+=1;if(Y){v()}return[V,"TK_COMMENT"]}}if(X==="'"||X==='"'||(X==="/"&&((H==="TK_WORD"&&k==="return")||(H==="TK_START_EXPR"||H==="TK_END_BLOCK"||H==="TK_OPERATOR"||H==="TK_EOF"||H==="TK_SEMICOLON")))){var ab=X;var W=false;var S="";if(m<a.length){while(W||a.charAt(m)!==ab){S+=a.charAt(m);if(!W){W=a.charAt(m)==="\\"}else{W=false}m+=1;if(m>=a.length){break}}}m+=1;S=ab+S+ab;if(ab=="/"){while(m<a.length&&D(a.charAt(m),M)){S+=a.charAt(m);m+=1}}return[S,"TK_STRING"]}if(D(X,g)){while(m<a.length&&D(X+a.charAt(m),g)){X+=a.charAt(m);m+=1;if(m>=a.length){break}}return[X,"TK_OPERATOR"]}return[X,"TK_UNKNOWN"]}Q="";while(C--){Q+=j}r=N;a=d;u="";H="TK_START_EXPR";k="";w=[];x=false;y=false;h=false;z="\n\r\t ".split("");M="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_$".split("");g="+ - * / % & ++ -- = += -= *= /= %= == === != !== > < >= <= >> << >>> >>>= >>= <<= && &= | || ! !! , : ? ^ ^= |= ::".split(" ");q="continue,try,throw,return,var,if,switch,case,default,for,while,break,function".split(",");P="BLOCK";R=[P];m=0;O=false;while(true){var I=L(m);o=I[0];K=I[1];if(K==="TK_EOF"){break}switch(K){case"TK_START_EXPR":y=false;l("EXPRESSION");if(k===";"){v()}else{if(H==="TK_END_EXPR"||H==="TK_START_EXPR"){}else{if(H!=="TK_WORD"&&H!=="TK_OPERATOR"){i()}else{if(D(u,q)&&u!=="function"){i()}}}}A();break;case"TK_END_EXPR":A();f();break;case"TK_START_BLOCK":if(u==="do"){l("DO_BLOCK")}else{l("BLOCK")}if(H!=="TK_OPERATOR"&&H!=="TK_START_EXPR"){if(H==="TK_START_BLOCK"){v()}else{i()}}A();n();break;case"TK_END_BLOCK":if(H==="TK_START_BLOCK"){p();G()}else{G();v()}A();f();break;case"TK_WORD":if(x){i();A();i();break}if(o==="case"||o==="default"){if(k===":"){E()}else{G();v();n()}A();O=true;break}F="NONE";if(H==="TK_END_BLOCK"){if(!D(o.toLowerCase(),["else","catch","finally"])){F="NEWLINE"}else{F="SPACE";i()}}else{if(H==="TK_SEMICOLON"&&(P==="BLOCK"||P==="DO_BLOCK")){F="NEWLINE"}else{if(H==="TK_SEMICOLON"&&P==="EXPRESSION"){F="SPACE"}else{if(H==="TK_STRING"){F="NEWLINE"}else{if(H==="TK_WORD"){F="SPACE"}else{if(H==="TK_START_BLOCK"){F="NEWLINE"}else{if(H==="TK_END_EXPR"){i();F="NEWLINE"}}}}}}}if(H!=="TK_END_BLOCK"&&D(o.toLowerCase(),["else","catch","finally"])){v()}else{if(D(o,q)||F==="NEWLINE"){if(k==="else"){i()}else{if((H==="TK_START_EXPR"||k==="=")&&o==="function"){}else{if(H==="TK_WORD"&&(k==="return"||k==="throw")){i()}else{if(H!=="TK_END_EXPR"){if((H!=="TK_START_EXPR"||o!=="var")&&k!==":"){if(o==="if"&&H==="TK_WORD"&&u==="else"){i()}else{v()}}}else{if(D(o,q)&&k!==")"){v()}}}}}}else{if(F==="SPACE"){i()}}}A();u=o;if(o==="var"){y=true;h=false}if(o==="if"||o==="else"){e=true}break;case"TK_SEMICOLON":A();y=false;break;case"TK_STRING":if(H==="TK_START_BLOCK"||H==="TK_END_BLOCK"||H=="TK_SEMICOLON"){v()}else{if(H==="TK_WORD"){i()}}A();break;case"TK_OPERATOR":var b=true;var c=true;if(y&&o!==","){h=true;if(o===":"){y=false}}if(y&&o===","&&P==="EXPRESSION"){h=false}if(o===":"&&O){A();v();break}if(o==="::"){A();break}O=false;if(o===","){if(y){if(h){A();v();h=false}else{A();i()}}else{if(H==="TK_END_BLOCK"){A();v()}else{if(P==="BLOCK"){A();v()}else{A();if(B){i()}}}}break}else{if(o==="--"||o==="++"){if(k===";"){b=true;c=false}else{b=false;c=false}}else{if(o==="!"&&H==="TK_START_EXPR"){b=false;c=false}else{if(H==="TK_OPERATOR"){b=false;c=false}else{if(H==="TK_END_EXPR"){b=true;c=true}else{if(o==="."){b=false;c=false}else{if(o===":"){if(k.match(/^\d+$/)){b=true}else{b=false}}}}}}}}if(b){i()}A();if(c){i()}break;case"TK_BLOCK_COMMENT":v();A();v();break;case"TK_COMMENT":i();A();v();break;case"TK_UNKNOWN":A();break}H=K;k=o}return w.join("")};