bind={};var library={version:"4.0",defineProperties:Object.defineProperties||function(obj,properties){function convertToDescriptor(desc){function hasProperty(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop)}function isCallable(v){return typeof v==="function"}if(typeof desc!=="object"||desc===null)throw new TypeError("bad desc");var d={};if(hasProperty(desc,"enumerable"))d.enumerable=!!obj.enumerable;if(hasProperty(desc,"configurable"))d.configurable=!!obj.configurable;if(hasProperty(desc,"value"))d.value=obj.value;if(hasProperty(desc,"writable"))d.writable=!!desc.writable;if(hasProperty(desc,"get")){var g=desc.get;if(!isCallable(g)&&typeof g!=="undefined")throw new TypeError("bad get");d.get=g}if(hasProperty(desc,"set")){var s=desc.set;if(!isCallable(s)&&typeof s!=="undefined")throw new TypeError("bad set");d.set=s}if(("get"in d||"set"in d)&&("value"in d||"writable"in d))throw new TypeError("identity-confused descriptor");return d}if(typeof obj!=="object"||obj===null)throw new TypeError("bad obj");properties=Object(properties);var keys=Object.keys(properties);var descs=[];for(var i=0;i>>0;for(var i=from<0?Math.max(0,length+from):from||0;i