(function(n){n([],function(){"use strict";var n=["fn","_dl","mixin","prototype","constructor","staticin","extend"],t=!1,i=function(n){if("function"!=typeof n)throw Error('Illegal argument. "init" must be a function.');return!0},e=function(t,e,r){var u=r?r:{},o=u.include?RegExp(u.include):RegExp(".*"),f=u.exclude?RegExp(u.exclude):null;for(var c in e)if(c.match(o)&&!c.match(f)){if(-1!==n.indexOf(c))throw Error('Cannot use key "'+c+'". This is reserved derective.');("init"!==c||i(e[c]))&&(t[c]=e[c])}return t},r=function(n,r,u){var o=function(){};return o.extend=function(n,r,u){var o,f,c=function(){t||this.init.apply(this,arguments)};if(u&&"function"!=typeof u)throw Error("invalid constructor.");return f=u?u:this,t=!0,c.fn=c.prototype=new f,o=f.prototype,c.fn._dl=function(n){var t=this;return o[n]&&"function"==typeof o[n]?function(){return o[n].apply(t,arguments)}:function(){}},t=!1,c.extend=this.extend,c.mixin=function(n,t){return e(c.fn,n,t),c},c.staticin=function(n,t){return e(c,n,t)},n&&c.mixin(n),r&&c.staticin(r),c.fn.init?i(c.fn.init):c.fn.init=function(){},c},o.extend(n,r,u)},u=function(n,t){return r(n,t)};return u.wrap=function(n){return r(null,null,n)},u})})("undefined"!=typeof define?define:"undefined"!=typeof module?function(n,t){module.exports=t()}:function(n,t){this.Clazz=t()});