!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,e.ArrayKeys=t()}}(function(){return function t(e,i,r){function n(s,f){if(!i[s]){if(!e[s]){var h="function"==typeof require&&require;if(!f&&h)return h(s,!0);if(o)return o(s,!0);var u=new Error("Cannot find module '"+s+"'");throw u.code="MODULE_NOT_FOUND",u}var d=i[s]={exports:{}};e[s][0].call(d.exports,function(t){var i=e[s][1][t];return n(i?i:t)},d,d.exports,t,e,i,r)}return i[s].exports}for(var o="function"==typeof require&&require,s=0;s=0;e-=1)t[t.length]=this._store[e][this._identifier];return t},r.prototype.getRecord=function(t){for(var e=this._store.length-1;e>=0;e-=1)if(this._store[e][this._identifier]===t)return this._store[e]},r.prototype.exists=function(t){return this.getIndex(t)>=0},r.prototype.getIndex=function(t){for(var e=this._idx.length-1;e>=0;e-=1)if(this._idx[e]===t)return e;return-1},r.prototype.addRecord=function(t){if("object"!=typeof t)throw new Error("cannot add non-object records.");if(!t[this._identifier])throw new Error("cannot add a record with no `"+this._identifier+"` property specified.");var e=this.removeRecord(t[this._identifier],!0);return this._idx[this._idx.length]=t[this._identifier],this._store[this._store.length]=t,setTimeout(function(){e?setTimeout(this.emitEvent.bind(this,"update",t),0):setTimeout(this.emitEvent.bind(this,"add",t),0)}.bind(this),0),!0},r.prototype.removeRecord=function(t,e){var i=this.getIndex(t);if(i<0)return!1;for(var r=i;r>=0;r-=1)if(this._store[r]&&this._store[r][this._identifier]===t)return this._store.splice(r,1),this._idx.splice(i,1),setTimeout(this.emitEvent.bind(this,"remove",t,e),0),!0;for(var n=this._store.length-1;n>=i;n-=1)if(this._store[n]&&this._store[n][this._identifier]===t)return this._store.splice(n,1),this._idx.splice(i,1),setTimeout(this.emitEvent.bind(this,"remove",t,e),0),!0;return!1},r.prototype.forEachRecord=function(t){var e=0,i=this,r=function(){};return setTimeout(function(){for(var n=i._store.length-1;n>=0;n-=1)e+=1,setTimeout(t.bind(null,i._store[n],n),0);setTimeout(r.bind(null,e),0)},0),{finally:function(t){r=t}}},r.prototype.mapRecords=function(t){for(var e=0,i=this,r=[],n=i._store.length-1;n>=0;n-=1)e+=1,r.push(t(i._store[n],n));return r},r.prototype.getCount=function(){return this._store.length},r.prototype.removeAll=function(){for(var t=this._store.length-1;t>=0;t-=1)delete this._store[t];this._store=[]},e.exports=r},{"tiny-emitter":2}],2:[function(t,e,i){function r(){}r.prototype={on:function(t,e,i){var r=this.e||(this.e={});return(r[t]||(r[t]=[])).push({fn:e,ctx:i}),this},once:function(t,e,i){function r(){n.off(t,r),e.apply(i,arguments)}var n=this;return r._=e,this.on(t,r,i)},emit:function(t){var e=[].slice.call(arguments,1),i=((this.e||(this.e={}))[t]||[]).slice(),r=0,n=i.length;for(r;r