/**
* Combined, minified redistributable GNU ease.js file.
* <
http://www.gnu.org/software/easejs/>
* Copyright (C) 2010, 2011, 2012, 2013, 2014 Free Software Foundation, Inc.
* @license magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&dn=gpl-3.0.txt GPL-v3-or-Later
*/
var easejs={};
(function(C){var g={},l=function(b){var e=b.replace(/^\.?\/|[^/]*?\/\.\.\/|\.js$/,""),e=g[e];if(void 0===e)throw"[ease.js] Undefined module: "+b;return e.exports};(function(b){var b=b.exports={},e={"public":1,"protected":2,"private":4,"static":8,"abstract":16,"const":32,virtual:64,override:128,proxy:256,weak:512},d={amods:e["public"]|e["protected"]|e["private"],virtual:e["abstract"]|e.virtual};b.kvals=e;b.kmasks=d;b.parseKeywords=function(b){var a=b,c=[],j=0,h={};if(1!==(c=(""+b).split(/\s+/)).length){a=c.pop();
for(b=c.length;b--;){var v=c[b],w=e[v];if(!w)throw Error("Unexpected keyword for '"+a+"': "+v);h[v]=!0;j|=w}}a.match(/^_[^_]/)&&!(j&d.amods)&&(h["private"]=!0,j|=e["private"]);return{name:a,keywords:h,bitwords:j}}})(g.prop_parser={},".");(function(b){function e(a){throw a;}function d(a,c,d){for(var b=d.length;b--;)null===d[b].match(/^[a-z_][a-z0-9_]*$/i)&&a(SyntaxError("Member "+c+" contains invalid parameter '"+d[b]+"'"))}function f(){return j?function(a,c,d){Object.defineProperty(a,c,{value:d,enumerable:!1,
writable:!1,configurable:!1})}:function(a,c,d){a[c]=d}}var a=b.exports={},c=l("./prop_parser").parseKeywords,j;a:{if("function"===typeof Object.defineProperty)try{Object.defineProperty({},"x",{});j=!0;break a}catch(h){}j=!1}a.freeze="function"===typeof Object.freeze?Object.freeze:function(){};a.definePropertyFallback=function(c){if(void 0===c)return!j;j=!c;a.defineSecureProp=f();return a};a.defineSecureProp=f();a.clone=function w(a,c){c=!!c;if(a instanceof Array){if(!c)return a.slice(0);for(var d=
[],b=0,e=a.length;b<e;b++)d.push(w(a[b],c));return d}if("function"!==typeof a&&a instanceof Object){d={};b=Object.prototype.hasOwnProperty;for(e in a)b.call(a,e)&&(d[e]=c?w(a[e]):a[e]);return d}return a};a.copyTo=function(c,d,b){var b=!!b,e;if(!(c instanceof Object)||!(d instanceof Object))throw TypeError("Must provide both source and destination objects");if(j)for(var f in d)e=Object.getOwnPropertyDescriptor(d,f),e.get||e.set?Object.defineProperty(c,f,e):c[f]=b?a.clone(d[f],!0):d[f];else for(f in d)c[f]=
b?a.clone(d[f],!0):d[f];return c};a.propParse=function(b,f,o){var r=function(){},h=f.each||void 0,l=f.property||r,g=f.method||r,r=f.getset||r,s=f.keywordParser||c,k=f._throw||e,p=Object.prototype.hasOwnProperty,q={},m="",q={},n=null,z=!1,A=!1,u;for(u in b)if(p.call(b,u)){if(j)m=Object.getOwnPropertyDescriptor(b,u),z=m.get,A=m.set;n="function"===typeof z?void 0:b[u];q=s(u)||{};m=q.name||u;q=q.keywords||{};if(f.assumeAbstract||q["abstract"]&&!q.override)q["abstract"]=!0,n instanceof Array||k(TypeError("Missing parameter list for abstract method: "+
m)),d(k,m,n),n=a.createAbstractMethod.apply(this,n);h&&h.call(o,m,n,q);z||A?r.call(o,m,z,A,q):"function"===typeof n||q.proxy?g.call(o,m,n,a.isAbstractMethod(n),q):l.call(o,m,n,q)}};a.createAbstractMethod=function(c){for(var d=[],b=arguments.length;b--;)d[b]=arguments[b];b=function(){throw Error("Cannot call abstract method");};a.defineSecureProp(b,"abstractFlag",!0);a.defineSecureProp(b,"definition",d);a.defineSecureProp(b,"__length",arguments.length);return b};a.isAbstractMethod=function(a){return"function"===
typeof a&&!0===a.abstractFlag?!0:!1};a.arrayShrink=function(a){for(var c=[],d=0,b=a.length;d<b;d++){var e=a[d];void 0!==e&&c.push(e)}return c};a.getOwnPropertyDescriptor=j&&Object.getOwnPropertyDescriptor||function(a,c){return!Object.prototype.hasOwnProperty.call(a,c)?void 0:{get:void 0,set:void 0,writable:!0,enumerable:!0,configurable:!0,value:a[c]}};a.getPrototypeOf=Object.getPrototypeOf||function(){};a.getPropertyDescriptor=function(c,d,b){var b=!!b,e=a.getOwnPropertyDescriptor(c,d),c=a.getPrototypeOf(c);
return!e&&c&&(!b||a.getPrototypeOf(c))?a.getPropertyDescriptor(c,d,b):e};a.defineSecureProp(a.getPropertyDescriptor,"canTraverse",Object.getPrototypeOf?!0:!1)})(g.util={},".");(function(b){var b=b.exports={},e=null,d="undefined"!==typeof console?console:void 0,f=b.Warning=function(a){if(!(this instanceof f))return new f(a);if(!(a instanceof Error))throw TypeError("Must provide exception to wrap");Error.prototype.constructor.call(this,a.message);this.message=a.message;this.name="Warning";this._error=
a;this.stack=a.stack&&a.stack.replace(/^.*?\n+/,this.name+": "+this.message+"\n")};f.prototype=Error();f.prototype.constructor=f;f.prototype.name="Warning";f.prototype.getError=function(){return this._error};b.handlers={log:function(a){var c;d&&(c=d.warn||d.log)&&c.call(d,"Warning: "+a.message)},throwError:function(a){throw a.getError();},dismiss:function(){}};b.setHandler=function(a){e=a};b.handle=function(a){e(a)};b.setConsole=function(a){d=a};e=b.handlers.log})(g.warn={},".");(function(b){function e(a,
c){try{if(c instanceof a)return!0}catch(d){}return!1}function d(a,c,d){c=this.defs;if(!0===A[a])throw Error(a+" is reserved");if(n.call(c,a)&&!d.weak&&!c[a].weak)throw Error("Cannot redefine method '"+a+"' in same declaration");c[a]=d}function f(a,c,d){this._cb._memberBuilder.buildProp(h(d)?this.static_members.props:this.prop_init,null,a,c,d,this.base)}function a(a,c,d,b){var e=h(b)?this.static_members.methods:this.members,m=h(b)?this.staticInstLookup:k.getMethodInstance;this._cb._memberBuilder.buildGetterSetter(e,
null,a,c,d,b,m,this.class_id,this.base)}function c(a,c,d,b){var e=h(b),m=e?this.static_members.methods:this.members,e=e?this.staticInstLookup:k.getMethodInstance;if(!0===u[a]&&(b["protected"]||b["private"]))throw TypeError(a+" must be public");this._cb._memberBuilder.buildMethod(m,null,a,c,b,e,this.class_id,this.base,this.state)&&(d?(this.abstract_methods[a]=!0,this.abstract_methods.__length++):n.call(this.abstract_methods,a)&&!1===d&&(delete this.abstract_methods[a],this.abstract_methods.__length--),
b.virtual&&(this.virtual_members[a]=!0))}function j(a,c,d,b){if(a.___$$abstract$$){if(!b&&0===d.__length)throw TypeError("Class "+(c||"(anonymous)")+" was declared as abstract, but contains no abstract members");}else if(0<d.__length)if(b)a.___$$abstract$$=!0;else throw TypeError("Class "+(c||"(anonymous)")+" contains abstract members and must therefore be declared abstract");}function h(a){return a["static"]||a["const"]?!0:!1}function v(a){var c=this,d=function(){};d.prototype=a;d=new d;a.___$$svis$$=
d;d.$=function(){c._spropInternal=!0;var d=a.$.apply(a,arguments);c._spropInternal=!1;return d}}function w(a,c,d,b){var e=c.methods,m=c.props,f=this;(c=d.___$$sinit$$)&&c(a,!0);if(!b)a.___$$sprops$$=m,p.defineSecureProp(a,"$",function(c,b){var e=!1,p=this.___$$sprops$$?this:a,v=p!==a,e=n.call(m["public"],c)&&"public";!e&&f._spropInternal&&(e=n.call(m["protected"],c)&&"protected"||!v&&n.call(m["private"],c)&&"private");if(!1===e)return(d.__cid&&d.$||k.ClassBase.$).apply(p,arguments);e=m[e][c];if(1<
arguments.length){if(e[1]["const"])throw TypeError("Cannot modify constant property '"+c+"'");e[0]=b;return p}return e[0]});p.copyTo(a,e["public"],!0);p.copyTo(a.___$$svis$$,e["protected"],!0);b||p.copyTo(a.___$$svis$$,e["private"],!0)}function x(a,c){var d=c.__cid?k.getMeta(c):void 0;a.___$$meta$$=d?p.clone(d,!0):{implemented:[]};return a.prototype.___$$meta$$=a.___$$meta$$}function o(a,c){p.defineSecureProp(a,"__iid",c)}function r(a){var c=function(){};c.prototype=a;a.___$$vis$$=new c}function g(a){var c=
function(c){return b.exports.isInstanceOf(c,a)};p.defineSecureProp(a,"isInstanceOf",c);p.defineSecureProp(a,"isA",c)}function B(a,c){var d=0<c.__length?!0:!1;p.defineSecureProp(a,"isAbstract",function(){return d})}function t(a,c){p.defineSecureProp(a,"__cid",c);p.defineSecureProp(a.prototype,"__cid",c)}function s(a,c){a.___$$final$$=!!c.___$$final$$;a.___$$abstract$$=!!c.___$$abstract$$;c.___$$final$$=c.___$$abstract$$=void 0}var k=b.exports={},p=l("./util"),q=l("./warn"),m=q.Warning,n=Object.prototype.hasOwnProperty,
z=!1===Object.prototype.propertyIsEnumerable.call({toString:function(){}},"toString")?!0:!1,A={__initProps:!0,constructor:!0},u={__construct:!0,toString:!0,__toString:!0};b.exports=k=function(a,c){if(!(this instanceof k))return new b.exports(a,c);this._memberBuilder=a;this._visFactory=c;this._instanceId=this._classId=0;this._spropInternal=this._extending=!1};k.ClassBase=function(){};p.defineSecureProp(k.ClassBase,"__cid",0);k.ClassBase.$=function(a,c){if(void 0!==c)throw ReferenceError("Cannot set value of undeclared static property '"+
a+"'");};k.getReservedMembers=function(){return p.clone(A,!0)};k.getForcedPublicMethods=function(){return p.clone(u,!0)};k.getMeta=function(a){return a.___$$meta$$||{}};k.isInstanceOf=function(a,c){return!a||!c?!1:!!(a.__isInstanceOf||e)(a,c)};k.prototype.build=function(a,c){var d=this;this._extending=!0;var b=arguments,e=b.length,f=(0<e?b[e-1]:0)||{},n=(1<e?b[e-2]:0)||k.ClassBase,o=this._getBase(n),b="",r=!1,u=this._memberBuilder.initMembers(),h=this._memberBuilder.initMembers(o),A={methods:this._memberBuilder.initMembers(),
props:this._memberBuilder.initMembers()},e=p.clone(k.getMeta(n).abstractMethods)||{__length:0};virtual_members=p.clone(k.getMeta(n).virtualMembers)||{};if(!0===n.___$$final$$)throw Error("Cannot extend final class "+(n.___$$meta$$.name||"(anonymous)"));(b=f.__name)&&delete f.__name;void 0!==(r=f.___$$auto$abstract$$)&&delete f.___$$auto$abstract$$;if(z&&f.toString!==Object.prototype.toString)f.__toString=f.toString;this._classId++;o instanceof k.ClassBase||this._discoverProtoProps(o,u);try{this.buildMembers(f,
this._classId,n,u,{all:h,"abstract":e,"static":A,virtual:virtual_members},function(){return g.___$$svis$$})}catch(l){if(l instanceof m)q.handle(l);else throw l;}o.___$$parent$$=n.prototype;var g=this.createCtor(b,e,h);v(g);var y=function(a,c){w(a,A,n,c)};y(g,!1);this._attachPropInit(o,u,h,g,this._classId);g.prototype=o;g.prototype.constructor=g;g.___$$props$$=u;g.___$$methods$$=h;g.___$$sinit$$=y;s(g,f);j(g,b,e,r);p.defineSecureProp(o,"__self",g.___$$svis$$);f=x(g,n);f.abstractMethods=e;f.virtualMembers=
virtual_members;f.name=b;B(g,e);t(g,this._classId);g.asPrototype=function(){d._extending=!0;var a=g();d._extending=!1;return a};this._extending=!1;return g};k.prototype._getBase=function(a){switch(typeof a){case "function":return new a;case "object":return a}throw TypeError("Must extend from Class, constructor or object");};k.prototype._discoverProtoProps=function(a,c){var d=Object.hasOwnProperty,b;for(b in a){var e=a[b];d.call(a,b)&&"function"!==typeof e&&this._memberBuilder.buildProp(c,null,b,e,
{})}};k.prototype.buildMembers=function(b,e,k,m,n,v){var z={_cb:this,prop_init:m,class_id:e,base:k,staticInstLookup:v,defs:{},state:{},members:n.all,abstract_methods:n["abstract"],static_members:n["static"],virtual_members:n.virtual},q={each:d,property:f,getset:a,method:c};if(b.___$$parser$$){var j=b.___$$parser$$;delete b.___$$parser$$;e=function(a,c){q[a]=function(){for(var d=[],b=arguments.length;b--;)d[b]=arguments[b];d.push(c);j[a].apply(z,d)}};j.each&&e("each",q.each);j.property&&e("property",
q.property);j.getset&&e("getset",q.getset);j.method&&e("method",q.method)}p.propParse(b,q,z);this._memberBuilder.end(z.state)};k.prototype.createCtor=function(a,c,d){return 0===c.__length?this.createConcreteCtor(a,d):this.createAbstractCtor(a)};k.prototype.createConcreteCtor=function(a,c){function d(){if(!(this instanceof d))return b=arguments,new d;r(this);this.__initProps();if(!e._extending&&(o(this,++e._instanceId),"function"===typeof this.___$$tctor$$&&this.___$$tctor$$.call(this),"function"===
typeof this.__construct&&this.__construct.apply(this,b||arguments),b=null,g(this),!n.call(c["public"],"toString")))this.toString=c["public"].__toString||(a?function(){return"#<"+a+">"}:function(){return"#<anonymous>"})}var b=null,e=this;d.toString=a?function(){return a}:function(){return"(Class)"};return d};k.prototype.createAbstractCtor=function(a){var c=this,d=function(){if(!c._extending)throw Error("Abstract class "+(a||"(anonymous)")+" cannot be instantiated");};d.toString=a?function(){return a}:
function(){return"(AbstractClass)"};return d};k.prototype._attachPropInit=function(a,c,d,b,e){var k=this;p.defineSecureProp(a,"__initProps",function(b){var b=!!b,m=a.___$$parent$$,m=m&&m.__initProps;"function"===typeof m&&m.call(this,!0);m=k._visFactory.createPropProxy(this,this.___$$vis$$,c["public"]);m=this.___$$vis$$[e]=k._visFactory.setup(m,c,d);b||p.defineSecureProp(m,"__inst",this)})};k.getMethodInstance=function(a,c){var d=a.___$$vis$$;return a.__iid&&d?d[c]:null}})(g.ClassBuilder={},".");
(function(b){var e=b.exports={};b.exports=e=function(d){if(!(this instanceof e))return new b.exports(d);this._factory=d};e.prototype.wrapMethod=function(d,b,a,c,e,h){return this._factory(d,b,a,c,e,h)}})(g.MethodWrapperFactory={},".");(function(b){(b.exports={}).standard={wrapOverride:function(b,d,f,a){return function(){var c=a(this,f)||this,j=void 0,h=c.__super;c.__super=d;j=b.apply(c,arguments);c.__super=h;return j===c?this:j}},wrapNew:function(b,d,f,a){return function(){var c=a(this,f)||this,d=
void 0,d=b.apply(c,arguments);return d===c?this:d}},wrapProxy:function(b,d,f,a,c,j){var h=j&&j["static"],d=function(){var d=a(this,f)||this,j=void 0,d=h?d.$(b):d[b];if(!(null!==d&&"object"===typeof d&&"function"===typeof d[c]))throw TypeError("Unable to proxy "+c+"() call to '"+b+"'; '"+b+"' is undefined or '"+c+"' is not a function.");j=d[c].apply(d,arguments);return j===d?this:j};d.__length=NaN;return d}}})(g.MethodWrappers={},".");(function(b){function e(a){return function(){return this.___$$super$$.prototype[a].apply(this.___$$pmo$$,
arguments)}}function d(a,c,d){if(c["private"])return(c["public"]||c["protected"])&&f(d),a["private"];if(c["protected"])return(c["public"]||c["private"])&&f(d),a["protected"];(c["private"]||c["protected"])&&f(d);return a["public"]}function f(a){throw TypeError("Only one access modifier may be used for definition of '"+a+"'");}function a(c,d,b){for(var e=h.length,f=null;e--;)if(f=j.getPropertyDescriptor(c[h[e]],d,!0))return{get:f.get,set:f.set,member:f.value};return void 0!==b?(c=b.___$$methods$$,e=
b.___$$props$$,b=((b.prototype||{}).___$$parent$$||{}).constructor,c&&a(c,d,b)||e&&a(e,d,b)||null):null}var c=b.exports={},j=l("./util");l("./warn");var h=["public","protected","private"];b.exports=function(a,c,d,e){if(!(this instanceof b.exports))return new b.exports(a,c,d,e);this._wrapMethod=a;this._wrapOverride=c;this._wrapProxy=d;this._validate=e};c=b.exports.prototype;c.initMembers=function(a,c,d){return{"public":a||{},"protected":c||{},"private":d||{}}};c.buildMethod=function(c,b,f,j,h,g,l,
t,s){var k=this._methodKeywordDefaults,k=(b=(t=a(c,f,t))?t.member:null)&&(b.___$$keywords$$||k),c=d(c,h,f);this._validate.validateMethod(f,j,h,t,k,s);if(h.proxy&&(!b||!h.weak))c[f]=this._createProxy(j,g,l,f,h);else if(b){if(h.weak&&!k["abstract"])return!1;if(h.override||k["abstract"])s=h["abstract"]?e(f):b,c[f]=this._overrideMethod(s,j,g,l);else throw Error("Method hiding not yet implemented (we should never get here; bug).");}else c[f]=h["abstract"]||h["private"]?j:this._overrideMethod(null,j,g,
l);c[f].___$$keywords$$=h;return!0};c._methodKeywordDefaults={virtual:!0};c.buildProp=function(c,b,e,f,j,h){h=(b=a(c,e,h))?b.member:null;this._validate.validateProperty(e,f,j,b,h?h[1]:null);d(c,j,e)[e]=[f,j]};c.buildGetterSetter=function(c,b,e,f,j,h,g,l,s){b=a(c,e,s);this._validate.validateGetterSetter(e,{},h,b,b&&b.get?b.get.___$$keywords$$:null);if(f)f=this._overrideMethod(null,f,g,l),f.___$$keywords$$=h;Object.defineProperty(d(c,h,e),e,{get:f,set:j?this._overrideMethod(null,j,g,l):j,enumerable:!0,
configurable:!1})};c._createProxy=function(a,c,d,b,e){return this._wrapProxy.wrapMethod(a,null,d,c,b,e)};c._overrideMethod=function(a,c,d,b){var e=null,e=(a?this._wrapOverride:this._wrapMethod).wrapMethod(c,a,b,d||function(){});j.defineSecureProp(e,"__length",c.__length||c.length);return e};c._getVisibilityValue=function(a){return a["protected"]?1:a["private"]?2:0};c.end=function(a){this._validate&&this._validate.end(a)}})(g.MemberBuilder={},".");(function(b){var e=b.exports={};b.exports=e=function(d){if(!(this instanceof
b.exports))return new b.exports(d);this._warningHandler=d||function(){}};e.prototype._initState=function(d){if(d.__vready)return d;d.warn={};d.__vready=!0;return d};e.prototype.end=function(d){for(var b in d.warn){var a=d.warn[b],c;for(c in a)this._warningHandler(a[c])}d.__vready=!1};e.prototype.validateMethod=function(d,b,a,c,e,h){this._initState(h);var g=c?c.member:null;if(a["abstract"]&&a["private"])throw TypeError("Method '"+d+"' cannot be both private and abstract");if(a["const"])throw TypeError("Cannot declare method '"+
d+"' as constant; keyword is redundant");if(a.virtual&&a["static"])throw TypeError("Cannot declare static method '"+d+"' as virtual");if(c&&(c.get||c.set))throw TypeError("Cannot override getter/setter '"+d+"' with method");if(a.proxy){if("string"!==typeof b)throw TypeError("Cannot declare proxy method '"+d+"'; string value expected");if(a["abstract"])throw TypeError("Proxy method '"+d+"' cannot be abstract");}if(g){if(e["private"])throw TypeError("Private member name '"+d+"' conflicts with supertype");
if("function"!==typeof g)throw TypeError("Cannot override property '"+d+"' with method");if(a.override&&!e.virtual){if(!a["abstract"])throw TypeError("Cannot override non-virtual method '"+d+"'");if(!e["abstract"])throw TypeError("Cannot perform abstract override on non-abstract method '"+d+"'");}if(a["abstract"]&&!a.weak&&!e["abstract"])throw TypeError("Cannot override concrete method '"+d+"' with abstract method");c=void 0===g.__length?g.length:g.__length;b=void 0===b.__length?b.length:b.__length;
a.proxy&&(b=NaN);a.weak&&!e["abstract"]&&(g=c,c=b,b=g);if(b<c)throw TypeError("Declaration of method '"+d+"' must be compatible with that of its supertype");if(this._getVisibilityValue(e)<this._getVisibilityValue(a))throw TypeError("Cannot de-escalate visibility of method '"+d+"'");if(!a.override&&!e["abstract"]&&!a.weak)throw TypeError("Attempting to override method '"+d+"' without 'override' keyword");a.weak&&e.override&&delete (h.warn[d]||{}).no}else if(a.override)(h.warn[d]=h.warn[d]||{}).no=
Error("Method '"+d+"' using 'override' keyword without super method")};e.prototype.validateProperty=function(b,e,a,c,j){if(e=c?c.member:null){if(j["private"])throw TypeError("Private member name '"+b+"' conflicts with supertype");if("function"===typeof e)throw new TypeError("Cannot override method '"+b+"' with property");if(this._getVisibilityValue(j)<this._getVisibilityValue(a))throw TypeError("Cannot de-escalate visibility of property '"+b+"'");}if(c&&(c.get||c.set))throw TypeError("Cannot override getter/setter '"+
b+"' with property");if(a["abstract"])throw TypeError("Property '"+b+"' cannot be declared as abstract");if(a["static"]&&a["const"])throw TypeError("Static keyword cannot be used with const for property '"+b+"'");if(a.virtual)throw TypeError("Cannot declare property '"+b+"' as virtual");};e.prototype.validateGetterSetter=function(b,e,a,c,j){e=c?c.member:null;c=c&&(c.get||c.set)?!0:!1;if(a["abstract"])throw TypeError("Cannot declare getter/setter '"+b+"' as abstract");if(a["const"])throw TypeError("Cannot declare const getter/setter '"+
b+"'");if(a.virtual&&a["static"])throw TypeError("Cannot declare static method '"+b+"' as virtual");if(e||c){if(j&&j["private"])throw TypeError("Private member name '"+b+"' conflicts with supertype");if(!c)throw TypeError("Cannot override method or property '"+b+"' with getter/setter");if(!j||!j.virtual)throw TypeError("Cannot override non-virtual getter/setter '"+b+"'");if(!a.override)throw TypeError("Attempting to override getter/setter '"+b+"' without 'override' keyword");if(this._getVisibilityValue(j||
{})<this._getVisibilityValue(a))throw TypeError("Cannot de-escalate visibility of getter/setter '"+b+"'");}else a.override&&this._warningHandler(Error("Getter/setter '"+b+"' using 'override' keyword without super getter/setter"))};e.prototype._getVisibilityValue=function(b){return b["protected"]?1:b["private"]?2:0}})(g.MemberBuilderValidator={},".");(function(b){var e=b.exports={},d=l("./util");b.exports=e=function(){if(!(this instanceof e))return new b.exports};e.prototype.setup=function(b,a,c){var d=
this._createPrivateLayer(b,a);this._doSetup(b,a["public"]);this._doSetup(b,a["protected"],c["protected"],!0);this._doSetup(d,a["private"],c["private"]);return d};e.prototype._createPrivateLayer=function(b,a){var c=function(){};c.prototype=b;c=new c;this.createPropProxy(b,c,a["protected"]);return c};e.prototype._doSetup=function(b,a,c,e){var h=Array.prototype.hasOwnProperty;if(void 0!==c)for(var g in c)if(h.call(c,g)){var l=b[g],x=l&&l.___$$keywords$$;if(!e||void 0===l||x["private"]||x["protected"])b[g]=
c[g]}for(var o in a)h.call(a,o)&&(b[o]=d.clone(a[o][0]))};e.prototype.createPropProxy=function(b,a,c){var d=Object.prototype.hasOwnProperty,e;for(e in c)d.call(c,e)&&function(c){a[c]=void 0;Object.defineProperty(a,c,{set:function(a){b[c]=a},get:function(){return b[c]},enumerable:!0})}.call(null,e);return a}})(g.VisibilityObjectFactory={},".");(function(b){var e=b.exports={};b.exports=e=function(){if(!(this instanceof e))return new b.exports};e.prototype=l("./VisibilityObjectFactory")();e.prototype._createPrivateLayer=
function(b){return b};e.prototype.createPropProxy=function(b){return b}})(g.FallbackVisibilityObjectFactory={},".");(function(b){var b=b.exports={},e=l("./util"),d=l("./VisibilityObjectFactory"),f=l("./FallbackVisibilityObjectFactory");b.fromEnvironment=function(){return e.definePropertyFallback()?f():d()}})(g.VisibilityObjectFactoryFactory={},".");(function(b){function e(a){if(1<arguments.length)throw Error("Expecting one argument for anonymous Class definition; "+arguments.length+" given.");return h(a)}
function d(a,c){if(2<arguments.length)throw Error("Expecting at most two arguments for definition of named Class '"+a+"'; "+arguments.length+" given.");if(void 0===c)return f(a);if("object"!==typeof c)throw TypeError("Unexpected value for definition of named Class '"+a+"'; object expected");c.__name=a;return h(c)}function f(b){return{extend:function(){for(var a=[],c=arguments.length;c--;)a[c]=arguments[c];a[a.length-1].__name=b;return h.apply(null,a)},implement:function(){for(var c=[],d=arguments.length;d--;)c[d]=
arguments[d];return a(null,c,b)},use:function(){for(var a=[],b=arguments.length;b--;)a[b]=arguments[b];return c(p,a)}}}function a(a,b,d){var e={extend:function(){var c=arguments.length,e=arguments[c-1],k=1<c?arguments[c-2]:null;if(2<c)throw Error("Expecting no more than two arguments for extend()");if(a&&k)throw Error("Cannot override parent "+a.toString()+" with "+k.toString()+" via extend()");if(d)e.__name=d;b.push(a||k||h({}));return h.call(null,q.apply(this,b),e)},use:function(){for(var a=[],
b=arguments.length;b--;)a[b]=arguments[b];return c(function(){return e.__createBase()},a)},__createBase:function(){return e.extend({})}};return e}function c(a,b,d){var e=function(){if(!d)throw TypeError("Cannot instantiate incomplete class definition; did you forget to call `extend'?");return j(a(),b).apply(null,arguments)};e.extend=function(){var c=arguments.length,d=arguments[c-1],c=1<c?arguments[c-2]:null,e=a();return h.call(null,j(e||c,b),d)};e.use=function(){for(var a=[],b=arguments.length;b--;)a[b]=
arguments[b];return c(function(){return e.__createBase()},a,d)};e.__createBase=function(){return e.extend({})};return e}function j(a,c){for(var b={___$$auto$abstract$$:!0},d=[],e=0,k=c.length;e<k;e++)c[e].__mixin(b,d,a||r.ClassBase);b=h.call(null,a,b);d=r.getMeta(b).implemented;e=0;for(k=c.length;e<k;e++)d.push(c[e]),c[e].__mixinImpl(d);return b}function h(a,c){for(var b=[],d=arguments.length;d--;)b[d]=arguments[d];b=k.build.apply(k,b);g(b);w(b);x(b);o.freeze(b);return b}function g(a){o.defineSecureProp(a,
"extend",function(a){return h(this,a)})}function w(b){o.defineSecureProp(b,"implement",function(){for(var c=[],d=arguments.length;d--;)c[d]=arguments[d];return a(b,c)})}function x(a){o.defineSecureProp(a,"use",function(){for(var b=[],d=arguments.length;d--;)b[d]=arguments[d];return c(function(){return a},b,!0)})}b.exports={};var o=l("./util"),r=l("./ClassBuilder"),y=l("./warn"),B=y.Warning,t=l("./MethodWrapperFactory"),s=l("./MethodWrappers").standard,k=r(l("./MemberBuilder")(t(s.wrapNew),t(s.wrapOverride),
t(s.wrapProxy),l("./MemberBuilderValidator")(function(a){y.handle(B(a))})),l("./VisibilityObjectFactoryFactory").fromEnvironment()),p=function(){return null};b.exports=function(a,b){for(var c=typeof a,k=null,k=[],f=arguments.length;f--;)k[f]=arguments[f];switch(c){case "object":k=e.apply(null,k);break;case "string":k=d.apply(null,k);break;default:throw TypeError("Expecting anonymous class definition or named class definition");}return k};b.exports.extend=h;b.exports.implement=function(b){return a(null,
Array.prototype.slice.call(arguments))};b.exports.use=function(a){for(var b=[],d=arguments.length;d--;)b[d]=arguments[d];return c(p,b)};b.exports.isClass=function(a){a=a||{};return a.prototype instanceof r.ClassBase?!0:!1};b.exports.isClassInstance=function(a){a=a||{};return a instanceof r.ClassBase?!0:!1};b.exports.isInstanceOf=r.isInstanceOf;b.exports.isA=b.exports.isInstanceOf;var q=function(a,c){for(var d=arguments.length,e={},k=arguments[d-1],f=null,p=[],q=!1,h=0;h<d-1;h++)f=arguments[h],o.propParse(f.prototype,
{method:function(a,b){e["abstract "+a]=b.definition;q=!0}}),p.push(f);if(q)e.___$$abstract$$=!0;d=b.exports.extend(k,e);r.getMeta(d).implemented=p;return d}})(g["class"]={},".");(function(b){function e(a){if("object"===typeof a)a.___$$abstract$$=!0}function d(a){var b=a.extend,f=a.implement,g=a.use;f&&(a.implement=function(){return d(f.apply(this,arguments))});g&&(a.use=function(){return d(g.apply(this,arguments))});a.extend=function(){e(arguments[arguments.length-1]);return b.apply(this,arguments)};
a.__createBase=function(){return b({___$$auto$abstract$$:!0})};return a}var f=b.exports={},a=l("./class");b.exports=f=function(){e(arguments[arguments.length-1]);var b=a.apply(this,arguments);a.isClass(b)||d(b);return b};f.extend=function(){e(arguments[arguments.length-1]);return a.extend.apply(this,arguments)};f.use=function(){return d(a.use.apply(this,arguments))};f.implement=function(){return d(a.implement.apply(this,arguments))}})(g.class_abstract={},".");(function(b){function e(){}function d(a){if(1<
arguments.length)throw Error("Expecting one argument for Interface definition; "+arguments.length+" given.");return s(a)}function f(a,b){if(2<arguments.length)throw Error("Expecting two arguments for definition of named Interface '"+a+"'; "+arguments.length+" given.");if("object"!==typeof b)throw TypeError("Unexpected value for definition of named Interface '"+a+"'; object expected");b.__name=a;return s(b)}function a(a,b){b.message="Failed to define interface "+(a?a:"(anonymous)")+": "+b.message;
throw b;}function c(a){o.defineSecureProp(a,"extend",function(a){return s(this,a)})}function g(a,b){a.toString=b?function(){return"[object Interface <"+b+">]"}:function(){return"[object Interface]"}}function h(a){o.defineSecureProp(a,"isCompatible",function(b){return 0===v(a,b).length})}function v(a,b){var c=[];o.propParse(a.prototype,{method:function(a,d){"function"!==typeof b[a]?c.push([a,"missing"]):b[a].length<d.__length&&c.push([a,"incompatible"])}});return c}function w(a){o.defineSecureProp(a,
"__isInstanceOf",function(a,b){return x(a,b)})}function x(a,b){if(!b.__cid||!(meta=t.getMeta(b)))return!1;implemented=meta.implemented;for(i=implemented.length;i--;)if(implemented[i]===a)return!0;return!1}b.exports={};var o=l("./util"),r=l("./MethodWrapperFactory"),y=l("./MethodWrappers").standard,B=l("./MemberBuilder")(r(y.wrapNew),r(y.wrapOverride),r(y.wrapProxy),l("./MemberBuilderValidator")());l("./class");var t=l("./ClassBuilder");b.exports=function(a,b){var c=null;switch(typeof a){case "object":c=
d.apply(null,arguments);break;case "string":c=f.apply(null,arguments);break;default:throw TypeError("Expecting anonymous interface definition or named interface definition");}return c};b.exports.extend=function(){return s.apply(this,arguments)};b.exports.isInterface=function(a){a=a||{};return a.prototype instanceof e?!0:!1};var s=function(b){function d(a){return function(){if(!b)throw Error("Interface "+(a?a+" ":"")+" cannot be instantiated");}}return function(){b=!0;var f=arguments,m=f.length,n=
(0<m?f[m-1]:0)||{},f=new ((1<m?f[m-2]:0)||e),l="",r={},u=B.initMembers(f,f,f);(l=n.__name)&&delete n.__name;if(!(f instanceof e))throw new TypeError("Interfaces may only extend other interfaces");m=d(l);o.propParse(n,{assumeAbstract:!0,_throw:function(b){a(l,b)},property:function(){a(l,TypeError("Unexpected internal error"))},getset:function(){a(l,TypeError("Unexpected internal error"))},method:function(b,c,d,e){(e["protected"]||e["private"])&&a(l,TypeError("Member "+b+" must be public"));B.buildMethod(u,
null,b,c,e,null,0,{},r)}});c(m);g(m,l);h(m);w(m);m.prototype=f;m.constructor=m;o.freeze(m);b=!1;return m}}(!1);b.exports.isInstanceOf=x})(g["interface"]={},".");(function(b){function e(){switch(arguments.length){case 0:throw Error("Missing trait name or definition");case 1:return"string"===typeof arguments[0]?f.apply(this,arguments):e.extend.apply(this,arguments);case 2:return d.apply(this,arguments)}throw Error("Expecting at most two arguments for definition of named Trait "+name+"'; "+arguments.length+
" given");}function d(a,b){if("string"!==typeof a)throw Error("First argument of named class definition must be a string");b.__name=a;return e.extend(b)}function f(a){return{extend:function(b){return d(a,b)},implement:function(){return h(arguments,a)}}}function a(a,b,c,d){if("__construct"===a)throw Error("Traits may not define __construct");if(c["static"])throw Error("Cannot define member `"+a+"'; static trait members are currently unsupported");d.apply(this,arguments)}function c(a,b,c,d){if("___"!==
a.substr(0,3)){if(!c["private"])throw Error("Cannot define property `"+a+"'; only private properties are permitted within Trait definitions");d.apply(this,arguments)}}function g(a){throw Error("Cannot define property `"+a+"'; getters/setters are currently unsupported");}function h(a,b){return{extend:function(c){if(b)c.__name=b;return e.extend.call({__$$meta:{ifaces:a}},c)}}}function v(a){var b={"protected ___$$pmo$$":null,"protected ___$$super$$":null,__construct:function(a,b){this.___$$super$$=a;
this.___$$pmo$$=b},__name:"#ConcreteTrait#"},c=t.getMeta(a).abstractMethods,d;for(d in c)Object.hasOwnProperty.call(c,d)&&"__"!==d.substr(0,2)&&(b[(void 0!==a.___$$methods$$["public"][d]?"public":"protected")+" proxy "+d]="___$$pmo$$");w(a,b);return a.extend(b)}function w(a,b){var c=t.getMeta(a).virtualMembers,d;for(d in c){var e=void 0!==a.___$$methods$$["public"][d]?"public":"protected";b[e+" virtual override "+d]=function(){return function(){var a=this.___$$pmo$$,b=a[d];return b?b.apply(a,arguments):
this.__super.apply(this,arguments)}}(d);b[e+" virtual __$$"+d]=function(a){return function(){return this.___$$parent$$[a].apply(this,arguments)}}(d)}}function x(a,b,c){a=a.___$$methods$$;o(a["public"],b,"public",c);o(a["protected"],b,"protected",c);(a=a["public"].___$$parent$$)&&a.constructor!==t.ClassBase&&x(a.constructor,b,c)}function o(a,b,c,d){for(var e in a)if(Object.hasOwnProperty.call(a,e)&&a[e].___$$keywords$$){var f=a[e].___$$keywords$$,c=f["protected"]?"protected":"public";if(f["abstract"]&&
!f.override)b[c+" weak abstract "+e]=a[e].definition;else{var g=f.virtual,c=(g?"":"proxy ")+(g?"virtual ":"")+(f.override?"override ":"")+c+" "+e;if(void 0!==b[c])throw Error("Trait member conflict: `"+e+"'");b[c]=f.virtual?function(a){return function(){var b=this[d],c=b["__$$"+a].apply(b,arguments);return c===b?this:c}}(e):d}}}function r(a,b,c,d){var e="___$to$"+a.__acls.__cid+"$"+d.__cid;c.push([e,a]);b["private "+e]=null;void 0===b.___$$tctor$$&&(b["weak virtual ___$$tctor$$"]=function(){},b["virtual override ___$$tctor$$"]=
y(c,d));return e}function y(a,b){return function(){for(var c in a){var d=a[c][0],e=a[c][1],e=e.__ccls||(e.__ccls=v(e.__acls));this[d]=e(b,this.___$$vis$$).___$$vis$$}this.__super&&this.__super()}}b.exports={};var B=l("./class_abstract"),t=l("./ClassBuilder"),s=l("./interface");e.extend=function(b){function d(){throw Error("Cannot instantiate trait");}var e=this.__$$meta||{},f=b.__name||"(Trait)";b.___$$parser$$={each:a,property:c,getset:g};b.___$$auto$abstract$$=!0;b.__name="#AbstractTrait#";var h=
B;e.ifaces&&(h=h.implement.apply(null,e.ifaces));var l=h.extend(b);d.__trait=!0;d.__acls=l;d.__ccls=null;d.toString=function(){return""+f};d.__mixin=function(a,b,c){var e=d.__acls,b=r(d,a,b,c);x(e,a,b)};d.__mixinImpl=function(a){for(var b=t.getMeta(l).implemented||[],c=b.length;c--;)a.push(b[c])};d.__isInstanceOf=s.isInstanceOf;return d};e.implement=function(){return h(arguments)};e.isTrait=function(a){return!!(a||{}).__trait};b.exports=e})(g.Trait={},".");(function(b){function e(a){if("object"===
typeof a)a.___$$final$$=!0}function d(a){var b=a.extend;a.extend=function(){e(arguments[arguments.length-1]);return b.apply(this,arguments)}}var f=b.exports={},a=l("./class"),f=b.exports=function(){e(arguments[arguments.length-1]);var b=a.apply(this,arguments);a.isClass(b)||d(b);return b};f.extend=function(){e(arguments[arguments.length-1]);return a.extend.apply(this,arguments)}})(g.class_final={},".");(function(b){var e=b.exports={},d=l("./MemberBuilder");b.exports=e=function(d,a){if(!(this instanceof
b.exports))return new b.exports(d,a);b.exports.prototype.constructor.call(this,d,a)};b.exports.prototype=new d;b.exports.constructor=b.exports;e.prototype.buildGetterSetter=function(){throw Error("Getters/setters are unsupported in this environment");}})(g.FallbackMemberBuilder={},".");(function(b){b.exports={};var e=[0,2,2,""];e.major=0;e.minor=2;e.rev=2;e.suffix="";e.toString=function(){return this.join(".").replace(/\.([^.]*)$/,"-$1").replace(/-$/,"")};b.exports=e})(g.version={},".");C.Class=g["class"].exports;
C.AbstractClass=g.class_abstract.exports;C.FinalClass=g.class_final.exports;C.Interface=g["interface"].exports;C.Trait=g.Trait.exports;C.version=g.version.exports})(easejs);