String.prototype.namespace=function(A){this.split(A||".").inject(window,function(B,C){return B[C]=B[C]||{}
})
};
String.prototype.trim=function(){return(this.replace(/^[\s\xA0]+/,"").replace(/[\s\xA0]+$/,""))
};
String.prototype.hashCode=-1;
String.prototype.hash=Hashable.prototype.hash;
String.prototype.equals=Hashable.prototype.equals;
Number.prototype.hashCode=-1;
Number.prototype.hash=Hashable.prototype.hash;
Number.prototype.equals=Hashable.prototype.equals;
if(!Array.prototype.forEach){Array.prototype.forEach=function(B){var A=this.length;
if(typeof B!="function"){throw new TypeError()
}var D=arguments[1];
for(var C=0;
C<A;
C++){if(C in this&&this[C]){B.call(D,this[C],C,this)
}}}
}Number.prototype.superToString=Number.prototype.toString;
Number.prototype.toString=function(){var A=Number.prototype.superToString.apply(this,arguments);
return A.replace(".",",")
};
String.prototype.toString=function(){return this
};
String.prototype.toNumber=function(){return parseFloat(this.replace(",","."))
};
String.prototype.replaceAll=function(C,D){var A=this;
var B=A.indexOf(C);
while(B!=-1){A=A.replace(C,D);
B=A.indexOf(C)
}return A
};
function sleep(C){var B=new Date();
var A=null;
do{A=new Date()
}while(A-B<C)
};
