(function(){var e=function(e){var t=this;e.require().script("mvc/lang.string").done(function(){var n=function(){var t=!1,n=e.makeArray,r=e.isFunction,i=e.isArray,s=e.extend,o=e.String.getObject,u=function(e,t){return e.concat(n(t))},a=/xyz/.test(function(){xyz})?/\b_super\b/:/.*/,f=function(e,t,n){n=n||e;for(var i in e)n[i]=r(e[i])&&r(t[i])&&a.test(e[i])?function(e,n){return function(){var r=this._super,i;return this._super=t[e],i=n.apply(this,arguments),this._super=r,i}}(i,e[i]):e[i]},l="prototype";clss=e.Class=function(){arguments.length&&clss.extend.apply(clss,arguments)},s(clss,{proxy:function(e){var t=n(arguments),r;return e=t.shift(),i(e)||(e=[e]),r=this,function(){var s=u(t,arguments),o,a=e.length,f=0,l;for(;f<a;f++){l=e[f];if(!l)continue;o=typeof l=="string",o&&r._set_called&&(r.called=l),s=(o?r[l]:l).apply(r,s||[]),f<a-1&&(s=!i(s)||s._use_call?[s]:s)}return s}},newInstance:function(){var e=this.rawInstance(),t;return e.setup&&(t=e.setup.apply(e,arguments)),e.init&&e.init.apply(e,i(t)?t:arguments),e},setup:function(e,t){return this.defaults=s(!0,{},e.defaults,this.defaults),arguments},rawInstance:function(){t=!0;var e=new this;return t=!1,e},extend:function(e,n,r){function v(){if(t)return;return this.constructor!==v&&arguments.length?arguments.callee.extend.apply(arguments.callee,arguments):this.Class.newInstance.apply(this.Class,arguments)}typeof e!="string"&&(r=n,n=e,e=null),r||(r=n,n=null),r=r||{};var i=this,a=this[l],c,h,p,d;t=!0,d=new this,t=!1,f(r,a,d);for(c in this)this.hasOwnProperty(c)&&(v[c]=this[c]);f(n,this,v);if(e){var m=e.split(/\./),h=m.pop(),g=o(m.join("."),window,!0),p=g;s(!0,v,g[h]),g[h]=v}s(v,{prototype:d,namespace:p,shortName:h,constructor:v,fullName:e}),v[l].Class=v[l].constructor=v;var y=v.setup.apply(v,u([i],arguments));return v.init&&v.init.apply(v,y||u([i],arguments)),v}}),clss.callback=clss[l].callback=clss[l].proxy=clss.proxy};n(),t.resolveWith(n)})};dispatch("mvc/class").containing(e).to("Foundry/2.1 Modules")})();