使用 Packer.js 压缩 HTML 和 JavaScript
JavaScript HTML About 77,479 words关于 Packer.js
Packer.js
可以压缩HTML
和JavaScript
,开启变量混淆,也可以一定程度上混淆JavaScript
代码。
构造方法
script
:字符串类型,需要被压缩的代码段。
base62
:布尔类型,是否开启base62
编码。
shrink
:布尔类型,是否开启变量混淆。
pack: function(script, base62, shrink) {
script = this.minify(script + "\n");
if (shrink) script = this._shrinkVariables(script);
if (base62) script = this._base62Encode(script);
return script;
},
使用
let inputE = document.getElementById("input");
let outputE = document.getElementById("output");
var packer = new Packer;
outputE.value = packer.pack(inputE.value, 0, 0);
完整代码
base2.js
var base2={name:"base2",version:"1.0.1(pre)",exports:"Base, Package, Abstract, Module, Enumerable, Map, Collection, RegGrp, "+"assert, assertArity, assertType, "+"assignID, copy, counter, detect, extend, forEach, format, instanceOf, match, rescape, slice, trim, "+"I, K, Undefined, Null, True, False, bind, delegate, flip, not, partial, unbind",global:this,namespace:"var global=base2.global;function base(o,a){return o.base.apply(o,a)};",detect:new function(_){var global=_;var jscript/*@cc_on=@_jscript_version@*/;if(_.navigator){var element=document.createElement("span");var userAgent=navigator.platform+" "+navigator.userAgent;if(!jscript)userAgent=userAgent.replace(/MSIE\s[\d.]+/,"");userAgent=userAgent.replace(/([a-z])[\s\/](\d)/gi,"$1$2");}return function(a){var r=false;var b=a.charAt(0)=="!";if(b)a=a.slice(1);if(a.charAt(0)=="("){try{eval("r=!!"+a)}catch(error){}}else{r=new RegExp("("+a+")","i").test(userAgent)}return!!(b^r)}}(this)};new function(_){var detect=base2.detect;var slice=Array.slice||(function(b){return function(a){return b.apply(a,b.call(arguments,1))}})(Array.prototype.slice);var Undefined=K(),Null=K(null),True=K(true),False=K(false);var _0=/%([1-9])/g;var _1=/^\s\s*/;var _2=/\s\s*$/;var _3=/([\/()[\]{}|*+-.,^$?\\])/g;var _4=/eval/.test(detect)?/\bbase\s*\(/:/.*/;var _5=["constructor","toString","valueOf"];var _6=String(new RegExp);var _7=1;_8();eval(base2.namespace);var _9=function(a,b){base2.__prototyping=true;var c=new this;extend(c,a);delete base2.__prototyping;var d=c.constructor;function _10(){if(!base2.__prototyping){if(this.constructor==arguments.callee||this.__constructing){this.__constructing=true;d.apply(this,arguments);delete this.__constructing}else{return extend(arguments[0],c)}}return this};c.constructor=_10;for(var i in Base)_10[i]=this[i];_10.toString=K(String(d));_10.ancestor=this;_10.base=Undefined;_10.init=Undefined;extend(_10,b);_10.prototype=c;_10.init();return _10};var Base=_9.call(Object,{constructor:function(){if(arguments.length>0){this.extend(arguments[0])}},base:function(){},extend:delegate(extend)},Base={ancestorOf:delegate(_11),extend:_9,forEach:delegate(_8),implement:function(a){if(typeof a=="function"){if(_11(Base,a)){a(this.prototype)}}else{extend(this.prototype,a)}return this}});var Package=Base.extend({constructor:function(d,e){this.extend(e);if(this.init)this.init();if(this.name!="base2"){if(!this.parent)this.parent=base2;this.parent.addName(this.name,this);this.namespace=format("var %1=%2;",this.name,String(this).slice(1,-1))}var f=/[^\s,]+/g;if(d){d.imports=Array2.reduce(this.imports.match(f),function(a,b){eval("var ns=base2."+b);assert(ns,format("Package not found: '%1'.",b));return a+=ns.namespace},base2.namespace+JavaScript.namespace);d.exports=Array2.reduce(this.exports.match(f),function(a,b){var c=this.name+"."+b;this.namespace+="var "+b+"="+c+";";return a+="if(!"+c+")"+c+"="+b+";"},"",this)}},exports:"",imports:"",name:"",namespace:"",parent:null,addName:function(a,b){if(!this[a]){this[a]=b;this.exports+=", "+a;this.namespace+=format("var %1=%2.%1;",a,this.name)}},addPackage:function(a){this.addName(a,new Package(null,{name:a,parent:this}))},toString:function(){return format("[%1]",this.parent?String(this.parent).slice(1,-1)+"."+this.name:this.name)}});var Abstract=Base.extend({constructor:function(){throw new TypeError("Class cannot be instantiated.");}});var Module=Abstract.extend(null,{extend:function(a,b){var c=this.base();_12(c,this);c.implement(a);extend(c,b);c.init();return c},implement:function(c){var d=this;if(typeof c=="function"){d.base(c);if(_11(Module,c)){_12(d,c)}}else{var e={};_8(Object,c,function(a,b){if(b.charAt(0)=="@"){if(detect(b.slice(1))){forEach(a,arguments.callee)}}else if(!Module[b]&&typeof a=="function"&&a.call){function _13(){return d[b].apply(d,[this].concat(slice(arguments)))};_13.__base=_4.test(a);e[b]=_13}});extend(d.prototype,e);extend(d,c)}return d}});function _12(a,b){for(var c in b){var method=b[c];if(!Module[c]&&typeof method=="function"&&method.call){a[c]=method}}};var Enumerable=Module.extend({every:function(c,d,e){var f=true;try{this.forEach(c,function(a,b){f=d.call(e,a,b,c);if(!f)throw StopIteration;})}catch(error){if(error!=StopIteration)throw error;}return!!f},filter:function(d,e,f){var i=0;return this.reduce(d,function(a,b,c){if(e.call(f,b,c,d)){a[i++]=b}return a},[])},invoke:function(b,c){var d=slice(arguments,2);return this.map(b,(typeof c=="function")?function(a){return(a==null)?undefined:c.apply(a,d)}:function(a){return(a==null)?undefined:a[c].apply(a,d)})},map:function(c,d,e){var f=[],i=0;this.forEach(c,function(a,b){f[i++]=d.call(e,a,b,c)});return f},pluck:function(b,c){return this.map(b,function(a){return(a==null)?undefined:a[c]})},reduce:function(c,d,e,f){var g=arguments.length>2;this.forEach(c,function(a,b){if(g){e=d.call(f,e,a,b,c)}else{e=a;g=true}});return e},some:function(a,b,c){return!this.every(a,not(b),c)}},{forEach:forEach});var _14="#";var Map=Base.extend({constructor:function(a){this.merge(a)},copy:delegate(copy),forEach:function(a,b){for(var c in this)if(c.charAt(0)==_14){a.call(b,this[c],c.slice(1),this)}},get:function(a){return this[_14+a]},getKeys:function(){return this.map(flip(I))},getValues:function(){return this.map(I)},has:function(a){/*@cc_on@*//*@if(@_jscript_version<5.5)return $Legacy.has(this,_14+a);@else@*/return _14+a in this;/*@end@*/},merge:function(b){var c=flip(this.put);forEach(arguments,function(a){forEach(a,c,this)},this);return this},remove:function(a){delete this[_14+a]},put:function(a,b){if(arguments.length==1)b=a;this[_14+a]=b},size:function(){var a=0;for(var b in this)if(b.charAt(0)==_14)a++;return a},union:function(a){return this.merge.apply(this.copy(),arguments)}});Map.implement(Enumerable);var _15="~";var Collection=Map.extend({constructor:function(a){this[_15]=new Array2;this.base(a)},add:function(a,b){assert(!this.has(a),"Duplicate key '"+a+"'.");this.put.apply(this,arguments)},copy:function(){var a=this.base();a[_15]=this[_15].copy();return a},forEach:function(a,b){var c=this[_15];var d=c.length;for(var i=0;i<d;i++){a.call(b,this[_14+c[i]],c[i],this)}},getAt:function(a){if(a<0)a+=this[_15].length;var b=this[_15][a];return(b===undefined)?undefined:this[_14+b]},getKeys:function(){return this[_15].concat()},indexOf:function(a){return this[_15].indexOf(String(a))},insertAt:function(a,b,c){assert(Math.abs(a)<this[_15].length,"Index out of bounds.");assert(!this.has(b),"Duplicate key '"+b+"'.");this[_15].insertAt(a,String(b));this.put.apply(this,slice(arguments,1))},item:Undefined,put:function(a,b){if(arguments.length==1)b=a;if(!this.has(a)){this[_15].push(String(a))}var c=this.constructor;if(c.Item&&!instanceOf(b,c.Item)){b=c.create.apply(c,arguments)}this[_14+a]=b},putAt:function(a,b){assert(Math.abs(a)<this[_15].length,"Index out of bounds.");arguments[0]=this[_15].item(a);this.put.apply(this,arguments)},remove:function(a){if(this.has(a)){this[_15].remove(String(a));delete this[_14+a]}},removeAt:function(a){this[_15].removeAt(a);delete this[_14+key]},reverse:function(){this[_15].reverse();return this},size:function(){return this[_15].length},sort:function(c){if(c){var d=this;this[_15].sort(function(a,b){return c(d[_14+a],d[_14+b],a,b)})}else this[_15].sort();return this},toString:function(){return String(this[_15])}},{Item:null,init:function(){this.prototype.item=this.prototype.getAt},create:function(a,b){return this.Item?new this.Item(a,b):b},extend:function(a,b){var c=this.base(a);c.create=this.create;extend(c,b);if(!c.Item){c.Item=this.Item}else if(typeof c.Item!="function"){c.Item=(this.Item||Base).extend(c.Item)}c.init();return c}});var _16=/\\(\d+)/g,_17=/\\./g,_18=/\(\?[:=!]|\[[^\]]+\]/g,_19=/\(/g,_20=/\$(\d+)/,_21=/^\$\d+$/;var RegGrp=Collection.extend({constructor:function(a,b){this.base(a);if(typeof b=="string"){this.global=/g/.test(b);this.ignoreCase=/i/.test(b)}},global:true,ignoreCase:false,exec:function(h,j){var k=(this.global?"g":"")+(this.ignoreCase?"i":"");h=String(h)+"";if(arguments.length==1){var l=this;var m=this[_15];j=function(a){if(a){var b,c=1,i=0;while((b=l[_14+m[i++]])){var d=c+b.length+1;if(arguments[c]){var e=b.replacement;switch(typeof e){case"function":var f=slice(arguments,c,d);var g=arguments[arguments.length-2];return e.apply(l,f.concat(g,h));case"number":return arguments[c+e];default:return e}}c=d}}return""}}return h.replace(new RegExp(this,k),j)},insertAt:function(a,b,c){if(instanceOf(b,RegExp)){arguments[1]=b.source}return base(this,arguments)},test:function(a){return this.exec(a)!=a},toString:function(){var e=0;return"("+this.map(function(c){var d=String(c).replace(_16,function(a,b){return"\\"+(1+Number(b)+e)});e+=c.length+1;return d}).join(")|(")+")"}},{IGNORE:"$0",init:function(){forEach("add,get,has,put,remove".split(","),function(b){_22(this,b,function(a){if(a&&a.source){arguments[0]=a.source}return base(this,arguments)})},this.prototype)},Item:{constructor:function(a,b){a=(a&&a.source)?a.source:String(a);if(typeof b=="number")b=String(b);else if(b==null)b="";if(typeof b=="string"&&_20.test(b)){if(_21.test(b)){b=parseInt(b.slice(1))}else{var Q=/'/.test(b.replace(/\\./g,""))?'"':"'";b=b.replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\$(\d+)/g,Q+"+(arguments[$1]||"+Q+Q+")+"+Q);b=new Function("return "+Q+b.replace(/(['"])\1\+(.*)\+\1\1$/,"$1")+Q)}}this.length=RegGrp.count(a);this.replacement=b;this.toString=K(a)},length:0,replacement:""},count:function(a){a=String(a).replace(_17,"").replace(_18,"");return match(a,_19).length}});var JavaScript={name:"JavaScript",version:base2.version,exports:"Array2, Date2, String2",namespace:"",bind:function(c){forEach(this.exports.match(/\w+/g),function(a){var b=a.slice(0,-1);extend(c[b],this[a]);this[a](c[b].prototype)},this)}};if((new Date).getYear()>1900){Date.prototype.getYear=function(){return this.getFullYear()-1900};Date.prototype.setYear=function(a){return this.setFullYear(a+1900)}}Function.prototype.prototype={};if("".replace(/^/,K("$$"))=="$"){extend(String.prototype,"replace",function(a,b){if(typeof b=="function"){var c=b;b=function(){return String(c.apply(null,arguments)).split("$").join("$$")}}return this.base(a,b)})}var Array2=_23(Array,Array,"concat,join,pop,push,reverse,shift,slice,sort,splice,unshift",[Enumerable,{combine:function(d,e){if(!e)e=d;return this.reduce(d,function(a,b,c){a[b]=e[c];return a},{})},contains:function(a,b){return this.indexOf(a,b)!=-1},copy:function(a){var b=this.slice(a);if(!b.swap)this(b);return b},flatten:function(c){return this.reduce(c,function(a,b){if(this.like(b)){this.reduce(b,arguments.callee,a,this)}else{a.push(b)}return a},[],this)},forEach:_24,indexOf:function(a,b,c){var d=a.length;if(c==null){c=0}else if(c<0){c=Math.max(0,d+c)}for(var i=c;i<d;i++){if(a[i]===b)return i}return-1},insertAt:function(a,b,c){this.splice(a,b,0,c);return c},item:function(a,b){if(b<0)b+=a.length;return a[b]},lastIndexOf:function(a,b,c){var d=a.length;if(c==null){c=d-1}else if(from<0){c=Math.max(0,d+c)}for(var i=c;i>=0;i--){if(a[i]===b)return i}return-1},map:function(c,d,e){var f=[];this.forEach(c,function(a,b){f[b]=d.call(e,a,b,c)});return f},remove:function(a,b){var c=this.indexOf(a,b);if(c!=-1)this.removeAt(a,c);return b},removeAt:function(a,b){return this.splice(a,b,1)},swap:function(a,b,c){var d=a[b];a[b]=a[c];a[c]=d;return a}}]);Array2.reduce=Enumerable.reduce;Array2.like=function(a){return!!(a&&typeof a=="object"&&typeof a.length=="number")};var _25=/^((-\d+|\d{4,})(-(\d{2})(-(\d{2}))?)?)?T((\d{2})(:(\d{2})(:(\d{2})(\.(\d{1,3})(\d)?\d*)?)?)?)?(([+-])(\d{2})(:(\d{2}))?|Z)?$/;var _26={FullYear:2,Month:4,Date:6,Hours:8,Minutes:10,Seconds:12,Milliseconds:14};var _27={Hectomicroseconds:15,UTC:16,Sign:17,Hours:18,Minutes:20};var _28=/(((00)?:0+)?:0+)?\.0+$/;var _29=/(T[0-9:.]+)$/;var Date2=_23(Date,function(a,b,c,h,m,s,d){switch(arguments.length){case 0:return new Date;case 1:return new Date(a);default:return new Date(a,b,arguments.length==2?1:c,h||0,m||0,s||0,d||0)}},"",[{toISOString:function(c){var d="####-##-##T##:##:##.###";for(var e in _26){d=d.replace(/#+/,function(a){var b=c["getUTC"+e]();if(e=="Month")b++;return("000"+b).slice(-a.length)})}return d.replace(_28,"").replace(_29,"$1Z")}}]);Date2.now=function(){return(new Date).valueOf()};Date2.parse=function(a,b){if(arguments.length>1){assertType(b,"number","defaultDate should be of type 'number'.")}var c=String(a).match(_25);if(c){if(c[_26.Month])c[_26.Month]--;if(c[_27.Hectomicroseconds]>=5)c[_26.Milliseconds]++;var d=new Date(b||0);var e=c[_27.UTC]||c[_27.Hours]?"UTC":"";for(var f in _26){var value=c[_26[f]];if(!value)continue;d["set"+e+f](value);if(d["get"+e+f]()!=c[_26[f]]){return NaN}}if(c[_27.Hours]){var g=Number(c[_27.Sign]+c[_27.Hours]);var h=Number(c[_27.Sign]+(c[_27.Minutes]||0));d.setUTCMinutes(d.getUTCMinutes()+(g*60)+h)}return d.valueOf()}else{return Date.parse(a)}};var String2=_23(String,function(a){return new String(arguments.length==0?"":a)},"charAt,charCodeAt,concat,indexOf,lastIndexOf,match,replace,search,slice,split,substr,substring,toLowerCase,toUpperCase",[{trim:trim}]);function _23(c,d,e,f){var g=Module.extend();forEach(e.match(/\w+/g),function(a){g[a]=unbind(c.prototype[a])});forEach(f,g.implement,g);var h=function(){return g(this.constructor==g?d.apply(null,arguments):arguments[0])};h.prototype=g.prototype;forEach(g,function(a,b){if(c[b]){delete g.prototype[b]}h[b]=g[b]});h.ancestor=Object;delete h.extend;if(c!=Array)delete h.forEach;return h};function extend(a,b){if(a&&b){if(arguments.length>2){var c=b;b={};b[c]=arguments[2]}var d=(typeof b=="function"?Function:Object).prototype;var i=_5.length,c;if(base2.__prototyping){while((c=_5[--i])){var f=b[c];if(f!=d[c]){if(_4.test(f)){_22(a,c,f)}else{a[c]=f}}}}for(c in b){if(d[c]===undefined){var f=b[c];if(c.charAt(0)=="@"&&detect(c.slice(1))){arguments.callee(a,f);continue}var h=a[c];if(h&&typeof f=="function"){if(f!=h&&(!h.method||!_11(f,h))){if(f.__base||_4.test(f)){_22(a,c,f)}else{a[c]=f}}}else{a[c]=f}}}}return a};function _11(a,b){while(b){if(!b.ancestor)return false;b=b.ancestor;if(b==a)return true}return false};function _22(c,d,e){var f=c[d];function _30(){var a=this.base;this.base=f;var b=e.apply(this,arguments);this.base=a;return b};_30.ancestor=f;_30.method=e;_30.toString=function(){return String(e)};c[d]=_30};if(typeof StopIteration=="undefined"){StopIteration=new Error("StopIteration")}function forEach(a,b,c,d){if(a==null)return;if(!d){if(typeof a=="function"&&a.call){d=Function}else if(typeof a.forEach=="function"&&a.forEach!=arguments.callee){a.forEach(b,c);return}else if(typeof a.length=="number"){_24(a,b,c);return}}_8(d||Object,a,b,c)};function _24(a,b,c){if(a==null)return;var d=a.length,i;if(typeof a=="string"){for(i=0;i<d;i++){b.call(c,a.charAt(i),i,a)}}else{for(i=0;i<d;i++){/*@cc_on@*//*@if(@_jscript_version<5.2)if(a[i]!==undefined||$Legacy.has(a,i))@else@*/if(i in a)/*@end@*/b.call(c,a[i],i,a)}}};function _8(g,h,j,k){var l=function(){this.i=1};l.prototype={i:1};var m=0;for(var i in new l)m++;_8=(m>1)?function(a,b,c,d){var e={};for(var f in b){if(!e[f]&&a.prototype[f]===undefined){e[f]=true;c.call(d,b[f],f,b)}}}:function(a,b,c,d){for(var e in b){if(a.prototype[e]===undefined){c.call(d,b[e],e,b)}}};_8(g,h,j,k)};function instanceOf(a,b){if(typeof b!="function"){throw new TypeError("Invalid 'instanceOf' operand.");}if(a==null)return false;/*@cc_on@*//*@if(@_jscript_version<5.1)if($Legacy.instanceOf(a,b))return true;@else@*/if(a instanceof b)return true;/*@end@*/if(Base.ancestorOf==b.ancestorOf)return false;var c=a.constructor;if(typeof c!="function")return false;if(Base.ancestorOf==c.ancestorOf)return b==Object;switch(b){case Array:return!!(typeof a=="object"&&a.join&&a.splice);case Function:return!!(typeof a=="function"&&a.call);case RegExp:return c.prototype.toString()==_6;case Date:return!!a.getTimezoneOffset;case String:case Number:case Boolean:return typeof a==typeof b.prototype.valueOf();case Object:return true}return false};function assert(a,b,c){if(!a){throw new(c||Error)(b||"Assertion failed.");}};function assertArity(a,b,c){if(b==null)b=a.callee.length;if(a.length<b){throw new SyntaxError(c||"Not enough arguments.");}};function assertType(a,b,c){if(b&&(typeof b=="function"?!instanceOf(a,b):typeof a!=b)){throw new TypeError(c||"Invalid type.");}};function assignID(a){if(!a.base2ID)a.base2ID="b2_"+counter();return a.base2ID};function counter(){return _7++};function copy(a){var b=function(){};b.prototype=a;return new b};function format(c){var d=arguments;var e=new RegExp("%([1-"+arguments.length+"])","g");return String(c).replace(e,function(a,b){return b<d.length?d[b]:a})};function match(a,b){return String(a).match(b)||[]};function rescape(a){return String(a).replace(_3,"\\$1")};function trim(a){return String(a).replace(_1,"").replace(_2,"")};function I(i){return i};function K(k){return function(){return k}};function bind(a,b){var c=slice(arguments,2);var d=function(){return a.apply(b,c.concat(slice(arguments)))};d._31=assignID(a);return d};function delegate(a,b){return function(){return a.apply(b,[this].concat(slice(arguments)))}};function flip(a){return function(){return a.apply(this,Array2.swap(arguments,0,1))}};function not(a){return function(){return!a.apply(this,arguments)}};function partial(a){var b=slice.call(arguments,1);return function(){return a.apply(this,b.concat(slice(arguments)))}};function unbind(b){return function(a){return b.apply(a,slice(arguments,1))}};base2=new Package(this,base2);eval(this.exports);base2.extend=extend;forEach(Enumerable,function(a,b){if(!Module[b])base2.addName(b,bind(a,Enumerable))});JavaScript=new Package(this,JavaScript);eval(this.exports)};new function(_){var DOM=new base2.Package(this,{name:"DOM",version:"1.0 (beta 1)",exports:"Interface, Binding, Node, Document, Element, AbstractView, Event, EventTarget, DocumentEvent, "+"NodeSelector, DocumentSelector, ElementSelector, StaticNodeList, "+"ViewCSS, HTMLDocument, HTMLElement, Selector, Traversal, XPathParser",bind:function(a){if(a&&a.nodeType){var b=assignID(a);if(!arguments.callee[b]){switch(a.nodeType){case 1:if(typeof a.className=="string"){(HTMLElement.bindings[a.tagName]||HTMLElement).bind(a)}else{Element.bind(a)}break;case 9:if(a.writeln){HTMLDocument.bind(a)}else{Document.bind(a)}break;default:Node.bind(a)}arguments.callee[b]=true}}return a},"@MSIE5.+win":{bind:function(a){if(a&&a.writeln){a.nodeType=9}return this.base(a)}}});eval(this.imports);var _32=detect("MSIE");var _33=detect("MSIE5");if(detect("MSIE[56].+win")&&!detect("SV1")){var closures={};extend(base2,"bind",function(b,c){if(!c||c.nodeType!=1){return this.base(b,c)}var d=c.uniqueID;var e=assignID(b);closures[e]=b;b=null;c=null;if(!closures[d])closures[d]={};var f=closures[d][e];if(f)return f;var g=function(){var a=document.all[d];return a?closures[e].apply(a,arguments):undefined};g._31=e;closures[d][e]=g;return g});attachEvent("onunload",function(){closures=null})}var Interface=Module.extend(null,{implement:function(c){if(typeof c=="object"){forEach(c,function(a,b){if(b.charAt(0)=="@"){forEach(a,arguments.callee,this)}else if(!this[b]&&typeof a=="function"){this.createDelegate(b,a.length)}},this)}return this.base(c)},createDelegate:function(a,b){if(!this[a]){var c="var fn=function _%1(%2){%3.base=%3.%1.ancestor;var m=%3.base?'base':'%1';return %3[m](%4)}";var d="abcdefghij".split("").slice(-b);eval(format(c,a,d,d[0],d.slice(1)));this[a]=fn}}});var Binding=Interface.extend(null,{extend:function(d,a){if(a&&a.bind!=Function.bind){var c=a.bind;delete a.bind}
var b=this.base(d,a);b.bind=this.bind;if(c)extend(b,"bind",c);return b},bind:function(b){return extend(b,this.prototype)}});var Node=Binding.extend({"@!(element.compareDocumentPosition)":{compareDocumentPosition:function(a,b){if(Traversal.contains(a,b)){return 4|16}else if(Traversal.contains(b,a)){return 2|8}var c=_34(a);var d=_34(b);if(c<d){return 4}else if(c>d){return 2}return 0}}});var _34=document.documentElement.sourceIndex?function(a){return a.sourceIndex}:function(a){var b=0;while(a){b=Traversal.getNodeIndex(a)+"."+b;a=a.parentNode}return b};var Document=Node.extend(null,{bind:function(b){extend(b,"createElement",function(a){return DOM.bind(this.base(a))});AbstractView.bind(b.defaultView);if(b!=window.document)new DOMContentLoadedEvent(b);return this.base(b)},"@!(document.defaultView)":{bind:function(a){a.defaultView=Traversal.getDefaultView(a);return this.base(a)}}});var _35=/^(href|src|type|value)$/;var _36={"class":"className","for":"htmlFor"};var Element=Node.extend({"@MSIE.+win":{getAttribute:function(a,b,c){if(a.className===undefined){return this.base(a,b)}var d=_37(a,b);if(d&&d.specified){if(_35.test(b)){return this.base(a,b,2)}else if(b=="style"){return a.style.cssText}else{return d.nodeValue}}return null},setAttribute:function(a,b,c){if(a.className===undefined){this.base(a,b,c)}else if(b=="style"){a.style.cssText=c}else{this.base(a,_36[b]||b,String(c))}}},"@!(element.hasAttribute)":{hasAttribute:function(a,b){return this.getAttribute(a,b)!=null}}});extend(Element.prototype,"cloneNode",function(a){var b=this.base(a||false);b.base2ID=undefined;return b});if(_32){var names="colSpan,rowSpan,vAlign,dateTime,accessKey,tabIndex,encType,maxLength,readOnly,longDesc";extend(_36,Array2.combine(names.toLowerCase().split(","),names.split(",")));var _37=_33?function(a,b){return a.attributes[b]||a.attributes[_36[b.toLowerCase()]]}:function(a,b){return a.getAttributeNode(b)}}var TEXT=_32?"innerText":"textContent";var Traversal=Module.extend({getDefaultView:function(a){return this.getDocument(a).defaultView},getNextElementSibling:function(a){while(a&&(a=a.nextSibling)&&!this.isElement(a))continue;return a},getNodeIndex:function(a){var b=0;while(a&&(a=a.previousSibling))b++;return b},getOwnerDocument:function(a){return a.ownerDocument},getPreviousElementSibling:function(a){while(a&&(a=a.previousSibling)&&!this.isElement(a))continue;return a},getTextContent:function(a){return a[TEXT]},isEmpty:function(a){a=a.firstChild;while(a){if(a.nodeType==3||this.isElement(a))return false;a=a.nextSibling}return true},setTextContent:function(a,b){return a[TEXT]=b},"@MSIE":{getDefaultView:function(a){return this.getDocument(a).parentWindow},"@MSIE5":{getOwnerDocument:function(a){return a.ownerDocument||a.document}}}},{contains:function(a,b){while(b&&(b=b.parentNode)&&a!=b)continue;return!!b},getDocument:function(a){return this.isDocument(a)?a:this.getOwnerDocument(a)},isDocument:function(a){return!!(a&&a.documentElement)},isElement:function(a){return!!(a&&a.nodeType==1)},"@(element.contains)":{contains:function(a,b){return a!=b&&(this.isDocument(a)?a==this.getOwnerDocument(b):a.contains(b))}},"@MSIE5":{isElement:function(a){return!!(a&&a.nodeType==1&&a.tagName!="!")}}});var AbstractView=Binding.extend();var Event=Binding.extend({"@!(document.createEvent)":{initEvent:function(a,b,c,d){a.type=b;a.bubbles=c;a.cancelable=d;a.timeStamp=new Date().valueOf()},"@MSIE":{initEvent:function(a,b,c,d){this.base(a,b,c,d);a.cancelBubble=!a.bubbles},preventDefault:function(a){if(a.cancelable!==false){a.returnValue=false}},stopPropagation:function(a){a.cancelBubble=true}}}},{"@!(document.createEvent)":{"@MSIE":{"@Mac":{bind:function(a){return this.base(extend(copy(a),{preventDefault:function(){if(this.cancelable!==false){this.returnValue=false}}}))}},"@Windows":{bind:function(a){if(!a.timeStamp){a.bubbles=!!_38[a.type];a.cancelable=!!_39[a.type];a.timeStamp=new Date().valueOf()}if(!a.target){a.target=a.srcElement}a.relatedTarget=a[(a.type=="mouseout"?"to":"from")+"Element"];return this.base(a)}}}}});if(_32){var _38="abort,error,select,change,resize,scroll";var _39="click,mousedown,mouseup,mouseover,mousemove,mouseout,keydown,keyup,submit,reset";_38=Array2.combine((_38+","+_39).split(","));_39=Array2.combine(_39.split(","))}var EventTarget=Interface.extend({"@!(element.addEventListener)":{addEventListener:function(a,b,c,d){var e=assignID(a);var f=c._31||assignID(c);var g=_40[e];if(!g)g=_40[e]={};var h=g[b];var i=a["on"+b];if(!h){h=g[b]={};if(i)h[0]=i}h[f]=c;if(i!==undefined){a["on"+b]=delegate(_40.handleEvent)}},dispatchEvent:function(a,b){return _40.handleEvent(a,b)},removeEventListener:function(a,b,c,d){var e=_40[a.base2ID];if(e&&e[b]){delete e[b][c.base2ID]}},"@MSIE.+win":{addEventListener:function(a,b,c,d){if(typeof c=="function"){c=bind(c,a)}this.base(a,b,c,d)},dispatchEvent:function(a,b){b.target=a;try{return a.fireEvent(b.type,b)}catch(error){return this.base(a,b)}}}}});var _40=new Base({handleEvent:function(a,b){var c=true;var d=_40[a.base2ID];if(d){b=Event.bind(b);var e=d[b.type];for(var i in e){var listener=e[i];if(listener.handleEvent){var result=listener.handleEvent(b)}else{result=listener.call(a,b)}if(result===false||b.returnValue===false)c=false}}return c},"@MSIE":{handleEvent:function(a,b){if(a.Infinity){a=a.document.parentWindow;if(!b)b=a.event}return this.base(a,b||Traversal.getDefaultView(a).event)}}});var DocumentEvent=Interface.extend({"@!(document.createEvent)":{createEvent:function(a,b){return Event.bind({})},"@(document.createEventObject)":{createEvent:function(a,b){return Event.bind(a.createEventObject())}}},"@(document.createEvent)":{"@!(document.createEvent('Events'))":{createEvent:function(a,b){return this.base(a,b=="Events"?"UIEvents":b)}}}});var DOMContentLoadedEvent=Base.extend({constructor:function(b){var c=false;this.fire=function(){if(!c){c=true;setTimeout(function(){var a=DocumentEvent.createEvent(b,"Events");Event.initEvent(a,"DOMContentLoaded",false,false);EventTarget.dispatchEvent(b,a)},1)}};EventTarget.addEventListener(b,"DOMContentLoaded",function(){c=true},false);EventTarget.addEventListener(Traversal.getDefaultView(b),"load",this.fire,false)},"@(attachEvent)":{constructor:function(){this.base(document);Traversal.getDefaultView(document).attachEvent("onload",this.fire)}},"@MSIE.+win":{constructor:function(a){this.base(a);if(a.readyState!="complete"){var b=this;a.write("<script id=__ready defer src=//:><\/script>");a.all.__ready.onreadystatechange=function(){if(this.readyState=="complete"){this.removeNode();b.fire()}}}}},"@KHTML":{constructor:function(a){this.base(a);if(a.readyState!="complete"){var b=this;var c=setInterval(function(){if(/loaded|complete/.test(a.readyState)){clearInterval(c);b.fire()}},100)}}}});new DOMContentLoadedEvent(document);Document.implement(DocumentEvent);Document.implement(EventTarget);Element.implement(EventTarget);var _41=/^\d+(px)?$/i;var _42=/(width|height|top|bottom|left|right|fontSize)$/;var _43=/^(color|backgroundColor)$/;var ViewCSS=Interface.extend({"@!(document.defaultView.getComputedStyle)":{"@MSIE":{getComputedStyle:function(b,c,d){var e=c.currentStyle;var f={getPropertyValue:function(a){return this[ViewCSS.toCamelCase(a)]}};for(var i in e){if(_42.test(i)){f[i]=_44(c,f[i])+"px"}else if(_43.test(i)){f[i]=_45(c,i=="color"?"ForeColor":"BackColor")}else{f[i]=e[i]}}return f}}}},{toCamelCase:function(c){return c.replace(/\-([a-z])/g,function(a,b){return b.toUpperCase()})}});function _44(a,b){if(_41.test(b))return parseInt(b);var c=a.style.left;var d=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;a.style.left=b||0;b=a.style.pixelLeft;a.style.left=c;a.runtimeStyle.left=d;return b};function _45(a,b){var c=a.document.body.createTextRange();c.moveToElementText(a);var d=c.queryCommandValue(b);return format("rgb(%1,%2,%3)",d&0xff,(d&0xff00)>>8,(d&0xff0000)>>16)};AbstractView.implement(ViewCSS);var NodeSelector=Interface.extend({"@!(element.querySelector)":{querySelector:function(a,b){return new Selector(b).exec(a,1)},querySelectorAll:function(a,b){return new Selector(b).exec(a)}}});extend(NodeSelector.prototype,{querySelector:function(a){return DOM.bind(this.base(a))},querySelectorAll:function(b){return extend(this.base(b),"item",function(a){return DOM.bind(this.base(a))})}});var DocumentSelector=NodeSelector.extend();var ElementSelector=NodeSelector.extend({"@!(element.matchesSelector)":{matchesSelector:function(a,b){return new Selector(b).test(a)}}});var StaticNodeList=Base.extend({constructor:function(b){b=b||[];this.length=b.length;this.item=function(a){return b[a]}},length:0,forEach:function(a,b){for(var i=0;i<this.length;i++){a.call(b,this.item(i),i,this)}},item:Undefined,"@(XPathResult)":{constructor:function(b){if(b&&b.snapshotItem){this.length=b.snapshotLength;this.item=function(a){return b.snapshotItem(a)}}else this.base(b)}}});StaticNodeList.implement(Enumerable);var CSSParser=RegGrp.extend({constructor:function(a){this.base(a);this.cache={};this.sorter=new RegGrp;this.sorter.add(/:not\([^)]*\)/,RegGrp.IGNORE);this.sorter.add(/([ >](\*|[\w-]+))([^: >+~]*)(:\w+-child(\([^)]+\))?)([^: >+~]*)/,"$1$3$6$4")},cache:null,ignoreCase:true,escape:function(b){var c=/'/g;var d=this._46=[];return this.optimise(this.format(String(b).replace(CSSParser.ESCAPE,function(a){d.push(a.slice(1,-1).replace(c,"\\'"));return"\x01"+d.length})))},format:function(a){return a.replace(CSSParser.WHITESPACE,"$1").replace(CSSParser.IMPLIED_SPACE,"$1 $2").replace(CSSParser.IMPLIED_ASTERISK,"$1*$2")},optimise:function(a){return this.sorter.exec(a.replace(CSSParser.WILD_CARD,">* "))},parse:function(a){return this.cache[a]||(this.cache[a]=this.unescape(this.exec(this.escape(a))))},unescape:function(c){var d=this._46;return c.replace(/\x01(\d+)/g,function(a,b){return d[b-1]})}},{ESCAPE:/'(\\.|[^'\\])*'|"(\\.|[^"\\])*"/g,IMPLIED_ASTERISK:/([\s>+~,]|[^(]\+|^)([#.:@])/g,IMPLIED_SPACE:/(^|,)([^\s>+~])/g,WHITESPACE:/\s*([\s>+~(),]|^|$)\s*/g,WILD_CARD:/\s\*\s/g,_47:function(c,d,e,f,g,h,i,j){f=/last/i.test(c)?f+"+1-":"";if(!isNaN(d))d="0n+"+d;else if(d=="even")d="2n";else if(d=="odd")d="2n+1";d=d.split(/n\+?/);var a=d[0]?(d[0]=="-")?-1:parseInt(d[0]):1;var b=parseInt(d[1])||0;var k=a<0;if(k){a=-a;if(a==1)b++}var l=format(a==0?"%3%7"+(f+b):"(%4%3-%2)%6%1%70%5%4%3>=%2",a,b,e,f,h,i,j);if(k)l=g+"("+l+")";return l}});var XPathParser=CSSParser.extend({constructor:function(){this.base(XPathParser.rules);this.sorter.putAt(1,"$1$4$3$6")},escape:function(a){return this.base(a).replace(/,/g,"\x02")},unescape:function(a){return this.base(a.replace(/\[self::\*\]/g,"").replace(/(^|\x02)\//g,"$1./").replace(/\x02/g," | "))},"@opera":{unescape:function(a){return this.base(a.replace(/last\(\)/g,"count(preceding-sibling::*)+count(following-sibling::*)+1"))}}},{init:function(){this.values.attributes[""]="[@$1]";forEach(this.types,function(a,b){forEach(this.values[b],a,this.rules)},this)},optimised:{pseudoClasses:{"first-child":"[1]","last-child":"[last()]","only-child":"[last()=1]"}},rules:extend({},{"@!KHTML":{"(^|\\x02) (\\*|[\\w-]+)#([\\w-]+)":"$1id('$3')[self::$2]","([ >])(\\*|[\\w-]+):([\\w-]+-child(\\(([^)]+)\\))?)":function(a,b,c,d,e,f){var g=(b==" ")?"//*":"/*";if(/^nth/i.test(d)){g+=_47(d,f,"position()")}else{g+=XPathParser.optimised.pseudoClasses[d]}return g+"[self::"+c+"]"}}}),types:{identifiers:function(a,b){this[rescape(b)+"([\\w-]+)"]=a},combinators:function(a,b){this[rescape(b)+"(\\*|[\\w-]+)"]=a},attributes:function(a,b){this["\\[([\\w-]+)\\s*"+rescape(b)+"\\s*([^\\]]*)\\]"]=a},pseudoClasses:function(a,b){this[":"+b.replace(/\(\)$/,"\\(([^)]+)\\)")]=a}},values:{identifiers:{"#":"[@id='$1'][1]",".":"[contains(concat(' ',@class,' '),' $1 ')]"},combinators:{" ":"/descendant::$1",">":"/child::$1","+":"/following-sibling::*[1][self::$1]","~":"/following-sibling::$1"},attributes:{"*=":"[contains(@$1,'$2')]","^=":"[starts-with(@$1,'$2')]","$=":"[substring(@$1,string-length(@$1)-string-length('$2')+1)='$2']","~=":"[contains(concat(' ',@$1,' '),' $2 ')]","|=":"[contains(concat('-',@$1,'-'),'-$2-')]","!=":"[not(@$1='$2')]","=":"[@$1='$2']"},pseudoClasses:{"empty":"[not(child::*) and not(text())]","first-child":"[not(preceding-sibling::*)]","last-child":"[not(following-sibling::*)]","not()":_48,"nth-child()":_47,"nth-last-child()":_47,"only-child":"[not(preceding-sibling::*) and not(following-sibling::*)]","root":"[not(parent::*)]"}},"@opera":{init:function(){this.optimised.pseudoClasses["last-child"]=this.values.pseudoClasses["last-child"];this.optimised.pseudoClasses["only-child"]=this.values.pseudoClasses["only-child"];this.base()}}});var _49=new XPathParser;function _48(a,b){return"[not("+_49.exec(trim(b)).replace(/\[1\]/g,"").replace(/^(\*|[\w-]+)/,"[self::$1]").replace(/\]\[/g," and ").slice(1,-1)+")]"};function _47(a,b,c){return"["+CSSParser._47(a,b,c||"count(preceding-sibling::*)+1","last()","not"," and "," mod ","=")+"]"};var _50=":(checked|disabled|enabled|contains)|^(#[\\w-]+\\s*)?\\w+$";if(detect("KHTML")){if(detect("WebKit5")){_50+="|nth\\-|,"}else{_50="."}}_50=new RegExp(_50);var _51;var Selector=Base.extend({constructor:function(a){this.toString=K(trim(a))},exec:function(a,b){return Selector.parse(this)(a,b)},test:function(a){var b=new Selector(this+"[-base2-test]");a.setAttribute("-base2-test",true);var c=b.exec(Traversal.getOwnerDocument(a),true);a.removeAttribute("-base2-test");return c==a},toXPath:function(){return Selector.toXPath(this)},"@(XPathResult)":{exec:function(a,b){if(_50.test(this)){return this.base(a,b)}var c=Traversal.getDocument(a);var d=b?9:7;var e=c.evaluate(this.toXPath(),a,null,d,null);return b?e.singleNodeValue:e}},"@MSIE":{exec:function(a,b){if(typeof a.selectNodes!="undefined"&&!_50.test(this)){var c=b?"selectSingleNode":"selectNodes";return a[c](this.toXPath())}return this.base(a,b)}},"@(true)":{exec:function(a,b){try{var c=this.base(a||document,b)}catch(error){throw new SyntaxError(format("'%1' is not a valid CSS selector.",this));}return b?c:new StaticNodeList(c)}}},{toXPath:function(a){if(!_51)_51=new XPathParser;return _51.parse(a)}});new function(_){var _52={"=":"%1=='%2'","!=":"%1!='%2'","~=":/(^| )%1( |$)/,"|=":/^%1(-|$)/,"^=":/^%1/,"$=":/%1$/,"*=":/%1/};_52[""]="%1!=null";var _53={"checked":"e%1.checked","contains":"e%1[TEXT].indexOf('%2')!=-1","disabled":"e%1.disabled","empty":"Traversal.isEmpty(e%1)","enabled":"e%1.disabled===false","first-child":"!Traversal.getPreviousElementSibling(e%1)","last-child":"!Traversal.getNextElementSibling(e%1)","only-child":"!Traversal.getPreviousElementSibling(e%1)&&!Traversal.getNextElementSibling(e%1)","root":"e%1==Traversal.getDocument(e%1).documentElement"};var _54=detect("(element.sourceIndex)");var _55="var p%2=0,i%2,e%2,n%2=e%1.";var _56=_54?"e%1.sourceIndex":"assignID(e%1)";var _57="var g="+_56+";if(!p[g]){p[g]=1;";var _58="r[r.length]=e%1;if(s)return e%1;";var _59="r.sort(sorter);";var _60="fn=function(e0,s){indexed++;var r=[],p={},reg=[%1],"+"d=Traversal.getDocument(e0),c=d.body?'toUpperCase':'toString';";var byId=_32?function(a,b){var c=a.all[b]||null;if(!c||c.id==b)return c;for(var i=0;i<c.length;i++){if(c[i].id==b)return c[i]}return null}:function(a,b){return a.getElementById(b)};var indexed=1;function register(a){if(a.rows){a.b2_length=a.rows.length;a.b2_lookup="rowIndex"}else if(a.cells){a.b2_length=a.cells.length;a.b2_lookup="cellIndex"}else if(a.b2_indexed!=indexed){var b=0;var c=a.firstChild;while(c){if(c.nodeType==1&&c.nodeName!="!"){c.b2_index=++b}c=c.nextSibling}a.b2_length=b;a.b2_lookup="b2_index"}a.b2_indexed=indexed;return a};var sorter=_54?function(a,b){return a.sourceIndex-b.sourceIndex}:Node.compareDocumentPosition;var fn;var reg;var _61;var _62;var _63;var _64;var _65={};var parser=new CSSParser({"^ \\*:root":function(a){_62=false;var b="e%2=d.documentElement;if(Traversal.contains(e%1,e%2)){";return format(b,_61++,_61)}," (\\*|[\\w-]+)#([\\w-]+)":function(a,b,c){_62=false;var d="var e%2=byId(d,'%4');if(e%2&&";if(b!="*")d+="e%2.nodeName=='%3'[c]()&&";d+="Traversal.contains(e%1,e%2)){";if(_63)d+=format("i%1=n%1.length;",_63);return format(d,_61++,_61,b,c)}," (\\*|[\\w-]+)":function(a,b){_64++;_62=b=="*";var c=_55;c+=(_62&&_33)?"all":"getElementsByTagName('%3')";c+=";for(i%2=0;(e%2=n%2[i%2]);i%2++){";return format(c,_61++,_63=_61,b)},">(\\*|[\\w-]+)":function(a,b){var c=_32&&_63;_62=b=="*";var d=_55;d+=c?"children":"childNodes";if(!_62&&c)d+=".tags('%3')";d+=";for(i%2=0;(e%2=n%2[i%2]);i%2++){";if(_62){d+="if(e%2.nodeType==1){";_62=_33}else{if(!c)d+="if(e%2.nodeName=='%3'[c]()){"}return format(d,_61++,_63=_61,b)},"\\+(\\*|[\\w-]+)":function(a,b){var c="";if(_62&&_32)c+="if(e%1.tagName!='!'){";_62=false;c+="e%1=Traversal.getNextElementSibling(e%1);if(e%1";if(b!="*")c+="&&e%1.nodeName=='%2'[c]()";c+="){";return format(c,_61,b)},"~(\\*|[\\w-]+)":function(a,b){var c="";if(_62&&_32)c+="if(e%1.tagName!='!'){";_62=false;_64=2;c+="while(e%1=e%1.nextSibling){if(e%1.b2_adjacent==indexed)break;if(";if(b=="*"){c+="e%1.nodeType==1";if(_33)c+="&&e%1.tagName!='!'"}else c+="e%1.nodeName=='%2'[c]()";c+="){e%1.b2_adjacent=indexed;";return format(c,_61,b)},"#([\\w-]+)":function(a,b){_62=false;var c="if(e%1.id=='%2'){";if(_63)c+=format("i%1=n%1.length;",_63);return format(c,_61,b)},"\\.([\\w-]+)":function(a,b){_62=false;reg.push(new RegExp("(^|\\s)"+rescape(b)+"(\\s|$)"));return format("if(e%1.className&®[%2].test(e%1.className)){",_61,reg.length-1)},":not\\((\\*|[\\w-]+)?([^)]*)\\)":function(a,b,c){var d=(b&&b!="*")?format("if(e%1.nodeName=='%2'[c]()){",_61,b):"";d+=parser.exec(c);return"if(!"+d.slice(2,-1).replace(/\)\{if\(/g,"&&")+"){"},":nth(-last)?-child\\(([^)]+)\\)":function(a,b,c){_62=false;b=format("e%1.parentNode.b2_length",_61);var d="if(p%1!==e%1.parentNode)p%1=register(e%1.parentNode);";d+="var i=e%1[p%1.b2_lookup];if(";return format(d,_61)+CSSParser._47(a,c,"i",b,"!","&&","%","==")+"){"},":([\\w-]+)(\\(([^)]+)\\))?":function(a,b,c,d){return"if("+format(_53[b]||"throw",_61,d||"")+"){"},"\\[([\\w-]+)\\s*([^=]?=)?\\s*([^\\]]*)\\]":function(a,b,c,d){var e=_36[b]||b;if(c){var f="e%1.getAttribute('%2',2)";if(!_35.test(b)){f="e%1.%3||"+f}b=format("("+f+")",_61,b,e)}else{b=format("Element.getAttribute(e%1,'%2')",_61,b)}var g=_52[c||""];if(instanceOf(g,RegExp)){reg.push(new RegExp(format(g.source,rescape(parser.unescape(d)))));g="reg[%2].test(%1)";d=reg.length-1}return"if("+format(g,b,d)+"){"}});Selector.parse=function(a){if(!_65[a]){reg=[];fn="";var b=parser.escape(a).split(",");for(var i=0;i<b.length;i++){_62=_61=_63=0;_64=b.length>1?2:0;var c=parser.exec(b[i])||"throw;";if(_62&&_32){c+=format("if(e%1.tagName!='!'){",_61)}var d=(_64>1)?_57:"";c+=format(d+_58,_61);c+=Array(match(c,/\{/g).length+1).join("}");fn+=c}if(b.length>1)fn+=_59;eval(format(_60,reg)+parser.unescape(fn)+"return s?null:r}");_65[a]=fn}return _65[a]}};Document.implement(DocumentSelector);Element.implement(ElementSelector);var HTMLDocument=Document.extend(null,{"@(document.activeElement===undefined)":{bind:function(b){b.activeElement=null;EventTarget.addEventListener(b,"focus",function(a){b.activeElement=a.target},false);return this.base(b)}}});var HTMLElement=Element.extend({addClass:function(a,b){if(!this.hasClass(a,b)){a.className+=(a.className?" ":"")+b}},hasClass:function(a,b){var c=new RegExp("(^|\\s)"+b+"(\\s|$)");return c.test(a.className)},removeClass:function(a,b){var c=new RegExp("(^|\\s)"+b+"(\\s|$)","g");a.className=a.className.replace(c,"$2")},toggleClass:function(a,b){if(this.hasClass(a,b)){this.removeClass(a,b)}else{this.addClass(a,b)}}},{bindings:{},tags:"*",extend:function(){var b=base(this,arguments);var c=(b.tags||"").toUpperCase().split(",");forEach(c,function(a){HTMLElement.bindings[a]=b});return b},"@!(element.ownerDocument)":{bind:function(a){a.ownerDocument=Traversal.getOwnerDocument(a);return this.base(a)}}});eval(this.exports)};new function(_){var JSB=new base2.Package(this,{name:"JSB",version:"0.7",imports:"DOM",exports:"Behavior, Rule, RuleList"});eval(this.imports);var Behavior=Abstract.extend();var Call=Base.extend({constructor:function(a,b,c,d){this.release=function(){b.apply(a,c)};this.rank=d||(100+Call.list.length)}},{list:[],defer:function(a,b){return function(){if(Call.list){Call.list.push(new Call(this,a,arguments,b))}else{a.apply(this,arguments)}}},init:function(){EventTarget.addEventListener(document,"DOMContentLoaded",function(){if(Call.list){DOM.bind(document);Call.list.sort(function(a,b){return a.rank-b.rank});invoke(Call.list,"release");delete Call.list;setTimeout(function(){var a=DocumentEvent.createEvent(document,"Events");Event.initEvent(a,"ready",false,false);EventTarget.dispatchEvent(document,a)},1)}},false)}});var _66=/^on[a-z]+$/;var Rule=Base.extend({constructor:function(e,f){e=new Selector(e);if(Behavior.ancestorOf(f)){f=f.prototype}var g={},h={},i=f.style,j={};forEach(f,function(a,b){if(b.charAt(0)=="@"){if(detect(b.slice(1))){forEach(a,arguments.callee)}}else if(typeof a=="function"&&_66.test(b)){h[b.slice(2)]=a}else if(b!="style"){g[b]=a}});function addBehavior(a){var b=assignID(a);if(!j[b]){j[b]=true;DOM.bind(a);extend(a,g);extend(a.style,i);for(var c in h){var target=a;var d=h[c];if(c.indexOf("document")==0){target=document;c=c.slice(8);d=bind(d,a)}target.addEventListener(c,d,false)}}};this.refresh=Call.defer(function(){e.exec(document).forEach(addBehavior)});this.toString=K(String(e));this.refresh()},refresh:Undefined});var RuleList=Collection.extend({constructor:function(a){this.base(a);this.globalize()},globalize:Call.defer(function(){var e=/[^\s,]+/g;var f=/^#[\w-]+$/;forEach(this,function(c,d){forEach(match(d,e),function(a){if(f.test(a)){var b=ViewCSS.toCamelCase(a.slice(1));window[b]=Document.querySelector(document,a)}})})},10),refresh:function(){this.invoke("refresh")}},{Item:Rule});eval(this.exports)};eval(base2.namespace);var DEFAULT="@0";var IGNORE=RegGrp.IGNORE;var Colorizer=RegGrp.extend({constructor:function(c,d,e){this.extend(e);this.patterns=c||{};var f={},i;forEach(c,function(a,b){f[b]=d[b]||DEFAULT});forEach(d,function(a,b){f[b]=d[b]});this.base(f)},patterns:null,tabStop:4,urls:true,copy:function(){var a=this.base();a.patterns=copy(this.patterns);return a},exec:function(a,b){a=this.base(this.escape(a));if(!b){a=this._67(a);if(this.urls)a=Colorizer.urls.exec(a)}return this.unescape(a)},escape:function(a){return String(a).replace(/</g,"\x01").replace(/&/g,"\x02")},put:function(c,d){if(!instanceOf(c,RegGrp.Item)){if(typeof d=="string"){d=d.replace(/@(\d)/,function(a,b){return format(Colorizer.FORMAT,c,b)})}c=this.patterns[c]||Colorizer.patterns[c]||c;if(instanceOf(c,RegExp))c=c.source;c=this.escape(c)}return this.base(c,d)},unescape:function(a){return a.replace(/\x01/g,"<").replace(/\x02/g,"&")},_67:function(c){var d=this.tabStop;if(d>0){var e=Array(d+1).join(" ");return c.replace(Colorizer.TABS,function(a){a=a.replace(Colorizer.TAB,e);if(d>1){var b=(a.length-1)%d;if(b)a=a.slice(0,-b)}return a.replace(/ /g," ")})}return c},"@MSIE":{_67:function(a){return this.base(a).replace(/\r?\n/g,"<br>")}}},{version:"0.8",FORMAT:'<span class="%1">$%2</span>',DEFAULT:DEFAULT,IGNORE:IGNORE,TAB:/\t/g,TABS:/\n([\t \xa0]+)/g,init:function(){forEach(this.patterns,function(c,d,e){if(instanceOf(c,Array)){e[d]=reduce(c,function(a,b){a.add(e[b]);return a},new RegGrp)}});this.urls=this.patterns.urls.copy();this.urls.putAt(0,'<a href="mailto:$0">$0</a>');this.urls.putAt(1,'<a href="$0">$0</a>')},addScheme:function(a,b,c,d){this[a]=new this(b,c,d)},patterns:{block_comment:/\/\*[^*]*\*+([^\/][^*]*\*+)*\//,email:/([\w.+-]+@[\w.-]+\.\w+)/,line_comment:/\/\/[^\r\n]*/,number:/\b\-?(0|[1-9]\d*)(\.\d+)?([eE][-+]?\d+)?\b/,string1:/'(\\.|[^'\\])*'/,string2:/"(\\.|[^"\\])*"/,url:/(http:\/\/+[\w\/\-%&#=.,?+$]+)/,comment:["block_comment","line_comment"],string:["string1","string2"],urls:["email","url"]},urls:null});base2.addPackage("code");base2.code.addName("Colorizer",Colorizer);with(base2.code.Colorizer)addScheme("xml",{attribute:/(\w+)=("[^"]*"|'[^']*')/,cdata:/<!\[CDATA\[([^\]]|\][^\]]|\]\][^>])*\]\]>/,comment:/<!\s*(--([^-]|[\r\n]|-[^-])*--\s*)>/,entity:/&#?\w+;/,"processing-instruction":/<\?[\w-]+[^>]+>/,tag:/(<\/?)([\w:-]+)/,text:/[>;][^<>&]*/},{cdata:IGNORE,tag:"$1@2",attribute:'@1=<span class="attribute value">$2</span>',text:IGNORE},{tabStop:1});with(base2)code.Colorizer.addScheme("html",{conditional:/<!(--)?\[[^\]]*\]>|<!\[endif\](--)?>/,doctype:/<!(DOCTYPE|doctype)[^>]+>/,inline:/<(script|style)([^>]*)>((\\.|[^\\])*)<\/\1>/},{inline:function(a,b,c,d){return format(this.INLINE,b,this.exec(c,true),d)}},{INLINE:'<<span class="tag">%1</span>%2>%3</<span class="tag">%1</span>>',tabStop:1});with(base2.code.Colorizer)html.merge(xml);with(base2.code.Colorizer)addScheme("css",{at_rule:/@[\w\s]+/,bracketed:/\([^'\x22)]*\)/,comment:patterns.block_comment,property:/(\w[\w-]*\s*):([^;}]+)/,special:/(\-[\w-]*\s*):/,selector:/([\w-:\[.#][^{};]*)\{/},{bracketed:IGNORE,selector:"@1{",special:"@1:",property:'@1:<span class="property value">$2</span>'});with(base2.code.Colorizer)addScheme("javascript",{conditional:/\/\*@if\s*\([^\)]*\)|\/\*@[\s\w]*|@\*\/|\/\/@\w+|@else[\s\w]*/,global:/\b(clearInterval|clearTimeout|constructor|document|escape|hasOwnProperty|Infinity|isNaN|NaN|parseFloat|parseInt|prototype|setInterval|setTimeout|toString|unescape|valueOf|window)\b/,keyword:/\b(&&|\|\||arguments|break|case|continue|default|delete|do|else|false|for|function|if|in|instanceof|new|null|return|switch|this|true|typeof|var|void|while|with|undefined)\b/,regexp:/([\[(\^=,{}:;&|!*?]\s*)(\/(\\\/|[^\/*])(\\.|[^\/\n\\])*\/[mgi]*)/,special:/\b(assert\w*|alert|catch|confirm|console|debug|debugger|eval|finally|prompt|throw|try)\b/},{comment:DEFAULT,string:DEFAULT,regexp:"$1@2",number:DEFAULT});with(base2)with(code)Colorizer["html-multi"]=Colorizer.html.union({inline:function(a,b,c,d){var e=b=="style"?"css":"javascript";d=Colorizer[e].exec(d,true);d=format('<span class="%1">%2</span>',e,d);return format(this.INLINE,b,this.exec(c,true),d)}});with(base2.code.Colorizer.javascript){add("\\b("+(base2.exports+",base,base2,merge,union,implement,Array2,Date2,String2").match(/[^\s,]+/g).join("|")+")\\b",'<span class="base2">$0</span>');insertAt(0,/("@[^"]+"):/,'<span class="special">$1</span>:');tabStop=2}eval(base2.namespace);eval(DOM.namespace);eval(JSB.namespace);var bindings=new RuleList;bindings.add("pre",{ondocumentready:function(){if(this.hasClass("js")){this.addClass("javascript")}var a=this.className.split(/\s+/);for(var i=0;i<a.length;i++){var b=a[i];var c=Colorizer[b];if(c instanceof Colorizer){var d=Traversal.getTextContent(this);this.innerHTML=c.exec(d);this.addClass("highlight");if(b=="html-multi")this.addClass("html");break}}}});function updateFlag(){this.nextSibling.style.color=this.value?"#898E79":"#A03333"};bindings.add("input.required,textarea.required",{ondocumentready:updateFlag,ondocumentmouseup:updateFlag,ondocumentkeyup:updateFlag});
Words.js
var Words=Collection.extend({constructor:function(script){this.base();forEach(script.match(WORDS),this.add,this);this.encode()},add:function(word){if(!this.has(word))this.base(word);word=this.get(word);word.count++;return word},encode:function(){this.sort(function(word1,word2){return word2.count-word1.count});eval("var a=62,e="+Packer.ENCODE62);var encode=e;var encoded=new Collection;var count=this.size();for(var i=0;i<count;i++){encoded.put(encode(i),i)}var empty=function(){return""};var index=0;forEach(this,function(word){if(encoded.has(word)){word.index=encoded.get(word);word.toString=empty}else{while(this.has(encode(index)))index++;word.index=index++}word.encoded=encode(word.index)},this);this.sort(function(word1,word2){return word1.index-word2.index})},toString:function(){return this.getValues().join("|")}},{Item:{constructor:function(word){this.toString=function(){return word}},count:0,encoded:"",index:-1}});
Packer.js
eval(base2.namespace);eval(JavaScript.namespace);var IGNORE=RegGrp.IGNORE;var REMOVE="";var SPACE=" ";var WORDS=/\w+/g;var Packer=Base.extend({minify:function(script){script=script.replace(Packer.CONTINUE,"");script=Packer.data.exec(script);script=Packer.whitespace.exec(script);script=Packer.clean.exec(script);return script},pack:function(script,base62,shrink){script=this.minify(script+"\n");if(shrink)script=this._shrinkVariables(script);if(base62)script=this._base62Encode(script);return script},_base62Encode:function(script){var words=new Words(script);var encode=function(word){return words.get(word).encoded};var p=this._escape(script.replace(WORDS,encode));var a=Math.min(Math.max(words.size(),2),62);var c=words.size();var k=words;var e=Packer["ENCODE"+(a>10?a>36?62:36:10)];var r=a>10?"e(c)":"c";return format(Packer.UNPACK,p,a,c,k,e,r)},_escape:function(script){return script.replace(/([\\'])/g,"\\$1").replace(/[\r\n]+/g,"\\n")},_shrinkVariables:function(script){var global=function(regexp){return new RegExp(regexp.source,"g")};var data=[];var REGEXP=/^[^'"]\//;var store=function(string){var replacement="#"+data.length;if(REGEXP.test(string)){replacement=string.charAt(0)+replacement;string=string.slice(1)}data.push(string);return replacement};var encode52=function(c){return(c<52?'':arguments.callee(parseInt(c/52)))+((c=c%52)>25?String.fromCharCode(c+39):String.fromCharCode(c+97))};var BLOCK=/(function\s*[\w$]*\s*\(\s*([^\)]*)\s*\)\s*)?(\{([^{}]*)\})/;var VAR_=/var\s+/g;var VAR_NAME=/var\s+[\w$]+/g;var COMMA=/\s*,\s*/;var blocks=[];var encode=function(block,func,args){if(func){block=decode(block);var vars=match(block,VAR_NAME).join(",").replace(VAR_,"");var ids=Array2.combine(args.split(COMMA).concat(vars.split(COMMA)));var count=0,shortId;forEach(ids,function(id){id=trim(id);if(id&&id.length>1){id=rescape(id);do shortId=encode52(count++);while(new RegExp("[^\\w$.]"+shortId+"[^\\w$:]").test(block));var reg=new RegExp("([^\\w$.])"+id+"([^\\w$:])");while(reg.test(block))block=block.replace(global(reg),"$1"+shortId+"$2");var reg=new RegExp("([^{,\\w$.])"+id+":","g");block=block.replace(reg,"$1"+shortId+":")}})}var replacement="~"+blocks.length+"~";blocks.push(block);return replacement};var ENCODED=/~(\d+)~/;var decode=function(script){while(ENCODED.test(script)){script=script.replace(global(ENCODED),function(match,index){return blocks[index]})}return script};script=Packer.data.exec(script,store);script=script.replace(/new function\(_\)\s*\{/g,"{;#;");while(BLOCK.test(script)){script=script.replace(global(BLOCK),encode)}script=decode(script);script=script.replace(/\{;#;/g,"new function(_){");script=script.replace(/#(\d+)/g,function(match,index){return data[index]});return script}},{CONTINUE:/\\\r?\n/g,ENCODE10:"String",ENCODE36:"function(c){return c.toString(a)}",ENCODE62:"function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))}",UNPACK:"eval(function(p,a,c,k,e,r){e=%5;if(!''.replace(/^/,String)){while(c--)r[%6]=k[c]"+"||%6;k=[function(e){return r[e]}];e=function(){return'\\\\w+'};c=1};while(c--)if(k[c])p=p."+"replace(new RegExp('\\\\b'+e(c)+'\\\\b','g'),k[c]);return p}('%1',%2,%3,'%4'.split('|'),0,{}))",init:function(){this.data=reduce(this.data,function(data,replacement,expression){data.put(this.javascript.exec(expression),replacement);return data},new RegGrp,this);this.clean=this.data.union(this.clean);this.whitespace=this.data.union(this.whitespace)},clean:{"\\(\\s*;\\s*;\\s*\\)":"(;;)","throw[^};]+[};]":IGNORE,";+\\s*([};])":"$1"},data:{"STRING1":IGNORE,'STRING2':IGNORE,"CONDITIONAL":IGNORE,"(COMMENT1)\\n\\s*(REGEXP)?":"\n$3","(COMMENT2)\\s*(REGEXP)?":" $3","([\\[(\\^=,{}:;&|!*?])\\s*(REGEXP)":"$1$2"},javascript:new RegGrp({COMMENT1:/(\/\/|;;;)[^\n]*/.source,COMMENT2:/\/\*[^*]*\*+([^\/][^*]*\*+)*\//.source,CONDITIONAL:/\/\*@|@\*\/|\/\/@[^\n]*\n/.source,REGEXP:/\/(\\[\/\\]|[^*\/])(\\.|[^\/\n\\])*\/[gim]*/.source,STRING1:/'(\\.|[^'\\])*'/.source,STRING2:/"(\\.|[^"\\])*"/.source}),whitespace:{"(\\d)\\s+(\\.\\s*[a-z\\$_\\[(])":"$1 $2","([+-])\\s+([+-])":"$1 $2","\\b\\s+\\$\\s+\\b":" $ ","\\$\\s+\\b":"$ ","\\b\\s+\\$":" $","\\b\\s+\\b":SPACE,"\\s+":REMOVE}});
说明
Packer.js
依赖base2.js
和Words.js
。
三合一代码
base2-javascript-packer.js
var WHAK_com=atob('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');
var W,H,A,K='N=$(){$ t(){V.k=$(t){Z(Y i,h,o,s=t.@,n=[],f=0;s>f;f++){n.R([f,t[f]])}Z(n.R([s,-1]),f=[],s=n[0],t=s[0],s=s[1],i=1;i<n.@;i++){if(h=n[i][0],o=n[i][1],s){Z(;h>t;t++){f.R(X r(t,s))}}if(t=h,s=o,-1==o){G}}Z(f.Q($(t,r){? t.a-r.a||t.M-r.M}),V.J=f,n=0,t=-1,V.c=[],s=null,f=0;f<V.J.@;f++){i=V.J[f],t+=1,i.a!=n&&(t<<=i.a-n,s=V.c[n=i.a]={}),s[i.l=t]=i}V.e=16,V.f=-1,V.J.ZEach($(t){t.a<V.e&&(V.e=t.a),t.a>V.f&&(V.f=t.a)},V)}}$ r(t,r){V.M=t,V.a=r,V.l=void 0}$ i(){V.j=$(t){V.y=[];Z(Y r=0;31>r;r++){V.y[r]=(1<<r)-1}V.y[31]=-2147483648,V.d=t,V.D=V.z=V.a=0},V.g=$(t){Y r=t>>1;? V.b(r)*(1<<r)+V.b(t-r)},V.b=$(t){Z(;V.a<t;){V.z=(V.z<<8)+V.d.#(V.D++),V.a+=8}Y r=V.y[t],i=V.z>>V.a-t&r;? V.a-=t,V.z&=~(r<<V.a),i}}$ h(t,r){Y i,h,o,s,n,f,e=t.@;if(r>=e){L rx("Out")}if(0>r){L rx("Outs")}Z(i=t,t=t.T(""),i.Q(),h={},s=e-1;s>=0;s--){h[i[s]]=s}Z(o=[],s=0;e>s;s++){o.R(h[t[s]]++)}Z(h=i[s=r],n=[],f=1;e>f;f++){n.R(i[s=o[s]])}? h+n./().T("")}$ o(t,r,i){Z(Y h=t[r];r>0;t[r]=t[--r]){}i.R(t[0]=h)}?{^:{i:$(r){$ s(t){Z(Y r,i,h=[],o=t.b(16),s=I;s>0;s>>=1){if(o&s){Z(r=t.b(16),i=I;i>0;i>>=1){h.R(Boolean(r&i))}}P{Z(r=0;16>r;r++){h.R(!1)}}}? h}Y n,f=X i;if(f.j(r),f.b(16),104!=f.b(8)){L"Un"}if(r=f.b(8),!(r>=49&&57>=r)){L"Unk"}? r-=48,n=[],$(r,i,e,a,u,c,b,l,d,p,g,v,w,A){Z(;;){if(r=f.g(48),f.g(32),54156738319193!=r){if(25779555029136==r){f.b(7&f.a);G}L" 0x"+r.toString(16)}if(f.b(1)){L"B"}if(r=f.b(24),i=s(f),e=f.b(3),2>e||e>6){L rx("not")}Z(a=[0,1,2,3,4,5,6].slice(0,e),u=[],c=0,b=f.b(15);b>c;c++){Z(l=0;f.b(1);){if(l++>=e){L rx("2("+e+") ")}}o(a,l,u)}Z(l=[],a=i.reduce($(t,r){? t+r},0)+2,b=0;e>b;b++){Z(d=f.b(5),p=[],c=0;a>c;c++){if(0>d||d>20){L rx("side")}Z(;f.b(1);){d-=2*f.b(1)-1}p.R(d)}l.R(p)}Z(c=[],e=0;e<l.@;e++){b=X t,b.k(l[e]),c.R(b)}Z(e=[],l=i.@-1;l>=0;l--){i[l]&&e.R(String.fromCharCode(l))}Z(e./(),l=i=0,d=b=0,p=[];;){0>=--l&&(l=50,i<=u.@&&(g=c[u[i++]]));Z(w in g.c){if(f.a<w&&(f.z=(f.z<<8)+f.d.#(f.D++),f.a+=8),v=g.c[w][f.z>>f.a-w]){f.z&=f.y[f.a-=w],v=v.M;G}}if(v<0||1<v){Z(A=e[0];b>0;b--){p.R(A)}if(v==a-1){G}o(e,v-1,p)}P{0==b&&(d=1),b+=d<<v,d<<=1}}Z(r=h(p,r),u=[],c=0,a=r.@;a>c;){if(l=r.#(c),a-4>c&&r.#(c+1)==l&&r.#(c+2)==l&&r.#(c+3)==l){Z(l=r.charAt(c),i=r.#(c+4)+4;i>0;i--){u.R(l)}c+=5}P{u.R(r[c++])}}n.R(u.T(""))}}(),n.T("")}}}}(),F=N.^.i(N_^),eval(F);',W='#$/?@DFGIJLMNPQRTVXYZ^'.split('');for(A in H='charCodeAt,function,reverse,return,length,count,datas,break,32768,table,throw,code,WHAK,else,sort,push,join,this,new,var,for,com'.split(','))K=K.split(W[A]).join(H[A]);eval(K);
使用
let inputE = document.getElementById("input");
let outputE = document.getElementById("output");
outputE.value = whak_pack(inputE.value,true,true);
应用案例
https://www.zhangbj.com/tool/packer.html
相关网址
http://dean.edwards.name/packer
https://github.com/JavaScript-Packer/base2-javascript-packer.js
https://github.com/fendoudebb/learning/tree/master/javascript/learn-packer
Views: 18,953 · Posted: 2021-06-12
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓
Loading...