From 070ad5351ebc0973f576138a902bb1493f0c619b Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 27 Jun 2019 08:30:23 +0530 Subject: [PATCH] Remove old viewer and coffeescript and viewer resources Since the PDF output code is also going to be replaced, none of this is required. --- resources/coffee-script.js | 12 - resources/compiled_coffeescript.zip | Bin 87844 -> 0 bytes resources/viewer/blank.html | 11 - resources/viewer/bookmarks.js | 49 - resources/viewer/hyphenate/Hyphenator.js | 3281 --------- resources/viewer/hyphenate/patterns.zip | Bin 628424 -> 0 bytes resources/viewer/hyphenation.js | 28 - resources/viewer/images.js | 52 - resources/viewer/jquery.js | 6240 ----------------- resources/viewer/jquery_scrollTo.js | 215 - resources/viewer/referencing.js | 72 - setup/check.py | 8 - setup/commands.py | 5 +- setup/resources.py | 104 +- src/calibre/ebooks/oeb/display/cfi.coffee | 671 -- src/calibre/ebooks/oeb/display/extract.coffee | 211 - .../ebooks/oeb/display/full_screen.coffee | 67 - .../ebooks/oeb/display/indexing.coffee | 132 - src/calibre/ebooks/oeb/display/mathjax.coffee | 129 - src/calibre/ebooks/oeb/display/paged.coffee | 672 -- .../ebooks/oeb/display/test-cfi/birds.webm | Bin 1324945 -> 0 bytes .../oeb/display/test-cfi/cfi-test.coffee | 97 - .../ebooks/oeb/display/test-cfi/cfi-test.pyj | 74 - .../ebooks/oeb/display/test-cfi/iframe.html | 32 - .../ebooks/oeb/display/test-cfi/index.html | 150 - .../ebooks/oeb/display/test-cfi/marker.png | Bin 751 -> 0 bytes .../ebooks/oeb/display/test-cfi/run.py | 26 - .../oeb/display/test-cfi/run_rapydscript.py | 40 - src/calibre/ebooks/oeb/display/utils.coffee | 151 - src/calibre/gui2/__init__.py | 17 - .../tweak_book/editor/syntax/javascript.py | 2 +- src/calibre/gui2/viewer/__init__.py | 0 src/calibre/gui2/viewer/bookmarkmanager.py | 235 - src/calibre/gui2/viewer/config.py | 456 -- src/calibre/gui2/viewer/config.ui | 1213 ---- src/calibre/gui2/viewer/documentview.py | 1420 ---- src/calibre/gui2/viewer/fake_net.py | 187 - src/calibre/gui2/viewer/flip.py | 116 - src/calibre/gui2/viewer/footnote.py | 155 - src/calibre/gui2/viewer/gestures.py | 377 - src/calibre/gui2/viewer/image_popup.py | 177 - src/calibre/gui2/viewer/inspector.py | 53 - src/calibre/gui2/viewer/javascript.py | 82 - src/calibre/gui2/viewer/keys.py | 104 - src/calibre/gui2/viewer/main.py | 1356 ---- src/calibre/gui2/viewer/position.py | 91 - src/calibre/gui2/viewer/printing.py | 230 - src/calibre/gui2/viewer/table_popup.py | 82 - src/calibre/gui2/viewer/toc.py | 411 -- src/calibre/gui2/viewer/ui.py | 425 -- src/calibre/utils/resources.py | 69 +- src/calibre/utils/serve_coffee.py | 331 - 52 files changed, 7 insertions(+), 20111 deletions(-) delete mode 100644 resources/coffee-script.js delete mode 100644 resources/compiled_coffeescript.zip delete mode 100644 resources/viewer/blank.html delete mode 100644 resources/viewer/bookmarks.js delete mode 100644 resources/viewer/hyphenate/Hyphenator.js delete mode 100644 resources/viewer/hyphenate/patterns.zip delete mode 100644 resources/viewer/hyphenation.js delete mode 100644 resources/viewer/images.js delete mode 100644 resources/viewer/jquery.js delete mode 100644 resources/viewer/jquery_scrollTo.js delete mode 100644 resources/viewer/referencing.js delete mode 100644 src/calibre/ebooks/oeb/display/cfi.coffee delete mode 100644 src/calibre/ebooks/oeb/display/extract.coffee delete mode 100644 src/calibre/ebooks/oeb/display/full_screen.coffee delete mode 100644 src/calibre/ebooks/oeb/display/indexing.coffee delete mode 100644 src/calibre/ebooks/oeb/display/mathjax.coffee delete mode 100644 src/calibre/ebooks/oeb/display/paged.coffee delete mode 100644 src/calibre/ebooks/oeb/display/test-cfi/birds.webm delete mode 100644 src/calibre/ebooks/oeb/display/test-cfi/cfi-test.coffee delete mode 100644 src/calibre/ebooks/oeb/display/test-cfi/cfi-test.pyj delete mode 100644 src/calibre/ebooks/oeb/display/test-cfi/iframe.html delete mode 100644 src/calibre/ebooks/oeb/display/test-cfi/index.html delete mode 100644 src/calibre/ebooks/oeb/display/test-cfi/marker.png delete mode 100644 src/calibre/ebooks/oeb/display/test-cfi/run.py delete mode 100644 src/calibre/ebooks/oeb/display/test-cfi/run_rapydscript.py delete mode 100644 src/calibre/ebooks/oeb/display/utils.coffee delete mode 100644 src/calibre/gui2/viewer/__init__.py delete mode 100644 src/calibre/gui2/viewer/bookmarkmanager.py delete mode 100644 src/calibre/gui2/viewer/config.py delete mode 100644 src/calibre/gui2/viewer/config.ui delete mode 100644 src/calibre/gui2/viewer/documentview.py delete mode 100644 src/calibre/gui2/viewer/fake_net.py delete mode 100644 src/calibre/gui2/viewer/flip.py delete mode 100644 src/calibre/gui2/viewer/footnote.py delete mode 100644 src/calibre/gui2/viewer/gestures.py delete mode 100644 src/calibre/gui2/viewer/image_popup.py delete mode 100644 src/calibre/gui2/viewer/inspector.py delete mode 100644 src/calibre/gui2/viewer/javascript.py delete mode 100644 src/calibre/gui2/viewer/keys.py delete mode 100644 src/calibre/gui2/viewer/main.py delete mode 100644 src/calibre/gui2/viewer/position.py delete mode 100644 src/calibre/gui2/viewer/printing.py delete mode 100644 src/calibre/gui2/viewer/table_popup.py delete mode 100644 src/calibre/gui2/viewer/toc.py delete mode 100644 src/calibre/gui2/viewer/ui.py delete mode 100644 src/calibre/utils/serve_coffee.py diff --git a/resources/coffee-script.js b/resources/coffee-script.js deleted file mode 100644 index fd33ca6455..0000000000 --- a/resources/coffee-script.js +++ /dev/null @@ -1,12 +0,0 @@ -/** - * CoffeeScript Compiler v1.9.3 - * http://coffeescript.org - * - * Copyright 2011, Jeremy Ashkenas - * Released under the MIT License - */ -(function(root){var CoffeeScript=function(){function require(e){return require[e]}return require["./helpers"]=function(){var e={},t={exports:e};return function(){var t,n,i,r,s,o;e.starts=function(e,t,n){return t===e.substr(n,t.length)},e.ends=function(e,t,n){var i;return i=t.length,t===e.substr(e.length-i-(n||0),i)},e.repeat=s=function(e,t){var n;for(n="";t>0;)1&t&&(n+=e),t>>>=1,e+=e;return n},e.compact=function(e){var t,n,i,r;for(r=[],t=0,i=e.length;i>t;t++)n=e[t],n&&r.push(n);return r},e.count=function(e,t){var n,i;if(n=i=0,!t.length)return 1/0;for(;i=1+e.indexOf(t,i);)n++;return n},e.merge=function(e,t){return n(n({},e),t)},n=e.extend=function(e,t){var n,i;for(n in t)i=t[n],e[n]=i;return e},e.flatten=i=function(e){var t,n,r,s;for(n=[],r=0,s=e.length;s>r;r++)t=e[r],t instanceof Array?n=n.concat(i(t)):n.push(t);return n},e.del=function(e,t){var n;return n=e[t],delete e[t],n},e.some=null!=(r=Array.prototype.some)?r:function(e){var t,n,i;for(n=0,i=this.length;i>n;n++)if(t=this[n],e(t))return!0;return!1},e.invertLiterate=function(e){var t,n,i;return i=!0,n=function(){var n,r,s,o;for(s=e.split("\n"),o=[],n=0,r=s.length;r>n;n++)t=s[n],i&&/^([ ]{4}|[ ]{0,3}\t)/.test(t)?o.push(t):(i=/^\s*$/.test(t))?o.push(t):o.push("# "+t);return o}(),n.join("\n")},t=function(e,t){return t?{first_line:e.first_line,first_column:e.first_column,last_line:t.last_line,last_column:t.last_column}:e},e.addLocationDataFn=function(e,n){return function(i){return"object"==typeof i&&i.updateLocationDataIfMissing&&i.updateLocationDataIfMissing(t(e,n)),i}},e.locationDataToString=function(e){var t;return"2"in e&&"first_line"in e[2]?t=e[2]:"first_line"in e&&(t=e),t?t.first_line+1+":"+(t.first_column+1)+"-"+(t.last_line+1+":"+(t.last_column+1)):"No location data"},e.baseFileName=function(e,t,n){var i,r;return null==t&&(t=!1),null==n&&(n=!1),r=n?/\\|\//:/\//,i=e.split(r),e=i[i.length-1],t&&e.indexOf(".")>=0?(i=e.split("."),i.pop(),"coffee"===i[i.length-1]&&i.length>1&&i.pop(),i.join(".")):e},e.isCoffee=function(e){return/\.((lit)?coffee|coffee\.md)$/.test(e)},e.isLiterate=function(e){return/\.(litcoffee|coffee\.md)$/.test(e)},e.throwSyntaxError=function(e,t){var n;throw n=new SyntaxError(e),n.location=t,n.toString=o,n.stack=""+n,n},e.updateSyntaxError=function(e,t,n){return e.toString===o&&(e.code||(e.code=t),e.filename||(e.filename=n),e.stack=""+e),e},o=function(){var e,t,n,i,r,o,a,c,h,l,u,p,d,f,m;return this.code&&this.location?(u=this.location,a=u.first_line,o=u.first_column,h=u.last_line,c=u.last_column,null==h&&(h=a),null==c&&(c=o),r=this.filename||"[stdin]",e=this.code.split("\n")[a],m=o,i=a===h?c+1:e.length,l=e.slice(0,m).replace(/[^\s]/g," ")+s("^",i-m),"undefined"!=typeof process&&null!==process&&(n=(null!=(p=process.stdout)?p.isTTY:void 0)&&!(null!=(d=process.env)?d.NODE_DISABLE_COLORS:void 0)),(null!=(f=this.colorful)?f:n)&&(t=function(e){return""+e+""},e=e.slice(0,m)+t(e.slice(m,i))+e.slice(i),l=t(l)),r+":"+(a+1)+":"+(o+1)+": error: "+this.message+"\n"+e+"\n"+l):Error.prototype.toString.call(this)},e.nameWhitespaceCharacter=function(e){switch(e){case" ":return"space";case"\n":return"newline";case"\r":return"carriage return";case" ":return"tab";default:return e}}}.call(this),t.exports}(),require["./rewriter"]=function(){var e={},t={exports:e};return function(){var t,n,i,r,s,o,a,c,h,l,u,p,d,f,m,g,v,y,b,k=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1},w=[].slice;for(f=function(e,t,n){var i;return i=[e,t],i.generated=!0,n&&(i.origin=n),i},e.Rewriter=function(){function e(){}return e.prototype.rewrite=function(e){return this.tokens=e,this.removeLeadingNewlines(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.tagPostfixConditionals(),this.addImplicitBracesAndParens(),this.addLocationDataToGeneratedTokens(),this.tokens},e.prototype.scanTokens=function(e){var t,n,i;for(i=this.tokens,t=0;n=i[t];)t+=e.call(this,n,t,i);return!0},e.prototype.detectEnd=function(e,t,n){var i,o,a,c,h;for(h=this.tokens,i=0;c=h[e];){if(0===i&&t.call(this,c,e))return n.call(this,c,e);if(!c||0>i)return n.call(this,c,e-1);o=c[0],k.call(s,o)>=0?i+=1:(a=c[0],k.call(r,a)>=0&&(i-=1)),e+=1}return e-1},e.prototype.removeLeadingNewlines=function(){var e,t,n,i,r;for(i=this.tokens,e=t=0,n=i.length;n>t&&(r=i[e][0],"TERMINATOR"===r);e=++t);return e?this.tokens.splice(0,e):void 0},e.prototype.closeOpenCalls=function(){var e,t;return t=function(e,t){var n;return")"===(n=e[0])||"CALL_END"===n||"OUTDENT"===e[0]&&")"===this.tag(t-1)},e=function(e,t){return this.tokens["OUTDENT"===e[0]?t-1:t][0]="CALL_END"},this.scanTokens(function(n,i){return"CALL_START"===n[0]&&this.detectEnd(i+1,t,e),1})},e.prototype.closeOpenIndexes=function(){var e,t;return t=function(e){var t;return"]"===(t=e[0])||"INDEX_END"===t},e=function(e){return e[0]="INDEX_END"},this.scanTokens(function(n,i){return"INDEX_START"===n[0]&&this.detectEnd(i+1,t,e),1})},e.prototype.indexOfTag=function(){var e,t,n,i,r,s,o;for(t=arguments[0],r=arguments.length>=2?w.call(arguments,1):[],e=0,n=i=0,s=r.length;s>=0?s>i:i>s;n=s>=0?++i:--i){for(;"HERECOMMENT"===this.tag(t+n+e);)e+=2;if(null!=r[n]&&("string"==typeof r[n]&&(r[n]=[r[n]]),o=this.tag(t+n+e),0>k.call(r[n],o)))return-1}return t+n+e-1},e.prototype.looksObjectish=function(e){var t,n;return this.indexOfTag(e,"@",null,":")>-1||this.indexOfTag(e,null,":")>-1?!0:(n=this.indexOfTag(e,s),n>-1&&(t=null,this.detectEnd(n+1,function(e){var t;return t=e[0],k.call(r,t)>=0},function(e,n){return t=n}),":"===this.tag(t+1))?!0:!1)},e.prototype.findTagsBackwards=function(e,t){var n,i,o,a,c,h,l;for(n=[];e>=0&&(n.length||(a=this.tag(e),0>k.call(t,a)&&(c=this.tag(e),0>k.call(s,c)||this.tokens[e].generated)&&(h=this.tag(e),0>k.call(u,h))));)i=this.tag(e),k.call(r,i)>=0&&n.push(this.tag(e)),o=this.tag(e),k.call(s,o)>=0&&n.length&&n.pop(),e-=1;return l=this.tag(e),k.call(t,l)>=0},e.prototype.addImplicitBracesAndParens=function(){var e,t;return e=[],t=null,this.scanTokens(function(i,l,p){var d,m,g,v,y,b,w,T,C,E,F,N,L,x,S,D,R,A,I,_,O,$,j,M,B,V,P,U;if(U=i[0],F=(N=l>0?p[l-1]:[])[0],C=(p.length-1>l?p[l+1]:[])[0],j=function(){return e[e.length-1]},M=l,g=function(e){return l-M+e},v=function(){var e,t;return null!=(e=j())?null!=(t=e[2])?t.ours:void 0:void 0},y=function(){var e;return v()&&"("===(null!=(e=j())?e[0]:void 0)},w=function(){var e;return v()&&"{"===(null!=(e=j())?e[0]:void 0)},b=function(){var e;return v&&"CONTROL"===(null!=(e=j())?e[0]:void 0)},B=function(t){var n;return n=null!=t?t:l,e.push(["(",n,{ours:!0}]),p.splice(n,0,f("CALL_START","(")),null==t?l+=1:void 0},d=function(){return e.pop(),p.splice(l,0,f("CALL_END",")",["","end of input",i[2]])),l+=1},V=function(t,n){var r,s;return null==n&&(n=!0),r=null!=t?t:l,e.push(["{",r,{sameLine:!0,startsLine:n,ours:!0}]),s=new String("{"),s.generated=!0,p.splice(r,0,f("{",s,i)),null==t?l+=1:void 0},m=function(t){return t=null!=t?t:l,e.pop(),p.splice(t,0,f("}","}",i)),l+=1},y()&&("IF"===U||"TRY"===U||"FINALLY"===U||"CATCH"===U||"CLASS"===U||"SWITCH"===U))return e.push(["CONTROL",l,{ours:!0}]),g(1);if("INDENT"===U&&v()){if("=>"!==F&&"->"!==F&&"["!==F&&"("!==F&&","!==F&&"{"!==F&&"TRY"!==F&&"ELSE"!==F&&"="!==F)for(;y();)d();return b()&&e.pop(),e.push([U,l]),g(1)}if(k.call(s,U)>=0)return e.push([U,l]),g(1);if(k.call(r,U)>=0){for(;v();)y()?d():w()?m():e.pop();t=e.pop()}if((k.call(c,U)>=0&&i.spaced||"?"===U&&l>0&&!p[l-1].spaced)&&(k.call(o,C)>=0||k.call(h,C)>=0&&!(null!=(L=p[l+1])?L.spaced:void 0)&&!(null!=(x=p[l+1])?x.newLine:void 0)))return"?"===U&&(U=i[0]="FUNC_EXIST"),B(l+1),g(2);if(k.call(c,U)>=0&&this.indexOfTag(l+1,"INDENT")>-1&&this.looksObjectish(l+2)&&!this.findTagsBackwards(l,["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"]))return B(l+1),e.push(["INDENT",l+2]),g(3);if(":"===U){for(I=function(){var e;switch(!1){case e=this.tag(l-1),0>k.call(r,e):return t[1];case"@"!==this.tag(l-2):return l-2;default:return l-1}}.call(this);"HERECOMMENT"===this.tag(I-2);)I-=2;return this.insideForDeclaration="FOR"===C,P=0===I||(S=this.tag(I-1),k.call(u,S)>=0)||p[I-1].newLine,j()&&(D=j(),$=D[0],O=D[1],("{"===$||"INDENT"===$&&"{"===this.tag(O-1))&&(P||","===this.tag(I-1)||"{"===this.tag(I-1)))?g(1):(V(I,!!P),g(2))}if(w()&&k.call(u,U)>=0&&(j()[2].sameLine=!1),T="OUTDENT"===F||N.newLine,k.call(a,U)>=0||k.call(n,U)>=0&&T)for(;v();)if(R=j(),$=R[0],O=R[1],A=R[2],_=A.sameLine,P=A.startsLine,y()&&","!==F)d();else if(w()&&!this.insideForDeclaration&&_&&"TERMINATOR"!==U&&":"!==F)m();else{if(!w()||"TERMINATOR"!==U||","===F||P&&this.looksObjectish(l+1))break;if("HERECOMMENT"===C)return g(1);m()}if(!(","!==U||this.looksObjectish(l+1)||!w()||this.insideForDeclaration||"TERMINATOR"===C&&this.looksObjectish(l+2)))for(E="OUTDENT"===C?1:0;w();)m(l+E);return g(1)})},e.prototype.addLocationDataToGeneratedTokens=function(){return this.scanTokens(function(e,t,n){var i,r,s,o,a,c;return e[2]?1:e.generated||e.explicit?("{"===e[0]&&(s=null!=(a=n[t+1])?a[2]:void 0)?(r=s.first_line,i=s.first_column):(o=null!=(c=n[t-1])?c[2]:void 0)?(r=o.last_line,i=o.last_column):r=i=0,e[2]={first_line:r,first_column:i,last_line:r,last_column:i},1):1})},e.prototype.normalizeLines=function(){var e,t,r,s,o;return o=r=s=null,t=function(e,t){var r,s,a,c;return";"!==e[1]&&(r=e[0],k.call(p,r)>=0)&&!("TERMINATOR"===e[0]&&(s=this.tag(t+1),k.call(i,s)>=0))&&!("ELSE"===e[0]&&"THEN"!==o)&&!!("CATCH"!==(a=e[0])&&"FINALLY"!==a||"->"!==o&&"=>"!==o)||(c=e[0],k.call(n,c)>=0&&this.tokens[t-1].newLine)},e=function(e,t){return this.tokens.splice(","===this.tag(t-1)?t-1:t,0,s)},this.scanTokens(function(n,a,c){var h,l,u,p,f,m;if(m=n[0],"TERMINATOR"===m){if("ELSE"===this.tag(a+1)&&"OUTDENT"!==this.tag(a-1))return c.splice.apply(c,[a,1].concat(w.call(this.indentation()))),1;if(u=this.tag(a+1),k.call(i,u)>=0)return c.splice(a,1),0}if("CATCH"===m)for(h=l=1;2>=l;h=++l)if("OUTDENT"===(p=this.tag(a+h))||"TERMINATOR"===p||"FINALLY"===p)return c.splice.apply(c,[a+h,0].concat(w.call(this.indentation()))),2+h;return k.call(d,m)>=0&&"INDENT"!==this.tag(a+1)&&("ELSE"!==m||"IF"!==this.tag(a+1))?(o=m,f=this.indentation(c[a]),r=f[0],s=f[1],"THEN"===o&&(r.fromThen=!0),c.splice(a+1,0,r),this.detectEnd(a+2,t,e),"THEN"===m&&c.splice(a,1),1):1})},e.prototype.tagPostfixConditionals=function(){var e,t,n;return n=null,t=function(e,t){var n,i;return i=e[0],n=this.tokens[t-1][0],"TERMINATOR"===i||"INDENT"===i&&0>k.call(d,n)},e=function(e){return"INDENT"!==e[0]||e.generated&&!e.fromThen?n[0]="POST_"+n[0]:void 0},this.scanTokens(function(i,r){return"IF"!==i[0]?1:(n=i,this.detectEnd(r+1,t,e),1)})},e.prototype.indentation=function(e){var t,n;return t=["INDENT",2],n=["OUTDENT",2],e?(t.generated=n.generated=!0,t.origin=n.origin=e):t.explicit=n.explicit=!0,[t,n]},e.prototype.generate=f,e.prototype.tag=function(e){var t;return null!=(t=this.tokens[e])?t[0]:void 0},e}(),t=[["(",")"],["[","]"],["{","}"],["INDENT","OUTDENT"],["CALL_START","CALL_END"],["PARAM_START","PARAM_END"],["INDEX_START","INDEX_END"],["STRING_START","STRING_END"],["REGEX_START","REGEX_END"]],e.INVERSES=l={},s=[],r=[],m=0,v=t.length;v>m;m++)y=t[m],g=y[0],b=y[1],s.push(l[b]=g),r.push(l[g]=b);i=["CATCH","THEN","ELSE","FINALLY"].concat(r),c=["IDENTIFIER","SUPER",")","CALL_END","]","INDEX_END","@","THIS"],o=["IDENTIFIER","NUMBER","STRING","STRING_START","JS","REGEX","REGEX_START","NEW","PARAM_START","CLASS","IF","TRY","SWITCH","THIS","BOOL","NULL","UNDEFINED","UNARY","YIELD","UNARY_MATH","SUPER","THROW","@","->","=>","[","(","{","--","++"],h=["+","-"],a=["POST_IF","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR"],d=["ELSE","->","=>","TRY","FINALLY","THEN"],p=["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"],u=["TERMINATOR","INDENT","OUTDENT"],n=[".","?.","::","?::"]}.call(this),t.exports}(),require["./lexer"]=function(){var e={},t={exports:e};return function(){var t,n,i,r,s,o,a,c,h,l,u,p,d,f,m,g,v,y,b,k,w,T,C,E,F,N,L,x,S,D,R,A,I,_,O,$,j,M,B,V,P,U,G,H,q,X,W,Y,K,z,J,Q,Z,et,tt,nt,it,rt,st,ot,at,ct,ht,lt,ut=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1};ot=require("./rewriter"),P=ot.Rewriter,w=ot.INVERSES,at=require("./helpers"),nt=at.count,ht=at.starts,tt=at.compact,ct=at.repeat,it=at.invertLiterate,st=at.locationDataToString,lt=at.throwSyntaxError,e.Lexer=S=function(){function e(){}return e.prototype.tokenize=function(e,t){var n,i,r,s;for(null==t&&(t={}),this.literate=t.literate,this.indent=0,this.baseIndent=0,this.indebt=0,this.outdebt=0,this.indents=[],this.ends=[],this.tokens=[],this.chunkLine=t.line||0,this.chunkColumn=t.column||0,e=this.clean(e),r=0;this.chunk=e.slice(r);)if(n=this.identifierToken()||this.commentToken()||this.whitespaceToken()||this.lineToken()||this.stringToken()||this.numberToken()||this.regexToken()||this.jsToken()||this.literalToken(),s=this.getLineAndColumnFromChunk(n),this.chunkLine=s[0],this.chunkColumn=s[1],r+=n,t.untilBalanced&&0===this.ends.length)return{tokens:this.tokens,index:r};return this.closeIndentation(),(i=this.ends.pop())&&this.error("missing "+i.tag,i.origin[2]),t.rewrite===!1?this.tokens:(new P).rewrite(this.tokens)},e.prototype.clean=function(e){return e.charCodeAt(0)===t&&(e=e.slice(1)),e=e.replace(/\r/g,"").replace(z,""),et.test(e)&&(e="\n"+e,this.chunkLine--),this.literate&&(e=it(e)),e},e.prototype.identifierToken=function(){var e,t,n,i,r,c,h,l,u,p,d,f,m,g,y,b;return(l=v.exec(this.chunk))?(h=l[0],r=l[1],t=l[2],c=r.length,u=void 0,"own"===r&&"FOR"===this.tag()?(this.token("OWN",r),r.length):"from"===r&&"YIELD"===this.tag()?(this.token("FROM",r),r.length):(d=this.tokens,p=d[d.length-1],i=t||null!=p&&("."===(f=p[0])||"?."===f||"::"===f||"?::"===f||!p.spaced&&"@"===p[0]),y="IDENTIFIER",!i&&(ut.call(E,r)>=0||ut.call(a,r)>=0)&&(y=r.toUpperCase(),"WHEN"===y&&(m=this.tag(),ut.call(N,m)>=0)?y="LEADING_WHEN":"FOR"===y?this.seenFor=!0:"UNLESS"===y?y="IF":ut.call(J,y)>=0?y="UNARY":ut.call(B,y)>=0&&("INSTANCEOF"!==y&&this.seenFor?(y="FOR"+y,this.seenFor=!1):(y="RELATION","!"===this.value()&&(u=this.tokens.pop(),r="!"+r)))),ut.call(C,r)>=0&&(i?(y="IDENTIFIER",r=new String(r),r.reserved=!0):ut.call(V,r)>=0&&this.error("reserved word '"+r+"'",{length:r.length})),i||(ut.call(s,r)>=0&&(e=r,r=o[r]),y=function(){switch(r){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"&&":case"||":return"LOGIC";case"true":case"false":return"BOOL";case"break":case"continue":return"STATEMENT";default:return y}}()),b=this.token(y,r,0,c),e&&(b.origin=[y,e,b[2]]),b.variable=!i,u&&(g=[u[2].first_line,u[2].first_column],b[2].first_line=g[0],b[2].first_column=g[1]),t&&(n=h.lastIndexOf(":"),this.token(":",":",n,t.length)),h.length)):0},e.prototype.numberToken=function(){var e,t,n,i,r;return(n=I.exec(this.chunk))?(i=n[0],t=i.length,/^0[BOX]/.test(i)?this.error("radix prefix in '"+i+"' must be lowercase",{offset:1}):/E/.test(i)&&!/^0x/.test(i)?this.error("exponential notation in '"+i+"' must be indicated with a lowercase 'e'",{offset:i.indexOf("E")}):/^0\d*[89]/.test(i)?this.error("decimal literal '"+i+"' must not be prefixed with '0'",{length:t}):/^0\d+/.test(i)&&this.error("octal literal '"+i+"' must be prefixed with '0o'",{length:t}),(r=/^0o([0-7]+)/.exec(i))&&(i="0x"+parseInt(r[1],8).toString(16)),(e=/^0b([01]+)/.exec(i))&&(i="0x"+parseInt(e[1],2).toString(16)),this.token("NUMBER",i,0,t),t):0},e.prototype.stringToken=function(){var e,t,n,i,r,s,o,a,c,h,l,u,m,g,v,y;if(l=(Y.exec(this.chunk)||[])[0],!l)return 0;if(g=function(){switch(l){case"'":return W;case'"':return q;case"'''":return f;case'"""':return p}}(),s=3===l.length,u=this.matchWithInterpolations(g,l),y=u.tokens,r=u.index,e=y.length-1,n=l.charAt(0),s){for(a=null,i=function(){var e,t,n;for(n=[],o=e=0,t=y.length;t>e;o=++e)v=y[o],"NEOSTRING"===v[0]&&n.push(v[1]);return n}().join("#{}");h=d.exec(i);)t=h[1],(null===a||(m=t.length)>0&&a.length>m)&&(a=t);a&&(c=RegExp("^"+a,"gm")),this.mergeInterpolationTokens(y,{delimiter:n},function(t){return function(n,i){return n=t.formatString(n),0===i&&(n=n.replace(F,"")),i===e&&(n=n.replace(K,"")),c&&(n=n.replace(c,"")),n}}(this))}else this.mergeInterpolationTokens(y,{delimiter:n},function(t){return function(n,i){return n=t.formatString(n),n=n.replace(G,function(t,r){return 0===i&&0===r||i===e&&r+t.length===n.length?"":" "})}}(this));return r},e.prototype.commentToken=function(){var e,t,n;return(n=this.chunk.match(c))?(e=n[0],t=n[1],t&&((n=u.exec(e))&&this.error("block comments cannot contain "+n[0],{offset:n.index,length:n[0].length}),t.indexOf("\n")>=0&&(t=t.replace(RegExp("\\n"+ct(" ",this.indent),"g"),"\n")),this.token("HERECOMMENT",t,0,e.length)),e.length):0},e.prototype.jsToken=function(){var e,t;return"`"===this.chunk.charAt(0)&&(e=T.exec(this.chunk))?(this.token("JS",(t=e[0]).slice(1,-1),0,t.length),t.length):0},e.prototype.regexToken=function(){var e,t,n,r,s,o,a,c,h,l,u,p,d;switch(!1){case!(o=M.exec(this.chunk)):this.error("regular expressions cannot begin with "+o[2],{offset:o.index+o[1].length});break;case!(o=this.matchWithInterpolations(m,"///")):d=o.tokens,s=o.index;break;case!(o=$.exec(this.chunk)):if(p=o[0],e=o[1],t=o[2],this.validateEscapes(e,{isRegex:!0,offsetInChunk:1}),s=p.length,h=this.tokens,c=h[h.length-1],c)if(c.spaced&&(l=c[0],ut.call(i,l)>=0)){if(!t||O.test(p))return 0}else if(u=c[0],ut.call(A,u)>=0)return 0;t||this.error("missing / (unclosed regex)");break;default:return 0}switch(r=j.exec(this.chunk.slice(s))[0],n=s+r.length,a=this.makeToken("REGEX",null,0,n),!1){case!!Z.test(r):this.error("invalid regular expression flags "+r,{offset:s,length:r.length});break;case!(p||1===d.length):null==e&&(e=this.formatHeregex(d[0][1])),this.token("REGEX",""+this.makeDelimitedLiteral(e,{delimiter:"/"})+r,0,n,a);break;default:this.token("REGEX_START","(",0,0,a),this.token("IDENTIFIER","RegExp",0,0),this.token("CALL_START","(",0,0),this.mergeInterpolationTokens(d,{delimiter:'"',"double":!0},this.formatHeregex),r&&(this.token(",",",",s,0),this.token("STRING",'"'+r+'"',s,r.length)),this.token(")",")",n,0),this.token("REGEX_END",")",n,0)}return n},e.prototype.lineToken=function(){var e,t,n,i,r;if(!(n=R.exec(this.chunk)))return 0;if(t=n[0],this.seenFor=!1,r=t.length-1-t.lastIndexOf("\n"),i=this.unfinished(),r-this.indebt===this.indent)return i?this.suppressNewlines():this.newlineToken(0),t.length;if(r>this.indent){if(i)return this.indebt=r-this.indent,this.suppressNewlines(),t.length;if(!this.tokens.length)return this.baseIndent=this.indent=r,t.length;e=r-this.indent+this.outdebt,this.token("INDENT",e,t.length-r,r),this.indents.push(e),this.ends.push({tag:"OUTDENT"}),this.outdebt=this.indebt=0,this.indent=r}else this.baseIndent>r?this.error("missing indentation",{offset:t.length}):(this.indebt=0,this.outdentToken(this.indent-r,i,t.length));return t.length},e.prototype.outdentToken=function(e,t,n){var i,r,s,o;for(i=this.indent-e;e>0;)s=this.indents[this.indents.length-1],s?s===this.outdebt?(e-=this.outdebt,this.outdebt=0):this.outdebt>s?(this.outdebt-=s,e-=s):(r=this.indents.pop()+this.outdebt,n&&(o=this.chunk[n],ut.call(y,o)>=0)&&(i-=r-e,e=r),this.outdebt=0,this.pair("OUTDENT"),this.token("OUTDENT",e,0,n),e-=r):e=0;for(r&&(this.outdebt-=e);";"===this.value();)this.tokens.pop();return"TERMINATOR"===this.tag()||t||this.token("TERMINATOR","\n",n,0),this.indent=i,this},e.prototype.whitespaceToken=function(){var e,t,n,i;return(e=et.exec(this.chunk))||(t="\n"===this.chunk.charAt(0))?(i=this.tokens,n=i[i.length-1],n&&(n[e?"spaced":"newLine"]=!0),e?e[0].length:0):0},e.prototype.newlineToken=function(e){for(;";"===this.value();)this.tokens.pop();return"TERMINATOR"!==this.tag()&&this.token("TERMINATOR","\n",e,0),this},e.prototype.suppressNewlines=function(){return"\\"===this.value()&&this.tokens.pop(),this},e.prototype.literalToken=function(){var e,t,n,s,o,a,c,u,p,d;if((e=_.exec(this.chunk))?(d=e[0],r.test(d)&&this.tagParameters()):d=this.chunk.charAt(0),u=d,n=this.tokens,t=n[n.length-1],"="===d&&t&&(!t[1].reserved&&(s=t[1],ut.call(C,s)>=0)&&(t.origin&&(t=t.origin),this.error("reserved word '"+t[1]+"' can't be assigned",t[2])),"||"===(o=t[1])||"&&"===o))return t[0]="COMPOUND_ASSIGN",t[1]+="=",d.length;if(";"===d)this.seenFor=!1,u="TERMINATOR";else if(ut.call(D,d)>=0)u="MATH";else if(ut.call(h,d)>=0)u="COMPARE";else if(ut.call(l,d)>=0)u="COMPOUND_ASSIGN";else if(ut.call(J,d)>=0)u="UNARY";else if(ut.call(Q,d)>=0)u="UNARY_MATH";else if(ut.call(U,d)>=0)u="SHIFT";else if(ut.call(x,d)>=0||"?"===d&&(null!=t?t.spaced:void 0))u="LOGIC";else if(t&&!t.spaced)if("("===d&&(a=t[0],ut.call(i,a)>=0))"?"===t[0]&&(t[0]="FUNC_EXIST"),u="CALL_START";else if("["===d&&(c=t[0],ut.call(b,c)>=0))switch(u="INDEX_START",t[0]){case"?":t[0]="INDEX_SOAK"}switch(p=this.makeToken(u,d),d){case"(":case"{":case"[":this.ends.push({tag:w[d],origin:p});break;case")":case"}":case"]":this.pair(d)}return this.tokens.push(p),d.length},e.prototype.tagParameters=function(){var e,t,n,i;if(")"!==this.tag())return this;for(t=[],i=this.tokens,e=i.length,i[--e][0]="PARAM_END";n=i[--e];)switch(n[0]){case")":t.push(n);break;case"(":case"CALL_START":if(!t.length)return"("===n[0]?(n[0]="PARAM_START",this):this;t.pop()}return this},e.prototype.closeIndentation=function(){return this.outdentToken(this.indent)},e.prototype.matchWithInterpolations=function(t,n){var i,r,s,o,a,c,h,l,u,p,d,f,m,g,v;if(v=[],l=n.length,this.chunk.slice(0,l)!==n)return null;for(m=this.chunk.slice(l);;){if(g=t.exec(m)[0],this.validateEscapes(g,{isRegex:"/"===n.charAt(0),offsetInChunk:l}),v.push(this.makeToken("NEOSTRING",g,l)),m=m.slice(g.length),l+=g.length,"#{"!==m.slice(0,2))break;p=this.getLineAndColumnFromChunk(l+1),c=p[0],r=p[1],d=(new e).tokenize(m.slice(1),{line:c,column:r,untilBalanced:!0}),h=d.tokens,o=d.index,o+=1,u=h[0],i=h[h.length-1],u[0]=u[1]="(",i[0]=i[1]=")",i.origin=["","end of interpolation",i[2]],"TERMINATOR"===(null!=(f=h[1])?f[0]:void 0)&&h.splice(1,1),v.push(["TOKENS",h]),m=m.slice(o),l+=o}return m.slice(0,n.length)!==n&&this.error("missing "+n,{length:n.length}),s=v[0],a=v[v.length-1],s[2].first_column-=n.length,a[2].last_column+=n.length,0===a[1].length&&(a[2].last_column-=1),{tokens:v,index:l+n.length}},e.prototype.mergeInterpolationTokens=function(e,t,n){var i,r,s,o,a,c,h,l,u,p,d,f,m,g,v,y;for(e.length>1&&(u=this.token("STRING_START","(",0,0)),s=this.tokens.length,o=a=0,h=e.length;h>a;o=++a){switch(g=e[o],m=g[0],y=g[1],m){case"TOKENS":if(2===y.length)continue;l=y[0],v=y;break;case"NEOSTRING":if(i=n(g[1],o),0===i.length){if(0!==o)continue;r=this.tokens.length}2===o&&null!=r&&this.tokens.splice(r,2),g[0]="STRING",g[1]=this.makeDelimitedLiteral(i,t),l=g,v=[g]}this.tokens.length>s&&(p=this.token("+","+"),p[2]={first_line:l[2].first_line,first_column:l[2].first_column,last_line:l[2].first_line,last_column:l[2].first_column}),(d=this.tokens).push.apply(d,v)}return u?(c=e[e.length-1],u.origin=["STRING",null,{first_line:u[2].first_line,first_column:u[2].first_column,last_line:c[2].last_line,last_column:c[2].last_column}],f=this.token("STRING_END",")"),f[2]={first_line:c[2].last_line,first_column:c[2].last_column,last_line:c[2].last_line,last_column:c[2].last_column}):void 0},e.prototype.pair=function(e){var t,n,i,r,s;return i=this.ends,n=i[i.length-1],e!==(s=null!=n?n.tag:void 0)?("OUTDENT"!==s&&this.error("unmatched "+e),r=this.indents,t=r[r.length-1],this.outdentToken(t,!0),this.pair(e)):this.ends.pop()},e.prototype.getLineAndColumnFromChunk=function(e){var t,n,i,r,s;return 0===e?[this.chunkLine,this.chunkColumn]:(s=e>=this.chunk.length?this.chunk:this.chunk.slice(0,+(e-1)+1||9e9),i=nt(s,"\n"),t=this.chunkColumn,i>0?(r=s.split("\n"),n=r[r.length-1],t=n.length):t+=s.length,[this.chunkLine+i,t])},e.prototype.makeToken=function(e,t,n,i){var r,s,o,a,c;return null==n&&(n=0),null==i&&(i=t.length),s={},o=this.getLineAndColumnFromChunk(n),s.first_line=o[0],s.first_column=o[1],r=Math.max(0,i-1),a=this.getLineAndColumnFromChunk(n+r),s.last_line=a[0],s.last_column=a[1],c=[e,t,s]},e.prototype.token=function(e,t,n,i,r){var s;return s=this.makeToken(e,t,n,i),r&&(s.origin=r),this.tokens.push(s),s},e.prototype.tag=function(){var e,t;return e=this.tokens,t=e[e.length-1],null!=t?t[0]:void 0},e.prototype.value=function(){var e,t;return e=this.tokens,t=e[e.length-1],null!=t?t[1]:void 0},e.prototype.unfinished=function(){var e;return L.test(this.chunk)||"\\"===(e=this.tag())||"."===e||"?."===e||"?::"===e||"UNARY"===e||"MATH"===e||"UNARY_MATH"===e||"+"===e||"-"===e||"YIELD"===e||"**"===e||"SHIFT"===e||"RELATION"===e||"COMPARE"===e||"LOGIC"===e||"THROW"===e||"EXTENDS"===e},e.prototype.formatString=function(e){return e.replace(X,"$1")},e.prototype.formatHeregex=function(e){return e.replace(g,"$1$2")},e.prototype.validateEscapes=function(e,t){var n,i,r,s,o,a,c,h;return null==t&&(t={}),s=k.exec(e),!s||(s[0],n=s[1],a=s[2],i=s[3],h=s[4],t.isRegex&&a&&"0"!==a.charAt(0))?void 0:(o=a?"octal escape sequences are not allowed":"invalid escape sequence",r="\\"+(a||i||h),this.error(o+" "+r,{offset:(null!=(c=t.offsetInChunk)?c:0)+s.index+n.length,length:r.length}))},e.prototype.makeDelimitedLiteral=function(e,t){var n;return null==t&&(t={}),""===e&&"/"===t.delimiter&&(e="(?:)"),n=RegExp("(\\\\\\\\)|(\\\\0(?=[1-7]))|\\\\?("+t.delimiter+")|\\\\?(?:(\\n)|(\\r)|(\\u2028)|(\\u2029))|(\\\\.)","g"),e=e.replace(n,function(e,n,i,r,s,o,a,c,h){switch(!1){case!n:return t.double?n+n:n;case!i:return"\\x00";case!r:return"\\"+r;case!s:return"\\n";case!o:return"\\r";case!a:return"\\u2028";case!c:return"\\u2029";case!h:return t.double?"\\"+h:h}}),""+t.delimiter+e+t.delimiter},e.prototype.error=function(e,t){var n,i,r,s,o,a;return null==t&&(t={}),r="first_line"in t?t:(o=this.getLineAndColumnFromChunk(null!=(s=t.offset)?s:0),i=o[0],n=o[1],o,{first_line:i,first_column:n,last_column:n+(null!=(a=t.length)?a:1)-1}),lt(e,r)},e}(),E=["true","false","null","this","new","delete","typeof","in","instanceof","return","throw","break","continue","debugger","yield","if","else","switch","for","while","do","try","catch","finally","class","extends","super"],a=["undefined","then","unless","until","loop","of","by","when"],o={and:"&&",or:"||",is:"==",isnt:"!=",not:"!",yes:"true",no:"false",on:"true",off:"false"},s=function(){var e;e=[];for(rt in o)e.push(rt);return e}(),a=a.concat(s),V=["case","default","function","var","void","with","const","let","enum","export","import","native","implements","interface","package","private","protected","public","static"],H=["arguments","eval","yield*"],C=E.concat(V).concat(H),e.RESERVED=V.concat(E).concat(a).concat(H),e.STRICT_PROSCRIBED=H,t=65279,v=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+)([^\n\S]*:(?!:))?/,I=/^0b[01]+|^0o[0-7]+|^0x[\da-f]+|^\d*\.?\d+(?:e[+-]?\d+)?/i,_=/^(?:[-=]>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?(\.|::)|\.{2,3})/,et=/^[^\n\S]+/,c=/^###([^#][\s\S]*?)(?:###[^\n\S]*|###$)|^(?:\s*#(?!##[^#]).*)+/,r=/^[-=]>/,R=/^(?:\n[^\n\S]*)+/,T=/^`[^\\`]*(?:\\.[^\\`]*)*`/,Y=/^(?:'''|"""|'|")/,W=/^(?:[^\\']|\\[\s\S])*/,q=/^(?:[^\\"#]|\\[\s\S]|\#(?!\{))*/,f=/^(?:[^\\']|\\[\s\S]|'(?!''))*/,p=/^(?:[^\\"#]|\\[\s\S]|"(?!"")|\#(?!\{))*/,X=/((?:\\\\)+)|\\[^\S\n]*\n\s*/g,G=/\s*\n\s*/g,d=/\n+([^\n\S]*)(?=\S)/g,$=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/,j=/^\w*/,Z=/^(?!.*(.).*\1)[imgy]*$/,m=/^(?:[^\\\/#]|\\[\s\S]|\/(?!\/\/)|\#(?!\{))*/,g=/((?:\\\\)+)|\\(\s)|\s+(?:#.*)?/g,M=/^(\/|\/{3}\s*)(\*)/,O=/^\/=?\s/,u=/\*\//,L=/^\s*(?:,|\??\.(?![.\d])|::)/,k=/((?:^|[^\\])(?:\\\\)*)\\(?:(0[0-7]|[1-7])|(x(?![\da-fA-F]{2}).{0,2})|(u(?![\da-fA-F]{4}).{0,4}))/,F=/^[^\n\S]*\n/,K=/\n[^\n\S]*$/,z=/\s+$/,l=["-=","+=","/=","*=","%=","||=","&&=","?=","<<=",">>=",">>>=","&=","^=","|=","**=","//=","%%="],J=["NEW","TYPEOF","DELETE","DO"],Q=["!","~"],x=["&&","||","&","|","^"],U=["<<",">>",">>>"],h=["==","!=","<",">","<=",">="],D=["*","/","%","//","%%"],B=["IN","OF","INSTANCEOF"],n=["TRUE","FALSE"],i=["IDENTIFIER",")","]","?","@","THIS","SUPER"],b=i.concat(["NUMBER","STRING","STRING_END","REGEX","REGEX_END","BOOL","NULL","UNDEFINED","}","::"]),A=b.concat(["++","--"]),N=["INDENT","OUTDENT","TERMINATOR"],y=[")","}","]"]}.call(this),t.exports}(),require["./parser"]=function(){var e={},t={exports:e},n=function(){function e(){this.yy={}}var t=function(e,t,n,i){for(n=n||{},i=e.length;i--;n[e[i]]=t);return n},n=[1,20],i=[1,75],r=[1,71],s=[1,76],o=[1,77],a=[1,73],c=[1,74],h=[1,50],l=[1,52],u=[1,53],p=[1,54],d=[1,55],f=[1,45],m=[1,46],g=[1,27],v=[1,60],y=[1,61],b=[1,70],k=[1,43],w=[1,26],T=[1,58],C=[1,59],E=[1,57],F=[1,38],N=[1,44],L=[1,56],x=[1,65],S=[1,66],D=[1,67],R=[1,68],A=[1,42],I=[1,64],_=[1,29],O=[1,30],$=[1,31],j=[1,32],M=[1,33],B=[1,34],V=[1,35],P=[1,78],U=[1,6,26,34,108],G=[1,88],H=[1,81],q=[1,80],X=[1,79],W=[1,82],Y=[1,83],K=[1,84],z=[1,85],J=[1,86],Q=[1,87],Z=[1,91],et=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],tt=[1,97],nt=[1,98],it=[1,99],rt=[1,100],st=[1,102],ot=[1,103],at=[1,96],ct=[2,112],ht=[1,6,25,26,34,55,60,63,72,73,74,75,77,79,80,84,90,91,92,97,99,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],lt=[2,79],ut=[1,108],pt=[2,58],dt=[1,112],ft=[1,117],mt=[1,118],gt=[1,120],vt=[1,6,25,26,34,46,55,60,63,72,73,74,75,77,79,80,84,90,91,92,97,99,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],yt=[2,76],bt=[1,6,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],kt=[1,155],wt=[1,157],Tt=[1,152],Ct=[1,6,25,26,34,46,55,60,63,72,73,74,75,77,79,80,84,86,90,91,92,97,99,108,110,111,112,116,117,132,135,136,139,140,141,142,143,144,145,146,147,148],Et=[2,95],Ft=[1,6,25,26,34,49,55,60,63,72,73,74,75,77,79,80,84,90,91,92,97,99,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],Nt=[1,6,25,26,34,46,49,55,60,63,72,73,74,75,77,79,80,84,86,90,91,92,97,99,108,110,111,112,116,117,123,124,132,135,136,139,140,141,142,143,144,145,146,147,148],Lt=[1,206],xt=[1,205],St=[1,6,25,26,34,38,55,60,63,72,73,74,75,77,79,80,84,90,91,92,97,99,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],Dt=[2,56],Rt=[1,216],At=[6,25,26,55,60],It=[6,25,26,46,55,60,63],_t=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,135,136,142,144,145,146,147],Ot=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132],$t=[72,73,74,75,77,80,90,91],jt=[1,235],Mt=[2,133],Bt=[1,6,25,26,34,46,55,60,63,72,73,74,75,77,79,80,84,90,91,92,97,99,108,110,111,112,116,117,123,124,132,135,136,141,142,143,144,145,146,147],Vt=[1,244],Pt=[6,25,26,60,92,97],Ut=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,117,132],Gt=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,111,117,132],Ht=[123,124],qt=[60,123,124],Xt=[1,255],Wt=[6,25,26,60,84],Yt=[6,25,26,49,60,84],Kt=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,135,136,144,145,146,147],zt=[11,28,30,32,33,36,37,40,41,42,43,44,51,52,53,57,58,79,82,85,89,94,95,96,102,106,107,110,112,114,116,125,131,133,134,135,136,137,139,140],Jt=[2,122],Qt=[6,25,26],Zt=[2,57],en=[1,268],tn=[1,269],nn=[1,6,25,26,34,55,60,63,79,84,92,97,99,104,105,108,110,111,112,116,117,127,129,132,135,136,141,142,143,144,145,146,147],rn=[26,127,129],sn=[1,6,26,34,55,60,63,79,84,92,97,99,108,111,117,132],on=[2,71],an=[1,291],cn=[1,292],hn=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,127,132,135,136,141,142,143,144,145,146,147],ln=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,112,116,117,132],un=[1,303],pn=[1,304],dn=[6,25,26,60],fn=[1,6,25,26,34,55,60,63,79,84,92,97,99,104,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],mn=[25,60],gn={trace:function(){},yy:{},symbols_:{error:2,Root:3,Body:4,Line:5,TERMINATOR:6,Expression:7,Statement:8,Return:9,Comment:10,STATEMENT:11,Value:12,Invocation:13,Code:14,Operation:15,Assign:16,If:17,Try:18,While:19,For:20,Switch:21,Class:22,Throw:23,Block:24,INDENT:25,OUTDENT:26,Identifier:27,IDENTIFIER:28,AlphaNumeric:29,NUMBER:30,String:31,STRING:32,STRING_START:33,STRING_END:34,Regex:35,REGEX:36,REGEX_START:37,REGEX_END:38,Literal:39,JS:40,DEBUGGER:41,UNDEFINED:42,NULL:43,BOOL:44,Assignable:45,"=":46,AssignObj:47,ObjAssignable:48,":":49,ThisProperty:50,RETURN:51,HERECOMMENT:52,PARAM_START:53,ParamList:54,PARAM_END:55,FuncGlyph:56,"->":57,"=>":58,OptComma:59,",":60,Param:61,ParamVar:62,"...":63,Array:64,Object:65,Splat:66,SimpleAssignable:67,Accessor:68,Parenthetical:69,Range:70,This:71,".":72,"?.":73,"::":74,"?::":75,Index:76,INDEX_START:77,IndexValue:78,INDEX_END:79,INDEX_SOAK:80,Slice:81,"{":82,AssignList:83,"}":84,CLASS:85,EXTENDS:86,OptFuncExist:87,Arguments:88,SUPER:89,FUNC_EXIST:90,CALL_START:91,CALL_END:92,ArgList:93,THIS:94,"@":95,"[":96,"]":97,RangeDots:98,"..":99,Arg:100,SimpleArgs:101,TRY:102,Catch:103,FINALLY:104,CATCH:105,THROW:106,"(":107,")":108,WhileSource:109,WHILE:110,WHEN:111,UNTIL:112,Loop:113,LOOP:114,ForBody:115,FOR:116,BY:117,ForStart:118,ForSource:119,ForVariables:120,OWN:121,ForValue:122,FORIN:123,FOROF:124,SWITCH:125,Whens:126,ELSE:127,When:128,LEADING_WHEN:129,IfBlock:130,IF:131,POST_IF:132,UNARY:133,UNARY_MATH:134,"-":135,"+":136,YIELD:137,FROM:138,"--":139,"++":140,"?":141,MATH:142,"**":143,SHIFT:144,COMPARE:145,LOGIC:146,RELATION:147,COMPOUND_ASSIGN:148,$accept:0,$end:1},terminals_:{2:"error",6:"TERMINATOR",11:"STATEMENT",25:"INDENT",26:"OUTDENT",28:"IDENTIFIER",30:"NUMBER",32:"STRING",33:"STRING_START",34:"STRING_END",36:"REGEX",37:"REGEX_START",38:"REGEX_END",40:"JS",41:"DEBUGGER",42:"UNDEFINED",43:"NULL",44:"BOOL",46:"=",49:":",51:"RETURN",52:"HERECOMMENT",53:"PARAM_START",55:"PARAM_END",57:"->",58:"=>",60:",",63:"...",72:".",73:"?.",74:"::",75:"?::",77:"INDEX_START",79:"INDEX_END",80:"INDEX_SOAK",82:"{",84:"}",85:"CLASS",86:"EXTENDS",89:"SUPER",90:"FUNC_EXIST",91:"CALL_START",92:"CALL_END",94:"THIS",95:"@",96:"[",97:"]",99:"..",102:"TRY",104:"FINALLY",105:"CATCH",106:"THROW",107:"(",108:")",110:"WHILE",111:"WHEN",112:"UNTIL",114:"LOOP",116:"FOR",117:"BY",121:"OWN",123:"FORIN",124:"FOROF",125:"SWITCH",127:"ELSE",129:"LEADING_WHEN",131:"IF",132:"POST_IF",133:"UNARY",134:"UNARY_MATH",135:"-",136:"+",137:"YIELD",138:"FROM",139:"--",140:"++",141:"?",142:"MATH",143:"**",144:"SHIFT",145:"COMPARE",146:"LOGIC",147:"RELATION",148:"COMPOUND_ASSIGN"},productions_:[0,[3,0],[3,1],[4,1],[4,3],[4,2],[5,1],[5,1],[8,1],[8,1],[8,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[24,2],[24,3],[27,1],[29,1],[29,1],[31,1],[31,3],[35,1],[35,3],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[16,3],[16,4],[16,5],[47,1],[47,3],[47,5],[47,1],[48,1],[48,1],[48,1],[9,2],[9,1],[10,1],[14,5],[14,2],[56,1],[56,1],[59,0],[59,1],[54,0],[54,1],[54,3],[54,4],[54,6],[61,1],[61,2],[61,3],[61,1],[62,1],[62,1],[62,1],[62,1],[66,2],[67,1],[67,2],[67,2],[67,1],[45,1],[45,1],[45,1],[12,1],[12,1],[12,1],[12,1],[12,1],[68,2],[68,2],[68,2],[68,2],[68,1],[68,1],[76,3],[76,2],[78,1],[78,1],[65,4],[83,0],[83,1],[83,3],[83,4],[83,6],[22,1],[22,2],[22,3],[22,4],[22,2],[22,3],[22,4],[22,5],[13,3],[13,3],[13,1],[13,2],[87,0],[87,1],[88,2],[88,4],[71,1],[71,1],[50,2],[64,2],[64,4],[98,1],[98,1],[70,5],[81,3],[81,2],[81,2],[81,1],[93,1],[93,3],[93,4],[93,4],[93,6],[100,1],[100,1],[100,1],[101,1],[101,3],[18,2],[18,3],[18,4],[18,5],[103,3],[103,3],[103,2],[23,2],[69,3],[69,5],[109,2],[109,4],[109,2],[109,4],[19,2],[19,2],[19,2],[19,1],[113,2],[113,2],[20,2],[20,2],[20,2],[115,2],[115,4],[115,2],[118,2],[118,3],[122,1],[122,1],[122,1],[122,1],[120,1],[120,3],[119,2],[119,2],[119,4],[119,4],[119,4],[119,6],[119,6],[21,5],[21,7],[21,4],[21,6],[126,1],[126,2],[128,3],[128,4],[130,3],[130,5],[17,1],[17,3],[17,3],[17,3],[15,2],[15,2],[15,2],[15,2],[15,2],[15,2],[15,3],[15,2],[15,2],[15,2],[15,2],[15,2],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,5],[15,4],[15,3]],performAction:function(e,t,n,i,r,s,o){var a=s.length-1; -switch(r){case 1:return this.$=i.addLocationDataFn(o[a],o[a])(new i.Block);case 2:return this.$=s[a];case 3:this.$=i.addLocationDataFn(o[a],o[a])(i.Block.wrap([s[a]]));break;case 4:this.$=i.addLocationDataFn(o[a-2],o[a])(s[a-2].push(s[a]));break;case 5:this.$=s[a-1];break;case 6:case 7:case 8:case 9:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 27:case 32:case 34:case 45:case 46:case 47:case 48:case 56:case 57:case 67:case 68:case 69:case 70:case 75:case 76:case 79:case 83:case 89:case 133:case 134:case 136:case 166:case 167:case 183:case 189:this.$=s[a];break;case 10:case 25:case 26:case 28:case 30:case 33:case 35:this.$=i.addLocationDataFn(o[a],o[a])(new i.Literal(s[a]));break;case 23:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Block);break;case 24:case 31:case 90:this.$=i.addLocationDataFn(o[a-2],o[a])(s[a-1]);break;case 29:case 146:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Parens(s[a-1]));break;case 36:this.$=i.addLocationDataFn(o[a],o[a])(new i.Undefined);break;case 37:this.$=i.addLocationDataFn(o[a],o[a])(new i.Null);break;case 38:this.$=i.addLocationDataFn(o[a],o[a])(new i.Bool(s[a]));break;case 39:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Assign(s[a-2],s[a]));break;case 40:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Assign(s[a-3],s[a]));break;case 41:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Assign(s[a-4],s[a-1]));break;case 42:case 72:case 77:case 78:case 80:case 81:case 82:case 168:case 169:this.$=i.addLocationDataFn(o[a],o[a])(new i.Value(s[a]));break;case 43:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Assign(i.addLocationDataFn(o[a-2])(new i.Value(s[a-2])),s[a],"object"));break;case 44:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Assign(i.addLocationDataFn(o[a-4])(new i.Value(s[a-4])),s[a-1],"object"));break;case 49:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Return(s[a]));break;case 50:this.$=i.addLocationDataFn(o[a],o[a])(new i.Return);break;case 51:this.$=i.addLocationDataFn(o[a],o[a])(new i.Comment(s[a]));break;case 52:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Code(s[a-3],s[a],s[a-1]));break;case 53:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Code([],s[a],s[a-1]));break;case 54:this.$=i.addLocationDataFn(o[a],o[a])("func");break;case 55:this.$=i.addLocationDataFn(o[a],o[a])("boundfunc");break;case 58:case 95:this.$=i.addLocationDataFn(o[a],o[a])([]);break;case 59:case 96:case 128:case 170:this.$=i.addLocationDataFn(o[a],o[a])([s[a]]);break;case 60:case 97:case 129:this.$=i.addLocationDataFn(o[a-2],o[a])(s[a-2].concat(s[a]));break;case 61:case 98:case 130:this.$=i.addLocationDataFn(o[a-3],o[a])(s[a-3].concat(s[a]));break;case 62:case 99:case 132:this.$=i.addLocationDataFn(o[a-5],o[a])(s[a-5].concat(s[a-2]));break;case 63:this.$=i.addLocationDataFn(o[a],o[a])(new i.Param(s[a]));break;case 64:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Param(s[a-1],null,!0));break;case 65:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Param(s[a-2],s[a]));break;case 66:case 135:this.$=i.addLocationDataFn(o[a],o[a])(new i.Expansion);break;case 71:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Splat(s[a-1]));break;case 73:this.$=i.addLocationDataFn(o[a-1],o[a])(s[a-1].add(s[a]));break;case 74:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Value(s[a-1],[].concat(s[a])));break;case 84:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Access(s[a]));break;case 85:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Access(s[a],"soak"));break;case 86:this.$=i.addLocationDataFn(o[a-1],o[a])([i.addLocationDataFn(o[a-1])(new i.Access(new i.Literal("prototype"))),i.addLocationDataFn(o[a])(new i.Access(s[a]))]);break;case 87:this.$=i.addLocationDataFn(o[a-1],o[a])([i.addLocationDataFn(o[a-1])(new i.Access(new i.Literal("prototype"),"soak")),i.addLocationDataFn(o[a])(new i.Access(s[a]))]);break;case 88:this.$=i.addLocationDataFn(o[a],o[a])(new i.Access(new i.Literal("prototype")));break;case 91:this.$=i.addLocationDataFn(o[a-1],o[a])(i.extend(s[a],{soak:!0}));break;case 92:this.$=i.addLocationDataFn(o[a],o[a])(new i.Index(s[a]));break;case 93:this.$=i.addLocationDataFn(o[a],o[a])(new i.Slice(s[a]));break;case 94:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Obj(s[a-2],s[a-3].generated));break;case 100:this.$=i.addLocationDataFn(o[a],o[a])(new i.Class);break;case 101:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Class(null,null,s[a]));break;case 102:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Class(null,s[a]));break;case 103:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Class(null,s[a-1],s[a]));break;case 104:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Class(s[a]));break;case 105:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Class(s[a-1],null,s[a]));break;case 106:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Class(s[a-2],s[a]));break;case 107:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Class(s[a-3],s[a-1],s[a]));break;case 108:case 109:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Call(s[a-2],s[a],s[a-1]));break;case 110:this.$=i.addLocationDataFn(o[a],o[a])(new i.Call("super",[new i.Splat(new i.Literal("arguments"))]));break;case 111:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Call("super",s[a]));break;case 112:this.$=i.addLocationDataFn(o[a],o[a])(!1);break;case 113:this.$=i.addLocationDataFn(o[a],o[a])(!0);break;case 114:this.$=i.addLocationDataFn(o[a-1],o[a])([]);break;case 115:case 131:this.$=i.addLocationDataFn(o[a-3],o[a])(s[a-2]);break;case 116:case 117:this.$=i.addLocationDataFn(o[a],o[a])(new i.Value(new i.Literal("this")));break;case 118:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Value(i.addLocationDataFn(o[a-1])(new i.Literal("this")),[i.addLocationDataFn(o[a])(new i.Access(s[a]))],"this"));break;case 119:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Arr([]));break;case 120:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Arr(s[a-2]));break;case 121:this.$=i.addLocationDataFn(o[a],o[a])("inclusive");break;case 122:this.$=i.addLocationDataFn(o[a],o[a])("exclusive");break;case 123:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Range(s[a-3],s[a-1],s[a-2]));break;case 124:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Range(s[a-2],s[a],s[a-1]));break;case 125:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Range(s[a-1],null,s[a]));break;case 126:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Range(null,s[a],s[a-1]));break;case 127:this.$=i.addLocationDataFn(o[a],o[a])(new i.Range(null,null,s[a]));break;case 137:this.$=i.addLocationDataFn(o[a-2],o[a])([].concat(s[a-2],s[a]));break;case 138:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Try(s[a]));break;case 139:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Try(s[a-1],s[a][0],s[a][1]));break;case 140:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Try(s[a-2],null,null,s[a]));break;case 141:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Try(s[a-3],s[a-2][0],s[a-2][1],s[a]));break;case 142:this.$=i.addLocationDataFn(o[a-2],o[a])([s[a-1],s[a]]);break;case 143:this.$=i.addLocationDataFn(o[a-2],o[a])([i.addLocationDataFn(o[a-1])(new i.Value(s[a-1])),s[a]]);break;case 144:this.$=i.addLocationDataFn(o[a-1],o[a])([null,s[a]]);break;case 145:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Throw(s[a]));break;case 147:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Parens(s[a-2]));break;case 148:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.While(s[a]));break;case 149:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.While(s[a-2],{guard:s[a]}));break;case 150:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.While(s[a],{invert:!0}));break;case 151:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.While(s[a-2],{invert:!0,guard:s[a]}));break;case 152:this.$=i.addLocationDataFn(o[a-1],o[a])(s[a-1].addBody(s[a]));break;case 153:case 154:this.$=i.addLocationDataFn(o[a-1],o[a])(s[a].addBody(i.addLocationDataFn(o[a-1])(i.Block.wrap([s[a-1]]))));break;case 155:this.$=i.addLocationDataFn(o[a],o[a])(s[a]);break;case 156:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.While(i.addLocationDataFn(o[a-1])(new i.Literal("true"))).addBody(s[a]));break;case 157:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.While(i.addLocationDataFn(o[a-1])(new i.Literal("true"))).addBody(i.addLocationDataFn(o[a])(i.Block.wrap([s[a]]))));break;case 158:case 159:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.For(s[a-1],s[a]));break;case 160:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.For(s[a],s[a-1]));break;case 161:this.$=i.addLocationDataFn(o[a-1],o[a])({source:i.addLocationDataFn(o[a])(new i.Value(s[a]))});break;case 162:this.$=i.addLocationDataFn(o[a-3],o[a])({source:i.addLocationDataFn(o[a-2])(new i.Value(s[a-2])),step:s[a]});break;case 163:this.$=i.addLocationDataFn(o[a-1],o[a])(function(){return s[a].own=s[a-1].own,s[a].name=s[a-1][0],s[a].index=s[a-1][1],s[a]}());break;case 164:this.$=i.addLocationDataFn(o[a-1],o[a])(s[a]);break;case 165:this.$=i.addLocationDataFn(o[a-2],o[a])(function(){return s[a].own=!0,s[a]}());break;case 171:this.$=i.addLocationDataFn(o[a-2],o[a])([s[a-2],s[a]]);break;case 172:this.$=i.addLocationDataFn(o[a-1],o[a])({source:s[a]});break;case 173:this.$=i.addLocationDataFn(o[a-1],o[a])({source:s[a],object:!0});break;case 174:this.$=i.addLocationDataFn(o[a-3],o[a])({source:s[a-2],guard:s[a]});break;case 175:this.$=i.addLocationDataFn(o[a-3],o[a])({source:s[a-2],guard:s[a],object:!0});break;case 176:this.$=i.addLocationDataFn(o[a-3],o[a])({source:s[a-2],step:s[a]});break;case 177:this.$=i.addLocationDataFn(o[a-5],o[a])({source:s[a-4],guard:s[a-2],step:s[a]});break;case 178:this.$=i.addLocationDataFn(o[a-5],o[a])({source:s[a-4],step:s[a-2],guard:s[a]});break;case 179:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Switch(s[a-3],s[a-1]));break;case 180:this.$=i.addLocationDataFn(o[a-6],o[a])(new i.Switch(s[a-5],s[a-3],s[a-1]));break;case 181:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Switch(null,s[a-1]));break;case 182:this.$=i.addLocationDataFn(o[a-5],o[a])(new i.Switch(null,s[a-3],s[a-1]));break;case 184:this.$=i.addLocationDataFn(o[a-1],o[a])(s[a-1].concat(s[a]));break;case 185:this.$=i.addLocationDataFn(o[a-2],o[a])([[s[a-1],s[a]]]);break;case 186:this.$=i.addLocationDataFn(o[a-3],o[a])([[s[a-2],s[a-1]]]);break;case 187:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.If(s[a-1],s[a],{type:s[a-2]}));break;case 188:this.$=i.addLocationDataFn(o[a-4],o[a])(s[a-4].addElse(i.addLocationDataFn(o[a-2],o[a])(new i.If(s[a-1],s[a],{type:s[a-2]}))));break;case 190:this.$=i.addLocationDataFn(o[a-2],o[a])(s[a-2].addElse(s[a]));break;case 191:case 192:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.If(s[a],i.addLocationDataFn(o[a-2])(i.Block.wrap([s[a-2]])),{type:s[a-1],statement:!0}));break;case 193:case 194:case 197:case 198:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Op(s[a-1],s[a]));break;case 195:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Op("-",s[a]));break;case 196:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Op("+",s[a]));break;case 199:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Op(s[a-2].concat(s[a-1]),s[a]));break;case 200:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Op("--",s[a]));break;case 201:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Op("++",s[a]));break;case 202:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Op("--",s[a-1],null,!0));break;case 203:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Op("++",s[a-1],null,!0));break;case 204:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Existence(s[a-1]));break;case 205:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Op("+",s[a-2],s[a]));break;case 206:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Op("-",s[a-2],s[a]));break;case 207:case 208:case 209:case 210:case 211:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Op(s[a-1],s[a-2],s[a]));break;case 212:this.$=i.addLocationDataFn(o[a-2],o[a])(function(){return"!"===s[a-1].charAt(0)?new i.Op(s[a-1].slice(1),s[a-2],s[a]).invert():new i.Op(s[a-1],s[a-2],s[a])}());break;case 213:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Assign(s[a-2],s[a],s[a-1]));break;case 214:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Assign(s[a-4],s[a-1],s[a-3]));break;case 215:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Assign(s[a-3],s[a],s[a-2]));break;case 216:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Extends(s[a-2],s[a]))}},table:[{1:[2,1],3:1,4:2,5:3,7:4,8:5,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{1:[3]},{1:[2,2],6:P},t(U,[2,3]),t(U,[2,6],{118:69,109:89,115:90,110:x,112:S,116:R,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(U,[2,7],{118:69,109:92,115:93,110:x,112:S,116:R,132:Z}),t(et,[2,11],{87:94,68:95,76:101,72:tt,73:nt,74:it,75:rt,77:st,80:ot,90:at,91:ct}),t(et,[2,12],{76:101,87:104,68:105,72:tt,73:nt,74:it,75:rt,77:st,80:ot,90:at,91:ct}),t(et,[2,13]),t(et,[2,14]),t(et,[2,15]),t(et,[2,16]),t(et,[2,17]),t(et,[2,18]),t(et,[2,19]),t(et,[2,20]),t(et,[2,21]),t(et,[2,22]),t(et,[2,8]),t(et,[2,9]),t(et,[2,10]),t(ht,lt,{46:[1,106]}),t(ht,[2,80]),t(ht,[2,81]),t(ht,[2,82]),t(ht,[2,83]),t([1,6,25,26,34,38,55,60,63,72,73,74,75,77,79,80,84,90,92,97,99,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],[2,110],{88:107,91:ut}),t([6,25,55,60],pt,{54:109,61:110,62:111,27:113,50:114,64:115,65:116,28:i,63:dt,82:b,95:ft,96:mt}),{24:119,25:gt},{7:121,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:123,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:124,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:125,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:127,8:126,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,138:[1,128],139:B,140:V},{12:130,13:131,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:132,50:63,64:47,65:48,67:129,69:23,70:24,71:25,82:b,89:w,94:T,95:C,96:E,107:L},{12:130,13:131,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:132,50:63,64:47,65:48,67:133,69:23,70:24,71:25,82:b,89:w,94:T,95:C,96:E,107:L},t(vt,yt,{86:[1,137],139:[1,134],140:[1,135],148:[1,136]}),t(et,[2,189],{127:[1,138]}),{24:139,25:gt},{24:140,25:gt},t(et,[2,155]),{24:141,25:gt},{7:142,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,143],27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(bt,[2,100],{39:22,69:23,70:24,71:25,64:47,65:48,29:49,35:51,27:62,50:63,31:72,12:130,13:131,45:132,24:144,67:146,25:gt,28:i,30:r,32:s,33:o,36:a,37:c,40:h,41:l,42:u,43:p,44:d,82:b,86:[1,145],89:w,94:T,95:C,96:E,107:L}),{7:147,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,141,142,143,144,145,146,147],[2,50],{12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,9:18,10:19,45:21,39:22,69:23,70:24,71:25,56:28,67:36,130:37,109:39,113:40,115:41,64:47,65:48,29:49,35:51,27:62,50:63,118:69,31:72,8:122,7:148,11:n,28:i,30:r,32:s,33:o,36:a,37:c,40:h,41:l,42:u,43:p,44:d,51:f,52:m,53:g,57:v,58:y,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,114:D,125:A,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V}),t(et,[2,51]),t(vt,[2,77]),t(vt,[2,78]),t(ht,[2,32]),t(ht,[2,33]),t(ht,[2,34]),t(ht,[2,35]),t(ht,[2,36]),t(ht,[2,37]),t(ht,[2,38]),{4:149,5:3,7:4,8:5,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,150],27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:151,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:kt,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,63:wt,64:47,65:48,66:156,67:36,69:23,70:24,71:25,82:b,85:k,89:w,93:153,94:T,95:C,96:E,97:Tt,100:154,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(ht,[2,116]),t(ht,[2,117],{27:158,28:i}),{25:[2,54]},{25:[2,55]},t(Ct,[2,72]),t(Ct,[2,75]),{7:159,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:160,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:161,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:163,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:162,25:gt,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{27:168,28:i,50:169,64:170,65:171,70:164,82:b,95:ft,96:E,120:165,121:[1,166],122:167},{119:172,123:[1,173],124:[1,174]},t([6,25,60,84],Et,{31:72,83:175,47:176,48:177,10:178,27:179,29:180,50:181,28:i,30:r,32:s,33:o,52:m,95:ft}),t(Ft,[2,26]),t(Ft,[2,27]),t(ht,[2,30]),{12:130,13:182,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:132,50:63,64:47,65:48,67:183,69:23,70:24,71:25,82:b,89:w,94:T,95:C,96:E,107:L},t(Nt,[2,25]),t(Ft,[2,28]),{4:184,5:3,7:4,8:5,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(U,[2,5],{7:4,8:5,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,9:18,10:19,45:21,39:22,69:23,70:24,71:25,56:28,67:36,130:37,109:39,113:40,115:41,64:47,65:48,29:49,35:51,27:62,50:63,118:69,31:72,5:185,11:n,28:i,30:r,32:s,33:o,36:a,37:c,40:h,41:l,42:u,43:p,44:d,51:f,52:m,53:g,57:v,58:y,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,110:x,112:S,114:D,116:R,125:A,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V}),t(et,[2,204]),{7:186,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:187,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:188,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:189,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:190,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:191,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:192,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:193,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:194,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(et,[2,154]),t(et,[2,159]),{7:195,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(et,[2,153]),t(et,[2,158]),{88:196,91:ut},t(Ct,[2,73]),{91:[2,113]},{27:197,28:i},{27:198,28:i},t(Ct,[2,88],{27:199,28:i}),{27:200,28:i},t(Ct,[2,89]),{7:202,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,63:Lt,64:47,65:48,67:36,69:23,70:24,71:25,78:201,81:203,82:b,85:k,89:w,94:T,95:C,96:E,98:204,99:xt,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{76:207,77:st,80:ot},{88:208,91:ut},t(Ct,[2,74]),{6:[1,210],7:209,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,211],27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(St,[2,111]),{7:214,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:kt,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,63:wt,64:47,65:48,66:156,67:36,69:23,70:24,71:25,82:b,85:k,89:w,92:[1,212],93:213,94:T,95:C,96:E,100:154,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t([6,25],Dt,{59:217,55:[1,215],60:Rt}),t(At,[2,59]),t(At,[2,63],{46:[1,219],63:[1,218]}),t(At,[2,66]),t(It,[2,67]),t(It,[2,68]),t(It,[2,69]),t(It,[2,70]),{27:158,28:i},{7:214,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:kt,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,63:wt,64:47,65:48,66:156,67:36,69:23,70:24,71:25,82:b,85:k,89:w,93:153,94:T,95:C,96:E,97:Tt,100:154,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(et,[2,53]),{4:221,5:3,7:4,8:5,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,26:[1,220],27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,135,136,142,143,144,145,146,147],[2,193],{118:69,109:89,115:90,141:X}),{109:92,110:x,112:S,115:93,116:R,118:69,132:Z},t(_t,[2,194],{118:69,109:89,115:90,141:X,143:Y}),t(_t,[2,195],{118:69,109:89,115:90,141:X,143:Y}),t(_t,[2,196],{118:69,109:89,115:90,141:X,143:Y}),t(et,[2,197],{118:69,109:92,115:93}),t(Ot,[2,198],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),{7:222,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(et,[2,200],{72:yt,73:yt,74:yt,75:yt,77:yt,80:yt,90:yt,91:yt}),{68:95,72:tt,73:nt,74:it,75:rt,76:101,77:st,80:ot,87:94,90:at,91:ct},{68:105,72:tt,73:nt,74:it,75:rt,76:101,77:st,80:ot,87:104,90:at,91:ct},t($t,lt),t(et,[2,201],{72:yt,73:yt,74:yt,75:yt,77:yt,80:yt,90:yt,91:yt}),t(et,[2,202]),t(et,[2,203]),{6:[1,225],7:223,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,224],27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:226,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{24:227,25:gt,131:[1,228]},t(et,[2,138],{103:229,104:[1,230],105:[1,231]}),t(et,[2,152]),t(et,[2,160]),{25:[1,232],109:89,110:x,112:S,115:90,116:R,118:69,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q},{126:233,128:234,129:jt},t(et,[2,101]),{7:236,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(bt,[2,104],{24:237,25:gt,72:yt,73:yt,74:yt,75:yt,77:yt,80:yt,90:yt,91:yt,86:[1,238]}),t(Ot,[2,145],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Ot,[2,49],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),{6:P,108:[1,239]},{4:240,5:3,7:4,8:5,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t([6,25,60,97],Mt,{118:69,109:89,115:90,98:241,63:[1,242],99:xt,110:x,112:S,116:R,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Bt,[2,119]),t([6,25,97],Dt,{59:243,60:Vt}),t(Pt,[2,128]),{7:214,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:kt,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,63:wt,64:47,65:48,66:156,67:36,69:23,70:24,71:25,82:b,85:k,89:w,93:245,94:T,95:C,96:E,100:154,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(Pt,[2,134]),t(Pt,[2,135]),t(Nt,[2,118]),{24:246,25:gt,109:89,110:x,112:S,115:90,116:R,118:69,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q},t(Ut,[2,148],{118:69,109:89,115:90,110:x,111:[1,247],112:S,116:R,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Ut,[2,150],{118:69,109:89,115:90,110:x,111:[1,248],112:S,116:R,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(et,[2,156]),t(Gt,[2,157],{118:69,109:89,115:90,110:x,112:S,116:R,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,132,135,136,141,142,143,144,145,146,147],[2,161],{117:[1,249]}),t(Ht,[2,164]),{27:168,28:i,50:169,64:170,65:171,82:b,95:ft,96:mt,120:250,122:167},t(Ht,[2,170],{60:[1,251]}),t(qt,[2,166]),t(qt,[2,167]),t(qt,[2,168]),t(qt,[2,169]),t(et,[2,163]),{7:252,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:253,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t([6,25,84],Dt,{59:254,60:Xt}),t(Wt,[2,96]),t(Wt,[2,42],{49:[1,256]}),t(Wt,[2,45]),t(Yt,[2,46]),t(Yt,[2,47]),t(Yt,[2,48]),{38:[1,257],68:105,72:tt,73:nt,74:it,75:rt,76:101,77:st,80:ot,87:104,90:at,91:ct},t($t,yt),{6:P,34:[1,258]},t(U,[2,4]),t(Kt,[2,205],{118:69,109:89,115:90,141:X,142:W,143:Y}),t(Kt,[2,206],{118:69,109:89,115:90,141:X,142:W,143:Y}),t(_t,[2,207],{118:69,109:89,115:90,141:X,143:Y}),t(_t,[2,208],{118:69,109:89,115:90,141:X,143:Y}),t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,144,145,146,147],[2,209],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y}),t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,145,146],[2,210],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,147:Q}),t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,146],[2,211],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,147:Q}),t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,145,146,147],[2,212],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K}),t(Gt,[2,192],{118:69,109:89,115:90,110:x,112:S,116:R,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Gt,[2,191],{118:69,109:89,115:90,110:x,112:S,116:R,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(St,[2,108]),t(Ct,[2,84]),t(Ct,[2,85]),t(Ct,[2,86]),t(Ct,[2,87]),{79:[1,259]},{63:Lt,79:[2,92],98:260,99:xt,109:89,110:x,112:S,115:90,116:R,118:69,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q},{79:[2,93]},{7:261,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,79:[2,127],82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(zt,[2,121]),t(zt,Jt),t(Ct,[2,91]),t(St,[2,109]),t(Ot,[2,39],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),{7:262,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:263,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(St,[2,114]),t([6,25,92],Dt,{59:264,60:Vt}),t(Pt,Mt,{118:69,109:89,115:90,63:[1,265],110:x,112:S,116:R,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),{56:266,57:v,58:y},t(Qt,Zt,{62:111,27:113,50:114,64:115,65:116,61:267,28:i,63:dt,82:b,95:ft,96:mt}),{6:en,25:tn},t(At,[2,64]),{7:270,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(nn,[2,23]),{6:P,26:[1,271]},t(Ot,[2,199],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Ot,[2,213],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),{7:272,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:273,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(Ot,[2,216],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(et,[2,190]),{7:274,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(et,[2,139],{104:[1,275]}),{24:276,25:gt},{24:279,25:gt,27:277,28:i,65:278,82:b},{126:280,128:234,129:jt},{26:[1,281],127:[1,282],128:283,129:jt},t(rn,[2,183]),{7:285,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,101:284,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(sn,[2,102],{118:69,109:89,115:90,24:286,25:gt,110:x,112:S,116:R,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(et,[2,105]),{7:287,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(ht,[2,146]),{6:P,26:[1,288]},{7:289,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t([11,28,30,32,33,36,37,40,41,42,43,44,51,52,53,57,58,82,85,89,94,95,96,102,106,107,110,112,114,116,125,131,133,134,135,136,137,139,140],Jt,{6:on,25:on,60:on,97:on}),{6:an,25:cn,97:[1,290]},t([6,25,26,92,97],Zt,{12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,9:18,10:19,45:21,39:22,69:23,70:24,71:25,56:28,67:36,130:37,109:39,113:40,115:41,64:47,65:48,29:49,35:51,27:62,50:63,118:69,31:72,8:122,66:156,7:214,100:293,11:n,28:i,30:r,32:s,33:o,36:a,37:c,40:h,41:l,42:u,43:p,44:d,51:f,52:m,53:g,57:v,58:y,63:wt,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,110:x,112:S,114:D,116:R,125:A,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V}),t(Qt,Dt,{59:294,60:Vt}),t(hn,[2,187]),{7:295,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:296,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:297,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(Ht,[2,165]),{27:168,28:i,50:169,64:170,65:171,82:b,95:ft,96:mt,122:298},t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,112,116,132],[2,172],{118:69,109:89,115:90,111:[1,299],117:[1,300],135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(ln,[2,173],{118:69,109:89,115:90,111:[1,301],135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),{6:un,25:pn,84:[1,302]},t([6,25,26,84],Zt,{31:72,48:177,10:178,27:179,29:180,50:181,47:305,28:i,30:r,32:s,33:o,52:m,95:ft}),{7:306,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,307],27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(ht,[2,31]),t(Ft,[2,29]),t(Ct,[2,90]),{7:308,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,79:[2,125],82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{79:[2,126],109:89,110:x,112:S,115:90,116:R,118:69,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q},t(Ot,[2,40],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),{26:[1,309],109:89,110:x,112:S,115:90,116:R,118:69,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q},{6:an,25:cn,92:[1,310]},t(Pt,on),{24:311,25:gt},t(At,[2,60]),{27:113,28:i,50:114,61:312,62:111,63:dt,64:115,65:116,82:b,95:ft,96:mt},t(dn,pt,{61:110,62:111,27:113,50:114,64:115,65:116,54:313,28:i,63:dt,82:b,95:ft,96:mt}),t(At,[2,65],{118:69,109:89,115:90,110:x,112:S,116:R,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(nn,[2,24]),{26:[1,314],109:89,110:x,112:S,115:90,116:R,118:69,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q},t(Ot,[2,215],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),{24:315,25:gt,109:89,110:x,112:S,115:90,116:R,118:69,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q},{24:316,25:gt},t(et,[2,140]),{24:317,25:gt},{24:318,25:gt},t(fn,[2,144]),{26:[1,319],127:[1,320],128:283,129:jt},t(et,[2,181]),{24:321,25:gt},t(rn,[2,184]),{24:322,25:gt,60:[1,323]},t(mn,[2,136],{118:69,109:89,115:90,110:x,112:S,116:R,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(et,[2,103]),t(sn,[2,106],{118:69,109:89,115:90,24:324,25:gt,110:x,112:S,116:R,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),{108:[1,325]},{97:[1,326],109:89,110:x,112:S,115:90,116:R,118:69,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q},t(Bt,[2,120]),{7:214,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,63:wt,64:47,65:48,66:156,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,100:327,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:214,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:kt,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,63:wt,64:47,65:48,66:156,67:36,69:23,70:24,71:25,82:b,85:k,89:w,93:328,94:T,95:C,96:E,100:154,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(Pt,[2,129]),{6:an,25:cn,26:[1,329]},t(Gt,[2,149],{118:69,109:89,115:90,110:x,112:S,116:R,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Gt,[2,151],{118:69,109:89,115:90,110:x,112:S,116:R,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Gt,[2,162],{118:69,109:89,115:90,110:x,112:S,116:R,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Ht,[2,171]),{7:330,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:331,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:332,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(Bt,[2,94]),{10:178,27:179,28:i,29:180,30:r,31:72,32:s,33:o,47:333,48:177,50:181,52:m,95:ft},t(dn,Et,{31:72,47:176,48:177,10:178,27:179,29:180,50:181,83:334,28:i,30:r,32:s,33:o,52:m,95:ft}),t(Wt,[2,97]),t(Wt,[2,43],{118:69,109:89,115:90,110:x,112:S,116:R,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),{7:335,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{79:[2,124],109:89,110:x,112:S,115:90,116:R,118:69,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q},t(et,[2,41]),t(St,[2,115]),t(et,[2,52]),t(At,[2,61]),t(Qt,Dt,{59:336,60:Rt}),t(et,[2,214]),t(hn,[2,188]),t(et,[2,141]),t(fn,[2,142]),t(fn,[2,143]),t(et,[2,179]),{24:337,25:gt},{26:[1,338]},t(rn,[2,185],{6:[1,339]}),{7:340,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(et,[2,107]),t(ht,[2,147]),t(ht,[2,123]),t(Pt,[2,130]),t(Qt,Dt,{59:341,60:Vt}),t(Pt,[2,131]),t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,132],[2,174],{118:69,109:89,115:90,117:[1,342],135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(ln,[2,176],{118:69,109:89,115:90,111:[1,343],135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Ot,[2,175],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Wt,[2,98]),t(Qt,Dt,{59:344,60:Xt}),{26:[1,345],109:89,110:x,112:S,115:90,116:R,118:69,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q},{6:en,25:tn,26:[1,346]},{26:[1,347]},t(et,[2,182]),t(rn,[2,186]),t(mn,[2,137],{118:69,109:89,115:90,110:x,112:S,116:R,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),{6:an,25:cn,26:[1,348]},{7:349,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:350,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{6:un,25:pn,26:[1,351]},t(Wt,[2,44]),t(At,[2,62]),t(et,[2,180]),t(Pt,[2,132]),t(Ot,[2,177],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Ot,[2,178],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Wt,[2,99])],defaultActions:{60:[2,54],61:[2,55],96:[2,113],203:[2,93]},parseError:function(e,t){if(!t.recoverable)throw Error(e); -this.trace(e)},parse:function(e){function t(){var e;return e=f.lex()||p,"number"!=typeof e&&(e=n.symbols_[e]||e),e}var n=this,i=[0],r=[null],s=[],o=this.table,a="",c=0,h=0,l=0,u=2,p=1,d=s.slice.call(arguments,1),f=Object.create(this.lexer),m={yy:{}};for(var g in this.yy)Object.prototype.hasOwnProperty.call(this.yy,g)&&(m.yy[g]=this.yy[g]);f.setInput(e,m.yy),m.yy.lexer=f,m.yy.parser=this,f.yylloc===void 0&&(f.yylloc={});var v=f.yylloc;s.push(v);var y=f.options&&f.options.ranges;this.parseError="function"==typeof m.yy.parseError?m.yy.parseError:Object.getPrototypeOf(this).parseError;for(var b,k,w,T,C,E,F,N,L,x={};;){if(w=i[i.length-1],this.defaultActions[w]?T=this.defaultActions[w]:((null===b||b===void 0)&&(b=t()),T=o[w]&&o[w][b]),T===void 0||!T.length||!T[0]){var S="";L=[];for(E in o[w])this.terminals_[E]&&E>u&&L.push("'"+this.terminals_[E]+"'");S=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+L.join(", ")+", got '"+(this.terminals_[b]||b)+"'":"Parse error on line "+(c+1)+": Unexpected "+(b==p?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(S,{text:f.match,token:this.terminals_[b]||b,line:f.yylineno,loc:v,expected:L})}if(T[0]instanceof Array&&T.length>1)throw Error("Parse Error: multiple actions possible at state: "+w+", token: "+b);switch(T[0]){case 1:i.push(b),r.push(f.yytext),s.push(f.yylloc),i.push(T[1]),b=null,k?(b=k,k=null):(h=f.yyleng,a=f.yytext,c=f.yylineno,v=f.yylloc,l>0&&l--);break;case 2:if(F=this.productions_[T[1]][1],x.$=r[r.length-F],x._$={first_line:s[s.length-(F||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(F||1)].first_column,last_column:s[s.length-1].last_column},y&&(x._$.range=[s[s.length-(F||1)].range[0],s[s.length-1].range[1]]),C=this.performAction.apply(x,[a,h,c,m.yy,T[1],r,s].concat(d)),C!==void 0)return C;F&&(i=i.slice(0,2*-1*F),r=r.slice(0,-1*F),s=s.slice(0,-1*F)),i.push(this.productions_[T[1]][0]),r.push(x.$),s.push(x._$),N=o[i[i.length-2]][i[i.length-1]],i.push(N);break;case 3:return!0}}return!0}};return e.prototype=gn,gn.Parser=e,new e}();return require!==void 0&&e!==void 0&&(e.parser=n,e.Parser=n.Parser,e.parse=function(){return n.parse.apply(n,arguments)},e.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),process.exit(1));var n=require("fs").readFileSync(require("path").normalize(t[1]),"utf8");return e.parser.parse(n)},t!==void 0&&require.main===t&&e.main(process.argv.slice(1))),t.exports}(),require["./scope"]=function(){var e={},t={exports:e};return function(){var t,n=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1};e.Scope=t=function(){function e(e,t,n,i){var r,s;this.parent=e,this.expressions=t,this.method=n,this.referencedVars=i,this.variables=[{name:"arguments",type:"arguments"}],this.positions={},this.parent||(this.utilities={}),this.root=null!=(r=null!=(s=this.parent)?s.root:void 0)?r:this}return e.prototype.add=function(e,t,n){return this.shared&&!n?this.parent.add(e,t,n):Object.prototype.hasOwnProperty.call(this.positions,e)?this.variables[this.positions[e]].type=t:this.positions[e]=this.variables.push({name:e,type:t})-1},e.prototype.namedMethod=function(){var e;return(null!=(e=this.method)?e.name:void 0)||!this.parent?this.method:this.parent.namedMethod()},e.prototype.find=function(e){return this.check(e)?!0:(this.add(e,"var"),!1)},e.prototype.parameter=function(e){return this.shared&&this.parent.check(e,!0)?void 0:this.add(e,"param")},e.prototype.check=function(e){var t;return!!(this.type(e)||(null!=(t=this.parent)?t.check(e):void 0))},e.prototype.temporary=function(e,t,n){return null==n&&(n=!1),n?(t+parseInt(e,36)).toString(36).replace(/\d/g,"a"):e+(t||"")},e.prototype.type=function(e){var t,n,i,r;for(i=this.variables,t=0,n=i.length;n>t;t++)if(r=i[t],r.name===e)return r.type;return null},e.prototype.freeVariable=function(e,t){var i,r,s;for(null==t&&(t={}),i=0;;){if(s=this.temporary(e,i,t.single),!(this.check(s)||n.call(this.root.referencedVars,s)>=0))break;i++}return(null!=(r=t.reserve)?r:!0)&&this.add(s,"var",!0),s},e.prototype.assign=function(e,t){return this.add(e,{value:t,assigned:!0},!0),this.hasAssignments=!0},e.prototype.hasDeclarations=function(){return!!this.declaredVariables().length},e.prototype.declaredVariables=function(){var e;return function(){var t,n,i,r;for(i=this.variables,r=[],t=0,n=i.length;n>t;t++)e=i[t],"var"===e.type&&r.push(e.name);return r}.call(this).sort()},e.prototype.assignedVariables=function(){var e,t,n,i,r;for(n=this.variables,i=[],e=0,t=n.length;t>e;e++)r=n[e],r.type.assigned&&i.push(r.name+" = "+r.type.value);return i},e}()}.call(this),t.exports}(),require["./nodes"]=function(){var e={},t={exports:e};return function(){var t,n,i,r,s,o,a,c,h,l,u,p,d,f,m,g,v,y,b,k,w,T,C,E,F,N,L,x,S,D,R,A,I,_,O,$,j,M,B,V,P,U,G,H,q,X,W,Y,K,z,J,Q,Z,et,tt,nt,it,rt,st,ot,at,ct,ht,lt,ut,pt,dt,ft,mt,gt,vt,yt,bt,kt=function(e,t){function n(){this.constructor=e}for(var i in t)wt.call(t,i)&&(e[i]=t[i]);return n.prototype=t.prototype,e.prototype=new n,e.__super__=t.prototype,e},wt={}.hasOwnProperty,Tt=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1},Ct=[].slice;Error.stackTraceLimit=1/0,P=require("./scope").Scope,dt=require("./lexer"),$=dt.RESERVED,V=dt.STRICT_PROSCRIBED,ft=require("./helpers"),et=ft.compact,rt=ft.flatten,it=ft.extend,lt=ft.merge,tt=ft.del,gt=ft.starts,nt=ft.ends,mt=ft.some,Z=ft.addLocationDataFn,ht=ft.locationDataToString,vt=ft.throwSyntaxError,e.extend=it,e.addLocationDataFn=Z,Q=function(){return!0},D=function(){return!1},X=function(){return this},S=function(){return this.negated=!this.negated,this},e.CodeFragment=h=function(){function e(e,t){var n;this.code=""+t,this.locationData=null!=e?e.locationData:void 0,this.type=(null!=e?null!=(n=e.constructor)?n.name:void 0:void 0)||"unknown"}return e.prototype.toString=function(){return""+this.code+(this.locationData?": "+ht(this.locationData):"")},e}(),st=function(e){var t;return function(){var n,i,r;for(r=[],n=0,i=e.length;i>n;n++)t=e[n],r.push(t.code);return r}().join("")},e.Base=r=function(){function e(){}return e.prototype.compile=function(e,t){return st(this.compileToFragments(e,t))},e.prototype.compileToFragments=function(e,t){var n;return e=it({},e),t&&(e.level=t),n=this.unfoldSoak(e)||this,n.tab=e.indent,e.level!==L&&n.isStatement(e)?n.compileClosure(e):n.compileNode(e)},e.prototype.compileClosure=function(e){var n,i,r,a,h,l,u;return(a=this.jumps())&&a.error("cannot use a pure statement in an expression"),e.sharedScope=!0,r=new c([],s.wrap([this])),n=[],((i=this.contains(at))||this.contains(ct))&&(n=[new x("this")],i?(h="apply",n.push(new x("arguments"))):h="call",r=new z(r,[new t(new x(h))])),l=new o(r,n).compileNode(e),(r.isGenerator||(null!=(u=r.base)?u.isGenerator:void 0))&&(l.unshift(this.makeCode("(yield* ")),l.push(this.makeCode(")"))),l},e.prototype.cache=function(e,t,n){var r,s,o;return r=null!=n?n(this):this.isComplex(),r?(s=new x(e.scope.freeVariable("ref")),o=new i(s,this),t?[o.compileToFragments(e,t),[this.makeCode(s.value)]]:[o,s]):(s=t?this.compileToFragments(e,t):this,[s,s])},e.prototype.cacheToCodeFragments=function(e){return[st(e[0]),st(e[1])]},e.prototype.makeReturn=function(e){var t;return t=this.unwrapAll(),e?new o(new x(e+".push"),[t]):new M(t)},e.prototype.contains=function(e){var t;return t=void 0,this.traverseChildren(!1,function(n){return e(n)?(t=n,!1):void 0}),t},e.prototype.lastNonComment=function(e){var t;for(t=e.length;t--;)if(!(e[t]instanceof l))return e[t];return null},e.prototype.toString=function(e,t){var n;return null==e&&(e=""),null==t&&(t=this.constructor.name),n="\n"+e+t,this.soak&&(n+="?"),this.eachChild(function(t){return n+=t.toString(e+q)}),n},e.prototype.eachChild=function(e){var t,n,i,r,s,o,a,c;if(!this.children)return this;for(a=this.children,i=0,s=a.length;s>i;i++)if(t=a[i],this[t])for(c=rt([this[t]]),r=0,o=c.length;o>r;r++)if(n=c[r],e(n)===!1)return this;return this},e.prototype.traverseChildren=function(e,t){return this.eachChild(function(n){var i;return i=t(n),i!==!1?n.traverseChildren(e,t):void 0})},e.prototype.invert=function(){return new I("!",this)},e.prototype.unwrapAll=function(){var e;for(e=this;e!==(e=e.unwrap()););return e},e.prototype.children=[],e.prototype.isStatement=D,e.prototype.jumps=D,e.prototype.isComplex=Q,e.prototype.isChainable=D,e.prototype.isAssignable=D,e.prototype.unwrap=X,e.prototype.unfoldSoak=D,e.prototype.assigns=D,e.prototype.updateLocationDataIfMissing=function(e){return this.locationData?this:(this.locationData=e,this.eachChild(function(t){return t.updateLocationDataIfMissing(e)}))},e.prototype.error=function(e){return vt(e,this.locationData)},e.prototype.makeCode=function(e){return new h(this,e)},e.prototype.wrapInBraces=function(e){return[].concat(this.makeCode("("),e,this.makeCode(")"))},e.prototype.joinFragmentArrays=function(e,t){var n,i,r,s,o;for(n=[],r=s=0,o=e.length;o>s;r=++s)i=e[r],r&&n.push(this.makeCode(t)),n=n.concat(i);return n},e}(),e.Block=s=function(e){function t(e){this.expressions=et(rt(e||[]))}return kt(t,e),t.prototype.children=["expressions"],t.prototype.push=function(e){return this.expressions.push(e),this},t.prototype.pop=function(){return this.expressions.pop()},t.prototype.unshift=function(e){return this.expressions.unshift(e),this},t.prototype.unwrap=function(){return 1===this.expressions.length?this.expressions[0]:this},t.prototype.isEmpty=function(){return!this.expressions.length},t.prototype.isStatement=function(e){var t,n,i,r;for(r=this.expressions,n=0,i=r.length;i>n;n++)if(t=r[n],t.isStatement(e))return!0;return!1},t.prototype.jumps=function(e){var t,n,i,r,s;for(s=this.expressions,n=0,r=s.length;r>n;n++)if(t=s[n],i=t.jumps(e))return i},t.prototype.makeReturn=function(e){var t,n;for(n=this.expressions.length;n--;)if(t=this.expressions[n],!(t instanceof l)){this.expressions[n]=t.makeReturn(e),t instanceof M&&!t.expression&&this.expressions.splice(n,1);break}return this},t.prototype.compileToFragments=function(e,n){return null==e&&(e={}),e.scope?t.__super__.compileToFragments.call(this,e,n):this.compileRoot(e)},t.prototype.compileNode=function(e){var n,i,r,s,o,a,c,h,l;for(this.tab=e.indent,l=e.level===L,i=[],h=this.expressions,s=o=0,a=h.length;a>o;s=++o)c=h[s],c=c.unwrapAll(),c=c.unfoldSoak(e)||c,c instanceof t?i.push(c.compileNode(e)):l?(c.front=!0,r=c.compileToFragments(e),c.isStatement(e)||(r.unshift(this.makeCode(""+this.tab)),r.push(this.makeCode(";"))),i.push(r)):i.push(c.compileToFragments(e,E));return l?this.spaced?[].concat(this.joinFragmentArrays(i,"\n\n"),this.makeCode("\n")):this.joinFragmentArrays(i,"\n"):(n=i.length?this.joinFragmentArrays(i,", "):[this.makeCode("void 0")],i.length>1&&e.level>=E?this.wrapInBraces(n):n)},t.prototype.compileRoot=function(e){var t,n,i,r,s,o,a,c,h,u,p;for(e.indent=e.bare?"":q,e.level=L,this.spaced=!0,e.scope=new P(null,this,null,null!=(h=e.referencedVars)?h:[]),u=e.locals||[],r=0,s=u.length;s>r;r++)o=u[r],e.scope.parameter(o);return a=[],e.bare||(c=function(){var e,n,r,s;for(r=this.expressions,s=[],i=e=0,n=r.length;n>e&&(t=r[i],t.unwrap()instanceof l);i=++e)s.push(t);return s}.call(this),p=this.expressions.slice(c.length),this.expressions=c,c.length&&(a=this.compileNode(lt(e,{indent:""})),a.push(this.makeCode("\n"))),this.expressions=p),n=this.compileWithDeclarations(e),e.bare?n:[].concat(a,this.makeCode("(function() {\n"),n,this.makeCode("\n}).call(this);\n"))},t.prototype.compileWithDeclarations=function(e){var t,n,i,r,s,o,a,c,h,u,p,d,f,m;for(r=[],c=[],h=this.expressions,s=o=0,a=h.length;a>o&&(i=h[s],i=i.unwrap(),i instanceof l||i instanceof x);s=++o);return e=lt(e,{level:L}),s&&(d=this.expressions.splice(s,9e9),u=[this.spaced,!1],m=u[0],this.spaced=u[1],p=[this.compileNode(e),m],r=p[0],this.spaced=p[1],this.expressions=d),c=this.compileNode(e),f=e.scope,f.expressions===this&&(n=e.scope.hasDeclarations(),t=f.hasAssignments,n||t?(s&&r.push(this.makeCode("\n")),r.push(this.makeCode(this.tab+"var ")),n&&r.push(this.makeCode(f.declaredVariables().join(", "))),t&&(n&&r.push(this.makeCode(",\n"+(this.tab+q))),r.push(this.makeCode(f.assignedVariables().join(",\n"+(this.tab+q))))),r.push(this.makeCode(";\n"+(this.spaced?"\n":"")))):r.length&&c.length&&r.push(this.makeCode("\n"))),r.concat(c)},t.wrap=function(e){return 1===e.length&&e[0]instanceof t?e[0]:new t(e)},t}(r),e.Literal=x=function(e){function t(e){this.value=e}return kt(t,e),t.prototype.makeReturn=function(){return this.isStatement()?this:t.__super__.makeReturn.apply(this,arguments)},t.prototype.isAssignable=function(){return g.test(this.value)},t.prototype.isStatement=function(){var e;return"break"===(e=this.value)||"continue"===e||"debugger"===e},t.prototype.isComplex=D,t.prototype.assigns=function(e){return e===this.value},t.prototype.jumps=function(e){return"break"!==this.value||(null!=e?e.loop:void 0)||(null!=e?e.block:void 0)?"continue"!==this.value||(null!=e?e.loop:void 0)?void 0:this:this},t.prototype.compileNode=function(e){var t,n,i;return n="this"===this.value?(null!=(i=e.scope.method)?i.bound:void 0)?e.scope.method.context:this.value:this.value.reserved?'"'+this.value+'"':this.value,t=this.isStatement()?""+this.tab+n+";":n,[this.makeCode(t)]},t.prototype.toString=function(){return' "'+this.value+'"'},t}(r),e.Undefined=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return kt(t,e),t.prototype.isAssignable=D,t.prototype.isComplex=D,t.prototype.compileNode=function(e){return[this.makeCode(e.level>=T?"(void 0)":"void 0")]},t}(r),e.Null=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return kt(t,e),t.prototype.isAssignable=D,t.prototype.isComplex=D,t.prototype.compileNode=function(){return[this.makeCode("null")]},t}(r),e.Bool=function(e){function t(e){this.val=e}return kt(t,e),t.prototype.isAssignable=D,t.prototype.isComplex=D,t.prototype.compileNode=function(){return[this.makeCode(this.val)]},t}(r),e.Return=M=function(e){function t(e){this.expression=e}return kt(t,e),t.prototype.children=["expression"],t.prototype.isStatement=Q,t.prototype.makeReturn=X,t.prototype.jumps=X,t.prototype.compileToFragments=function(e,n){var i,r;return i=null!=(r=this.expression)?r.makeReturn():void 0,!i||i instanceof t?t.__super__.compileToFragments.call(this,e,n):i.compileToFragments(e,n)},t.prototype.compileNode=function(e){var t,n,i;return t=[],n=null!=(i=this.expression)?"function"==typeof i.isYieldReturn?i.isYieldReturn():void 0:void 0,n||t.push(this.makeCode(this.tab+("return"+(this.expression?" ":"")))),this.expression&&(t=t.concat(this.expression.compileToFragments(e,N))),n||t.push(this.makeCode(";")),t},t}(r),e.Value=z=function(e){function t(e,n,i){return!n&&e instanceof t?e:(this.base=e,this.properties=n||[],i&&(this[i]=!0),this)}return kt(t,e),t.prototype.children=["base","properties"],t.prototype.add=function(e){return this.properties=this.properties.concat(e),this},t.prototype.hasProperties=function(){return!!this.properties.length},t.prototype.bareLiteral=function(e){return!this.properties.length&&this.base instanceof e},t.prototype.isArray=function(){return this.bareLiteral(n)},t.prototype.isRange=function(){return this.bareLiteral(j)},t.prototype.isComplex=function(){return this.hasProperties()||this.base.isComplex()},t.prototype.isAssignable=function(){return this.hasProperties()||this.base.isAssignable()},t.prototype.isSimpleNumber=function(){return this.bareLiteral(x)&&B.test(this.base.value)},t.prototype.isString=function(){return this.bareLiteral(x)&&y.test(this.base.value)},t.prototype.isRegex=function(){return this.bareLiteral(x)&&v.test(this.base.value)},t.prototype.isAtomic=function(){var e,t,n,i;for(i=this.properties.concat(this.base),e=0,t=i.length;t>e;e++)if(n=i[e],n.soak||n instanceof o)return!1;return!0},t.prototype.isNotCallable=function(){return this.isSimpleNumber()||this.isString()||this.isRegex()||this.isArray()||this.isRange()||this.isSplice()||this.isObject()},t.prototype.isStatement=function(e){return!this.properties.length&&this.base.isStatement(e)},t.prototype.assigns=function(e){return!this.properties.length&&this.base.assigns(e)},t.prototype.jumps=function(e){return!this.properties.length&&this.base.jumps(e)},t.prototype.isObject=function(e){return this.properties.length?!1:this.base instanceof A&&(!e||this.base.generated)},t.prototype.isSplice=function(){var e,t;return t=this.properties,e=t[t.length-1],e instanceof U},t.prototype.looksStatic=function(e){var t;return this.base.value===e&&1===this.properties.length&&"prototype"!==(null!=(t=this.properties[0].name)?t.value:void 0)},t.prototype.unwrap=function(){return this.properties.length?this:this.base},t.prototype.cacheReference=function(e){var n,r,s,o,a;return a=this.properties,s=a[a.length-1],2>this.properties.length&&!this.base.isComplex()&&!(null!=s?s.isComplex():void 0)?[this,this]:(n=new t(this.base,this.properties.slice(0,-1)),n.isComplex()&&(r=new x(e.scope.freeVariable("base")),n=new t(new O(new i(r,n)))),s?(s.isComplex()&&(o=new x(e.scope.freeVariable("name")),s=new w(new i(o,s.index)),o=new w(o)),[n.add(s),new t(r||n.base,[o||s])]):[n,r])},t.prototype.compileNode=function(e){var t,n,i,r,s;for(this.base.front=this.front,s=this.properties,t=this.base.compileToFragments(e,s.length?T:null),(this.base instanceof O||s.length)&&B.test(st(t))&&t.push(this.makeCode(".")),n=0,i=s.length;i>n;n++)r=s[n],t.push.apply(t,r.compileToFragments(e));return t},t.prototype.unfoldSoak=function(e){return null!=this.unfoldedSoak?this.unfoldedSoak:this.unfoldedSoak=function(n){return function(){var r,s,o,a,c,h,l,p,d,f;if(o=n.base.unfoldSoak(e))return(p=o.body.properties).push.apply(p,n.properties),o;for(d=n.properties,s=a=0,c=d.length;c>a;s=++a)if(h=d[s],h.soak)return h.soak=!1,r=new t(n.base,n.properties.slice(0,s)),f=new t(n.base,n.properties.slice(s)),r.isComplex()&&(l=new x(e.scope.freeVariable("ref")),r=new O(new i(l,r)),f.base=l),new b(new u(r),f,{soak:!0});return!1}}(this)()},t}(r),e.Comment=l=function(e){function t(e){this.comment=e}return kt(t,e),t.prototype.isStatement=Q,t.prototype.makeReturn=X,t.prototype.compileNode=function(e,t){var n,i;return i=this.comment.replace(/^(\s*)#(?=\s)/gm,"$1 *"),n="/*"+ut(i,this.tab)+(Tt.call(i,"\n")>=0?"\n"+this.tab:"")+" */",(t||e.level)===L&&(n=e.indent+n),[this.makeCode("\n"),this.makeCode(n)]},t}(r),e.Call=o=function(e){function n(e,t,n){this.args=null!=t?t:[],this.soak=n,this.isNew=!1,this.isSuper="super"===e,this.variable=this.isSuper?null:e,e instanceof z&&e.isNotCallable()&&e.error("literal is not a function")}return kt(n,e),n.prototype.children=["variable","args"],n.prototype.newInstance=function(){var e,t;return e=(null!=(t=this.variable)?t.base:void 0)||this.variable,e instanceof n&&!e.isNew?e.newInstance():this.isNew=!0,this},n.prototype.superReference=function(e){var n,r,s,o,a,c,h,l;return a=e.scope.namedMethod(),(null!=a?a.klass:void 0)?(o=a.klass,c=a.name,l=a.variable,o.isComplex()&&(s=new x(e.scope.parent.freeVariable("base")),r=new z(new O(new i(s,o))),l.base=r,l.properties.splice(0,o.properties.length)),(c.isComplex()||c instanceof w&&c.index.isAssignable())&&(h=new x(e.scope.parent.freeVariable("name")),c=new w(new i(h,c.index)),l.properties.pop(),l.properties.push(c)),n=[new t(new x("__super__"))],a["static"]&&n.push(new t(new x("constructor"))),n.push(null!=h?new w(h):c),new z(null!=s?s:o,n).compile(e)):(null!=a?a.ctor:void 0)?a.name+".__super__.constructor":this.error("cannot call super outside of an instance method.")},n.prototype.superThis=function(e){var t;return t=e.scope.method,t&&!t.klass&&t.context||"this"},n.prototype.unfoldSoak=function(e){var t,i,r,s,o,a,c,h,l;if(this.soak){if(this.variable){if(i=yt(e,this,"variable"))return i;c=new z(this.variable).cacheReference(e),s=c[0],l=c[1]}else s=new x(this.superReference(e)),l=new z(s);return l=new n(l,this.args),l.isNew=this.isNew,s=new x("typeof "+s.compile(e)+' === "function"'),new b(s,new z(l),{soak:!0})}for(t=this,a=[];;)if(t.variable instanceof n)a.push(t),t=t.variable;else{if(!(t.variable instanceof z))break;if(a.push(t),!((t=t.variable.base)instanceof n))break}for(h=a.reverse(),r=0,o=h.length;o>r;r++)t=h[r],i&&(t.variable instanceof n?t.variable=i:t.variable.base=i),i=yt(e,t,"variable");return i},n.prototype.compileNode=function(e){var t,n,i,r,s,o,a,c,h,l;if(null!=(h=this.variable)&&(h.front=this.front),r=G.compileSplattedArray(e,this.args,!0),r.length)return this.compileSplat(e,r);for(i=[],l=this.args,n=o=0,a=l.length;a>o;n=++o)t=l[n],n&&i.push(this.makeCode(", ")),i.push.apply(i,t.compileToFragments(e,E));return s=[],this.isSuper?(c=this.superReference(e)+(".call("+this.superThis(e)),i.length&&(c+=", "),s.push(this.makeCode(c))):(this.isNew&&s.push(this.makeCode("new ")),s.push.apply(s,this.variable.compileToFragments(e,T)),s.push(this.makeCode("("))),s.push.apply(s,i),s.push(this.makeCode(")")),s},n.prototype.compileSplat=function(e,t){var n,i,r,s,o,a;return this.isSuper?[].concat(this.makeCode(this.superReference(e)+".apply("+this.superThis(e)+", "),t,this.makeCode(")")):this.isNew?(s=this.tab+q,[].concat(this.makeCode("(function(func, args, ctor) {\n"+s+"ctor.prototype = func.prototype;\n"+s+"var child = new ctor, result = func.apply(child, args);\n"+s+"return Object(result) === result ? result : child;\n"+this.tab+"})("),this.variable.compileToFragments(e,E),this.makeCode(", "),t,this.makeCode(", function(){})"))):(n=[],i=new z(this.variable),(o=i.properties.pop())&&i.isComplex()?(a=e.scope.freeVariable("ref"),n=n.concat(this.makeCode("("+a+" = "),i.compileToFragments(e,E),this.makeCode(")"),o.compileToFragments(e))):(r=i.compileToFragments(e,T),B.test(st(r))&&(r=this.wrapInBraces(r)),o?(a=st(r),r.push.apply(r,o.compileToFragments(e))):a="null",n=n.concat(r)),n=n.concat(this.makeCode(".apply("+a+", "),t,this.makeCode(")")))},n}(r),e.Extends=d=function(e){function t(e,t){this.child=e,this.parent=t}return kt(t,e),t.prototype.children=["child","parent"],t.prototype.compileToFragments=function(e){return new o(new z(new x(bt("extend",e))),[this.child,this.parent]).compileToFragments(e)},t}(r),e.Access=t=function(e){function t(e,t){this.name=e,this.name.asKey=!0,this.soak="soak"===t}return kt(t,e),t.prototype.children=["name"],t.prototype.compileToFragments=function(e){var t;return t=this.name.compileToFragments(e),g.test(st(t))?t.unshift(this.makeCode(".")):(t.unshift(this.makeCode("[")),t.push(this.makeCode("]"))),t},t.prototype.isComplex=D,t}(r),e.Index=w=function(e){function t(e){this.index=e}return kt(t,e),t.prototype.children=["index"],t.prototype.compileToFragments=function(e){return[].concat(this.makeCode("["),this.index.compileToFragments(e,N),this.makeCode("]"))},t.prototype.isComplex=function(){return this.index.isComplex()},t}(r),e.Range=j=function(e){function t(e,t,n){this.from=e,this.to=t,this.exclusive="exclusive"===n,this.equals=this.exclusive?"":"="}return kt(t,e),t.prototype.children=["from","to"],t.prototype.compileVariables=function(e){var t,n,i,r,s,o;return e=lt(e,{top:!0}),t=tt(e,"isComplex"),n=this.cacheToCodeFragments(this.from.cache(e,E,t)),this.fromC=n[0],this.fromVar=n[1],i=this.cacheToCodeFragments(this.to.cache(e,E,t)),this.toC=i[0],this.toVar=i[1],(o=tt(e,"step"))&&(r=this.cacheToCodeFragments(o.cache(e,E,t)),this.step=r[0],this.stepVar=r[1]),s=[this.fromVar.match(R),this.toVar.match(R)],this.fromNum=s[0],this.toNum=s[1],this.stepVar?this.stepNum=this.stepVar.match(R):void 0},t.prototype.compileNode=function(e){var t,n,i,r,s,o,a,c,h,l,u,p,d,f;return this.fromVar||this.compileVariables(e),e.index?(a=this.fromNum&&this.toNum,s=tt(e,"index"),o=tt(e,"name"),h=o&&o!==s,f=s+" = "+this.fromC,this.toC!==this.toVar&&(f+=", "+this.toC),this.step!==this.stepVar&&(f+=", "+this.step),l=[s+" <"+this.equals,s+" >"+this.equals],c=l[0],r=l[1],n=this.stepNum?pt(this.stepNum[0])>0?c+" "+this.toVar:r+" "+this.toVar:a?(u=[pt(this.fromNum[0]),pt(this.toNum[0])],i=u[0],d=u[1],u,d>=i?c+" "+d:r+" "+d):(t=this.stepVar?this.stepVar+" > 0":this.fromVar+" <= "+this.toVar,t+" ? "+c+" "+this.toVar+" : "+r+" "+this.toVar),p=this.stepVar?s+" += "+this.stepVar:a?h?d>=i?"++"+s:"--"+s:d>=i?s+"++":s+"--":h?t+" ? ++"+s+" : --"+s:t+" ? "+s+"++ : "+s+"--",h&&(f=o+" = "+f),h&&(p=o+" = "+p),[this.makeCode(f+"; "+n+"; "+p)]):this.compileArray(e)},t.prototype.compileArray=function(e){var t,n,i,r,s,o,a,c,h,l,u,p,d;return this.fromNum&&this.toNum&&20>=Math.abs(this.fromNum-this.toNum)?(h=function(){p=[];for(var e=l=+this.fromNum,t=+this.toNum;t>=l?t>=e:e>=t;t>=l?e++:e--)p.push(e);return p}.apply(this),this.exclusive&&h.pop(),[this.makeCode("["+h.join(", ")+"]")]):(o=this.tab+q,s=e.scope.freeVariable("i",{single:!0}),u=e.scope.freeVariable("results"),c="\n"+o+u+" = [];",this.fromNum&&this.toNum?(e.index=s,n=st(this.compileNode(e))):(d=s+" = "+this.fromC+(this.toC!==this.toVar?", "+this.toC:""),i=this.fromVar+" <= "+this.toVar,n="var "+d+"; "+i+" ? "+s+" <"+this.equals+" "+this.toVar+" : "+s+" >"+this.equals+" "+this.toVar+"; "+i+" ? "+s+"++ : "+s+"--"),a="{ "+u+".push("+s+"); }\n"+o+"return "+u+";\n"+e.indent,r=function(e){return null!=e?e.contains(at):void 0},(r(this.from)||r(this.to))&&(t=", arguments"),[this.makeCode("(function() {"+c+"\n"+o+"for ("+n+")"+a+"}).apply(this"+(null!=t?t:"")+")")])},t}(r),e.Slice=U=function(e){function t(e){this.range=e,t.__super__.constructor.call(this)}return kt(t,e),t.prototype.children=["range"],t.prototype.compileNode=function(e){var t,n,i,r,s,o,a;return s=this.range,o=s.to,i=s.from,r=i&&i.compileToFragments(e,N)||[this.makeCode("0")],o&&(t=o.compileToFragments(e,N),n=st(t),(this.range.exclusive||-1!==+n)&&(a=", "+(this.range.exclusive?n:B.test(n)?""+(+n+1):(t=o.compileToFragments(e,T),"+"+st(t)+" + 1 || 9e9")))),[this.makeCode(".slice("+st(r)+(a||"")+")")]},t}(r),e.Obj=A=function(e){function n(e,t){this.generated=null!=t?t:!1,this.objects=this.properties=e||[]}return kt(n,e),n.prototype.children=["properties"],n.prototype.compileNode=function(e){var n,r,s,o,a,c,h,u,p,d,f,m,g,v,y,b,k,w,T,C,E;if(T=this.properties,this.generated)for(h=0,g=T.length;g>h;h++)b=T[h],b instanceof z&&b.error("cannot have an implicit value in an implicit object");for(r=p=0,v=T.length;v>p&&(w=T[r],!((w.variable||w).base instanceof O));r=++p);for(s=T.length>r,a=e.indent+=q,m=this.lastNonComment(this.properties),n=[],s&&(k=e.scope.freeVariable("obj"),n.push(this.makeCode("(\n"+a+k+" = "))),n.push(this.makeCode("{"+(0===T.length||0===r?"}":"\n"))),o=f=0,y=T.length;y>f;o=++f)w=T[o],o===r&&(0!==o&&n.push(this.makeCode("\n"+a+"}")),n.push(this.makeCode(",\n"))),u=o===T.length-1||o===r-1?"":w===m||w instanceof l?"\n":",\n",c=w instanceof l?"":a,s&&r>o&&(c+=q),w instanceof i&&w.variable instanceof z&&w.variable.hasProperties()&&w.variable.error("invalid object key"),w instanceof z&&w["this"]&&(w=new i(w.properties[0].name,w,"object")),w instanceof l||(r>o?(w instanceof i||(w=new i(w,w,"object")),(w.variable.base||w.variable).asKey=!0):(w instanceof i?(d=w.variable,E=w.value):(C=w.base.cache(e),d=C[0],E=C[1]),w=new i(new z(new x(k),[new t(d)]),E))),c&&n.push(this.makeCode(c)),n.push.apply(n,w.compileToFragments(e,L)),u&&n.push(this.makeCode(u));return s?n.push(this.makeCode(",\n"+a+k+"\n"+this.tab+")")):0!==T.length&&n.push(this.makeCode("\n"+this.tab+"}")),this.front&&!s?this.wrapInBraces(n):n},n.prototype.assigns=function(e){var t,n,i,r;for(r=this.properties,t=0,n=r.length;n>t;t++)if(i=r[t],i.assigns(e))return!0;return!1},n}(r),e.Arr=n=function(e){function t(e){this.objects=e||[]}return kt(t,e),t.prototype.children=["objects"],t.prototype.compileNode=function(e){var t,n,i,r,s,o,a;if(!this.objects.length)return[this.makeCode("[]")];if(e.indent+=q,t=G.compileSplattedArray(e,this.objects),t.length)return t;for(t=[],n=function(){var t,n,i,r;for(i=this.objects,r=[],t=0,n=i.length;n>t;t++)a=i[t],r.push(a.compileToFragments(e,E));return r}.call(this),r=s=0,o=n.length;o>s;r=++s)i=n[r],r&&t.push(this.makeCode(", ")),t.push.apply(t,i);return st(t).indexOf("\n")>=0?(t.unshift(this.makeCode("[\n"+e.indent)),t.push(this.makeCode("\n"+this.tab+"]"))):(t.unshift(this.makeCode("[")),t.push(this.makeCode("]"))),t},t.prototype.assigns=function(e){var t,n,i,r;for(r=this.objects,t=0,n=r.length;n>t;t++)if(i=r[t],i.assigns(e))return!0;return!1},t}(r),e.Class=a=function(e){function n(e,t,n){this.variable=e,this.parent=t,this.body=null!=n?n:new s,this.boundFuncs=[],this.body.classBody=!0}return kt(n,e),n.prototype.children=["variable","parent","body"],n.prototype.determineName=function(){var e,n,i;return this.variable?(n=this.variable.properties,i=n[n.length-1],e=i?i instanceof t&&i.name.value:this.variable.base.value,Tt.call(V,e)>=0&&this.variable.error("class variable name may not be "+e),e&&(e=g.test(e)&&e)):null},n.prototype.setContext=function(e){return this.body.traverseChildren(!1,function(t){return t.classBody?!1:t instanceof x&&"this"===t.value?t.value=e:t instanceof c&&t.bound?t.context=e:void 0})},n.prototype.addBoundFunctions=function(e){var n,i,r,s,o;for(o=this.boundFuncs,i=0,r=o.length;r>i;i++)n=o[i],s=new z(new x("this"),[new t(n)]).compile(e),this.ctor.body.unshift(new x(s+" = "+bt("bind",e)+"("+s+", this)"))},n.prototype.addProperties=function(e,n,r){var s,o,a,h,l,u;return u=e.base.properties.slice(0),h=function(){var e;for(e=[];o=u.shift();)o instanceof i&&(a=o.variable.base,delete o.context,l=o.value,"constructor"===a.value?(this.ctor&&o.error("cannot define more than one constructor in a class"),l.bound&&o.error("cannot define a constructor as a bound function"),l instanceof c?o=this.ctor=l:(this.externalCtor=r.classScope.freeVariable("class"),o=new i(new x(this.externalCtor),l))):o.variable["this"]?l["static"]=!0:(s=a.isComplex()?new w(a):new t(a),o.variable=new z(new x(n),[new t(new x("prototype")),s]),l instanceof c&&l.bound&&(this.boundFuncs.push(a),l.bound=!1))),e.push(o);return e}.call(this),et(h)},n.prototype.walkBody=function(e,t){return this.traverseChildren(!1,function(r){return function(o){var a,c,h,l,u,p,d;if(a=!0,o instanceof n)return!1;if(o instanceof s){for(d=c=o.expressions,h=l=0,u=d.length;u>l;h=++l)p=d[h],p instanceof i&&p.variable.looksStatic(e)?p.value["static"]=!0:p instanceof z&&p.isObject(!0)&&(a=!1,c[h]=r.addProperties(p,e,t));o.expressions=c=rt(c)}return a&&!(o instanceof n)}}(this))},n.prototype.hoistDirectivePrologue=function(){var e,t,n;for(t=0,e=this.body.expressions;(n=e[t])&&n instanceof l||n instanceof z&&n.isString();)++t;return this.directives=e.splice(0,t)},n.prototype.ensureConstructor=function(e){return this.ctor||(this.ctor=new c,this.externalCtor?this.ctor.body.push(new x(this.externalCtor+".apply(this, arguments)")):this.parent&&this.ctor.body.push(new x(e+".__super__.constructor.apply(this, arguments)")),this.ctor.body.makeReturn(),this.body.expressions.unshift(this.ctor)),this.ctor.ctor=this.ctor.name=e,this.ctor.klass=null,this.ctor.noReturn=!0},n.prototype.compileNode=function(e){var t,n,r,a,h,l,u,p,f;return(a=this.body.jumps())&&a.error("Class bodies cannot contain pure statements"),(n=this.body.contains(at))&&n.error("Class bodies shouldn't reference arguments"),u=this.determineName()||"_Class",u.reserved&&(u="_"+u),l=new x(u),r=new c([],s.wrap([this.body])),t=[],e.classScope=r.makeScope(e.scope),this.hoistDirectivePrologue(),this.setContext(u),this.walkBody(u,e),this.ensureConstructor(u),this.addBoundFunctions(e),this.body.spaced=!0,this.body.expressions.push(l),this.parent&&(f=new x(e.classScope.freeVariable("superClass",{reserve:!1})),this.body.expressions.unshift(new d(l,f)),r.params.push(new _(f)),t.push(this.parent)),(p=this.body.expressions).unshift.apply(p,this.directives),h=new O(new o(r,t)),this.variable&&(h=new i(this.variable,h)),h.compileToFragments(e)},n}(r),e.Assign=i=function(e){function n(e,t,n,i){var r,s,o;this.variable=e,this.value=t,this.context=n,this.param=i&&i.param,this.subpattern=i&&i.subpattern,o=s=this.variable.unwrapAll().value,r=Tt.call(V,o)>=0,r&&"object"!==this.context&&this.variable.error('variable name may not be "'+s+'"')}return kt(n,e),n.prototype.children=["variable","value"],n.prototype.isStatement=function(e){return(null!=e?e.level:void 0)===L&&null!=this.context&&Tt.call(this.context,"?")>=0 -},n.prototype.assigns=function(e){return this["object"===this.context?"value":"variable"].assigns(e)},n.prototype.unfoldSoak=function(e){return yt(e,this,"variable")},n.prototype.compileNode=function(e){var t,n,i,r,s,o,a,h,l,u,p,d,f,m;if(i=this.variable instanceof z){if(this.variable.isArray()||this.variable.isObject())return this.compilePatternMatch(e);if(this.variable.isSplice())return this.compileSplice(e);if("||="===(h=this.context)||"&&="===h||"?="===h)return this.compileConditional(e);if("**="===(l=this.context)||"//="===l||"%%="===l)return this.compileSpecialMath(e)}return this.value instanceof c&&(this.value["static"]?(this.value.klass=this.variable.base,this.value.name=this.variable.properties[0],this.value.variable=this.variable):(null!=(u=this.variable.properties)?u.length:void 0)>=2&&(p=this.variable.properties,o=p.length>=3?Ct.call(p,0,r=p.length-2):(r=0,[]),a=p[r++],s=p[r++],"prototype"===(null!=(d=a.name)?d.value:void 0)&&(this.value.klass=new z(this.variable.base,o),this.value.name=s,this.value.variable=this.variable))),this.context||(m=this.variable.unwrapAll(),m.isAssignable()||this.variable.error('"'+this.variable.compile(e)+'" cannot be assigned'),("function"==typeof m.hasProperties?m.hasProperties():void 0)||(this.param?e.scope.add(m.value,"var"):e.scope.find(m.value))),f=this.value.compileToFragments(e,E),n=this.variable.compileToFragments(e,E),"object"===this.context?n.concat(this.makeCode(": "),f):(t=n.concat(this.makeCode(" "+(this.context||"=")+" "),f),E>=e.level?t:this.wrapInBraces(t))},n.prototype.compilePatternMatch=function(e){var i,r,s,o,a,c,h,l,u,d,f,m,v,y,b,k,T,C,N,S,D,R,A,I,_,j,M,B;if(I=e.level===L,j=this.value,y=this.variable.base.objects,!(b=y.length))return s=j.compileToFragments(e),e.level>=F?this.wrapInBraces(s):s;if(l=this.variable.isObject(),I&&1===b&&!((v=y[0])instanceof G))return v instanceof n?(T=v,C=T.variable,h=C.base,v=T.value):h=l?v["this"]?v.properties[0].name:v:new x(0),i=g.test(h.unwrap().value||0),j=new z(j),j.properties.push(new(i?t:w)(h)),N=v.unwrap().value,Tt.call($,N)>=0&&v.error("assignment to a reserved word: "+v.compile(e)),new n(v,j,null,{param:this.param}).compileToFragments(e,L);for(M=j.compileToFragments(e,E),B=st(M),r=[],o=!1,(!g.test(B)||this.variable.assigns(B))&&(r.push([this.makeCode((k=e.scope.freeVariable("ref"))+" = ")].concat(Ct.call(M))),M=[this.makeCode(k)],B=k),c=d=0,f=y.length;f>d;c=++d){if(v=y[c],h=c,l&&(v instanceof n?(S=v,D=S.variable,h=D.base,v=S.value):v.base instanceof O?(R=new z(v.unwrapAll()).cacheReference(e),v=R[0],h=R[1]):h=v["this"]?v.properties[0].name:v),!o&&v instanceof G)m=v.name.unwrap().value,v=v.unwrap(),_=b+" <= "+B+".length ? "+bt("slice",e)+".call("+B+", "+c,(A=b-c-1)?(u=e.scope.freeVariable("i",{single:!0}),_+=", "+u+" = "+B+".length - "+A+") : ("+u+" = "+c+", [])"):_+=") : []",_=new x(_),o=u+"++";else{if(!o&&v instanceof p){(A=b-c-1)&&(1===A?o=B+".length - 1":(u=e.scope.freeVariable("i",{single:!0}),_=new x(u+" = "+B+".length - "+A),o=u+"++",r.push(_.compileToFragments(e,E))));continue}m=v.unwrap().value,(v instanceof G||v instanceof p)&&v.error("multiple splats/expansions are disallowed in an assignment"),"number"==typeof h?(h=new x(o||h),i=!1):i=l&&g.test(h.unwrap().value||0),_=new z(new x(B),[new(i?t:w)(h)])}null!=m&&Tt.call($,m)>=0&&v.error("assignment to a reserved word: "+v.compile(e)),r.push(new n(v,_,null,{param:this.param,subpattern:!0}).compileToFragments(e,E))}return I||this.subpattern||r.push(M),a=this.joinFragmentArrays(r,", "),E>e.level?a:this.wrapInBraces(a)},n.prototype.compileConditional=function(e){var t,i,r,s;return r=this.variable.cacheReference(e),i=r[0],s=r[1],!i.properties.length&&i.base instanceof x&&"this"!==i.base.value&&!e.scope.check(i.base.value)&&this.variable.error('the variable "'+i.base.value+"\" can't be assigned with "+this.context+" because it has not been declared before"),Tt.call(this.context,"?")>=0?(e.isExistentialEquals=!0,new b(new u(i),s,{type:"if"}).addElse(new n(s,this.value,"=")).compileToFragments(e)):(t=new I(this.context.slice(0,-1),i,new n(s,this.value,"=")).compileToFragments(e),E>=e.level?t:this.wrapInBraces(t))},n.prototype.compileSpecialMath=function(e){var t,i,r;return i=this.variable.cacheReference(e),t=i[0],r=i[1],new n(t,new I(this.context.slice(0,-1),r,this.value)).compileToFragments(e)},n.prototype.compileSplice=function(e){var t,n,i,r,s,o,a,c,h,l,u,p;return a=this.variable.properties.pop().range,i=a.from,l=a.to,n=a.exclusive,o=this.variable.compile(e),i?(c=this.cacheToCodeFragments(i.cache(e,F)),r=c[0],s=c[1]):r=s="0",l?i instanceof z&&i.isSimpleNumber()&&l instanceof z&&l.isSimpleNumber()?(l=l.compile(e)-s,n||(l+=1)):(l=l.compile(e,T)+" - "+s,n||(l+=" + 1")):l="9e9",h=this.value.cache(e,E),u=h[0],p=h[1],t=[].concat(this.makeCode("[].splice.apply("+o+", ["+r+", "+l+"].concat("),u,this.makeCode(")), "),p),e.level>L?this.wrapInBraces(t):t},n}(r),e.Code=c=function(e){function t(e,t,n){this.params=e||[],this.body=t||new s,this.bound="boundfunc"===n,this.isGenerator=!!this.body.contains(function(e){var t;return e instanceof I&&("yield"===(t=e.operator)||"yield*"===t)})}return kt(t,e),t.prototype.children=["params","body"],t.prototype.isStatement=function(){return!!this.ctor},t.prototype.jumps=D,t.prototype.makeScope=function(e){return new P(e,this.body,this)},t.prototype.compileNode=function(e){var r,a,c,h,l,u,d,f,m,g,v,y,k,w,C,E,F,N,L,S,D,R,A,O,$,j,M,B,V,P,U,G,H;if(this.bound&&(null!=(A=e.scope.method)?A.bound:void 0)&&(this.context=e.scope.method.context),this.bound&&!this.context)return this.context="_this",H=new t([new _(new x(this.context))],new s([this])),a=new o(H,[new x("this")]),a.updateLocationDataIfMissing(this.locationData),a.compileNode(e);for(e.scope=tt(e,"classScope")||this.makeScope(e.scope),e.scope.shared=tt(e,"sharedScope"),e.indent+=q,delete e.bare,delete e.isExistentialEquals,L=[],h=[],O=this.params,u=0,m=O.length;m>u;u++)N=O[u],N instanceof p||e.scope.parameter(N.asReference(e));for($=this.params,d=0,g=$.length;g>d;d++)if(N=$[d],N.splat||N instanceof p){for(j=this.params,f=0,v=j.length;v>f;f++)F=j[f],F instanceof p||!F.name.value||e.scope.add(F.name.value,"var",!0);V=new i(new z(new n(function(){var t,n,i,r;for(i=this.params,r=[],n=0,t=i.length;t>n;n++)F=i[n],r.push(F.asReference(e));return r}.call(this))),new z(new x("arguments")));break}for(M=this.params,E=0,y=M.length;y>E;E++)N=M[E],N.isComplex()?(U=R=N.asReference(e),N.value&&(U=new I("?",R,N.value)),h.push(new i(new z(N.name),U,"=",{param:!0}))):(R=N,N.value&&(C=new x(R.name.value+" == null"),U=new i(new z(N.name),N.value,"="),h.push(new b(C,U)))),V||L.push(R);for(G=this.body.isEmpty(),V&&h.unshift(V),h.length&&(B=this.body.expressions).unshift.apply(B,h),l=S=0,k=L.length;k>S;l=++S)F=L[l],L[l]=F.compileToFragments(e),e.scope.parameter(st(L[l]));for(P=[],this.eachParamName(function(e,t){return Tt.call(P,e)>=0&&t.error("multiple parameters named "+e),P.push(e)}),G||this.noReturn||this.body.makeReturn(),c="function",this.isGenerator&&(c+="*"),this.ctor&&(c+=" "+this.name),c+="(",r=[this.makeCode(c)],l=D=0,w=L.length;w>D;l=++D)F=L[l],l&&r.push(this.makeCode(", ")),r.push.apply(r,F);return r.push(this.makeCode(") {")),this.body.isEmpty()||(r=r.concat(this.makeCode("\n"),this.body.compileWithDeclarations(e),this.makeCode("\n"+this.tab))),r.push(this.makeCode("}")),this.ctor?[this.makeCode(this.tab)].concat(Ct.call(r)):this.front||e.level>=T?this.wrapInBraces(r):r},t.prototype.eachParamName=function(e){var t,n,i,r,s;for(r=this.params,s=[],t=0,n=r.length;n>t;t++)i=r[t],s.push(i.eachName(e));return s},t.prototype.traverseChildren=function(e,n){return e?t.__super__.traverseChildren.call(this,e,n):void 0},t}(r),e.Param=_=function(e){function t(e,t,n){var i,r;this.name=e,this.value=t,this.splat=n,r=i=this.name.unwrapAll().value,Tt.call(V,r)>=0&&this.name.error('parameter name "'+i+'" is not allowed')}return kt(t,e),t.prototype.children=["name","value"],t.prototype.compileToFragments=function(e){return this.name.compileToFragments(e,E)},t.prototype.asReference=function(e){var t,n;return this.reference?this.reference:(n=this.name,n["this"]?(t=n.properties[0].name.value,t.reserved&&(t="_"+t),n=new x(e.scope.freeVariable(t))):n.isComplex()&&(n=new x(e.scope.freeVariable("arg"))),n=new z(n),this.splat&&(n=new G(n)),n.updateLocationDataIfMissing(this.locationData),this.reference=n)},t.prototype.isComplex=function(){return this.name.isComplex()},t.prototype.eachName=function(e,t){var n,r,s,o,a,c;if(null==t&&(t=this.name),n=function(t){return e("@"+t.properties[0].name.value,t)},t instanceof x)return e(t.value,t);if(t instanceof z)return n(t);for(c=t.objects,r=0,s=c.length;s>r;r++)a=c[r],a instanceof i?this.eachName(e,a.value.unwrap()):a instanceof G?(o=a.name.unwrap(),e(o.value,o)):a instanceof z?a.isArray()||a.isObject()?this.eachName(e,a.base):a["this"]?n(a):e(a.base.value,a.base):a instanceof p||a.error("illegal parameter "+a.compile())},t}(r),e.Splat=G=function(e){function t(e){this.name=e.compile?e:new x(e)}return kt(t,e),t.prototype.children=["name"],t.prototype.isAssignable=Q,t.prototype.assigns=function(e){return this.name.assigns(e)},t.prototype.compileToFragments=function(e){return this.name.compileToFragments(e)},t.prototype.unwrap=function(){return this.name},t.compileSplattedArray=function(e,n,i){var r,s,o,a,c,h,l,u,p,d,f;for(l=-1;(f=n[++l])&&!(f instanceof t););if(l>=n.length)return[];if(1===n.length)return f=n[0],c=f.compileToFragments(e,E),i?c:[].concat(f.makeCode(bt("slice",e)+".call("),c,f.makeCode(")"));for(r=n.slice(l),h=u=0,d=r.length;d>u;h=++u)f=r[h],o=f.compileToFragments(e,E),r[h]=f instanceof t?[].concat(f.makeCode(bt("slice",e)+".call("),o,f.makeCode(")")):[].concat(f.makeCode("["),o,f.makeCode("]"));return 0===l?(f=n[0],a=f.joinFragmentArrays(r.slice(1),", "),r[0].concat(f.makeCode(".concat("),a,f.makeCode(")"))):(s=function(){var t,i,r,s;for(r=n.slice(0,l),s=[],t=0,i=r.length;i>t;t++)f=r[t],s.push(f.compileToFragments(e,E));return s}(),s=n[0].joinFragmentArrays(s,", "),a=n[l].joinFragmentArrays(r,", "),p=n[n.length-1],[].concat(n[0].makeCode("["),s,n[l].makeCode("].concat("),a,p.makeCode(")")))},t}(r),e.Expansion=p=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return kt(t,e),t.prototype.isComplex=D,t.prototype.compileNode=function(){return this.error("Expansion must be used inside a destructuring assignment or parameter list")},t.prototype.asReference=function(){return this},t.prototype.eachName=function(){},t}(r),e.While=J=function(e){function t(e,t){this.condition=(null!=t?t.invert:void 0)?e.invert():e,this.guard=null!=t?t.guard:void 0}return kt(t,e),t.prototype.children=["condition","guard","body"],t.prototype.isStatement=Q,t.prototype.makeReturn=function(e){return e?t.__super__.makeReturn.apply(this,arguments):(this.returns=!this.jumps({loop:!0}),this)},t.prototype.addBody=function(e){return this.body=e,this},t.prototype.jumps=function(){var e,t,n,i,r;if(e=this.body.expressions,!e.length)return!1;for(t=0,i=e.length;i>t;t++)if(r=e[t],n=r.jumps({loop:!0}))return n;return!1},t.prototype.compileNode=function(e){var t,n,i,r;return e.indent+=q,r="",n=this.body,n.isEmpty()?n=this.makeCode(""):(this.returns&&(n.makeReturn(i=e.scope.freeVariable("results")),r=""+this.tab+i+" = [];\n"),this.guard&&(n.expressions.length>1?n.expressions.unshift(new b(new O(this.guard).invert(),new x("continue"))):this.guard&&(n=s.wrap([new b(this.guard,n)]))),n=[].concat(this.makeCode("\n"),n.compileToFragments(e,L),this.makeCode("\n"+this.tab))),t=[].concat(this.makeCode(r+this.tab+"while ("),this.condition.compileToFragments(e,N),this.makeCode(") {"),n,this.makeCode("}")),this.returns&&t.push(this.makeCode("\n"+this.tab+"return "+i+";")),t},t}(r),e.Op=I=function(e){function n(e,t,n,i){if("in"===e)return new k(t,n);if("do"===e)return this.generateDo(t);if("new"===e){if(t instanceof o&&!t["do"]&&!t.isNew)return t.newInstance();(t instanceof c&&t.bound||t["do"])&&(t=new O(t))}return this.operator=r[e]||e,this.first=t,this.second=n,this.flip=!!i,this}var r,s;return kt(n,e),r={"==":"===","!=":"!==",of:"in",yieldfrom:"yield*"},s={"!==":"===","===":"!=="},n.prototype.children=["first","second"],n.prototype.isSimpleNumber=D,n.prototype.isYield=function(){var e;return"yield"===(e=this.operator)||"yield*"===e},n.prototype.isYieldReturn=function(){return this.isYield()&&this.first instanceof M},n.prototype.isUnary=function(){return!this.second},n.prototype.isComplex=function(){var e;return!(this.isUnary()&&("+"===(e=this.operator)||"-"===e)&&this.first instanceof z&&this.first.isSimpleNumber())},n.prototype.isChainable=function(){var e;return"<"===(e=this.operator)||">"===e||">="===e||"<="===e||"==="===e||"!=="===e},n.prototype.invert=function(){var e,t,i,r,o;if(this.isChainable()&&this.first.isChainable()){for(e=!0,t=this;t&&t.operator;)e&&(e=t.operator in s),t=t.first;if(!e)return new O(this).invert();for(t=this;t&&t.operator;)t.invert=!t.invert,t.operator=s[t.operator],t=t.first;return this}return(r=s[this.operator])?(this.operator=r,this.first.unwrap()instanceof n&&this.first.invert(),this):this.second?new O(this).invert():"!"===this.operator&&(i=this.first.unwrap())instanceof n&&("!"===(o=i.operator)||"in"===o||"instanceof"===o)?i:new n("!",this)},n.prototype.unfoldSoak=function(e){var t;return("++"===(t=this.operator)||"--"===t||"delete"===t)&&yt(e,this,"first")},n.prototype.generateDo=function(e){var t,n,r,s,a,h,l,u;for(h=[],n=e instanceof i&&(l=e.value.unwrap())instanceof c?l:e,u=n.params||[],r=0,s=u.length;s>r;r++)a=u[r],a.value?(h.push(a.value),delete a.value):h.push(a);return t=new o(e,h),t["do"]=!0,t},n.prototype.compileNode=function(e){var t,n,i,r,s,o;if(n=this.isChainable()&&this.first.isChainable(),n||(this.first.front=this.front),"delete"===this.operator&&e.scope.check(this.first.unwrapAll().value)&&this.error("delete operand may not be argument or var"),("--"===(r=this.operator)||"++"===r)&&(s=this.first.unwrapAll().value,Tt.call(V,s)>=0)&&this.error('cannot increment/decrement "'+this.first.unwrapAll().value+'"'),this.isYield())return this.compileYield(e);if(this.isUnary())return this.compileUnary(e);if(n)return this.compileChain(e);switch(this.operator){case"?":return this.compileExistence(e);case"**":return this.compilePower(e);case"//":return this.compileFloorDivision(e);case"%%":return this.compileModulo(e);default:return i=this.first.compileToFragments(e,F),o=this.second.compileToFragments(e,F),t=[].concat(i,this.makeCode(" "+this.operator+" "),o),F>=e.level?t:this.wrapInBraces(t)}},n.prototype.compileChain=function(e){var t,n,i,r;return i=this.first.second.cache(e),this.first.second=i[0],r=i[1],n=this.first.compileToFragments(e,F),t=n.concat(this.makeCode(" "+(this.invert?"&&":"||")+" "),r.compileToFragments(e),this.makeCode(" "+this.operator+" "),this.second.compileToFragments(e,F)),this.wrapInBraces(t)},n.prototype.compileExistence=function(e){var t,n;return this.first.isComplex()?(n=new x(e.scope.freeVariable("ref")),t=new O(new i(n,this.first))):(t=this.first,n=t),new b(new u(t),n,{type:"if"}).addElse(this.second).compileToFragments(e)},n.prototype.compileUnary=function(e){var t,i,r;return i=[],t=this.operator,i.push([this.makeCode(t)]),"!"===t&&this.first instanceof u?(this.first.negated=!this.first.negated,this.first.compileToFragments(e)):e.level>=T?new O(this).compileToFragments(e):(r="+"===t||"-"===t,("new"===t||"typeof"===t||"delete"===t||r&&this.first instanceof n&&this.first.operator===t)&&i.push([this.makeCode(" ")]),(r&&this.first instanceof n||"new"===t&&this.first.isStatement(e))&&(this.first=new O(this.first)),i.push(this.first.compileToFragments(e,F)),this.flip&&i.reverse(),this.joinFragmentArrays(i,""))},n.prototype.compileYield=function(e){var t,n;return n=[],t=this.operator,null==e.scope.parent&&this.error("yield statements must occur within a function generator."),Tt.call(Object.keys(this.first),"expression")>=0&&!(this.first instanceof W)?this.isYieldReturn()?n.push(this.first.compileToFragments(e,L)):null!=this.first.expression&&n.push(this.first.expression.compileToFragments(e,F)):(n.push([this.makeCode("("+t+" ")]),n.push(this.first.compileToFragments(e,F)),n.push([this.makeCode(")")])),this.joinFragmentArrays(n,"")},n.prototype.compilePower=function(e){var n;return n=new z(new x("Math"),[new t(new x("pow"))]),new o(n,[this.first,this.second]).compileToFragments(e)},n.prototype.compileFloorDivision=function(e){var i,r;return r=new z(new x("Math"),[new t(new x("floor"))]),i=new n("/",this.first,this.second),new o(r,[i]).compileToFragments(e)},n.prototype.compileModulo=function(e){var t;return t=new z(new x(bt("modulo",e))),new o(t,[this.first,this.second]).compileToFragments(e)},n.prototype.toString=function(e){return n.__super__.toString.call(this,e,this.constructor.name+" "+this.operator)},n}(r),e.In=k=function(e){function t(e,t){this.object=e,this.array=t}return kt(t,e),t.prototype.children=["object","array"],t.prototype.invert=S,t.prototype.compileNode=function(e){var t,n,i,r,s;if(this.array instanceof z&&this.array.isArray()&&this.array.base.objects.length){for(s=this.array.base.objects,n=0,i=s.length;i>n;n++)if(r=s[n],r instanceof G){t=!0;break}if(!t)return this.compileOrTest(e)}return this.compileLoopTest(e)},t.prototype.compileOrTest=function(e){var t,n,i,r,s,o,a,c,h,l,u,p;for(c=this.object.cache(e,F),u=c[0],a=c[1],h=this.negated?[" !== "," && "]:[" === "," || "],t=h[0],n=h[1],p=[],l=this.array.base.objects,i=s=0,o=l.length;o>s;i=++s)r=l[i],i&&p.push(this.makeCode(n)),p=p.concat(i?a:u,this.makeCode(t),r.compileToFragments(e,T));return F>e.level?p:this.wrapInBraces(p)},t.prototype.compileLoopTest=function(e){var t,n,i,r;return i=this.object.cache(e,E),r=i[0],n=i[1],t=[].concat(this.makeCode(bt("indexOf",e)+".call("),this.array.compileToFragments(e,E),this.makeCode(", "),n,this.makeCode(") "+(this.negated?"< 0":">= 0"))),st(r)===st(n)?t:(t=r.concat(this.makeCode(", "),t),E>e.level?t:this.wrapInBraces(t))},t.prototype.toString=function(e){return t.__super__.toString.call(this,e,this.constructor.name+(this.negated?"!":""))},t}(r),e.Try=Y=function(e){function t(e,t,n,i){this.attempt=e,this.errorVariable=t,this.recovery=n,this.ensure=i}return kt(t,e),t.prototype.children=["attempt","recovery","ensure"],t.prototype.isStatement=Q,t.prototype.jumps=function(e){var t;return this.attempt.jumps(e)||(null!=(t=this.recovery)?t.jumps(e):void 0)},t.prototype.makeReturn=function(e){return this.attempt&&(this.attempt=this.attempt.makeReturn(e)),this.recovery&&(this.recovery=this.recovery.makeReturn(e)),this},t.prototype.compileNode=function(e){var t,n,r,s;return e.indent+=q,s=this.attempt.compileToFragments(e,L),t=this.recovery?(r=new x("_error"),this.errorVariable?this.recovery.unshift(new i(this.errorVariable,r)):void 0,[].concat(this.makeCode(" catch ("),r.compileToFragments(e),this.makeCode(") {\n"),this.recovery.compileToFragments(e,L),this.makeCode("\n"+this.tab+"}"))):this.ensure||this.recovery?[]:[this.makeCode(" catch (_error) {}")],n=this.ensure?[].concat(this.makeCode(" finally {\n"),this.ensure.compileToFragments(e,L),this.makeCode("\n"+this.tab+"}")):[],[].concat(this.makeCode(this.tab+"try {\n"),s,this.makeCode("\n"+this.tab+"}"),t,n)},t}(r),e.Throw=W=function(e){function t(e){this.expression=e}return kt(t,e),t.prototype.children=["expression"],t.prototype.isStatement=Q,t.prototype.jumps=D,t.prototype.makeReturn=X,t.prototype.compileNode=function(e){return[].concat(this.makeCode(this.tab+"throw "),this.expression.compileToFragments(e),this.makeCode(";"))},t}(r),e.Existence=u=function(e){function t(e){this.expression=e}return kt(t,e),t.prototype.children=["expression"],t.prototype.invert=S,t.prototype.compileNode=function(e){var t,n,i,r;return this.expression.front=this.front,i=this.expression.compile(e,F),g.test(i)&&!e.scope.check(i)?(r=this.negated?["===","||"]:["!==","&&"],t=r[0],n=r[1],i="typeof "+i+" "+t+' "undefined" '+n+" "+i+" "+t+" null"):i=i+" "+(this.negated?"==":"!=")+" null",[this.makeCode(C>=e.level?i:"("+i+")")]},t}(r),e.Parens=O=function(e){function t(e){this.body=e}return kt(t,e),t.prototype.children=["body"],t.prototype.unwrap=function(){return this.body},t.prototype.isComplex=function(){return this.body.isComplex()},t.prototype.compileNode=function(e){var t,n,i;return n=this.body.unwrap(),n instanceof z&&n.isAtomic()?(n.front=this.front,n.compileToFragments(e)):(i=n.compileToFragments(e,N),t=F>e.level&&(n instanceof I||n instanceof o||n instanceof f&&n.returns),t?i:this.wrapInBraces(i))},t}(r),e.For=f=function(e){function t(e,t){var n;this.source=t.source,this.guard=t.guard,this.step=t.step,this.name=t.name,this.index=t.index,this.body=s.wrap([e]),this.own=!!t.own,this.object=!!t.object,this.object&&(n=[this.index,this.name],this.name=n[0],this.index=n[1]),this.index instanceof z&&this.index.error("index cannot be a pattern matching expression"),this.range=this.source instanceof z&&this.source.base instanceof j&&!this.source.properties.length,this.pattern=this.name instanceof z,this.range&&this.index&&this.index.error("indexes do not apply to range loops"),this.range&&this.pattern&&this.name.error("cannot pattern match over range loops"),this.own&&!this.object&&this.name.error("cannot use own with for-in"),this.returns=!1}return kt(t,e),t.prototype.children=["body","source","guard","step"],t.prototype.compileNode=function(e){var t,n,r,o,a,c,h,l,u,p,d,f,m,v,y,k,w,T,C,F,N,S,D,A,I,_,$,j,B,V,P,U,G,H;return t=s.wrap([this.body]),D=t.expressions,T=D[D.length-1],(null!=T?T.jumps():void 0)instanceof M&&(this.returns=!1),B=this.range?this.source.base:this.source,j=e.scope,this.pattern||(F=this.name&&this.name.compile(e,E)),v=this.index&&this.index.compile(e,E),F&&!this.pattern&&j.find(F),v&&j.find(v),this.returns&&($=j.freeVariable("results")),y=this.object&&v||j.freeVariable("i",{single:!0}),k=this.range&&F||v||y,w=k!==y?k+" = ":"",this.step&&!this.range&&(A=this.cacheToCodeFragments(this.step.cache(e,E,ot)),V=A[0],U=A[1],P=U.match(R)),this.pattern&&(F=y),H="",d="",h="",f=this.tab+q,this.range?p=B.compileToFragments(lt(e,{index:y,name:F,step:this.step,isComplex:ot})):(G=this.source.compile(e,E),!F&&!this.own||g.test(G)||(h+=""+this.tab+(S=j.freeVariable("ref"))+" = "+G+";\n",G=S),F&&!this.pattern&&(N=F+" = "+G+"["+k+"]"),this.object||(V!==U&&(h+=""+this.tab+V+";\n"),this.step&&P&&(u=0>pt(P[0]))||(C=j.freeVariable("len")),a=""+w+y+" = 0, "+C+" = "+G+".length",c=""+w+y+" = "+G+".length - 1",r=y+" < "+C,o=y+" >= 0",this.step?(P?u&&(r=o,a=c):(r=U+" > 0 ? "+r+" : "+o,a="("+U+" > 0 ? ("+a+") : "+c+")"),m=y+" += "+U):m=""+(k!==y?"++"+y:y+"++"),p=[this.makeCode(a+"; "+r+"; "+w+m)])),this.returns&&(I=""+this.tab+$+" = [];\n",_="\n"+this.tab+"return "+$+";",t.makeReturn($)),this.guard&&(t.expressions.length>1?t.expressions.unshift(new b(new O(this.guard).invert(),new x("continue"))):this.guard&&(t=s.wrap([new b(this.guard,t)]))),this.pattern&&t.expressions.unshift(new i(this.name,new x(G+"["+k+"]"))),l=[].concat(this.makeCode(h),this.pluckDirectCall(e,t)),N&&(H="\n"+f+N+";"),this.object&&(p=[this.makeCode(k+" in "+G)],this.own&&(d="\n"+f+"if (!"+bt("hasProp",e)+".call("+G+", "+k+")) continue;")),n=t.compileToFragments(lt(e,{indent:f}),L),n&&n.length>0&&(n=[].concat(this.makeCode("\n"),n,this.makeCode("\n"))),[].concat(l,this.makeCode(""+(I||"")+this.tab+"for ("),p,this.makeCode(") {"+d+H),n,this.makeCode(this.tab+"}"+(_||"")))},t.prototype.pluckDirectCall=function(e,t){var n,r,s,a,h,l,u,p,d,f,m,g,v,y,b,k;for(r=[],d=t.expressions,h=l=0,u=d.length;u>l;h=++l)s=d[h],s=s.unwrapAll(),s instanceof o&&(k=null!=(f=s.variable)?f.unwrapAll():void 0,(k instanceof c||k instanceof z&&(null!=(m=k.base)?m.unwrapAll():void 0)instanceof c&&1===k.properties.length&&("call"===(g=null!=(v=k.properties[0].name)?v.value:void 0)||"apply"===g))&&(a=(null!=(y=k.base)?y.unwrapAll():void 0)||k,p=new x(e.scope.freeVariable("fn")),n=new z(p),k.base&&(b=[n,k],k.base=b[0],n=b[1]),t.expressions[h]=new o(n,s.args),r=r.concat(this.makeCode(this.tab),new i(p,a).compileToFragments(e,L),this.makeCode(";\n"))));return r},t}(J),e.Switch=H=function(e){function t(e,t,n){this.subject=e,this.cases=t,this.otherwise=n}return kt(t,e),t.prototype.children=["subject","cases","otherwise"],t.prototype.isStatement=Q,t.prototype.jumps=function(e){var t,n,i,r,s,o,a,c;for(null==e&&(e={block:!0}),o=this.cases,i=0,s=o.length;s>i;i++)if(a=o[i],n=a[0],t=a[1],r=t.jumps(e))return r;return null!=(c=this.otherwise)?c.jumps(e):void 0},t.prototype.makeReturn=function(e){var t,n,i,r,o;for(r=this.cases,t=0,n=r.length;n>t;t++)i=r[t],i[1].makeReturn(e);return e&&(this.otherwise||(this.otherwise=new s([new x("void 0")]))),null!=(o=this.otherwise)&&o.makeReturn(e),this},t.prototype.compileNode=function(e){var t,n,i,r,s,o,a,c,h,l,u,p,d,f,m,g;for(c=e.indent+q,h=e.indent=c+q,o=[].concat(this.makeCode(this.tab+"switch ("),this.subject?this.subject.compileToFragments(e,N):this.makeCode("false"),this.makeCode(") {\n")),f=this.cases,a=l=0,p=f.length;p>l;a=++l){for(m=f[a],r=m[0],t=m[1],g=rt([r]),u=0,d=g.length;d>u;u++)i=g[u],this.subject||(i=i.invert()),o=o.concat(this.makeCode(c+"case "),i.compileToFragments(e,N),this.makeCode(":\n"));if((n=t.compileToFragments(e,L)).length>0&&(o=o.concat(n,this.makeCode("\n"))),a===this.cases.length-1&&!this.otherwise)break;s=this.lastNonComment(t.expressions),s instanceof M||s instanceof x&&s.jumps()&&"debugger"!==s.value||o.push(i.makeCode(h+"break;\n"))}return this.otherwise&&this.otherwise.expressions.length&&o.push.apply(o,[this.makeCode(c+"default:\n")].concat(Ct.call(this.otherwise.compileToFragments(e,L)),[this.makeCode("\n")])),o.push(this.makeCode(this.tab+"}")),o},t}(r),e.If=b=function(e){function t(e,t,n){this.body=t,null==n&&(n={}),this.condition="unless"===n.type?e.invert():e,this.elseBody=null,this.isChain=!1,this.soak=n.soak}return kt(t,e),t.prototype.children=["condition","body","elseBody"],t.prototype.bodyNode=function(){var e;return null!=(e=this.body)?e.unwrap():void 0},t.prototype.elseBodyNode=function(){var e;return null!=(e=this.elseBody)?e.unwrap():void 0},t.prototype.addElse=function(e){return this.isChain?this.elseBodyNode().addElse(e):(this.isChain=e instanceof t,this.elseBody=this.ensureBlock(e),this.elseBody.updateLocationDataIfMissing(e.locationData)),this},t.prototype.isStatement=function(e){var t;return(null!=e?e.level:void 0)===L||this.bodyNode().isStatement(e)||(null!=(t=this.elseBodyNode())?t.isStatement(e):void 0)},t.prototype.jumps=function(e){var t;return this.body.jumps(e)||(null!=(t=this.elseBody)?t.jumps(e):void 0)},t.prototype.compileNode=function(e){return this.isStatement(e)?this.compileStatement(e):this.compileExpression(e)},t.prototype.makeReturn=function(e){return e&&(this.elseBody||(this.elseBody=new s([new x("void 0")]))),this.body&&(this.body=new s([this.body.makeReturn(e)])),this.elseBody&&(this.elseBody=new s([this.elseBody.makeReturn(e)])),this},t.prototype.ensureBlock=function(e){return e instanceof s?e:new s([e])},t.prototype.compileStatement=function(e){var n,i,r,s,o,a,c;return r=tt(e,"chainChild"),(o=tt(e,"isExistentialEquals"))?new t(this.condition.invert(),this.elseBodyNode(),{type:"if"}).compileToFragments(e):(c=e.indent+q,s=this.condition.compileToFragments(e,N),i=this.ensureBlock(this.body).compileToFragments(lt(e,{indent:c})),a=[].concat(this.makeCode("if ("),s,this.makeCode(") {\n"),i,this.makeCode("\n"+this.tab+"}")),r||a.unshift(this.makeCode(this.tab)),this.elseBody?(n=a.concat(this.makeCode(" else ")),this.isChain?(e.chainChild=!0,n=n.concat(this.elseBody.unwrap().compileToFragments(e,L))):n=n.concat(this.makeCode("{\n"),this.elseBody.compileToFragments(lt(e,{indent:c}),L),this.makeCode("\n"+this.tab+"}")),n):a)},t.prototype.compileExpression=function(e){var t,n,i,r;return i=this.condition.compileToFragments(e,C),n=this.bodyNode().compileToFragments(e,E),t=this.elseBodyNode()?this.elseBodyNode().compileToFragments(e,E):[this.makeCode("void 0")],r=i.concat(this.makeCode(" ? "),n,this.makeCode(" : "),t),e.level>=C?this.wrapInBraces(r):r},t.prototype.unfoldSoak=function(){return this.soak&&this},t}(r),K={extend:function(e){return"function(child, parent) { for (var key in parent) { if ("+bt("hasProp",e)+".call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }"},bind:function(){return"function(fn, me){ return function(){ return fn.apply(me, arguments); }; }"},indexOf:function(){return"[].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }"},modulo:function(){return"function(a, b) { return (+a % (b = +b) + b) % b; }"},hasProp:function(){return"{}.hasOwnProperty"},slice:function(){return"[].slice"}},L=1,N=2,E=3,C=4,F=5,T=6,q=" ",g=/^(?!\d)[$\w\x7f-\uffff]+$/,B=/^[+-]?\d+$/,m=/^[+-]?0x[\da-f]+/i,R=/^[+-]?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)$/i,y=/^['"]/,v=/^\//,bt=function(e,t){var n,i;return i=t.scope.root,e in i.utilities?i.utilities[e]:(n=i.freeVariable(e),i.assign(n,K[e](t)),i.utilities[e]=n)},ut=function(e,t){return e=e.replace(/\n/g,"$&"+t),e.replace(/\s+$/,"")},pt=function(e){return null==e?0:e.match(m)?parseInt(e,16):parseFloat(e)},at=function(e){return e instanceof x&&"arguments"===e.value&&!e.asKey},ct=function(e){return e instanceof x&&"this"===e.value&&!e.asKey||e instanceof c&&e.bound||e instanceof o&&e.isSuper},ot=function(e){return e.isComplex()||("function"==typeof e.isAssignable?e.isAssignable():void 0)},yt=function(e,t,n){var i;if(i=t[n].unfoldSoak(e))return t[n]=i.body,i.body=new z(t),i}}.call(this),t.exports}(),require["./sourcemap"]=function(){var e={},t={exports:e};return function(){var e,n;e=function(){function e(e){this.line=e,this.columns=[]}return e.prototype.add=function(e,t,n){var i,r;return r=t[0],i=t[1],null==n&&(n={}),this.columns[e]&&n.noReplace?void 0:this.columns[e]={line:this.line,column:e,sourceLine:r,sourceColumn:i}},e.prototype.sourceLocation=function(e){for(var t;!((t=this.columns[e])||0>=e);)e--;return t&&[t.sourceLine,t.sourceColumn]},e}(),n=function(){function t(){this.lines=[]}var n,i,r,s;return t.prototype.add=function(t,n,i){var r,s,o,a;return null==i&&(i={}),o=n[0],s=n[1],a=(r=this.lines)[o]||(r[o]=new e(o)),a.add(s,t,i)},t.prototype.sourceLocation=function(e){var t,n,i;for(n=e[0],t=e[1];!((i=this.lines[n])||0>=n);)n--;return i&&i.sourceLocation(t)},t.prototype.generate=function(e,t){var n,i,r,s,o,a,c,h,l,u,p,d,f,m,g,v;for(null==e&&(e={}),null==t&&(t=null),v=0,s=0,a=0,o=0,d=!1,n="",f=this.lines,u=i=0,c=f.length;c>i;u=++i)if(l=f[u])for(m=l.columns,r=0,h=m.length;h>r;r++)if(p=m[r]){for(;p.line>v;)s=0,d=!1,n+=";",v++;d&&(n+=",",d=!1),n+=this.encodeVlq(p.column-s),s=p.column,n+=this.encodeVlq(0),n+=this.encodeVlq(p.sourceLine-a),a=p.sourceLine,n+=this.encodeVlq(p.sourceColumn-o),o=p.sourceColumn,d=!0}return g={version:3,file:e.generatedFile||"",sourceRoot:e.sourceRoot||"",sources:e.sourceFiles||[""],names:[],mappings:n},e.inline&&(g.sourcesContent=[t]),JSON.stringify(g,null,2)},r=5,i=1<e?1:0,a=(Math.abs(e)<<1)+o;a||!t;)n=a&s,a>>=r,a&&(n|=i),t+=this.encodeBase64(n);return t},n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t.prototype.encodeBase64=function(e){return n[e]||function(){throw Error("Cannot Base64 encode value: "+e)}()},t}(),t.exports=n}.call(this),t.exports}(),require["./coffee-script"]=function(){var e={},t={exports:e};return function(){var t,n,i,r,s,o,a,c,h,l,u,p,d,f,m,g,v,y,b={}.hasOwnProperty,k=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1};if(a=require("fs"),v=require("vm"),f=require("path"),t=require("./lexer").Lexer,d=require("./parser").parser,h=require("./helpers"),n=require("./sourcemap"),e.VERSION="1.9.3",e.FILE_EXTENSIONS=[".coffee",".litcoffee",".coffee.md"],e.helpers=h,y=function(e){return function(t,n){var i;null==n&&(n={});try{return e.call(this,t,n) -}catch(r){if(i=r,"string"!=typeof t)throw i;throw h.updateSyntaxError(i,t,n.filename)}}},e.compile=r=y(function(e,t){var i,r,s,o,a,c,l,u,f,m,g,v,y,b,k;for(v=h.merge,o=h.extend,t=o({},t),t.sourceMap&&(g=new n),k=p.tokenize(e,t),t.referencedVars=function(){var e,t,n;for(n=[],e=0,t=k.length;t>e;e++)b=k[e],b.variable&&n.push(b[1]);return n}(),c=d.parse(k).compileToFragments(t),s=0,t.header&&(s+=1),t.shiftLine&&(s+=1),r=0,f="",u=0,m=c.length;m>u;u++)a=c[u],t.sourceMap&&(a.locationData&&!/^[;\s]*$/.test(a.code)&&g.add([a.locationData.first_line,a.locationData.first_column],[s,r],{noReplace:!0}),y=h.count(a.code,"\n"),s+=y,y?r=a.code.length-(a.code.lastIndexOf("\n")+1):r+=a.code.length),f+=a.code;return t.header&&(l="Generated by CoffeeScript "+this.VERSION,f="// "+l+"\n"+f),t.sourceMap?(i={js:f},i.sourceMap=g,i.v3SourceMap=g.generate(t,e),i):f}),e.tokens=y(function(e,t){return p.tokenize(e,t)}),e.nodes=y(function(e,t){return"string"==typeof e?d.parse(p.tokenize(e,t)):d.parse(e)}),e.run=function(e,t){var n,i,s,o;return null==t&&(t={}),s=require.main,s.filename=process.argv[1]=t.filename?a.realpathSync(t.filename):".",s.moduleCache&&(s.moduleCache={}),i=t.filename?f.dirname(a.realpathSync(t.filename)):a.realpathSync("."),s.paths=require("module")._nodeModulePaths(i),(!h.isCoffee(s.filename)||require.extensions)&&(n=r(e,t),e=null!=(o=n.js)?o:n),s._compile(e,s.filename)},e.eval=function(e,t){var n,i,s,o,a,c,h,l,u,p,d,m,g,y,k,w,T;if(null==t&&(t={}),e=e.trim()){if(o=null!=(m=v.Script.createContext)?m:v.createContext,c=null!=(g=v.isContext)?g:function(){return t.sandbox instanceof o().constructor},o){if(null!=t.sandbox){if(c(t.sandbox))w=t.sandbox;else{w=o(),y=t.sandbox;for(l in y)b.call(y,l)&&(T=y[l],w[l]=T)}w.global=w.root=w.GLOBAL=w}else w=global;if(w.__filename=t.filename||"eval",w.__dirname=f.dirname(w.__filename),w===global&&!w.module&&!w.require){for(n=require("module"),w.module=i=new n(t.modulename||"eval"),w.require=s=function(e){return n._load(e,i,!0)},i.filename=w.__filename,k=Object.getOwnPropertyNames(require),a=0,u=k.length;u>a;a++)d=k[a],"paths"!==d&&(s[d]=require[d]);s.paths=i.paths=n._nodeModulePaths(process.cwd()),s.resolve=function(e){return n._resolveFilename(e,i)}}}p={};for(l in t)b.call(t,l)&&(T=t[l],p[l]=T);return p.bare=!0,h=r(e,p),w===global?v.runInThisContext(h):v.runInContext(h,w)}},e.register=function(){return require("./register")},require.extensions)for(m=this.FILE_EXTENSIONS,l=0,u=m.length;u>l;l++)s=m[l],null==(i=require.extensions)[s]&&(i[s]=function(){throw Error("Use CoffeeScript.register() or require the coffee-script/register module to require "+s+" files.")});e._compileFile=function(e,t){var n,i,s,o;null==t&&(t=!1),s=a.readFileSync(e,"utf8"),o=65279===s.charCodeAt(0)?s.substring(1):s;try{n=r(o,{filename:e,sourceMap:t,literate:h.isLiterate(e)})}catch(c){throw i=c,h.updateSyntaxError(i,o,e)}return n},p=new t,d.lexer={lex:function(){var e,t;return t=d.tokens[this.pos++],t?(e=t[0],this.yytext=t[1],this.yylloc=t[2],d.errorToken=t.origin||t,this.yylineno=this.yylloc.first_line):e="",e},setInput:function(e){return d.tokens=e,this.pos=0},upcomingInput:function(){return""}},d.yy=require("./nodes"),d.yy.parseError=function(e,t){var n,i,r,s,o,a;return o=t.token,s=d.errorToken,a=d.tokens,i=s[0],r=s[1],n=s[2],r=function(){switch(!1){case s!==a[a.length-1]:return"end of input";case"INDENT"!==i&&"OUTDENT"!==i:return"indentation";case"IDENTIFIER"!==i&&"NUMBER"!==i&&"STRING"!==i&&"STRING_START"!==i&&"REGEX"!==i&&"REGEX_START"!==i:return i.replace(/_START$/,"").toLowerCase();default:return h.nameWhitespaceCharacter(r)}}(),h.throwSyntaxError("unexpected "+r,n)},o=function(e,t){var n,i,r,s,o,a,c,h,l,u,p,d;return s=void 0,r="",e.isNative()?r="native":(e.isEval()?(s=e.getScriptNameOrSourceURL(),s||(r=e.getEvalOrigin()+", ")):s=e.getFileName(),s||(s=""),h=e.getLineNumber(),i=e.getColumnNumber(),u=t(s,h,i),r=u?s+":"+u[0]+":"+u[1]:s+":"+h+":"+i),o=e.getFunctionName(),a=e.isConstructor(),c=!(e.isToplevel()||a),c?(l=e.getMethodName(),d=e.getTypeName(),o?(p=n="",d&&o.indexOf(d)&&(p=d+"."),l&&o.indexOf("."+l)!==o.length-l.length-1&&(n=" [as "+l+"]"),""+p+o+n+" ("+r+")"):d+"."+(l||"")+" ("+r+")"):a?"new "+(o||"")+" ("+r+")":o?o+" ("+r+")":r},g={},c=function(t){var n,i;if(g[t])return g[t];if(i=null!=f?f.extname(t):void 0,!(0>k.call(e.FILE_EXTENSIONS,i)))return n=e._compileFile(t,!0),g[t]=n.sourceMap},Error.prepareStackTrace=function(t,n){var i,r,s;return s=function(e,t,n){var i,r;return r=c(e),r&&(i=r.sourceLocation([t-1,n-1])),i?[i[0]+1,i[1]+1]:null},r=function(){var t,r,a;for(a=[],t=0,r=n.length;r>t&&(i=n[t],i.getFunction()!==e.run);t++)a.push(" at "+o(i,s));return a}(),""+t+"\n"+r.join("\n")+"\n"}}.call(this),t.exports}(),require["./browser"]=function(){var exports={},module={exports:exports};return function(){var CoffeeScript,compile,runScripts,indexOf=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1};CoffeeScript=require("./coffee-script"),CoffeeScript.require=require,compile=CoffeeScript.compile,CoffeeScript.eval=function(code,options){return null==options&&(options={}),null==options.bare&&(options.bare=!0),eval(compile(code,options))},CoffeeScript.run=function(e,t){return null==t&&(t={}),t.bare=!0,t.shiftLine=!0,Function(compile(e,t))()},"undefined"!=typeof window&&null!==window&&("undefined"!=typeof btoa&&null!==btoa&&"undefined"!=typeof JSON&&null!==JSON&&"undefined"!=typeof unescape&&null!==unescape&&"undefined"!=typeof encodeURIComponent&&null!==encodeURIComponent&&(compile=function(e,t){var n,i,r;return null==t&&(t={}),t.sourceMap=!0,t.inline=!0,i=CoffeeScript.compile(e,t),n=i.js,r=i.v3SourceMap,n+"\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(r)))+"\n//# sourceURL=coffeescript"}),CoffeeScript.load=function(e,t,n,i){var r;return null==n&&(n={}),null==i&&(i=!1),n.sourceFiles=[e],r=window.ActiveXObject?new window.ActiveXObject("Microsoft.XMLHTTP"):new window.XMLHttpRequest,r.open("GET",e,!0),"overrideMimeType"in r&&r.overrideMimeType("text/plain"),r.onreadystatechange=function(){var s,o;if(4===r.readyState){if(0!==(o=r.status)&&200!==o)throw Error("Could not load "+e);if(s=[r.responseText,n],i||CoffeeScript.run.apply(CoffeeScript,s),t)return t(s)}},r.send(null)},runScripts=function(){var e,t,n,i,r,s,o,a,c,h,l;for(l=window.document.getElementsByTagName("script"),t=["text/coffeescript","text/literate-coffeescript"],e=function(){var e,n,i,r;for(r=[],e=0,n=l.length;n>e;e++)c=l[e],i=c.type,indexOf.call(t,i)>=0&&r.push(c);return r}(),s=0,n=function(){var t;return t=e[s],t instanceof Array?(CoffeeScript.run.apply(CoffeeScript,t),s++,n()):void 0},i=function(i,r){var s,o;return s={literate:i.type===t[1]},o=i.src||i.getAttribute("data-src"),o?CoffeeScript.load(o,function(t){return e[r]=t,n()},s,!0):(s.sourceFiles=["embedded"],e[r]=[i.innerHTML,s])},r=o=0,a=e.length;a>o;r=++o)h=e[r],i(h,r);return n()},window.addEventListener?window.addEventListener("DOMContentLoaded",runScripts,!1):window.attachEvent("onload",runScripts))}.call(this),module.exports}(),require["./coffee-script"]}();"function"==typeof define&&define.amd?define(function(){return CoffeeScript}):root.CoffeeScript=CoffeeScript})(this); \ No newline at end of file diff --git a/resources/compiled_coffeescript.zip b/resources/compiled_coffeescript.zip deleted file mode 100644 index c71bb11388a746dbbde0f2e6982de49ec53074e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 87844 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 diff --git a/resources/viewer/blank.html b/resources/viewer/blank.html deleted file mode 100644 index da7c5a637d..0000000000 --- a/resources/viewer/blank.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - blank - - - -
 
- - - diff --git a/resources/viewer/bookmarks.js b/resources/viewer/bookmarks.js deleted file mode 100644 index 253524326f..0000000000 --- a/resources/viewer/bookmarks.js +++ /dev/null @@ -1,49 +0,0 @@ -/* - * bookmarks management - * Copyright 2008 Kovid Goyal - * License: GNU GPL v3 - */ - -function selector_in_parent(elem) { - var num = elem.prevAll().length; - var sel = " > *:eq("+num+") "; - return sel; -} - -function selector(elem) { - var obj = elem; - var sel = ""; - while (obj[0] != document) { - sel = selector_in_parent(obj) + sel; - obj = obj.parent(); - } - if (sel.length > 2 && sel.charAt(1) == ">") sel = sel.substring(2); - return sel; -} - -function calculate_bookmark(y, node) { - var elem = $(node); - var sel = selector(elem); - var ratio = (y - elem.offset().top)/elem.height(); - if (ratio > 1) { ratio = 1; } - if (ratio < 0) { ratio = 0; } - sel = sel + "|" + ratio; - return sel; -} - -function animated_scrolling_done() { - window.py_bridge.animated_scroll_done(); -} - -function scroll_to_bookmark(bookmark) { - bm = bookmark.split("|"); - var ratio = 0.7 * parseFloat(bm[1]); - $.scrollTo($(bm[0]), 1000, - { - over:ratio, - axis: 'y', // Do not scroll in the x direction - onAfter:function(){window.py_bridge.animated_scroll_done()} - } - ); -} - diff --git a/resources/viewer/hyphenate/Hyphenator.js b/resources/viewer/hyphenate/Hyphenator.js deleted file mode 100644 index 75aac3e5b4..0000000000 --- a/resources/viewer/hyphenate/Hyphenator.js +++ /dev/null @@ -1,3281 +0,0 @@ - -/** @license Hyphenator 5.1.0 - client side hyphenation for webbrowsers - * Copyright (C) 2015 Mathias Nater, Zürich (mathiasnater at gmail dot com) - * https://github.com/mnater/Hyphenator - * - * Released under the MIT license - * http://mnater.github.io/Hyphenator/LICENSE.txt - */ - -/* - * Comments are jsdoc3 formatted. See http://usejsdoc.org - * Use mergeAndPack.html to get rid of the comments and to reduce the file size of this script! - */ - -/* The following comment is for JSLint: */ -/*jslint browser: true */ - -/** - * @desc Provides all functionality to do hyphenation, except the patterns that are loaded externally - * @global - * @namespace Hyphenator - * @author Mathias Nater, - * @version 5.1.0 - * @example - * <script src = "Hyphenator.js" type = "text/javascript"></script> - * <script type = "text/javascript"> - * Hyphenator.run(); - * </script> - */ -var Hyphenator = (function (window) { - 'use strict'; - - /** - * @member Hyphenator~contextWindow - * @access private - * @desc - * contextWindow stores the window for the actual document to be hyphenated. - * If there are frames this will change. - * So use contextWindow instead of window! - */ - var contextWindow = window, - - - /** - * @member {Object.} Hyphenator~supportedLangs - * @desc - * A generated key-value object that stores supported languages and meta data. - * The key is the {@link http://tools.ietf.org/rfc/bcp/bcp47.txt bcp47} code of the language and the value - * is an object of type {@link Hyphenator~supportedLangs~supportedLanguage} - * @namespace Hyphenator~supportedLangs - * @access private - * //Check if language lang is supported: - * if (supportedLangs.hasOwnProperty(lang)) - */ - supportedLangs = (function () { - /** - * @typedef {Object} Hyphenator~supportedLangs~supportedLanguage - * @property {string} file - The name of the pattern file - * @property {number} script - The script type of the language (e.g. 'latin' for english), this type is abbreviated by an id - * @property {string} prompt - The sentence prompted to the user, if Hyphenator.js doesn't find a language hint - */ - - /** - * @lends Hyphenator~supportedLangs - */ - var r = {}, - /** - * @method Hyphenator~supportedLangs~o - * @desc - * Sets a value of Hyphenator~supportedLangs - * @access protected - * @param {string} code The {@link http://tools.ietf.org/rfc/bcp/bcp47.txt bcp47} code of the language - * @param {string} file The name of the pattern file - * @param {Number} script A shortcut for a specific script: latin:0, cyrillic: 1, arabic: 2, armenian:3, bengali: 4, devangari: 5, greek: 6 - * gujarati: 7, kannada: 8, lao: 9, malayalam: 10, oriya: 11, persian: 12, punjabi: 13, tamil: 14, telugu: 15 - * @param {string} prompt The sentence prompted to the user, if Hyphenator.js doesn't find a language hint - */ - o = function (code, file, script, prompt) { - r[code] = {'file': file, 'script': script, 'prompt': prompt}; - }; - - o('be', 'be.js', 1, 'Мова гэтага сайта не можа быць вызначаны аўтаматычна. Калі ласка пакажыце мову:'); - o('ca', 'ca.js', 0, ''); - o('cs', 'cs.js', 0, 'Jazyk této internetové stránky nebyl automaticky rozpoznán. Určete prosím její jazyk:'); - o('da', 'da.js', 0, 'Denne websides sprog kunne ikke bestemmes. Angiv venligst sprog:'); - o('bn', 'bn.js', 4, ''); - o('de', 'de.js', 0, 'Die Sprache dieser Webseite konnte nicht automatisch bestimmt werden. Bitte Sprache angeben:'); - o('el', 'el-monoton.js', 6, ''); - o('el-monoton', 'el-monoton.js', 6, ''); - o('el-polyton', 'el-polyton.js', 6, ''); - o('en', 'en-us.js', 0, 'The language of this website could not be determined automatically. Please indicate the main language:'); - o('en-gb', 'en-gb.js', 0, 'The language of this website could not be determined automatically. Please indicate the main language:'); - o('en-us', 'en-us.js', 0, 'The language of this website could not be determined automatically. Please indicate the main language:'); - o('eo', 'eo.js', 0, 'La lingvo de ĉi tiu retpaĝo ne rekoneblas aŭtomate. Bonvolu indiki ĝian ĉeflingvon:'); - o('es', 'es.js', 0, 'El idioma del sitio no pudo determinarse autom%E1ticamente. Por favor, indique el idioma principal:'); - o('et', 'et.js', 0, 'Veebilehe keele tuvastamine ebaõnnestus, palun valige kasutatud keel:'); - o('fi', 'fi.js', 0, 'Sivun kielt%E4 ei tunnistettu automaattisesti. M%E4%E4rit%E4 sivun p%E4%E4kieli:'); - o('fr', 'fr.js', 0, 'La langue de ce site n%u2019a pas pu %EAtre d%E9termin%E9e automatiquement. Veuillez indiquer une langue, s.v.p.%A0:'); - o('grc', 'grc.js', 6, ''); - o('gu', 'gu.js', 7, ''); - o('hi', 'hi.js', 5, ''); - o('hu', 'hu.js', 0, 'A weboldal nyelvét nem sikerült automatikusan megállapítani. Kérem adja meg a nyelvet:'); - o('hy', 'hy.js', 3, 'Չհաջողվեց հայտնաբերել այս կայքի լեզուն։ Խնդրում ենք նշեք հիմնական լեզուն՝'); - o('it', 'it.js', 0, 'Lingua del sito sconosciuta. Indicare una lingua, per favore:'); - o('kn', 'kn.js', 8, 'ಜಾಲ ತಾಣದ ಭಾಷೆಯನ್ನು ನಿರ್ಧರಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ. ದಯವಿಟ್ಟು ಮುಖ್ಯ ಭಾಷೆಯನ್ನು ಸೂಚಿಸಿ:'); - o('la', 'la.js', 0, ''); - o('lt', 'lt.js', 0, 'Nepavyko automatiškai nustatyti šios svetainės kalbos. Prašome įvesti kalbą:'); - o('lv', 'lv.js', 0, 'Šīs lapas valodu nevarēja noteikt automātiski. Lūdzu norādiet pamata valodu:'); - o('ml', 'ml.js', 10, 'ഈ വെ%u0D2C%u0D4D%u200Cസൈറ്റിന്റെ ഭാഷ കണ്ടുപിടിയ്ക്കാ%u0D28%u0D4D%u200D കഴിഞ്ഞില്ല. ഭാഷ ഏതാണെന്നു തിരഞ്ഞെടുക്കുക:'); - o('nb', 'nb-no.js', 0, 'Nettstedets språk kunne ikke finnes automatisk. Vennligst oppgi språk:'); - o('no', 'nb-no.js', 0, 'Nettstedets språk kunne ikke finnes automatisk. Vennligst oppgi språk:'); - o('nb-no', 'nb-no.js', 0, 'Nettstedets språk kunne ikke finnes automatisk. Vennligst oppgi språk:'); - o('nl', 'nl.js', 0, 'De taal van deze website kan niet automatisch worden bepaald. Geef de hoofdtaal op:'); - o('or', 'or.js', 11, ''); - o('pa', 'pa.js', 13, ''); - o('pl', 'pl.js', 0, 'Języka tej strony nie można ustalić automatycznie. Proszę wskazać język:'); - o('pt', 'pt.js', 0, 'A língua deste site não pôde ser determinada automaticamente. Por favor indique a língua principal:'); - o('ru', 'ru.js', 1, 'Язык этого сайта не может быть определен автоматически. Пожалуйста укажите язык:'); - o('sk', 'sk.js', 0, ''); - o('sl', 'sl.js', 0, 'Jezika te spletne strani ni bilo mogoče samodejno določiti. Prosim navedite jezik:'); - o('sr-cyrl', 'sr-cyrl.js', 1, 'Језик овог сајта није детектован аутоматски. Молим вас наведите језик:'); - o('sr-latn', 'sr-latn.js', 0, 'Jezika te spletne strani ni bilo mogoče samodejno določiti. Prosim navedite jezik:'); - o('sv', 'sv.js', 0, 'Spr%E5ket p%E5 den h%E4r webbplatsen kunde inte avg%F6ras automatiskt. V%E4nligen ange:'); - o('ta', 'ta.js', 14, ''); - o('te', 'te.js', 15, ''); - o('tr', 'tr.js', 0, 'Bu web sitesinin dili otomatik olarak tespit edilememiştir. Lütfen dökümanın dilini seçiniz%A0:'); - o('uk', 'uk.js', 1, 'Мова цього веб-сайту не може бути визначена автоматично. Будь ласка, вкажіть головну мову:'); - o('ro', 'ro.js', 0, 'Limba acestui sit nu a putut fi determinată automat. Alege limba principală:'); - - return r; - }()), - - - /** - * @member {string} Hyphenator~basePath - * @desc - * A string storing the basepath from where Hyphenator.js was loaded. - * This is used to load the pattern files. - * The basepath is determined dynamically by searching all script-tags for Hyphenator.js - * If the path cannot be determined {@link http://mnater.github.io/Hyphenator/} is used as fallback. - * @access private - * @see {@link Hyphenator~loadPatterns} - */ - basePath = (function () { - var s = contextWindow.document.getElementsByTagName('script'), i = 0, p, src, t = s[i], r = ''; - while (!!t) { - if (!!t.src) { - src = t.src; - p = src.indexOf('Hyphenator.js'); - if (p !== -1) { - r = src.substring(0, p); - } - } - i += 1; - t = s[i]; - } - return !!r ? r : '//mnater.github.io/Hyphenator/'; - }()), - - /** - * @member {boolean} Hyphenator~isLocal - * @access private - * @desc - * isLocal is true, if Hyphenator is loaded from the same domain, as the webpage, but false, if - * it's loaded from an external source (i.e. directly from github) - */ - isLocal = (function () { - var re = false; - if (window.location.href.indexOf(basePath) !== -1) { - re = true; - } - return re; - }()), - - /** - * @member {boolean} Hyphenator~documentLoaded - * @access private - * @desc - * documentLoaded is true, when the DOM has been loaded. This is set by {@link Hyphenator~runWhenLoaded} - */ - documentLoaded = false, - - /** - * @member {boolean} Hyphenator~persistentConfig - * @access private - * @desc - * if persistentConfig is set to true (defaults to false), config options and the state of the - * toggleBox are stored in DOM-storage (according to the storage-setting). So they haven't to be - * set for each page. - * @default false - * @see {@link Hyphenator.config} - */ - persistentConfig = false, - - /** - * @member {boolean} Hyphenator~doFrames - * @access private - * @desc - * switch to control if frames/iframes should be hyphenated, too. - * defaults to false (frames are a bag of hurt!) - * @default false - * @see {@link Hyphenator.config} - */ - doFrames = false, - - /** - * @member {Object.} Hyphenator~dontHyphenate - * @desc - * A key-value object containing all html-tags whose content should not be hyphenated - * @access private - */ - dontHyphenate = {'video': true, 'audio': true, 'script': true, 'code': true, 'pre': true, 'img': true, 'br': true, 'samp': true, 'kbd': true, 'var': true, 'abbr': true, 'acronym': true, 'sub': true, 'sup': true, 'button': true, 'option': true, 'label': true, 'textarea': true, 'input': true, 'math': true, 'svg': true, 'style': true}, - - /** - * @member {boolean} Hyphenator~enableCache - * @desc - * A variable to set if caching is enabled or not - * @default true - * @access private - * @see {@link Hyphenator.config} - */ - enableCache = true, - - /** - * @member {string} Hyphenator~storageType - * @desc - * A variable to define what html5-DOM-Storage-Method is used ('none', 'local' or 'session') - * @default 'local' - * @access private - * @see {@link Hyphenator.config} - */ - storageType = 'local', - - /** - * @member {Object|undefined} Hyphenator~storage - * @desc - * An alias to the storage defined in storageType. This is set by {@link Hyphenator~createStorage}. - * Set by {@link Hyphenator.run} - * @default null - * @access private - * @see {@link Hyphenator~createStorage} - */ - storage, - - /** - * @member {boolean} Hyphenator~enableReducedPatternSet - * @desc - * A variable to set if storing the used patterns is set - * @default false - * @access private - * @see {@link Hyphenator.config} - * @see {@link Hyphenator.getRedPatternSet} - */ - enableReducedPatternSet = false, - - /** - * @member {boolean} Hyphenator~enableRemoteLoading - * @desc - * A variable to set if pattern files should be loaded remotely or not - * @default true - * @access private - * @see {@link Hyphenator.config} - */ - enableRemoteLoading = true, - - /** - * @member {boolean} Hyphenator~displayToggleBox - * @desc - * A variable to set if the togglebox should be displayed or not - * @default false - * @access private - * @see {@link Hyphenator.config} - */ - displayToggleBox = false, - - /** - * @method Hyphenator~onError - * @desc - * A function that can be called upon an error. - * @see {@link Hyphenator.config} - * @access private - */ - onError = function (e) { - window.alert("Hyphenator.js says:\n\nAn Error occurred:\n" + e.message); - }, - - /** - * @method Hyphenator~onWarning - * @desc - * A function that can be called upon a warning. - * @see {@link Hyphenator.config} - * @access private - */ - onWarning = function (e) { - window.console.log(e.message); - }, - - /** - * @method Hyphenator~createElem - * @desc - * A function alias to document.createElementNS or document.createElement - * @access private - */ - createElem = function (tagname, context) { - context = context || contextWindow; - var el; - if (window.document.createElementNS) { - el = context.document.createElementNS('http://www.w3.org/1999/xhtml', tagname); - } else if (window.document.createElement) { - el = context.document.createElement(tagname); - } - return el; - }, - - /** - * @member {boolean} Hyphenator~css3 - * @desc - * A variable to set if css3 hyphenation should be used - * @default false - * @access private - * @see {@link Hyphenator.config} - */ - css3 = false, - - /** - * @typedef {Object} Hyphenator~css3_hsupport - * @property {boolean} support - if css3-hyphenation is supported - * @property {string} property - the css property name to access hyphen-settings (e.g. -webkit-hyphens) - * @property {Object.} supportedBrowserLangs - an object caching tested languages - * @property {function} checkLangSupport - a method that checks if the browser supports a requested language - */ - - /** - * @member {Hyphenator~css3_h9n} Hyphenator~css3_h9n - * @desc - * A generated object containing information for CSS3-hyphenation support - * This is set by {@link Hyphenator~css3_gethsupport} - * @default undefined - * @access private - * @see {@link Hyphenator~css3_gethsupport} - * @example - * //Check if browser supports a language - * css3_h9n.checkLangSupport(<lang>) - */ - css3_h9n, - - /** - * @method Hyphenator~css3_gethsupport - * @desc - * This function sets {@link Hyphenator~css3_h9n} for the current UA - * @type function - * @access private - * @see Hyphenator~css3_h9n - */ - css3_gethsupport = function () { - var s, - createLangSupportChecker = function (prefix) { - var testStrings = [ - //latin: 0 - 'aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz', - //cyrillic: 1 - 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя', - //arabic: 2 - 'أبتثجحخدذرزسشصضطظعغفقكلمنهوي', - //armenian: 3 - 'աբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքօֆ', - //bengali: 4 - 'ঁংঃঅআইঈউঊঋঌএঐওঔকখগঘঙচছজঝঞটঠডঢণতথদধনপফবভমযরলশষসহ়ঽািীুূৃৄেৈোৌ্ৎৗড়ঢ়য়ৠৡৢৣ', - //devangari: 5 - 'ँंःअआइईउऊऋऌएऐओऔकखगघङचछजझञटठडढणतथदधनपफबभमयरलळवशषसहऽािीुूृॄेैोौ्॒॑ॠॡॢॣ', - //greek: 6 - 'αβγδεζηθικλμνξοπρσςτυφχψω', - //gujarati: 7 - 'બહઅઆઇઈઉઊઋૠએઐઓઔાિીુૂૃૄૢૣેૈોૌકખગઘઙચછજઝઞટઠડઢણતથદધનપફસભમયરલળવશષ', - //kannada: 8 - 'ಂಃಅಆಇಈಉಊಋಌಎಏಐಒಓಔಕಖಗಘಙಚಛಜಝಞಟಠಡಢಣತಥದಧನಪಫಬಭಮಯರಱಲಳವಶಷಸಹಽಾಿೀುೂೃೄೆೇೈೊೋೌ್ೕೖೞೠೡ', - //lao: 9 - 'ກຂຄງຈຊຍດຕຖທນບປຜຝພຟມຢຣລວສຫອຮະັາິີຶືຸູົຼເແໂໃໄ່້໊໋ໜໝ', - //malayalam: 10 - 'ംഃഅആഇഈഉഊഋഌഎഏഐഒഓഔകഖഗഘങചഛജഝഞടഠഡഢണതഥദധനപഫബഭമയരറലളഴവശഷസഹാിീുൂൃെേൈൊോൌ്ൗൠൡൺൻർൽൾൿ', - //oriya: 11 - 'ଁଂଃଅଆଇଈଉଊଋଌଏଐଓଔକଖଗଘଙଚଛଜଝଞଟଠଡଢଣତଥଦଧନପଫବଭମଯରଲଳଵଶଷସହାିୀୁୂୃେୈୋୌ୍ୗୠୡ', - //persian: 12 - 'أبتثجحخدذرزسشصضطظعغفقكلمنهوي', - //punjabi: 13 - 'ਁਂਃਅਆਇਈਉਊਏਐਓਔਕਖਗਘਙਚਛਜਝਞਟਠਡਢਣਤਥਦਧਨਪਫਬਭਮਯਰਲਲ਼ਵਸ਼ਸਹਾਿੀੁੂੇੈੋੌ੍ੰੱ', - //tamil: 14 - 'ஃஅஆஇஈஉஊஎஏஐஒஓஔகஙசஜஞடணதநனபமயரறலளழவஷஸஹாிீுூெேைொோௌ்ௗ', - //telugu: 15 - 'ఁంఃఅఆఇఈఉఊఋఌఎఏఐఒఓఔకఖగఘఙచఛజఝఞటఠడఢణతథదధనపఫబభమయరఱలళవశషసహాిీుూృౄెేైొోౌ్ౕౖౠౡ' - ], - f = function (lang) { - var shadow, - computedHeight, - bdy, - r = false; - - //check if lang has already been tested - if (this.supportedBrowserLangs.hasOwnProperty(lang)) { - r = this.supportedBrowserLangs[lang]; - } else if (supportedLangs.hasOwnProperty(lang)) { - //create and append shadow-test-element - bdy = window.document.getElementsByTagName('body')[0]; - shadow = createElem('div', window); - shadow.id = 'Hyphenator_LanguageChecker'; - shadow.style.width = '5em'; - shadow.style[prefix] = 'auto'; - shadow.style.hyphens = 'auto'; - shadow.style.fontSize = '12px'; - shadow.style.lineHeight = '12px'; - shadow.style.visibility = 'hidden'; - shadow.lang = lang; - shadow.style['-webkit-locale'] = "'" + lang + "'"; - shadow.innerHTML = testStrings[supportedLangs[lang].script]; - bdy.appendChild(shadow); - //measure its height - computedHeight = shadow.offsetHeight; - //remove shadow element - bdy.removeChild(shadow); - r = (computedHeight > 12) ? true : false; - this.supportedBrowserLangs[lang] = r; - } else { - r = false; - } - return r; - }; - return f; - }, - r = { - support: false, - supportedBrowserLangs: {}, - property: '', - checkLangSupport: {} - }; - - if (window.getComputedStyle) { - s = window.getComputedStyle(window.document.getElementsByTagName('body')[0], null); - } else { - //ancient Browsers don't support CSS3 anyway - css3_h9n = r; - return; - } - - if (s.hyphens !== undefined) { - r.support = true; - r.property = 'hyphens'; - r.checkLangSupport = createLangSupportChecker('hyphens'); - } else if (s['-webkit-hyphens'] !== undefined) { - r.support = true; - r.property = '-webkit-hyphens'; - r.checkLangSupport = createLangSupportChecker('-webkit-hyphens'); - } else if (s.MozHyphens !== undefined) { - r.support = true; - r.property = '-moz-hyphens'; - r.checkLangSupport = createLangSupportChecker('MozHyphens'); - } else if (s['-ms-hyphens'] !== undefined) { - r.support = true; - r.property = '-ms-hyphens'; - r.checkLangSupport = createLangSupportChecker('-ms-hyphens'); - } - css3_h9n = r; - }, - - /** - * @member {string} Hyphenator~hyphenateClass - * @desc - * A string containing the css-class-name for the hyphenate class - * @default 'hyphenate' - * @access private - * @example - * <p class = "hyphenate">Text</p> - * @see {@link Hyphenator.config} - */ - hyphenateClass = 'hyphenate', - - /** - * @member {string} Hyphenator~urlHyphenateClass - * @desc - * A string containing the css-class-name for the urlhyphenate class - * @default 'urlhyphenate' - * @access private - * @example - * <p class = "urlhyphenate">Text</p> - * @see {@link Hyphenator.config} - */ - urlHyphenateClass = 'urlhyphenate', - - /** - * @member {string} Hyphenator~classPrefix - * @desc - * A string containing a unique className prefix to be used - * whenever Hyphenator sets a CSS-class - * @access private - */ - classPrefix = 'Hyphenator' + Math.round(Math.random() * 1000), - - /** - * @member {string} Hyphenator~hideClass - * @desc - * The name of the class that hides elements - * @access private - */ - hideClass = classPrefix + 'hide', - - /** - * @member {RegExp} Hyphenator~hideClassRegExp - * @desc - * RegExp to remove hideClass from a list of classes - * @access private - */ - hideClassRegExp = new RegExp("\\s?\\b" + hideClass + "\\b", "g"), - - /** - * @member {string} Hyphenator~hideClass - * @desc - * The name of the class that unhides elements - * @access private - */ - unhideClass = classPrefix + 'unhide', - - /** - * @member {RegExp} Hyphenator~hideClassRegExp - * @desc - * RegExp to remove unhideClass from a list of classes - * @access private - */ - unhideClassRegExp = new RegExp("\\s?\\b" + unhideClass + "\\b", "g"), - - /** - * @member {string} Hyphenator~css3hyphenateClass - * @desc - * The name of the class that hyphenates elements with css3 - * @access private - */ - css3hyphenateClass = classPrefix + 'css3hyphenate', - - /** - * @member {CSSEdit} Hyphenator~css3hyphenateClass - * @desc - * The var where CSSEdit class is stored - * @access private - */ - css3hyphenateClassHandle, - - /** - * @member {string} Hyphenator~dontHyphenateClass - * @desc - * A string containing the css-class-name for elements that should not be hyphenated - * @default 'donthyphenate' - * @access private - * @example - * <p class = "donthyphenate">Text</p> - * @see {@link Hyphenator.config} - */ - dontHyphenateClass = 'donthyphenate', - - /** - * @member {number} Hyphenator~min - * @desc - * A number wich indicates the minimal length of words to hyphenate. - * @default 6 - * @access private - * @see {@link Hyphenator.config} - */ - min = 6, - - /** - * @member {number} Hyphenator~orphanControl - * @desc - * Control how the last words of a line are handled: - * level 1 (default): last word is hyphenated - * level 2: last word is not hyphenated - * level 3: last word is not hyphenated and last space is non breaking - * @default 1 - * @access private - */ - orphanControl = 1, - - /** - * @member {boolean} Hyphenator~isBookmarklet - * @desc - * True if Hyphanetor runs as bookmarklet. - * @access private - */ - isBookmarklet = (function () { - var loc = null, - re = false, - scripts = contextWindow.document.getElementsByTagName('script'), - i = 0, - l = scripts.length; - while (!re && i < l) { - loc = scripts[i].getAttribute('src'); - if (!!loc && loc.indexOf('Hyphenator.js?bm=true') !== -1) { - re = true; - } - i += 1; - } - return re; - }()), - - /** - * @member {string|null} Hyphenator~mainLanguage - * @desc - * The general language of the document. In contrast to {@link Hyphenator~defaultLanguage}, - * mainLanguage is defined by the client (i.e. by the html or by a prompt). - * @access private - * @see {@link Hyphenator~autoSetMainLanguage} - */ - mainLanguage = null, - - /** - * @member {string|null} Hyphenator~defaultLanguage - * @desc - * The language defined by the developper. This language setting is defined by a config option. - * It is overwritten by any html-lang-attribute and only taken in count, when no such attribute can - * be found (i.e. just before the prompt). - * @access private - * @see {@link Hyphenator.config} - * @see {@link Hyphenator~autoSetMainLanguage} - */ - defaultLanguage = '', - - /** - * @member {ElementCollection} Hyphenator~elements - * @desc - * A class representing all elements (of type Element) that have to be hyphenated. This var is filled by - * {@link Hyphenator~gatherDocumentInfos} - * @access private - */ - elements = (function () { - /** - * @constructor Hyphenator~elements~ElementCollection~Element - * @desc represents a DOM Element with additional information - * @access private - */ - var Element = function (element) { - /** - * @member {Object} Hyphenator~elements~ElementCollection~Element~element - * @desc A DOM Element - * @access protected - */ - this.element = element; - /** - * @member {boolean} Hyphenator~elements~ElementCollection~Element~hyphenated - * @desc Marks if the element has been hyphenated - * @access protected - */ - this.hyphenated = false; - /** - * @member {boolean} Hyphenator~elements~ElementCollection~Element~treated - * @desc Marks if information of the element has been collected but not hyphenated (e.g. dohyphenation is off) - * @access protected - */ - this.treated = false; - }, - /** - * @constructor Hyphenator~elements~ElementCollection - * @desc A collection of Elements to be hyphenated - * @access protected - */ - ElementCollection = function () { - /** - * @member {number} Hyphenator~elements~ElementCollection~count - * @desc The Number of collected Elements - * @access protected - */ - this.count = 0; - /** - * @member {number} Hyphenator~elements~ElementCollection~hyCount - * @desc The Number of hyphenated Elements - * @access protected - */ - this.hyCount = 0; - /** - * @member {Object.>} Hyphenator~elements~ElementCollection~list - * @desc The collection of elements, where the key is a language code and the value is an array of elements - * @access protected - */ - this.list = {}; - }; - /** - * @member {Object} Hyphenator~elements~ElementCollection.prototype - * @augments Hyphenator~elements~ElementCollection - * @access protected - */ - ElementCollection.prototype = { - /** - * @method Hyphenator~elements~ElementCollection.prototype~add - * @augments Hyphenator~elements~ElementCollection - * @access protected - * @desc adds a DOM element to the collection - * @param {Object} el - The DOM element - * @param {string} lang - The language of the element - */ - add: function (el, lang) { - var elo = new Element(el); - if (!this.list.hasOwnProperty(lang)) { - this.list[lang] = []; - } - this.list[lang].push(elo); - this.count += 1; - return elo; - }, - - /** - * @method Hyphenator~elements~ElementCollection.prototype~remove - * @augments Hyphenator~elements~ElementCollection - * @access protected - * @desc removes a DOM element from the collection - * @param {Object} el - The DOM element - */ - remove: function (el) { - var lang, i, e, l; - for (lang in this.list) { - if (this.list.hasOwnProperty(lang)) { - for (i = 0; i < this.list[lang].length; i += 1) { - if (this.list[lang][i].element === el) { - e = i; - l = lang; - break; - } - } - } - } - this.list[l].splice(e, 1); - this.count -= 1; - this.hyCount -= 1; - }, - /** - * @callback Hyphenator~elements~ElementCollection.prototype~each~callback fn - The callback that is executed for each element - * @param {string} [k] The key (i.e. language) of the collection - * @param {Hyphenator~elements~ElementCollection~Element} element - */ - - /** - * @method Hyphenator~elements~ElementCollection.prototype~each - * @augments Hyphenator~elements~ElementCollection - * @access protected - * @desc takes each element of the collection as an argument of fn - * @param {Hyphenator~elements~ElementCollection.prototype~each~callback} fn - A function that takes an element as an argument - */ - each: function (fn) { - var k; - for (k in this.list) { - if (this.list.hasOwnProperty(k)) { - if (fn.length === 2) { - fn(k, this.list[k]); - } else { - fn(this.list[k]); - } - } - } - } - }; - return new ElementCollection(); - }()), - - - /** - * @member {Object.} Hyphenator~exceptions - * @desc - * An object containing exceptions as comma separated strings for each language. - * When the language-objects are loaded, their exceptions are processed, copied here and then deleted. - * Exceptions can also be set by the user. - * @see {@link Hyphenator~prepareLanguagesObj} - * @access private - */ - exceptions = {}, - - /** - * @member {Object.} Hyphenator~docLanguages - * @desc - * An object holding all languages used in the document. This is filled by - * {@link Hyphenator~gatherDocumentInfos} - * @access private - */ - docLanguages = {}, - - /** - * @member {string} Hyphenator~url - * @desc - * A string containing a insane RegularExpression to match URL's - * @access private - */ - url = '(?:\\w*:\/\/)?(?:(?:\\w*:)?(?:\\w*)@)?(?:(?:(?:[\\d]{1,3}\\.){3}(?:[\\d]{1,3}))|(?:(?:www\\.|[a-zA-Z]\\.)?[a-zA-Z0-9\\-\\.]+\\.(?:[a-z]{2,4})))(?::\\d*)?(?:\/[\\w#!:\\.?\\+=&%@!\\-]*)*', - // protocoll usr pwd ip or host tld port path - - /** - * @member {string} Hyphenator~mail - * @desc - * A string containing a RegularExpression to match mail-adresses - * @access private - */ - mail = '[\\w-\\.]+@[\\w\\.]+', - - /** - * @member {string} Hyphenator~zeroWidthSpace - * @desc - * A string that holds a char. - * Depending on the browser, this is the zero with space or an empty string. - * zeroWidthSpace is used to break URLs - * @access private - */ - zeroWidthSpace = (function () { - var zws, ua = window.navigator.userAgent.toLowerCase(); - zws = String.fromCharCode(8203); //Unicode zero width space - if (ua.indexOf('msie 6') !== -1) { - zws = ''; //IE6 doesn't support zws - } - if (ua.indexOf('opera') !== -1 && ua.indexOf('version/10.00') !== -1) { - zws = ''; //opera 10 on XP doesn't support zws - } - return zws; - }()), - - /** - * @method Hyphenator~onBeforeWordHyphenation - * @desc - * This method is called just before a word is hyphenated. - * It is called with two parameters: the word and its language. - * The method must return a string (aka the word). - * @see {@link Hyphenator.config} - * @access private - * @param {string} word - * @param {string} lang - * @return {string} The word that goes into hyphenation - */ - onBeforeWordHyphenation = function (word) { - return word; - }, - - /** - * @method Hyphenator~onAfterWordHyphenation - * @desc - * This method is called for each word after it is hyphenated. - * Takes the word as a first parameter and its language as a second parameter. - * Returns a string that will replace the word that has been hyphenated. - * @see {@link Hyphenator.config} - * @access private - * @param {string} word - * @param {string} lang - * @return {string} The word that goes into hyphenation - */ - onAfterWordHyphenation = function (word) { - return word; - }, - - /** - * @method Hyphenator~onHyphenationDone - * @desc - * A method to be called, when the last element has been hyphenated. - * If there are frames the method is called for each frame. - * Therefore the location.href of the contextWindow calling this method is given as a parameter - * @see {@link Hyphenator.config} - * @param {string} context - * @access private - */ - onHyphenationDone = function (context) { - return context; - }, - - /** - * @name Hyphenator~selectorFunction - * @desc - * A function set by the user that has to return a HTMLNodeList or array of Elements to be hyphenated. - * By default this is set to false so we can check if a selectorFunction is set… - * @see {@link Hyphenator.config} - * @see {@link Hyphenator~mySelectorFunction} - * @default false - * @type {function|boolean} - * @access private - */ - selectorFunction = false, - - /** - * @name Hyphenator~flattenNodeList - * @desc - * Takes a nodeList and returns an array with all elements that are not contained by another element in the nodeList - * By using this function the elements returned by selectElements can be 'flattened'. - * @see {@link Hyphenator~selectElements} - * @param {nodeList} nl - * @return {Array} Array of 'parent'-elements - * @access private - */ - flattenNodeList = function (nl) { - var parentElements = [], - i = 0, - j = 0, - isParent = true; - - parentElements.push(nl[0]); //add the first item, since this is always an parent - - for (i = 1; i < nl.length; i += 1) { //cycle through nodeList - for (j = 0; j < parentElements.length; j += 1) { //cycle through parentElements - if (parentElements[j].contains(nl[i])) { - isParent = false; - break; - } - } - if (isParent) { - parentElements.push(nl[i]); - } - isParent = true; - } - - return parentElements; - }, - - /** - * @method Hyphenator~mySelectorFunction - * @desc - * A function that returns a HTMLNodeList or array of Elements to be hyphenated. - * By default it uses the classname ('hyphenate') to select the elements. - * @access private - */ - mySelectorFunction = function (hyphenateClass) { - var tmp, el = [], i, l; - if (window.document.getElementsByClassName) { - el = contextWindow.document.getElementsByClassName(hyphenateClass); - } else if (window.document.querySelectorAll) { - el = contextWindow.document.querySelectorAll('.' + hyphenateClass); - } else { - tmp = contextWindow.document.getElementsByTagName('*'); - l = tmp.length; - for (i = 0; i < l; i += 1) { - if (tmp[i].className.indexOf(hyphenateClass) !== -1 && tmp[i].className.indexOf(dontHyphenateClass) === -1) { - el.push(tmp[i]); - } - } - } - return el; - }, - - /** - * @method Hyphenator~selectElements - * @desc - * A function that uses either selectorFunction set by the user - * or the default mySelectorFunction. - * @access private - */ - selectElements = function () { - var elems; - if (selectorFunction) { - elems = selectorFunction(); - } else { - elems = mySelectorFunction(hyphenateClass); - } - if (elems.length !== 0) { - elems = flattenNodeList(elems); - } - return elems; - }, - - /** - * @member {string} Hyphenator~intermediateState - * @desc - * The visibility of elements while they are hyphenated: - * 'visible': unhyphenated text is visible and then redrawn when hyphenated. - * 'hidden': unhyphenated text is made invisible as soon as possible and made visible after hyphenation. - * @default 'hidden' - * @see {@link Hyphenator.config} - * @access private - */ - intermediateState = 'hidden', - - /** - * @member {string} Hyphenator~unhide - * @desc - * How hidden elements unhide: either simultaneous (default: 'wait') or progressively. - * 'wait' makes Hyphenator.js to wait until all elements are hyphenated (one redraw) - * With 'progressive' Hyphenator.js unhides elements as soon as they are hyphenated. - * @see {@link Hyphenator.config} - * @access private - */ - unhide = 'wait', - - /** - * @member {Array.} Hyphenator~CSSEditors - * @desc A container array that holds CSSEdit classes - * For each window object one CSSEdit class is inserted - * @access private - */ - CSSEditors = [], - - /** - * @constructor Hyphenator~CSSEdit - * @desc - * This class handles access and editing of StyleSheets. - * Thanks to this styles (e.g. hiding and unhiding elements upon hyphenation) - * can be changed in one place instead for each element. - * @access private - */ - CSSEdit = function (w) { - w = w || window; - var doc = w.document, - /** - * @member {Object} Hyphenator~CSSEdit~sheet - * @desc - * A StyleSheet, where Hyphenator can write to. - * If no StyleSheet can be found, lets create one. - * @access private - */ - sheet = (function () { - var i, - l = doc.styleSheets.length, - s, - element, - r = false; - for (i = 0; i < l; i += 1) { - s = doc.styleSheets[i]; - try { - if (!!s.cssRules) { - r = s; - break; - } - } catch (ignore) {} - } - if (r === false) { - element = doc.createElement('style'); - element.type = 'text/css'; - doc.getElementsByTagName('head')[0].appendChild(element); - r = doc.styleSheets[doc.styleSheets.length - 1]; - } - return r; - }()), - - /** - * @typedef {Object} Hyphenator~CSSEdit~changes - * @property {Object} sheet - The StyleSheet where the change was made - * @property {number} index - The index of the changed rule - */ - - /** - * @member {Array.} Hyphenator~CSSEdit~changes - * @desc - * Sets a CSS rule for a specified selector - * @access private - */ - changes = [], - - /** - * @typedef Hyphenator~CSSEdit~rule - * @property {number} index - The index of the rule - * @property {Object} rule - The style rule - */ - /** - * @method Hyphenator~CSSEdit~findRule - * @desc - * Searches the StyleSheets for a given selector and returns an object containing the rule. - * If nothing can be found, false is returned. - * @param {string} sel - * @return {Hyphenator~CSSEdit~rule|false} - * @access private - */ - findRule = function (sel) { - var s, rule, sheets = w.document.styleSheets, rules, i, j, r = false; - for (i = 0; i < sheets.length; i += 1) { - s = sheets[i]; - try { //FF has issues here with external CSS (s.o.p) - if (!!s.cssRules) { - rules = s.cssRules; - } else if (!!s.rules) { - // IE < 9 - rules = s.rules; - } - } catch (ignore) {} - if (!!rules && !!rules.length) { - for (j = 0; j < rules.length; j += 1) { - rule = rules[j]; - if (rule.selectorText === sel) { - r = { - index: j, - rule: rule - }; - } - } - } - } - return r; - }, - /** - * @method Hyphenator~CSSEdit~addRule - * @desc - * Adds a rule to the {@link Hyphenator~CSSEdit~sheet} - * @param {string} sel - The selector to be added - * @param {string} rulesStr - The rules for the specified selector - * @return {number} index of the new rule - * @access private - */ - addRule = function (sel, rulesStr) { - var i, r; - if (!!sheet.insertRule) { - if (!!sheet.cssRules) { - i = sheet.cssRules.length; - } else { - i = 0; - } - r = sheet.insertRule(sel + '{' + rulesStr + '}', i); - } else if (!!sheet.addRule) { - // IE < 9 - if (!!sheet.rules) { - i = sheet.rules.length; - } else { - i = 0; - } - sheet.addRule(sel, rulesStr, i); - r = i; - } - return r; - }, - /** - * @method Hyphenator~CSSEdit~removeRule - * @desc - * Removes a rule with the specified index from the specified sheet - * @param {Object} sheet - The style sheet - * @param {number} index - the index of the rule - * @access private - */ - removeRule = function (sheet, index) { - if (sheet.deleteRule) { - sheet.deleteRule(index); - } else { - // IE < 9 - sheet.removeRule(index); - } - }; - - return { - /** - * @method Hyphenator~CSSEdit.setRule - * @desc - * Sets a CSS rule for a specified selector - * @access public - * @param {string} sel - Selector - * @param {string} rulesString - CSS-Rules - */ - setRule: function (sel, rulesString) { - var i, existingRule, cssText; - existingRule = findRule(sel); - if (!!existingRule) { - if (!!existingRule.rule.cssText) { - cssText = existingRule.rule.cssText; - } else { - // IE < 9 - cssText = existingRule.rule.style.cssText.toLowerCase(); - } - if (cssText !== sel + ' { ' + rulesString + ' }') { - //cssText of the found rule is not uniquely selector + rulesString, - if (cssText.indexOf(rulesString) !== -1) { - //maybe there are other rules or IE < 9 - //clear existing def - existingRule.rule.style.visibility = ''; - } - //add rule and register for later removal - i = addRule(sel, rulesString); - changes.push({sheet: sheet, index: i}); - } - } else { - i = addRule(sel, rulesString); - changes.push({sheet: sheet, index: i}); - } - }, - /** - * @method Hyphenator~CSSEdit.clearChanges - * @desc - * Removes all changes Hyphenator has made from the StyleSheets - * @access public - */ - clearChanges: function () { - var change = changes.pop(); - while (!!change) { - removeRule(change.sheet, change.index); - change = changes.pop(); - } - } - }; - }, - - /** - * @member {string} Hyphenator~hyphen - * @desc - * A string containing the character for in-word-hyphenation - * @default the soft hyphen - * @access private - * @see {@link Hyphenator.config} - */ - hyphen = String.fromCharCode(173), - - /** - * @member {string} Hyphenator~urlhyphen - * @desc - * A string containing the character for url/mail-hyphenation - * @default the zero width space - * @access private - * @see {@link Hyphenator.config} - * @see {@link Hyphenator~zeroWidthSpace} - */ - urlhyphen = zeroWidthSpace, - - /** - * @method Hyphenator~hyphenateURL - * @desc - * Puts {@link Hyphenator~urlhyphen} (default: zero width space) after each no-alphanumeric char that my be in a URL. - * @param {string} url to hyphenate - * @returns string the hyphenated URL - * @access public - */ - hyphenateURL = function (url) { - var tmp = url.replace(/([:\/\.\?#&\-_,;!@]+)/gi, '$&' + urlhyphen), - parts = tmp.split(urlhyphen), - i; - for (i = 0; i < parts.length; i += 1) { - if (parts[i].length > (2 * min)) { - parts[i] = parts[i].replace(/(\w{3})(\w)/gi, "$1" + urlhyphen + "$2"); - } - } - if (parts[parts.length - 1] === "") { - parts.pop(); - } - return parts.join(urlhyphen); - }, - - /** - * @member {boolean} Hyphenator~safeCopy - * @desc - * Defines wether work-around for copy issues is active or not - * @default true - * @access private - * @see {@link Hyphenator.config} - * @see {@link Hyphenator~registerOnCopy} - */ - safeCopy = true, - - /** - * @method Hyphenator~zeroTimeOut - * @desc - * defer execution of a function on the call stack - * Analog to window.setTimeout(fn, 0) but without a clamped delay if postMessage is supported - * @access private - * @see {@link http://dbaron.org/log/20100309-faster-timeouts} - */ - zeroTimeOut = (function () { - if (window.postMessage && window.addEventListener) { - return (function () { - var timeouts = [], - msg = "Hyphenator_zeroTimeOut_message", - setZeroTimeOut = function (fn) { - timeouts.push(fn); - window.postMessage(msg, "*"); - }, - handleMessage = function (event) { - if (event.source === window && event.data === msg) { - event.stopPropagation(); - if (timeouts.length > 0) { - //var efn = timeouts.shift(); - //efn(); - timeouts.shift()(); - } - } - }; - window.addEventListener("message", handleMessage, true); - return setZeroTimeOut; - }()); - } - return function (fn) { - window.setTimeout(fn, 0); - }; - }()), - - /** - * @member {Object} Hyphenator~hyphRunFor - * @desc - * stores location.href for documents where run() has been executed - * to warn when Hyphenator.run() executed multiple times - * @access private - * @see {@link Hyphenator~runWhenLoaded} - */ - hyphRunFor = {}, - - /** - * @method Hyphenator~runWhenLoaded - * @desc - * A crossbrowser solution for the DOMContentLoaded-Event based on - * jQuery - * I added some functionality: e.g. support for frames and iframes… - * @param {Object} w the window-object - * @param {function()} f the function to call when the document is ready - * @access private - */ - runWhenLoaded = function (w, f) { - var toplevel, - add = window.document.addEventListener ? 'addEventListener' : 'attachEvent', - rem = window.document.addEventListener ? 'removeEventListener' : 'detachEvent', - pre = window.document.addEventListener ? '' : 'on', - - init = function (context) { - if (hyphRunFor[context.location.href]) { - onWarning(new Error("Warning: multiple execution of Hyphenator.run() – This may slow down the script!")); - } - contextWindow = context || window; - f(); - hyphRunFor[contextWindow.location.href] = true; - }, - - doScrollCheck = function () { - try { - // If IE is used, use the trick by Diego Perini - // http://javascript.nwbox.com/IEContentLoaded/ - w.document.documentElement.doScroll("left"); - } catch (error) { - window.setTimeout(doScrollCheck, 1); - return; - } - //maybe modern IE fired DOMContentLoaded - if (!hyphRunFor[w.location.href]) { - documentLoaded = true; - init(w); - } - }, - - doOnEvent = function (e) { - var i, fl, haveAccess; - if (!!e && e.type === 'readystatechange' && w.document.readyState !== 'interactive' && w.document.readyState !== 'complete') { - return; - } - - //DOM is ready/interactive, but frames may not be loaded yet! - //cleanup events - w.document[rem](pre + 'DOMContentLoaded', doOnEvent, false); - w.document[rem](pre + 'readystatechange', doOnEvent, false); - - //check frames - fl = w.frames.length; - if (fl === 0 || !doFrames) { - //there are no frames! - //cleanup events - w[rem](pre + 'load', doOnEvent, false); - documentLoaded = true; - init(w); - } else if (doFrames && fl > 0) { - //we have frames, so wait for onload and then initiate runWhenLoaded recursevly for each frame: - if (!!e && e.type === 'load') { - //cleanup events - w[rem](pre + 'load', doOnEvent, false); - for (i = 0; i < fl; i += 1) { - haveAccess = undefined; - //try catch isn't enough for webkit - try { - //opera throws only on document.toString-access - haveAccess = w.frames[i].document.toString(); - } catch (err) { - haveAccess = undefined; - } - if (!!haveAccess) { - runWhenLoaded(w.frames[i], f); - } - } - init(w); - } - } - }; - if (documentLoaded || w.document.readyState === 'complete') { - //Hyphenator has run already (documentLoaded is true) or - //it has been loaded after onLoad - documentLoaded = true; - doOnEvent({type: 'load'}); - } else { - //register events - w.document[add](pre + 'DOMContentLoaded', doOnEvent, false); - w.document[add](pre + 'readystatechange', doOnEvent, false); - w[add](pre + 'load', doOnEvent, false); - toplevel = false; - try { - toplevel = !window.frameElement; - } catch (ignore) {} - if (toplevel && w.document.documentElement.doScroll) { - doScrollCheck(); //calls init() - } - } - }, - - /** - * @method Hyphenator~getLang - * @desc - * Gets the language of an element. If no language is set, it may use the {@link Hyphenator~mainLanguage}. - * @param {Object} el The first parameter is an DOM-Element-Object - * @param {boolean} fallback The second parameter is a boolean to tell if the function should return the {@link Hyphenator~mainLanguage} - * if there's no language found for the element. - * @return {string} The language of the element - * @access private - */ - getLang = function (el, fallback) { - try { - return !!el.getAttribute('lang') ? el.getAttribute('lang').toLowerCase() : - !!el.getAttribute('xml:lang') ? el.getAttribute('xml:lang').toLowerCase() : - el.tagName.toLowerCase() !== 'html' ? getLang(el.parentNode, fallback) : - fallback ? mainLanguage : - null; - } catch (ignore) {} - }, - - /** - * @method Hyphenator~autoSetMainLanguage - * @desc - * Retrieves the language of the document from the DOM and sets the lang attribute of the html-tag. - * The function looks in the following places: - *
    - *
  • lang-attribute in the html-tag
  • - *
  • <meta http-equiv = "content-language" content = "xy" />
  • - *
  • <meta name = "DC.Language" content = "xy" />
  • - *
  • <meta name = "language" content = "xy" />
  • - * - * If nothing can be found a prompt using {@link Hyphenator~languageHint} and a prompt-string is displayed. - * If the retrieved language is in the object {@link Hyphenator~supportedLangs} it is copied to {@link Hyphenator~mainLanguage} - * @access private - */ - autoSetMainLanguage = function (w) { - w = w || contextWindow; - var el = w.document.getElementsByTagName('html')[0], - m = w.document.getElementsByTagName('meta'), - i, - getLangFromUser = function () { - var ml, - text = '', - dH = 300, - dW = 450, - dX = Math.floor((w.outerWidth - dW) / 2) + window.screenX, - dY = Math.floor((w.outerHeight - dH) / 2) + window.screenY, - ul = '', - languageHint; - if (!!window.showModalDialog && (w.location.href.indexOf(basePath) !== -1)) { - ml = window.showModalDialog(basePath + 'modalLangDialog.html', supportedLangs, "dialogWidth: " + dW + "px; dialogHeight: " + dH + "px; dialogtop: " + dY + "; dialogleft: " + dX + "; center: on; resizable: off; scroll: off;"); - } else { - languageHint = (function () { - var k, r = ''; - for (k in supportedLangs) { - if (supportedLangs.hasOwnProperty(k)) { - r += k + ', '; - } - } - r = r.substring(0, r.length - 2); - return r; - }()); - ul = window.navigator.language || window.navigator.userLanguage; - ul = ul.substring(0, 2); - if (!!supportedLangs[ul] && supportedLangs[ul].prompt !== '') { - text = supportedLangs[ul].prompt; - } else { - text = supportedLangs.en.prompt; - } - text += ' (ISO 639-1)\n\n' + languageHint; - ml = window.prompt(window.unescape(text), ul).toLowerCase(); - } - return ml; - }; - mainLanguage = getLang(el, false); - if (!mainLanguage) { - for (i = 0; i < m.length; i += 1) { - // - if (!!m[i].getAttribute('http-equiv') && (m[i].getAttribute('http-equiv').toLowerCase() === 'content-language')) { - mainLanguage = m[i].getAttribute('content').toLowerCase(); - } - // - if (!!m[i].getAttribute('name') && (m[i].getAttribute('name').toLowerCase() === 'dc.language')) { - mainLanguage = m[i].getAttribute('content').toLowerCase(); - } - // - if (!!m[i].getAttribute('name') && (m[i].getAttribute('name').toLowerCase() === 'language')) { - mainLanguage = m[i].getAttribute('content').toLowerCase(); - } - } - } - //get lang for frame from enclosing document - if (!mainLanguage && doFrames && (!!contextWindow.frameElement)) { - autoSetMainLanguage(window.parent); - } - //fallback to defaultLang if set - if (!mainLanguage && defaultLanguage !== '') { - mainLanguage = defaultLanguage; - } - //ask user for lang - if (!mainLanguage) { - mainLanguage = getLangFromUser(); - } - el.lang = mainLanguage; - }, - - /** - * @method Hyphenator~gatherDocumentInfos - * @desc - * This method runs through the DOM and executes the process()-function on: - * - every node returned by the {@link Hyphenator~selectorFunction}. - * @access private - */ - gatherDocumentInfos = function () { - var elToProcess, urlhyphenEls, tmp, i = 0, - /** - * @method Hyphenator~gatherDocumentInfos - * @desc - * This method copies the element to the elements-variable, sets its visibility - * to intermediateState, retrieves its language and recursivly descends the DOM-tree until - * the child-Nodes aren't of type 1 - * @param {Object} el a DOM element - * @param {string} plang the language of the parent element - * @param {boolean} isChild true, if the parent of el has been processed - */ - process = function (el, pLang, isChild) { - isChild = isChild || false; - var n, j = 0, hyphenate = true, eLang, - useCSS3 = function () { - css3hyphenateClassHandle = new CSSEdit(contextWindow); - css3hyphenateClassHandle.setRule('.' + css3hyphenateClass, css3_h9n.property + ': auto;'); - css3hyphenateClassHandle.setRule('.' + dontHyphenateClass, css3_h9n.property + ': manual;'); - if ((eLang !== pLang) && css3_h9n.property.indexOf('webkit') !== -1) { - css3hyphenateClassHandle.setRule('.' + css3hyphenateClass, '-webkit-locale : ' + eLang + ';'); - } - el.className = el.className + ' ' + css3hyphenateClass; - }, - useHyphenator = function () { - //quick fix for test111.html - //better: weight elements - if (isBookmarklet && eLang !== mainLanguage) { - return; - } - if (supportedLangs.hasOwnProperty(eLang)) { - docLanguages[eLang] = true; - } else { - if (supportedLangs.hasOwnProperty(eLang.split('-')[0])) { //try subtag - eLang = eLang.split('-')[0]; - docLanguages[eLang] = true; - } else if (!isBookmarklet) { - hyphenate = false; - onError(new Error('Language "' + eLang + '" is not yet supported.')); - } - } - if (hyphenate) { - if (intermediateState === 'hidden') { - el.className = el.className + ' ' + hideClass; - } - elements.add(el, eLang); - } - }; - - if (el.lang && typeof (el.lang) === 'string') { - eLang = el.lang.toLowerCase(); //copy attribute-lang to internal eLang - } else if (!!pLang && pLang !== '') { - eLang = pLang.toLowerCase(); - } else { - eLang = getLang(el, true); - } - - if (!isChild) { - if (css3 && css3_h9n.support && !!css3_h9n.checkLangSupport(eLang)) { - useCSS3(); - } else { - useHyphenator(); - } - } else { - if (eLang !== pLang) { - if (css3 && css3_h9n.support && !!css3_h9n.checkLangSupport(eLang)) { - useCSS3(); - } else { - useHyphenator(); - } - } else { - if (!css3 || !css3_h9n.support || !css3_h9n.checkLangSupport(eLang)) { - useHyphenator(); - } // else do nothing - } - } - n = el.childNodes[j]; - while (!!n) { - if (n.nodeType === 1 && !dontHyphenate[n.nodeName.toLowerCase()] && - n.className.indexOf(dontHyphenateClass) === -1 && - n.className.indexOf(urlHyphenateClass) === -1 && !elToProcess[n]) { - process(n, eLang, true); - } - j += 1; - n = el.childNodes[j]; - } - }, - processUrlStyled = function (el) { - var n, j = 0; - - n = el.childNodes[j]; - while (!!n) { - if (n.nodeType === 1 && !dontHyphenate[n.nodeName.toLowerCase()] && - n.className.indexOf(dontHyphenateClass) === -1 && - n.className.indexOf(hyphenateClass) === -1 && !urlhyphenEls[n]) { - processUrlStyled(n); - } else if (n.nodeType === 3) { - n.data = hyphenateURL(n.data); - } - j += 1; - n = el.childNodes[j]; - } - }; - - if (css3) { - css3_gethsupport(); - } - if (isBookmarklet) { - elToProcess = contextWindow.document.getElementsByTagName('body')[0]; - process(elToProcess, mainLanguage, false); - } else { - if (!css3 && intermediateState === 'hidden') { - CSSEditors.push(new CSSEdit(contextWindow)); - CSSEditors[CSSEditors.length - 1].setRule('.' + hyphenateClass, 'visibility: hidden;'); - CSSEditors[CSSEditors.length - 1].setRule('.' + hideClass, 'visibility: hidden;'); - CSSEditors[CSSEditors.length - 1].setRule('.' + unhideClass, 'visibility: visible;'); - } - elToProcess = selectElements(); - tmp = elToProcess[i]; - while (!!tmp) { - process(tmp, '', false); - i += 1; - tmp = elToProcess[i]; - } - - urlhyphenEls = mySelectorFunction(urlHyphenateClass); - i = 0; - tmp = urlhyphenEls[i]; - while (!!tmp) { - processUrlStyled(tmp); - i += 1; - tmp = urlhyphenEls[i]; - } - } - if (elements.count === 0) { - //nothing to hyphenate or all hyphenated by css3 - for (i = 0; i < CSSEditors.length; i += 1) { - CSSEditors[i].clearChanges(); - } - onHyphenationDone(contextWindow.location.href); - } - }, - - /** - * @method Hyphenator~createCharMap - * @desc - * reads the charCodes from lo.characters and stores them in a bidi map: - * charMap.int2code = [0: 97, //a - * 1: 98, //b - * 2: 99] //c etc. - * charMap.code2int = {"97": 0, //a - * "98": 1, //b - * "99": 2} //c etc. - * @access private - * @param {Object} language object - */ - CharMap = function () { - this.int2code = []; - this.code2int = {}; - this.add = function (newValue) { - if (!this.code2int[newValue]) { - this.int2code.push(newValue); - this.code2int[newValue] = this.int2code.length - 1; - } - }; - }, - - /** - * @constructor Hyphenator~ValueStore - * @desc Storage-Object for storing hyphenation points (aka values) - * @access private - */ - ValueStore = function (len) { - this.keys = (function () { - var i, r; - if (Object.prototype.hasOwnProperty.call(window, "Uint8Array")) { //IE<9 doesn't have window.hasOwnProperty (host object) - return new window.Uint8Array(len); - } - r = []; - r.length = len; - for (i = r.length - 1; i >= 0; i -= 1) { - r[i] = 0; - } - return r; - }()); - this.startIndex = 1; - this.actualIndex = 2; - this.lastValueIndex = 2; - this.add = function (p) { - this.keys[this.actualIndex] = p; - this.lastValueIndex = this.actualIndex; - this.actualIndex += 1; - }; - this.add0 = function () { - //just do a step, since array is initialized with zeroes - this.actualIndex += 1; - }; - this.finalize = function () { - var start = this.startIndex; - this.keys[start] = this.lastValueIndex - start; - this.startIndex = this.lastValueIndex + 1; - this.actualIndex = this.lastValueIndex + 2; - return start; - }; - }, - - /** - * @method Hyphenator~convertPatternsToArray - * @desc - * converts the patterns to a (typed, if possible) array as described by Liang: - * - * 1. Create the CharMap: an alphabet of used character codes mapped to an int (e.g. a: "97" -> 0) - * This map is bidirectional: - * charMap.code2int is an object with charCodes as keys and corresponging ints as values - * charMao.int2code is an array of charCodes at int indizes - * the length of charMao.int2code is equal the length of the alphabet - * - * 2. Create a ValueStore: (typed) array that holds "values", i.e. the digits extracted from the patterns - * The first value starts at index 1 (since the trie is initialized with zeroes, starting at 0 would create errors) - * Each value starts with its length at index i, actual values are stored in i + n where n < length - * Trailing 0 are not stored. So pattern values like e.g. "010200" will become […,4,0,1,0,2,…] - * The ValueStore-Object manages handling of indizes automatically. Use ValueStore.add(p) to add a running value. - * Use ValueStore.finalize() when the last value of a pattern is added. It will set the length and return the starting index of the pattern. - * To prevent doubles we could temporarly store the values in a object {value: startIndex} and only add new values, - * but this object deoptimizes very fast (new hidden map for each entry); here we gain speed and pay memory - * - * 3. Create and zero initialize a (typed) array to store the trie. The trie uses two slots for each entry/node: - * i: a link to another position in the array or -1 if the pattern ends here or more rows have to be added. - * i + 1: a link to a value in the ValueStore or 0 if there's no value for the path to this node. - * Although the array is one-dimensional it can be described as an array of "rows", - * where each "row" is an array of length trieRowLength (see below). - * The first entry of this "row" represents the first character of the alphabet, the second a possible link to value store, - * the third represents the second character of the alphabet and so on… - * - * 4. Initialize trieRowLength (length of the alphabet * 2) - * - * 5. Now we apply extract to each pattern collection (patterns of the same length are collected and concatenated to one string) - * extract goes through these pattern collections char by char and adds them either to the ValueStore (if they are digits) or - * to the trie (adding more "rows" if necessary, i.e. if the last link pointed to -1). - * So the first "row" holds all starting characters, where the subsequent rows hold the characters that follow the - * character that link to this row. Therefor the array is dense at the beginning and very sparse at the end. - * - * - * @access private - * @param {Object} language object - */ - convertPatternsToArray = function (lo) { - var trieNextEmptyRow = 0, - i, - charMapc2i, - valueStore, - indexedTrie, - trieRowLength, - - extract = function (patternSizeInt, patterns) { - var charPos = 0, - charCode = 0, - mappedCharCode = 0, - rowStart = 0, - nextRowStart = 0, - prevWasDigit = false; - for (charPos = 0; charPos < patterns.length; charPos += 1) { - charCode = patterns.charCodeAt(charPos); - if ((charPos + 1) % patternSizeInt !== 0) { - //more to come… - if (charCode <= 57 && charCode >= 49) { - //charCode is a digit - valueStore.add(charCode - 48); - prevWasDigit = true; - } else { - //charCode is alphabetical - if (!prevWasDigit) { - valueStore.add0(); - } - prevWasDigit = false; - if (nextRowStart === -1) { - nextRowStart = trieNextEmptyRow + trieRowLength; - trieNextEmptyRow = nextRowStart; - indexedTrie[rowStart + mappedCharCode * 2] = nextRowStart; - } - mappedCharCode = charMapc2i[charCode]; - rowStart = nextRowStart; - nextRowStart = indexedTrie[rowStart + mappedCharCode * 2]; - if (nextRowStart === 0) { - indexedTrie[rowStart + mappedCharCode * 2] = -1; - nextRowStart = -1; - } - } - } else { - //last part of pattern - if (charCode <= 57 && charCode >= 49) { - //the last charCode is a digit - valueStore.add(charCode - 48); - indexedTrie[rowStart + mappedCharCode * 2 + 1] = valueStore.finalize(); - } else { - //the last charCode is alphabetical - if (!prevWasDigit) { - valueStore.add0(); - } - valueStore.add0(); - if (nextRowStart === -1) { - nextRowStart = trieNextEmptyRow + trieRowLength; - trieNextEmptyRow = nextRowStart; - indexedTrie[rowStart + mappedCharCode * 2] = nextRowStart; - } - mappedCharCode = charMapc2i[charCode]; - rowStart = nextRowStart; - if (indexedTrie[rowStart + mappedCharCode * 2] === 0) { - indexedTrie[rowStart + mappedCharCode * 2] = -1; - } - indexedTrie[rowStart + mappedCharCode * 2 + 1] = valueStore.finalize(); - } - rowStart = 0; - nextRowStart = 0; - prevWasDigit = false; - } - } - };/*, - prettyPrintIndexedTrie = function (rowLength) { - var s = "0: ", - idx; - for (idx = 0; idx < indexedTrie.length; idx += 1) { - s += indexedTrie[idx]; - s += ","; - if ((idx + 1) % rowLength === 0) { - s += "\n" + (idx + 1) + ": "; - } - } - console.log(s); - };*/ - - lo.charMap = new CharMap(); - for (i = 0; i < lo.patternChars.length; i += 1) { - lo.charMap.add(lo.patternChars.charCodeAt(i)); - } - charMapc2i = lo.charMap.code2int; - - lo.valueStore = valueStore = new ValueStore(lo.valueStoreLength); - - if (Object.prototype.hasOwnProperty.call(window, "Int32Array")) { //IE<9 doesn't have window.hasOwnProperty (host object) - lo.indexedTrie = new window.Int32Array(lo.patternArrayLength * 2); - } else { - lo.indexedTrie = []; - lo.indexedTrie.length = lo.patternArrayLength * 2; - for (i = lo.indexedTrie.length - 1; i >= 0; i -= 1) { - lo.indexedTrie[i] = 0; - } - } - indexedTrie = lo.indexedTrie; - trieRowLength = lo.charMap.int2code.length * 2; - - for (i in lo.patterns) { - if (lo.patterns.hasOwnProperty(i)) { - extract(parseInt(i, 10), lo.patterns[i]); - } - } - //prettyPrintIndexedTrie(lo.charMap.int2code.length * 2); - }, - - /** - * @method Hyphenator~recreatePattern - * @desc - * Recreates the pattern for the reducedPatternSet - * @param {string} pattern The pattern (chars) - * @param {string} nodePoints The nodePoints (integers) - * @access private - * @return {string} The pattern (chars and numbers) - */ - recreatePattern = function (pattern, nodePoints) { - var r = [], c = pattern.split(''), i; - for (i = 0; i <= c.length; i += 1) { - if (nodePoints[i] && nodePoints[i] !== 0) { - r.push(nodePoints[i]); - } - if (c[i]) { - r.push(c[i]); - } - } - return r.join(''); - }, - - /** - * @method Hyphenator~convertExceptionsToObject - * @desc - * Converts a list of comma seprated exceptions to an object: - * 'Fortran,Hy-phen-a-tion' -> {'Fortran':'Fortran','Hyphenation':'Hy-phen-a-tion'} - * @access private - * @param {string} exc a comma separated string of exceptions (without spaces) - * @return {Object.} - */ - convertExceptionsToObject = function (exc) { - var w = exc.split(', '), - r = {}, - i, - l, - key; - for (i = 0, l = w.length; i < l; i += 1) { - key = w[i].replace(/-/g, ''); - if (!r.hasOwnProperty(key)) { - r[key] = w[i]; - } - } - return r; - }, - - /** - * @method Hyphenator~loadPatterns - * @desc - * Checks if the requested file is available in the network. - * Adds a <script>-Tag to the DOM to load an externeal .js-file containing patterns and settings for the given language. - * If the given language is not in the {@link Hyphenator~supportedLangs}-Object it returns. - * One may ask why we are not using AJAX to load the patterns. The XMLHttpRequest-Object - * has a same-origin-policy. This makes the Bookmarklet impossible. - * @param {string} lang The language to load the patterns for - * @access private - * @see {@link Hyphenator~basePath} - */ - loadPatterns = function (lang, cb) { - var location, xhr, head, script, done = false; - if (supportedLangs.hasOwnProperty(lang) && !Hyphenator.languages[lang]) { - location = basePath + 'patterns/' + supportedLangs[lang].file; - } else { - return; - } - if (isLocal && !isBookmarklet) { - //check if 'location' is available: - xhr = null; - try { - // Mozilla, Opera, Safari and Internet Explorer (ab v7) - xhr = new window.XMLHttpRequest(); - } catch (e) { - try { - //IE>=6 - xhr = new window.ActiveXObject("Microsoft.XMLHTTP"); - } catch (e2) { - try { - //IE>=5 - xhr = new window.ActiveXObject("Msxml2.XMLHTTP"); - } catch (e3) { - xhr = null; - } - } - } - - if (xhr) { - xhr.open('HEAD', location, true); - xhr.setRequestHeader('Cache-Control', 'no-cache'); - xhr.onreadystatechange = function () { - if (xhr.readyState === 2) { - if (xhr.status >= 400) { - onError(new Error('Could not load\n' + location)); - delete docLanguages[lang]; - return; - } - xhr.abort(); - } - }; - xhr.send(null); - } - } - if (createElem) { - head = window.document.getElementsByTagName('head').item(0); - script = createElem('script', window); - script.src = location; - script.type = 'text/javascript'; - script.charset = 'utf8'; - script.onload = script.onreadystatechange = function () { - if (!done && (!this.readyState || this.readyState === "loaded" || this.readyState === "complete")) { - done = true; - - cb(); - - // Handle memory leak in IE - script.onload = script.onreadystatechange = null; - if (head && script.parentNode) { - head.removeChild(script); - } - } - }; - head.appendChild(script); - } - }, - - /** - * @method Hyphenator~prepareLanguagesObj - * @desc - * Adds some feature to the language object: - * - cache - * - exceptions - * Converts the patterns to a trie using {@link Hyphenator~convertPatterns} - * @access private - * @param {string} lang The language of the language object - */ - prepareLanguagesObj = function (lang) { - var lo = Hyphenator.languages[lang], wrd; - - if (!lo.prepared) { - if (enableCache) { - lo.cache = {}; - //Export - //lo['cache'] = lo.cache; - } - if (enableReducedPatternSet) { - lo.redPatSet = {}; - } - //add exceptions from the pattern file to the local 'exceptions'-obj - if (lo.hasOwnProperty('exceptions')) { - Hyphenator.addExceptions(lang, lo.exceptions); - delete lo.exceptions; - } - //copy global exceptions to the language specific exceptions - if (exceptions.hasOwnProperty('global')) { - if (exceptions.hasOwnProperty(lang)) { - exceptions[lang] += ', ' + exceptions.global; - } else { - exceptions[lang] = exceptions.global; - } - } - //move exceptions from the local 'exceptions'-obj to the 'language'-object - if (exceptions.hasOwnProperty(lang)) { - lo.exceptions = convertExceptionsToObject(exceptions[lang]); - delete exceptions[lang]; - } else { - lo.exceptions = {}; - } - convertPatternsToArray(lo); - if (String.prototype.normalize) { - wrd = '[\\w' + lo.specialChars + lo.specialChars.normalize("NFD") + String.fromCharCode(173) + String.fromCharCode(8204) + '-]{' + min + ',}'; - } else { - wrd = '[\\w' + lo.specialChars + String.fromCharCode(173) + String.fromCharCode(8204) + '-]{' + min + ',}'; - } - lo.genRegExp = new RegExp('(' + wrd + ')|(' + url + ')|(' + mail + ')', 'gi'); - lo.prepared = true; - } - }, - - /**** - * @method Hyphenator~prepare - * @desc - * This funtion prepares the Hyphenator~Object: If RemoteLoading is turned off, it assumes - * that the patternfiles are loaded, all conversions are made and the callback is called. - * If storage is active the object is retrieved there. - * If RemoteLoading is on (default), it loads the pattern files and repeatedly checks Hyphenator.languages. - * If a patternfile is loaded the patterns are stored in storage (if enabled), - * converted to their object style and the lang-object extended. - * Finally the callback is called. - * @access private - */ - prepare = function (callback) { - var lang, tmp1, tmp2, - languagesLoaded = function () { - var l; - for (l in docLanguages) { - if (docLanguages.hasOwnProperty(l)) { - if (Hyphenator.languages.hasOwnProperty(l)) { - delete docLanguages[l]; - if (!!storage) { - storage.setItem(l, window.JSON.stringify(Hyphenator.languages[l])); - } - prepareLanguagesObj(l); - callback(l); - } - } - } - }; - - if (!enableRemoteLoading) { - for (lang in Hyphenator.languages) { - if (Hyphenator.languages.hasOwnProperty(lang)) { - prepareLanguagesObj(lang); - } - } - callback('*'); - return; - } - // get all languages that are used and preload the patterns - for (lang in docLanguages) { - if (docLanguages.hasOwnProperty(lang)) { - if (!!storage && storage.test(lang)) { - Hyphenator.languages[lang] = window.JSON.parse(storage.getItem(lang)); - prepareLanguagesObj(lang); - if (exceptions.hasOwnProperty('global')) { - tmp1 = convertExceptionsToObject(exceptions.global); - for (tmp2 in tmp1) { - if (tmp1.hasOwnProperty(tmp2)) { - Hyphenator.languages[lang].exceptions[tmp2] = tmp1[tmp2]; - } - } - } - //Replace exceptions since they may have been changed: - if (exceptions.hasOwnProperty(lang)) { - tmp1 = convertExceptionsToObject(exceptions[lang]); - for (tmp2 in tmp1) { - if (tmp1.hasOwnProperty(tmp2)) { - Hyphenator.languages[lang].exceptions[tmp2] = tmp1[tmp2]; - } - } - delete exceptions[lang]; - } - //Replace genRegExp since it may have been changed: - if (String.prototype.normalize) { - tmp1 = '[\\w' + Hyphenator.languages[lang].specialChars + Hyphenator.languages[lang].specialChars.normalize("NFD") + String.fromCharCode(173) + String.fromCharCode(8204) + '-]{' + min + ',}'; - } else { - tmp1 = '[\\w' + Hyphenator.languages[lang].specialChars + String.fromCharCode(173) + String.fromCharCode(8204) + '-]{' + min + ',}'; - } - Hyphenator.languages[lang].genRegExp = new RegExp('(' + tmp1 + ')|(' + url + ')|(' + mail + ')', 'gi'); - if (enableCache) { - if (!Hyphenator.languages[lang].cache) { - Hyphenator.languages[lang].cache = {}; - } - } - delete docLanguages[lang]; - callback(lang); - } else { - loadPatterns(lang, languagesLoaded); - } - } - } - //call languagesLoaded in case language has been loaded manually - //and remoteLoading is on (onload won't fire) - languagesLoaded(); - }, - - /** - * @method Hyphenator~toggleBox - * @desc - * Creates the toggleBox: a small button to turn off/on hyphenation on a page. - * @see {@link Hyphenator.config} - * @access private - */ - toggleBox = function () { - var bdy, myTextNode, - text = (Hyphenator.doHyphenation ? 'Hy-phen-a-tion' : 'Hyphenation'), - myBox = contextWindow.document.getElementById('HyphenatorToggleBox'); - if (!!myBox) { - myBox.firstChild.data = text; - } else { - bdy = contextWindow.document.getElementsByTagName('body')[0]; - myBox = createElem('div', contextWindow); - myBox.setAttribute('id', 'HyphenatorToggleBox'); - myBox.setAttribute('class', dontHyphenateClass); - myTextNode = contextWindow.document.createTextNode(text); - myBox.appendChild(myTextNode); - myBox.onclick = Hyphenator.toggleHyphenation; - myBox.style.position = 'absolute'; - myBox.style.top = '0px'; - myBox.style.right = '0px'; - myBox.style.zIndex = '1000'; - myBox.style.margin = '0'; - myBox.style.backgroundColor = '#AAAAAA'; - myBox.style.color = '#FFFFFF'; - myBox.style.font = '6pt Arial'; - myBox.style.letterSpacing = '0.2em'; - myBox.style.padding = '3px'; - myBox.style.cursor = 'pointer'; - myBox.style.WebkitBorderBottomLeftRadius = '4px'; - myBox.style.MozBorderRadiusBottomleft = '4px'; - myBox.style.borderBottomLeftRadius = '4px'; - bdy.appendChild(myBox); - } - }, - - /** - * @method Hyphenator~doCharSubst - * @desc - * Replace chars in a word - * - * @param {Object} loCharSubst Map of substitutions ({'ä': 'a', 'ü': 'u', …}) - * @param {string} w the word - * @returns string The word with substituted characers - * @access private - */ - doCharSubst = function (loCharSubst, w) { - var subst, r; - for (subst in loCharSubst) { - if (loCharSubst.hasOwnProperty(subst)) { - r = w.replace(new RegExp(subst, 'g'), loCharSubst[subst]); - } - } - return r; - }, - - /** - * @member {Array} Hyphenator~wwAsMappedCharCodeStore - * @desc - * Array (typed if supported) container for charCodes - * @access private - * @see {@link Hyphenator~hyphenateWord} - */ - wwAsMappedCharCodeStore = (function () { - if (Object.prototype.hasOwnProperty.call(window, "Int32Array")) { - return new window.Int32Array(32); - } - return []; - }()), - - /** - * @member {Array} Hyphenator~wwhpStore - * @desc - * Array (typed if supported) container for hyphenation points - * @access private - * @see {@link Hyphenator~hyphenateWord} - */ - wwhpStore = (function () { - var r; - if (Object.prototype.hasOwnProperty.call(window, "Uint8Array")) { - r = new window.Uint8Array(32); - } else { - r = []; - } - return r; - }()), - - /** - * @method Hyphenator~hyphenateWord - * @desc - * This function is the heart of Hyphenator.js. It returns a hyphenated word. - * - * If there's already a {@link Hyphenator~hypen} in the word, the word is returned as it is. - * If the word is in the exceptions list or in the cache, it is retrieved from it. - * If there's a '-' hyphenate the parts. - * The hyphenated word is returned and (if acivated) cached. - * Both special Events onBeforeWordHyphenation and onAfterWordHyphenation are called for the word. - * @param {Object} lo A language object (containing the patterns) - * @param {string} lang The language of the word - * @param {string} word The word - * @returns string The hyphenated word - * @access private - */ - hyphenateWord = function (lo, lang, word) { - var parts, - i, - pattern = "", - ww, - wwlen, - wwhp = wwhpStore, - pstart, - plen, - hp, - wordLength = word.length, - hw = '', - charMap = lo.charMap.code2int, - charCode, - mappedCharCode, - row = 0, - link = 0, - value = 0, - values, - indexedTrie = lo.indexedTrie, - valueStore = lo.valueStore.keys, - wwAsMappedCharCode = wwAsMappedCharCodeStore; - - word = onBeforeWordHyphenation(word, lang); - if (word === '') { - hw = ''; - } else if (enableCache && lo.cache && lo.cache.hasOwnProperty(word)) { //the word is in the cache - hw = lo.cache[word]; - } else if (word.indexOf(hyphen) !== -1) { - //word already contains shy; -> leave at it is! - hw = word; - } else if (lo.exceptions.hasOwnProperty(word)) { //the word is in the exceptions list - hw = lo.exceptions[word].replace(/-/g, hyphen); - } else if (word.indexOf('-') !== -1) { - //word contains '-' -> hyphenate the parts separated with '-' - parts = word.split('-'); - for (i = 0; i < parts.length; i += 1) { - parts[i] = hyphenateWord(lo, lang, parts[i]); - } - hw = parts.join('-'); - } else { - ww = word.toLowerCase(); - if (String.prototype.normalize) { - ww = ww.normalize("NFC"); - } - if (lo.hasOwnProperty("charSubstitution")) { - ww = doCharSubst(lo.charSubstitution, ww); - } - if (word.indexOf("'") !== -1) { - ww = ww.replace(/'/g, "’"); //replace APOSTROPHE with RIGHT SINGLE QUOTATION MARK (since the latter is used in the patterns) - } - ww = '_' + ww + '_'; - wwlen = ww.length; - //prepare wwhp and wwAsMappedCharCode - for (pstart = 0; pstart < wwlen; pstart += 1) { - wwhp[pstart] = 0; - charCode = ww.charCodeAt(pstart); - if (charMap[charCode] !== undefined) { - wwAsMappedCharCode[pstart] = charMap[charCode]; - } else { - wwAsMappedCharCode[pstart] = -1; - } - } - //get hyphenation points for all substrings - for (pstart = 0; pstart < wwlen; pstart += 1) { - row = 0; - pattern = ''; - for (plen = pstart; plen < wwlen; plen += 1) { - mappedCharCode = wwAsMappedCharCode[plen]; - if (mappedCharCode === -1) { - break; - } - if (enableReducedPatternSet) { - pattern += ww.charAt(plen); - } - link = indexedTrie[row + mappedCharCode * 2]; - value = indexedTrie[row + mappedCharCode * 2 + 1]; - if (value > 0) { - hp = valueStore[value]; - while (hp) { - hp -= 1; - if (valueStore[value + 1 + hp] > wwhp[pstart + hp]) { - wwhp[pstart + hp] = valueStore[value + 1 + hp]; - } - } - if (enableReducedPatternSet) { - if (!lo.redPatSet) { - lo.redPatSet = {}; - } - if (valueStore.subarray) { - values = valueStore.subarray(value + 1, value + 1 + valueStore[value]); - } else { - values = valueStore.slice(value + 1, value + 1 + valueStore[value]); - } - lo.redPatSet[pattern] = recreatePattern(pattern, values); - } - } - if (link > 0) { - row = link; - } else { - break; - } - } - } - //create hyphenated word - for (hp = 0; hp < wordLength; hp += 1) { - if (hp >= lo.leftmin && hp <= (wordLength - lo.rightmin) && (wwhp[hp + 1] % 2) !== 0) { - hw += hyphen + word.charAt(hp); - } else { - hw += word.charAt(hp); - } - } - } - hw = onAfterWordHyphenation(hw, lang); - if (enableCache) { //put the word in the cache - lo.cache[word] = hw; - } - return hw; - }, - - /** - * @method Hyphenator~removeHyphenationFromElement - * @desc - * Removes all hyphens from the element. If there are other elements, the function is - * called recursively. - * Removing hyphens is usefull if you like to copy text. Some browsers are buggy when the copy hyphenated texts. - * @param {Object} el The element where to remove hyphenation. - * @access public - */ - removeHyphenationFromElement = function (el) { - var h, u, i = 0, n; - switch (hyphen) { - case '|': - h = '\\|'; - break; - case '+': - h = '\\+'; - break; - case '*': - h = '\\*'; - break; - default: - h = hyphen; - } - switch (urlhyphen) { - case '|': - u = '\\|'; - break; - case '+': - u = '\\+'; - break; - case '*': - u = '\\*'; - break; - default: - u = urlhyphen; - } - n = el.childNodes[i]; - while (!!n) { - if (n.nodeType === 3) { - n.data = n.data.replace(new RegExp(h, 'g'), ''); - n.data = n.data.replace(new RegExp(u, 'g'), ''); - } else if (n.nodeType === 1) { - removeHyphenationFromElement(n); - } - i += 1; - n = el.childNodes[i]; - } - }, - - copy = (function () { - var Copy = function () { - - this.oncopyHandler = function (e) { - e = e || window.event; - var shadow, selection, range, rangeShadow, restore, - target = e.target || e.srcElement, - currDoc = target.ownerDocument, - bdy = currDoc.getElementsByTagName('body')[0], - targetWindow = currDoc.defaultView || currDoc.parentWindow; - if (target.tagName && dontHyphenate[target.tagName.toLowerCase()]) { - //Safari needs this - return; - } - //create a hidden shadow element - shadow = currDoc.createElement('div'); - //Moving the element out of the screen doesn't work for IE9 (https://connect.microsoft.com/IE/feedback/details/663981/) - //shadow.style.overflow = 'hidden'; - //shadow.style.position = 'absolute'; - //shadow.style.top = '-5000px'; - //shadow.style.height = '1px'; - //doing this instead: - shadow.style.color = window.getComputedStyle ? targetWindow.getComputedStyle(bdy, null).backgroundColor : '#FFFFFF'; - shadow.style.fontSize = '0px'; - bdy.appendChild(shadow); - if (!!window.getSelection) { - //FF3, Webkit, IE9 - e.stopPropagation(); - selection = targetWindow.getSelection(); - range = selection.getRangeAt(0); - shadow.appendChild(range.cloneContents()); - removeHyphenationFromElement(shadow); - selection.selectAllChildren(shadow); - restore = function () { - shadow.parentNode.removeChild(shadow); - selection.removeAllRanges(); //IE9 needs that - selection.addRange(range); - }; - } else { - // IE<9 - e.cancelBubble = true; - selection = targetWindow.document.selection; - range = selection.createRange(); - shadow.innerHTML = range.htmlText; - removeHyphenationFromElement(shadow); - rangeShadow = bdy.createTextRange(); - rangeShadow.moveToElementText(shadow); - rangeShadow.select(); - restore = function () { - shadow.parentNode.removeChild(shadow); - if (range.text !== "") { - range.select(); - } - }; - } - zeroTimeOut(restore); - }; - - this.removeOnCopy = function (el) { - var body = el.ownerDocument.getElementsByTagName('body')[0]; - if (!body) { - return; - } - el = el || body; - if (window.removeEventListener) { - el.removeEventListener("copy", this.oncopyHandler, true); - } else { - el.detachEvent("oncopy", this.oncopyHandler); - } - }; - - this.registerOnCopy = function (el) { - var body = el.ownerDocument.getElementsByTagName('body')[0]; - if (!body) { - return; - } - el = el || body; - if (window.addEventListener) { - el.addEventListener("copy", this.oncopyHandler, true); - } else { - el.attachEvent("oncopy", this.oncopyHandler); - } - }; - }; - - return (safeCopy ? new Copy() : false); - }()), - - - /** - * @method Hyphenator~checkIfAllDone - * @desc - * Checks if all elements in {@link Hyphenator~elements} are hyphenated, unhides them and fires onHyphenationDone() - * @access private - */ - checkIfAllDone = function () { - var allDone = true, i, doclist = {}, doc; - elements.each(function (ellist) { - var j, l = ellist.length; - for (j = 0; j < l; j += 1) { - allDone = allDone && ellist[j].hyphenated; - if (!doclist.hasOwnProperty(ellist[j].element.baseURI)) { - doclist[ellist[j].element.ownerDocument.location.href] = true; - } - doclist[ellist[j].element.ownerDocument.location.href] = doclist[ellist[j].element.ownerDocument.location.href] && ellist[j].hyphenated; - } - }); - if (allDone) { - if (intermediateState === 'hidden' && unhide === 'progressive') { - elements.each(function (ellist) { - var j, l = ellist.length, el; - for (j = 0; j < l; j += 1) { - el = ellist[j].element; - el.className = el.className.replace(unhideClassRegExp, ''); - if (el.className === '') { - el.removeAttribute('class'); - } - } - }); - } - for (i = 0; i < CSSEditors.length; i += 1) { - CSSEditors[i].clearChanges(); - } - for (doc in doclist) { - if (doclist.hasOwnProperty(doc) && doc === contextWindow.location.href) { - onHyphenationDone(doc); - } - } - if (!!storage && storage.deferred.length > 0) { - for (i = 0; i < storage.deferred.length; i += 1) { - storage.deferred[i].call(); - } - storage.deferred = []; - } - } - }, - - /** - * @method Hyphenator~controlOrphans - * @desc - * removes orphans depending on the 'orphanControl'-setting: - * orphanControl === 1: do nothing - * orphanControl === 2: prevent last word to be hyphenated - * orphanControl === 3: prevent one word on a last line (inserts a nobreaking space) - * @param {string} part - The sring where orphans have to be removed - * @access private - */ - controlOrphans = function (part) { - var h, r; - switch (hyphen) { - case '|': - h = '\\|'; - break; - case '+': - h = '\\+'; - break; - case '*': - h = '\\*'; - break; - default: - h = hyphen; - } - //strip off blank space at the end (omitted closing tags) - part = part.replace(/[\s]*$/, ''); - if (orphanControl >= 2) { - //remove hyphen points from last word - r = part.split(' '); - r[1] = r[1].replace(new RegExp(h, 'g'), ''); - r[1] = r[1].replace(new RegExp(zeroWidthSpace, 'g'), ''); - r = r.join(' '); - } - if (orphanControl === 3) { - //replace spaces by non breaking spaces - r = r.replace(/[ ]+/g, String.fromCharCode(160)); - } - return r; - }, - - /** - * @method Hyphenator~hyphenateElement - * @desc - * Takes the content of the given element and - if there's text - replaces the words - * by hyphenated words. If there's another element, the function is called recursively. - * When all words are hyphenated, the visibility of the element is set to 'visible'. - * @param {string} lang - The language-code of the element - * @param {Element} elo - The element to hyphenate {@link Hyphenator~elements~ElementCollection~Element} - * @access private - */ - hyphenateElement = function (lang, elo) { - var el = elo.element, - hyphenate, - n, - i, - lo; - if (Hyphenator.languages.hasOwnProperty(lang) && Hyphenator.doHyphenation) { - lo = Hyphenator.languages[lang]; - hyphenate = function (match, word, url, mail) { - var r; - if (!!url || !!mail) { - r = hyphenateURL(match); - } else { - r = hyphenateWord(lo, lang, word); - } - return r; - }; - if (safeCopy && (el.tagName.toLowerCase() !== 'body')) { - copy.registerOnCopy(el); - } - i = 0; - n = el.childNodes[i]; - while (!!n) { - if (n.nodeType === 3 //type 3 = #text - && /\S/.test(n.data) //not just white space - && n.data.length >= min) { //longer then min - n.data = n.data.replace(lo.genRegExp, hyphenate); - if (orphanControl !== 1) { - n.data = n.data.replace(/[\S]+ [\S]+[\s]*$/, controlOrphans); - } - } - i += 1; - n = el.childNodes[i]; - } - } - if (intermediateState === 'hidden' && unhide === 'wait') { - el.className = el.className.replace(hideClassRegExp, ''); - if (el.className === '') { - el.removeAttribute('class'); - } - } - if (intermediateState === 'hidden' && unhide === 'progressive') { - el.className = el.className.replace(hideClassRegExp, ' ' + unhideClass); - } - elo.hyphenated = true; - elements.hyCount += 1; - if (elements.count <= elements.hyCount) { - checkIfAllDone(); - } - }, - - /** - * @method Hyphenator~hyphenateLanguageElements - * @desc - * Calls hyphenateElement() for all elements of the specified language. - * If the language is '*' then all elements are hyphenated. - * This is done with a setTimout - * to prevent a "long running Script"-alert when hyphenating large pages. - * Therefore a tricky bind()-function was necessary. - * @param {string} lang The language of the elements to hyphenate - * @access private - */ - - hyphenateLanguageElements = function (lang) { - /*function bind(fun, arg1, arg2) { - return function () { - return fun(arg1, arg2); - }; - }*/ - var i, l; - if (lang === '*') { - elements.each(function (lang, ellist) { - var j, le = ellist.length; - for (j = 0; j < le; j += 1) { - //zeroTimeOut(bind(hyphenateElement, lang, ellist[j])); - hyphenateElement(lang, ellist[j]); - } - }); - } else { - if (elements.list.hasOwnProperty(lang)) { - l = elements.list[lang].length; - for (i = 0; i < l; i += 1) { - //zeroTimeOut(bind(hyphenateElement, lang, elements.list[lang][i])); - hyphenateElement(lang, elements.list[lang][i]); - } - } - } - }, - - /** - * @method Hyphenator~removeHyphenationFromDocument - * @desc - * Does what it says and unregisters the onCopyEvent from the elements - * @access private - */ - removeHyphenationFromDocument = function () { - elements.each(function (ellist) { - var i, l = ellist.length; - for (i = 0; i < l; i += 1) { - removeHyphenationFromElement(ellist[i].element); - if (safeCopy) { - copy.removeOnCopy(ellist[i].element); - } - ellist[i].hyphenated = false; - } - }); - }, - - /** - * @method Hyphenator~createStorage - * @desc - * inits the private var {@link Hyphenator~storage) depending of the setting in {@link Hyphenator~storageType} - * and the supported features of the system. - * @access private - */ - createStorage = function () { - var s; - try { - if (storageType !== 'none' && - window.JSON !== undefined && - window.localStorage !== undefined && - window.sessionStorage !== undefined && - window.JSON.stringify !== undefined && - window.JSON.parse !== undefined) { - switch (storageType) { - case 'session': - s = window.sessionStorage; - break; - case 'local': - s = window.localStorage; - break; - default: - s = undefined; - break; - } - //check for private mode - s.setItem('storageTest', '1'); - s.removeItem('storageTest'); - } - } catch (e) { - //FF throws an error if DOM.storage.enabled is set to false - s = undefined; - } - if (s) { - storage = { - prefix: 'Hyphenator_' + Hyphenator.version + '_', - store: s, - deferred: [], - test: function (name) { - var val = this.store.getItem(this.prefix + name); - return (!!val) ? true : false; - }, - getItem: function (name) { - return this.store.getItem(this.prefix + name); - }, - setItem: function (name, value) { - try { - this.store.setItem(this.prefix + name, value); - } catch (e) { - onError(e); - } - } - }; - } else { - storage = undefined; - } - }, - - /** - * @method Hyphenator~storeConfiguration - * @desc - * Stores the current config-options in DOM-Storage - * @access private - */ - storeConfiguration = function () { - if (!storage) { - return; - } - var settings = { - 'STORED': true, - 'classname': hyphenateClass, - 'urlclassname': urlHyphenateClass, - 'donthyphenateclassname': dontHyphenateClass, - 'minwordlength': min, - 'hyphenchar': hyphen, - 'urlhyphenchar': urlhyphen, - 'togglebox': toggleBox, - 'displaytogglebox': displayToggleBox, - 'remoteloading': enableRemoteLoading, - 'enablecache': enableCache, - 'enablereducedpatternset': enableReducedPatternSet, - 'onhyphenationdonecallback': onHyphenationDone, - 'onerrorhandler': onError, - 'onwarninghandler': onWarning, - 'intermediatestate': intermediateState, - 'selectorfunction': selectorFunction || mySelectorFunction, - 'safecopy': safeCopy, - 'doframes': doFrames, - 'storagetype': storageType, - 'orphancontrol': orphanControl, - 'dohyphenation': Hyphenator.doHyphenation, - 'persistentconfig': persistentConfig, - 'defaultlanguage': defaultLanguage, - 'useCSS3hyphenation': css3, - 'unhide': unhide, - 'onbeforewordhyphenation': onBeforeWordHyphenation, - 'onafterwordhyphenation': onAfterWordHyphenation - }; - storage.setItem('config', window.JSON.stringify(settings)); - }, - - /** - * @method Hyphenator~restoreConfiguration - * @desc - * Retrieves config-options from DOM-Storage and does configuration accordingly - * @access private - */ - restoreConfiguration = function () { - var settings; - if (storage.test('config')) { - settings = window.JSON.parse(storage.getItem('config')); - Hyphenator.config(settings); - } - }; - - return { - - /** - * @member {string} Hyphenator.version - * @desc - * String containing the actual version of Hyphenator.js - * [major release].[minor releas].[bugfix release] - * major release: new API, new Features, big changes - * minor release: new languages, improvements - * @access public - */ - version: '5.1.0', - - /** - * @member {boolean} Hyphenator.doHyphenation - * @desc - * If doHyphenation is set to false, hyphenateDocument() isn't called. - * All other actions are performed. - * @default true - */ - doHyphenation: true, - - /** - * @typedef {Object} Hyphenator.languages.language - * @property {Number} leftmin - The minimum of chars to remain on the old line - * @property {Number} rightmin - The minimum of chars to go on the new line - * @property {string} specialChars - Non-ASCII chars in the alphabet. - * @property {Object.} patterns - the patterns in a compressed format. The key is the length of the patterns in the value string. - * @property {Object.} charSubstitution - optional: a hash table with chars that are replaced during hyphenation - * @property {string | Object.} exceptions - optional: a csv string containing exceptions - */ - - /** - * @member {Object.} Hyphenator.languages - * @desc - * Objects that holds key-value pairs, where key is the language and the value is the - * language-object loaded from (and set by) the pattern file. - * @namespace Hyphenator.languages - * @access public - */ - languages: {}, - - - /** - * @method Hyphenator.config - * @desc - * The Hyphenator.config() function that takes an object as an argument. The object contains key-value-pairs - * containig Hyphenator-settings. - * @param {Hyphenator.config} obj - * @access public - * @example - * <script src = "Hyphenator.js" type = "text/javascript"></script> -  * <script type = "text/javascript"> -  * Hyphenator.config({'minwordlength':4,'hyphenchar':'|'}); - * Hyphenator.run(); -  * </script> - */ - config: function (obj) { - var assert = function (name, type) { - var r, t; - t = typeof obj[name]; - if (t === type) { - r = true; - } else { - onError(new Error('Config onError: ' + name + ' must be of type ' + type)); - r = false; - } - return r; - }, - key; - - if (obj.hasOwnProperty('storagetype')) { - if (assert('storagetype', 'string')) { - storageType = obj.storagetype; - } - if (!storage) { - createStorage(); - } - } - if (!obj.hasOwnProperty('STORED') && storage && obj.hasOwnProperty('persistentconfig') && obj.persistentconfig === true) { - restoreConfiguration(); - } - - for (key in obj) { - if (obj.hasOwnProperty(key)) { - switch (key) { - case 'STORED': - break; - case 'classname': - if (assert('classname', 'string')) { - hyphenateClass = obj[key]; - } - break; - case 'urlclassname': - if (assert('urlclassname', 'string')) { - urlHyphenateClass = obj[key]; - } - break; - case 'donthyphenateclassname': - if (assert('donthyphenateclassname', 'string')) { - dontHyphenateClass = obj[key]; - } - break; - case 'minwordlength': - if (assert('minwordlength', 'number')) { - min = obj[key]; - } - break; - case 'hyphenchar': - if (assert('hyphenchar', 'string')) { - if (obj.hyphenchar === '­') { - obj.hyphenchar = String.fromCharCode(173); - } - hyphen = obj[key]; - } - break; - case 'urlhyphenchar': - if (obj.hasOwnProperty('urlhyphenchar')) { - if (assert('urlhyphenchar', 'string')) { - urlhyphen = obj[key]; - } - } - break; - case 'togglebox': - if (assert('togglebox', 'function')) { - toggleBox = obj[key]; - } - break; - case 'displaytogglebox': - if (assert('displaytogglebox', 'boolean')) { - displayToggleBox = obj[key]; - } - break; - case 'remoteloading': - if (assert('remoteloading', 'boolean')) { - enableRemoteLoading = obj[key]; - } - break; - case 'enablecache': - if (assert('enablecache', 'boolean')) { - enableCache = obj[key]; - } - break; - case 'enablereducedpatternset': - if (assert('enablereducedpatternset', 'boolean')) { - enableReducedPatternSet = obj[key]; - } - break; - case 'onhyphenationdonecallback': - if (assert('onhyphenationdonecallback', 'function')) { - onHyphenationDone = obj[key]; - } - break; - case 'onerrorhandler': - if (assert('onerrorhandler', 'function')) { - onError = obj[key]; - } - break; - case 'onwarninghandler': - if (assert('onwarninghandler', 'function')) { - onWarning = obj[key]; - } - break; - case 'intermediatestate': - if (assert('intermediatestate', 'string')) { - intermediateState = obj[key]; - } - break; - case 'selectorfunction': - if (assert('selectorfunction', 'function')) { - selectorFunction = obj[key]; - } - break; - case 'safecopy': - if (assert('safecopy', 'boolean')) { - safeCopy = obj[key]; - } - break; - case 'doframes': - if (assert('doframes', 'boolean')) { - doFrames = obj[key]; - } - break; - case 'storagetype': - if (assert('storagetype', 'string')) { - storageType = obj[key]; - } - break; - case 'orphancontrol': - if (assert('orphancontrol', 'number')) { - orphanControl = obj[key]; - } - break; - case 'dohyphenation': - if (assert('dohyphenation', 'boolean')) { - Hyphenator.doHyphenation = obj[key]; - } - break; - case 'persistentconfig': - if (assert('persistentconfig', 'boolean')) { - persistentConfig = obj[key]; - } - break; - case 'defaultlanguage': - if (assert('defaultlanguage', 'string')) { - defaultLanguage = obj[key]; - } - break; - case 'useCSS3hyphenation': - if (assert('useCSS3hyphenation', 'boolean')) { - css3 = obj[key]; - } - break; - case 'unhide': - if (assert('unhide', 'string')) { - unhide = obj[key]; - } - break; - case 'onbeforewordhyphenation': - if (assert('onbeforewordhyphenation', 'function')) { - onBeforeWordHyphenation = obj[key]; - } - break; - case 'onafterwordhyphenation': - if (assert('onafterwordhyphenation', 'function')) { - onAfterWordHyphenation = obj[key]; - } - break; - default: - onError(new Error('Hyphenator.config: property ' + key + ' not known.')); - } - } - } - if (storage && persistentConfig) { - storeConfiguration(); - } - }, - - /** - * @method Hyphenator.run - * @desc - * Bootstrap function that starts all hyphenation processes when called: - * Tries to create storage if required and calls {@link Hyphenator~runWhenLoaded} on 'window' handing over the callback 'process' - * @access public - * @example - * <script src = "Hyphenator.js" type = "text/javascript"></script> -  * <script type = "text/javascript"> -  *   Hyphenator.run(); -  * </script> - */ - run: function () { - /** - *@callback Hyphenator.run~process process - The function is called when the DOM has loaded (or called for each frame) - */ - var process = function () { - try { - if (contextWindow.document.getElementsByTagName('frameset').length > 0) { - return; //we are in a frameset - } - autoSetMainLanguage(undefined); - gatherDocumentInfos(); - if (displayToggleBox) { - toggleBox(); - } - prepare(hyphenateLanguageElements); - } catch (e) { - onError(e); - } - }; - - if (!storage) { - createStorage(); - } - runWhenLoaded(window, process); - }, - - /** - * @method Hyphenator.addExceptions - * @desc - * Adds the exceptions from the string to the appropriate language in the - * {@link Hyphenator~languages}-object - * @param {string} lang The language - * @param {string} words A comma separated string of hyphenated words WITH spaces. - * @access public - * @example <script src = "Hyphenator.js" type = "text/javascript"></script> -  * <script type = "text/javascript"> -  *   Hyphenator.addExceptions('de','ziem-lich, Wach-stube'); - * Hyphenator.run(); -  * </script> - */ - addExceptions: function (lang, words) { - if (lang === '') { - lang = 'global'; - } - if (exceptions.hasOwnProperty(lang)) { - exceptions[lang] += ", " + words; - } else { - exceptions[lang] = words; - } - }, - - /** - * @method Hyphenator.hyphenate - * @access public - * @desc - * Hyphenates the target. The language patterns must be loaded. - * If the target is a string, the hyphenated string is returned, - * if it's an object, the values are hyphenated directly and undefined (aka nothing) is returned - * @param {string|Object} target the target to be hyphenated - * @param {string} lang the language of the target - * @returns {string|undefined} - * @example <script src = "Hyphenator.js" type = "text/javascript"></script> - * <script src = "patterns/en.js" type = "text/javascript"></script> -  * <script type = "text/javascript"> - * var t = Hyphenator.hyphenate('Hyphenation', 'en'); //Hy|phen|ation - * </script> - */ - hyphenate: function (target, lang) { - var hyphenate, n, i, lo; - lo = Hyphenator.languages[lang]; - if (Hyphenator.languages.hasOwnProperty(lang)) { - if (!lo.prepared) { - prepareLanguagesObj(lang); - } - hyphenate = function (match, word, url, mail) { - var r; - if (!!url || !!mail) { - r = hyphenateURL(match); - } else { - r = hyphenateWord(lo, lang, word); - } - return r; - }; - if (typeof target === 'object' && !(typeof target === 'string' || target.constructor === String)) { - i = 0; - n = target.childNodes[i]; - while (!!n) { - if (n.nodeType === 3 //type 3 = #text - && /\S/.test(n.data) //not just white space - && n.data.length >= min) { //longer then min - n.data = n.data.replace(lo.genRegExp, hyphenate); - } else if (n.nodeType === 1) { - if (n.lang !== '') { - Hyphenator.hyphenate(n, n.lang); - } else { - Hyphenator.hyphenate(n, lang); - } - } - i += 1; - n = target.childNodes[i]; - } - } else if (typeof target === 'string' || target.constructor === String) { - return target.replace(lo.genRegExp, hyphenate); - } - } else { - onError(new Error('Language "' + lang + '" is not loaded.')); - } - }, - - /** - * @method Hyphenator.getRedPatternSet - * @desc - * Returns the reduced pattern set: an object looking like: {'patk': pat} - * @param {string} lang the language patterns are stored for - * @returns {Object.} - * @access public - */ - getRedPatternSet: function (lang) { - return Hyphenator.languages[lang].redPatSet; - }, - - /** - * @method Hyphenator.isBookmarklet - * @desc - * Returns {@link Hyphenator~isBookmarklet}. - * @returns {boolean} - * @access public - */ - isBookmarklet: function () { - return isBookmarklet; - }, - - /** - * @method Hyphenator.getConfigFromURI - * @desc - * reads and sets configurations from GET parameters in the URI - * @access public - */ - getConfigFromURI: function () { - /*jslint evil: true*/ - var loc = null, re = {}, jsArray = contextWindow.document.getElementsByTagName('script'), i, j, l, s, gp, option; - for (i = 0, l = jsArray.length; i < l; i += 1) { - if (!!jsArray[i].getAttribute('src')) { - loc = jsArray[i].getAttribute('src'); - } - if (loc && (loc.indexOf('Hyphenator.js?') !== -1)) { - s = loc.indexOf('Hyphenator.js?'); - gp = loc.substring(s + 14).split('&'); - for (j = 0; j < gp.length; j += 1) { - option = gp[j].split('='); - if (option[0] !== 'bm') { - if (option[1] === 'true') { - option[1] = true; - } else if (option[1] === 'false') { - option[1] = false; - } else if (isFinite(option[1])) { - option[1] = parseInt(option[1], 10); - } - if (option[0] === 'togglebox' || - option[0] === 'onhyphenationdonecallback' || - option[0] === 'onerrorhandler' || - option[0] === 'selectorfunction' || - option[0] === 'onbeforewordhyphenation' || - option[0] === 'onafterwordhyphenation') { - option[1] = new Function('', option[1]); - } - re[option[0]] = option[1]; - } - } - break; - } - } - return re; - }, - - /** - * @method Hyphenator.toggleHyphenation - * @desc - * Checks the current state of the ToggleBox and removes or does hyphenation. - * @access public - */ - toggleHyphenation: function () { - if (Hyphenator.doHyphenation) { - if (!!css3hyphenateClassHandle) { - css3hyphenateClassHandle.setRule('.' + css3hyphenateClass, css3_h9n.property + ': none;'); - } - removeHyphenationFromDocument(); - Hyphenator.doHyphenation = false; - storeConfiguration(); - toggleBox(); - } else { - if (!!css3hyphenateClassHandle) { - css3hyphenateClassHandle.setRule('.' + css3hyphenateClass, css3_h9n.property + ': auto;'); - } - Hyphenator.doHyphenation = true; - hyphenateLanguageElements('*'); - storeConfiguration(); - toggleBox(); - } - } - }; -}(window)); - -//Export properties/methods (for google closure compiler) -/**** to be moved to external file -Hyphenator['languages'] = Hyphenator.languages; -Hyphenator['config'] = Hyphenator.config; -Hyphenator['run'] = Hyphenator.run; -Hyphenator['addExceptions'] = Hyphenator.addExceptions; -Hyphenator['hyphenate'] = Hyphenator.hyphenate; -Hyphenator['getRedPatternSet'] = Hyphenator.getRedPatternSet; -Hyphenator['isBookmarklet'] = Hyphenator.isBookmarklet; -Hyphenator['getConfigFromURI'] = Hyphenator.getConfigFromURI; -Hyphenator['toggleHyphenation'] = Hyphenator.toggleHyphenation; -window['Hyphenator'] = Hyphenator; -*/ - -/* - * call Hyphenator if it is a Bookmarklet - */ -if (Hyphenator.isBookmarklet()) { - Hyphenator.config({displaytogglebox: true, intermediatestate: 'visible', storagetype: 'local', doframes: true, useCSS3hyphenation: true}); - Hyphenator.config(Hyphenator.getConfigFromURI()); - Hyphenator.run(); -} \ No newline at end of file diff --git a/resources/viewer/hyphenate/patterns.zip b/resources/viewer/hyphenate/patterns.zip deleted file mode 100644 index a29121cd82871fece60ac65afa88da4cc7944cae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 628424 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Ç+Yb&IL$yEM(t4}2^+Ynybq|5v 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 z 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�eo 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�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 diff --git a/resources/viewer/hyphenation.js b/resources/viewer/hyphenation.js deleted file mode 100644 index d5c6fd5fac..0000000000 --- a/resources/viewer/hyphenation.js +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Hyphenation - * Copyright 2008 Kovid Goyal - * License: GNU GPL v3 - */ - -function do_hyphenation(lang) { - Hyphenator.config( - { - 'minwordlength' : 6, - // 'hyphenchar' : '|', - 'displaytogglebox' : false, - 'remoteloading' : false, - 'doframes' : true, - 'defaultlanguage' : 'en', - 'storagetype' : 'session', - 'onerrorhandler' : function (e) { - window.py_bridge.debug(e); - } - }); - // console.log(lang); - Hyphenator.hyphenate(document.body, lang); -} - -function hyphenate_text(text, lang) { - return Hyphenator.hyphenate(text, lang); -} - diff --git a/resources/viewer/images.js b/resources/viewer/images.js deleted file mode 100644 index 78c3241140..0000000000 --- a/resources/viewer/images.js +++ /dev/null @@ -1,52 +0,0 @@ -/* - * images management - * Copyright 2008 Kovid Goyal - * License: GNU GPL v3 - */ - -function scale_images() { - $("img:visible").each(function() { - var img = $(this); - var offset = img.offset(); - var avail_width = window.innerWidth - offset.left - 5; - var avail_height = window.innerHeight - 5; - img.css('width', img.data('orig-width')); - img.css('height', img.data('orig-height')); - var width = img.width(); - var height = img.height(); - var ratio = 0; - - if (width > avail_width) { - ratio = avail_width / width; - img.css('width', avail_width+'px'); - img.css('height', (ratio*height) + 'px'); - height = height * ratio; - width = width * ratio; - } - - if (height > avail_height) { - ratio = avail_height / height; - img.css('height', avail_height); - img.css('width', width * ratio); - } - //window.py_bridge.debug(window.getComputedStyle(this, '').getPropertyValue('max-width')); - }); -} - -function store_original_size_attributes() { - $("img").each(function() { - var img = $(this); - img.data('orig-width', img.css('width')); - img.data('orig-height', img.css('height')); - }); -} - -function setup_image_scaling_handlers() { - store_original_size_attributes(); - scale_images(); - $(window).resize(function(){ - scale_images(); - }); -} - - diff --git a/resources/viewer/jquery.js b/resources/viewer/jquery.js deleted file mode 100644 index fff6776433..0000000000 --- a/resources/viewer/jquery.js +++ /dev/null @@ -1,6240 +0,0 @@ -/*! - * jQuery JavaScript Library v1.4.2 - * http://jquery.com/ - * - * Copyright 2010, John Resig - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * Copyright 2010, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * - * Date: Sat Feb 13 22:33:48 2010 -0500 - */ -(function( window, undefined ) { - -// Define a local copy of jQuery -var jQuery = function( selector, context ) { - // The jQuery object is actually just the init constructor 'enhanced' - return new jQuery.fn.init( selector, context ); - }, - - // Map over jQuery in case of overwrite - _jQuery = window.jQuery, - - // Map over the $ in case of overwrite - _$ = window.$, - - // Use the correct document accordingly with window argument (sandbox) - document = window.document, - - // A central reference to the root jQuery(document) - rootjQuery, - - // A simple way to check for HTML strings or ID strings - // (both of which we optimize for) - quickExpr = /^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/, - - // Is it a simple selector - isSimple = /^.[^:#\[\.,]*$/, - - // Check if a string has a non-whitespace character in it - rnotwhite = /\S/, - - // Used for trimming whitespace - rtrim = /^(\s|\u00A0)+|(\s|\u00A0)+$/g, - - // Match a standalone tag - rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/, - - // Keep a UserAgent string for use with jQuery.browser - userAgent = navigator.userAgent, - - // For matching the engine and version of the browser - browserMatch, - - // Has the ready events already been bound? - readyBound = false, - - // The functions to execute on DOM ready - readyList = [], - - // The ready event handler - DOMContentLoaded, - - // Save a reference to some core methods - toString = Object.prototype.toString, - hasOwnProperty = Object.prototype.hasOwnProperty, - push = Array.prototype.push, - slice = Array.prototype.slice, - indexOf = Array.prototype.indexOf; - -jQuery.fn = jQuery.prototype = { - init: function( selector, context ) { - var match, elem, ret, doc; - - // Handle $(""), $(null), or $(undefined) - if ( !selector ) { - return this; - } - - // Handle $(DOMElement) - if ( selector.nodeType ) { - this.context = this[0] = selector; - this.length = 1; - return this; - } - - // The body element only exists once, optimize finding it - if ( selector === "body" && !context ) { - this.context = document; - this[0] = document.body; - this.selector = "body"; - this.length = 1; - return this; - } - - // Handle HTML strings - if ( typeof selector === "string" ) { - // Are we dealing with HTML string or an ID? - match = quickExpr.exec( selector ); - - // Verify a match, and that no context was specified for #id - if ( match && (match[1] || !context) ) { - - // HANDLE: $(html) -> $(array) - if ( match[1] ) { - doc = (context ? context.ownerDocument || context : document); - - // If a single string is passed in and it's a single tag - // just do a createElement and skip the rest - ret = rsingleTag.exec( selector ); - - if ( ret ) { - if ( jQuery.isPlainObject( context ) ) { - selector = [ document.createElement( ret[1] ) ]; - jQuery.fn.attr.call( selector, context, true ); - - } else { - selector = [ doc.createElement( ret[1] ) ]; - } - - } else { - ret = buildFragment( [ match[1] ], [ doc ] ); - selector = (ret.cacheable ? ret.fragment.cloneNode(true) : ret.fragment).childNodes; - } - - return jQuery.merge( this, selector ); - - // HANDLE: $("#id") - } else { - elem = document.getElementById( match[2] ); - - if ( elem ) { - // Handle the case where IE and Opera return items - // by name instead of ID - if ( elem.id !== match[2] ) { - return rootjQuery.find( selector ); - } - - // Otherwise, we inject the element directly into the jQuery object - this.length = 1; - this[0] = elem; - } - - this.context = document; - this.selector = selector; - return this; - } - - // HANDLE: $("TAG") - } else if ( !context && /^\w+$/.test( selector ) ) { - this.selector = selector; - this.context = document; - selector = document.getElementsByTagName( selector ); - return jQuery.merge( this, selector ); - - // HANDLE: $(expr, $(...)) - } else if ( !context || context.jquery ) { - return (context || rootjQuery).find( selector ); - - // HANDLE: $(expr, context) - // (which is just equivalent to: $(context).find(expr) - } else { - return jQuery( context ).find( selector ); - } - - // HANDLE: $(function) - // Shortcut for document ready - } else if ( jQuery.isFunction( selector ) ) { - return rootjQuery.ready( selector ); - } - - if (selector.selector !== undefined) { - this.selector = selector.selector; - this.context = selector.context; - } - - return jQuery.makeArray( selector, this ); - }, - - // Start with an empty selector - selector: "", - - // The current version of jQuery being used - jquery: "1.4.2", - - // The default length of a jQuery object is 0 - length: 0, - - // The number of elements contained in the matched element set - size: function() { - return this.length; - }, - - toArray: function() { - return slice.call( this, 0 ); - }, - - // Get the Nth element in the matched element set OR - // Get the whole matched element set as a clean array - get: function( num ) { - return num == null ? - - // Return a 'clean' array - this.toArray() : - - // Return just the object - ( num < 0 ? this.slice(num)[ 0 ] : this[ num ] ); - }, - - // Take an array of elements and push it onto the stack - // (returning the new matched element set) - pushStack: function( elems, name, selector ) { - // Build a new jQuery matched element set - var ret = jQuery(); - - if ( jQuery.isArray( elems ) ) { - push.apply( ret, elems ); - - } else { - jQuery.merge( ret, elems ); - } - - // Add the old object onto the stack (as a reference) - ret.prevObject = this; - - ret.context = this.context; - - if ( name === "find" ) { - ret.selector = this.selector + (this.selector ? " " : "") + selector; - } else if ( name ) { - ret.selector = this.selector + "." + name + "(" + selector + ")"; - } - - // Return the newly-formed element set - return ret; - }, - - // Execute a callback for every element in the matched set. - // (You can seed the arguments with an array of args, but this is - // only used internally.) - each: function( callback, args ) { - return jQuery.each( this, callback, args ); - }, - - ready: function( fn ) { - // Attach the listeners - jQuery.bindReady(); - - // If the DOM is already ready - if ( jQuery.isReady ) { - // Execute the function immediately - fn.call( document, jQuery ); - - // Otherwise, remember the function for later - } else if ( readyList ) { - // Add the function to the wait list - readyList.push( fn ); - } - - return this; - }, - - eq: function( i ) { - return i === -1 ? - this.slice( i ) : - this.slice( i, +i + 1 ); - }, - - first: function() { - return this.eq( 0 ); - }, - - last: function() { - return this.eq( -1 ); - }, - - slice: function() { - return this.pushStack( slice.apply( this, arguments ), - "slice", slice.call(arguments).join(",") ); - }, - - map: function( callback ) { - return this.pushStack( jQuery.map(this, function( elem, i ) { - return callback.call( elem, i, elem ); - })); - }, - - end: function() { - return this.prevObject || jQuery(null); - }, - - // For internal use only. - // Behaves like an Array's method, not like a jQuery method. - push: push, - sort: [].sort, - splice: [].splice -}; - -// Give the init function the jQuery prototype for later instantiation -jQuery.fn.init.prototype = jQuery.fn; - -jQuery.extend = jQuery.fn.extend = function() { - // copy reference to target object - var target = arguments[0] || {}, i = 1, length = arguments.length, deep = false, options, name, src, copy; - - // Handle a deep copy situation - if ( typeof target === "boolean" ) { - deep = target; - target = arguments[1] || {}; - // skip the boolean and the target - i = 2; - } - - // Handle case when target is a string or something (possible in deep copy) - if ( typeof target !== "object" && !jQuery.isFunction(target) ) { - target = {}; - } - - // extend jQuery itself if only one argument is passed - if ( length === i ) { - target = this; - --i; - } - - for ( ; i < length; i++ ) { - // Only deal with non-null/undefined values - if ( (options = arguments[ i ]) != null ) { - // Extend the base object - for ( name in options ) { - src = target[ name ]; - copy = options[ name ]; - - // Prevent never-ending loop - if ( target === copy ) { - continue; - } - - // Recurse if we're merging object literal values or arrays - if ( deep && copy && ( jQuery.isPlainObject(copy) || jQuery.isArray(copy) ) ) { - var clone = src && ( jQuery.isPlainObject(src) || jQuery.isArray(src) ) ? src - : jQuery.isArray(copy) ? [] : {}; - - // Never move original objects, clone them - target[ name ] = jQuery.extend( deep, clone, copy ); - - // Don't bring in undefined values - } else if ( copy !== undefined ) { - target[ name ] = copy; - } - } - } - } - - // Return the modified object - return target; -}; - -jQuery.extend({ - noConflict: function( deep ) { - window.$ = _$; - - if ( deep ) { - window.jQuery = _jQuery; - } - - return jQuery; - }, - - // Is the DOM ready to be used? Set to true once it occurs. - isReady: false, - - // Handle when the DOM is ready - ready: function() { - // Make sure that the DOM is not already loaded - if ( !jQuery.isReady ) { - // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). - if ( !document.body ) { - return setTimeout( jQuery.ready, 13 ); - } - - // Remember that the DOM is ready - jQuery.isReady = true; - - // If there are functions bound, to execute - if ( readyList ) { - // Execute all of them - var fn, i = 0; - while ( (fn = readyList[ i++ ]) ) { - fn.call( document, jQuery ); - } - - // Reset the list of functions - readyList = null; - } - - // Trigger any bound ready events - if ( jQuery.fn.triggerHandler ) { - jQuery( document ).triggerHandler( "ready" ); - } - } - }, - - bindReady: function() { - if ( readyBound ) { - return; - } - - readyBound = true; - - // Catch cases where $(document).ready() is called after the - // browser event has already occurred. - if ( document.readyState === "complete" ) { - return jQuery.ready(); - } - - // Mozilla, Opera and webkit nightlies currently support this event - if ( document.addEventListener ) { - // Use the handy event callback - document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false ); - - // A fallback to window.onload, that will always work - window.addEventListener( "load", jQuery.ready, false ); - - // If IE event model is used - } else if ( document.attachEvent ) { - // ensure firing before onload, - // maybe late but safe also for iframes - document.attachEvent("onreadystatechange", DOMContentLoaded); - - // A fallback to window.onload, that will always work - window.attachEvent( "onload", jQuery.ready ); - - // If IE and not a frame - // continually check to see if the document is ready - var toplevel = false; - - try { - toplevel = window.frameElement == null; - } catch(e) {} - - if ( document.documentElement.doScroll && toplevel ) { - doScrollCheck(); - } - } - }, - - // See test/unit/core.js for details concerning isFunction. - // Since version 1.3, DOM methods and functions like alert - // aren't supported. They return false on IE (#2968). - isFunction: function( obj ) { - return toString.call(obj) === "[object Function]"; - }, - - isArray: function( obj ) { - return toString.call(obj) === "[object Array]"; - }, - - isPlainObject: function( obj ) { - // Must be an Object. - // Because of IE, we also have to check the presence of the constructor property. - // Make sure that DOM nodes and window objects don't pass through, as well - if ( !obj || toString.call(obj) !== "[object Object]" || obj.nodeType || obj.setInterval ) { - return false; - } - - // Not own constructor property must be Object - if ( obj.constructor - && !hasOwnProperty.call(obj, "constructor") - && !hasOwnProperty.call(obj.constructor.prototype, "isPrototypeOf") ) { - return false; - } - - // Own properties are enumerated firstly, so to speed up, - // if last one is own, then all properties are own. - - var key; - for ( key in obj ) {} - - return key === undefined || hasOwnProperty.call( obj, key ); - }, - - isEmptyObject: function( obj ) { - for ( var name in obj ) { - return false; - } - return true; - }, - - error: function( msg ) { - throw msg; - }, - - parseJSON: function( data ) { - if ( typeof data !== "string" || !data ) { - return null; - } - - // Make sure leading/trailing whitespace is removed (IE can't handle it) - data = jQuery.trim( data ); - - // Make sure the incoming data is actual JSON - // Logic borrowed from http://json.org/json2.js - if ( /^[\],:{}\s]*$/.test(data.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@") - .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]") - .replace(/(?:^|:|,)(?:\s*\[)+/g, "")) ) { - - // Try to use the native JSON parser first - return window.JSON && window.JSON.parse ? - window.JSON.parse( data ) : - (new Function("return " + data))(); - - } else { - jQuery.error( "Invalid JSON: " + data ); - } - }, - - noop: function() {}, - - // Evalulates a script in a global context - globalEval: function( data ) { - if ( data && rnotwhite.test(data) ) { - // Inspired by code by Andrea Giammarchi - // http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.html - var head = document.getElementsByTagName("head")[0] || document.documentElement, - script = document.createElement("script"); - - script.type = "text/javascript"; - - if ( jQuery.support.scriptEval ) { - script.appendChild( document.createTextNode( data ) ); - } else { - script.text = data; - } - - // Use insertBefore instead of appendChild to circumvent an IE6 bug. - // This arises when a base node is used (#2709). - head.insertBefore( script, head.firstChild ); - head.removeChild( script ); - } - }, - - nodeName: function( elem, name ) { - return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase(); - }, - - // args is for internal usage only - each: function( object, callback, args ) { - var name, i = 0, - length = object.length, - isObj = length === undefined || jQuery.isFunction(object); - - if ( args ) { - if ( isObj ) { - for ( name in object ) { - if ( callback.apply( object[ name ], args ) === false ) { - break; - } - } - } else { - for ( ; i < length; ) { - if ( callback.apply( object[ i++ ], args ) === false ) { - break; - } - } - } - - // A special, fast, case for the most common use of each - } else { - if ( isObj ) { - for ( name in object ) { - if ( callback.call( object[ name ], name, object[ name ] ) === false ) { - break; - } - } - } else { - for ( var value = object[0]; - i < length && callback.call( value, i, value ) !== false; value = object[++i] ) {} - } - } - - return object; - }, - - trim: function( text ) { - return (text || "").replace( rtrim, "" ); - }, - - // results is for internal usage only - makeArray: function( array, results ) { - var ret = results || []; - - if ( array != null ) { - // The window, strings (and functions) also have 'length' - // The extra typeof function check is to prevent crashes - // in Safari 2 (See: #3039) - if ( array.length == null || typeof array === "string" || jQuery.isFunction(array) || (typeof array !== "function" && array.setInterval) ) { - push.call( ret, array ); - } else { - jQuery.merge( ret, array ); - } - } - - return ret; - }, - - inArray: function( elem, array ) { - if ( array.indexOf ) { - return array.indexOf( elem ); - } - - for ( var i = 0, length = array.length; i < length; i++ ) { - if ( array[ i ] === elem ) { - return i; - } - } - - return -1; - }, - - merge: function( first, second ) { - var i = first.length, j = 0; - - if ( typeof second.length === "number" ) { - for ( var l = second.length; j < l; j++ ) { - first[ i++ ] = second[ j ]; - } - - } else { - while ( second[j] !== undefined ) { - first[ i++ ] = second[ j++ ]; - } - } - - first.length = i; - - return first; - }, - - grep: function( elems, callback, inv ) { - var ret = []; - - // Go through the array, only saving the items - // that pass the validator function - for ( var i = 0, length = elems.length; i < length; i++ ) { - if ( !inv !== !callback( elems[ i ], i ) ) { - ret.push( elems[ i ] ); - } - } - - return ret; - }, - - // arg is for internal usage only - map: function( elems, callback, arg ) { - var ret = [], value; - - // Go through the array, translating each of the items to their - // new value (or values). - for ( var i = 0, length = elems.length; i < length; i++ ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret[ ret.length ] = value; - } - } - - return ret.concat.apply( [], ret ); - }, - - // A global GUID counter for objects - guid: 1, - - proxy: function( fn, proxy, thisObject ) { - if ( arguments.length === 2 ) { - if ( typeof proxy === "string" ) { - thisObject = fn; - fn = thisObject[ proxy ]; - proxy = undefined; - - } else if ( proxy && !jQuery.isFunction( proxy ) ) { - thisObject = proxy; - proxy = undefined; - } - } - - if ( !proxy && fn ) { - proxy = function() { - return fn.apply( thisObject || this, arguments ); - }; - } - - // Set the guid of unique handler to the same of original handler, so it can be removed - if ( fn ) { - proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++; - } - - // So proxy can be declared as an argument - return proxy; - }, - - // Use of jQuery.browser is frowned upon. - // More details: http://docs.jquery.com/Utilities/jQuery.browser - uaMatch: function( ua ) { - ua = ua.toLowerCase(); - - var match = /(webkit)[ \/]([\w.]+)/.exec( ua ) || - /(opera)(?:.*version)?[ \/]([\w.]+)/.exec( ua ) || - /(msie) ([\w.]+)/.exec( ua ) || - !/compatible/.test( ua ) && /(mozilla)(?:.*? rv:([\w.]+))?/.exec( ua ) || - []; - - return { browser: match[1] || "", version: match[2] || "0" }; - }, - - browser: {} -}); - -browserMatch = jQuery.uaMatch( userAgent ); -if ( browserMatch.browser ) { - jQuery.browser[ browserMatch.browser ] = true; - jQuery.browser.version = browserMatch.version; -} - -// Deprecated, use jQuery.browser.webkit instead -if ( jQuery.browser.webkit ) { - jQuery.browser.safari = true; -} - -if ( indexOf ) { - jQuery.inArray = function( elem, array ) { - return indexOf.call( array, elem ); - }; -} - -// All jQuery objects should point back to these -rootjQuery = jQuery(document); - -// Cleanup functions for the document ready method -if ( document.addEventListener ) { - DOMContentLoaded = function() { - document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false ); - jQuery.ready(); - }; - -} else if ( document.attachEvent ) { - DOMContentLoaded = function() { - // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). - if ( document.readyState === "complete" ) { - document.detachEvent( "onreadystatechange", DOMContentLoaded ); - jQuery.ready(); - } - }; -} - -// The DOM ready check for Internet Explorer -function doScrollCheck() { - if ( jQuery.isReady ) { - return; - } - - try { - // If IE is used, use the trick by Diego Perini - // http://javascript.nwbox.com/IEContentLoaded/ - document.documentElement.doScroll("left"); - } catch( error ) { - setTimeout( doScrollCheck, 1 ); - return; - } - - // and execute any waiting functions - jQuery.ready(); -} - -function evalScript( i, elem ) { - if ( elem.src ) { - jQuery.ajax({ - url: elem.src, - async: false, - dataType: "script" - }); - } else { - jQuery.globalEval( elem.text || elem.textContent || elem.innerHTML || "" ); - } - - if ( elem.parentNode ) { - elem.parentNode.removeChild( elem ); - } -} - -// Mutifunctional method to get and set values to a collection -// The value/s can be optionally by executed if its a function -function access( elems, key, value, exec, fn, pass ) { - var length = elems.length; - - // Setting many attributes - if ( typeof key === "object" ) { - for ( var k in key ) { - access( elems, k, key[k], exec, fn, value ); - } - return elems; - } - - // Setting one attribute - if ( value !== undefined ) { - // Optionally, function values get executed if exec is true - exec = !pass && exec && jQuery.isFunction(value); - - for ( var i = 0; i < length; i++ ) { - fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass ); - } - - return elems; - } - - // Getting an attribute - return length ? fn( elems[0], key ) : undefined; -} - -function now() { - return (new Date).getTime(); -} -(function() { - - jQuery.support = {}; - - var root = document.documentElement, - script = document.createElement("script"), - div = document.createElement("div"), - id = "script" + now(); - - div.style.display = "none"; - div.innerHTML = "
    a"; - - var all = div.getElementsByTagName("*"), - a = div.getElementsByTagName("a")[0]; - - // Can't get basic test support - if ( !all || !all.length || !a ) { - return; - } - - jQuery.support = { - // IE strips leading whitespace when .innerHTML is used - leadingWhitespace: div.firstChild.nodeType === 3, - - // Make sure that tbody elements aren't automatically inserted - // IE will insert them into empty tables - tbody: !div.getElementsByTagName("tbody").length, - - // Make sure that link elements get serialized correctly by innerHTML - // This requires a wrapper element in IE - htmlSerialize: !!div.getElementsByTagName("link").length, - - // Get the style information from getAttribute - // (IE uses .cssText insted) - style: /red/.test( a.getAttribute("style") ), - - // Make sure that URLs aren't manipulated - // (IE normalizes it by default) - hrefNormalized: a.getAttribute("href") === "/a", - - // Make sure that element opacity exists - // (IE uses filter instead) - // Use a regex to work around a WebKit issue. See #5145 - opacity: /^0.55$/.test( a.style.opacity ), - - // Verify style float existence - // (IE uses styleFloat instead of cssFloat) - cssFloat: !!a.style.cssFloat, - - // Make sure that if no value is specified for a checkbox - // that it defaults to "on". - // (WebKit defaults to "" instead) - checkOn: div.getElementsByTagName("input")[0].value === "on", - - // Make sure that a selected-by-default option has a working selected property. - // (WebKit defaults to false instead of true, IE too, if it's in an optgroup) - optSelected: document.createElement("select").appendChild( document.createElement("option") ).selected, - - parentNode: div.removeChild( div.appendChild( document.createElement("div") ) ).parentNode === null, - - // Will be defined later - deleteExpando: true, - checkClone: false, - scriptEval: false, - noCloneEvent: true, - boxModel: null - }; - - script.type = "text/javascript"; - try { - script.appendChild( document.createTextNode( "window." + id + "=1;" ) ); - } catch(e) {} - - root.insertBefore( script, root.firstChild ); - - // Make sure that the execution of code works by injecting a script - // tag with appendChild/createTextNode - // (IE doesn't support this, fails, and uses .text instead) - if ( window[ id ] ) { - jQuery.support.scriptEval = true; - delete window[ id ]; - } - - // Test to see if it's possible to delete an expando from an element - // Fails in Internet Explorer - try { - delete script.test; - - } catch(e) { - jQuery.support.deleteExpando = false; - } - - root.removeChild( script ); - - if ( div.attachEvent && div.fireEvent ) { - div.attachEvent("onclick", function click() { - // Cloning a node shouldn't copy over any - // bound event handlers (IE does this) - jQuery.support.noCloneEvent = false; - div.detachEvent("onclick", click); - }); - div.cloneNode(true).fireEvent("onclick"); - } - - div = document.createElement("div"); - div.innerHTML = ""; - - var fragment = document.createDocumentFragment(); - fragment.appendChild( div.firstChild ); - - // WebKit doesn't clone checked state correctly in fragments - jQuery.support.checkClone = fragment.cloneNode(true).cloneNode(true).lastChild.checked; - - // Figure out if the W3C box model works as expected - // document.body must exist before we can do this - jQuery(function() { - var div = document.createElement("div"); - div.style.width = div.style.paddingLeft = "1px"; - - document.body.appendChild( div ); - jQuery.boxModel = jQuery.support.boxModel = div.offsetWidth === 2; - document.body.removeChild( div ).style.display = 'none'; - - div = null; - }); - - // Technique from Juriy Zaytsev - // http://thinkweb2.com/projects/prototype/detecting-event-support-without-browser-sniffing/ - var eventSupported = function( eventName ) { - var el = document.createElement("div"); - eventName = "on" + eventName; - - var isSupported = (eventName in el); - if ( !isSupported ) { - el.setAttribute(eventName, "return;"); - isSupported = typeof el[eventName] === "function"; - } - el = null; - - return isSupported; - }; - - jQuery.support.submitBubbles = eventSupported("submit"); - jQuery.support.changeBubbles = eventSupported("change"); - - // release memory in IE - root = script = div = all = a = null; -})(); - -jQuery.props = { - "for": "htmlFor", - "class": "className", - readonly: "readOnly", - maxlength: "maxLength", - cellspacing: "cellSpacing", - rowspan: "rowSpan", - colspan: "colSpan", - tabindex: "tabIndex", - usemap: "useMap", - frameborder: "frameBorder" -}; -var expando = "jQuery" + now(), uuid = 0, windowData = {}; - -jQuery.extend({ - cache: {}, - - expando:expando, - - // The following elements throw uncatchable exceptions if you - // attempt to add expando properties to them. - noData: { - "embed": true, - "object": true, - "applet": true - }, - - data: function( elem, name, data ) { - if ( elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()] ) { - return; - } - - elem = elem == window ? - windowData : - elem; - - var id = elem[ expando ], cache = jQuery.cache, thisCache; - - if ( !id && typeof name === "string" && data === undefined ) { - return null; - } - - // Compute a unique ID for the element - if ( !id ) { - id = ++uuid; - } - - // Avoid generating a new cache unless none exists and we - // want to manipulate it. - if ( typeof name === "object" ) { - elem[ expando ] = id; - thisCache = cache[ id ] = jQuery.extend(true, {}, name); - - } else if ( !cache[ id ] ) { - elem[ expando ] = id; - cache[ id ] = {}; - } - - thisCache = cache[ id ]; - - // Prevent overriding the named cache with undefined values - if ( data !== undefined ) { - thisCache[ name ] = data; - } - - return typeof name === "string" ? thisCache[ name ] : thisCache; - }, - - removeData: function( elem, name ) { - if ( elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()] ) { - return; - } - - elem = elem == window ? - windowData : - elem; - - var id = elem[ expando ], cache = jQuery.cache, thisCache = cache[ id ]; - - // If we want to remove a specific section of the element's data - if ( name ) { - if ( thisCache ) { - // Remove the section of cache data - delete thisCache[ name ]; - - // If we've removed all the data, remove the element's cache - if ( jQuery.isEmptyObject(thisCache) ) { - jQuery.removeData( elem ); - } - } - - // Otherwise, we want to remove all of the element's data - } else { - if ( jQuery.support.deleteExpando ) { - delete elem[ jQuery.expando ]; - - } else if ( elem.removeAttribute ) { - elem.removeAttribute( jQuery.expando ); - } - - // Completely remove the data cache - delete cache[ id ]; - } - } -}); - -jQuery.fn.extend({ - data: function( key, value ) { - if ( typeof key === "undefined" && this.length ) { - return jQuery.data( this[0] ); - - } else if ( typeof key === "object" ) { - return this.each(function() { - jQuery.data( this, key ); - }); - } - - var parts = key.split("."); - parts[1] = parts[1] ? "." + parts[1] : ""; - - if ( value === undefined ) { - var data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]); - - if ( data === undefined && this.length ) { - data = jQuery.data( this[0], key ); - } - return data === undefined && parts[1] ? - this.data( parts[0] ) : - data; - } else { - return this.trigger("setData" + parts[1] + "!", [parts[0], value]).each(function() { - jQuery.data( this, key, value ); - }); - } - }, - - removeData: function( key ) { - return this.each(function() { - jQuery.removeData( this, key ); - }); - } -}); -jQuery.extend({ - queue: function( elem, type, data ) { - if ( !elem ) { - return; - } - - type = (type || "fx") + "queue"; - var q = jQuery.data( elem, type ); - - // Speed up dequeue by getting out quickly if this is just a lookup - if ( !data ) { - return q || []; - } - - if ( !q || jQuery.isArray(data) ) { - q = jQuery.data( elem, type, jQuery.makeArray(data) ); - - } else { - q.push( data ); - } - - return q; - }, - - dequeue: function( elem, type ) { - type = type || "fx"; - - var queue = jQuery.queue( elem, type ), fn = queue.shift(); - - // If the fx queue is dequeued, always remove the progress sentinel - if ( fn === "inprogress" ) { - fn = queue.shift(); - } - - if ( fn ) { - // Add a progress sentinel to prevent the fx queue from being - // automatically dequeued - if ( type === "fx" ) { - queue.unshift("inprogress"); - } - - fn.call(elem, function() { - jQuery.dequeue(elem, type); - }); - } - } -}); - -jQuery.fn.extend({ - queue: function( type, data ) { - if ( typeof type !== "string" ) { - data = type; - type = "fx"; - } - - if ( data === undefined ) { - return jQuery.queue( this[0], type ); - } - return this.each(function( i, elem ) { - var queue = jQuery.queue( this, type, data ); - - if ( type === "fx" && queue[0] !== "inprogress" ) { - jQuery.dequeue( this, type ); - } - }); - }, - dequeue: function( type ) { - return this.each(function() { - jQuery.dequeue( this, type ); - }); - }, - - // Based off of the plugin by Clint Helfers, with permission. - // http://blindsignals.com/index.php/2009/07/jquery-delay/ - delay: function( time, type ) { - time = jQuery.fx ? jQuery.fx.speeds[time] || time : time; - type = type || "fx"; - - return this.queue( type, function() { - var elem = this; - setTimeout(function() { - jQuery.dequeue( elem, type ); - }, time ); - }); - }, - - clearQueue: function( type ) { - return this.queue( type || "fx", [] ); - } -}); -var rclass = /[\n\t]/g, - rspace = /\s+/, - rreturn = /\r/g, - rspecialurl = /href|src|style/, - rtype = /(button|input)/i, - rfocusable = /(button|input|object|select|textarea)/i, - rclickable = /^(a|area)$/i, - rradiocheck = /radio|checkbox/; - -jQuery.fn.extend({ - attr: function( name, value ) { - return access( this, name, value, true, jQuery.attr ); - }, - - removeAttr: function( name, fn ) { - return this.each(function(){ - jQuery.attr( this, name, "" ); - if ( this.nodeType === 1 ) { - this.removeAttribute( name ); - } - }); - }, - - addClass: function( value ) { - if ( jQuery.isFunction(value) ) { - return this.each(function(i) { - var self = jQuery(this); - self.addClass( value.call(this, i, self.attr("class")) ); - }); - } - - if ( value && typeof value === "string" ) { - var classNames = (value || "").split( rspace ); - - for ( var i = 0, l = this.length; i < l; i++ ) { - var elem = this[i]; - - if ( elem.nodeType === 1 ) { - if ( !elem.className ) { - elem.className = value; - - } else { - var className = " " + elem.className + " ", setClass = elem.className; - for ( var c = 0, cl = classNames.length; c < cl; c++ ) { - if ( className.indexOf( " " + classNames[c] + " " ) < 0 ) { - setClass += " " + classNames[c]; - } - } - elem.className = jQuery.trim( setClass ); - } - } - } - } - - return this; - }, - - removeClass: function( value ) { - if ( jQuery.isFunction(value) ) { - return this.each(function(i) { - var self = jQuery(this); - self.removeClass( value.call(this, i, self.attr("class")) ); - }); - } - - if ( (value && typeof value === "string") || value === undefined ) { - var classNames = (value || "").split(rspace); - - for ( var i = 0, l = this.length; i < l; i++ ) { - var elem = this[i]; - - if ( elem.nodeType === 1 && elem.className ) { - if ( value ) { - var className = (" " + elem.className + " ").replace(rclass, " "); - for ( var c = 0, cl = classNames.length; c < cl; c++ ) { - className = className.replace(" " + classNames[c] + " ", " "); - } - elem.className = jQuery.trim( className ); - - } else { - elem.className = ""; - } - } - } - } - - return this; - }, - - toggleClass: function( value, stateVal ) { - var type = typeof value, isBool = typeof stateVal === "boolean"; - - if ( jQuery.isFunction( value ) ) { - return this.each(function(i) { - var self = jQuery(this); - self.toggleClass( value.call(this, i, self.attr("class"), stateVal), stateVal ); - }); - } - - return this.each(function() { - if ( type === "string" ) { - // toggle individual class names - var className, i = 0, self = jQuery(this), - state = stateVal, - classNames = value.split( rspace ); - - while ( (className = classNames[ i++ ]) ) { - // check each className given, space seperated list - state = isBool ? state : !self.hasClass( className ); - self[ state ? "addClass" : "removeClass" ]( className ); - } - - } else if ( type === "undefined" || type === "boolean" ) { - if ( this.className ) { - // store className if set - jQuery.data( this, "__className__", this.className ); - } - - // toggle whole className - this.className = this.className || value === false ? "" : jQuery.data( this, "__className__" ) || ""; - } - }); - }, - - hasClass: function( selector ) { - var className = " " + selector + " "; - for ( var i = 0, l = this.length; i < l; i++ ) { - if ( (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) { - return true; - } - } - - return false; - }, - - val: function( value ) { - if ( value === undefined ) { - var elem = this[0]; - - if ( elem ) { - if ( jQuery.nodeName( elem, "option" ) ) { - return (elem.attributes.value || {}).specified ? elem.value : elem.text; - } - - // We need to handle select boxes special - if ( jQuery.nodeName( elem, "select" ) ) { - var index = elem.selectedIndex, - values = [], - options = elem.options, - one = elem.type === "select-one"; - - // Nothing was selected - if ( index < 0 ) { - return null; - } - - // Loop through all the selected options - for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) { - var option = options[ i ]; - - if ( option.selected ) { - // Get the specifc value for the option - value = jQuery(option).val(); - - // We don't need an array for one selects - if ( one ) { - return value; - } - - // Multi-Selects return an array - values.push( value ); - } - } - - return values; - } - - // Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified - if ( rradiocheck.test( elem.type ) && !jQuery.support.checkOn ) { - return elem.getAttribute("value") === null ? "on" : elem.value; - } - - - // Everything else, we just grab the value - return (elem.value || "").replace(rreturn, ""); - - } - - return undefined; - } - - var isFunction = jQuery.isFunction(value); - - return this.each(function(i) { - var self = jQuery(this), val = value; - - if ( this.nodeType !== 1 ) { - return; - } - - if ( isFunction ) { - val = value.call(this, i, self.val()); - } - - // Typecast each time if the value is a Function and the appended - // value is therefore different each time. - if ( typeof val === "number" ) { - val += ""; - } - - if ( jQuery.isArray(val) && rradiocheck.test( this.type ) ) { - this.checked = jQuery.inArray( self.val(), val ) >= 0; - - } else if ( jQuery.nodeName( this, "select" ) ) { - var values = jQuery.makeArray(val); - - jQuery( "option", this ).each(function() { - this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0; - }); - - if ( !values.length ) { - this.selectedIndex = -1; - } - - } else { - this.value = val; - } - }); - } -}); - -jQuery.extend({ - attrFn: { - val: true, - css: true, - html: true, - text: true, - data: true, - width: true, - height: true, - offset: true - }, - - attr: function( elem, name, value, pass ) { - // don't set attributes on text and comment nodes - if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 ) { - return undefined; - } - - if ( pass && name in jQuery.attrFn ) { - return jQuery(elem)[name](value); - } - - var notxml = elem.nodeType !== 1 || !jQuery.isXMLDoc( elem ), - // Whether we are setting (or getting) - set = value !== undefined; - - // Try to normalize/fix the name - name = notxml && jQuery.props[ name ] || name; - - // Only do all the following if this is a node (faster for style) - if ( elem.nodeType === 1 ) { - // These attributes require special treatment - var special = rspecialurl.test( name ); - - // Safari mis-reports the default selected property of an option - // Accessing the parent's selectedIndex property fixes it - if ( name === "selected" && !jQuery.support.optSelected ) { - var parent = elem.parentNode; - if ( parent ) { - parent.selectedIndex; - - // Make sure that it also works with optgroups, see #5701 - if ( parent.parentNode ) { - parent.parentNode.selectedIndex; - } - } - } - - // If applicable, access the attribute via the DOM 0 way - if ( name in elem && notxml && !special ) { - if ( set ) { - // We can't allow the type property to be changed (since it causes problems in IE) - if ( name === "type" && rtype.test( elem.nodeName ) && elem.parentNode ) { - jQuery.error( "type property can't be changed" ); - } - - elem[ name ] = value; - } - - // browsers index elements by id/name on forms, give priority to attributes. - if ( jQuery.nodeName( elem, "form" ) && elem.getAttributeNode(name) ) { - return elem.getAttributeNode( name ).nodeValue; - } - - // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set - // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ - if ( name === "tabIndex" ) { - var attributeNode = elem.getAttributeNode( "tabIndex" ); - - return attributeNode && attributeNode.specified ? - attributeNode.value : - rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? - 0 : - undefined; - } - - return elem[ name ]; - } - - if ( !jQuery.support.style && notxml && name === "style" ) { - if ( set ) { - elem.style.cssText = "" + value; - } - - return elem.style.cssText; - } - - if ( set ) { - // convert the value to a string (all browsers do this but IE) see #1070 - elem.setAttribute( name, "" + value ); - } - - var attr = !jQuery.support.hrefNormalized && notxml && special ? - // Some attributes require a special call on IE - elem.getAttribute( name, 2 ) : - elem.getAttribute( name ); - - // Non-existent attributes return null, we normalize to undefined - return attr === null ? undefined : attr; - } - - // elem is actually elem.style ... set the style - // Using attr for specific style information is now deprecated. Use style instead. - return jQuery.style( elem, name, value ); - } -}); -var rnamespaces = /\.(.*)$/, - fcleanup = function( nm ) { - return nm.replace(/[^\w\s\.\|`]/g, function( ch ) { - return "\\" + ch; - }); - }; - -/* - * A number of helper functions used for managing events. - * Many of the ideas behind this code originated from - * Dean Edwards' addEvent library. - */ -jQuery.event = { - - // Bind an event to an element - // Original by Dean Edwards - add: function( elem, types, handler, data ) { - if ( elem.nodeType === 3 || elem.nodeType === 8 ) { - return; - } - - // For whatever reason, IE has trouble passing the window object - // around, causing it to be cloned in the process - if ( elem.setInterval && ( elem !== window && !elem.frameElement ) ) { - elem = window; - } - - var handleObjIn, handleObj; - - if ( handler.handler ) { - handleObjIn = handler; - handler = handleObjIn.handler; - } - - // Make sure that the function being executed has a unique ID - if ( !handler.guid ) { - handler.guid = jQuery.guid++; - } - - // Init the element's event structure - var elemData = jQuery.data( elem ); - - // If no elemData is found then we must be trying to bind to one of the - // banned noData elements - if ( !elemData ) { - return; - } - - var events = elemData.events = elemData.events || {}, - eventHandle = elemData.handle, eventHandle; - - if ( !eventHandle ) { - elemData.handle = eventHandle = function() { - // Handle the second event of a trigger and when - // an event is called after a page has unloaded - return typeof jQuery !== "undefined" && !jQuery.event.triggered ? - jQuery.event.handle.apply( eventHandle.elem, arguments ) : - undefined; - }; - } - - // Add elem as a property of the handle function - // This is to prevent a memory leak with non-native events in IE. - eventHandle.elem = elem; - - // Handle multiple events separated by a space - // jQuery(...).bind("mouseover mouseout", fn); - types = types.split(" "); - - var type, i = 0, namespaces; - - while ( (type = types[ i++ ]) ) { - handleObj = handleObjIn ? - jQuery.extend({}, handleObjIn) : - { handler: handler, data: data }; - - // Namespaced event handlers - if ( type.indexOf(".") > -1 ) { - namespaces = type.split("."); - type = namespaces.shift(); - handleObj.namespace = namespaces.slice(0).sort().join("."); - - } else { - namespaces = []; - handleObj.namespace = ""; - } - - handleObj.type = type; - handleObj.guid = handler.guid; - - // Get the current list of functions bound to this event - var handlers = events[ type ], - special = jQuery.event.special[ type ] || {}; - - // Init the event handler queue - if ( !handlers ) { - handlers = events[ type ] = []; - - // Check for a special event handler - // Only use addEventListener/attachEvent if the special - // events handler returns false - if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { - // Bind the global event handler to the element - if ( elem.addEventListener ) { - elem.addEventListener( type, eventHandle, false ); - - } else if ( elem.attachEvent ) { - elem.attachEvent( "on" + type, eventHandle ); - } - } - } - - if ( special.add ) { - special.add.call( elem, handleObj ); - - if ( !handleObj.handler.guid ) { - handleObj.handler.guid = handler.guid; - } - } - - // Add the function to the element's handler list - handlers.push( handleObj ); - - // Keep track of which events have been used, for global triggering - jQuery.event.global[ type ] = true; - } - - // Nullify elem to prevent memory leaks in IE - elem = null; - }, - - global: {}, - - // Detach an event or set of events from an element - remove: function( elem, types, handler, pos ) { - // don't do events on text and comment nodes - if ( elem.nodeType === 3 || elem.nodeType === 8 ) { - return; - } - - var ret, type, fn, i = 0, all, namespaces, namespace, special, eventType, handleObj, origType, - elemData = jQuery.data( elem ), - events = elemData && elemData.events; - - if ( !elemData || !events ) { - return; - } - - // types is actually an event object here - if ( types && types.type ) { - handler = types.handler; - types = types.type; - } - - // Unbind all events for the element - if ( !types || typeof types === "string" && types.charAt(0) === "." ) { - types = types || ""; - - for ( type in events ) { - jQuery.event.remove( elem, type + types ); - } - - return; - } - - // Handle multiple events separated by a space - // jQuery(...).unbind("mouseover mouseout", fn); - types = types.split(" "); - - while ( (type = types[ i++ ]) ) { - origType = type; - handleObj = null; - all = type.indexOf(".") < 0; - namespaces = []; - - if ( !all ) { - // Namespaced event handlers - namespaces = type.split("."); - type = namespaces.shift(); - - namespace = new RegExp("(^|\\.)" + - jQuery.map( namespaces.slice(0).sort(), fcleanup ).join("\\.(?:.*\\.)?") + "(\\.|$)") - } - - eventType = events[ type ]; - - if ( !eventType ) { - continue; - } - - if ( !handler ) { - for ( var j = 0; j < eventType.length; j++ ) { - handleObj = eventType[ j ]; - - if ( all || namespace.test( handleObj.namespace ) ) { - jQuery.event.remove( elem, origType, handleObj.handler, j ); - eventType.splice( j--, 1 ); - } - } - - continue; - } - - special = jQuery.event.special[ type ] || {}; - - for ( var j = pos || 0; j < eventType.length; j++ ) { - handleObj = eventType[ j ]; - - if ( handler.guid === handleObj.guid ) { - // remove the given handler for the given type - if ( all || namespace.test( handleObj.namespace ) ) { - if ( pos == null ) { - eventType.splice( j--, 1 ); - } - - if ( special.remove ) { - special.remove.call( elem, handleObj ); - } - } - - if ( pos != null ) { - break; - } - } - } - - // remove generic event handler if no more handlers exist - if ( eventType.length === 0 || pos != null && eventType.length === 1 ) { - if ( !special.teardown || special.teardown.call( elem, namespaces ) === false ) { - removeEvent( elem, type, elemData.handle ); - } - - ret = null; - delete events[ type ]; - } - } - - // Remove the expando if it's no longer used - if ( jQuery.isEmptyObject( events ) ) { - var handle = elemData.handle; - if ( handle ) { - handle.elem = null; - } - - delete elemData.events; - delete elemData.handle; - - if ( jQuery.isEmptyObject( elemData ) ) { - jQuery.removeData( elem ); - } - } - }, - - // bubbling is internal - trigger: function( event, data, elem /*, bubbling */ ) { - // Event object or event type - var type = event.type || event, - bubbling = arguments[3]; - - if ( !bubbling ) { - event = typeof event === "object" ? - // jQuery.Event object - event[expando] ? event : - // Object literal - jQuery.extend( jQuery.Event(type), event ) : - // Just the event type (string) - jQuery.Event(type); - - if ( type.indexOf("!") >= 0 ) { - event.type = type = type.slice(0, -1); - event.exclusive = true; - } - - // Handle a global trigger - if ( !elem ) { - // Don't bubble custom events when global (to avoid too much overhead) - event.stopPropagation(); - - // Only trigger if we've ever bound an event for it - if ( jQuery.event.global[ type ] ) { - jQuery.each( jQuery.cache, function() { - if ( this.events && this.events[type] ) { - jQuery.event.trigger( event, data, this.handle.elem ); - } - }); - } - } - - // Handle triggering a single element - - // don't do events on text and comment nodes - if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 ) { - return undefined; - } - - // Clean up in case it is reused - event.result = undefined; - event.target = elem; - - // Clone the incoming data, if any - data = jQuery.makeArray( data ); - data.unshift( event ); - } - - event.currentTarget = elem; - - // Trigger the event, it is assumed that "handle" is a function - var handle = jQuery.data( elem, "handle" ); - if ( handle ) { - handle.apply( elem, data ); - } - - var parent = elem.parentNode || elem.ownerDocument; - - // Trigger an inline bound script - try { - if ( !(elem && elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()]) ) { - if ( elem[ "on" + type ] && elem[ "on" + type ].apply( elem, data ) === false ) { - event.result = false; - } - } - - // prevent IE from throwing an error for some elements with some event types, see #3533 - } catch (e) {} - - if ( !event.isPropagationStopped() && parent ) { - jQuery.event.trigger( event, data, parent, true ); - - } else if ( !event.isDefaultPrevented() ) { - var target = event.target, old, - isClick = jQuery.nodeName(target, "a") && type === "click", - special = jQuery.event.special[ type ] || {}; - - if ( (!special._default || special._default.call( elem, event ) === false) && - !isClick && !(target && target.nodeName && jQuery.noData[target.nodeName.toLowerCase()]) ) { - - try { - if ( target[ type ] ) { - // Make sure that we don't accidentally re-trigger the onFOO events - old = target[ "on" + type ]; - - if ( old ) { - target[ "on" + type ] = null; - } - - jQuery.event.triggered = true; - target[ type ](); - } - - // prevent IE from throwing an error for some elements with some event types, see #3533 - } catch (e) {} - - if ( old ) { - target[ "on" + type ] = old; - } - - jQuery.event.triggered = false; - } - } - }, - - handle: function( event ) { - var all, handlers, namespaces, namespace, events; - - event = arguments[0] = jQuery.event.fix( event || window.event ); - event.currentTarget = this; - - // Namespaced event handlers - all = event.type.indexOf(".") < 0 && !event.exclusive; - - if ( !all ) { - namespaces = event.type.split("."); - event.type = namespaces.shift(); - namespace = new RegExp("(^|\\.)" + namespaces.slice(0).sort().join("\\.(?:.*\\.)?") + "(\\.|$)"); - } - - var events = jQuery.data(this, "events"), handlers = events[ event.type ]; - - if ( events && handlers ) { - // Clone the handlers to prevent manipulation - handlers = handlers.slice(0); - - for ( var j = 0, l = handlers.length; j < l; j++ ) { - var handleObj = handlers[ j ]; - - // Filter the functions by class - if ( all || namespace.test( handleObj.namespace ) ) { - // Pass in a reference to the handler function itself - // So that we can later remove it - event.handler = handleObj.handler; - event.data = handleObj.data; - event.handleObj = handleObj; - - var ret = handleObj.handler.apply( this, arguments ); - - if ( ret !== undefined ) { - event.result = ret; - if ( ret === false ) { - event.preventDefault(); - event.stopPropagation(); - } - } - - if ( event.isImmediatePropagationStopped() ) { - break; - } - } - } - } - - return event.result; - }, - - props: "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "), - - fix: function( event ) { - if ( event[ expando ] ) { - return event; - } - - // store a copy of the original event object - // and "clone" to set read-only properties - var originalEvent = event; - event = jQuery.Event( originalEvent ); - - for ( var i = this.props.length, prop; i; ) { - prop = this.props[ --i ]; - event[ prop ] = originalEvent[ prop ]; - } - - // Fix target property, if necessary - if ( !event.target ) { - event.target = event.srcElement || document; // Fixes #1925 where srcElement might not be defined either - } - - // check if target is a textnode (safari) - if ( event.target.nodeType === 3 ) { - event.target = event.target.parentNode; - } - - // Add relatedTarget, if necessary - if ( !event.relatedTarget && event.fromElement ) { - event.relatedTarget = event.fromElement === event.target ? event.toElement : event.fromElement; - } - - // Calculate pageX/Y if missing and clientX/Y available - if ( event.pageX == null && event.clientX != null ) { - var doc = document.documentElement, body = document.body; - event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0); - event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0); - } - - // Add which for key events - if ( !event.which && ((event.charCode || event.charCode === 0) ? event.charCode : event.keyCode) ) { - event.which = event.charCode || event.keyCode; - } - - // Add metaKey to non-Mac browsers (use ctrl for PC's and Meta for Macs) - if ( !event.metaKey && event.ctrlKey ) { - event.metaKey = event.ctrlKey; - } - - // Add which for click: 1 === left; 2 === middle; 3 === right - // Note: button is not normalized, so don't use it - if ( !event.which && event.button !== undefined ) { - event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) )); - } - - return event; - }, - - // Deprecated, use jQuery.guid instead - guid: 1E8, - - // Deprecated, use jQuery.proxy instead - proxy: jQuery.proxy, - - special: { - ready: { - // Make sure the ready event is setup - setup: jQuery.bindReady, - teardown: jQuery.noop - }, - - live: { - add: function( handleObj ) { - jQuery.event.add( this, handleObj.origType, jQuery.extend({}, handleObj, {handler: liveHandler}) ); - }, - - remove: function( handleObj ) { - var remove = true, - type = handleObj.origType.replace(rnamespaces, ""); - - jQuery.each( jQuery.data(this, "events").live || [], function() { - if ( type === this.origType.replace(rnamespaces, "") ) { - remove = false; - return false; - } - }); - - if ( remove ) { - jQuery.event.remove( this, handleObj.origType, liveHandler ); - } - } - - }, - - beforeunload: { - setup: function( data, namespaces, eventHandle ) { - // We only want to do this special case on windows - if ( this.setInterval ) { - this.onbeforeunload = eventHandle; - } - - return false; - }, - teardown: function( namespaces, eventHandle ) { - if ( this.onbeforeunload === eventHandle ) { - this.onbeforeunload = null; - } - } - } - } -}; - -var removeEvent = document.removeEventListener ? - function( elem, type, handle ) { - elem.removeEventListener( type, handle, false ); - } : - function( elem, type, handle ) { - elem.detachEvent( "on" + type, handle ); - }; - -jQuery.Event = function( src ) { - // Allow instantiation without the 'new' keyword - if ( !this.preventDefault ) { - return new jQuery.Event( src ); - } - - // Event object - if ( src && src.type ) { - this.originalEvent = src; - this.type = src.type; - // Event type - } else { - this.type = src; - } - - // timeStamp is buggy for some events on Firefox(#3843) - // So we won't rely on the native value - this.timeStamp = now(); - - // Mark it as fixed - this[ expando ] = true; -}; - -function returnFalse() { - return false; -} -function returnTrue() { - return true; -} - -// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding -// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html -jQuery.Event.prototype = { - preventDefault: function() { - this.isDefaultPrevented = returnTrue; - - var e = this.originalEvent; - if ( !e ) { - return; - } - - // if preventDefault exists run it on the original event - if ( e.preventDefault ) { - e.preventDefault(); - } - // otherwise set the returnValue property of the original event to false (IE) - e.returnValue = false; - }, - stopPropagation: function() { - this.isPropagationStopped = returnTrue; - - var e = this.originalEvent; - if ( !e ) { - return; - } - // if stopPropagation exists run it on the original event - if ( e.stopPropagation ) { - e.stopPropagation(); - } - // otherwise set the cancelBubble property of the original event to true (IE) - e.cancelBubble = true; - }, - stopImmediatePropagation: function() { - this.isImmediatePropagationStopped = returnTrue; - this.stopPropagation(); - }, - isDefaultPrevented: returnFalse, - isPropagationStopped: returnFalse, - isImmediatePropagationStopped: returnFalse -}; - -// Checks if an event happened on an element within another element -// Used in jQuery.event.special.mouseenter and mouseleave handlers -var withinElement = function( event ) { - // Check if mouse(over|out) are still within the same parent element - var parent = event.relatedTarget; - - // Firefox sometimes assigns relatedTarget a XUL element - // which we cannot access the parentNode property of - try { - // Traverse up the tree - while ( parent && parent !== this ) { - parent = parent.parentNode; - } - - if ( parent !== this ) { - // set the correct event type - event.type = event.data; - - // handle event if we actually just moused on to a non sub-element - jQuery.event.handle.apply( this, arguments ); - } - - // assuming we've left the element since we most likely mousedover a xul element - } catch(e) { } -}, - -// In case of event delegation, we only need to rename the event.type, -// liveHandler will take care of the rest. -delegate = function( event ) { - event.type = event.data; - jQuery.event.handle.apply( this, arguments ); -}; - -// Create mouseenter and mouseleave events -jQuery.each({ - mouseenter: "mouseover", - mouseleave: "mouseout" -}, function( orig, fix ) { - jQuery.event.special[ orig ] = { - setup: function( data ) { - jQuery.event.add( this, fix, data && data.selector ? delegate : withinElement, orig ); - }, - teardown: function( data ) { - jQuery.event.remove( this, fix, data && data.selector ? delegate : withinElement ); - } - }; -}); - -// submit delegation -if ( !jQuery.support.submitBubbles ) { - - jQuery.event.special.submit = { - setup: function( data, namespaces ) { - if ( this.nodeName.toLowerCase() !== "form" ) { - jQuery.event.add(this, "click.specialSubmit", function( e ) { - var elem = e.target, type = elem.type; - - if ( (type === "submit" || type === "image") && jQuery( elem ).closest("form").length ) { - return trigger( "submit", this, arguments ); - } - }); - - jQuery.event.add(this, "keypress.specialSubmit", function( e ) { - var elem = e.target, type = elem.type; - - if ( (type === "text" || type === "password") && jQuery( elem ).closest("form").length && e.keyCode === 13 ) { - return trigger( "submit", this, arguments ); - } - }); - - } else { - return false; - } - }, - - teardown: function( namespaces ) { - jQuery.event.remove( this, ".specialSubmit" ); - } - }; - -} - -// change delegation, happens here so we have bind. -if ( !jQuery.support.changeBubbles ) { - - var formElems = /textarea|input|select/i, - - changeFilters, - - getVal = function( elem ) { - var type = elem.type, val = elem.value; - - if ( type === "radio" || type === "checkbox" ) { - val = elem.checked; - - } else if ( type === "select-multiple" ) { - val = elem.selectedIndex > -1 ? - jQuery.map( elem.options, function( elem ) { - return elem.selected; - }).join("-") : - ""; - - } else if ( elem.nodeName.toLowerCase() === "select" ) { - val = elem.selectedIndex; - } - - return val; - }, - - testChange = function testChange( e ) { - var elem = e.target, data, val; - - if ( !formElems.test( elem.nodeName ) || elem.readOnly ) { - return; - } - - data = jQuery.data( elem, "_change_data" ); - val = getVal(elem); - - // the current data will be also retrieved by beforeactivate - if ( e.type !== "focusout" || elem.type !== "radio" ) { - jQuery.data( elem, "_change_data", val ); - } - - if ( data === undefined || val === data ) { - return; - } - - if ( data != null || val ) { - e.type = "change"; - return jQuery.event.trigger( e, arguments[1], elem ); - } - }; - - jQuery.event.special.change = { - filters: { - focusout: testChange, - - click: function( e ) { - var elem = e.target, type = elem.type; - - if ( type === "radio" || type === "checkbox" || elem.nodeName.toLowerCase() === "select" ) { - return testChange.call( this, e ); - } - }, - - // Change has to be called before submit - // Keydown will be called before keypress, which is used in submit-event delegation - keydown: function( e ) { - var elem = e.target, type = elem.type; - - if ( (e.keyCode === 13 && elem.nodeName.toLowerCase() !== "textarea") || - (e.keyCode === 32 && (type === "checkbox" || type === "radio")) || - type === "select-multiple" ) { - return testChange.call( this, e ); - } - }, - - // Beforeactivate happens also before the previous element is blurred - // with this event you can't trigger a change event, but you can store - // information/focus[in] is not needed anymore - beforeactivate: function( e ) { - var elem = e.target; - jQuery.data( elem, "_change_data", getVal(elem) ); - } - }, - - setup: function( data, namespaces ) { - if ( this.type === "file" ) { - return false; - } - - for ( var type in changeFilters ) { - jQuery.event.add( this, type + ".specialChange", changeFilters[type] ); - } - - return formElems.test( this.nodeName ); - }, - - teardown: function( namespaces ) { - jQuery.event.remove( this, ".specialChange" ); - - return formElems.test( this.nodeName ); - } - }; - - changeFilters = jQuery.event.special.change.filters; -} - -function trigger( type, elem, args ) { - args[0].type = type; - return jQuery.event.handle.apply( elem, args ); -} - -// Create "bubbling" focus and blur events -if ( document.addEventListener ) { - jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { - jQuery.event.special[ fix ] = { - setup: function() { - this.addEventListener( orig, handler, true ); - }, - teardown: function() { - this.removeEventListener( orig, handler, true ); - } - }; - - function handler( e ) { - e = jQuery.event.fix( e ); - e.type = fix; - return jQuery.event.handle.call( this, e ); - } - }); -} - -jQuery.each(["bind", "one"], function( i, name ) { - jQuery.fn[ name ] = function( type, data, fn ) { - // Handle object literals - if ( typeof type === "object" ) { - for ( var key in type ) { - this[ name ](key, data, type[key], fn); - } - return this; - } - - if ( jQuery.isFunction( data ) ) { - fn = data; - data = undefined; - } - - var handler = name === "one" ? jQuery.proxy( fn, function( event ) { - jQuery( this ).unbind( event, handler ); - return fn.apply( this, arguments ); - }) : fn; - - if ( type === "unload" && name !== "one" ) { - this.one( type, data, fn ); - - } else { - for ( var i = 0, l = this.length; i < l; i++ ) { - jQuery.event.add( this[i], type, handler, data ); - } - } - - return this; - }; -}); - -jQuery.fn.extend({ - unbind: function( type, fn ) { - // Handle object literals - if ( typeof type === "object" && !type.preventDefault ) { - for ( var key in type ) { - this.unbind(key, type[key]); - } - - } else { - for ( var i = 0, l = this.length; i < l; i++ ) { - jQuery.event.remove( this[i], type, fn ); - } - } - - return this; - }, - - delegate: function( selector, types, data, fn ) { - return this.live( types, data, fn, selector ); - }, - - undelegate: function( selector, types, fn ) { - if ( arguments.length === 0 ) { - return this.unbind( "live" ); - - } else { - return this.die( types, null, fn, selector ); - } - }, - - trigger: function( type, data ) { - return this.each(function() { - jQuery.event.trigger( type, data, this ); - }); - }, - - triggerHandler: function( type, data ) { - if ( this[0] ) { - var event = jQuery.Event( type ); - event.preventDefault(); - event.stopPropagation(); - jQuery.event.trigger( event, data, this[0] ); - return event.result; - } - }, - - toggle: function( fn ) { - // Save reference to arguments for access in closure - var args = arguments, i = 1; - - // link all the functions, so any of them can unbind this click handler - while ( i < args.length ) { - jQuery.proxy( fn, args[ i++ ] ); - } - - return this.click( jQuery.proxy( fn, function( event ) { - // Figure out which function to execute - var lastToggle = ( jQuery.data( this, "lastToggle" + fn.guid ) || 0 ) % i; - jQuery.data( this, "lastToggle" + fn.guid, lastToggle + 1 ); - - // Make sure that clicks stop - event.preventDefault(); - - // and execute the function - return args[ lastToggle ].apply( this, arguments ) || false; - })); - }, - - hover: function( fnOver, fnOut ) { - return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); - } -}); - -var liveMap = { - focus: "focusin", - blur: "focusout", - mouseenter: "mouseover", - mouseleave: "mouseout" -}; - -jQuery.each(["live", "die"], function( i, name ) { - jQuery.fn[ name ] = function( types, data, fn, origSelector /* Internal Use Only */ ) { - var type, i = 0, match, namespaces, preType, - selector = origSelector || this.selector, - context = origSelector ? this : jQuery( this.context ); - - if ( jQuery.isFunction( data ) ) { - fn = data; - data = undefined; - } - - types = (types || "").split(" "); - - while ( (type = types[ i++ ]) != null ) { - match = rnamespaces.exec( type ); - namespaces = ""; - - if ( match ) { - namespaces = match[0]; - type = type.replace( rnamespaces, "" ); - } - - if ( type === "hover" ) { - types.push( "mouseenter" + namespaces, "mouseleave" + namespaces ); - continue; - } - - preType = type; - - if ( type === "focus" || type === "blur" ) { - types.push( liveMap[ type ] + namespaces ); - type = type + namespaces; - - } else { - type = (liveMap[ type ] || type) + namespaces; - } - - if ( name === "live" ) { - // bind live handler - context.each(function(){ - jQuery.event.add( this, liveConvert( type, selector ), - { data: data, selector: selector, handler: fn, origType: type, origHandler: fn, preType: preType } ); - }); - - } else { - // unbind live handler - context.unbind( liveConvert( type, selector ), fn ); - } - } - - return this; - } -}); - -function liveHandler( event ) { - var stop, elems = [], selectors = [], args = arguments, - related, match, handleObj, elem, j, i, l, data, - events = jQuery.data( this, "events" ); - - // Make sure we avoid non-left-click bubbling in Firefox (#3861) - if ( event.liveFired === this || !events || !events.live || event.button && event.type === "click" ) { - return; - } - - event.liveFired = this; - - var live = events.live.slice(0); - - for ( j = 0; j < live.length; j++ ) { - handleObj = live[j]; - - if ( handleObj.origType.replace( rnamespaces, "" ) === event.type ) { - selectors.push( handleObj.selector ); - - } else { - live.splice( j--, 1 ); - } - } - - match = jQuery( event.target ).closest( selectors, event.currentTarget ); - - for ( i = 0, l = match.length; i < l; i++ ) { - for ( j = 0; j < live.length; j++ ) { - handleObj = live[j]; - - if ( match[i].selector === handleObj.selector ) { - elem = match[i].elem; - related = null; - - // Those two events require additional checking - if ( handleObj.preType === "mouseenter" || handleObj.preType === "mouseleave" ) { - related = jQuery( event.relatedTarget ).closest( handleObj.selector )[0]; - } - - if ( !related || related !== elem ) { - elems.push({ elem: elem, handleObj: handleObj }); - } - } - } - } - - for ( i = 0, l = elems.length; i < l; i++ ) { - match = elems[i]; - event.currentTarget = match.elem; - event.data = match.handleObj.data; - event.handleObj = match.handleObj; - - if ( match.handleObj.origHandler.apply( match.elem, args ) === false ) { - stop = false; - break; - } - } - - return stop; -} - -function liveConvert( type, selector ) { - return "live." + (type && type !== "*" ? type + "." : "") + selector.replace(/\./g, "`").replace(/ /g, "&"); -} - -jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " + - "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + - "change select submit keydown keypress keyup error").split(" "), function( i, name ) { - - // Handle event binding - jQuery.fn[ name ] = function( fn ) { - return fn ? this.bind( name, fn ) : this.trigger( name ); - }; - - if ( jQuery.attrFn ) { - jQuery.attrFn[ name ] = true; - } -}); - -// Prevent memory leaks in IE -// Window isn't included so as not to unbind existing unload events -// More info: -// - http://isaacschlueter.com/2006/10/msie-memory-leaks/ -if ( window.attachEvent && !window.addEventListener ) { - window.attachEvent("onunload", function() { - for ( var id in jQuery.cache ) { - if ( jQuery.cache[ id ].handle ) { - // Try/Catch is to handle iframes being unloaded, see #4280 - try { - jQuery.event.remove( jQuery.cache[ id ].handle.elem ); - } catch(e) {} - } - } - }); -} -/*! - * Sizzle CSS Selector Engine - v1.0 - * Copyright 2009, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * More information: http://sizzlejs.com/ - */ -(function(){ - -var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, - done = 0, - toString = Object.prototype.toString, - hasDuplicate = false, - baseHasDuplicate = true; - -// Here we check if the JavaScript engine is using some sort of -// optimization where it does not always call our comparision -// function. If that is the case, discard the hasDuplicate value. -// Thus far that includes Google Chrome. -[0, 0].sort(function(){ - baseHasDuplicate = false; - return 0; -}); - -var Sizzle = function(selector, context, results, seed) { - results = results || []; - var origContext = context = context || document; - - if ( context.nodeType !== 1 && context.nodeType !== 9 ) { - return []; - } - - if ( !selector || typeof selector !== "string" ) { - return results; - } - - var parts = [], m, set, checkSet, extra, prune = true, contextXML = isXML(context), - soFar = selector; - - // Reset the position of the chunker regexp (start from head) - while ( (chunker.exec(""), m = chunker.exec(soFar)) !== null ) { - soFar = m[3]; - - parts.push( m[1] ); - - if ( m[2] ) { - extra = m[3]; - break; - } - } - - if ( parts.length > 1 && origPOS.exec( selector ) ) { - if ( parts.length === 2 && Expr.relative[ parts[0] ] ) { - set = posProcess( parts[0] + parts[1], context ); - } else { - set = Expr.relative[ parts[0] ] ? - [ context ] : - Sizzle( parts.shift(), context ); - - while ( parts.length ) { - selector = parts.shift(); - - if ( Expr.relative[ selector ] ) { - selector += parts.shift(); - } - - set = posProcess( selector, set ); - } - } - } else { - // Take a shortcut and set the context if the root selector is an ID - // (but not if it'll be faster if the inner selector is an ID) - if ( !seed && parts.length > 1 && context.nodeType === 9 && !contextXML && - Expr.match.ID.test(parts[0]) && !Expr.match.ID.test(parts[parts.length - 1]) ) { - var ret = Sizzle.find( parts.shift(), context, contextXML ); - context = ret.expr ? Sizzle.filter( ret.expr, ret.set )[0] : ret.set[0]; - } - - if ( context ) { - var ret = seed ? - { expr: parts.pop(), set: makeArray(seed) } : - Sizzle.find( parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML ); - set = ret.expr ? Sizzle.filter( ret.expr, ret.set ) : ret.set; - - if ( parts.length > 0 ) { - checkSet = makeArray(set); - } else { - prune = false; - } - - while ( parts.length ) { - var cur = parts.pop(), pop = cur; - - if ( !Expr.relative[ cur ] ) { - cur = ""; - } else { - pop = parts.pop(); - } - - if ( pop == null ) { - pop = context; - } - - Expr.relative[ cur ]( checkSet, pop, contextXML ); - } - } else { - checkSet = parts = []; - } - } - - if ( !checkSet ) { - checkSet = set; - } - - if ( !checkSet ) { - Sizzle.error( cur || selector ); - } - - if ( toString.call(checkSet) === "[object Array]" ) { - if ( !prune ) { - results.push.apply( results, checkSet ); - } else if ( context && context.nodeType === 1 ) { - for ( var i = 0; checkSet[i] != null; i++ ) { - if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && contains(context, checkSet[i])) ) { - results.push( set[i] ); - } - } - } else { - for ( var i = 0; checkSet[i] != null; i++ ) { - if ( checkSet[i] && checkSet[i].nodeType === 1 ) { - results.push( set[i] ); - } - } - } - } else { - makeArray( checkSet, results ); - } - - if ( extra ) { - Sizzle( extra, origContext, results, seed ); - Sizzle.uniqueSort( results ); - } - - return results; -}; - -Sizzle.uniqueSort = function(results){ - if ( sortOrder ) { - hasDuplicate = baseHasDuplicate; - results.sort(sortOrder); - - if ( hasDuplicate ) { - for ( var i = 1; i < results.length; i++ ) { - if ( results[i] === results[i-1] ) { - results.splice(i--, 1); - } - } - } - } - - return results; -}; - -Sizzle.matches = function(expr, set){ - return Sizzle(expr, null, null, set); -}; - -Sizzle.find = function(expr, context, isXML){ - var set, match; - - if ( !expr ) { - return []; - } - - for ( var i = 0, l = Expr.order.length; i < l; i++ ) { - var type = Expr.order[i], match; - - if ( (match = Expr.leftMatch[ type ].exec( expr )) ) { - var left = match[1]; - match.splice(1,1); - - if ( left.substr( left.length - 1 ) !== "\\" ) { - match[1] = (match[1] || "").replace(/\\/g, ""); - set = Expr.find[ type ]( match, context, isXML ); - if ( set != null ) { - expr = expr.replace( Expr.match[ type ], "" ); - break; - } - } - } - } - - if ( !set ) { - set = context.getElementsByTagName("*"); - } - - return {set: set, expr: expr}; -}; - -Sizzle.filter = function(expr, set, inplace, not){ - var old = expr, result = [], curLoop = set, match, anyFound, - isXMLFilter = set && set[0] && isXML(set[0]); - - while ( expr && set.length ) { - for ( var type in Expr.filter ) { - if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) { - var filter = Expr.filter[ type ], found, item, left = match[1]; - anyFound = false; - - match.splice(1,1); - - if ( left.substr( left.length - 1 ) === "\\" ) { - continue; - } - - if ( curLoop === result ) { - result = []; - } - - if ( Expr.preFilter[ type ] ) { - match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter ); - - if ( !match ) { - anyFound = found = true; - } else if ( match === true ) { - continue; - } - } - - if ( match ) { - for ( var i = 0; (item = curLoop[i]) != null; i++ ) { - if ( item ) { - found = filter( item, match, i, curLoop ); - var pass = not ^ !!found; - - if ( inplace && found != null ) { - if ( pass ) { - anyFound = true; - } else { - curLoop[i] = false; - } - } else if ( pass ) { - result.push( item ); - anyFound = true; - } - } - } - } - - if ( found !== undefined ) { - if ( !inplace ) { - curLoop = result; - } - - expr = expr.replace( Expr.match[ type ], "" ); - - if ( !anyFound ) { - return []; - } - - break; - } - } - } - - // Improper expression - if ( expr === old ) { - if ( anyFound == null ) { - Sizzle.error( expr ); - } else { - break; - } - } - - old = expr; - } - - return curLoop; -}; - -Sizzle.error = function( msg ) { - throw "Syntax error, unrecognized expression: " + msg; -}; - -var Expr = Sizzle.selectors = { - order: [ "ID", "NAME", "TAG" ], - match: { - ID: /#((?:[\w\u00c0-\uFFFF-]|\\.)+)/, - CLASS: /\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/, - NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/, - ATTR: /\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/, - TAG: /^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/, - CHILD: /:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/, - POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/, - PSEUDO: /:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/ - }, - leftMatch: {}, - attrMap: { - "class": "className", - "for": "htmlFor" - }, - attrHandle: { - href: function(elem){ - return elem.getAttribute("href"); - } - }, - relative: { - "+": function(checkSet, part){ - var isPartStr = typeof part === "string", - isTag = isPartStr && !/\W/.test(part), - isPartStrNotTag = isPartStr && !isTag; - - if ( isTag ) { - part = part.toLowerCase(); - } - - for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) { - if ( (elem = checkSet[i]) ) { - while ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {} - - checkSet[i] = isPartStrNotTag || elem && elem.nodeName.toLowerCase() === part ? - elem || false : - elem === part; - } - } - - if ( isPartStrNotTag ) { - Sizzle.filter( part, checkSet, true ); - } - }, - ">": function(checkSet, part){ - var isPartStr = typeof part === "string"; - - if ( isPartStr && !/\W/.test(part) ) { - part = part.toLowerCase(); - - for ( var i = 0, l = checkSet.length; i < l; i++ ) { - var elem = checkSet[i]; - if ( elem ) { - var parent = elem.parentNode; - checkSet[i] = parent.nodeName.toLowerCase() === part ? parent : false; - } - } - } else { - for ( var i = 0, l = checkSet.length; i < l; i++ ) { - var elem = checkSet[i]; - if ( elem ) { - checkSet[i] = isPartStr ? - elem.parentNode : - elem.parentNode === part; - } - } - - if ( isPartStr ) { - Sizzle.filter( part, checkSet, true ); - } - } - }, - "": function(checkSet, part, isXML){ - var doneName = done++, checkFn = dirCheck; - - if ( typeof part === "string" && !/\W/.test(part) ) { - var nodeCheck = part = part.toLowerCase(); - checkFn = dirNodeCheck; - } - - checkFn("parentNode", part, doneName, checkSet, nodeCheck, isXML); - }, - "~": function(checkSet, part, isXML){ - var doneName = done++, checkFn = dirCheck; - - if ( typeof part === "string" && !/\W/.test(part) ) { - var nodeCheck = part = part.toLowerCase(); - checkFn = dirNodeCheck; - } - - checkFn("previousSibling", part, doneName, checkSet, nodeCheck, isXML); - } - }, - find: { - ID: function(match, context, isXML){ - if ( typeof context.getElementById !== "undefined" && !isXML ) { - var m = context.getElementById(match[1]); - return m ? [m] : []; - } - }, - NAME: function(match, context){ - if ( typeof context.getElementsByName !== "undefined" ) { - var ret = [], results = context.getElementsByName(match[1]); - - for ( var i = 0, l = results.length; i < l; i++ ) { - if ( results[i].getAttribute("name") === match[1] ) { - ret.push( results[i] ); - } - } - - return ret.length === 0 ? null : ret; - } - }, - TAG: function(match, context){ - return context.getElementsByTagName(match[1]); - } - }, - preFilter: { - CLASS: function(match, curLoop, inplace, result, not, isXML){ - match = " " + match[1].replace(/\\/g, "") + " "; - - if ( isXML ) { - return match; - } - - for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) { - if ( elem ) { - if ( not ^ (elem.className && (" " + elem.className + " ").replace(/[\t\n]/g, " ").indexOf(match) >= 0) ) { - if ( !inplace ) { - result.push( elem ); - } - } else if ( inplace ) { - curLoop[i] = false; - } - } - } - - return false; - }, - ID: function(match){ - return match[1].replace(/\\/g, ""); - }, - TAG: function(match, curLoop){ - return match[1].toLowerCase(); - }, - CHILD: function(match){ - if ( match[1] === "nth" ) { - // parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6' - var test = /(-?)(\d*)n((?:\+|-)?\d*)/.exec( - match[2] === "even" && "2n" || match[2] === "odd" && "2n+1" || - !/\D/.test( match[2] ) && "0n+" + match[2] || match[2]); - - // calculate the numbers (first)n+(last) including if they are negative - match[2] = (test[1] + (test[2] || 1)) - 0; - match[3] = test[3] - 0; - } - - // TODO: Move to normal caching system - match[0] = done++; - - return match; - }, - ATTR: function(match, curLoop, inplace, result, not, isXML){ - var name = match[1].replace(/\\/g, ""); - - if ( !isXML && Expr.attrMap[name] ) { - match[1] = Expr.attrMap[name]; - } - - if ( match[2] === "~=" ) { - match[4] = " " + match[4] + " "; - } - - return match; - }, - PSEUDO: function(match, curLoop, inplace, result, not){ - if ( match[1] === "not" ) { - // If we're dealing with a complex expression, or a simple one - if ( ( chunker.exec(match[3]) || "" ).length > 1 || /^\w/.test(match[3]) ) { - match[3] = Sizzle(match[3], null, null, curLoop); - } else { - var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not); - if ( !inplace ) { - result.push.apply( result, ret ); - } - return false; - } - } else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) { - return true; - } - - return match; - }, - POS: function(match){ - match.unshift( true ); - return match; - } - }, - filters: { - enabled: function(elem){ - return elem.disabled === false && elem.type !== "hidden"; - }, - disabled: function(elem){ - return elem.disabled === true; - }, - checked: function(elem){ - return elem.checked === true; - }, - selected: function(elem){ - // Accessing this property makes selected-by-default - // options in Safari work properly - elem.parentNode.selectedIndex; - return elem.selected === true; - }, - parent: function(elem){ - return !!elem.firstChild; - }, - empty: function(elem){ - return !elem.firstChild; - }, - has: function(elem, i, match){ - return !!Sizzle( match[3], elem ).length; - }, - header: function(elem){ - return /h\d/i.test( elem.nodeName ); - }, - text: function(elem){ - return "text" === elem.type; - }, - radio: function(elem){ - return "radio" === elem.type; - }, - checkbox: function(elem){ - return "checkbox" === elem.type; - }, - file: function(elem){ - return "file" === elem.type; - }, - password: function(elem){ - return "password" === elem.type; - }, - submit: function(elem){ - return "submit" === elem.type; - }, - image: function(elem){ - return "image" === elem.type; - }, - reset: function(elem){ - return "reset" === elem.type; - }, - button: function(elem){ - return "button" === elem.type || elem.nodeName.toLowerCase() === "button"; - }, - input: function(elem){ - return /input|select|textarea|button/i.test(elem.nodeName); - } - }, - setFilters: { - first: function(elem, i){ - return i === 0; - }, - last: function(elem, i, match, array){ - return i === array.length - 1; - }, - even: function(elem, i){ - return i % 2 === 0; - }, - odd: function(elem, i){ - return i % 2 === 1; - }, - lt: function(elem, i, match){ - return i < match[3] - 0; - }, - gt: function(elem, i, match){ - return i > match[3] - 0; - }, - nth: function(elem, i, match){ - return match[3] - 0 === i; - }, - eq: function(elem, i, match){ - return match[3] - 0 === i; - } - }, - filter: { - PSEUDO: function(elem, match, i, array){ - var name = match[1], filter = Expr.filters[ name ]; - - if ( filter ) { - return filter( elem, i, match, array ); - } else if ( name === "contains" ) { - return (elem.textContent || elem.innerText || getText([ elem ]) || "").indexOf(match[3]) >= 0; - } else if ( name === "not" ) { - var not = match[3]; - - for ( var i = 0, l = not.length; i < l; i++ ) { - if ( not[i] === elem ) { - return false; - } - } - - return true; - } else { - Sizzle.error( "Syntax error, unrecognized expression: " + name ); - } - }, - CHILD: function(elem, match){ - var type = match[1], node = elem; - switch (type) { - case 'only': - case 'first': - while ( (node = node.previousSibling) ) { - if ( node.nodeType === 1 ) { - return false; - } - } - if ( type === "first" ) { - return true; - } - node = elem; - case 'last': - while ( (node = node.nextSibling) ) { - if ( node.nodeType === 1 ) { - return false; - } - } - return true; - case 'nth': - var first = match[2], last = match[3]; - - if ( first === 1 && last === 0 ) { - return true; - } - - var doneName = match[0], - parent = elem.parentNode; - - if ( parent && (parent.sizcache !== doneName || !elem.nodeIndex) ) { - var count = 0; - for ( node = parent.firstChild; node; node = node.nextSibling ) { - if ( node.nodeType === 1 ) { - node.nodeIndex = ++count; - } - } - parent.sizcache = doneName; - } - - var diff = elem.nodeIndex - last; - if ( first === 0 ) { - return diff === 0; - } else { - return ( diff % first === 0 && diff / first >= 0 ); - } - } - }, - ID: function(elem, match){ - return elem.nodeType === 1 && elem.getAttribute("id") === match; - }, - TAG: function(elem, match){ - return (match === "*" && elem.nodeType === 1) || elem.nodeName.toLowerCase() === match; - }, - CLASS: function(elem, match){ - return (" " + (elem.className || elem.getAttribute("class")) + " ") - .indexOf( match ) > -1; - }, - ATTR: function(elem, match){ - var name = match[1], - result = Expr.attrHandle[ name ] ? - Expr.attrHandle[ name ]( elem ) : - elem[ name ] != null ? - elem[ name ] : - elem.getAttribute( name ), - value = result + "", - type = match[2], - check = match[4]; - - return result == null ? - type === "!=" : - type === "=" ? - value === check : - type === "*=" ? - value.indexOf(check) >= 0 : - type === "~=" ? - (" " + value + " ").indexOf(check) >= 0 : - !check ? - value && result !== false : - type === "!=" ? - value !== check : - type === "^=" ? - value.indexOf(check) === 0 : - type === "$=" ? - value.substr(value.length - check.length) === check : - type === "|=" ? - value === check || value.substr(0, check.length + 1) === check + "-" : - false; - }, - POS: function(elem, match, i, array){ - var name = match[2], filter = Expr.setFilters[ name ]; - - if ( filter ) { - return filter( elem, i, match, array ); - } - } - } -}; - -var origPOS = Expr.match.POS; - -for ( var type in Expr.match ) { - Expr.match[ type ] = new RegExp( Expr.match[ type ].source + /(?![^\[]*\])(?![^\(]*\))/.source ); - Expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source + Expr.match[ type ].source.replace(/\\(\d+)/g, function(all, num){ - return "\\" + (num - 0 + 1); - })); -} - -var makeArray = function(array, results) { - array = Array.prototype.slice.call( array, 0 ); - - if ( results ) { - results.push.apply( results, array ); - return results; - } - - return array; -}; - -// Perform a simple check to determine if the browser is capable of -// converting a NodeList to an array using builtin methods. -// Also verifies that the returned array holds DOM nodes -// (which is not the case in the Blackberry browser) -try { - Array.prototype.slice.call( document.documentElement.childNodes, 0 )[0].nodeType; - -// Provide a fallback method if it does not work -} catch(e){ - makeArray = function(array, results) { - var ret = results || []; - - if ( toString.call(array) === "[object Array]" ) { - Array.prototype.push.apply( ret, array ); - } else { - if ( typeof array.length === "number" ) { - for ( var i = 0, l = array.length; i < l; i++ ) { - ret.push( array[i] ); - } - } else { - for ( var i = 0; array[i]; i++ ) { - ret.push( array[i] ); - } - } - } - - return ret; - }; -} - -var sortOrder; - -if ( document.documentElement.compareDocumentPosition ) { - sortOrder = function( a, b ) { - if ( !a.compareDocumentPosition || !b.compareDocumentPosition ) { - if ( a == b ) { - hasDuplicate = true; - } - return a.compareDocumentPosition ? -1 : 1; - } - - var ret = a.compareDocumentPosition(b) & 4 ? -1 : a === b ? 0 : 1; - if ( ret === 0 ) { - hasDuplicate = true; - } - return ret; - }; -} else if ( "sourceIndex" in document.documentElement ) { - sortOrder = function( a, b ) { - if ( !a.sourceIndex || !b.sourceIndex ) { - if ( a == b ) { - hasDuplicate = true; - } - return a.sourceIndex ? -1 : 1; - } - - var ret = a.sourceIndex - b.sourceIndex; - if ( ret === 0 ) { - hasDuplicate = true; - } - return ret; - }; -} else if ( document.createRange ) { - sortOrder = function( a, b ) { - if ( !a.ownerDocument || !b.ownerDocument ) { - if ( a == b ) { - hasDuplicate = true; - } - return a.ownerDocument ? -1 : 1; - } - - var aRange = a.ownerDocument.createRange(), bRange = b.ownerDocument.createRange(); - aRange.setStart(a, 0); - aRange.setEnd(a, 0); - bRange.setStart(b, 0); - bRange.setEnd(b, 0); - var ret = aRange.compareBoundaryPoints(Range.START_TO_END, bRange); - if ( ret === 0 ) { - hasDuplicate = true; - } - return ret; - }; -} - -// Utility function for retreiving the text value of an array of DOM nodes -function getText( elems ) { - var ret = "", elem; - - for ( var i = 0; elems[i]; i++ ) { - elem = elems[i]; - - // Get the text from text nodes and CDATA nodes - if ( elem.nodeType === 3 || elem.nodeType === 4 ) { - ret += elem.nodeValue; - - // Traverse everything else, except comment nodes - } else if ( elem.nodeType !== 8 ) { - ret += getText( elem.childNodes ); - } - } - - return ret; -} - -// Check to see if the browser returns elements by name when -// querying by getElementById (and provide a workaround) -(function(){ - // We're going to inject a fake input element with a specified name - var form = document.createElement("div"), - id = "script" + (new Date).getTime(); - form.innerHTML = ""; - - // Inject it into the root element, check its status, and remove it quickly - var root = document.documentElement; - root.insertBefore( form, root.firstChild ); - - // The workaround has to do additional checks after a getElementById - // Which slows things down for other browsers (hence the branching) - if ( document.getElementById( id ) ) { - Expr.find.ID = function(match, context, isXML){ - if ( typeof context.getElementById !== "undefined" && !isXML ) { - var m = context.getElementById(match[1]); - return m ? m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ? [m] : undefined : []; - } - }; - - Expr.filter.ID = function(elem, match){ - var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id"); - return elem.nodeType === 1 && node && node.nodeValue === match; - }; - } - - root.removeChild( form ); - root = form = null; // release memory in IE -})(); - -(function(){ - // Check to see if the browser returns only elements - // when doing getElementsByTagName("*") - - // Create a fake element - var div = document.createElement("div"); - div.appendChild( document.createComment("") ); - - // Make sure no comments are found - if ( div.getElementsByTagName("*").length > 0 ) { - Expr.find.TAG = function(match, context){ - var results = context.getElementsByTagName(match[1]); - - // Filter out possible comments - if ( match[1] === "*" ) { - var tmp = []; - - for ( var i = 0; results[i]; i++ ) { - if ( results[i].nodeType === 1 ) { - tmp.push( results[i] ); - } - } - - results = tmp; - } - - return results; - }; - } - - // Check to see if an attribute returns normalized href attributes - div.innerHTML = ""; - if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" && - div.firstChild.getAttribute("href") !== "#" ) { - Expr.attrHandle.href = function(elem){ - return elem.getAttribute("href", 2); - }; - } - - div = null; // release memory in IE -})(); - -if ( document.querySelectorAll ) { - (function(){ - var oldSizzle = Sizzle, div = document.createElement("div"); - div.innerHTML = "

    "; - - // Safari can't handle uppercase or unicode characters when - // in quirks mode. - if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) { - return; - } - - Sizzle = function(query, context, extra, seed){ - context = context || document; - - // Only use querySelectorAll on non-XML documents - // (ID selectors don't work in non-HTML documents) - if ( !seed && context.nodeType === 9 && !isXML(context) ) { - try { - return makeArray( context.querySelectorAll(query), extra ); - } catch(e){} - } - - return oldSizzle(query, context, extra, seed); - }; - - for ( var prop in oldSizzle ) { - Sizzle[ prop ] = oldSizzle[ prop ]; - } - - div = null; // release memory in IE - })(); -} - -(function(){ - var div = document.createElement("div"); - - div.innerHTML = "
    "; - - // Opera can't find a second classname (in 9.6) - // Also, make sure that getElementsByClassName actually exists - if ( !div.getElementsByClassName || div.getElementsByClassName("e").length === 0 ) { - return; - } - - // Safari caches class attributes, doesn't catch changes (in 3.2) - div.lastChild.className = "e"; - - if ( div.getElementsByClassName("e").length === 1 ) { - return; - } - - Expr.order.splice(1, 0, "CLASS"); - Expr.find.CLASS = function(match, context, isXML) { - if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) { - return context.getElementsByClassName(match[1]); - } - }; - - div = null; // release memory in IE -})(); - -function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { - for ( var i = 0, l = checkSet.length; i < l; i++ ) { - var elem = checkSet[i]; - if ( elem ) { - elem = elem[dir]; - var match = false; - - while ( elem ) { - if ( elem.sizcache === doneName ) { - match = checkSet[elem.sizset]; - break; - } - - if ( elem.nodeType === 1 && !isXML ){ - elem.sizcache = doneName; - elem.sizset = i; - } - - if ( elem.nodeName.toLowerCase() === cur ) { - match = elem; - break; - } - - elem = elem[dir]; - } - - checkSet[i] = match; - } - } -} - -function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { - for ( var i = 0, l = checkSet.length; i < l; i++ ) { - var elem = checkSet[i]; - if ( elem ) { - elem = elem[dir]; - var match = false; - - while ( elem ) { - if ( elem.sizcache === doneName ) { - match = checkSet[elem.sizset]; - break; - } - - if ( elem.nodeType === 1 ) { - if ( !isXML ) { - elem.sizcache = doneName; - elem.sizset = i; - } - if ( typeof cur !== "string" ) { - if ( elem === cur ) { - match = true; - break; - } - - } else if ( Sizzle.filter( cur, [elem] ).length > 0 ) { - match = elem; - break; - } - } - - elem = elem[dir]; - } - - checkSet[i] = match; - } - } -} - -var contains = document.compareDocumentPosition ? function(a, b){ - return !!(a.compareDocumentPosition(b) & 16); -} : function(a, b){ - return a !== b && (a.contains ? a.contains(b) : true); -}; - -var isXML = function(elem){ - // documentElement is verified for cases where it doesn't yet exist - // (such as loading iframes in IE - #4833) - var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement; - return documentElement ? documentElement.nodeName !== "HTML" : false; -}; - -var posProcess = function(selector, context){ - var tmpSet = [], later = "", match, - root = context.nodeType ? [context] : context; - - // Position selectors must be done after the filter - // And so must :not(positional) so we move all PSEUDOs to the end - while ( (match = Expr.match.PSEUDO.exec( selector )) ) { - later += match[0]; - selector = selector.replace( Expr.match.PSEUDO, "" ); - } - - selector = Expr.relative[selector] ? selector + "*" : selector; - - for ( var i = 0, l = root.length; i < l; i++ ) { - Sizzle( selector, root[i], tmpSet ); - } - - return Sizzle.filter( later, tmpSet ); -}; - -// EXPOSE -jQuery.find = Sizzle; -jQuery.expr = Sizzle.selectors; -jQuery.expr[":"] = jQuery.expr.filters; -jQuery.unique = Sizzle.uniqueSort; -jQuery.text = getText; -jQuery.isXMLDoc = isXML; -jQuery.contains = contains; - -return; - -window.Sizzle = Sizzle; - -})(); -var runtil = /Until$/, - rparentsprev = /^(?:parents|prevUntil|prevAll)/, - // Note: This RegExp should be improved, or likely pulled from Sizzle - rmultiselector = /,/, - slice = Array.prototype.slice; - -// Implement the identical functionality for filter and not -var winnow = function( elements, qualifier, keep ) { - if ( jQuery.isFunction( qualifier ) ) { - return jQuery.grep(elements, function( elem, i ) { - return !!qualifier.call( elem, i, elem ) === keep; - }); - - } else if ( qualifier.nodeType ) { - return jQuery.grep(elements, function( elem, i ) { - return (elem === qualifier) === keep; - }); - - } else if ( typeof qualifier === "string" ) { - var filtered = jQuery.grep(elements, function( elem ) { - return elem.nodeType === 1; - }); - - if ( isSimple.test( qualifier ) ) { - return jQuery.filter(qualifier, filtered, !keep); - } else { - qualifier = jQuery.filter( qualifier, filtered ); - } - } - - return jQuery.grep(elements, function( elem, i ) { - return (jQuery.inArray( elem, qualifier ) >= 0) === keep; - }); -}; - -jQuery.fn.extend({ - find: function( selector ) { - var ret = this.pushStack( "", "find", selector ), length = 0; - - for ( var i = 0, l = this.length; i < l; i++ ) { - length = ret.length; - jQuery.find( selector, this[i], ret ); - - if ( i > 0 ) { - // Make sure that the results are unique - for ( var n = length; n < ret.length; n++ ) { - for ( var r = 0; r < length; r++ ) { - if ( ret[r] === ret[n] ) { - ret.splice(n--, 1); - break; - } - } - } - } - } - - return ret; - }, - - has: function( target ) { - var targets = jQuery( target ); - return this.filter(function() { - for ( var i = 0, l = targets.length; i < l; i++ ) { - if ( jQuery.contains( this, targets[i] ) ) { - return true; - } - } - }); - }, - - not: function( selector ) { - return this.pushStack( winnow(this, selector, false), "not", selector); - }, - - filter: function( selector ) { - return this.pushStack( winnow(this, selector, true), "filter", selector ); - }, - - is: function( selector ) { - return !!selector && jQuery.filter( selector, this ).length > 0; - }, - - closest: function( selectors, context ) { - if ( jQuery.isArray( selectors ) ) { - var ret = [], cur = this[0], match, matches = {}, selector; - - if ( cur && selectors.length ) { - for ( var i = 0, l = selectors.length; i < l; i++ ) { - selector = selectors[i]; - - if ( !matches[selector] ) { - matches[selector] = jQuery.expr.match.POS.test( selector ) ? - jQuery( selector, context || this.context ) : - selector; - } - } - - while ( cur && cur.ownerDocument && cur !== context ) { - for ( selector in matches ) { - match = matches[selector]; - - if ( match.jquery ? match.index(cur) > -1 : jQuery(cur).is(match) ) { - ret.push({ selector: selector, elem: cur }); - delete matches[selector]; - } - } - cur = cur.parentNode; - } - } - - return ret; - } - - var pos = jQuery.expr.match.POS.test( selectors ) ? - jQuery( selectors, context || this.context ) : null; - - return this.map(function( i, cur ) { - while ( cur && cur.ownerDocument && cur !== context ) { - if ( pos ? pos.index(cur) > -1 : jQuery(cur).is(selectors) ) { - return cur; - } - cur = cur.parentNode; - } - return null; - }); - }, - - // Determine the position of an element within - // the matched set of elements - index: function( elem ) { - if ( !elem || typeof elem === "string" ) { - return jQuery.inArray( this[0], - // If it receives a string, the selector is used - // If it receives nothing, the siblings are used - elem ? jQuery( elem ) : this.parent().children() ); - } - // Locate the position of the desired element - return jQuery.inArray( - // If it receives a jQuery object, the first element is used - elem.jquery ? elem[0] : elem, this ); - }, - - add: function( selector, context ) { - var set = typeof selector === "string" ? - jQuery( selector, context || this.context ) : - jQuery.makeArray( selector ), - all = jQuery.merge( this.get(), set ); - - return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ? - all : - jQuery.unique( all ) ); - }, - - andSelf: function() { - return this.add( this.prevObject ); - } -}); - -// A painfully simple check to see if an element is disconnected -// from a document (should be improved, where feasible). -function isDisconnected( node ) { - return !node || !node.parentNode || node.parentNode.nodeType === 11; -} - -jQuery.each({ - parent: function( elem ) { - var parent = elem.parentNode; - return parent && parent.nodeType !== 11 ? parent : null; - }, - parents: function( elem ) { - return jQuery.dir( elem, "parentNode" ); - }, - parentsUntil: function( elem, i, until ) { - return jQuery.dir( elem, "parentNode", until ); - }, - next: function( elem ) { - return jQuery.nth( elem, 2, "nextSibling" ); - }, - prev: function( elem ) { - return jQuery.nth( elem, 2, "previousSibling" ); - }, - nextAll: function( elem ) { - return jQuery.dir( elem, "nextSibling" ); - }, - prevAll: function( elem ) { - return jQuery.dir( elem, "previousSibling" ); - }, - nextUntil: function( elem, i, until ) { - return jQuery.dir( elem, "nextSibling", until ); - }, - prevUntil: function( elem, i, until ) { - return jQuery.dir( elem, "previousSibling", until ); - }, - siblings: function( elem ) { - return jQuery.sibling( elem.parentNode.firstChild, elem ); - }, - children: function( elem ) { - return jQuery.sibling( elem.firstChild ); - }, - contents: function( elem ) { - return jQuery.nodeName( elem, "iframe" ) ? - elem.contentDocument || elem.contentWindow.document : - jQuery.makeArray( elem.childNodes ); - } -}, function( name, fn ) { - jQuery.fn[ name ] = function( until, selector ) { - var ret = jQuery.map( this, fn, until ); - - if ( !runtil.test( name ) ) { - selector = until; - } - - if ( selector && typeof selector === "string" ) { - ret = jQuery.filter( selector, ret ); - } - - ret = this.length > 1 ? jQuery.unique( ret ) : ret; - - if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) { - ret = ret.reverse(); - } - - return this.pushStack( ret, name, slice.call(arguments).join(",") ); - }; -}); - -jQuery.extend({ - filter: function( expr, elems, not ) { - if ( not ) { - expr = ":not(" + expr + ")"; - } - - return jQuery.find.matches(expr, elems); - }, - - dir: function( elem, dir, until ) { - var matched = [], cur = elem[dir]; - while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { - if ( cur.nodeType === 1 ) { - matched.push( cur ); - } - cur = cur[dir]; - } - return matched; - }, - - nth: function( cur, result, dir, elem ) { - result = result || 1; - var num = 0; - - for ( ; cur; cur = cur[dir] ) { - if ( cur.nodeType === 1 && ++num === result ) { - break; - } - } - - return cur; - }, - - sibling: function( n, elem ) { - var r = []; - - for ( ; n; n = n.nextSibling ) { - if ( n.nodeType === 1 && n !== elem ) { - r.push( n ); - } - } - - return r; - } -}); -var rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g, - rleadingWhitespace = /^\s+/, - rxhtmlTag = /(<([\w:]+)[^>]*?)\/>/g, - rselfClosing = /^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i, - rtagName = /<([\w:]+)/, - rtbody = /"; - }, - wrapMap = { - option: [ 1, "" ], - legend: [ 1, "
    ", "
    " ], - thead: [ 1, "", "
    " ], - tr: [ 2, "", "
    " ], - td: [ 3, "", "
    " ], - col: [ 2, "", "
    " ], - area: [ 1, "", "" ], - _default: [ 0, "", "" ] - }; - -wrapMap.optgroup = wrapMap.option; -wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; -wrapMap.th = wrapMap.td; - -// IE can't serialize and - - - - - -
    -

    Testing cfi.coffee

    -

    Click anywhere and the location will be marked with a marker, whose position is set via a CFI.

    -

    - Reset CFI to None -   - Test viewport location calculation: - -

    -

    A div with scrollbars

    -

    Scroll down and click on some elements. Make sure to hit both - bold and not bold text as well as different points on the image

    -
    But I must explain to you how all this mistaken - idea of denouncing pleasure and praising pain was born and I - will give you a complete account of the system, and expound the - actual teachings of the great explorer of the truth, the - master-builder of human happiness. No one rejects, dislikes, or - avoids pleasure itself, because it is pleasure, but because - those who do not know how to pursue pleasure rationally - encounter consequences that are extremely painful. Nor again is - there anyone who loves or pursues or desires to obtain - pain of itself, because it is pain, but because occasionally - circumstances occur in which toil and pain can procure him some - great pleasure. To take a trivial example, which of us ever - undertakes laborious physical exercise, except to obtain some - advantage from it? But who has any right to find fault with a - man who chooses to enjoy a pleasure that has no annoying - consequences, or one who avoids a pain that produces no - resultant pleasure? On the other hand, we denounce with - righteous indignation and dislike men who are so beguiled and - demoralized by the charms of pleasure of the moment, so blinded - by desire, that they cannot foresee - Test Image - -
    -

    Some entities and comments

    -

    Entities: & © § > some text after entities

    -

    An invisible Comment: followed by some text

    -

    An invalid (in HTML) CDATA: followed by some text

    -

    Margins padding borders

    -

    Try clicking in the margins, borders and padding. CFI - calculation should fail.

    - -

    But I must explain to you how all this mistaken - idea of denouncing pleasure and praising pain was born and I will - give you a complete account of the system, and expound the actual - teachings of the great explorer of the truth, the master-builder of - human happiness. No one rejects, dislikes, or avoids pleasure - itself, because it is pleasure, but because those who do not know - how to pursue pleasure rationally encounter consequences that are - extremely painful. Nor again is there anyone who loves or - pursues or desires to obtain pain of itself, because it is - pain, but because occasionally circumstances occur in which toil - and pain can procure him some great pleasure. To take a trivial - example, which of us ever undertakes laborious physical exercise, - except to obtain some advantage from it? But who has any right to - find fault with a man who chooses to enjoy a pleasure that has no - annoying consequences, or one who avoids a pain that produces no - resultant pleasure? On the other hand, we denounce with righteous - indignation and dislike men who are so beguiled and demoralized by - the charms of pleasure of the moment, so blinded by desire, that - they cannot foresee

    - -

    Lots of collapsed whitespace

    -

    Try clicking the A character after the colon: - A suffix

    - -

    Lots of nested/sibling tags

    -

    A bunch of nested and sibling - tags, all mixed together. Click all - over this paragraph to test things.

    - -

    Images

    -

    Try clicking at different points along the image. Also try - changing the magnification and then hitting reload.

    - Test Image - -

    Iframes

    -

    Try clicking anywhere in the iframe below:

    - - -

    Video

    -

    Try clicking on this video while it is playing. The page should - reload with the video paused at the point it was at when you - clicked. To play the video you should right click on it and select - play (otherwise the click will cause a reload). -

    - - -
    - - - - - diff --git a/src/calibre/ebooks/oeb/display/test-cfi/marker.png b/src/calibre/ebooks/oeb/display/test-cfi/marker.png deleted file mode 100644 index 6dcc1fb7ba693b0af2e108a59e3e99c439bfdc55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 751 zcmVvA>c ziyb~c5Rlt>S1qO$pR{q*&Xq}-IOlYj{(#*&8t@8Z^QX*Y45*O?UsO3>W%~=Xw^J? zB69JK_?I6^_rh!GsAUM!1-ankJ(2I%M9#lUzKLB9b|o+cuzbSe>kSMLsqdc<5dweN zHq1I(J%RV<-kyH(b5rE#p?xz+@f(+eonnB#gjRDkt*gveMj&-V)(Uw-cX9u!34Dg% zorHnNz(kNXRzd&=?cmThQqf5ml-Nt~{xTAtBX}4;6+tQ%690wBl?O>I^btoi*IzaCjXEG%C3AE{QDiXgtoC(!AMi_5P;K4-O$qU`lx~d8qZ%- zLgUR_$LW{XEvwc6v%`(h2TqATkBfkpBA_J3(0G!PppO}7Bv$mSn#IHnly=^;A)}3F z$KX0oT>8I@1zH##<4(r}YFMlg5tQJ}^)lM$5n!}8)9V$x8o=@nAJ7eO$270fmAMb3 z=Dx3~*jp5kAUf6@FC|{a{{-JPUd4K`m@44Nc55yg`HNi8%sdBbkua~nR{^)Vz#8p~ zuHsdto-u!5Ud0(?Wm2oG1v - Released under the GPLv3 License -### - -class CalibreUtils - # This class is a namespace to expose functions via the - # window.calibre_utils object. - - constructor: () -> - if not this instanceof arguments.callee - throw new Error('CalibreUtils constructor called as function') - this.dom_attr = 'calibre_f3fa75ca98eb4413a4ee413f20f60226' - this.dom_data = [] - - # Data API {{{ - - retrieve: (node, key, def=null) -> - # Retrieve data previously stored on node (a DOM node) with key (a - # string). If no such data is found then return the value of def. - idx = parseInt(node.getAttribute(this.dom_attr)) - if isNaN(idx) - return def - data = this.dom_data[idx] - if not data.hasOwnProperty(key) - return def - return data[key] - - store: (node, key, val) -> - # Store arbitrary javscript object val on DOM node node with key (a - # string). This can be later retrieved by the retrieve method. - idx = parseInt(node.getAttribute(this.dom_attr)) - if isNaN(idx) - idx = this.dom_data.length - node.setAttribute(this.dom_attr, idx+'') - this.dom_data.push({}) - this.dom_data[idx][key] = val - # }}} - - log: (args...) -> # {{{ - # Output args to the window.console object. args are automatically - # coerced to strings - if args - msg = args.join(' ') - if window?.console?.log - window.console.log(msg) - else if process?.stdout?.write - process.stdout.write(msg + '\n') - # }}} - - stack_trace: () -> # {{{ - currentFunction = arguments.callee.caller - while (currentFunction) - fn = currentFunction.toString() - this.log(fn) - currentFunction = currentFunction.caller - - # }}} - - window_scroll_pos: (win=window) -> # {{{ - # The current scroll position of the browser window - if typeof(win.pageXOffset) == 'number' - x = win.pageXOffset - y = win.pageYOffset - else # IE < 9 - if document.body and ( document.body.scrollLeft or document.body.scrollTop ) - x = document.body.scrollLeft - y = document.body.scrollTop - else if document.documentElement and ( document.documentElement.scrollLeft or document.documentElement.scrollTop) - y = document.documentElement.scrollTop - x = document.documentElement.scrollLeft - return [x, y] - # }}} - - viewport_to_document: (x, y, doc=window?.document) -> # {{{ - # Convert x, y from the viewport (window) co-ordinate system to the - # document (body) co-ordinate system - until doc == window.document - # We are in a frame - frame = doc.defaultView.frameElement - rect = frame.getBoundingClientRect() - x += rect.left - y += rect.top - doc = frame.ownerDocument - win = doc.defaultView - [wx, wy] = this.window_scroll_pos(win) - x += wx - y += wy - return [x, y] - # }}} - - absleft: (elem) -> # {{{ - # The left edge of elem in document co-ords. Works in all - # circumstances, including column layout. Note that this will cause - # a relayout if the render tree is dirty. Also, because of a bug in the - # version of WebKit bundled with Qt 4.8, this does not always work, see - # https://bugs.launchpad.net/bugs/1132641 for a test case. - r = elem.getBoundingClientRect() - return this.viewport_to_document(r.left, 0, elem.ownerDocument)[0] - # }}} - - abstop: (elem) -> # {{{ - # The left edge of elem in document co-ords. Works in all - # circumstances, including column layout. Note that this will cause - # a relayout if the render tree is dirty. Also, because of a bug in the - # version of WebKit bundled with Qt 4.8, this does not always work, see - # https://bugs.launchpad.net/bugs/1132641 for a test case. - r = elem.getBoundingClientRect() - return this.viewport_to_document(r.top, 0, elem.ownerDocument)[0] - # }}} - - word_at_point: (x, y) -> # {{{ - # Return the word at the specified point (in viewport co-ordinates) - range = if document.caretPositionFromPoint then document.caretPositionFromPoint(x, y) else document.caretRangeFromPoint(x, y) - if range == null - return null - node = range.startContainer - if node?.nodeType != Node.TEXT_NODE - return null - offset = range.startOffset - range = document.createRange() - range.selectNodeContents(node) - try - range.setStart(node, offset) - range.setEnd(node, offset+1) - catch error # Happens if offset is invalid - null - range.expand('word') - ans = range.toString().trim() - range.detach() - matches = ans.split(/\b/) - return if matches.length > 0 then matches[0] else null - - # }}} - - setup_epub_reading_system: (name, version, layout, features) -> # {{{ - window.navigator.epubReadingSystem = { - 'name':name, 'version':version, 'layoutStyle':layout, - 'hasFeature': (feature, version=1.0) -> - if (version == null or version == 1.0) and feature.toLowerCase() in features - return true - return false - } - # }}} - -if window? - window.calibre_utils = new CalibreUtils() - diff --git a/src/calibre/gui2/__init__.py b/src/calibre/gui2/__init__.py index aa1ca33c64..d79d789ac6 100644 --- a/src/calibre/gui2/__init__.py +++ b/src/calibre/gui2/__init__.py @@ -1346,23 +1346,6 @@ def event_type_name(ev_or_etype): return 'UnknownEventType' -def secure_web_page(qwebpage_or_qwebsettings): - from PyQt5.QtWebKit import QWebSettings - settings = qwebpage_or_qwebsettings if isinstance(qwebpage_or_qwebsettings, QWebSettings) else qwebpage_or_qwebsettings.settings() - settings.setAttribute(QWebSettings.JavaEnabled, False) - settings.setAttribute(QWebSettings.PluginsEnabled, False) - settings.setAttribute(QWebSettings.JavascriptCanOpenWindows, False) - settings.setAttribute(QWebSettings.JavascriptCanAccessClipboard, False) - settings.setAttribute(QWebSettings.LocalContentCanAccessFileUrls, False) # ensure javascript cannot read from local files - settings.setAttribute(QWebSettings.NotificationsEnabled, False) - settings.setThirdPartyCookiePolicy(QWebSettings.AlwaysBlockThirdPartyCookies) - settings.setAttribute(QWebSettings.OfflineStorageDatabaseEnabled, False) - settings.setAttribute(QWebSettings.LocalStorageEnabled, False) - QWebSettings.setOfflineStorageDefaultQuota(0) - QWebSettings.setOfflineStoragePath(None) - return settings - - empty_model = QStringListModel(['']) empty_index = empty_model.index(0) diff --git a/src/calibre/gui2/tweak_book/editor/syntax/javascript.py b/src/calibre/gui2/tweak_book/editor/syntax/javascript.py index 3cd576edcf..4b13636eb3 100644 --- a/src/calibre/gui2/tweak_book/editor/syntax/javascript.py +++ b/src/calibre/gui2/tweak_book/editor/syntax/javascript.py @@ -90,4 +90,4 @@ Highlighter = create_highlighter('JavascriptHighlighter', JavascriptLexer) if __name__ == '__main__': from calibre.gui2.tweak_book.editor.widget import launch_editor - launch_editor(P('viewer/images.js'), syntax='javascript') + launch_editor(P('viewer.js'), syntax='javascript') diff --git a/src/calibre/gui2/viewer/__init__.py b/src/calibre/gui2/viewer/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/src/calibre/gui2/viewer/bookmarkmanager.py b/src/calibre/gui2/viewer/bookmarkmanager.py deleted file mode 100644 index 55e388a8f6..0000000000 --- a/src/calibre/gui2/viewer/bookmarkmanager.py +++ /dev/null @@ -1,235 +0,0 @@ -#!/usr/bin/env python2 -# vim:fileencoding=utf-8 -from __future__ import absolute_import, division, print_function, unicode_literals - -__license__ = 'GPL v3' -__copyright__ = '2013, Kovid Goyal ' - -import json - -from PyQt5.Qt import ( - Qt, QListWidget, QListWidgetItem, QItemSelectionModel, QAction, - QGridLayout, QPushButton, QIcon, QWidget, pyqtSignal, QLabel) - -from calibre.gui2 import choose_save_file, choose_files -from calibre.utils.icu import sort_key -from polyglot.builtins import unicode_type, range - - -class BookmarksList(QListWidget): - - changed = pyqtSignal() - bookmark_activated = pyqtSignal(object) - - def __init__(self, parent=None): - QListWidget.__init__(self, parent) - self.setDragEnabled(True) - self.setDragDropMode(self.InternalMove) - self.setDefaultDropAction(Qt.MoveAction) - self.setAlternatingRowColors(True) - self.setStyleSheet('QListView::item { padding: 0.5ex }') - self.viewport().setAcceptDrops(True) - self.setDropIndicatorShown(True) - self.setContextMenuPolicy(Qt.ActionsContextMenu) - self.ac_edit = ac = QAction(QIcon(I('edit_input.png')), _('Edit this bookmark'), self) - self.addAction(ac) - self.ac_delete = ac = QAction(QIcon(I('trash.png')), _('Remove this bookmark'), self) - self.addAction(ac) - self.ac_sort = ac = QAction(_('Sort by name'), self) - self.addAction(ac) - self.ac_sort_pos = ac = QAction(_('Sort by position in book'), self) - self.addAction(ac) - - def dropEvent(self, ev): - QListWidget.dropEvent(self, ev) - if ev.isAccepted(): - self.changed.emit() - - def keyPressEvent(self, ev): - if ev.key() in (Qt.Key_Enter, Qt.Key_Return): - i = self.currentItem() - if i is not None: - self.bookmark_activated.emit(i) - ev.accept() - return - if ev.key() in (Qt.Key_Delete, Qt.Key_Backspace): - i = self.currentItem() - if i is not None: - self.ac_delete.trigger() - ev.accept() - return - return QListWidget.keyPressEvent(self, ev) - - -class BookmarkManager(QWidget): - - edited = pyqtSignal(object) - activated = pyqtSignal(object) - create_requested = pyqtSignal() - - def __init__(self, parent): - QWidget.__init__(self, parent) - self.l = l = QGridLayout(self) - l.setContentsMargins(0, 0, 0, 0) - self.setLayout(l) - - self.bookmarks_list = bl = BookmarksList(self) - bl.itemChanged.connect(self.item_changed) - l.addWidget(bl, 0, 0, 1, -1) - bl.itemClicked.connect(self.item_activated) - bl.bookmark_activated.connect(self.item_activated) - bl.changed.connect(lambda : self.edited.emit(self.get_bookmarks())) - bl.ac_edit.triggered.connect(self.edit_bookmark) - bl.ac_sort.triggered.connect(self.sort_by_name) - bl.ac_sort_pos.triggered.connect(self.sort_by_pos) - bl.ac_delete.triggered.connect(self.delete_bookmark) - - self.la = la = QLabel(_( - 'Double click to edit and drag-and-drop to re-order the bookmarks')) - la.setWordWrap(True) - l.addWidget(la, l.rowCount(), 0, 1, -1) - - self.button_new = b = QPushButton(QIcon(I('bookmarks.png')), _('&New'), self) - b.clicked.connect(self.create_requested) - b.setToolTip(_('Create a new bookmark at the current location')) - l.addWidget(b) - - self.button_delete = b = QPushButton(QIcon(I('trash.png')), _('&Remove'), self) - b.setToolTip(_('Remove the currently selected bookmark')) - b.clicked.connect(self.delete_bookmark) - l.addWidget(b, l.rowCount() - 1, 1) - - self.button_delete = b = QPushButton(_('Sort by &name'), self) - b.setToolTip(_('Sort bookmarks by name')) - b.clicked.connect(self.sort_by_name) - l.addWidget(b) - - self.button_delete = b = QPushButton(_('Sort by &position'), self) - b.setToolTip(_('Sort bookmarks by position in book')) - b.clicked.connect(self.sort_by_pos) - l.addWidget(b, l.rowCount() - 1, 1) - - self.button_export = b = QPushButton(QIcon(I('back.png')), _('E&xport'), self) - b.clicked.connect(self.export_bookmarks) - l.addWidget(b) - - self.button_import = b = QPushButton(QIcon(I('forward.png')), _('&Import'), self) - b.clicked.connect(self.import_bookmarks) - l.addWidget(b, l.rowCount() - 1, 1) - - def item_activated(self, item): - bm = self.item_to_bm(item) - self.activated.emit(bm) - - def set_bookmarks(self, bookmarks=()): - self.bookmarks_list.clear() - for bm in bookmarks: - if bm['title'] != 'calibre_current_page_bookmark': - i = QListWidgetItem(bm['title']) - i.setData(Qt.UserRole, self.bm_to_item(bm)) - i.setFlags(i.flags() | Qt.ItemIsEditable) - self.bookmarks_list.addItem(i) - if self.bookmarks_list.count() > 0: - self.bookmarks_list.setCurrentItem(self.bookmarks_list.item(0), QItemSelectionModel.ClearAndSelect) - - def set_current_bookmark(self, bm): - for i, q in enumerate(self): - if bm == q: - l = self.bookmarks_list - item = l.item(i) - l.setCurrentItem(item, QItemSelectionModel.ClearAndSelect) - l.scrollToItem(item) - - def __iter__(self): - for i in range(self.bookmarks_list.count()): - yield self.item_to_bm(self.bookmarks_list.item(i)) - - def item_changed(self, item): - self.bookmarks_list.blockSignals(True) - title = unicode_type(item.data(Qt.DisplayRole)) - if not title: - title = _('Unknown') - item.setData(Qt.DisplayRole, title) - bm = self.item_to_bm(item) - bm['title'] = title - item.setData(Qt.UserRole, self.bm_to_item(bm)) - self.bookmarks_list.blockSignals(False) - self.edited.emit(self.get_bookmarks()) - - def delete_bookmark(self): - row = self.bookmarks_list.currentRow() - if row > -1: - self.bookmarks_list.takeItem(row) - self.edited.emit(self.get_bookmarks()) - - def edit_bookmark(self): - item = self.bookmarks_list.currentItem() - if item is not None: - self.bookmarks_list.editItem(item) - - def sort_by_name(self): - bm = self.get_bookmarks() - bm.sort(key=lambda x:sort_key(x['title'])) - self.set_bookmarks(bm) - self.edited.emit(bm) - - def sort_by_pos(self): - from calibre.ebooks.epub.cfi.parse import cfi_sort_key - - def pos_key(b): - if b.get('type', None) == 'cfi': - return b['spine'], cfi_sort_key(b['pos']) - return (None, None) - bm = self.get_bookmarks() - bm.sort(key=pos_key) - self.set_bookmarks(bm) - self.edited.emit(bm) - - def bm_to_item(self, bm): - return bm.copy() - - def item_to_bm(self, item): - return item.data(Qt.UserRole).copy() - - def get_bookmarks(self): - return list(self) - - def export_bookmarks(self): - filename = choose_save_file( - self, 'export-viewer-bookmarks', _('Export bookmarks'), - filters=[(_('Saved bookmarks'), ['calibre-bookmarks'])], all_files=False, initial_filename='bookmarks.calibre-bookmarks') - if filename: - data = json.dumps(self.get_bookmarks(), indent=True) - if not isinstance(data, bytes): - data = data.encode('utf-8') - with lopen(filename, 'wb') as fileobj: - fileobj.write(data) - - def import_bookmarks(self): - files = choose_files(self, 'export-viewer-bookmarks', _('Import bookmarks'), - filters=[(_('Saved bookmarks'), ['calibre-bookmarks'])], all_files=False, select_only_single_file=True) - if not files: - return - filename = files[0] - - imported = None - with lopen(filename, 'rb') as fileobj: - imported = json.load(fileobj) - - if imported is not None: - bad = False - try: - for bm in imported: - if 'title' not in bm: - bad = True - break - except Exception: - pass - - if not bad: - bookmarks = self.get_bookmarks() - for bm in imported: - if bm not in bookmarks: - bookmarks.append(bm) - self.set_bookmarks([bm for bm in bookmarks if bm['title'] != 'calibre_current_page_bookmark']) - self.edited.emit(self.get_bookmarks()) diff --git a/src/calibre/gui2/viewer/config.py b/src/calibre/gui2/viewer/config.py deleted file mode 100644 index 246fc0f376..0000000000 --- a/src/calibre/gui2/viewer/config.py +++ /dev/null @@ -1,456 +0,0 @@ -#!/usr/bin/env python2 -# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:fdm=marker:ai -from __future__ import absolute_import, division, print_function, unicode_literals - -__license__ = 'GPL v3' -__copyright__ = '2012, Kovid Goyal ' -__docformat__ = 'restructuredtext en' - -import zipfile -from functools import partial - -from PyQt5.Qt import ( - QFont, QDialog, Qt, QColor, QColorDialog, QMenu, QInputDialog, - QListWidgetItem, QFormLayout, QLabel, QLineEdit, QDialogButtonBox) - -from calibre.constants import isxp -from calibre.utils.config import Config, StringConfig, JSONConfig -from calibre.utils.icu import sort_key -from calibre.utils.localization import get_language, calibre_langcode_to_name -from calibre.gui2 import min_available_height, error_dialog -from calibre.gui2.languages import LanguagesEdit -from calibre.gui2.shortcuts import ShortcutConfig -from calibre.gui2.viewer.config_ui import Ui_Dialog -from polyglot.builtins import iteritems, unicode_type - - -def config(defaults=None): - desc = _('Options to customize the e-book viewer') - if defaults is None: - c = Config('viewer', desc) - else: - c = StringConfig(defaults, desc) - - c.add_opt('remember_window_size', default=False, - help=_('Remember last used window size')) - c.add_opt('user_css', default='', - help=_('Set the user CSS stylesheet. This can be used to customize the look of all books.')) - c.add_opt('max_fs_width', default=800, - help=_("Set the maximum width that the book's text and pictures will take" - " when in fullscreen mode. This allows you to read the book text" - " without it becoming too wide.")) - c.add_opt('max_fs_height', default=-1, - help=_("Set the maximum height that the book's text and pictures will take" - " when in fullscreen mode. This allows you to read the book text" - " without it becoming too tall. Note that this setting only takes effect in paged mode (which is the default mode).")) - c.add_opt('fit_images', default=True, - help=_('Resize images larger than the viewer window to fit inside it')) - c.add_opt('hyphenate', default=False, help=_('Hyphenate text')) - c.add_opt('hyphenate_default_lang', default='en', - help=_('Default language for hyphenation rules')) - c.add_opt('search_online_url', default='https://www.google.com/search?q={text}', - help=_('The URL to use when searching for selected text online')) - c.add_opt('remember_current_page', default=True, - help=_('Save the current position in the document, when quitting')) - c.add_opt('copy_bookmarks_to_file', default=True, - help=_('Copy bookmarks to the e-book file for easy sharing, if possible')) - c.add_opt('wheel_flips_pages', default=False, - help=_('Have the mouse wheel turn pages')) - c.add_opt('wheel_scroll_fraction', default=100, - help=_('Control how much the mouse wheel scrolls by in flow mode')) - c.add_opt('line_scroll_fraction', default=100, - help=_('Control how much the arrow keys scroll by in flow mode')) - c.add_opt('tap_flips_pages', default=True, - help=_('Tapping on the screen turns pages')) - c.add_opt('line_scrolling_stops_on_pagebreaks', default=False, - help=_('Prevent the up and down arrow keys from scrolling past ' - 'page breaks')) - c.add_opt('page_flip_duration', default=0.5, - help=_('The time, in seconds, for the page flip animation. Default' - ' is half a second.')) - c.add_opt('font_magnification_step', default=0.2, - help=_('The amount by which to change the font size when clicking' - ' the font larger/smaller buttons. Should be a number between ' - '0 and 1.')) - c.add_opt('fullscreen_clock', default=False, action='store_true', - help=_('Show a clock in fullscreen mode.')) - c.add_opt('fullscreen_pos', default=False, action='store_true', - help=_('Show reading position in fullscreen mode.')) - c.add_opt('fullscreen_scrollbar', default=True, action='store_false', - help=_('Show the scrollbar in fullscreen mode.')) - c.add_opt('start_in_fullscreen', default=False, action='store_true', - help=_('Start viewer in full screen mode')) - c.add_opt('show_fullscreen_help', default=True, action='store_false', - help=_('Show full screen usage help')) - c.add_opt('cols_per_screen', default=1) - c.add_opt('cols_per_screen_portrait', default=1) - c.add_opt('cols_per_screen_landscape', default=1) - c.add_opt('cols_per_screen_migrated', default=False, action='store_true') - c.add_opt('use_book_margins', default=False, action='store_true') - c.add_opt('top_margin', default=20) - c.add_opt('side_margin', default=40) - c.add_opt('bottom_margin', default=20) - c.add_opt('text_color', default=None) - c.add_opt('background_color', default=None) - c.add_opt('show_controls', default=True) - - fonts = c.add_group('FONTS', _('Font options')) - fonts('serif_family', default='Liberation Serif', - help=_('The serif font family')) - fonts('sans_family', default='Liberation Sans', - help=_('The sans-serif font family')) - fonts('mono_family', default='Liberation Mono', - help=_('The monospace font family')) - fonts('default_font_size', default=20, help=_('The standard font size in px')) - fonts('mono_font_size', default=16, help=_('The monospace font size in px')) - fonts('standard_font', default='serif', help=_('The standard font type')) - fonts('minimum_font_size', default=8, help=_('The minimum font size in px')) - - oparse = c.parse - - def parse(): - ans = oparse() - if not ans.cols_per_screen_migrated: - ans.cols_per_screen_portrait = ans.cols_per_screen_landscape = ans.cols_per_screen - return ans - c.parse = parse - - return c - - -def load_themes(): - return JSONConfig('viewer_themes') - - -class ConfigDialog(QDialog, Ui_Dialog): - - def __init__(self, shortcuts, parent=None): - QDialog.__init__(self, parent) - self.setupUi(self) - - for x in ('text', 'background'): - getattr(self, 'change_%s_color_button'%x).clicked.connect( - partial(self.change_color, x, reset=False)) - getattr(self, 'reset_%s_color_button'%x).clicked.connect( - partial(self.change_color, x, reset=True)) - self.css.setToolTip(_('Set the user CSS stylesheet. This can be used to customize the look of all books.')) - - self.shortcuts = shortcuts - self.shortcut_config = ShortcutConfig(shortcuts, parent=self) - bb = self.buttonBox - bb.button(bb.RestoreDefaults).clicked.connect(self.restore_defaults) - - with zipfile.ZipFile(P('viewer/hyphenate/patterns.zip', - allow_user_override=False), 'r') as zf: - pats = [x.split('.')[0].replace('-', '_') for x in zf.namelist()] - - lang_pats = { - 'el_monoton': get_language('el').partition(';')[0] + _(' monotone'), 'el_polyton':get_language('el').partition(';')[0] + _(' polytone'), - 'sr_cyrl': get_language('sr') + _(' cyrillic'), 'sr_latn': get_language('sr') + _(' latin'), - } - - def gl(pat): - return lang_pats.get(pat, get_language(pat)) - names = list(map(gl, pats)) - pmap = {} - for i in range(len(pats)): - pmap[names[i]] = pats[i] - for x in sorted(names): - self.hyphenate_default_lang.addItem(x, pmap[x]) - self.hyphenate_pats = pats - self.hyphenate_names = names - p = self.tabs.widget(1) - p.layout().addWidget(self.shortcut_config) - - if isxp: - self.hyphenate.setVisible(False) - self.hyphenate_default_lang.setVisible(False) - self.hyphenate_label.setVisible(False) - - self.themes = load_themes() - self.save_theme_button.clicked.connect(self.save_theme) - self.load_theme_button.m = m = QMenu() - self.load_theme_button.setMenu(m) - m.triggered.connect(self.load_theme) - self.delete_theme_button.m = m = QMenu() - self.delete_theme_button.setMenu(m) - m.triggered.connect(self.delete_theme) - - opts = config().parse() - self.load_options(opts) - self.init_load_themes() - self.init_dictionaries() - - self.clear_search_history_button.clicked.connect(self.clear_search_history) - self.resize(self.width(), min(self.height(), max(575, min_available_height()-25))) - - for x in 'add remove change'.split(): - getattr(self, x + '_dictionary_website_button').clicked.connect(getattr(self, x + '_dictionary_website')) - - def clear_search_history(self): - from calibre.gui2 import config - config['viewer_search_history'] = [] - config['viewer_toc_search_history'] = [] - - def save_theme(self): - themename, ok = QInputDialog.getText(self, _('Theme name'), - _('Choose a name for this theme')) - if not ok: - return - themename = unicode_type(themename).strip() - if not themename: - return - c = config('') - c.add_opt('theme_name_xxx', default=themename) - self.save_options(c) - self.themes['theme_'+themename] = c.src - self.init_load_themes() - self.theming_message.setText(_('Saved settings as the theme named: %s')% - themename) - - def init_load_themes(self): - for x in ('load', 'delete'): - m = getattr(self, '%s_theme_button'%x).menu() - m.clear() - for x in self.themes: - title = x[len('theme_'):] - ac = m.addAction(title) - ac.theme_id = x - - def load_theme(self, ac): - theme = ac.theme_id - raw = self.themes[theme] - self.load_options(config(raw).parse()) - self.theming_message.setText(_('Loaded settings from the theme %s')% - theme[len('theme_'):]) - - def delete_theme(self, ac): - theme = ac.theme_id - del self.themes[theme] - self.init_load_themes() - self.theming_message.setText(_('Deleted the theme named: %s')% - theme[len('theme_'):]) - - def init_dictionaries(self): - from calibre.gui2.viewer.main import dprefs - self.word_lookups = dprefs['word_lookups'] - - @property - def word_lookups(self): - return dict(self.dictionary_list.item(i).data(Qt.UserRole) for i in range(self.dictionary_list.count())) - - @word_lookups.setter - def word_lookups(self, wl): - self.dictionary_list.clear() - for langcode, url in sorted(iteritems(wl), key=lambda lc_url:sort_key(calibre_langcode_to_name(lc_url[0]))): - i = QListWidgetItem('%s: %s' % (calibre_langcode_to_name(langcode), url), self.dictionary_list) - i.setData(Qt.UserRole, (langcode, url)) - - def add_dictionary_website(self): - class AD(QDialog): - - def __init__(self, parent): - QDialog.__init__(self, parent) - self.setWindowTitle(_('Add a dictionary website')) - self.l = l = QFormLayout(self) - self.la = la = QLabel('

    '+ - _('Choose a language and enter the website address (URL) for it below.' - ' The URL must have the placeholder %s in it, which will be replaced by the actual word being' - ' looked up') % '{word}') - la.setWordWrap(True) - l.addRow(la) - self.le = LanguagesEdit(self) - l.addRow(_('&Language:'), self.le) - self.url = u = QLineEdit(self) - u.setMinimumWidth(350) - u.setPlaceholderText(_('For example: %s') % 'https://dictionary.com/{word}') - l.addRow(_('&URL:'), u) - self.bb = bb = QDialogButtonBox(QDialogButtonBox.Ok|QDialogButtonBox.Cancel) - l.addRow(bb) - bb.accepted.connect(self.accept), bb.rejected.connect(self.reject) - self.resize(self.sizeHint()) - - def accept(self): - if '{word}' not in self.url.text(): - return error_dialog(self, _('Invalid URL'), _( - 'The URL {0} does not have the placeholder {1} in it.').format(self.url.text(), '{word}'), show=True) - QDialog.accept(self) - - d = AD(self) - if d.exec_() == d.Accepted: - url = d.url.text() - if url: - wl = self.word_lookups - for lc in d.le.lang_codes: - wl[lc] = url - self.word_lookups = wl - - def remove_dictionary_website(self): - idx = self.dictionary_list.currentIndex() - if idx.isValid(): - lc, url = idx.data(Qt.UserRole) - wl = self.word_lookups - wl.pop(lc, None) - self.word_lookups = wl - - def change_dictionary_website(self): - idx = self.dictionary_list.currentIndex() - if idx.isValid(): - lc, url = idx.data(Qt.UserRole) - url, ok = QInputDialog.getText(self, _('Enter new website'), 'URL:', text=url) - if ok: - wl = self.word_lookups - wl[lc] = url - self.word_lookups = wl - - def restore_defaults(self): - opts = config('').parse() - self.load_options(opts) - from calibre.gui2.viewer.main import dprefs, vprefs - self.word_lookups = dprefs.defaults['word_lookups'] - self.opt_singleinstance.setChecked(vprefs.defaults['singleinstance']) - - def load_options(self, opts): - self.opt_remember_window_size.setChecked(opts.remember_window_size) - self.opt_remember_current_page.setChecked(opts.remember_current_page) - self.opt_copy_bookmarks_to_file.setChecked(opts.copy_bookmarks_to_file) - self.opt_wheel_flips_pages.setChecked(opts.wheel_flips_pages) - self.opt_wheel_scroll_fraction.setValue(opts.wheel_scroll_fraction) - self.opt_line_scroll_fraction.setValue(opts.line_scroll_fraction) - self.opt_tap_flips_pages.setChecked(opts.tap_flips_pages) - self.opt_page_flip_duration.setValue(opts.page_flip_duration) - fms = opts.font_magnification_step - if fms < 0.01 or fms > 1: - fms = 0.2 - self.opt_font_mag_step.setValue(int(fms*100)) - self.opt_line_scrolling_stops_on_pagebreaks.setChecked( - opts.line_scrolling_stops_on_pagebreaks) - self.serif_family.setCurrentFont(QFont(opts.serif_family)) - self.sans_family.setCurrentFont(QFont(opts.sans_family)) - self.mono_family.setCurrentFont(QFont(opts.mono_family)) - self.default_font_size.setValue(opts.default_font_size) - self.minimum_font_size.setValue(opts.minimum_font_size) - self.mono_font_size.setValue(opts.mono_font_size) - self.standard_font.setCurrentIndex( - {'serif':0, 'sans':1, 'mono':2}[opts.standard_font]) - self.css.setPlainText(opts.user_css) - self.max_fs_width.setValue(opts.max_fs_width) - self.max_fs_height.setValue(opts.max_fs_height) - pats, names = self.hyphenate_pats, self.hyphenate_names - try: - idx = pats.index(opts.hyphenate_default_lang) - except ValueError: - idx = pats.index('en_us') - idx = self.hyphenate_default_lang.findText(names[idx]) - self.hyphenate_default_lang.setCurrentIndex(idx) - self.hyphenate.setChecked(opts.hyphenate) - self.hyphenate_default_lang.setEnabled(opts.hyphenate) - self.search_online_url.setText(opts.search_online_url or '') - self.opt_fit_images.setChecked(opts.fit_images) - self.opt_fullscreen_clock.setChecked(opts.fullscreen_clock) - self.opt_fullscreen_scrollbar.setChecked(opts.fullscreen_scrollbar) - self.opt_start_in_fullscreen.setChecked(opts.start_in_fullscreen) - self.opt_show_fullscreen_help.setChecked(opts.show_fullscreen_help) - self.opt_fullscreen_pos.setChecked(opts.fullscreen_pos) - self.opt_cols_per_screen_portrait.setValue(opts.cols_per_screen_portrait) - self.opt_cols_per_screen_landscape.setValue(opts.cols_per_screen_landscape) - self.opt_override_book_margins.setChecked(not opts.use_book_margins) - for x in ('top', 'bottom', 'side'): - getattr(self, 'opt_%s_margin'%x).setValue(getattr(opts, - x+'_margin')) - for x in ('text', 'background'): - setattr(self, 'current_%s_color'%x, getattr(opts, '%s_color'%x)) - self.update_sample_colors() - self.opt_show_controls.setChecked(opts.show_controls) - from calibre.gui2.viewer.main import vprefs - self.opt_singleinstance.setChecked(bool(vprefs['singleinstance'])) - - def change_color(self, which, reset=False): - if reset: - setattr(self, 'current_%s_color'%which, None) - else: - initial = getattr(self, 'current_%s_color'%which) - if initial: - initial = QColor(initial) - else: - initial = Qt.black if which == 'text' else Qt.white - title = (_('Choose text color') if which == 'text' else - _('Choose background color')) - col = QColorDialog.getColor(initial, self, - title, QColorDialog.ShowAlphaChannel) - if col.isValid(): - name = unicode_type(col.name()) - setattr(self, 'current_%s_color'%which, name) - self.update_sample_colors() - - def update_sample_colors(self): - for x in ('text', 'background'): - val = getattr(self, 'current_%s_color'%x) - if not val: - val = 'inherit' if x == 'text' else 'transparent' - ss = 'QLabel { %s: %s }'%('background-color' if x == 'background' - else 'color', val) - getattr(self, '%s_color_sample'%x).setStyleSheet(ss) - - def accept(self, *args): - if self.shortcut_config.is_editing: - from calibre.gui2 import info_dialog - info_dialog(self, _('Still editing'), - _('You are in the middle of editing a keyboard shortcut.' - ' First complete that by clicking outside the' - ' shortcut editing box.'), show=True) - return - self.save_options(config()) - return QDialog.accept(self, *args) - - def save_options(self, c): - c.set('serif_family', unicode_type(self.serif_family.currentFont().family())) - c.set('sans_family', unicode_type(self.sans_family.currentFont().family())) - c.set('mono_family', unicode_type(self.mono_family.currentFont().family())) - c.set('default_font_size', self.default_font_size.value()) - c.set('minimum_font_size', self.minimum_font_size.value()) - c.set('mono_font_size', self.mono_font_size.value()) - c.set('standard_font', {0:'serif', 1:'sans', 2:'mono'}[ - self.standard_font.currentIndex()]) - c.set('user_css', unicode_type(self.css.toPlainText())) - c.set('remember_window_size', self.opt_remember_window_size.isChecked()) - c.set('fit_images', self.opt_fit_images.isChecked()) - c.set('max_fs_width', int(self.max_fs_width.value())) - max_fs_height = self.max_fs_height.value() - if max_fs_height <= self.max_fs_height.minimum(): - max_fs_height = -1 - c.set('max_fs_height', max_fs_height) - c.set('hyphenate', self.hyphenate.isChecked()) - c.set('remember_current_page', self.opt_remember_current_page.isChecked()) - c.set('copy_bookmarks_to_file', self.opt_copy_bookmarks_to_file.isChecked()) - c.set('wheel_flips_pages', self.opt_wheel_flips_pages.isChecked()) - c.set('wheel_scroll_fraction', self.opt_wheel_scroll_fraction.value()) - c.set('line_scroll_fraction', self.opt_line_scroll_fraction.value()) - c.set('tap_flips_pages', self.opt_tap_flips_pages.isChecked()) - c.set('page_flip_duration', self.opt_page_flip_duration.value()) - c.set('font_magnification_step', - float(self.opt_font_mag_step.value())/100.) - idx = self.hyphenate_default_lang.currentIndex() - c.set('hyphenate_default_lang', - self.hyphenate_default_lang.itemData(idx)) - c.set('line_scrolling_stops_on_pagebreaks', - self.opt_line_scrolling_stops_on_pagebreaks.isChecked()) - c.set('search_online_url', self.search_online_url.text().strip()) - c.set('fullscreen_clock', self.opt_fullscreen_clock.isChecked()) - c.set('fullscreen_pos', self.opt_fullscreen_pos.isChecked()) - c.set('fullscreen_scrollbar', self.opt_fullscreen_scrollbar.isChecked()) - c.set('show_fullscreen_help', self.opt_show_fullscreen_help.isChecked()) - c.set('cols_per_screen_migrated', True) - c.set('cols_per_screen_portrait', int(self.opt_cols_per_screen_portrait.value())) - c.set('cols_per_screen_landscape', int(self.opt_cols_per_screen_landscape.value())) - c.set('start_in_fullscreen', self.opt_start_in_fullscreen.isChecked()) - c.set('use_book_margins', not - self.opt_override_book_margins.isChecked()) - c.set('text_color', self.current_text_color) - c.set('background_color', self.current_background_color) - c.set('show_controls', self.opt_show_controls.isChecked()) - for x in ('top', 'bottom', 'side'): - c.set(x+'_margin', int(getattr(self, 'opt_%s_margin'%x).value())) - from calibre.gui2.viewer.main import dprefs, vprefs - dprefs['word_lookups'] = self.word_lookups - vprefs['singleinstance'] = self.opt_singleinstance.isChecked() diff --git a/src/calibre/gui2/viewer/config.ui b/src/calibre/gui2/viewer/config.ui deleted file mode 100644 index 8c15e81d5e..0000000000 --- a/src/calibre/gui2/viewer/config.ui +++ /dev/null @@ -1,1213 +0,0 @@ - - - Dialog - - - - 0 - 0 - 839 - 630 - - - - Configure E-book viewer - - - - :/images/config.png:/images/config.png - - - - - - Qt::Horizontal - - - QDialogButtonBox::Cancel|QDialogButtonBox::Ok|QDialogButtonBox::RestoreDefaults - - - - - - - 0 - - - - &General - - - - - - QToolBox::tab { - background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, - stop: 0 #E1E1E1, stop: 0.4 #DDDDDD, - stop: 0.5 #D8D8D8, stop: 1.0 #D3D3D3); - border-radius: 5px; - color: black; - font-weight: bold; - } - - QToolBox::tab:selected { - font-style: italic; - } - -QToolBox::tab:hover { - color: red; - font-style: italic; -} - - - 0 - - - - - 0 - 0 - 799 - 354 - - - - &Font options - - - - - - Se&rif family: - - - serif_family - - - - - - - - - - &Sans family: - - - sans_family - - - - - - - - - - &Monospace family: - - - mono_family - - - - - - - - - - &Default font size: - - - default_font_size - - - - - - - px - - - 8 - - - 100 - - - - - - - Monospace &font size: - - - mono_font_size - - - - - - - px - - - 8 - - - 100 - - - - - - - S&tandard font: - - - standard_font - - - - - - - - Serif - - - - - Sans-serif - - - - - Monospace - - - - - - - - Font &magnification step size: - - - opt_font_mag_step - - - - - - - The amount by which the font size is increased/decreased - when you click the font size larger/smaller buttons - - - % - - - - - - - Minimum font si&ze: - - - minimum_font_size - - - - - - - The minimum font size in pixels - - - px - - - 8 - - - - - - - - - 0 - 0 - 799 - 354 - - - - Text &layout in paged mode - - - - QFormLayout::ExpandingFieldsGrow - - - - - <p>These options only apply in "paged" mode, where the text is broken up into pages, as in a paper book. To get into this mode, use the button with the yellow scroll icon in the top right corner of the viewer window. - - - true - - - - - - - Qt::Horizontal - - - - - - - In &portrait orientation: - - - opt_cols_per_screen_portrait - - - - - - - Controls the number of pages on the screen when the viewer window's width is less than its height - - - 1 - - - 5 - - - - - - - &Override the page margin settings specified in the book - - - true - - - - - - - &Top margin: - - - opt_top_margin - - - - - - - px - - - 10 - - - 1000 - - - - - - - &Side margin: - - - opt_side_margin - - - - - - - px - - - 10 - - - 1000 - - - - - - - &Bottom margin: - - - opt_bottom_margin - - - - - - - px - - - 10 - - - 1000 - - - - - - - Qt::Horizontal - - - - - - - The number of pages of text to show on screen - - - - - - - In &landscape orientation: - - - opt_cols_per_screen_landscape - - - - - - - Controls the number of pages on the screen when the viewer window's height is less than its width - - - 1 - - - 5 - - - - - - - - - 0 - 0 - 799 - 354 - - - - F&ull screen options - - - - - - Maximum text width in &fullscreen: - - - max_fs_width - - - - - - - Set the maximum width that the book's text and pictures will take when in fullscreen mode. This allows you to read the book text without it becoming too wide. - - - px - - - 100 - - - 10000 - - - - - - - Show reading &position in full screen mode - - - - - - - Show &scrollbar in full screen mode - - - - - - - &Start viewer in full screen mode - - - - - - - Show &help message when starting full screen mode - - - - - - - Maximum text height in fullscreen (paged mode): - - - - - - - Show &clock in full screen mode - - - - - - - Disabled - - - px - - - 100 - - - 10000 - - - 25 - - - - - - - - - 0 - 0 - 799 - 354 - - - - Colors and backgrounds - - - - - - Background color: - - - - - - - - - Sample - - - - - - - &Change - - - - - - - &Reset - - - - - - - - - Text color: - - - - - - - - - Sample - - - - - - - &Change - - - - - - - Reset - - - - - - - - - - - 0 - 0 - 799 - 354 - - - - Page fl&ip/scrolling options - - - - - - - - Page flip &duration: - - - opt_page_flip_duration - - - - - - - disabled - - - secs - - - 1 - - - 0.100000000000000 - - - 3.000000000000000 - - - 0.100000000000000 - - - 0.500000000000000 - - - - - - - &Tapping on the page flips pages - - - - - - - Mouse &wheel flips pages - - - - - - - Line &scrolling stops at page breaks - - - - - - - Scrolling in flow mode - - - - - - Control the amount the mouse &wheel scrolls: - - - opt_wheel_scroll_fraction - - - - - - - This is a percentage, by making it less than 100 you can decrease the amount the wheel scrolls by, by making it more than 100 you can increase the scroll amount. - - - % - - - 1 - - - 1000 - - - 5 - - - - - - - Control the amount the arrow &keys scroll: - - - opt_line_scroll_fraction - - - - - - - This is a percentage, by making it less than 100 you can decrease the amount the arrow keys scroll by, by making it more than 100 you can increase the scroll amount. - - - % - - - 1 - - - 1000 - - - 5 - - - - - - - - - - - - - - 0 - 0 - 799 - 354 - - - - &Miscellaneous options - - - - - - H&yphenate (break line in the middle of large words) - - - - - - - Default &language for hyphenation: - - - hyphenate_default_lang - - - - - - - The default language to use for hyphenation rules. If the book does not specify a language, this will be used. - - - - - - - Show &controls in the viewer window - - - - - - - Search &online URL: - - - search_online_url - - - - - - - Change the search engine used to perform online searches for selected text. -You must enter the search URL for the search engine, with the placeholder -{text}, which will be replaced by the selected text. - - - - - - - Remember last used &window size and layout - - - - - - - Remember the current &page when quitting - - - - - - - Keep a copy of all bookmarks/current page information inside the e-book file, so that you can share them by simply sending the e-book file itself. Currently only works with e-books in the EPUB format. - - - Keep a copy of &bookmarks/current page inside the e-book file, for easy sharing - - - - - - - Normally, you can view multiple books in calibre, each in its own viewer window. With this option, if you attempt to view a second book, it will replace the previously opened book instead of using a new window. - - - Allow only a single book to be &viewed at a time (needs restart) - - - - - - - &Resize images larger than the viewer window (needs restart) - - - - - - - Clear search &history - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - - - - &Keyboard shortcuts - - - - - - Double click to change a keyboard shortcut - - - true - - - - - - - - User &stylesheet - - - - - - <p>A CSS stylesheet that can be used to control the look and feel of books. For examples, click <a href="https://www.mobileread.com/forums/showthread.php?t=51500">here</a>. - - - true - - - true - - - - - - - - - - - &Theming - - - - QFormLayout::ExpandingFieldsGrow - - - - - You can save and load the viewer settings as <i>themes</i> - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - Save current settings as a theme: - - - save_theme_button - - - - - - - &Save - - - - :/images/save.png:/images/save.png - - - Qt::ToolButtonTextBesideIcon - - - - - - - Load a previously saved theme: - - - load_theme_button - - - - - - - &Load - - - - :/images/document_open.png:/images/document_open.png - - - QToolButton::InstantPopup - - - Qt::ToolButtonTextBesideIcon - - - - - - - Delete a saved theme: - - - - - - - &Delete - - - - :/images/trash.png:/images/trash.png - - - QToolButton::InstantPopup - - - Qt::ToolButtonTextBesideIcon - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - - - - - - - &Dictionaries - - - - - - When you lookup a word, the viewer opens the word's definition in a dictionary website. The dictionary website is chosen based on the language of the book. You can customize the website used for a particular language here. - - - true - - - - - - - - - - - - - 0 - 0 - - - - &Add website - - - - :/images/plus.png:/images/plus.png - - - - - - - - 0 - 0 - - - - &Remove website - - - - :/images/minus.png:/images/minus.png - - - - - - - - 0 - 0 - - - - &Change website - - - - :/images/edit_input.png:/images/edit_input.png - - - - - - - - - - - - - buttonBox - - - - - - - buttonBox - accepted() - Dialog - accept() - - - 258 - 623 - - - 157 - 274 - - - - - buttonBox - rejected() - Dialog - reject() - - - 326 - 623 - - - 286 - 274 - - - - - hyphenate - toggled(bool) - hyphenate_default_lang - setEnabled(bool) - - - 89 - 226 - - - 332 - 259 - - - - - opt_override_book_margins - toggled(bool) - opt_top_margin - setEnabled(bool) - - - 137 - 189 - - - 367 - 218 - - - - - opt_override_book_margins - toggled(bool) - opt_side_margin - setEnabled(bool) - - - 71 - 193 - - - 347 - 253 - - - - - opt_override_book_margins - toggled(bool) - opt_bottom_margin - setEnabled(bool) - - - 513 - 196 - - - 371 - 281 - - - - - diff --git a/src/calibre/gui2/viewer/documentview.py b/src/calibre/gui2/viewer/documentview.py deleted file mode 100644 index d055186000..0000000000 --- a/src/calibre/gui2/viewer/documentview.py +++ /dev/null @@ -1,1420 +0,0 @@ -#!/usr/bin/env python2 -from __future__ import absolute_import, division, print_function, unicode_literals - -__license__ = 'GPL v3' -__copyright__ = '2008, Kovid Goyal kovid@kovidgoyal.net' -__docformat__ = 'restructuredtext en' - -# Imports {{{ -import math, json -from functools import partial - -from PyQt5.Qt import ( - QSize, QSizePolicy, QUrl, Qt, QPainter, QPalette, QBrush, - QDialog, QColor, QPoint, QImage, QRegion, QIcon, QAction, QMenu, - pyqtSignal, QApplication, pyqtSlot, QKeySequence) -from PyQt5.QtWebKitWidgets import QWebPage, QWebView -from PyQt5.QtWebKit import QWebSettings, QWebElement - -from calibre.gui2.viewer.flip import SlideFlip -from calibre.gui2.shortcuts import Shortcuts -from calibre.gui2 import safe_open_url, secure_web_page, error_dialog -from calibre import prints -from calibre.customize.ui import all_viewer_plugins -from calibre.gui2.viewer.keys import SHORTCUTS -from calibre.gui2.viewer.javascript import JavaScriptLoader -from calibre.gui2.viewer.position import PagePosition -from calibre.gui2.viewer.config import config, ConfigDialog, load_themes -from calibre.gui2.viewer.image_popup import ImagePopup, render_svg -from calibre.gui2.viewer.table_popup import TablePopup -from calibre.gui2.viewer.inspector import WebInspector -from calibre.gui2.viewer.gestures import GestureHandler -from calibre.gui2.viewer.footnote import Footnotes -from calibre.gui2.viewer.fake_net import NetworkAccessManager -from calibre.ebooks.oeb.display.webview import load_html -from calibre.constants import isxp, iswindows, DEBUG, __version__ -from polyglot.builtins import iteritems, map, unicode_type, string_or_bytes -from polyglot.binary import as_base64_unicode -# }}} - - -def apply_settings(settings, opts): - settings.setFontSize(QWebSettings.DefaultFontSize, opts.default_font_size) - settings.setFontSize(QWebSettings.DefaultFixedFontSize, opts.mono_font_size) - settings.setFontSize(QWebSettings.MinimumLogicalFontSize, opts.minimum_font_size) - settings.setFontSize(QWebSettings.MinimumFontSize, opts.minimum_font_size) - settings.setFontFamily(QWebSettings.StandardFont, {'serif':opts.serif_family, 'sans':opts.sans_family, 'mono':opts.mono_family}[opts.standard_font]) - settings.setFontFamily(QWebSettings.SerifFont, opts.serif_family) - settings.setFontFamily(QWebSettings.SansSerifFont, opts.sans_family) - settings.setFontFamily(QWebSettings.FixedFont, opts.mono_family) - settings.setAttribute(QWebSettings.ZoomTextOnly, True) - - -def apply_basic_settings(settings): - secure_web_page(settings) - # PrivateBrowsing disables console messages - # settings.setAttribute(QWebSettings.PrivateBrowsingEnabled, True) - - # Miscellaneous - settings.setAttribute(QWebSettings.LinksIncludedInFocusChain, True) - settings.setAttribute(QWebSettings.DeveloperExtrasEnabled, True) - - -class Document(QWebPage): # {{{ - - page_turn = pyqtSignal(object) - mark_element = pyqtSignal(QWebElement) - settings_changed = pyqtSignal() - animated_scroll_done_signal = pyqtSignal() - - def set_font_settings(self, opts): - settings = self.settings() - apply_settings(settings, opts) - - def do_config(self, parent=None): - d = ConfigDialog(self.shortcuts, parent) - if d.exec_() == QDialog.Accepted: - opts = config().parse() - self.apply_settings(opts) - - def apply_settings(self, opts): - with self.page_position: - self.set_font_settings(opts) - self.set_user_stylesheet(opts) - self.misc_config(opts) - self.settings_changed.emit() - self.after_load() - - def __init__(self, shortcuts, parent=None, debug_javascript=False): - QWebPage.__init__(self, parent) - self.nam = NetworkAccessManager(self) - self.setNetworkAccessManager(self.nam) - self.setObjectName("py_bridge") - self.in_paged_mode = False - self.first_load = True - self.jump_to_cfi_listeners = set() - - self.debug_javascript = debug_javascript - self.anchor_positions = {} - self.index_anchors = set() - self.current_language = None - self.loaded_javascript = False - self.js_loader = JavaScriptLoader( - dynamic_coffeescript=self.debug_javascript) - self.in_fullscreen_mode = False - self.math_present = False - - self.setLinkDelegationPolicy(self.DelegateAllLinks) - self.scroll_marks = [] - self.shortcuts = shortcuts - pal = self.palette() - pal.setBrush(QPalette.Background, QColor(0xee, 0xee, 0xee)) - self.setPalette(pal) - self.page_position = PagePosition(self) - - settings = self.settings() - - # Fonts - self.all_viewer_plugins = tuple(all_viewer_plugins()) - for pl in self.all_viewer_plugins: - pl.load_fonts() - opts = config().parse() - self.set_font_settings(opts) - - apply_basic_settings(settings) - self.set_user_stylesheet(opts) - self.misc_config(opts) - - # Load javascript - self.mainFrame().javaScriptWindowObjectCleared.connect( - self.add_window_objects) - - self.turn_off_internal_scrollbars() - - def turn_off_internal_scrollbars(self): - mf = self.mainFrame() - mf.setScrollBarPolicy(Qt.Vertical, Qt.ScrollBarAlwaysOff) - mf.setScrollBarPolicy(Qt.Horizontal, Qt.ScrollBarAlwaysOff) - - def set_user_stylesheet(self, opts): - brules = ['background-color: %s !important'%opts.background_color] if opts.background_color else ['background-color: white'] - prefix = ''' - body { %s } - '''%('; '.join(brules)) - if opts.text_color: - prefix += '\n\nbody, p, div { color: %s !important }'%opts.text_color - raw = prefix + opts.user_css - raw = '::selection {background:#ffff00; color:#000;}\n'+raw - data = 'data:text/css;charset=utf-8;base64,' - data += as_base64_unicode(raw) - self.settings().setUserStyleSheetUrl(QUrl(data)) - - def findText(self, q, flags): - if self.hyphenatable: - q = unicode_type(q) - hyphenated_q = self.javascript( - 'hyphenate_text(%s, "%s")' % (json.dumps(q, ensure_ascii=False), self.loaded_lang), typ='string') - if hyphenated_q and QWebPage.findText(self, hyphenated_q, flags): - return True - return QWebPage.findText(self, q, flags) - - def misc_config(self, opts): - self.hyphenate = opts.hyphenate - self.hyphenate_default_lang = opts.hyphenate_default_lang - self.do_fit_images = opts.fit_images - self.page_flip_duration = opts.page_flip_duration - self.enable_page_flip = self.page_flip_duration > 0.1 - self.font_magnification_step = opts.font_magnification_step - self.wheel_flips_pages = opts.wheel_flips_pages - self.wheel_scroll_fraction = opts.wheel_scroll_fraction - self.line_scroll_fraction = opts.line_scroll_fraction - self.tap_flips_pages = opts.tap_flips_pages - self.line_scrolling_stops_on_pagebreaks = opts.line_scrolling_stops_on_pagebreaks - screen_width = QApplication.desktop().screenGeometry().width() - # Leave some space for the scrollbar and some border - self.max_fs_width = min(opts.max_fs_width, screen_width-50) - self.max_fs_height = opts.max_fs_height - self.fullscreen_clock = opts.fullscreen_clock - self.fullscreen_scrollbar = opts.fullscreen_scrollbar - self.fullscreen_pos = opts.fullscreen_pos - self.start_in_fullscreen = opts.start_in_fullscreen - self.show_fullscreen_help = opts.show_fullscreen_help - self.use_book_margins = opts.use_book_margins - self.cols_per_screen_portrait = opts.cols_per_screen_portrait - self.cols_per_screen_landscape = opts.cols_per_screen_landscape - self.side_margin = opts.side_margin - self.top_margin, self.bottom_margin = opts.top_margin, opts.bottom_margin - self.show_controls = opts.show_controls - self.remember_current_page = opts.remember_current_page - self.copy_bookmarks_to_file = opts.copy_bookmarks_to_file - self.search_online_url = opts.search_online_url or 'https://www.google.com/search?q={text}' - - def fit_images(self): - if self.do_fit_images and not self.in_paged_mode: - self.javascript('setup_image_scaling_handlers()') - - def add_window_objects(self): - self.mainFrame().addToJavaScriptWindowObject("py_bridge", self) - self.loaded_javascript = False - - def load_javascript_libraries(self): - if self.loaded_javascript: - return - self.loaded_javascript = True - evaljs = self.mainFrame().evaluateJavaScript - self.loaded_lang = self.js_loader(evaljs, self.current_language, - self.hyphenate_default_lang) - evaljs('window.calibre_utils.setup_epub_reading_system(%s, %s, %s, %s)' % tuple(map(json.dumps, ( - 'calibre-desktop', __version__, 'paginated' if self.in_paged_mode else 'scrolling', - 'dom-manipulation layout-changes mouse-events keyboard-events'.split())))) - self.javascript('window.mathjax.base = %s'%(json.dumps(self.nam.mathjax_base, ensure_ascii=False))) - for pl in self.all_viewer_plugins: - pl.load_javascript(evaljs) - evaljs('py_bridge.mark_element.connect(window.calibre_extract.mark)') - - @pyqtSlot() - def animated_scroll_done(self): - self.animated_scroll_done_signal.emit() - - @property - def hyphenatable(self): - # Qt fails to render soft hyphens correctly on windows xp - return not isxp and self.hyphenate and getattr(self, 'loaded_lang', '') and not self.math_present - - @pyqtSlot() - def init_hyphenate(self): - if self.hyphenatable: - self.javascript('do_hyphenation("%s")'%self.loaded_lang) - - @pyqtSlot(int) - def page_turn_requested(self, backwards): - self.page_turn.emit(bool(backwards)) - - def after_load(self, last_loaded_path=None): - self.javascript('window.paged_display.read_document_margins()') - self.set_bottom_padding(0) - self.fit_images() - w = 1 if iswindows else 0 - self.math_present = self.javascript('window.mathjax.check_for_math(%d)' % w, bool) - self.init_hyphenate() - self.javascript('full_screen.save_margins()') - if self.in_fullscreen_mode: - self.switch_to_fullscreen_mode() - if self.in_paged_mode: - self.switch_to_paged_mode(last_loaded_path=last_loaded_path) - self.read_anchor_positions(use_cache=False) - evaljs = self.mainFrame().evaluateJavaScript - for pl in self.all_viewer_plugins: - pl.run_javascript(evaljs) - self.first_load = False - - def colors(self): - ans = json.loads(self.javascript(''' - bs = getComputedStyle(document.body); - JSON.stringify([bs.backgroundColor, bs.color]) - ''')) - return ans if isinstance(ans, list) else ['white', 'black'] - - def read_anchor_positions(self, use_cache=True): - self.anchor_positions = self.javascript('book_indexing.anchor_positions(%s, %s);' % ( - json.dumps(tuple(self.index_anchors)), 'true' if use_cache else 'false')) - if not isinstance(self.anchor_positions, dict): - # Some weird javascript error happened - self.anchor_positions = {} - return {k:tuple(v) for k, v in iteritems(self.anchor_positions)} - - def switch_to_paged_mode(self, onresize=False, last_loaded_path=None): - if onresize and not self.loaded_javascript: - return - cols_per_screen = self.cols_per_screen_portrait if self.is_portrait else self.cols_per_screen_landscape - cols_per_screen = max(1, min(5, cols_per_screen)) - self.javascript(''' - window.paged_display.use_document_margins = %s; - window.paged_display.set_geometry(%d, %d, %d, %d); - '''%( - ('true' if self.use_book_margins else 'false'), - cols_per_screen, self.top_margin, self.side_margin, - self.bottom_margin - )) - force_fullscreen_layout = self.nam.is_single_page(last_loaded_path) - self.update_contents_size_for_paged_mode(force_fullscreen_layout) - - def update_contents_size_for_paged_mode(self, force_fullscreen_layout=None): - # Setup the contents size to ensure that there is a right most margin. - # Without this WebKit renders the final column with no margin, as the - # columns extend beyond the boundaries (and margin) of body - if force_fullscreen_layout is None: - force_fullscreen_layout = self.javascript('window.paged_display.is_full_screen_layout', typ=bool) - f = 'true' if force_fullscreen_layout else 'false' - side_margin = self.javascript('window.paged_display.layout(%s)'%f, typ=int) - mf = self.mainFrame() - sz = mf.contentsSize() - scroll_width = self.javascript('document.body.scrollWidth', int) - # At this point sz.width() is not reliable, presumably because Qt - # has not yet been updated - if scroll_width > self.window_width: - sz.setWidth(scroll_width+side_margin) - self.setPreferredContentsSize(sz) - self.javascript('window.paged_display.fit_images()') - - @property - def column_boundaries(self): - if not self.loaded_javascript: - return (0, 1) - ans = self.javascript('JSON.stringify(paged_display.column_boundaries())') - return tuple(int(x) for x in json.loads(ans)) - - def after_resize(self): - if self.in_paged_mode: - self.setPreferredContentsSize(QSize()) - self.switch_to_paged_mode(onresize=True) - self.javascript('if (window.mathjax) window.mathjax.after_resize();') - - def switch_to_fullscreen_mode(self): - self.in_fullscreen_mode = True - self.javascript('full_screen.on(%d, %d, %s)'%(self.max_fs_width, self.max_fs_height, - 'true' if self.in_paged_mode else 'false')) - - def switch_to_window_mode(self): - self.in_fullscreen_mode = False - self.javascript('full_screen.off(%s)'%('true' if self.in_paged_mode - else 'false')) - - @pyqtSlot(str) - def debug(self, msg): - prints(unicode_type(msg)) - - @pyqtSlot(int) - def jump_to_cfi_finished(self, job_id): - for l in self.jump_to_cfi_listeners: - l(job_id) - - def reference_mode(self, enable): - self.javascript(('enter' if enable else 'leave')+'_reference_mode()') - - def set_reference_prefix(self, prefix): - self.javascript('reference_prefix = "%s"'%prefix) - - def goto(self, ref): - self.javascript('goto_reference("%s")'%ref) - - def goto_bookmark(self, bm): - if bm['type'] == 'legacy': - bm = bm['pos'] - bm = bm.strip() - if bm.startswith('>'): - bm = bm[1:].strip() - self.javascript('scroll_to_bookmark("%s")'%bm) - elif bm['type'] == 'cfi': - self.page_position.to_pos(bm['pos']) - - def javascript(self, string, typ=None): - ans = self.mainFrame().evaluateJavaScript(string) - if typ in {'int', int}: - try: - return int(ans) - except (TypeError, ValueError): - return 0 - if typ in {'float', float}: - try: - return float(ans) - except (TypeError, ValueError): - return 0.0 - if typ == 'string': - return ans or '' - if typ in {bool, 'bool'}: - return bool(ans) - return ans - - def javaScriptConsoleMessage(self, msg, lineno, msgid): - if DEBUG or self.debug_javascript: - prints(msg) - - def javaScriptAlert(self, frame, msg): - if DEBUG: - prints(msg) - else: - return QWebPage.javaScriptAlert(self, frame, msg) - - def scroll_by(self, dx=0, dy=0): - self.mainFrame().scroll(dx, dy) - - def scroll_to(self, x=0, y=0): - self.mainFrame().setScrollPosition(QPoint(x, y)) - - def jump_to_anchor(self, anchor): - if not self.loaded_javascript: - return - self.javascript('window.paged_display.jump_to_anchor("%s")'%anchor) - - def element_ypos(self, elem): - try: - ans = int(elem.evaluateJavaScript('$(this).offset().top')) - except (TypeError, ValueError): - raise ValueError('No ypos found') - return ans - - def elem_outer_xml(self, elem): - return unicode_type(elem.toOuterXml()) - - def bookmark(self): - pos = self.page_position.current_pos - return {'type':'cfi', 'pos':pos} - - @property - def at_bottom(self): - return self.height - self.ypos <= self.window_height - - @property - def at_top(self): - return self.ypos <=0 - - def test(self): - pass - - @property - def ypos(self): - return self.mainFrame().scrollPosition().y() - - @property - def window_height(self): - return self.javascript('window.innerHeight', 'int') - - @property - def window_width(self): - return self.javascript('window.innerWidth', 'int') - - @property - def is_portrait(self): - return self.window_width < self.window_height - - @property - def xpos(self): - return self.mainFrame().scrollPosition().x() - - @property - def scroll_fraction(self): - if self.in_paged_mode: - return self.javascript(''' - ans = 0.0; - if (window.paged_display) { - ans = window.paged_display.current_pos(); - } - ans;''', typ='float') - else: - try: - return abs(float(self.ypos)/(self.height-self.window_height)) - except ZeroDivisionError: - return 0. - - @scroll_fraction.setter - def scroll_fraction(self, val): - if self.in_paged_mode and self.loaded_javascript: - self.javascript('paged_display.scroll_to_pos(%f)'%val) - else: - npos = val * (self.height - self.window_height) - if npos < 0: - npos = 0 - self.scroll_to(x=self.xpos, y=npos) - - @property - def page_number(self): - ' The page number is the number of the page at the left most edge of the screen (starting from 0) ' - if self.in_paged_mode: - return self.javascript( - 'ans = 0; if (window.paged_display) ans = window.paged_display.column_boundaries()[0]; ans;', typ='int') - - @page_number.setter - def page_number(self, val): - if self.in_paged_mode and self.loaded_javascript: - self.javascript('if (window.paged_display) window.paged_display.scroll_to_column(%d)' % int(val)) - return True - - @property - def page_dimensions(self): - if self.in_paged_mode: - return self.javascript( - ''' - ans = '' - if (window.paged_display) - ans = window.paged_display.col_width + ':' + window.paged_display.current_page_height; - ans;''', typ='string') - - @property - def hscroll_fraction(self): - try: - return float(self.xpos)/self.width - except ZeroDivisionError: - return 0. - - @property - def height(self): - # Note that document.body.offsetHeight does not include top and bottom - # margins on body and in some cases does not include the top margin on - # the first element inside body either. See ticket #8791 for an example - # of the latter. - q = self.mainFrame().contentsSize().height() - if q < 0: - # Don't know if this is still needed, but it can't hurt - j = self.javascript('document.body.offsetHeight', 'int') - if j >= 0: - q = j - return q - - @property - def width(self): - return self.mainFrame().contentsSize().width() # offsetWidth gives inaccurate results - - def set_bottom_padding(self, amount): - s = QSize(-1, -1) if amount == 0 else QSize(self.viewportSize().width(), - self.height+amount) - self.setPreferredContentsSize(s) - - def extract_node(self): - return unicode_type(self.mainFrame().evaluateJavaScript( - 'window.calibre_extract.extract()')) - -# }}} - - -class DocumentView(QWebView): # {{{ - - magnification_changed = pyqtSignal(object) - DISABLED_BRUSH = QBrush(Qt.lightGray, Qt.Dense5Pattern) - gesture_handler = lambda s, e: False - last_loaded_path = None - - def initialize_view(self, debug_javascript=False): - self.setRenderHints(QPainter.Antialiasing|QPainter.TextAntialiasing|QPainter.SmoothPixmapTransform) - self.flipper = SlideFlip(self) - self.gesture_handler = GestureHandler(self) - self.is_auto_repeat_event = False - self.debug_javascript = debug_javascript - self.shortcuts = Shortcuts(SHORTCUTS, 'shortcuts/viewer') - self.setSizePolicy(QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)) - self._size_hint = QSize(510, 680) - self.initial_pos = 0.0 - self.to_bottom = False - self.document = Document(self.shortcuts, parent=self, - debug_javascript=debug_javascript) - self.document.nam.load_error.connect(self.on_unhandled_load_error) - self.footnotes = Footnotes(self) - self.document.settings_changed.connect(self.footnotes.clone_settings) - self.setPage(self.document) - self.inspector = WebInspector(self, self.document) - self.manager = None - self._reference_mode = False - self._ignore_scrollbar_signals = False - self.loading_url = None - self.loadFinished.connect(self.load_finished) - self.document.linkClicked.connect(self.link_clicked) - self.document.linkHovered.connect(self.link_hovered) - self.document.selectionChanged[()].connect(self.selection_changed) - self.document.animated_scroll_done_signal.connect(self.animated_scroll_done, type=Qt.QueuedConnection) - self.document.page_turn.connect(self.page_turn_requested) - d = self.document - self.unimplemented_actions = list(map(self.pageAction, - [d.DownloadImageToDisk, d.OpenLinkInNewWindow, d.DownloadLinkToDisk, d.CopyImageUrlToClipboard, - d.OpenImageInNewWindow, d.OpenLink, d.Reload, d.InspectElement, d.Copy])) - - self.search_online_action = QAction(QIcon(I('search.png')), '', self) - self.search_online_action.triggered.connect(self.search_online) - self.addAction(self.search_online_action) - self.dictionary_action = QAction(QIcon(I('dictionary.png')), - _('&Lookup in dictionary'), self) - self.dictionary_action.triggered.connect(self.lookup) - self.addAction(self.dictionary_action) - self.image_popup = ImagePopup(self) - self.table_popup = TablePopup(self) - self.view_image_action = QAction(QIcon(I('view-image.png')), _('View &image...'), self) - self.view_image_action.triggered.connect(self.image_popup) - self.view_table_action = QAction(QIcon(I('view.png')), _('View &table...'), self) - self.view_table_action.triggered.connect(self.popup_table) - self.search_action = QAction(QIcon(I('dictionary.png')), - _('&Search for next occurrence'), self) - self.search_action.triggered.connect(self.search_next) - self.addAction(self.search_action) - - self.goto_location_action = QAction(_('Go to...'), self) - self.goto_location_menu = m = QMenu(self) - self.goto_location_actions = a = { - 'Next Page': self.next_page, - 'Previous Page': self.previous_page, - 'Section Top' : partial(self.scroll_to, 0), - 'Document Top': self.goto_document_start, - 'Section Bottom':partial(self.scroll_to, 1), - 'Document Bottom': self.goto_document_end, - 'Next Section': self.goto_next_section, - 'Previous Section': self.goto_previous_section, - } - for name, key in [(_('Next section'), 'Next Section'), - (_('Previous section'), 'Previous Section'), - (None, None), - (_('Document start'), 'Document Top'), - (_('Document end'), 'Document Bottom'), - (None, None), - (_('Section start'), 'Section Top'), - (_('Section end'), 'Section Bottom'), - (None, None), - (_('Next page'), 'Next Page'), - (_('Previous page'), 'Previous Page')]: - if key is None: - m.addSeparator() - else: - m.addAction(name, a[key], self.shortcuts.get_sequences(key)[0]) - self.goto_location_action.setMenu(self.goto_location_menu) - - self.restore_fonts_action = QAction(_('Default font size'), self) - self.restore_fonts_action.setCheckable(True) - self.restore_fonts_action.triggered.connect(self.restore_font_size) - - def goto_next_section(self, *args): - if self.manager is not None: - self.manager.goto_next_section() - - def goto_previous_section(self, *args): - if self.manager is not None: - self.manager.goto_previous_section() - - def goto_document_start(self, *args): - if self.manager is not None: - self.manager.goto_start() - - def goto_document_end(self, *args): - if self.manager is not None: - self.manager.goto_end() - - def animated_scroll_done(self): - if self.manager is not None: - self.manager.scrolled(self.document.scroll_fraction) - - def reference_mode(self, enable): - self._reference_mode = enable - self.document.reference_mode(enable) - - def goto(self, ref): - self.document.goto(ref) - - def goto_bookmark(self, bm): - self.document.goto_bookmark(bm) - - def config(self, parent=None): - self.document.do_config(parent) - if self.document.in_fullscreen_mode: - self.document.switch_to_fullscreen_mode() - self.setFocus(Qt.OtherFocusReason) - - def load_theme(self, theme_id): - themes = load_themes() - theme = themes[theme_id] - opts = config(theme).parse() - self.document.apply_settings(opts) - if self.document.in_fullscreen_mode: - self.document.switch_to_fullscreen_mode() - self.setFocus(Qt.OtherFocusReason) - - def bookmark(self): - return self.document.bookmark() - - @property - def selected_text(self): - return self.document.selectedText().replace('\u00ad', '').strip() - - @property - def selected_html(self): - return self.document.selectedHtml().replace('\u00ad', '').strip() - - def selection_changed(self): - if self.manager is not None: - self.manager.selection_changed(self.selected_text, self.selected_html) - - def _selectedText(self): - t = unicode_type(self.selectedText()).strip() - if not t: - return '' - if len(t) > 40: - t = t[:40] + '...' - t = t.replace('&', '&&') - return _("S&earch online for '%s'")%t - - def popup_table(self): - html = self.document.extract_node() - self.table_popup(html, self.as_url(self.last_loaded_path), - self.document.font_magnification_step) - - def contextMenuEvent(self, ev): - from_touch = ev.reason() == ev.Other - mf = self.document.mainFrame() - r = mf.hitTestContent(ev.pos()) - img = r.pixmap() - elem = r.element() - if elem.isNull(): - elem = r.enclosingBlockElement() - if img.isNull() and elem.tagName().lower() == 'img': - # QtWebKit return null pixmaps for svg images - iqurl = r.imageUrl() - path = self.path(iqurl) - img = render_svg(self, path) - table = None - parent = elem - while not parent.isNull(): - if (unicode_type(parent.tagName()) == 'table' or unicode_type(parent.localName()) == 'table'): - table = parent - break - parent = parent.parent() - self.image_popup.current_img = img - self.image_popup.current_url = r.imageUrl() - menu = self.document.createStandardContextMenu() - for action in self.unimplemented_actions: - menu.removeAction(action) - - if self.manager is not None and self.manager.action_copy.isEnabled(): - menu.addAction(self.manager.action_copy) - - if not img.isNull(): - cia = self.pageAction(self.document.CopyImageToClipboard) - for action in menu.actions(): - if action is cia: - action.setText(_('&Copy image')) - menu.addAction(self.view_image_action) - if table is not None: - self.document.mark_element.emit(table) - menu.addAction(self.view_table_action) - - text = self._selectedText() - if text and img.isNull(): - self.search_online_action.setText(text) - for x, sc in (('search_online', 'Search online'), ('dictionary', 'Lookup word'), ('search', 'Next occurrence')): - ac = getattr(self, '%s_action' % x) - menu.addAction(ac.icon(), '%s [%s]' % (unicode_type(ac.text()), ','.join(self.shortcuts.get_shortcuts(sc))), ac.trigger) - - if from_touch and self.manager is not None: - word = unicode_type(mf.evaluateJavaScript('window.calibre_utils.word_at_point(%f, %f)' % (ev.pos().x(), ev.pos().y())) or '') - if word: - menu.addAction(self.dictionary_action.icon(), _('Lookup %s in the dictionary') % word, partial(self.manager.lookup, word)) - menu.addAction(self.search_online_action.icon(), _('Search for %s online') % word, partial(self.do_search_online, word)) - - if not text and img.isNull(): - menu.addSeparator() - if self.manager.action_back.isEnabled(): - menu.addAction(self.manager.action_back) - if self.manager.action_forward.isEnabled(): - menu.addAction(self.manager.action_forward) - menu.addAction(self.goto_location_action) - - if self.manager is not None: - menu.addSeparator() - menu.addAction(self.manager.action_table_of_contents) - - menu.addSeparator() - menu.addAction(self.manager.action_font_size_larger) - self.restore_fonts_action.setChecked(self.multiplier == 1) - menu.addAction(self.restore_fonts_action) - menu.addAction(self.manager.action_font_size_smaller) - - menu.addSeparator() - menu.addAction(_('I&nspect'), self.inspect) - - if not text and img.isNull() and self.manager is not None: - menu.addSeparator() - if (not self.document.show_controls or self.document.in_fullscreen_mode) and self.manager is not None: - menu.addAction(self.manager.toggle_toolbar_action) - menu.addAction(self.manager.action_full_screen) - - menu.addSeparator() - menu.addAction(self.manager.action_reload) - menu.addAction(self.manager.action_quit) - - for plugin in self.document.all_viewer_plugins: - plugin.customize_context_menu(menu, ev, r) - - if from_touch: - from calibre.constants import plugins - pi = plugins['progress_indicator'][0] - for x in (menu, self.goto_location_menu): - if hasattr(pi, 'set_touch_menu_style'): - pi.set_touch_menu_style(x) - helpt = QAction(QIcon(I('help.png')), _('Show supported touch screen gestures'), menu) - helpt.triggered.connect(self.gesture_handler.show_help) - menu.insertAction(menu.actions()[0], helpt) - else: - self.goto_location_menu.setStyle(self.style()) - self.context_menu = menu - menu.exec_(ev.globalPos()) - - def inspect(self): - self.inspector.show() - self.inspector.raise_() - self.pageAction(self.document.InspectElement).trigger() - - def lookup(self, *args): - if self.manager is not None: - t = unicode_type(self.selectedText()).strip() - if t: - self.manager.lookup(t.split()[0]) - - def search_next(self): - if self.manager is not None: - t = unicode_type(self.selectedText()).strip() - if t: - self.manager.search.set_search_string(t) - - def search_online(self): - t = unicode_type(self.selectedText()).strip() - if t: - self.do_search_online(t) - - def do_search_online(self, text): - url = self.document.search_online_url.replace('{text}', QUrl().toPercentEncoding(text)) - if not isinstance(url, bytes): - url = url.encode('utf-8') - safe_open_url(QUrl.fromEncoded(url)) - - def set_manager(self, manager): - self.manager = manager - self.scrollbar = manager.horizontal_scrollbar - self.scrollbar.valueChanged[(int)].connect(self.scroll_horizontally) - - def scroll_horizontally(self, amount): - self.document.scroll_to(y=self.document.ypos, x=amount) - - @property - def scroll_pos(self): - return (self.document.ypos, self.document.ypos + self.document.window_height) - - @property - def viewport_rect(self): - # (left, top, right, bottom) of the viewport in document co-ordinates - # When in paged mode, left and right are the numbers of the columns - # at the left edge and *after* the right edge of the viewport - d = self.document - if d.in_paged_mode: - try: - l, r = d.column_boundaries - except ValueError: - l, r = (0, 1) - else: - l, r = d.xpos, d.xpos + d.window_width - return (l, d.ypos, r, d.ypos + d.window_height) - - def link_hovered(self, link, text, context): - link, text = unicode_type(link), unicode_type(text) - if link: - self.setCursor(Qt.PointingHandCursor) - else: - self.unsetCursor() - - def link_clicked(self, url): - if self.manager is not None: - self.manager.link_clicked(url) - - def footnote_link_clicked(self, qurl): - if qurl.scheme() in ('http', 'https'): - self.link_clicked(qurl) - return - path = qurl.toLocalFile() - link = self.as_url(path) - if qurl.hasFragment(): - link.setFragment(qurl.fragment(QUrl.FullyEncoded), QUrl.StrictMode) - self.link_clicked(link) - - def sizeHint(self): - return self._size_hint - - @property - def scroll_fraction(self): - return self.document.scroll_fraction - - @scroll_fraction.setter - def scroll_fraction(self, val): - self.document.scroll_fraction = float(val) - - @property - def hscroll_fraction(self): - return self.document.hscroll_fraction - - @property - def content_size(self): - return self.document.width, self.document.height - - @property - def current_language(self): - return self.document.current_language - - @current_language.setter - def current_language(self, val): - self.document.current_language = val - - def search(self, text, backwards=False): - flags = self.document.FindBackward if backwards else self.document.FindFlags(0) - found = self.document.findText(text, flags) - if found and self.document.in_paged_mode: - self.document.javascript('paged_display.snap_to_selection()') - return found - - def path(self, url=None): - url = url or self.url() - return self.document.nam.as_abspath(url) - - def as_url(self, path): - return self.document.nam.as_url(path) - - def load_path(self, path, pos=0.0): - self.initial_pos = pos - self.last_loaded_path = path - # This is needed otherwise percentage margins on body are not correctly - # evaluated in read_document_margins() in paged mode. - self.document.setPreferredContentsSize(QSize()) - - url = self.as_url(path) - entries = set() - for ie in getattr(path, 'index_entries', []): - if ie.start_anchor: - entries.add(ie.start_anchor) - if ie.end_anchor: - entries.add(ie.end_anchor) - self.document.index_anchors = entries - - def callback(lu): - self.loading_url = lu - if self.manager is not None: - self.manager.load_started() - - load_html(path, self, codec=getattr(path, 'encoding', 'utf-8'), mime_type=getattr(path, - 'mime_type', 'text/html'), loading_url=url, pre_load_callback=callback) - - def on_unhandled_load_error(self, name, tb): - error_dialog(self, _('Failed to load file'), _( - 'Failed to load the file: {}. Click "Show details" for more information').format(name), det_msg=tb, show=True) - - def initialize_scrollbar(self): - if getattr(self, 'scrollbar', None) is not None: - if self.document.in_paged_mode: - self.scrollbar.setVisible(False) - return - delta = self.document.width - self.size().width() - if delta > 0: - self._ignore_scrollbar_signals = True - self.scrollbar.blockSignals(True) - self.scrollbar.setRange(0, delta) - self.scrollbar.setValue(0) - self.scrollbar.setSingleStep(1) - self.scrollbar.setPageStep(int(delta//10)) - self.scrollbar.setVisible(delta > 0) - self.scrollbar.blockSignals(False) - self._ignore_scrollbar_signals = False - - def load_finished(self, ok): - if self.loading_url is None: - # An