!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):n.Immutable=t()}(this,function(){"use strict";function u(n,t){t&&(n.prototype=Object.create(t.prototype));n.prototype.constructor=n}function c(n){return k(n)?n:w(n)}function it(n){return v(n)?n:at(n)}function bt(n){return ct(n)?n:l(n)}function ut(n){return k(n)&&!cu(n)?n:gt(n)}function k(n){return!(!n||!n[ps])}function v(n){return!(!n||!n[ws])}function ct(n){return!(!n||!n[bs])}function cu(n){return v(n)||ct(n)}function dt(n){return!(!n||!n[ir])}function lu(n){return n.value=!1,n}function lt(n){n&&(n.value=!0)}function au(){}function ei(n,t){t=t||0;for(var r=Math.max(0,n.length-t),u=Array(r),i=0;r>i;i++)u[i]=n[i+t];return u}function vu(n){return void 0===n.size&&(n.size=n.__iterate(ae)),n.size}function oi(n,t){if("number"!=typeof t){var i=t>>>0;if(""+i!==t||4294967295===i)return NaN;t=i}return 0>t?vu(n)+t:t}function ae(){return!0}function ur(n,t,i){return(0===n||void 0!==i&&-i>=n)&&(void 0===t||void 0!==i&&t>=i)}function yi(n,t){return ve(n,t,0)}function fr(n,t){return ve(n,t,t)}function ve(n,t,i){return void 0===n?i:0>n?Math.max(0,t+n):void 0===t?n:Math.min(t,n)}function r(n){this.next=n}function e(n,t,i,r){var u=0===n?t:1===n?i:[t,i];return r?r.value=u:r={value:u,done:!1},r}function ft(){return{value:void 0,done:!0}}function ye(n){return!!pe(n)}function gr(n){return n&&"function"==typeof n.next}function er(n){var t=pe(n);return t&&t.call(n)}function pe(n){var t=n&&(gf&&n[gf]||n[ds]);if("function"==typeof t)return t}function we(n){return n&&"number"==typeof n.length}function w(n){return null===n||void 0===n?nu():k(n)?n.toSeq():sh(n)}function at(n){return null===n||void 0===n?nu().toKeyedSeq():k(n)?v(n)?n.toSeq():n.fromEntrySeq():be(n)}function l(n){return null===n||void 0===n?nu():k(n)?v(n)?n.entrySeq():n.toIndexedSeq():pu(n)}function gt(n){return(null===n||void 0===n?nu():k(n)?v(n)?n.entrySeq():n:pu(n)).toSetSeq()}function ni(n){this._array=n;this.size=n.length}function si(n){var t=Object.keys(n);this._object=n;this._keys=t;this.size=t.length}function or(n){this._iterable=n;this.size=n.length||n.size}function sr(n){this._iterator=n;this._iteratorCache=[]}function yu(n){return!(!n||!n[te])}function nu(){return gs||(gs=new ni([]))}function be(n){var t=Array.isArray(n)?new ni(n).fromEntrySeq():gr(n)?new sr(n).fromEntrySeq():ye(n)?new or(n).fromEntrySeq():"object"==typeof n?new si(n):void 0;if(!t)throw new TypeError("Expected Array or iterable object of [k, v] entries, or keyed object: "+n);return t}function pu(n){var t=ke(n);if(!t)throw new TypeError("Expected Array or iterable object of values: "+n);return t}function sh(n){var t=ke(n)||"object"==typeof n&&new si(n);if(!t)throw new TypeError("Expected Array or iterable object of values, or keyed object: "+n);return t}function ke(n){return we(n)?new ni(n):gr(n)?new sr(n):ye(n)?new or(n):void 0}function de(n,t,i,r){var f=n._cache,e,u,o;if(f){for(e=f.length-1,u=0;e>=u;u++)if(o=f[i?e-u:u],t(o[1],r?o[0]:u,n)===!1)return u+1;return u}return n.__iterateUncached(t,i)}function ge(n,t,i,u){var o=n._cache,s,f;return o?(s=o.length-1,f=0,new r(function(){var n=o[i?s-f:f];return f++>s?ft():e(t,u?n[0]:f-1,n[1])})):n.__iteratorUncached(t,i)}function wu(n,t){return t?bu(t,n,"",{"":n}):ku(n)}function bu(n,t,i,r){return Array.isArray(t)?n.call(r,i,l(t).map(function(i,r){return bu(n,i,r,t)})):no(t)?n.call(r,i,at(t).map(function(i,r){return bu(n,i,r,t)})):t}function ku(n){return Array.isArray(n)?l(n).map(ku).toList():no(n)?at(n).map(ku).toMap():n}function no(n){return n&&(n.constructor===Object||void 0===n.constructor)}function y(n,t){if(n===t||n!==n&&t!==t)return!0;if(!n||!t)return!1;if("function"==typeof n.valueOf&&"function"==typeof t.valueOf){if(n=n.valueOf(),t=t.valueOf(),n===t||n!==n&&t!==t)return!0;if(!n||!t)return!1}return"function"==typeof n.equals&&"function"==typeof t.equals&&n.equals(t)?!0:!1}function du(n,i){var r,u,f,o,e,s;return n===i?!0:!k(i)||void 0!==n.size&&void 0!==i.size&&n.size!==i.size||void 0!==n.__hash&&void 0!==i.__hash&&n.__hash!==i.__hash||v(n)!==v(i)||ct(n)!==ct(i)||dt(n)!==dt(i)?!1:0===n.size&&0===i.size?!0:(r=!cu(n),dt(n))?(u=n.entries(),i.every(function(n,t){var i=u.next().value;return i&&y(i[1],n)&&(r||y(i[0],t))})&&u.next().done):(f=!1,void 0===n.size&&(void 0===i.size?"function"==typeof n.cacheResult&&n.cacheResult():(f=!0,o=n,n=i,i=o)),e=!0,s=i.__iterate(function(i,u){if(!(r?n.has(i):f?y(i,n.get(u,t)):y(n.get(u,t),i)))return(e=!1,!1)}),e&&n.size===s)}function g(n,t){if(!(this instanceof g))return new g(n,t);if(this._value=n,this.size=void 0===t?1/0:Math.max(0,t),0===this.size){if(ie)return ie;ie=this}}function tu(n,t){if(!n)throw Error(t);}function d(n,t,i){if(!(this instanceof d))return new d(n,t,i);if(tu(0!==i,"Cannot step a Range by 0"),n=n||0,void 0===t&&(t=1/0),i=void 0===i?1:Math.abs(i),n>t&&(i=-i),this._start=n,this._end=t,this._step=i,this.size=Math.max(0,Math.ceil((t-n)/i-1)+1),0===this.size){if(re)return re;re=this}}function hi(){throw TypeError("Abstract");}function hr(){}function pi(){}function iu(){}function gu(n){return n>>>1&1073741824|3221225471&n}function ot(n){var t,i;if(n===!1||null===n||void 0===n||"function"==typeof n.valueOf&&(n=n.valueOf(),n===!1||null===n||void 0===n))return 0;if(n===!0)return 1;if(t=typeof n,"number"===t){if(n!==n||n===1/0)return 0;for(i=0|n,i!==n&&(i^=4294967295*n);n>4294967295;)n/=4294967295,i^=n;return gu(i)}if("string"===t)return n.length>lc?hh(n):nf(n);if("function"==typeof n.hashCode)return n.hashCode();if("object"===t)return ch(n);if("function"==typeof n.toString)return nf(""+n);throw Error("Value type "+t+" cannot be hashed.");}function hh(n){var t=oe[n];return void 0===t&&(t=nf(n),ee===ac&&(ee=0,oe={}),ee++,oe[n]=t),t}function nf(n){for(var t=0,i=0;n.length>i;i++)t=31*t+n.charCodeAt(i)|0;return gu(t)}function ch(n){var t;if(fe&&(t=ue.get(n),void 0!==t)||(t=n[ai],void 0!==t)||!th&&((t=n.propertyIsEnumerable&&n.propertyIsEnumerable[ai],void 0!==t)||(t=lh(n),void 0!==t)))return t;if(t=++hu,1073741824&hu&&(hu=0),fe)ue.set(n,t);else{if(void 0!==nh&&nh(n)===!1)throw Error("Non-extensible objects are not allowed as keys.");if(th)Object.defineProperty(n,ai,{enumerable:!1,configurable:!1,writable:!1,value:t});else if(void 0!==n.propertyIsEnumerable&&n.propertyIsEnumerable===n.constructor.prototype.propertyIsEnumerable)n.propertyIsEnumerable=function(){return this.constructor.prototype.propertyIsEnumerable.apply(this,arguments)},n.propertyIsEnumerable[ai]=t;else{if(void 0===n.nodeType)throw Error("Unable to set a non-enumerable property on object.");n[ai]=t}}return t}function lh(n){if(n&&n.nodeType>0)switch(n.nodeType){case 1:return n.uniqueID;case 9:return n.documentElement&&n.documentElement.uniqueID}}function st(n){tu(n!==1/0,"Cannot perform this action with an infinite size.")}function i(n){return null===n||void 0===n?kt():tf(n)&&!dt(n)?n:kt().withMutations(function(t){var i=it(n);st(i.size);i.forEach(function(n,i){return t.set(i,n)})})}function tf(n){return!(!n||!n[se])}function cr(n,t){this.ownerID=n;this.entries=t}function wi(n,t,i){this.ownerID=n;this.bitmap=t;this.nodes=i}function lr(n,t,i){this.ownerID=n;this.count=t;this.nodes=i}function bi(n,t,i){this.ownerID=n;this.keyHash=t;this.entries=i}function fi(n,t,i){this.ownerID=n;this.keyHash=t;this.entry=i}function rf(n,t,i){this._type=t;this._reverse=i;this._stack=n._root&&to(n._root)}function uf(n,t){return e(n,t[0],t[1])}function to(n,t){return{node:n,index:0,__prev:t}}function ff(t,i,r,u){var f=Object.create(n);return f.size=t,f._root=i,f.__ownerID=r,f.__hash=u,f.__altered=!1,f}function kt(){return ih||(ih=ff(0))}function io(n,i,r){var u,f,e,o;if(n._root){if(e=lu(cc),o=lu(ks),u=ef(n._root,n.__ownerID,0,void 0,i,r,e,o),!o.value)return n;f=n.size+(e.value?r===t?-1:1:0)}else{if(r===t)return n;f=1;u=new cr(n.__ownerID,[[i,r]])}return n.__ownerID?(n.size=f,n._root=u,n.__hash=void 0,n.__altered=!0,n):u?ff(f,u):kt()}function ef(n,i,r,u,f,e,o,s){return n?n.update(i,r,u,f,e,o,s):e===t?n:(lt(s),lt(o),new fi(i,u,[f,e]))}function ro(n){return n.constructor===fi||n.constructor===bi}function of(n,t,i,r,u){if(n.keyHash===r)return new bi(t,r,[n.entry,u]);var f,e=(0===i?n.keyHash:n.keyHash>>>i)&rt,o=(0===i?r:r>>>i)&rt,h=e===o?[of(n,t,i+s,r,u)]:(f=new fi(t,r,u),o>e?[n,f]:[f,n]);return new wi(t,1<<e|1<<o,h)}function ah(n,t,i,r){var u,f,e;for(n||(n=new au),u=new fi(n,ot(i),[i,r]),f=0;t.length>f;f++)e=t[f],u=u.update(n,0,void 0,e[0],e[1]);return u}function vh(n,t,i,r){for(var f,e=0,h=0,o=Array(i),u=0,s=1,c=t.length;c>u;u++,s<<=1)f=t[u],void 0!==f&&u!==r&&(e|=s,o[h++]=f);return new wi(n,e,o)}function yh(n,t,i,r,u){for(var e=0,f=Array(pt),o=0;0!==i;o++,i>>>=1)f[o]=1&i?t[e++]:void 0;return f[r]=u,new lr(n,e+1,f)}function ru(n,t,i){for(var e,u,f=[],r=0;i.length>r;r++)e=i[r],u=it(e),k(e)||(u=u.map(function(n){return wu(n)})),f.push(u);return eo(n,t,f)}function uo(n,t){return n&&n.mergeDeep&&k(t)?n.mergeDeep(t):y(n,t)?n:t}function fo(n){return function(t,i,r){if(t&&t.mergeDeepWith&&k(i))return t.mergeDeepWith(n,i);var u=n(t,i,r);return y(t,u)?t:u}}function eo(n,i,r){return r=r.filter(function(n){return 0!==n.size}),0===r.length?n:0!==n.size||n.__ownerID||1!==r.length?n.withMutations(function(n){for(var f=i?function(r,u){n.update(u,t,function(n){return n===t?r:i(n,r,u)})}:function(t,i){n.set(i,t)},u=0;r.length>u;u++)r[u].forEach(f)}):n.constructor(r[0])}function oo(n,i,r,u){var f=n===t,c=i.next(),e,o;if(c.done)return e=f?r:n,o=u(e),o===e?n:o;tu(f||n&&n.set,"invalid keyPath");var s=c.value,l=f?t:n.get(s,t),h=oo(l,i,r,u);return h===l?n:h===t?n.remove(s):(f?kt():n).set(s,h)}function so(n){return n-=n>>1&1431655765,n=(858993459&n)+(n>>2&858993459),n=n+(n>>4)&252645135,n+=n>>8,n+=n>>16,127&n}function ho(n,t,i,r){var u=r?n:ei(n);return u[t]=i,u}function ph(n,t,i,r){var f=n.length+1;if(r&&t+1===f)return n[t]=i,n;for(var e=Array(f),o=0,u=0;f>u;u++)u===t?(e[u]=i,o=-1):e[u]=n[u+o];return e}function wh(n,t,i){var u=n.length-1;if(i&&t===u)return n.pop(),n;for(var f=Array(u),e=0,r=0;u>r;r++)r===t&&(e=1),f[r]=n[r+e];return f}function o(n){var r=sf(),i,t;return null===n||void 0===n?r:co(n)?n:(i=bt(n),t=i.size,0===t?r:(st(t),t>0&&pt>t?ar(0,t,s,null,new ci(i.toArray())):r.withMutations(function(n){n.setSize(t);i.forEach(function(t,i){return n.set(i,t)})})))}function co(n){return!(!n||!n[he])}function ci(n,t){this.array=n;this.ownerID=t}function lo(n,t){function u(n,t,i){return 0===t?e(n,i):o(n,t,i)}function e(n,u){var o=u===h?f&&f.array:n&&n.array,s=u>i?0:i-u,e=r-u;return e>pt&&(e=pt),function(){if(s===e)return rr;var n=t?--e:s++;return o&&o[n]}}function o(n,f,e){var o,c=n&&n.array,l=e>i?0:i-e>>f,h=(r-e>>f)+1;return h>pt&&(h=pt),function(){for(var n,i;;){if(o){if(n=o(),n!==rr)return n;o=null}if(l===h)return rr;i=t?--h:l++;o=u(c&&c[i],f-s,e+(i<<f))}}}var i=n._origin,r=n._capacity,h=vr(r),f=n._tail;return u(n._root,n._level,0)}function ar(n,t,i,r,u,f,e){var o=Object.create(nt);return o.size=t-n,o._origin=n,o._capacity=t,o._level=i,o._root=r,o._tail=u,o.__ownerID=f,o.__hash=e,o.__altered=!1,o}function sf(){return rh||(rh=ar(0,0,s))}function bh(n,t,i){if(t=oi(n,t),t!==t)return n;if(t>=n.size||0>t)return n.withMutations(function(n){0>t?li(n,t).set(0,i):li(n,0,t+1).set(t,i)});t+=n._origin;var r=n._tail,u=n._root,f=lu(ks);return t>=vr(n._capacity)?r=hf(r,n.__ownerID,0,t,i,f):u=hf(u,n.__ownerID,n._level,t,i,f),f.value?n.__ownerID?(n._root=u,n._tail=r,n.__hash=void 0,n.__altered=!0,n):ar(n._origin,n._capacity,n._level,u,r):n}function hf(n,t,i,r,u,f){var o=r>>>i&rt,l=n&&n.array.length>o,e,h,c;return!l&&void 0===u?n:i>0?(h=n&&n.array[o],c=hf(h,t,i-s,r,u,f),c===h?n:(e=ki(n,t),e.array[o]=c,e)):l&&n.array[o]===u?n:(lt(f),e=ki(n,t),void 0===u&&o===e.array.length-1?e.array.pop():e.array[o]=u,e)}function ki(n,t){return t&&n&&t===n.ownerID?n:new ci(n?n.array.slice():[],t)}function ao(n,t){if(t>=vr(n._capacity))return n._tail;if(1<<n._level+s>t){for(var i=n._root,r=n._level;i&&r>0;)i=i.array[t>>>r&rt],r-=s;return i}}function li(n,t,i){var a,h,p,l,w,k,d,b;void 0!==t&&(t=0|t);void 0!==i&&(i=0|i);var c=n.__ownerID||new au,y=n._origin,v=n._capacity,u=y+t,o=void 0===i?v:0>i?v+i:y+i;if(u===y&&o===v)return n;if(u>=o)return n.clear();for(var f=n._level,r=n._root,e=0;0>u+e;)r=new ci(r&&r.array.length?[void 0,r]:[],c),f+=s,e+=1<<f;for(e&&(u+=e,y+=e,o+=e,v+=e),a=vr(v),h=vr(o);h>=1<<f+s;)r=new ci(r&&r.array.length?[r]:[],c),f+=s;if(p=n._tail,l=a>h?ao(n,o-1):h>a?new ci([],c):p,p&&h>a&&v>u&&p.array.length){for(r=ki(r,c),w=r,k=f;k>s;k-=s)d=a>>>k&rt,w=w.array[d]=ki(w.array[d],c);w.array[a>>>s&rt]=p}if(v>o&&(l=l&&l.removeAfter(c,0,o)),u>=h)u-=h,o-=h,f=s,r=null,l=l&&l.removeBefore(c,0,u);else if(u>y||a>h){for(e=0;r;){if(b=u>>>f&rt,b!==h>>>f&rt)break;b&&(e+=(1<<f)*b);f-=s;r=r.array[b]}r&&u>y&&(r=r.removeBefore(c,f,u-e));r&&a>h&&(r=r.removeAfter(c,f,h-e));e&&(u-=e,o-=e)}return n.__ownerID?(n.size=o-u,n._origin=u,n._capacity=o,n._level=f,n._root=r,n._tail=l,n.__hash=void 0,n.__altered=!0,n):ar(u,o,f,r,l)}function uu(n,t,i){for(var e,r,o=[],u=0,f=0;i.length>f;f++)e=i[f],r=bt(e),r.size>u&&(u=r.size),k(e)||(r=r.map(function(n){return wu(n)})),o.push(r);return u>n.size&&(n=n.setSize(u)),eo(n,t,o)}function vr(n){return pt>n?0:n-1>>>s<<s}function a(n){return null===n||void 0===n?fu():vo(n)?n:fu().withMutations(function(t){var i=it(n);st(i.size);i.forEach(function(n,i){return t.set(i,n)})})}function vo(n){return tf(n)&&dt(n)}function cf(n,t,i,r){var u=Object.create(a.prototype);return u.size=n?n.size:0,u._map=n,u._list=t,u.__ownerID=i,u.__hash=r,u}function fu(){return uh||(uh=cf(kt(),sf()))}function yo(n,i,r){var f,e,s=n._map,u=n._list,o=s.get(i),h=void 0!==o;if(r===t){if(!h)return n;u.size>=pt&&u.size>=2*s.size?(e=u.filter(function(n,t){return void 0!==n&&o!==t}),f=e.toKeyedSeq().map(function(n){return n[0]}).flip().toMap(),n.__ownerID&&(f.__ownerID=e.__ownerID=n.__ownerID)):(f=s.remove(i),e=o===u.size-1?u.pop():u.set(o,void 0))}else if(h){if(r===u.get(o)[1])return n;f=s;e=u.set(o,[i,r])}else f=s.set(i,u.size),e=u.set(u.size,[i,r]);return n.__ownerID?(n.size=f.size,n._map=f,n._list=e,n.__hash=void 0,n):cf(f,e)}function vt(n,t){this._iter=n;this._useKeys=t;this.size=n.size}function di(n){this._iter=n;this.size=n.size}function gi(n){this._iter=n;this.size=n.size}function nr(n){this._iter=n;this.size=n.size}function po(n){var t=ti(n);return t._iter=n,t.size=n.size,t.flip=function(){return n},t.reverse=function(){var t=n.reverse.apply(this);return t.flip=function(){return n.reverse()},t},t.has=function(t){return n.includes(t)},t.includes=function(t){return n.has(t)},t.cacheResult=yf,t.__iterateUncached=function(t,i){var r=this;return n.__iterate(function(n,i){return t(i,n,r)!==!1},i)},t.__iteratorUncached=function(t,i){if(t===ui){var u=n.__iterator(t,i);return new r(function(){var n=u.next(),t;return n.done||(t=n.value[0],n.value[0]=n.value[1],n.value[1]=t),n})}return n.__iterator(t===wt?wr:wt,i)},t}function wo(n,i,u){var f=ti(n);return f.size=n.size,f.has=function(t){return n.has(t)},f.get=function(r,f){var e=n.get(r,t);return e===t?f:i.call(u,e,r,n)},f.__iterateUncached=function(t,r){var f=this;return n.__iterate(function(n,r,e){return t(i.call(u,n,r,e),r,f)!==!1},r)},f.__iteratorUncached=function(t,f){var o=n.__iterator(ui,f);return new r(function(){var r=o.next(),f,s;return r.done?r:(f=r.value,s=f[0],e(t,s,i.call(u,f[1],s,n),r))})},f}function lf(n,t){var i=ti(n);return i._iter=n,i.size=n.size,i.reverse=function(){return n},n.flip&&(i.flip=function(){var t=po(n);return t.reverse=function(){return n.flip()},t}),i.get=function(i,r){return n.get(t?i:-1-i,r)},i.has=function(i){return n.has(t?i:-1-i)},i.includes=function(t){return n.includes(t)},i.cacheResult=yf,i.__iterate=function(t,i){var r=this;return n.__iterate(function(n,i){return t(n,i,r)},!i)},i.__iterator=function(t,i){return n.__iterator(t,!i)},i}function bo(n,i,u,f){var o=ti(n);return f&&(o.has=function(r){var f=n.get(r,t);return f!==t&&!!i.call(u,f,r,n)},o.get=function(r,f){var e=n.get(r,t);return e!==t&&i.call(u,e,r,n)?e:f}),o.__iterateUncached=function(t,r){var o=this,e=0;return n.__iterate(function(n,r,s){if(i.call(u,n,r,s))return(e++,t(n,f?r:e-1,o))},r),e},o.__iteratorUncached=function(t,o){var s=n.__iterator(ui,o),h=0;return new r(function(){for(var r;;){if(r=s.next(),r.done)return r;var o=r.value,c=o[0],l=o[1];if(i.call(u,l,c,n))return e(t,f?c:h++,l,r)}})},o}function kh(n,t,r){var u=i().asMutable();return n.__iterate(function(i,f){u.update(t.call(r,i,f,n),0,function(n){return n+1})}),u.asImmutable()}function dh(n,t,r){var o=v(n),u=(dt(n)?a():i()).asMutable(),e;return n.__iterate(function(i,f){u.update(t.call(r,i,f,n),function(n){return n=n||[],n.push(o?[f,i]:i),n})}),e=rs(n),u.map(function(t){return f(n,e(t))})}function af(n,t,i,u){var c=n.size,o,l,f,h,s;return(void 0!==t&&(t=0|t),void 0!==i&&(i=i===1/0?c:0|i),ur(t,i,c))?n:(o=yi(t,c),l=fr(i,c),o!==o||l!==l)?af(n.toSeq().cacheResult(),t,i,u):(h=l-o,h===h&&(f=0>h?0:h),s=ti(n),s.size=0===f?f:n.size&&f||void 0,!u&&yu(n)&&f>=0&&(s.get=function(t,i){return t=oi(this,t),t>=0&&f>t?n.get(t+o,i):i}),s.__iterateUncached=function(t,i){var s=this;if(0===f)return 0;if(i)return this.cacheResult().__iterate(t,i);var h=0,e=!0,r=0;return n.__iterate(function(n,i){if(!e||!(e=h++<o))return(r++,t(n,u?i:r-1,s)!==!1&&r!==f)}),r},s.__iteratorUncached=function(t,i){if(0!==f&&i)return this.cacheResult().__iterator(t,i);var h=0!==f&&n.__iterator(t,i),c=0,s=0;return new r(function(){for(;c++<o;)h.next();if(++s>f)return ft();var n=h.next();return u||t===wt?n:t===wr?e(t,s-1,void 0,n):e(t,s-1,n.value[1],n)})},s)}function gh(n,t,i){var u=ti(n);return u.__iterateUncached=function(r,u){var e=this,f;return u?this.cacheResult().__iterate(r,u):(f=0,n.__iterate(function(n,u,o){return t.call(i,n,u,o)&&++f&&r(n,u,e)}),f)},u.__iteratorUncached=function(u,f){var h=this,s,o;return f?this.cacheResult().__iterator(u,f):(s=n.__iterator(ui,f),o=!0,new r(function(){var n;if(!o)return ft();if(n=s.next(),n.done)return n;var r=n.value,f=r[0],c=r[1];return t.call(i,c,f,h)?u===ui?n:e(u,f,c,n):(o=!1,ft())}))},u}function ko(n,t,i,u){var f=ti(n);return f.__iterateUncached=function(r,f){var s=this,o,e;return f?this.cacheResult().__iterate(r,f):(o=!0,e=0,n.__iterate(function(n,f,h){if(!o||!(o=t.call(i,n,f,h)))return(e++,r(n,u?f:e-1,s))}),e)},f.__iteratorUncached=function(f,o){var c=this;if(o)return this.cacheResult().__iterator(f,o);var l=n.__iterator(ui,o),s=!0,h=0;return new r(function(){var n,r,o,a;do{if(n=l.next(),n.done)return u||f===wt?n:f===wr?e(f,h++,void 0,n):e(f,h++,n.value[1],n);a=n.value;r=a[0];o=a[1];s&&(s=t.call(i,o,r,c))}while(s);return f===ui?n:e(f,r,o,n)})},f}function nc(n,t){var f=v(n),r=[n].concat(t).map(function(n){return k(n)?f&&(n=it(n)):n=f?be(n):pu(Array.isArray(n)?n:[n]),n}).filter(function(n){return 0!==n.size}),u,i;return 0===r.length?n:1===r.length&&(u=r[0],u===n||f&&v(u)||ct(n)&&ct(u))?u:(i=new ni(r),f?i=i.toKeyedSeq():ct(n)||(i=i.toSetSeq()),i=i.flatten(!0),i.size=r.reduce(function(n,t){if(void 0!==n){var i=t.size;if(void 0!==i)return n+i}},0),i)}function go(n,t,i){var u=ti(n);return u.__iterateUncached=function(r,u){function f(n,s){var h=this;n.__iterate(function(n,u){return(!t||t>s)&&k(n)?f(n,s+1):r(n,i?u:e++,h)===!1&&(o=!0),!o},u)}var e=0,o=!1;return f(n,0),e},u.__iteratorUncached=function(u,f){var o=n.__iterator(u,f),s=[],h=0;return new r(function(){for(var r,n;o;)if(r=o.next(),r.done===!1){if(n=r.value,u===ui&&(n=n[1]),t&&!(t>s.length)||!k(n))return i?r:e(u,h++,n,r);s.push(o);o=n.__iterator(u,f)}else o=s.pop();return ft()})},u}function tc(n,t,i){var r=rs(n);return n.toSeq().map(function(u,f){return r(t.call(i,u,f,n))}).flatten(!0)}function ic(n,t){var i=ti(n);return i.size=n.size&&2*n.size-1,i.__iterateUncached=function(i,r){var f=this,u=0;return n.__iterate(function(n){return(!u||i(t,u++,f)!==!1)&&i(n,u++,f)!==!1},r),u},i.__iteratorUncached=function(i,u){var f,s=n.__iterator(wt,u),o=0;return new r(function(){return(!f||o%2)&&(f=s.next(),f.done)?f:o%2?e(i,o++,t):e(i,o++,f.value,f)})},i}function tr(n,t,i){t||(t=us);var u=v(n),f=0,r=n.toSeq().map(function(t,r){return[r,t,f++,i?i(t,r,n):t]}).toArray();return r.sort(function(n,i){return t(n[3],i[3])||n[2]-i[2]}).forEach(u?function(n,t){r[t].length=2}:function(n,t){r[t]=n[1]}),u?at(r):ct(n)?l(r):gt(r)}function eu(n,t,i){if(t||(t=us),i){var r=n.toSeq().map(function(t,r){return[t,i(t,r,n)]}).reduce(function(n,i){return ns(t,n[1],i[1])?i:n});return r&&r[0]}return n.reduce(function(n,i){return ns(t,n,i)?i:n})}function ns(n,t,i){var r=n(i,t);return 0===r&&i!==t&&(void 0===i||null===i||i!==i)||r>0}function vf(n,t,i){var u=ti(n);return u.size=new ni(i).map(function(n){return n.size}).min(),u.__iterate=function(n,t){for(var i,u=this.__iterator(wt,t),r=0;!(i=u.next()).done&&n(i.value,r++,this)!==!1;);return r},u.__iteratorUncached=function(n,u){var o=i.map(function(n){return n=c(n),er(u?n.reverse():n)}),s=0,f=!1;return new r(function(){var i;return f||(i=o.map(function(n){return n.next()}),f=i.some(function(n){return n.done})),f?ft():e(n,s++,t.apply(null,i.map(function(n){return n.value})))})},u}function f(n,t){return yu(n)?t:n.constructor(t)}function ts(n){if(n!==Object(n))throw new TypeError("Expected [K, V] tuple: "+n);}function is(n){return st(n.size),vu(n)}function rs(n){return v(n)?it:ct(n)?bt:ut}function ti(n){return Object.create((v(n)?at:ct(n)?l:gt).prototype)}function yf(){return this._iter.cacheResult?(this._iter.cacheResult(),this.size=this._iter.size,this):w.prototype.cacheResult.call(this)}function us(n,t){return n>t?1:t>n?-1:0}function fs(n){var t=er(n);if(!t){if(!we(n))throw new TypeError("Expected iterable or array-like: "+n);t=er(c(n))}return t}function ht(n,t){var f,r=function(e){if(e instanceof r)return e;if(!(this instanceof r))return new r(e);if(!f){f=!0;var o=Object.keys(n);rc(u,o);u.size=o.length;u._name=t;u._keys=o;u._defaultValues=n}this._map=i(e)},u=r.prototype=Object.create(b);return u.constructor=r,r}function ou(n,t,i){var r=Object.create(Object.getPrototypeOf(n));return r._map=t,r.__ownerID=i,r}function es(n){return n._name||n.constructor.name||"Record"}function rc(n,t){try{t.forEach(uc.bind(void 0,n))}catch(i){}}function uc(n,t){Object.defineProperty(n,t,{get:function(){return this.get(t)},set:function(n){tu(this.__ownerID,"Cannot set on an immutable record.");this.set(t,n)}})}function h(n){return null===n||void 0===n?bf():pf(n)&&!dt(n)?n:bf().withMutations(function(t){var i=ut(n);st(i.size);i.forEach(function(n){return t.add(n)})})}function pf(n){return!(!n||!n[ce])}function wf(n,t){return n.__ownerID?(n.size=t.size,n._map=t,n):t===n._map?n:0===t.size?n.__empty():n.__make(t)}function os(n,t){var i=Object.create(et);return i.size=n?n.size:0,i._map=n,i.__ownerID=t,i}function bf(){return fh||(fh=os(kt()))}function ii(n){return null===n||void 0===n?kf():ss(n)?n:kf().withMutations(function(t){var i=ut(n);st(i.size);i.forEach(function(n){return t.add(n)})})}function ss(n){return pf(n)&&dt(n)}function hs(n,t){var i=Object.create(kr);return i.size=n?n.size:0,i._map=n,i.__ownerID=t,i}function kf(){return eh||(eh=hs(fu()))}function p(n){return null===n||void 0===n?df():cs(n)?n:df().unshiftAll(n)}function cs(n){return!(!n||!n[le])}function yr(n,t,i,r){var u=Object.create(vi);return u.size=n,u._head=t,u.__ownerID=i,u.__hash=r,u.__altered=!1,u}function df(){return oh||(oh=yr(0))}function ri(n,t){var i=function(i){n.prototype[i]=t[i]};return Object.keys(t).forEach(i),Object.getOwnPropertySymbols&&Object.getOwnPropertySymbols(t).forEach(i),n}function fc(n,t){return t}function ec(n,t){return[t,n]}function su(n){return function(){return!n.apply(this,arguments)}}function ls(n){return function(){return-n.apply(this,arguments)}}function as(n){return"string"==typeof n?JSON.stringify(n):n+""}function oc(){return ei(arguments)}function vs(n,t){return t>n?1:n>t?-1:0}function sc(n){if(n.size===1/0)return 0;var i=dt(n),r=v(n),t=i?1:0,u=n.__iterate(r?i?function(n,i){t=31*t+ys(ot(n),ot(i))|0}:function(n,i){t=t+ys(ot(n),ot(i))|0}:i?function(n){t=31*t+ot(n)|0}:function(n){t=t+ot(n)|0});return hc(u,t)}function hc(n,t){return t=br(t,3432918353),t=br(t<<15|t>>>-15,461845907),t=br(t<<13|t>>>-13,5),t=(t+3864292196|0)^n,t=br(t^t>>>16,2246822507),t=br(t^t>>>13,3266489909),t=gu(t^t>>>16)}function ys(n,t){return n^t+2654435769+(n<<6)+(n>>2)|0}var yt=Array.prototype.slice,te,gs,ie,re,hu,ai,se,n,he,nt,rh,rr,uh,b,ce,et,fh,kr,eh,le,vi,oh,tt,dr;u(it,c);u(bt,c);u(ut,c);c.isIterable=k;c.isKeyed=v;c.isIndexed=ct;c.isAssociative=cu;c.isOrdered=dt;c.Keyed=it;c.Indexed=bt;c.Set=ut;var ps="@@__IMMUTABLE_ITERABLE__@@",ws="@@__IMMUTABLE_KEYED__@@",bs="@@__IMMUTABLE_INDEXED__@@",ir="@@__IMMUTABLE_ORDERED__@@",pr="delete",s=5,pt=1<<s,rt=pt-1,t={},cc={value:!1},ks={value:!1},wr=0,wt=1,ui=2,gf="function"==typeof Symbol&&Symbol.iterator,ds="@@iterator",ne=gf||ds;r.prototype.toString=function(){return"[Iterator]"};r.KEYS=wr;r.VALUES=wt;r.ENTRIES=ui;r.prototype.inspect=r.prototype.toSource=function(){return""+this};r.prototype[ne]=function(){return this};u(w,c);w.of=function(){return w(arguments)};w.prototype.toSeq=function(){return this};w.prototype.toString=function(){return this.__toString("Seq {","}")};w.prototype.cacheResult=function(){return!this._cache&&this.__iterateUncached&&(this._cache=this.entrySeq().toArray(),this.size=this._cache.length),this};w.prototype.__iterate=function(n,t){return de(this,n,t,!0)};w.prototype.__iterator=function(n,t){return ge(this,n,t,!0)};u(at,w);at.prototype.toKeyedSeq=function(){return this};u(l,w);l.of=function(){return l(arguments)};l.prototype.toIndexedSeq=function(){return this};l.prototype.toString=function(){return this.__toString("Seq [","]")};l.prototype.__iterate=function(n,t){return de(this,n,t,!1)};l.prototype.__iterator=function(n,t){return ge(this,n,t,!1)};u(gt,w);gt.of=function(){return gt(arguments)};gt.prototype.toSetSeq=function(){return this};w.isSeq=yu;w.Keyed=at;w.Set=gt;w.Indexed=l;te="@@__IMMUTABLE_SEQ__@@";w.prototype[te]=!0;u(ni,l);ni.prototype.get=function(n,t){return this.has(n)?this._array[oi(this,n)]:t};ni.prototype.__iterate=function(n,t){for(var r=this._array,u=r.length-1,i=0;u>=i;i++)if(n(r[t?u-i:i],i,this)===!1)return i+1;return i};ni.prototype.__iterator=function(n,t){var u=this._array,f=u.length-1,i=0;return new r(function(){return i>f?ft():e(n,i,u[t?f-i++:i++])})};u(si,at);si.prototype.get=function(n,t){return void 0===t||this.has(n)?this._object[n]:t};si.prototype.has=function(n){return this._object.hasOwnProperty(n)};si.prototype.__iterate=function(n,t){for(var r,e=this._object,u=this._keys,f=u.length-1,i=0;f>=i;i++)if(r=u[t?f-i:i],n(e[r],r,this)===!1)return i+1;return i};si.prototype.__iterator=function(n,t){var o=this._object,u=this._keys,f=u.length-1,i=0;return new r(function(){var r=u[t?f-i:i];return i++>f?ft():e(n,r,o[r])})};si.prototype[ir]=!0;u(or,l);or.prototype.__iterateUncached=function(n,t){var u;if(t)return this.cacheResult().__iterate(n,t);var f=this._iterable,i=er(f),r=0;if(gr(i))for(;!(u=i.next()).done&&n(u.value,r++,this)!==!1;);return r};or.prototype.__iteratorUncached=function(n,t){var u,i,f;return t?this.cacheResult().__iterator(n,t):(u=this._iterable,i=er(u),!gr(i))?new r(ft):(f=0,new r(function(){var t=i.next();return t.done?t:e(n,f++,t.value)}))};u(sr,l);sr.prototype.__iterateUncached=function(n,t){var f,u;if(t)return this.cacheResult().__iterate(n,t);for(var e=this._iterator,r=this._iteratorCache,i=0;r.length>i;)if(n(r[i],i++,this)===!1)return i;for(;!(f=e.next()).done;)if(u=f.value,r[i]=u,n(u,i++,this)===!1)break;return i};sr.prototype.__iteratorUncached=function(n,t){if(t)return this.cacheResult().__iterator(n,t);var f=this._iterator,u=this._iteratorCache,i=0;return new r(function(){if(i>=u.length){var t=f.next();if(t.done)return t;u[i]=t.value}return e(n,i,u[i++])})};u(g,l);g.prototype.toString=function(){return 0===this.size?"Repeat []":"Repeat [ "+this._value+" "+this.size+" times ]"};g.prototype.get=function(n,t){return this.has(n)?this._value:t};g.prototype.includes=function(n){return y(this._value,n)};g.prototype.slice=function(n,t){var i=this.size;return ur(n,t,i)?this:new g(this._value,fr(t,i)-yi(n,i))};g.prototype.reverse=function(){return this};g.prototype.indexOf=function(n){return y(this._value,n)?0:-1};g.prototype.lastIndexOf=function(n){return y(this._value,n)?this.size:-1};g.prototype.__iterate=function(n){for(var t=0;this.size>t;t++)if(n(this._value,t,this)===!1)return t+1;return t};g.prototype.__iterator=function(n){var t=this,i=0;return new r(function(){return t.size>i?e(n,i++,t._value):ft()})};g.prototype.equals=function(n){return n instanceof g?y(this._value,n._value):du(n)};u(d,l);d.prototype.toString=function(){return 0===this.size?"Range []":"Range [ "+this._start+"..."+this._end+(1!==this._step?" by "+this._step:"")+" ]"};d.prototype.get=function(n,t){return this.has(n)?this._start+oi(this,n)*this._step:t};d.prototype.includes=function(n){var t=(n-this._start)/this._step;return t>=0&&this.size>t&&t===Math.floor(t)};d.prototype.slice=function(n,t){return ur(n,t,this.size)?this:(n=yi(n,this.size),t=fr(t,this.size),n>=t?new d(0,0):new d(this.get(n,this._end),this.get(t,this._end),this._step))};d.prototype.indexOf=function(n){var i=n-this._start,t;return i%this._step==0&&(t=i/this._step,t>=0&&this.size>t)?t:-1};d.prototype.lastIndexOf=function(n){return this.indexOf(n)};d.prototype.__iterate=function(n,t){for(var u=this.size-1,r=this._step,f=t?this._start+u*r:this._start,i=0;u>=i;i++){if(n(f,i,this)===!1)return i+1;f+=t?-r:r}return i};d.prototype.__iterator=function(n,t){var u=this.size-1,i=this._step,f=t?this._start+u*i:this._start,o=0;return new r(function(){var r=f;return f+=t?-i:i,o>u?ft():e(n,o++,r)})};d.prototype.equals=function(n){return n instanceof d?this._start===n._start&&this._end===n._end&&this._step===n._step:du(this,n)};u(hi,c);u(hr,hi);u(pi,hi);u(iu,hi);hi.Keyed=hr;hi.Indexed=pi;hi.Set=iu;var ue,br="function"==typeof Math.imul&&-2===Math.imul(4294967295,2)?Math.imul:function(n,t){n=0|n;t=0|t;var i=65535&n,r=65535&t;return i*r+((n>>>16)*r+i*(t>>>16)<<16>>>0)|0},nh=Object.isExtensible,th=function(){try{return Object.defineProperty({},"@",{}),!0}catch(n){return!1}}(),fe="function"==typeof WeakMap;fe&&(ue=new WeakMap);hu=0;ai="__immutablehash__";"function"==typeof Symbol&&(ai=Symbol(ai));var lc=16,ac=255,ee=0,oe={};u(i,hr);i.of=function(){var n=yt.call(arguments,0);return kt().withMutations(function(t){for(var i=0;n.length>i;i+=2){if(i+1>=n.length)throw Error("Missing value for key: "+n[i]);t.set(n[i],n[i+1])}})};i.prototype.toString=function(){return this.__toString("Map {","}")};i.prototype.get=function(n,t){return this._root?this._root.get(0,void 0,n,t):t};i.prototype.set=function(n,t){return io(this,n,t)};i.prototype.setIn=function(n,i){return this.updateIn(n,t,function(){return i})};i.prototype.remove=function(n){return io(this,n,t)};i.prototype.deleteIn=function(n){return this.updateIn(n,function(){return t})};i.prototype.update=function(n,t,i){return 1===arguments.length?n(this):this.updateIn([n],t,i)};i.prototype.updateIn=function(n,i,r){r||(r=i,i=void 0);var u=oo(this,fs(n),i,r);if(u!==t)return u};i.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._root=null,this.__hash=void 0,this.__altered=!0,this):kt()};i.prototype.merge=function(){return ru(this,void 0,arguments)};i.prototype.mergeWith=function(n){var t=yt.call(arguments,1);return ru(this,n,t)};i.prototype.mergeIn=function(n){var t=yt.call(arguments,1);return this.updateIn(n,kt(),function(n){return"function"==typeof n.merge?n.merge.apply(n,t):t[t.length-1]})};i.prototype.mergeDeep=function(){return ru(this,uo,arguments)};i.prototype.mergeDeepWith=function(n){var t=yt.call(arguments,1);return ru(this,fo(n),t)};i.prototype.mergeDeepIn=function(n){var t=yt.call(arguments,1);return this.updateIn(n,kt(),function(n){return"function"==typeof n.mergeDeep?n.mergeDeep.apply(n,t):t[t.length-1]})};i.prototype.sort=function(n){return a(tr(this,n))};i.prototype.sortBy=function(n,t){return a(tr(this,t,n))};i.prototype.withMutations=function(n){var t=this.asMutable();return n(t),t.wasAltered()?t.__ensureOwner(this.__ownerID):this};i.prototype.asMutable=function(){return this.__ownerID?this:this.__ensureOwner(new au)};i.prototype.asImmutable=function(){return this.__ensureOwner()};i.prototype.wasAltered=function(){return this.__altered};i.prototype.__iterator=function(n,t){return new rf(this,n,t)};i.prototype.__iterate=function(n,t){var r=this,i=0;return this._root&&this._root.iterate(function(t){return i++,n(t[1],t[0],r)},t),i};i.prototype.__ensureOwner=function(n){return n===this.__ownerID?this:n?ff(this.size,this._root,n,this.__hash):(this.__ownerID=n,this.__altered=!1,this)};i.isMap=tf;se="@@__IMMUTABLE_MAP__@@";n=i.prototype;n[se]=!0;n[pr]=n.remove;n.removeIn=n.deleteIn;cr.prototype.get=function(n,t,i,r){for(var f=this.entries,u=0,e=f.length;e>u;u++)if(y(i,f[u][0]))return f[u][1];return r};cr.prototype.update=function(n,i,r,u,f,e,o){for(var a,p,c,l=f===t,s=this.entries,h=0,v=s.length;v>h&&!y(u,s[h][0]);h++);return(a=v>h,a?s[h][1]===f:l)?this:(lt(o),(l||!a)&&lt(e),!l||1!==s.length)?!a&&!l&&s.length>=vc?ah(n,s,u,f):(p=n&&n===this.ownerID,c=p?s:ei(s),a?l?h===v-1?c.pop():c[h]=c.pop():c[h]=[u,f]:c.push([u,f]),p?(this.entries=c,this):new cr(n,c)):void 0};wi.prototype.get=function(n,t,i,r){void 0===t&&(t=ot(i));var u=1<<((0===n?t:t>>>n)&rt),f=this.bitmap;return 0==(f&u)?r:this.nodes[so(f&u-1)].get(n+s,t,i,r)};wi.prototype.update=function(n,i,r,u,f,e,o){void 0===r&&(r=ot(u));var w=(0===i?r:r>>>i)&rt,y=1<<w,a=this.bitmap,l=0!=(a&y);if(!l&&f===t)return this;var v=so(a&y-1),c=this.nodes,b=l?c[v]:void 0,h=ef(b,n,i+s,r,u,f,e,o);if(h===b)return this;if(!l&&h&&c.length>=yc)return yh(n,c,a,w,h);if(l&&!h&&2===c.length&&ro(c[1^v]))return c[1^v];if(l&&h&&1===c.length&&ro(h))return h;var p=n&&n===this.ownerID,k=l?h?a:a^y:a|y,d=l?h?ho(c,v,h,p):wh(c,v,p):ph(c,v,h,p);return p?(this.bitmap=k,this.nodes=d,this):new wi(n,k,d)};lr.prototype.get=function(n,t,i,r){void 0===t&&(t=ot(i));var f=(0===n?t:t>>>n)&rt,u=this.nodes[f];return u?u.get(n+s,t,i,r):r};lr.prototype.update=function(n,i,r,u,f,e,o){var l,h,y,p;void 0===r&&(r=ot(u));var a=(0===i?r:r>>>i)&rt,w=f===t,v=this.nodes,c=v[a];if(w&&!c||(l=ef(c,n,i+s,r,u,f,e,o),l===c))return this;if(h=this.count,c){if(!l&&(h--,pc>h))return vh(n,v,h,a)}else h++;return y=n&&n===this.ownerID,p=ho(v,a,l,y),y?(this.count=h,this.nodes=p,this):new lr(n,h,p)};bi.prototype.get=function(n,t,i,r){for(var f=this.entries,u=0,e=f.length;e>u;u++)if(y(i,f[u][0]))return f[u][1];return r};bi.prototype.update=function(n,i,r,u,f,e,o){var c,v,p,h;if(void 0===r&&(r=ot(u)),c=f===t,r!==this.keyHash)return c?this:(lt(o),lt(e),of(this,n,i,r,[u,f]));for(var l=this.entries,s=0,a=l.length;a>s&&!y(u,l[s][0]);s++);return(v=a>s,v?l[s][1]===f:c)?this:(lt(o),(c||!v)&&lt(e),c&&2===a)?new fi(n,this.keyHash,l[1^s]):(p=n&&n===this.ownerID,h=p?l:ei(l),v?c?s===a-1?h.pop():h[s]=h.pop():h[s]=[u,f]:h.push([u,f]),p?(this.entries=h,this):new bi(n,this.keyHash,h))};fi.prototype.get=function(n,t,i,r){return y(i,this.entry[0])?this.entry[1]:r};fi.prototype.update=function(n,i,r,u,f,e,o){var s=f===t,h=y(u,this.entry[0]);return(h?f===this.entry[1]:s)?this:(lt(o),s?void lt(e):h?n&&n===this.ownerID?(this.entry[1]=f,this):new fi(n,this.keyHash,[u,f]):(lt(e),of(this,n,i,ot(u),[u,f])))};cr.prototype.iterate=bi.prototype.iterate=function(n,t){for(var r=this.entries,i=0,u=r.length-1;u>=i;i++)if(n(r[t?u-i:i])===!1)return!1};wi.prototype.iterate=lr.prototype.iterate=function(n,t){for(var r,u=this.nodes,i=0,f=u.length-1;f>=i;i++)if(r=u[t?f-i:i],r&&r.iterate(n,t)===!1)return!1};fi.prototype.iterate=function(n){return n(this.entry)};u(rf,r);rf.prototype.next=function(){for(var r,n,t,u,f=this._type,i=this._stack;i;){if(n=i.node,t=i.index++,n.entry){if(0===t)return uf(f,n.entry)}else if(n.entries){if(r=n.entries.length-1,r>=t)return uf(f,n.entries[this._reverse?r-t:t])}else if(r=n.nodes.length-1,r>=t){if(u=n.nodes[this._reverse?r-t:t],u){if(u.entry)return uf(f,u.entry);i=this._stack=to(u,i)}continue}i=this._stack=this._stack.__prev}return ft()};var ih,vc=pt/4,yc=pt/2,pc=pt/4;return u(o,pi),o.of=function(){return this(arguments)},o.prototype.toString=function(){return this.__toString("List [","]")},o.prototype.get=function(n,t){if(n=oi(this,n),n>=0&&this.size>n){n+=this._origin;var i=ao(this,n);return i&&i.array[n&rt]}return t},o.prototype.set=function(n,t){return bh(this,n,t)},o.prototype.remove=function(n){return this.has(n)?0===n?this.shift():n===this.size-1?this.pop():this.splice(n,1):this},o.prototype.insert=function(n,t){return this.splice(n,0,t)},o.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=this._origin=this._capacity=0,this._level=s,this._root=this._tail=null,this.__hash=void 0,this.__altered=!0,this):sf()},o.prototype.push=function(){var n=arguments,t=this.size;return this.withMutations(function(i){li(i,0,t+n.length);for(var r=0;n.length>r;r++)i.set(t+r,n[r])})},o.prototype.pop=function(){return li(this,0,-1)},o.prototype.unshift=function(){var n=arguments;return this.withMutations(function(t){li(t,-n.length);for(var i=0;n.length>i;i++)t.set(i,n[i])})},o.prototype.shift=function(){return li(this,1)},o.prototype.merge=function(){return uu(this,void 0,arguments)},o.prototype.mergeWith=function(n){var t=yt.call(arguments,1);return uu(this,n,t)},o.prototype.mergeDeep=function(){return uu(this,uo,arguments)},o.prototype.mergeDeepWith=function(n){var t=yt.call(arguments,1);return uu(this,fo(n),t)},o.prototype.setSize=function(n){return li(this,0,n)},o.prototype.slice=function(n,t){var i=this.size;return ur(n,t,i)?this:li(this,yi(n,i),fr(t,i))},o.prototype.__iterator=function(n,t){var i=0,u=lo(this,t);return new r(function(){var t=u();return t===rr?ft():e(n,i++,t)})},o.prototype.__iterate=function(n,t){for(var i,r=0,u=lo(this,t);(i=u())!==rr&&n(i,r++,this)!==!1;);return r},o.prototype.__ensureOwner=function(n){return n===this.__ownerID?this:n?ar(this._origin,this._capacity,this._level,this._root,this._tail,n,this.__hash):(this.__ownerID=n,this)},o.isList=co,he="@@__IMMUTABLE_LIST__@@",nt=o.prototype,nt[he]=!0,nt[pr]=nt.remove,nt.setIn=n.setIn,nt.deleteIn=nt.removeIn=n.removeIn,nt.update=n.update,nt.updateIn=n.updateIn,nt.mergeIn=n.mergeIn,nt.mergeDeepIn=n.mergeDeepIn,nt.withMutations=n.withMutations,nt.asMutable=n.asMutable,nt.asImmutable=n.asImmutable,nt.wasAltered=n.wasAltered,ci.prototype.removeBefore=function(n,t,i){var r,u,f,e,o,h;if(i===t?1<<t:0===this.array.length)return this;if(r=i>>>t&rt,r>=this.array.length)return new ci([],n);if((f=0===r,t>0&&(e=this.array[r],u=e&&e.removeBefore(n,t-s,i),u===e&&f))||f&&!u)return this;if(o=ki(this,n),!f)for(h=0;r>h;h++)o.array[h]=void 0;return u&&(o.array[r]=u),o},ci.prototype.removeAfter=function(n,t,i){var r,u,f,e;return i===(t?1<<t:0)||0===this.array.length?this:(r=i-1>>>t&rt,r>=this.array.length)?this:t>0&&(f=this.array[r],u=f&&f.removeAfter(n,t-s,i),u===f&&r===this.array.length-1)?this:(e=ki(this,n),e.array.splice(r+1),u&&(e.array[r]=u),e)},rr={},u(a,i),a.of=function(){return this(arguments)},a.prototype.toString=function(){return this.__toString("OrderedMap {","}")},a.prototype.get=function(n,t){var i=this._map.get(n);return void 0!==i?this._list.get(i)[1]:t},a.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._map.clear(),this._list.clear(),this):fu()},a.prototype.set=function(n,t){return yo(this,n,t)},a.prototype.remove=function(n){return yo(this,n,t)},a.prototype.wasAltered=function(){return this._map.wasAltered()||this._list.wasAltered()},a.prototype.__iterate=function(n,t){var i=this;return this._list.__iterate(function(t){return t&&n(t[1],t[0],i)},t)},a.prototype.__iterator=function(n,t){return this._list.fromEntrySeq().__iterator(n,t)},a.prototype.__ensureOwner=function(n){if(n===this.__ownerID)return this;var t=this._map.__ensureOwner(n),i=this._list.__ensureOwner(n);return n?cf(t,i,n,this.__hash):(this.__ownerID=n,this._map=t,this._list=i,this)},a.isOrderedMap=vo,a.prototype[ir]=!0,a.prototype[pr]=a.prototype.remove,u(vt,at),vt.prototype.get=function(n,t){return this._iter.get(n,t)},vt.prototype.has=function(n){return this._iter.has(n)},vt.prototype.valueSeq=function(){return this._iter.valueSeq()},vt.prototype.reverse=function(){var t=this,n=lf(this,!0);return this._useKeys||(n.valueSeq=function(){return t._iter.toSeq().reverse()}),n},vt.prototype.map=function(n,t){var r=this,i=wo(this,n,t);return this._useKeys||(i.valueSeq=function(){return r._iter.toSeq().map(n,t)}),i},vt.prototype.__iterate=function(n,t){var i,r=this;return this._iter.__iterate(this._useKeys?function(t,i){return n(t,i,r)}:(i=t?is(this):0,function(u){return n(u,t?--i:i++,r)}),t)},vt.prototype.__iterator=function(n,t){if(this._useKeys)return this._iter.__iterator(n,t);var u=this._iter.__iterator(wt,t),i=t?is(this):0;return new r(function(){var r=u.next();return r.done?r:e(n,t?--i:i++,r.value,r)})},vt.prototype[ir]=!0,u(di,l),di.prototype.includes=function(n){return this._iter.includes(n)},di.prototype.__iterate=function(n,t){var i=this,r=0;return this._iter.__iterate(function(t){return n(t,r++,i)},t)},di.prototype.__iterator=function(n,t){var i=this._iter.__iterator(wt,t),u=0;return new r(function(){var t=i.next();return t.done?t:e(n,u++,t.value,t)})},u(gi,gt),gi.prototype.has=function(n){return this._iter.includes(n)},gi.prototype.__iterate=function(n,t){var i=this;return this._iter.__iterate(function(t){return n(t,t,i)},t)},gi.prototype.__iterator=function(n,t){var i=this._iter.__iterator(wt,t);return new r(function(){var t=i.next();return t.done?t:e(n,t.value,t.value,t)})},u(nr,at),nr.prototype.entrySeq=function(){return this._iter.toSeq()},nr.prototype.__iterate=function(n,t){var i=this;return this._iter.__iterate(function(t){if(t){ts(t);var r=k(t);return n(r?t.get(1):t[1],r?t.get(0):t[0],i)}},t)},nr.prototype.__iterator=function(n,t){var i=this._iter.__iterator(wt,t);return new r(function(){for(var r,t,u;;){if(r=i.next(),r.done)return r;if(t=r.value,t)return ts(t),u=k(t),e(n,u?t.get(0):t[0],u?t.get(1):t[1],r)}})},di.prototype.cacheResult=vt.prototype.cacheResult=gi.prototype.cacheResult=nr.prototype.cacheResult=yf,u(ht,hr),ht.prototype.toString=function(){return this.__toString(es(this)+" {","}")},ht.prototype.has=function(n){return this._defaultValues.hasOwnProperty(n)},ht.prototype.get=function(n,t){if(!this.has(n))return t;var i=this._defaultValues[n];return this._map?this._map.get(n,i):i},ht.prototype.clear=function(){if(this.__ownerID)return this._map&&this._map.clear(),this;var n=this.constructor;return n._empty||(n._empty=ou(this,kt()))},ht.prototype.set=function(n,t){var r,i;if(!this.has(n))throw Error('Cannot set unknown key "'+n+'" on '+es(this));return this._map&&!this._map.has(n)&&(r=this._defaultValues[n],t===r)?this:(i=this._map&&this._map.set(n,t),this.__ownerID||i===this._map?this:ou(this,i))},ht.prototype.remove=function(n){if(!this.has(n))return this;var t=this._map&&this._map.remove(n);return this.__ownerID||t===this._map?this:ou(this,t)},ht.prototype.wasAltered=function(){return this._map.wasAltered()},ht.prototype.__iterator=function(n,t){var i=this;return it(this._defaultValues).map(function(n,t){return i.get(t)}).__iterator(n,t)},ht.prototype.__iterate=function(n,t){var i=this;return it(this._defaultValues).map(function(n,t){return i.get(t)}).__iterate(n,t)},ht.prototype.__ensureOwner=function(n){if(n===this.__ownerID)return this;var t=this._map&&this._map.__ensureOwner(n);return n?ou(this,t,n):(this.__ownerID=n,this._map=t,this)},b=ht.prototype,b[pr]=b.remove,b.deleteIn=b.removeIn=n.removeIn,b.merge=n.merge,b.mergeWith=n.mergeWith,b.mergeIn=n.mergeIn,b.mergeDeep=n.mergeDeep,b.mergeDeepWith=n.mergeDeepWith,b.mergeDeepIn=n.mergeDeepIn,b.setIn=n.setIn,b.update=n.update,b.updateIn=n.updateIn,b.withMutations=n.withMutations,b.asMutable=n.asMutable,b.asImmutable=n.asImmutable,u(h,iu),h.of=function(){return this(arguments)},h.fromKeys=function(n){return this(it(n).keySeq())},h.prototype.toString=function(){return this.__toString("Set {","}")},h.prototype.has=function(n){return this._map.has(n)},h.prototype.add=function(n){return wf(this,this._map.set(n,!0))},h.prototype.remove=function(n){return wf(this,this._map.remove(n))},h.prototype.clear=function(){return wf(this,this._map.clear())},h.prototype.union=function(){var n=yt.call(arguments,0);return n=n.filter(function(n){return 0!==n.size}),0===n.length?this:0!==this.size||this.__ownerID||1!==n.length?this.withMutations(function(t){for(var i=0;n.length>i;i++)ut(n[i]).forEach(function(n){return t.add(n)})}):this.constructor(n[0])},h.prototype.intersect=function(){var n=yt.call(arguments,0),t;return 0===n.length?this:(n=n.map(function(n){return ut(n)}),t=this,this.withMutations(function(i){t.forEach(function(t){n.every(function(n){return n.includes(t)})||i.remove(t)})}))},h.prototype.subtract=function(){var n=yt.call(arguments,0),t;return 0===n.length?this:(n=n.map(function(n){return ut(n)}),t=this,this.withMutations(function(i){t.forEach(function(t){n.some(function(n){return n.includes(t)})&&i.remove(t)})}))},h.prototype.merge=function(){return this.union.apply(this,arguments)},h.prototype.mergeWith=function(){var n=yt.call(arguments,1);return this.union.apply(this,n)},h.prototype.sort=function(n){return ii(tr(this,n))},h.prototype.sortBy=function(n,t){return ii(tr(this,t,n))},h.prototype.wasAltered=function(){return this._map.wasAltered()},h.prototype.__iterate=function(n,t){var i=this;return this._map.__iterate(function(t,r){return n(r,r,i)},t)},h.prototype.__iterator=function(n,t){return this._map.map(function(n,t){return t}).__iterator(n,t)},h.prototype.__ensureOwner=function(n){if(n===this.__ownerID)return this;var t=this._map.__ensureOwner(n);return n?this.__make(t,n):(this.__ownerID=n,this._map=t,this)},h.isSet=pf,ce="@@__IMMUTABLE_SET__@@",et=h.prototype,et[ce]=!0,et[pr]=et.remove,et.mergeDeep=et.merge,et.mergeDeepWith=et.mergeWith,et.withMutations=n.withMutations,et.asMutable=n.asMutable,et.asImmutable=n.asImmutable,et.__empty=bf,et.__make=os,u(ii,h),ii.of=function(){return this(arguments)},ii.fromKeys=function(n){return this(it(n).keySeq())},ii.prototype.toString=function(){return this.__toString("OrderedSet {","}")},ii.isOrderedSet=ss,kr=ii.prototype,kr[ir]=!0,kr.__empty=kf,kr.__make=hs,u(p,pi),p.of=function(){return this(arguments)},p.prototype.toString=function(){return this.__toString("Stack [","]")},p.prototype.get=function(n,t){var i=this._head;for(n=oi(this,n);i&&n--;)i=i.next;return i?i.value:t},p.prototype.peek=function(){return this._head&&this._head.value},p.prototype.push=function(){if(0===arguments.length)return this;for(var i=this.size+arguments.length,n=this._head,t=arguments.length-1;t>=0;t--)n={value:arguments[t],next:n};return this.__ownerID?(this.size=i,this._head=n,this.__hash=void 0,this.__altered=!0,this):yr(i,n)},p.prototype.pushAll=function(n){if(n=bt(n),0===n.size)return this;st(n.size);var i=this.size,t=this._head;return n.reverse().forEach(function(n){i++;t={value:n,next:t}}),this.__ownerID?(this.size=i,this._head=t,this.__hash=void 0,this.__altered=!0,this):yr(i,t)},p.prototype.pop=function(){return this.slice(1)},p.prototype.unshift=function(){return this.push.apply(this,arguments)},p.prototype.unshiftAll=function(n){return this.pushAll(n)},p.prototype.shift=function(){return this.pop.apply(this,arguments)},p.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._head=void 0,this.__hash=void 0,this.__altered=!0,this):df()},p.prototype.slice=function(n,t){var r,f,u,i;if(ur(n,t,this.size))return this;if(r=yi(n,this.size),f=fr(t,this.size),f!==this.size)return pi.prototype.slice.call(this,n,t);for(u=this.size-r,i=this._head;r--;)i=i.next;return this.__ownerID?(this.size=u,this._head=i,this.__hash=void 0,this.__altered=!0,this):yr(u,i)},p.prototype.__ensureOwner=function(n){return n===this.__ownerID?this:n?yr(this.size,this._head,n,this.__hash):(this.__ownerID=n,this.__altered=!1,this)},p.prototype.__iterate=function(n,t){if(t)return this.reverse().__iterate(n);for(var r=0,i=this._head;i&&n(i.value,r++,this)!==!1;)i=i.next;return r},p.prototype.__iterator=function(n,t){if(t)return this.reverse().__iterator(n);var u=0,i=this._head;return new r(function(){if(i){var t=i.value;return i=i.next,e(n,u++,t)}return ft()})},p.isStack=cs,le="@@__IMMUTABLE_STACK__@@",vi=p.prototype,vi[le]=!0,vi.withMutations=n.withMutations,vi.asMutable=n.asMutable,vi.asImmutable=n.asImmutable,vi.wasAltered=n.wasAltered,c.Iterator=r,ri(c,{toArray:function(){st(this.size);var n=Array(this.size||0);return this.valueSeq().__iterate(function(t,i){n[i]=t}),n},toIndexedSeq:function(){return new di(this)},toJS:function(){return this.toSeq().map(function(n){return n&&"function"==typeof n.toJS?n.toJS():n}).__toJS()},toJSON:function(){return this.toSeq().map(function(n){return n&&"function"==typeof n.toJSON?n.toJSON():n}).__toJS()},toKeyedSeq:function(){return new vt(this,!0)},toMap:function(){return i(this.toKeyedSeq())},toObject:function(){st(this.size);var n={};return this.__iterate(function(t,i){n[i]=t}),n},toOrderedMap:function(){return a(this.toKeyedSeq())},toOrderedSet:function(){return ii(v(this)?this.valueSeq():this)},toSet:function(){return h(v(this)?this.valueSeq():this)},toSetSeq:function(){return new gi(this)},toSeq:function(){return ct(this)?this.toIndexedSeq():v(this)?this.toKeyedSeq():this.toSetSeq()},toStack:function(){return p(v(this)?this.valueSeq():this)},toList:function(){return o(v(this)?this.valueSeq():this)},toString:function(){return"[Iterable]"},__toString:function(n,t){return 0===this.size?n+t:n+" "+this.toSeq().map(this.__toStringMapper).join(", ")+" "+t},concat:function(){var n=yt.call(arguments,0);return f(this,nc(this,n))},includes:function(n){return this.some(function(t){return y(t,n)})},entries:function(){return this.__iterator(ui)},every:function(n,t){st(this.size);var i=!0;return this.__iterate(function(r,u,f){if(!n.call(t,r,u,f))return(i=!1,!1)}),i},filter:function(n,t){return f(this,bo(this,n,t,!0))},find:function(n,t,i){var r=this.findEntry(n,t);return r?r[1]:i},forEach:function(n,t){return st(this.size),this.__iterate(t?n.bind(t):n)},join:function(n){st(this.size);n=void 0!==n?""+n:",";var t="",i=!0;return this.__iterate(function(r){i?i=!1:t+=n;t+=null!==r&&void 0!==r?""+r:""}),t},keys:function(){return this.__iterator(wr)},map:function(n,t){return f(this,wo(this,n,t))},reduce:function(n,t,i){st(this.size);var r,u;return arguments.length<2?u=!0:r=t,this.__iterate(function(t,f,e){u?(u=!1,r=t):r=n.call(i,r,t,f,e)}),r},reduceRight:function(){var n=this.toKeyedSeq().reverse();return n.reduce.apply(n,arguments)},reverse:function(){return f(this,lf(this,!0))},slice:function(n,t){return f(this,af(this,n,t,!0))},some:function(n,t){return!this.every(su(n),t)},sort:function(n){return f(this,tr(this,n))},values:function(){return this.__iterator(wt)},butLast:function(){return this.slice(0,-1)},isEmpty:function(){return void 0!==this.size?0===this.size:!this.some(function(){return!0})},count:function(n,t){return vu(n?this.toSeq().filter(n,t):this)},countBy:function(n,t){return kh(this,n,t)},equals:function(n){return du(this,n)},entrySeq:function(){var n=this,t;return n._cache?new ni(n._cache):(t=n.toSeq().map(ec).toIndexedSeq(),t.fromEntrySeq=function(){return n.toSeq()},t)},filterNot:function(n,t){return this.filter(su(n),t)},findEntry:function(n,t,i){var r=i;return this.__iterate(function(i,u,f){if(n.call(t,i,u,f))return(r=[u,i],!1)}),r},findKey:function(n,t){var i=this.findEntry(n,t);return i&&i[0]},findLast:function(n,t,i){return this.toKeyedSeq().reverse().find(n,t,i)},findLastEntry:function(n,t,i){return this.toKeyedSeq().reverse().findEntry(n,t,i)},findLastKey:function(n,t){return this.toKeyedSeq().reverse().findKey(n,t)},first:function(){return this.find(ae)},flatMap:function(n,t){return f(this,tc(this,n,t))},flatten:function(n){return f(this,go(this,n,!0))},fromEntrySeq:function(){return new nr(this)},get:function(n,t){return this.find(function(t,i){return y(i,n)},void 0,t)},getIn:function(n,i){for(var u,e,r=this,f=fs(n);!(u=f.next()).done;)if(e=u.value,r=r&&r.get?r.get(e,t):t,r===t)return i;return r},groupBy:function(n,t){return dh(this,n,t)},has:function(n){return this.get(n,t)!==t},hasIn:function(n){return this.getIn(n,t)!==t},isSubset:function(n){return n="function"==typeof n.includes?n:c(n),this.every(function(t){return n.includes(t)})},isSuperset:function(n){return n="function"==typeof n.isSubset?n:c(n),n.isSubset(this)},keyOf:function(n){return this.findKey(function(t){return y(t,n)})},keySeq:function(){return this.toSeq().map(fc).toIndexedSeq()},last:function(){return this.toSeq().reverse().first()},lastKeyOf:function(n){return this.toKeyedSeq().reverse().keyOf(n)},max:function(n){return eu(this,n)},maxBy:function(n,t){return eu(this,t,n)},min:function(n){return eu(this,n?ls(n):vs)},minBy:function(n,t){return eu(this,t?ls(t):vs,n)},rest:function(){return this.slice(1)},skip:function(n){return this.slice(Math.max(0,n))},skipLast:function(n){return f(this,this.toSeq().reverse().skip(n).reverse())},skipWhile:function(n,t){return f(this,ko(this,n,t,!0))},skipUntil:function(n,t){return this.skipWhile(su(n),t)},sortBy:function(n,t){return f(this,tr(this,t,n))},take:function(n){return this.slice(0,Math.max(0,n))},takeLast:function(n){return f(this,this.toSeq().reverse().take(n).reverse())},takeWhile:function(n,t){return f(this,gh(this,n,t))},takeUntil:function(n,t){return this.takeWhile(su(n),t)},valueSeq:function(){return this.toIndexedSeq()},hashCode:function(){return this.__hash||(this.__hash=sc(this))}}),tt=c.prototype,tt[ps]=!0,tt[ne]=tt.values,tt.__toJS=tt.toArray,tt.__toStringMapper=as,tt.inspect=tt.toSource=function(){return""+this},tt.chain=tt.flatMap,tt.contains=tt.includes,ri(it,{flip:function(){return f(this,po(this))},mapEntries:function(n,t){var i=this,r=0;return f(this,this.toSeq().map(function(u,f){return n.call(t,[f,u],r++,i)}).fromEntrySeq())},mapKeys:function(n,t){var i=this;return f(this,this.toSeq().flip().map(function(r,u){return n.call(t,r,u,i)}).flip())}}),dr=it.prototype,dr[ws]=!0,dr[ne]=tt.entries,dr.__toJS=tt.toObject,dr.__toStringMapper=function(n,t){return JSON.stringify(t)+": "+as(n)},ri(bt,{toKeyedSeq:function(){return new vt(this,!1)},filter:function(n,t){return f(this,bo(this,n,t,!1))},findIndex:function(n,t){var i=this.findEntry(n,t);return i?i[0]:-1},indexOf:function(n){var t=this.keyOf(n);return void 0===t?-1:t},lastIndexOf:function(n){var t=this.lastKeyOf(n);return void 0===t?-1:t},reverse:function(){return f(this,lf(this,!1))},slice:function(n,t){return f(this,af(this,n,t,!1))},splice:function(n,t){var i=arguments.length,r;return(t=Math.max(0|t,0),0===i||2===i&&!t)?this:(n=yi(n,0>n?this.count():this.size),r=this.slice(0,n),f(this,1===i?r:r.concat(ei(arguments,2),this.slice(n+t))))},findLastIndex:function(n,t){var i=this.findLastEntry(n,t);return i?i[0]:-1},first:function(){return this.get(0)},flatten:function(n){return f(this,go(this,n,!1))},get:function(n,t){return n=oi(this,n),0>n||this.size===1/0||void 0!==this.size&&n>this.size?t:this.find(function(t,i){return i===n},void 0,t)},has:function(n){return n=oi(this,n),n>=0&&(void 0!==this.size?this.size===1/0||this.size>n:-1!==this.indexOf(n))},interpose:function(n){return f(this,ic(this,n))},interleave:function(){var t=[this].concat(ei(arguments)),n=vf(this.toSeq(),l.of,t),i=n.flatten(!0);return n.size&&(i.size=n.size*t.length),f(this,i)},keySeq:function(){return d(0,this.size)},last:function(){return this.get(-1)},skipWhile:function(n,t){return f(this,ko(this,n,t,!1))},zip:function(){var n=[this].concat(ei(arguments));return f(this,vf(this,oc,n))},zipWith:function(n){var t=ei(arguments);return t[0]=this,f(this,vf(this,n,t))}}),bt.prototype[bs]=!0,bt.prototype[ir]=!0,ri(ut,{get:function(n,t){return this.has(n)?n:t},includes:function(n){return this.has(n)},keySeq:function(){return this.valueSeq()}}),ut.prototype.has=tt.includes,ut.prototype.contains=ut.prototype.includes,ri(at,it.prototype),ri(l,bt.prototype),ri(gt,ut.prototype),ri(hr,it.prototype),ri(pi,bt.prototype),ri(iu,ut.prototype),{Iterable:c,Seq:w,Collection:hi,Map:i,OrderedMap:a,List:o,Stack:p,Set:h,OrderedSet:ii,Record:ht,Range:d,Repeat:g,is:y,fromJS:wu}})