!function e(t,r,n){function i(s,o){if(!r[s]){if(!t[s]){var u="function"==typeof require&&require;if(!o&&u)return u(s,!0);if(a)return a(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var l=r[s]={exports:{}};t[s][0].call(l.exports,function(e){var r=t[s][1][e];return i(r?r:e)},l,l.exports,e,t,r,n)}return r[s].exports}for(var a="function"==typeof require&&require,s=0;s1)for(var r=1;r=0;--n){var i=this.tryEntries[n],a=i.completion;if("root"===i.tryLoc)return t("end");if(i.tryLoc<=this.prev){var s=m.call(i,"catchLoc"),o=m.call(i,"finallyLoc");if(s&&o){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&m.call(n,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),p(r),B}},"catch":function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var i=n.arg;p(r)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:y(e),resultName:t,nextLoc:r},B}}}("object"===("undefined"==typeof r?"undefined":n(r))?r:"object"===("undefined"==typeof window?"undefined":n(window))?window:"object"===("undefined"==typeof self?"undefined":n(self))?self:void 0)}).call(this,e("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{_process:1}],3:[function(e,t,r){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var i=function(){function e(e,t){for(var r=0;r "+e+": "+t.type,t)}},{key:"broadcastOps",value:function(t){function r(){n.broadcastOpBuffer.length>0&&(n.broadcast({type:"update",ops:n.broadcastOpBuffer}),n.broadcastOpBuffer=[])}t=t.map(function(t){return e.Struct[t.struct].encode(t)});var n=this;0===this.broadcastOpBuffer.length?(this.broadcastOpBuffer=t,this.y.db.transactionInProgress?this.y.db.whenTransactionsFinished().then(r):setTimeout(r,0)):this.broadcastOpBuffer=this.broadcastOpBuffer.concat(t)}},{key:"receiveMessage",value:function(e,t){var r=this;if(e!==this.userId){if(this.debug&&console.log("receive "+e+" -> "+this.userId+": "+t.type,JSON.parse(JSON.stringify(t))),null!=t.protocolVersion&&t.protocolVersion!==this.protocolVersion)return console.error("You tried to sync with a yjs instance that has a different protocol version\n (You: "+this.protocolVersion+", Client: "+t.protocolVersion+").\n The sync was stopped. You need to upgrade your dependencies (especially Yjs & the Connector)!\n "),void this.send(e,{type:"sync stop",protocolVersion:this.protocolVersion});if("sync step 1"===t.type)!function(){var n=r,i=t;r.y.db.requestTransaction(regeneratorRuntime.mark(function a(){var t,r,s;return regeneratorRuntime.wrap(function(a){for(;;)switch(a.prev=a.next){case 0:return a.delegateYield(this.getStateSet(),"t0",1);case 1:return t=a.t0,a.delegateYield(this.applyDeleteSet(i.deleteSet),"t1",3);case 3:return a.delegateYield(this.getDeleteSet(),"t2",4);case 4:return r=a.t2,a.delegateYield(this.getOperations(i.stateSet),"t3",6);case 6:s=a.t3,n.send(e,{type:"sync step 2",os:s,stateSet:t,deleteSet:r}),this.forwardToSyncingClients?(n.syncingClients.push(e),setTimeout(function(){n.syncingClients=n.syncingClients.filter(function(t){return t!==e}),n.send(e,{type:"sync done"})},5e3)):n.send(e,{type:"sync done"}),n._setSyncedWith(e);case 10:case"end":return a.stop()}},a,this)}))}();else if("sync step 2"===t.type){var n,i,a;!function(){var s=r;n=!r.broadcastedHB,r.broadcastedHB=!0,i=r.y.db,a={},a.promise=new Promise(function(e){a.resolve=e}),r.syncStep2=a.promise;var o=t;i.requestTransaction(regeneratorRuntime.mark(function u(){return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.delegateYield(this.applyDeleteSet(o.deleteSet),"t0",1);case 1:this.store.apply(o.os),i.requestTransaction(regeneratorRuntime.mark(function r(){var t;return regeneratorRuntime.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:return r.delegateYield(this.getOperations(o.stateSet),"t0",1);case 1:t=r.t0,t.length>0&&(n?s.broadcastOps(t):s.send(e,{type:"update",ops:t})),a.resolve();case 4:case"end":return r.stop()}},r,this)}));case 3:case"end":return t.stop()}},u,this)}))}()}else if("sync done"===t.type){var s=this;this.syncStep2.then(function(){s._setSyncedWith(e)})}else if("update"===t.type){if(this.forwardToSyncingClients){var o=!0,u=!1,c=void 0;try{for(var l,f=this.syncingClients[Symbol.iterator]();!(o=(l=f.next()).done);o=!0){var d=l.value;this.send(d,t)}}catch(h){u=!0,c=h}finally{try{!o&&f["return"]&&f["return"]()}finally{if(u)throw c}}}if(this.y.db.forwardAppliedOperations){var p=t.ops.filter(function(e){return"Delete"===e.struct});p.length>0&&this.broadcastOps(p)}this.y.db.apply(t.ops)}}}},{key:"_setSyncedWith",value:function(e){var t=this.connections[e];null!=t&&(t.isSynced=!0),e===this.currentSyncTarget&&(this.currentSyncTarget=null,this.findNextSyncTarget())}},{key:"parseMessageFromXml",value:function(e){function t(e){var n=!0,i=!1,a=void 0;try{for(var s,o=e.children[Symbol.iterator]();!(n=(s=o.next()).done);n=!0){var u=s.value;return"true"===u.getAttribute("isArray")?t(u):r(u)}}catch(c){i=!0,a=c}finally{try{!n&&o["return"]&&o["return"]()}finally{if(i)throw a}}}function r(e){var n={};for(var i in e.attrs){var a=e.attrs[i],s=parseInt(a,10);isNaN(s)||""+s!==a?n[i]=a:n[i]=s}for(var o in e.children){var u=o.name;"true"===o.getAttribute("isArray")?n[u]=t(o):n[u]=r(o)}return n}r(e)}},{key:"encodeMessageToXml",value:function(e,t){function r(e,t){for(var i in t){var a=t[i];null==i||(a.constructor===Object?r(e.c(i),a):a.constructor===Array?n(e.c(i),a):e.setAttribute(i,a))}}function n(e,t){e.setAttribute("isArray","true");var i=!0,a=!1,s=void 0;try{for(var o,u=t[Symbol.iterator]();!(i=(o=u.next()).done);i=!0){var c=o.value;c.constructor===Object?r(e.c("array-element"),c):n(e.c("array-element"),c)}}catch(l){a=!0,s=l}finally{try{!i&&u["return"]&&u["return"]()}finally{if(a)throw s}}}if(t.constructor===Object)r(e.c("y",{xmlns:"http://y.ninja/connector-stanza"}),t);else{if(t.constructor!==Array)throw new Error("I can't encode this json!");n(e.c("y",{xmlns:"http://y.ninja/connector-stanza"}),t)}}}]),t}();e.AbstractConnector=t}},{}],4:[function(e,t,r){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var s=function(){function e(e,t){for(var r=0;r0&&e.push(r);if(e.length>0){var n=getRandom(e),i=t.buffers[n].shift(),a=t.users[n];return a.receiveMessage(i[0],i[1]),a.y.db.whenTransactionsFinished()}return!1},flushAll:function(){return new Promise(function(e){function r(){var n=t.flushOne();if(n){for(;n;)n=t.flushOne();t.whenTransactionsFinished().then(r)}else setTimeout(function(){var n=t.flushOne();n?n.then(function(){t.whenTransactionsFinished().then(r)}):e()},10)}t.whenTransactionsFinished().then(r)})}};e.utils.globalRoom=t;var r=0,u=function(u){function c(e,a){if(n(this,c),void 0===a)throw new Error("Options must not be undefined!");a.role="master",a.forwardToSyncingClients=!1;var s=i(this,Object.getPrototypeOf(c).call(this,e,a));return s.setUserId(r++ +"").then(function(){t.addUser(s)}),s.globalRoom=t,s.syncingClientDuration=0,s}return a(c,u),s(c,[{key:"receiveMessage",value:function(e,t){o(Object.getPrototypeOf(c.prototype),"receiveMessage",this).call(this,e,JSON.parse(JSON.stringify(t)))}},{key:"send",value:function(e,r){var n=t.buffers[e];null!=n&&n.push(JSON.parse(JSON.stringify([this.userId,r])))}},{key:"broadcast",value:function(e){for(var r in t.buffers)t.buffers[r].push(JSON.parse(JSON.stringify([this.userId,e])))}},{key:"isDisconnected",value:function(){return null==t.users[this.userId]}},{key:"reconnect",value:function(){return this.isDisconnected()&&(t.addUser(this),o(Object.getPrototypeOf(c.prototype),"reconnect",this).call(this)),e.utils.globalRoom.flushAll()}},{key:"disconnect",value:function(){return this.isDisconnected()||(t.removeUser(this.userId),o(Object.getPrototypeOf(c.prototype),"disconnect",this).call(this)),this.y.db.whenTransactionsFinished()}},{key:"flush",value:function(){var e=this;return async(regeneratorRuntime.mark(function r(){var n;return regeneratorRuntime.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:for(;t.buffers[e.userId].length>0;)n=t.buffers[e.userId].shift(),this.receiveMessage(n[0],n[1]);return r.next=3,e.whenTransactionsFinished();case 3:case"end":return r.stop()}},r,this)}))}}]),c}(e.AbstractConnector);e.Test=u}},{}],5:[function(e,t,r){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var i=function(){function e(e,t){for(var r=0;r0||a.gc2.length>0?new Promise(function(e){a.requestTransaction(regeneratorRuntime.mark(function t(){var r,n;return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(null==a.y.connector||!a.y.connector.isSynced){t.next=10;break}r=0;case 2:if(!(r0&&(a.gcInterval=setTimeout(i,a.gcTimeout)),e();case 12:case"end":return t.stop()}},t,this)}))}):(a.gcTimeout>0&&(a.gcInterval=setTimeout(i,a.gcTimeout)),Promise.resolve())})}n(this,t),this.y=e;var a=this;this.userId=null;var s;this.userIdPromise=new Promise(function(e){s=e}),this.userIdPromise.resolve=s,this.forwardAppliedOperations=!1,this.listenersById={},this.listenersByIdExecuteNow=[],this.listenersByIdRequestPending=!1,this.initializedTypes={},this.waitingTransactions=[],this.transactionInProgress=!1,this.transactionIsFlushed=!1,"undefined"!=typeof YConcurrency_TestingMode&&(this.executeOrder=[]),this.gc1=[],this.gc2=[],this.gcTimeout=r.gcTimeout||5e4,this.garbageCollect=i,this.gcTimeout>0&&i()}return i(t,[{key:"addToDebug",value:function(){if("undefined"!=typeof YConcurrency_TestingMode){var e=Array.prototype.map.call(arguments,function(e){return"string"==typeof e?e:JSON.stringify(e)}).join("").replace(/"/g,"'").replace(/,/g,", ").replace(/:/g,": ");this.executeOrder.push(e)}}},{key:"getDebugData",value:function(){console.log(this.executeOrder.join("\n"))}},{key:"stopGarbageCollector",value:function(){var e=this;return new Promise(function(t){e.requestTransaction(regeneratorRuntime.mark(function r(){var n,i,a;return regeneratorRuntime.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:n=e.gc1.concat(e.gc2),e.gc1=[],e.gc2=[],i=0;case 4:if(!(i0)for(var r={op:t,missing:e.length},n=0;nf)){i.next=43;break}f>=n-a&&(r.left=o.id,a=n+1),i.next=44;break;case 43:return i.abrupt("break",56);case 44:if(n++,null==o.right){i.next=50;break}return i.delegateYield(this.getOperation(o.right),"t10",47);case 47:o=i.t10,i.next=51;break;case 50:o=null;case 51:i.next=54;break;case 53:return i.abrupt("break",56);case 54:i.next=31;break;case 56:if(d=null,h=null,null!=u){i.next=61;break}return i.delegateYield(this.getOperation(r.parent),"t11",60);case 60:u=i.t11;case 61:if(null==r.left){ i.next=69;break}return i.delegateYield(this.getOperation(r.left),"t12",63);case 63:return d=i.t12,r.right=d.right,d.right=r.id,i.delegateYield(this.setOperation(d),"t13",67);case 67:i.next=70;break;case 69:r.right=r.parentSub?u.map[r.parentSub]||null:u.start;case 70:if(null==r.right){i.next=76;break}return i.delegateYield(this.getOperation(r.right),"t14",72);case 72:return h=i.t14,h.left=r.id,null!=h.gc&&this.store.removeFromGarbageCollector(h),i.delegateYield(this.setOperation(h),"t15",76);case 76:if(null==r.parentSub){i.next=86;break}if(null!=d){i.next=80;break}return u.map[r.parentSub]=r.id,i.delegateYield(this.setOperation(u),"t16",80);case 80:if(null==r.right){i.next=82;break}return i.delegateYield(this.deleteOperation(r.right,!0),"t17",82);case 82:if(null==r.left){i.next=84;break}return i.delegateYield(this.deleteOperation(r.id,!0),"t18",84);case 84:i.next=90;break;case 86:if(null!=h&&null!=d){i.next=90;break}return null==h&&(u.end=r.id),null==d&&(u.start=r.id),i.delegateYield(this.setOperation(u),"t19",90);case 90:case"end":return i.stop()}},i,this)})},List:{create:function(e){return{start:null,end:null,struct:"List",id:e}},encode:function(e){return{struct:"List",id:e.id,type:e.type}},requiredOps:function(){return[]},execute:regeneratorRuntime.mark(function a(e){return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:e.start=null,e.end=null;case 2:case"end":return t.stop()}},a,this)}),ref:regeneratorRuntime.mark(function s(e,t){var r,n;return regeneratorRuntime.wrap(function(i){for(;;)switch(i.prev=i.next){case 0:if(null!=e.start){i.next=2;break}return i.abrupt("return",null);case 2:return r=null,i.delegateYield(this.getOperation(e.start),"t0",4);case 4:n=i.t0;case 5:if(n.deleted||(r=n,t--),!(t>=0&&null!=n.right)){i.next=12;break}return i.delegateYield(this.getOperation(n.right),"t1",9);case 9:n=i.t1,i.next=13;break;case 12:return i.abrupt("break",15);case 13:i.next=5;break;case 15:return i.abrupt("return",r);case 16:case"end":return i.stop()}},s,this)}),map:regeneratorRuntime.mark(function o(e,t){var r,n;return regeneratorRuntime.wrap(function(i){for(;;)switch(i.prev=i.next){case 0:e=e.start,r=[];case 2:if(null==e){i.next=9;break}return i.delegateYield(this.getOperation(e),"t0",4);case 4:n=i.t0,n.deleted||r.push(t(n)),e=n.right,i.next=2;break;case 9:return i.abrupt("return",r);case 10:case"end":return i.stop()}},o,this)})},Map:{create:function(e){return{id:e,map:{},struct:"Map"}},encode:function(e){return{struct:"Map",type:e.type,id:e.id,map:{}}},requiredOps:function(){return[]},execute:regeneratorRuntime.mark(function u(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}},u,this)}),get:regeneratorRuntime.mark(function c(e,t){var r,n;return regeneratorRuntime.wrap(function(i){for(;;)switch(i.prev=i.next){case 0:if(r=e.map[t],null==r){i.next=14;break}return i.delegateYield(this.getOperation(r),"t0",3);case 3:if(n=i.t0,null!=n&&!n.deleted){i.next=8;break}return i.abrupt("return",void 0);case 8:if(null!=n.opContent){i.next=12;break}return i.abrupt("return",n.content);case 12:return i.delegateYield(this.getType(n.opContent),"t1",13);case 13:return i.abrupt("return",i.t1);case 14:case"end":return i.stop()}},c,this)})}};e.Struct=t}},{}],7:[function(e,t,r){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var i=function(){function e(e,t){for(var r=0;r0&&this.store.y.connector.broadcastOps(r);case 10:case"end":return a.stop()}},s,this)})},{key:"deleteList",value:regeneratorRuntime.mark(function o(e){return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(!this.store.y.connector.isSynced){t.next=12;break}case 1:if(null==e||!this.store.y.connector.isSynced){t.next=10;break}return t.delegateYield(this.getOperation(e),"t0",3);case 3:return e=t.t0,e.gc=!0,t.delegateYield(this.setOperation(e),"t1",6);case 6:this.store.gc1.push(e.id),e=e.right,t.next=1;break;case 10:t.next=12;break;case 12:case"end":return t.stop()}},o,this)})},{key:"deleteOperation",value:regeneratorRuntime.mark(function u(e,t){var r,n,i,a,s;return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.delegateYield(this.getOperation(e),"t0",1);case 1:if(r=t.t0,n=!1,null!=r&&r.deleted){t.next=5;break}return t.delegateYield(this.markDeleted(e,1),"t1",5);case 5:if(null==r||null!=r.gc){t.next=40;break}if(r.deleted){t.next=23;break}if(n=!0,r.deleted=!0,null==r.start){t.next=12;break}return t.delegateYield(this.deleteList(r.start),"t2",11);case 11:return t.delegateYield(this.deleteList(r.id),"t3",12);case 12:if(null==r.map){t.next=20;break}t.t4=regeneratorRuntime.keys(r.map);case 14:if((t.t5=t.t4()).done){t.next=19;break}return i=t.t5.value,t.delegateYield(this.deleteList(r.map[i]),"t6",17);case 17:t.next=14;break;case 19:return t.delegateYield(this.deleteList(r.id),"t7",20);case 20:if(null==r.opContent){t.next=23;break}return t.delegateYield(this.deleteOperation(r.opContent),"t8",22);case 22:r.opContent=null;case 23:if(null==r.left){t.next=28;break}return t.delegateYield(this.getOperation(r.left),"t9",25);case 25:a=t.t9,t.next=29;break;case 28:a=null;case 29:return this.store.addToGarbageCollector(r,a),t.delegateYield(this.setOperation(r),"t10",31);case 31:if(null==r.right){t.next=36;break}return t.delegateYield(this.getOperation(r.right),"t11",33);case 33:s=t.t11,t.next=37;break;case 36:s=null;case 37:if(null==s||!this.store.addToGarbageCollector(s,r)){t.next=39;break}return t.delegateYield(this.setOperation(s),"t12",39);case 39:return t.abrupt("return",n);case 40:case"end":return t.stop()}},u,this)})},{key:"markGarbageCollected",value:regeneratorRuntime.mark(function c(t,r){var n,i,a,s;return regeneratorRuntime.wrap(function(o){for(;;)switch(o.prev=o.next){case 0:return o.delegateYield(this.markDeleted(t,r),"t0",1);case 1:if(n=o.t0,!(n.id[1]0)){a.next=20;break}if(r.gc){a.next=11;break}r.len+=n,a.next=18;break;case 11:if(n=r.id[1]+r.len-e[1],!(t>n)){a.next=17;break}return r={id:[e[0],e[1]+n],len:t-n,gc:!1},a.delegateYield(this.ds.put(r),"t1",15);case 15:a.next=18;break;case 17:throw new Error("Cannot happen! (it dit though.. :()");case 18:a.next=21;break;case 20:return a.abrupt("return",r);case 21:a.next=25;break;case 23:return r={id:e,len:t,gc:!1},a.delegateYield(this.ds.put(r),"t2",25);case 25:a.next=29;break;case 27:return r={id:e,len:t,gc:!1},a.delegateYield(this.ds.put(r),"t3",29);case 29:return a.delegateYield(this.ds.findNext(r.id),"t4",30);case 30:if(i=a.t4,!(null!=i&&r.id[0]===i.id[0]&&r.id[1]+r.len>=i.id[1])){a.next=45;break}if(n=r.id[1]+r.len-i.id[1],!i.gc){a.next=40;break}if(!(n>=0)){a.next=38;break}if(r.len-=n,!(n>i.len)){a.next=38;break}throw new Error("This case is not handled (on purpose!)");case 38:a.next=45;break;case 40:if(!(n>=0)){a.next=45;break}if(!(n>i.len)){a.next=43;break}throw new Error("This case is not handled (on purpose!)");case 43:return r.len+=i.len-n,a.delegateYield(this.ds["delete"](i.id),"t5",45);case 45:return a.delegateYield(this.ds.put(r),"t6",46);case 46:return a.abrupt("return",r);case 47:case"end":return a.stop()}},l,this)})},{key:"garbageCollectAfterSync",value:regeneratorRuntime.mark(function f(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.delegateYield(this.os.iterate(this,null,null,regeneratorRuntime.mark(function t(e){var r;return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(!e.deleted||null==e.left){t.next=4;break}return t.delegateYield(this.getOperation(e.left),"t0",2);case 2:r=t.t0,this.store.addToGarbageCollector(e,r);case 4:case"end":return t.stop()}},t,this)})),"t0",1);case 1:case"end":return e.stop()}},f,this)})},{key:"garbageCollectOperation",value:regeneratorRuntime.mark(function d(t){var r,n,i,a,s,o,u,c,l,f;return regeneratorRuntime.wrap(function(d){for(;;)switch(d.prev=d.next){case 0:return this.store.addToDebug("yield* this.garbageCollectOperation(",t,")"),d.delegateYield(this.getOperation(t),"t0",2);case 2:return r=d.t0,d.delegateYield(this.markGarbageCollected(t,1),"t1",4);case 4:if(null==r){d.next=54;break}if(null==r.left){d.next=10;break}return d.delegateYield(this.getOperation(r.left),"t2",7);case 7:return n=d.t2,n.right=r.right,d.delegateYield(this.setOperation(n),"t3",10);case 10:if(null==r.right){d.next=46;break}return d.delegateYield(this.getOperation(r.right),"t4",12);case 12:if(i=d.t4,i.left=r.left,!(null!=r.originOf&&r.originOf.length>0)){d.next=40;break}a=r.left,s=null;case 17:if(null==a){d.next=25;break}return d.delegateYield(this.getOperation(a),"t5",19);case 19:if(s=d.t5,!s.deleted){d.next=22;break}return d.abrupt("break",25);case 22:a=s.left,d.next=17;break;case 25:d.t6=regeneratorRuntime.keys(r.originOf);case 26:if((d.t7=d.t6()).done){d.next=35;break}return o=d.t7.value,d.delegateYield(this.getOperation(r.originOf[o]),"t8",29);case 29:if(u=d.t8,null==u){d.next=33;break}return u.origin=a,d.delegateYield(this.setOperation(u),"t9",33);case 33:d.next=26;break;case 35:if(null==a){d.next=38;break}return null==s.originOf?s.originOf=r.originOf:s.originOf=r.originOf.concat(s.originOf),d.delegateYield(this.setOperation(s),"t10",38);case 38:d.next=41;break;case 40:return d.delegateYield(this.setOperation(i),"t11",41);case 41:if(null==r.origin){d.next=46;break}return d.delegateYield(this.getOperation(r.origin),"t12",43);case 43:return c=d.t12,c.originOf=c.originOf.filter(function(r){return!e.utils.compareIds(t,r)}),d.delegateYield(this.setOperation(c),"t13",46);case 46:if(null==r.parent){d.next=53;break}return d.delegateYield(this.getOperation(r.parent),"t14",48);case 48:if(l=d.t14,f=!1,null!=r.parentSub?e.utils.compareIds(l.map[r.parentSub],r.id)&&(f=!0,l.map[r.parentSub]=r.right):(e.utils.compareIds(l.start,r.id)&&(f=!0,l.start=r.right),e.utils.compareIds(l.end,r.id)&&(f=!0,l.end=r.left)),!f){d.next=53;break}return d.delegateYield(this.setOperation(l),"t15",53);case 53:return d.delegateYield(this.removeOperation(r.id),"t16",54);case 54:case"end":return d.stop()}},d,this)})},{key:"checkDeleteStoreForState",value:regeneratorRuntime.mark(function h(e){var t;return regeneratorRuntime.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:return r.delegateYield(this.ds.findWithUpperBound([e.user,e.clock]),"t0",1);case 1:t=r.t0,null!=t&&t.id[0]===e.user&&t.gc&&(e.clock=Math.max(e.clock,t.id[1]+t.len));case 3:case"end":return r.stop()}},h,this)})},{key:"applyDeleteSet",value:regeneratorRuntime.mark(function p(e){var t,r,n,i,a,s,o,u,c,l,f,d,h;return regeneratorRuntime.wrap(function(p){for(;;)switch(p.prev=p.next){case 0:r=function(e,r,n,i){t.push([e,r,n,i])},t=[],p.t0=regeneratorRuntime.keys(e);case 3:if((p.t1=p.t0()).done){p.next=12;break}return n=p.t1.value,i=e[n],a=0,s=i[a],p.delegateYield(this.ds.iterate(this,[n,0],[n,Number.MAX_VALUE],regeneratorRuntime.mark(function g(e){var t;return regeneratorRuntime.wrap(function(o){for(;;)switch(o.prev=o.next){case 0:if(null==s){o.next=10;break}if(t=0,!(e.id[1]+e.len<=s[0])){o.next=6;break}return o.abrupt("break",10);case 6:s[0]=u[1]&&c.clock0&&e.utils.compareIds(a[a.length-1].origin,i.id);)a.pop();if(!(i.id[1]<(t[i.id[0]]||0))){u.next=24;break}return n.left=i.id,r.push(n),u.abrupt("break",27);case 24:e.utils.compareIds(i.id,n.origin)?(n.left=n.origin,r.push(n),n=e.Struct[n.struct].encode(i),n.right=s,a.length>0&&console.log("This should not happen .. :( please report this"),a=[n]):(o=e.Struct[n.struct].encode(i),o.right=a[a.length-1].id,o.left=o.origin,r.push(o),a.push(i));case 25:u.next=9;break;case 27:case"end":return u.stop()}},h,this)})),"t1",16);case 16:i=!0,d.next=9;break;case 19:d.next=25;break;case 21:d.prev=21,d.t2=d["catch"](7),a=!0,s=d.t2;case 25:d.prev=25,d.prev=26,!i&&o["return"]&&o["return"]();case 28:if(d.prev=28,!a){d.next=31;break}throw s;case 31:return d.finish(28);case 32:return d.finish(25);case 33:return d.abrupt("return",r.reverse());case 34:case"end":return d.stop()}},S,this,[[7,21,25,33],[26,,28,32]])})},{key:"flush",value:regeneratorRuntime.mark(function T(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.delegateYield(this.os.flush(),"t0",1);case 1:return e.delegateYield(this.ss.flush(),"t1",2);case 2:return e.delegateYield(this.ds.flush(),"t2",3);case 3:case"end":return e.stop()}},T,this)})}]),t}();e.Transaction=t}},{}],8:[function(e,t,r){"use strict";function n(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function a(e){return e&&"undefined"!=typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var o=function c(e,t,r){null===e&&(e=Function.prototype);var n=Object.getOwnPropertyDescriptor(e,t);if(void 0===n){var i=Object.getPrototypeOf(e);return null===i?void 0:c(i,t,r)}if("value"in n)return n.value;var a=n.get;if(void 0!==a)return a.call(r)},u=function(){function e(e,t){for(var r=0;r=0)){r.next=10;break}if(i=this.readBuffer[n],i.id[1]!==e[1]||i.id[0]!==e[0]){r.next=7;break}for(;n=0)){r.next=19;break}if(i=this.writeBuffer[n],i.id[1]!==e[1]||i.id[0]!==e[0]){r.next=16;break}return a=i,r.abrupt("break",19);case 16:n--,r.next=11;break;case 19:if(!(0>n)){r.next=22;break}return r.delegateYield(o(Object.getPrototypeOf(t.prototype),"find",this).call(this,e),"t0",21);case 21:a=r.t0;case 22:if(null!=a){for(n=0;n=0)){a.next=11;break}if(i=this.writeBuffer[n],i.id[1]!==r[1]||i.id[0]!==r[0]){a.next=8;break}for(;nn)){a.next=17;break}if(s=this.writeBuffer[0],null===s.id[0]){a.next=15;break}return a.delegateYield(o(Object.getPrototypeOf(t.prototype),"put",this).call(this,s),"t0",15);case 15:for(n=0;n=0;a--){var s=this.waiting[a];"Insert"===s.struct&&(e.utils.compareIds(i.left,s.id)?(s.right=i.id,i.left=s.left):e.utils.compareIds(i.right,s.id)&&(s.left=i.id,i.right=s.right))}}this._tryCallEvents()}},{key:"awaitedDeletes",value:function(t,r){for(var n=this.waiting.splice(this.waiting.length-t),i=0;i0){var e=this.waiting;this.waiting=[],this.onevent(e)}}}]),t}();e.utils.EventHandler=d;var h=function p(e){if(s(this,p),null==e.struct||null==e.initType||null==e["class"]||null==e.name)throw new Error("Custom type was not initialized correctly!");this.struct=e.struct,this.initType=e.initType,this["class"]=e["class"],this.name=e.name};e.utils.CustomType=h,e.utils.copyObject=t,e.utils.smaller=r,e.utils.compareIds=c,e.utils.createSmallLookupBuffer=f}},{}],9:[function(e,t,r){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(t){for(var r="undefined"!=typeof regeneratorRuntime?".js":".es6",n=[],i=0;i