xote 1.0.3 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +11 -18
- package/README.md +99 -42
- package/dist/xote.cjs +1 -1
- package/dist/xote.mjs +764 -416
- package/dist/xote.umd.js +1 -1
- package/package.json +10 -6
- package/dist/xote.cjs.map +0 -1
- package/dist/xote.mjs.map +0 -1
- package/dist/xote.umd.js.map +0 -1
package/dist/xote.umd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(l,S){typeof exports=="object"&&typeof module<"u"?S(exports):typeof define=="function"&&define.amd?define(["exports"],S):(l=typeof globalThis<"u"?globalThis:l||self,S(l.xote={}))})(this,(function(l){"use strict";var S=(function(n,e){for(var r in n)e(r)});function R(n,e){if(n===e)return!0;var r=typeof n;if(r==="string"||r==="number"||r==="bigint"||r==="boolean"||r==="undefined"||n===null)return!1;var t=typeof e;if(r==="function"||t==="function")throw{RE_EXN_ID:"Invalid_argument",_1:"equal: functional value",Error:new Error};if(t==="number"||t==="bigint"||t==="undefined"||e===null)return!1;var u=n.TAG,i=e.TAG;if(u===248)return n[1]===e[1];if(u===251)throw{RE_EXN_ID:"Invalid_argument",_1:"equal: abstract value",Error:new Error};if(u!==i)return!1;var a=n.length|0,o=e.length|0;if(a===o)if(Array.isArray(n))for(var f=0;;){var c=f;if(c===a)return!0;if(!R(n[c],e[c]))return!1;f=c+1|0}else{if(n instanceof Date&&e instanceof Date)return!(n>e||n<e);var I={contents:!0},le=function(C){if(!Object.prototype.hasOwnProperty.call(e,C)){I.contents=!1;return}},pe=function(C){if(!Object.prototype.hasOwnProperty.call(n,C)||!R(e[C],n[C])){I.contents=!1;return}};return S(n,le),I.contents&&S(e,pe),I.contents}else return!1}function z(n,e,r){for(var t=new Array(r),u=0,i=e;u<r;)t[u]=n[i],u=u+1|0,i=i+1|0;return t}function q(n,e){for(;;){var r=e,t=n,u=t.length,i=u===0?1:u,a=r.length,o=i-a|0;if(o===0)return t.apply(null,r);if(o>=0)return(function(f,c){return function(I){return q(f,c.concat([I]))}})(t,r);e=z(r,i,-o|0),n=t.apply(null,z(r,0,i))}}function en(n,e){var r=n.length;if(r===1)return n(e);switch(r){case 1:return n(e);case 2:return function(t){return n(e,t)};case 3:return function(t,u){return n(e,t,u)};case 4:return function(t,u,i){return n(e,t,u,i)};case 5:return function(t,u,i,a){return n(e,t,u,i,a)};case 6:return function(t,u,i,a,o){return n(e,t,u,i,a,o)};case 7:return function(t,u,i,a,o,f){return n(e,t,u,i,a,o,f)};default:return q(n,[e])}}function rn(n){var e=n.length;return e===1?n:function(r){return en(n,r)}}function tn(n){return n===void 0?{BS_PRIVATE_NESTED_SOME_NONE:0}:n!==null&&n.BS_PRIVATE_NESTED_SOME_NONE!==void 0?{BS_PRIVATE_NESTED_SOME_NONE:n.BS_PRIVATE_NESTED_SOME_NONE+1|0}:n}function D(n){if(!(n!==null&&n.BS_PRIVATE_NESTED_SOME_NONE!==void 0))return n;var e=n.BS_PRIVATE_NESTED_SOME_NONE;if(e!==0)return{BS_PRIVATE_NESTED_SOME_NONE:e-1|0}}function T(n){return n!==void 0?n.h:0}function p(n,e,r,t){var u=T(n),i=T(t);return{k:e,v:r,h:u>=i?u+1|0:i+1|0,l:n,r:t}}function un(n,e){return{k:n,v:e,h:1,l:void 0,r:void 0}}function on(n,e){return n.v===e?n:{k:n.k,v:e,h:n.h,l:n.l,r:n.r}}function O(n,e,r,t){var u=n!==void 0?n.h:0,i=t!==void 0?t.h:0;if(u>(i+2|0)){var a=n.l,o=n.r;return T(a)>=T(o)?p(a,n.k,n.v,p(o,e,r,t)):p(p(a,n.k,n.v,o.l),o.k,o.v,p(o.r,e,r,t))}if(i<=(u+2|0))return{k:e,v:r,h:u>=i?u+1|0:i+1|0,l:n,r:t};var f=t.l,c=t.r;return T(c)>=T(f)?p(p(n,e,r,f),t.k,t.v,c):p(p(n,e,r,f.l),f.k,f.v,p(f.r,t.k,t.v,c))}function L(n,e,r){var t=n.l;return t!==void 0?O(L(t,e,r),n.k,n.v,n.r):(e.contents=n.k,r.contents=n.v,n.r)}function an(n,e){for(;;){var r=n;if(r===void 0)return;var t=r.k;if(e===t)return tn(r.v);n=e<t?r.l:r.r}}function E(n,e,r){if(n===void 0)return un(e,r);var t=n.k;if(e===t)return on(n,r);var u=n.v;return e<t?O(E(n.l,e,r),t,u,n.r):O(n.l,t,u,E(n.r,e,r))}function B(n,e){var r=n.k,t=n.l,u=n.r;if(e===r){if(t===void 0)return u;if(u===void 0)return t;var i={contents:u.k},a={contents:u.v},o=L(u,i,a);return O(t,i.contents,a.contents,o)}if(e<r){if(t===void 0)return n;var f=B(t,e);return f===t?n:O(f,r,n.v,u)}if(u===void 0)return n;var c=B(u,e);return O(t,r,n.v,c)}function fn(n,e){if(n!==void 0)return B(n,e)}var g=an;function H(n){if(n!==void 0)return D(n);throw{RE_EXN_ID:"Not_found",Error:new Error}}function h(n,e,r){var t=n!==void 0?n.h:0,u=r!==void 0?r.h:0;return{v:e,h:(t>=u?t:u)+1|0,l:n,r}}function cn(n){return{v:n,h:1,l:void 0,r:void 0}}function W(n,e){return e!==void 0?n!==void 0?n.h>=e.h:!1:!0}function b(n,e,r){var t=n!==void 0?n.h:0,u=r!==void 0?r.h:0;if(t>(u+2|0)){var i=n.l,a=n.r;return W(i,a)?h(i,n.v,h(a,e,r)):h(h(i,n.v,a.l),a.v,h(a.r,e,r))}if(u<=(t+2|0))return{v:e,h:(t>=u?t:u)+1|0,l:n,r};var o=r.l,f=r.r;return W(f,o)?h(h(n,e,o),r.v,f):h(h(n,e,o.l),o.v,h(o.r,r.v,f))}function U(n,e){var r=n.l;return r!==void 0?b(U(r,e),n.v,n.r):(e.contents=n.v,n.r)}function J(n,e){for(;;){var r=n;if(r===void 0)return;J(r.l,e),e(r.v),n=r.r}}function vn(n,e){J(n,rn(e))}function dn(n,e){for(;;){var r=n;if(r===void 0)return!1;var t=r.v;if(e===t)return!0;n=e<t?r.l:r.r}}function $(n,e){if(n===void 0)return cn(e);var r=n.v;if(e===r)return n;var t=n.l,u=n.r;if(e<r){var i=$(t,e);return i===t?n:b(i,r,u)}var a=$(u,e);return a===u?n:b(t,r,a)}function G(n,e){if(n===void 0)return n;var r=n.v,t=n.l,u=n.r;if(e===r){if(t===void 0)return u;if(u===void 0)return t;var i={contents:u.v},a=U(u,i);return b(t,i.contents,a)}if(e<r){var o=G(t,e);return o===t?n:b(o,r,u)}var f=G(u,e);return f===u?n:b(t,r,f)}var sn=dn,k=vn,_={contents:void 0},d={contents:void 0},ln={contents:void 0},v={contents:void 0},m={contents:void 0},y={contents:!1};function M(n){var e=g(d.contents,n);if(e===void 0){d.contents=E(d.contents,n,void 0);return}}function Q(n,e){M(e);var r=H(g(_.contents,n));if(R(v.contents,n)&&sn(r.deps,e)===!1){r.deps=$(r.deps,e);var t=H(g(d.contents,e));d.contents=E(d.contents,e,$(t,n))}}function N(n){k(n.deps,(function(e){var r=g(d.contents,e);if(r!==void 0){d.contents=E(d.contents,e,G(D(r),n.id));return}})),n.deps=void 0}function w(n){if(m.contents=$(m.contents,n),y.contents===!1){var e=m.contents;m.contents=void 0,k(e,(function(r){var t=g(_.contents,r);if(t!==void 0){N(t),v.contents=r,t.run(),v.contents=void 0;return}}))}}function Y(n){M(n);var e=g(d.contents,n);if(e!==void 0)return k(D(e),w)}function pn(n){var e=v.contents;v.contents=void 0;var r=n();return v.contents=e,r}function hn(n){var e=y.contents;y.contents=!0;var r=n();if(y.contents=e,m.contents!==void 0){var t=m.contents;m.contents=void 0,k(t,(function(u){w(u)}))}return r}var _n,mn,En,gn;const Sn=Object.freeze(Object.defineProperty({__proto__:null,Id:gn,IntMap:mn,IntSet:_n,Observer:En,addDep:Q,batch:hn,batching:y,clearDeps:N,currentObserverId:v,ensureSignalBucket:M,notify:Y,observers:_,pending:m,schedule:w,signalObservers:d,signalPeeks:ln,untrack:pn},Symbol.toStringTag,{value:"Module"}));var X={contents:0};function F(){return X.contents=X.contents+1|0,X.contents}function V(n){var e=F(),r={id:e,kind:"Effect",run:(function(){n()}),deps:void 0};_.contents=E(_.contents,e,r),N(r),v.contents=e,r.run(),v.contents=void 0;var t=function(){var u=g(_.contents,e);if(u!==void 0){N(u),_.contents=fn(_.contents,e);return}};return{dispose:t}}var Tn,On,bn,In,$n,yn;const Nn=Object.freeze(Object.defineProperty({__proto__:null,Core:yn,Id:bn,IntMap:On,IntSet:Tn,Observer:In,Signal:$n,run:V},Symbol.toStringTag,{value:"Module"}));function Z(n){var e=F();return M(e),{id:e,value:{contents:n},version:{contents:0}}}function P(n){var e=v.contents;return e!==void 0&&Q(e,n.id),n.value.contents}function K(n){return n.value.contents}function j(n,e){n.value.contents=e,n.version.contents=n.version.contents+1|0,Y(n.id)}function An(n,e){j(n,e(n.value.contents))}var Cn,kn,Mn,Pn,jn;const Rn=Object.freeze(Object.defineProperty({__proto__:null,Core:jn,Id:Pn,IntMap:kn,IntSet:Cn,Observer:Mn,get:P,make:Z,peek:K,set:j,update:An},Symbol.toStringTag,{value:"Module"}));function x(n){var e=Z(),r={contents:!1},t=F(),u=function(){var a=n();return r.contents===!1&&(r.contents=!0),j(e,a)},i={id:t,kind:{NAME:"Computed",VAL:e.id},run:u,deps:void 0};return _.contents=E(_.contents,t,i),N(i),v.contents=t,i.run(),v.contents=void 0,e}var Dn,Bn,Gn,wn,Xn,Fn;const Vn=Object.freeze(Object.defineProperty({__proto__:null,Core:wn,Id:Fn,IntMap:Bn,IntSet:Dn,Observer:Xn,Signal:Gn,make:x},Symbol.toStringTag,{value:"Module"}));function zn(n){return{TAG:"Text",_0:n}}function qn(n){return{TAG:"SignalText",_0:n}}function Ln(n){return{TAG:"Fragment",_0:n}}function Hn(n){return{TAG:"SignalFragment",_0:n}}function Wn(n,e){var r=x(function(){return P(n).map(e)});return{TAG:"SignalFragment",_0:r}}function s(n,e,r,t,u){var i=e!==void 0?e:[].map(function(f){return f}),a=r!==void 0?r:[].map(function(f){return f}),o=t!==void 0?t:[].map(function(f){return f});return{TAG:"Element",tag:n,attrs:i,events:a,children:o}}function Un(n,e,r,t){return s("div",n,e,r)}function Jn(n,e,r,t){return s("span",n,e,r)}function Qn(n,e,r,t){return s("button",n,e,r)}function Yn(n,e,r){return s("input",n,e,void 0)}function Zn(n,e,r,t){return s("h1",n,e,r)}function Kn(n,e,r,t){return s("h2",n,e,r)}function xn(n,e,r,t){return s("h3",n,e,r)}function ne(n,e,r,t){return s("p",n,e,r)}function ee(n,e,r,t){return s("ul",n,e,r)}function re(n,e,r,t){return s("li",n,e,r)}function A(n){switch(n.TAG){case"Element":var e=document.createElement(n.tag);return n.attrs.forEach(function(o){e.setAttribute(o[0],o[1])}),n.events.forEach(function(o){e.addEventListener(o[0],o[1])}),n.children.forEach(function(o){var f=A(o);e.appendChild(f)}),e;case"Text":return document.createTextNode(n._0);case"SignalText":var r=n._0,t=document.createTextNode(K(r));return V(function(){var o=P(r);t.textContent=o}),t;case"Fragment":var u=document.createDocumentFragment();return n._0.forEach(function(o){var f=A(o);u.appendChild(f)}),u;case"SignalFragment":var i=n._0,a=document.createElement("div");return a.setAttribute("data-signal-fragment","true"),a.setAttribute("style","display: contents"),V(function(){var o=P(i);a.innerHTML="",o.forEach(function(f){var c=A(f);a.appendChild(c)})}),a}}function nn(n,e){var r=A(n);e.appendChild(r)}function te(n,e){var r=document.getElementById(e);if(r==null){console.error("Container element not found: "+e);return}else return nn(n,r)}var ue,ie,oe,ae,fe=Object.freeze(Object.defineProperty({__proto__:null,Computed:ae,Core:oe,Effect:ie,Signal:ue,button:Qn,div:Un,element:s,fragment:Ln,h1:Zn,h2:Kn,h3:xn,input:Yn,li:re,list:Wn,mount:nn,mountById:te,p:ne,render:A,signalFragment:Hn,span:Jn,text:zn,textSignal:qn,ul:ee},Symbol.toStringTag,{value:"Module"})),ce=Vn,ve=Sn,de=Nn,se=Rn;l.Component=fe,l.Computed=ce,l.Core=ve,l.Effect=de,l.Signal=se,Object.defineProperty(l,Symbol.toStringTag,{value:"Module"})}));
|
|
1
|
+
(function(v,N){typeof exports=="object"&&typeof module<"u"?N(exports):typeof define=="function"&&define.amd?define(["exports"],N):(v=typeof globalThis<"u"?globalThis:v||self,N(v.xote={}))})(this,(function(v){"use strict";function N(e){return e===void 0?{BS_PRIVATE_NESTED_SOME_NONE:0}:e!==null&&e.BS_PRIVATE_NESTED_SOME_NONE!==void 0?{BS_PRIVATE_NESTED_SOME_NONE:e.BS_PRIVATE_NESTED_SOME_NONE+1|0}:e}function s(e){if(!(e!==null&&e.BS_PRIVATE_NESTED_SOME_NONE!==void 0))return e;var n=e.BS_PRIVATE_NESTED_SOME_NONE;if(n!==0)return{BS_PRIVATE_NESTED_SOME_NONE:n-1|0}}function $e(e){return e!==void 0}var K={contents:0};function q(){return K.contents=K.contents+1|0,K.contents}var ne=(function(e,n){for(var r in e)n(r)});function J(e,n){if(e===n)return!0;var r=typeof e;if(r==="string"||r==="number"||r==="bigint"||r==="boolean"||r==="undefined"||e===null)return!1;var t=typeof n;if(r==="function"||t==="function")throw{RE_EXN_ID:"Invalid_argument",_1:"equal: functional value",Error:new Error};if(t==="number"||t==="bigint"||t==="undefined"||n===null)return!1;var u=e.TAG,i=n.TAG;if(u===248)return e[1]===n[1];if(u===251)throw{RE_EXN_ID:"Invalid_argument",_1:"equal: abstract value",Error:new Error};if(u!==i)return!1;var o=e.length|0,a=n.length|0;if(o===a)if(Array.isArray(e))for(var f=0;;){var c=f;if(c===o)return!0;if(!J(e[c],n[c]))return!1;f=c+1|0}else{if(e instanceof Date&&n instanceof Date)return!(e>n||e<n);var d={contents:!0},E=function(y){if(!Object.prototype.hasOwnProperty.call(n,y)){d.contents=!1;return}},L=function(y){if(!Object.prototype.hasOwnProperty.call(e,y)||!J(n[y],e[y])){d.contents=!1;return}};return ne(e,E),d.contents&&ne(n,L),d.contents}else return!1}function re(e,n,r){for(var t=new Array(r),u=0,i=n;u<r;)t[u]=e[i],u=u+1|0,i=i+1|0;return t}function te(e,n){for(;;){var r=n,t=e,u=t.length,i=u===0?1:u,o=r.length,a=i-o|0;if(a===0)return t.apply(null,r);if(a>=0)return(function(f,c){return function(d){return te(f,c.concat([d]))}})(t,r);n=re(r,i,-a|0),e=t.apply(null,re(r,0,i))}}function be(e,n){var r=e.length;if(r===1)return e(n);switch(r){case 1:return e(n);case 2:return function(t){return e(n,t)};case 3:return function(t,u){return e(n,t,u)};case 4:return function(t,u,i){return e(n,t,u,i)};case 5:return function(t,u,i,o){return e(n,t,u,i,o)};case 6:return function(t,u,i,o,a){return e(n,t,u,i,o,a)};case 7:return function(t,u,i,o,a,f){return e(n,t,u,i,o,a,f)};default:return te(e,[n])}}function Te(e){var n=e.length;return n===1?e:function(r){return be(e,r)}}function k(e){return e!==void 0?e.h:0}function m(e,n,r,t){var u=k(e),i=k(t);return{k:n,v:r,h:u>=i?u+1|0:i+1|0,l:e,r:t}}function Ae(e,n){return{k:e,v:n,h:1,l:void 0,r:void 0}}function Ce(e,n){return e.v===n?e:{k:e.k,v:n,h:e.h,l:e.l,r:e.r}}function O(e,n,r,t){var u=e!==void 0?e.h:0,i=t!==void 0?t.h:0;if(u>(i+2|0)){var o=e.l,a=e.r;return k(o)>=k(a)?m(o,e.k,e.v,m(a,n,r,t)):m(m(o,e.k,e.v,a.l),a.k,a.v,m(a.r,n,r,t))}if(i<=(u+2|0))return{k:n,v:r,h:u>=i?u+1|0:i+1|0,l:e,r:t};var f=t.l,c=t.r;return k(c)>=k(f)?m(m(e,n,r,f),t.k,t.v,c):m(m(e,n,r,f.l),f.k,f.v,m(f.r,t.k,t.v,c))}function ue(e,n,r){var t=e.l;return t!==void 0?O(ue(t,n,r),e.k,e.v,e.r):(n.contents=e.k,r.contents=e.v,e.r)}function je(e,n){for(;;){var r=e;if(r===void 0)return;var t=r.k;if(n===t)return N(r.v);e=n<t?r.l:r.r}}function A(e,n,r){if(e===void 0)return Ae(n,r);var t=e.k;if(n===t)return Ce(e,r);var u=e.v;return n<t?O(A(e.l,n,r),t,u,e.r):O(e.l,t,u,A(e.r,n,r))}function W(e,n){var r=e.k,t=e.l,u=e.r;if(n===r){if(t===void 0)return u;if(u===void 0)return t;var i={contents:u.k},o={contents:u.v},a=ue(u,i,o);return O(t,i.contents,o.contents,a)}if(n<r){if(t===void 0)return e;var f=W(t,n);return f===t?e:O(f,r,e.v,u)}if(u===void 0)return e;var c=W(u,n);return O(t,r,e.v,c)}function ke(e,n){if(e!==void 0)return W(e,n)}var C=je;function ie(e){if(e!==void 0)return s(e);throw{RE_EXN_ID:"Not_found",Error:new Error}}function _(e,n,r){var t=e!==void 0?e.h:0,u=r!==void 0?r.h:0;return{v:n,h:(t>=u?t:u)+1|0,l:e,r}}function Oe(e){return{v:e,h:1,l:void 0,r:void 0}}function ae(e,n){return n!==void 0?e!==void 0?e.h>=n.h:!1:!0}function I(e,n,r){var t=e!==void 0?e.h:0,u=r!==void 0?r.h:0;if(t>(u+2|0)){var i=e.l,o=e.r;return ae(i,o)?_(i,e.v,_(o,n,r)):_(_(i,e.v,o.l),o.v,_(o.r,n,r))}if(u<=(t+2|0))return{v:n,h:(t>=u?t:u)+1|0,l:e,r};var a=r.l,f=r.r;return ae(f,a)?_(_(e,n,a),r.v,f):_(_(e,n,a.l),a.v,_(a.r,r.v,f))}function oe(e,n){var r=e.l;return r!==void 0?I(oe(r,n),e.v,e.r):(n.contents=e.v,e.r)}function fe(e,n){for(;;){var r=e;if(r===void 0)return;fe(r.l,n),n(r.v),e=r.r}}function Ie(e,n){fe(e,Te(n))}function Me(e,n){for(;;){var r=e;if(r===void 0)return!1;var t=r.v;if(n===t)return!0;e=n<t?r.l:r.r}}function w(e,n){if(e===void 0)return Oe(n);var r=e.v;if(n===r)return e;var t=e.l,u=e.r;if(n<r){var i=w(t,n);return i===t?e:I(i,r,u)}var o=w(u,n);return o===u?e:I(t,r,o)}function H(e,n){if(e===void 0)return e;var r=e.v,t=e.l,u=e.r;if(n===r){if(t===void 0)return u;if(u===void 0)return t;var i={contents:u.v},o=oe(u,i);return I(t,i.contents,o)}if(n<r){var a=H(t,n);return a===t?e:I(a,r,u)}var f=H(u,n);return f===u?e:I(t,r,f)}var Ne=Me,B=Ie,g={contents:void 0},p={contents:void 0},we={contents:void 0},l={contents:void 0},$={contents:void 0},P={contents:!1};function F(e){var n=C(p.contents,e);if(n===void 0){p.contents=A(p.contents,e,void 0);return}}function ce(e,n){F(n);var r=ie(C(g.contents,e));if(J(l.contents,e)&&Ne(r.deps,n)===!1){r.deps=w(r.deps,n);var t=ie(C(p.contents,n));p.contents=A(p.contents,n,w(t,e))}}function R(e){B(e.deps,(function(n){var r=C(p.contents,n);if(r!==void 0){p.contents=A(p.contents,n,H(s(r),e.id));return}})),e.deps=void 0}function U(e){if($.contents=w($.contents,e),P.contents===!1){var n=$.contents;$.contents=void 0,B(n,(function(r){var t=C(g.contents,r);if(t!==void 0){R(t),l.contents=r,t.run(),l.contents=void 0;return}}))}}function de(e){F(e);var n=C(p.contents,e);if(n!==void 0)return B(s(n),U)}function Pe(e){var n=l.contents;l.contents=void 0;var r=e();return l.contents=n,r}function Re(e){var n=P.contents;P.contents=!0;var r=e();if(P.contents=n,$.contents!==void 0){var t=$.contents;$.contents=void 0,B(t,(function(u){U(u)}))}return r}var Ge,De,Xe,Ve;const Be=Object.freeze(Object.defineProperty({__proto__:null,Id:Ve,IntMap:De,IntSet:Ge,Observer:Xe,addDep:ce,batch:Re,batching:P,clearDeps:R,currentObserverId:l,ensureSignalBucket:F,notify:de,observers:g,pending:$,schedule:U,signalObservers:p,signalPeeks:we,untrack:Pe},Symbol.toStringTag,{value:"Module"}));function G(e){var n=q(),r={id:n,kind:"Effect",run:(function(){e()}),deps:void 0};g.contents=A(g.contents,n,r),R(r),l.contents=n,r.run(),l.contents=void 0;var t=function(){var u=C(g.contents,n);if(u!==void 0){R(u),g.contents=ke(g.contents,n);return}};return{dispose:t}}var Fe,ze,Le,Ke,qe,Je;const We=Object.freeze(Object.defineProperty({__proto__:null,Core:Je,Id:Le,IntMap:ze,IntSet:Fe,Observer:Ke,Signal:qe,run:G},Symbol.toStringTag,{value:"Module"}));function x(e){var n=q();return F(n),{id:n,value:{contents:e},version:{contents:0}}}function b(e){var n=l.contents;return n!==void 0&&ce(n,e.id),e.value.contents}function z(e){return e.value.contents}function T(e,n){e.value.contents=n,e.version.contents=e.version.contents+1|0,de(e.id)}function He(e,n){T(e,n(e.value.contents))}var Ue,xe,Qe,Ye,Ze;const en=Object.freeze(Object.defineProperty({__proto__:null,Core:Ze,Id:Ye,IntMap:xe,IntSet:Ue,Observer:Qe,get:b,make:x,peek:z,set:T,update:He},Symbol.toStringTag,{value:"Module"}));function M(e){var n=x(),r={contents:!1},t=q(),u=function(){var o=e();return r.contents===!1&&(r.contents=!0),T(n,o)},i={id:t,kind:{NAME:"Computed",VAL:n.id},run:u,deps:void 0};return g.contents=A(g.contents,t,i),R(i),l.contents=t,i.run(),l.contents=void 0,n}var nn,rn,tn,un,an,on;const fn=Object.freeze(Object.defineProperty({__proto__:null,Core:un,Id:on,IntMap:rn,IntSet:nn,Observer:an,Signal:tn,make:M},Symbol.toStringTag,{value:"Module"}));function D(e,n){return[e,{TAG:"Static",_0:n}]}function ve(e,n){return[e,{TAG:"SignalValue",_0:n}]}function se(e,n){return[e,{TAG:"Compute",_0:n}]}function le(e){return{TAG:"Text",_0:e}}function cn(e){var n=M(e);return{TAG:"SignalText",_0:n}}function Q(e){return{TAG:"Fragment",_0:e}}function Y(e){return{TAG:"SignalFragment",_0:e}}function dn(e,n){var r=M(function(){return b(e).map(n)});return{TAG:"SignalFragment",_0:r}}function h(e,n,r,t,u){var i=n!==void 0?n:[].map(function(f){return f}),o=r!==void 0?r:[].map(function(f){return f}),a=t!==void 0?t:[].map(function(f){return f});return{TAG:"Element",tag:e,attrs:i,events:o,children:a}}function vn(e,n,r,t){return h("div",e,n,r)}function sn(e,n,r,t){return h("span",e,n,r)}function ln(e,n,r,t){return h("button",e,n,r)}function hn(e,n,r){return h("input",e,n,void 0)}function pn(e,n,r,t){return h("h1",e,n,r)}function mn(e,n,r,t){return h("h2",e,n,r)}function _n(e,n,r,t){return h("h3",e,n,r)}function gn(e,n,r,t){return h("p",e,n,r)}function Sn(e,n,r,t){return h("ul",e,n,r)}function En(e,n,r,t){return h("li",e,n,r)}function he(e,n,r,t){return h("a",e,n,r)}function X(e){switch(e.TAG){case"Element":var n=document.createElement(e.tag);return e.attrs.forEach(function(a){var f=a[1],c=a[0];switch(f.TAG){case"Static":n.setAttribute(c,f._0);return;case"SignalValue":var d=f._0;n.setAttribute(c,z(d)),G(function(){var y=b(d);n.setAttribute(c,y)});return;case"Compute":var E=f._0,L=M(function(){return E()});n.setAttribute(c,z(L)),G(function(){var y=b(L);n.setAttribute(c,y)});return}}),e.events.forEach(function(a){n.addEventListener(a[0],a[1])}),e.children.forEach(function(a){var f=X(a);n.appendChild(f)}),n;case"Text":return document.createTextNode(e._0);case"SignalText":var r=e._0,t=document.createTextNode(z(r));return G(function(){var a=b(r);t.textContent=a}),t;case"Fragment":var u=document.createDocumentFragment();return e._0.forEach(function(a){var f=X(a);u.appendChild(f)}),u;case"SignalFragment":var i=e._0,o=document.createElement("div");return o.setAttribute("data-signal-fragment","true"),o.setAttribute("style","display: contents"),G(function(){var a=b(i);o.innerHTML="",a.forEach(function(f){var c=X(f);o.appendChild(c)})}),o}}function pe(e,n){var r=X(e);n.appendChild(r)}function yn(e,n){var r=document.getElementById(n);if(r==null){console.error("Container element not found: "+n);return}else return pe(e,r)}var $n,bn,Tn,An;const Cn=Object.freeze(Object.defineProperty({__proto__:null,Computed:An,Core:Tn,Effect:bn,Signal:$n,a:he,attr:D,button:ln,computedAttr:se,div:vn,element:h,fragment:Q,h1:pn,h2:mn,h3:_n,input:hn,li:En,list:dn,mount:pe,mountById:yn,p:gn,render:X,signalAttr:ve,signalFragment:Y,span:sn,text:le,textSignal:cn,ul:Sn},Symbol.toStringTag,{value:"Module"}));function jn(e,n){return e(n)}function kn(e,n){return e(n)}function On(e,n,r,t){return e(n)}function In(e,n,r,t){return e(n)}function Mn(e){var n=e.children;return n!==void 0?n:Q([])}function Nn(e){return Q(e)}function wn(){return le("")}function Pn(e){return e}function Rn(e){return e}function S(e,n){return typeof n=="function"?se(e,n):typeof n=="object"&&$e(n.id)?ve(e,n):D(e,n)}function me(e){var n=[],r=e.id;r!==void 0&&n.push(S("id",s(r)));var t=e.class;t!==void 0&&n.push(S("class",s(t)));var u=e.style;u!==void 0&&n.push(S("style",s(u)));var i=e.type;i!==void 0&&n.push(S("type",s(i)));var o=e.value;o!==void 0&&n.push(S("value",s(o)));var a=e.placeholder;a!==void 0&&n.push(S("placeholder",s(a)));var f=e.disabled;f!==void 0&&f&&n.push(D("disabled","true"));var c=e.checked;c!==void 0&&c&&n.push(D("checked","true"));var d=e.href;d!==void 0&&n.push(S("href",s(d)));var E=e.target;return E!==void 0&&n.push(S("target",s(E))),n}function _e(e){var n=[],r=e.onClick;r!==void 0&&n.push(["click",r]);var t=e.onInput;t!==void 0&&n.push(["input",t]);var u=e.onChange;u!==void 0&&n.push(["change",u]);var i=e.onSubmit;i!==void 0&&n.push(["submit",i]);var o=e.onFocus;o!==void 0&&n.push(["focus",o]);var a=e.onBlur;a!==void 0&&n.push(["blur",a]);var f=e.onKeyDown;f!==void 0&&n.push(["keydown",f]);var c=e.onKeyUp;c!==void 0&&n.push(["keyup",c]);var d=e.onMouseEnter;d!==void 0&&n.push(["mouseenter",d]);var E=e.onMouseLeave;return E!==void 0&&n.push(["mouseleave",E]),n}function ge(e){var n=e.children;return n!==void 0?n.TAG==="Fragment"?n._0:[n]:[]}function V(e,n){return{TAG:"Element",tag:e,attrs:me(n),events:_e(n),children:ge(n)}}function Gn(e,n){return V(e,n)}function Dn(e,n){return V(e,n)}function Xn(e,n,r,t){return V(e,n)}function Vn(e,n,r,t){return V(e,n)}var Bn={signal:Pn,computed:Rn,convertAttrValue:S,propsToAttrs:me,propsToEvents:_e,getChildren:ge,createElement:V,jsx:Gn,jsxs:Dn,jsxKeyed:Xn,jsxsKeyed:Vn},Fn;const zn=Object.freeze(Object.defineProperty({__proto__:null,$$null:wn,Component:Fn,Elements:Bn,array:Nn,jsx:jn,jsxFragment:Mn,jsxKeyed:On,jsxs:kn,jsxsKeyed:In},Symbol.toStringTag,{value:"Module"}));function Ln(e,n){for(var r=e.length,t=new Array(r),u=0,i=0;i<r;++i){var o=e[i],a=n(o);a!==void 0&&(t[u]=s(a),u=u+1|0)}return t.length=u,t}function Kn(e,n){for(var r=0;;){var t=r;if(t===e.length)return;var u=n(e[t]);if(u!==void 0)return u;r=t+1|0}}function Se(e){return Ln(e.split("/"),(function(n){if(n!=="")return n.startsWith(":")?{TAG:"Param",_0:n.slice(1)}:{TAG:"Static",_0:n}}))}function Ee(e,n){var r=n.split("/").filter(function(i){return i!==""});if(e.length!==r.length)return"NoMatch";var t={},u=e.every(function(i,o){var a=r[o];return i.TAG==="Static"?a===i._0:(t[i._0]=a,!0)});return u?{TAG:"Match",_0:t}:"NoMatch"}function Z(e,n){return Ee(Se(e),n)}const qn=Object.freeze(Object.defineProperty({__proto__:null,match:Z,matchPath:Ee,parsePattern:Se},Symbol.toStringTag,{value:"Module"}));var j=x({pathname:"/",search:"",hash:""});function ee(){return{pathname:window.location.pathname,search:window.location.search,hash:window.location.hash}}function Jn(){T(j,ee());var e=function(n){T(j,ee())};window.addEventListener("popstate",e)}function ye(e,n,r,t){var u=n!==void 0?n:"",i=r!==void 0?r:"",o={pathname:e,search:u,hash:i},a=e+u+i,f={};window.history.pushState(f,"",a),T(j,o)}function Wn(e,n,r,t){var u=n!==void 0?n:"",i=r!==void 0?r:"",o={pathname:e,search:u,hash:i},a=e+u+i,f={};window.history.replaceState(f,"",a),T(j,o)}function Hn(e,n){return Y(M(function(){var r=b(j),t=Z(e,r.pathname);return typeof t!="object"?[]:[n(t._0)]}))}function Un(e){return Y(M(function(){var n=b(j),r=Kn(e,(function(t){var u=Z(t.pattern,n.pathname);if(typeof u=="object")return t.render(u._0)}));return r!==void 0?[r]:[]}))}function xn(e,n,r,t){var u=n!==void 0?n:[],i=r!==void 0?r:[],o=function(a){a.preventDefault(),ye(e,void 0,void 0)};return he(u.concat([D("href",e)]),[["click",o]],i)}var Qn,Yn,Zn,er,nr;const rr=Object.freeze(Object.defineProperty({__proto__:null,$$location:j,Component:Zn,Computed:Yn,Core:nr,Route:er,Signal:Qn,getCurrentLocation:ee,init:Jn,link:xn,push:ye,replace:Wn,route:Hn,routes:Un},Symbol.toStringTag,{value:"Module"}));var tr=Cn,ur=fn,ir=Be,ar=We,or=zn,fr=qn,cr=rr,dr=en;v.Component=tr,v.Computed=ur,v.Core=ir,v.Effect=ar,v.JSX=or,v.Route=fr,v.Router=cr,v.Signal=dr,Object.defineProperty(v,Symbol.toStringTag,{value:"Module"})}));
|
package/package.json
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "xote",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.1",
|
|
4
4
|
"repository": {
|
|
5
5
|
"url": "https://github.com/brnrdog/xote"
|
|
6
6
|
},
|
|
7
7
|
"main": "./dist/xote.cjs",
|
|
8
8
|
"module": "./dist/xote.mjs",
|
|
9
|
+
"sideEffects": false,
|
|
9
10
|
"files": [
|
|
10
11
|
"dist"
|
|
11
12
|
],
|
|
@@ -15,7 +16,13 @@
|
|
|
15
16
|
"res:dev": "rescript -w",
|
|
16
17
|
"dev": "vite",
|
|
17
18
|
"build": "vite build",
|
|
18
|
-
"preview": "vite preview"
|
|
19
|
+
"preview": "vite preview",
|
|
20
|
+
"build:demos": "vite build --config vite.demos.config.js",
|
|
21
|
+
"copy:demos": "mkdir -p website/static/demos && cp -r demos-dist/* website/static/demos/",
|
|
22
|
+
"prepare:demos": "npm run res:build && npm run build:demos && npm run copy:demos",
|
|
23
|
+
"docs:start": "npm run prepare:demos && cd website && npm start",
|
|
24
|
+
"docs:build": "npm run prepare:demos && cd website && npm run build",
|
|
25
|
+
"docs:serve": "cd website && npm run serve"
|
|
19
26
|
},
|
|
20
27
|
"exports": {
|
|
21
28
|
".": {
|
|
@@ -55,7 +62,7 @@
|
|
|
55
62
|
]
|
|
56
63
|
},
|
|
57
64
|
"author": "Bernardo Gurgel <brnrdog@hey.com>",
|
|
58
|
-
"license": "
|
|
65
|
+
"license": "SEE LICENSE IN LICENSE",
|
|
59
66
|
"devDependencies": {
|
|
60
67
|
"@rescript/core": "^1.6.1",
|
|
61
68
|
"@semantic-release/changelog": "^6.0.3",
|
|
@@ -68,8 +75,5 @@
|
|
|
68
75
|
"rescript": "^11.1.4",
|
|
69
76
|
"semantic-release": "^25.0.1",
|
|
70
77
|
"vite": "^7.1.12"
|
|
71
|
-
},
|
|
72
|
-
"dependencies": {
|
|
73
|
-
"vite-plugin-bundlesize": "^0.3.0"
|
|
74
78
|
}
|
|
75
79
|
}
|
package/dist/xote.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"xote.cjs","sources":["../node_modules/rescript/lib/es6/caml_obj.js","../node_modules/rescript/lib/es6/caml_array.js","../node_modules/rescript/lib/es6/curry.js","../node_modules/rescript/lib/es6/caml_option.js","../node_modules/rescript/lib/es6/belt_internalAVLtree.js","../node_modules/rescript/lib/es6/belt_internalMapInt.js","../node_modules/rescript/lib/es6/belt_MapInt.js","../node_modules/rescript/lib/es6/belt_Option.js","../node_modules/rescript/lib/es6/belt_internalAVLset.js","../node_modules/rescript/lib/es6/belt_internalSetInt.js","../node_modules/rescript/lib/es6/belt_SetInt.js","../src/Xote__Core.res.mjs","../src/Xote__Id.res.mjs","../src/Xote__Effect.res.mjs","../src/Xote__Signal.res.mjs","../src/Xote__Computed.res.mjs","../src/Xote__Component.res.mjs","../src/Xote.res.mjs"],"sourcesContent":["\n\nimport * as Caml from \"./caml.js\";\n\nvar for_in = (function(o,foo){\n for (var x in o) { foo(x) }});\n\nvar obj_dup = (function(x){\n if(Array.isArray(x)){\n var len = x.length \n var v = new Array(len)\n for(var i = 0 ; i < len ; ++i){\n v[i] = x[i]\n }\n if(x.TAG !== undefined){\n v.TAG = x.TAG // TODO this can be removed eventually\n } \n return v \n } \n return Object.assign({},x) \n});\n\nvar update_dummy = (function(x,y){\n var k \n if(Array.isArray(y)){\n for(k = 0; k < y.length ; ++k){\n x[k] = y[k]\n }\n if(y.TAG !== undefined){\n x.TAG = y.TAG\n }\n } else {\n for (var k in y){\n x[k] = y[k]\n }\n }\n});\n\nfunction compare(a, b) {\n if (a === b) {\n return 0;\n }\n var a_type = typeof a;\n var b_type = typeof b;\n switch (a_type) {\n case \"bigint\" :\n if (b_type === \"bigint\") {\n return Caml.float_compare(a, b);\n }\n break;\n case \"boolean\" :\n if (b_type === \"boolean\") {\n return Caml.bool_compare(a, b);\n }\n break;\n case \"function\" :\n if (b_type === \"function\") {\n throw {\n RE_EXN_ID: \"Invalid_argument\",\n _1: \"compare: functional value\",\n Error: new Error()\n };\n }\n break;\n case \"number\" :\n if (b_type === \"number\") {\n return Caml.float_compare(a, b);\n }\n break;\n case \"string\" :\n if (b_type === \"string\") {\n return Caml.string_compare(a, b);\n } else {\n return 1;\n }\n case \"undefined\" :\n return -1;\n default:\n \n }\n switch (b_type) {\n case \"string\" :\n return -1;\n case \"undefined\" :\n return 1;\n default:\n if (a_type === \"boolean\") {\n return 1;\n }\n if (b_type === \"boolean\") {\n return -1;\n }\n if (a_type === \"function\") {\n return 1;\n }\n if (b_type === \"function\") {\n return -1;\n }\n if (a_type === \"number\") {\n if (b === null || b.BS_PRIVATE_NESTED_SOME_NONE !== undefined) {\n return 1;\n } else {\n return -1;\n }\n }\n if (b_type === \"number\") {\n if (a === null || a.BS_PRIVATE_NESTED_SOME_NONE !== undefined) {\n return -1;\n } else {\n return 1;\n }\n }\n if (a === null) {\n if (b.BS_PRIVATE_NESTED_SOME_NONE !== undefined) {\n return 1;\n } else {\n return -1;\n }\n }\n if (b === null) {\n if (a.BS_PRIVATE_NESTED_SOME_NONE !== undefined) {\n return -1;\n } else {\n return 1;\n }\n }\n if (a.BS_PRIVATE_NESTED_SOME_NONE !== undefined) {\n if (b.BS_PRIVATE_NESTED_SOME_NONE !== undefined) {\n return aux_obj_compare(a, b);\n } else {\n return -1;\n }\n }\n var tag_a = a.TAG;\n var tag_b = b.TAG;\n if (tag_a === 248) {\n return Caml.int_compare(a[1], b[1]);\n }\n if (tag_a === 251) {\n throw {\n RE_EXN_ID: \"Invalid_argument\",\n _1: \"equal: abstract value\",\n Error: new Error()\n };\n }\n if (tag_a !== tag_b) {\n if (tag_a < tag_b) {\n return -1;\n } else {\n return 1;\n }\n }\n var len_a = a.length | 0;\n var len_b = b.length | 0;\n if (len_a === len_b) {\n if (Array.isArray(a)) {\n var _i = 0;\n while(true) {\n var i = _i;\n if (i === len_a) {\n return 0;\n }\n var res = compare(a[i], b[i]);\n if (res !== 0) {\n return res;\n }\n _i = i + 1 | 0;\n continue ;\n };\n } else if ((a instanceof Date && b instanceof Date)) {\n return (a - b);\n } else {\n return aux_obj_compare(a, b);\n }\n } else if (len_a < len_b) {\n var _i$1 = 0;\n while(true) {\n var i$1 = _i$1;\n if (i$1 === len_a) {\n return -1;\n }\n var res$1 = compare(a[i$1], b[i$1]);\n if (res$1 !== 0) {\n return res$1;\n }\n _i$1 = i$1 + 1 | 0;\n continue ;\n };\n } else {\n var _i$2 = 0;\n while(true) {\n var i$2 = _i$2;\n if (i$2 === len_b) {\n return 1;\n }\n var res$2 = compare(a[i$2], b[i$2]);\n if (res$2 !== 0) {\n return res$2;\n }\n _i$2 = i$2 + 1 | 0;\n continue ;\n };\n }\n }\n}\n\nfunction aux_obj_compare(a, b) {\n var min_key_lhs = {\n contents: undefined\n };\n var min_key_rhs = {\n contents: undefined\n };\n var do_key = function (param, key) {\n var min_key = param[2];\n var b = param[1];\n if (!(!Object.prototype.hasOwnProperty.call(b, key) || compare(param[0][key], b[key]) > 0)) {\n return ;\n }\n var mk = min_key.contents;\n if (mk !== undefined && key >= mk) {\n return ;\n } else {\n min_key.contents = key;\n return ;\n }\n };\n var partial_arg = [\n a,\n b,\n min_key_rhs\n ];\n var do_key_a = function (param) {\n return do_key(partial_arg, param);\n };\n var partial_arg$1 = [\n b,\n a,\n min_key_lhs\n ];\n var do_key_b = function (param) {\n return do_key(partial_arg$1, param);\n };\n for_in(a, do_key_a);\n for_in(b, do_key_b);\n var match = min_key_lhs.contents;\n var match$1 = min_key_rhs.contents;\n if (match !== undefined) {\n if (match$1 !== undefined) {\n return Caml.string_compare(match, match$1);\n } else {\n return -1;\n }\n } else if (match$1 !== undefined) {\n return 1;\n } else {\n return 0;\n }\n}\n\nfunction equal(a, b) {\n if (a === b) {\n return true;\n }\n var a_type = typeof a;\n if (a_type === \"string\" || a_type === \"number\" || a_type === \"bigint\" || a_type === \"boolean\" || a_type === \"undefined\" || a === null) {\n return false;\n }\n var b_type = typeof b;\n if (a_type === \"function\" || b_type === \"function\") {\n throw {\n RE_EXN_ID: \"Invalid_argument\",\n _1: \"equal: functional value\",\n Error: new Error()\n };\n }\n if (b_type === \"number\" || b_type === \"bigint\" || b_type === \"undefined\" || b === null) {\n return false;\n }\n var tag_a = a.TAG;\n var tag_b = b.TAG;\n if (tag_a === 248) {\n return a[1] === b[1];\n }\n if (tag_a === 251) {\n throw {\n RE_EXN_ID: \"Invalid_argument\",\n _1: \"equal: abstract value\",\n Error: new Error()\n };\n }\n if (tag_a !== tag_b) {\n return false;\n }\n var len_a = a.length | 0;\n var len_b = b.length | 0;\n if (len_a === len_b) {\n if (Array.isArray(a)) {\n var _i = 0;\n while(true) {\n var i = _i;\n if (i === len_a) {\n return true;\n }\n if (!equal(a[i], b[i])) {\n return false;\n }\n _i = i + 1 | 0;\n continue ;\n };\n } else if ((a instanceof Date && b instanceof Date)) {\n return !(a > b || a < b);\n } else {\n var result = {\n contents: true\n };\n var do_key_a = function (key) {\n if (!Object.prototype.hasOwnProperty.call(b, key)) {\n result.contents = false;\n return ;\n }\n \n };\n var do_key_b = function (key) {\n if (!Object.prototype.hasOwnProperty.call(a, key) || !equal(b[key], a[key])) {\n result.contents = false;\n return ;\n }\n \n };\n for_in(a, do_key_a);\n if (result.contents) {\n for_in(b, do_key_b);\n }\n return result.contents;\n }\n } else {\n return false;\n }\n}\n\nfunction equal_null(x, y) {\n if (y !== null) {\n return equal(x, y);\n } else {\n return x === y;\n }\n}\n\nfunction equal_undefined(x, y) {\n if (y !== undefined) {\n return equal(x, y);\n } else {\n return x === y;\n }\n}\n\nfunction equal_nullable(x, y) {\n if (y == null) {\n return x === y;\n } else {\n return equal(x, y);\n }\n}\n\nfunction notequal(a, b) {\n if ((typeof a === \"number\" || typeof a === \"bigint\") && (typeof b === \"number\" || typeof b === \"bigint\")) {\n return a !== b;\n } else {\n return !equal(a, b);\n }\n}\n\nfunction greaterequal(a, b) {\n if ((typeof a === \"number\" || typeof a === \"bigint\") && (typeof b === \"number\" || typeof b === \"bigint\")) {\n return a >= b;\n } else {\n return compare(a, b) >= 0;\n }\n}\n\nfunction greaterthan(a, b) {\n if ((typeof a === \"number\" || typeof a === \"bigint\") && (typeof b === \"number\" || typeof b === \"bigint\")) {\n return a > b;\n } else {\n return compare(a, b) > 0;\n }\n}\n\nfunction lessequal(a, b) {\n if ((typeof a === \"number\" || typeof a === \"bigint\") && (typeof b === \"number\" || typeof b === \"bigint\")) {\n return a <= b;\n } else {\n return compare(a, b) <= 0;\n }\n}\n\nfunction lessthan(a, b) {\n if ((typeof a === \"number\" || typeof a === \"bigint\") && (typeof b === \"number\" || typeof b === \"bigint\")) {\n return a < b;\n } else {\n return compare(a, b) < 0;\n }\n}\n\nfunction min(x, y) {\n if (compare(x, y) <= 0) {\n return x;\n } else {\n return y;\n }\n}\n\nfunction max(x, y) {\n if (compare(x, y) >= 0) {\n return x;\n } else {\n return y;\n }\n}\n\nexport {\n obj_dup ,\n update_dummy ,\n compare ,\n equal ,\n equal_null ,\n equal_undefined ,\n equal_nullable ,\n notequal ,\n greaterequal ,\n greaterthan ,\n lessthan ,\n lessequal ,\n min ,\n max ,\n}\n/* No side effect */\n","\n\n\nfunction sub(x, offset, len) {\n var result = new Array(len);\n var j = 0;\n var i = offset;\n while(j < len) {\n result[j] = x[i];\n j = j + 1 | 0;\n i = i + 1 | 0;\n };\n return result;\n}\n\nfunction len(_acc, _l) {\n while(true) {\n var l = _l;\n var acc = _acc;\n if (!l) {\n return acc;\n }\n _l = l.tl;\n _acc = l.hd.length + acc | 0;\n continue ;\n };\n}\n\nfunction fill(arr, _i, _l) {\n while(true) {\n var l = _l;\n var i = _i;\n if (!l) {\n return ;\n }\n var x = l.hd;\n var l$1 = x.length;\n var k = i;\n var j = 0;\n while(j < l$1) {\n arr[k] = x[j];\n k = k + 1 | 0;\n j = j + 1 | 0;\n };\n _l = l.tl;\n _i = k;\n continue ;\n };\n}\n\nfunction concat(l) {\n var v = len(0, l);\n var result = new Array(v);\n fill(result, 0, l);\n return result;\n}\n\nfunction set(xs, index, newval) {\n if (index < 0 || index >= xs.length) {\n throw {\n RE_EXN_ID: \"Invalid_argument\",\n _1: \"index out of bounds\",\n Error: new Error()\n };\n }\n xs[index] = newval;\n}\n\nfunction get(xs, index) {\n if (index < 0 || index >= xs.length) {\n throw {\n RE_EXN_ID: \"Invalid_argument\",\n _1: \"index out of bounds\",\n Error: new Error()\n };\n }\n return xs[index];\n}\n\nfunction make(len, init) {\n var b = new Array(len);\n for(var i = 0; i < len; ++i){\n b[i] = init;\n }\n return b;\n}\n\nfunction make_float(len) {\n var b = new Array(len);\n for(var i = 0; i < len; ++i){\n b[i] = 0;\n }\n return b;\n}\n\nfunction blit(a1, i1, a2, i2, len) {\n if (i2 <= i1) {\n for(var j = 0; j < len; ++j){\n a2[j + i2 | 0] = a1[j + i1 | 0];\n }\n return ;\n }\n for(var j$1 = len - 1 | 0; j$1 >= 0; --j$1){\n a2[j$1 + i2 | 0] = a1[j$1 + i1 | 0];\n }\n}\n\nfunction dup(prim) {\n return prim.slice(0);\n}\n\nexport {\n dup ,\n sub ,\n concat ,\n make ,\n make_float ,\n blit ,\n get ,\n set ,\n}\n/* No side effect */\n","\n\nimport * as Caml_array from \"./caml_array.js\";\n\nfunction app(_f, _args) {\n while(true) {\n var args = _args;\n var f = _f;\n var init_arity = f.length;\n var arity = init_arity === 0 ? 1 : init_arity;\n var len = args.length;\n var d = arity - len | 0;\n if (d === 0) {\n return f.apply(null, args);\n }\n if (d >= 0) {\n return (function(f,args){\n return function (x) {\n return app(f, args.concat([x]));\n }\n }(f,args));\n }\n _args = Caml_array.sub(args, arity, -d | 0);\n _f = f.apply(null, Caml_array.sub(args, 0, arity));\n continue ;\n };\n}\n\nfunction _1(o, a0) {\n var arity = o.length;\n if (arity === 1) {\n return o(a0);\n } else {\n switch (arity) {\n case 1 :\n return o(a0);\n case 2 :\n return function (param) {\n return o(a0, param);\n };\n case 3 :\n return function (param, param$1) {\n return o(a0, param, param$1);\n };\n case 4 :\n return function (param, param$1, param$2) {\n return o(a0, param, param$1, param$2);\n };\n case 5 :\n return function (param, param$1, param$2, param$3) {\n return o(a0, param, param$1, param$2, param$3);\n };\n case 6 :\n return function (param, param$1, param$2, param$3, param$4) {\n return o(a0, param, param$1, param$2, param$3, param$4);\n };\n case 7 :\n return function (param, param$1, param$2, param$3, param$4, param$5) {\n return o(a0, param, param$1, param$2, param$3, param$4, param$5);\n };\n default:\n return app(o, [a0]);\n }\n }\n}\n\nfunction __1(o) {\n var arity = o.length;\n if (arity === 1) {\n return o;\n } else {\n return function (a0) {\n return _1(o, a0);\n };\n }\n}\n\nfunction _2(o, a0, a1) {\n var arity = o.length;\n if (arity === 2) {\n return o(a0, a1);\n } else {\n switch (arity) {\n case 1 :\n return app(o(a0), [a1]);\n case 2 :\n return o(a0, a1);\n case 3 :\n return function (param) {\n return o(a0, a1, param);\n };\n case 4 :\n return function (param, param$1) {\n return o(a0, a1, param, param$1);\n };\n case 5 :\n return function (param, param$1, param$2) {\n return o(a0, a1, param, param$1, param$2);\n };\n case 6 :\n return function (param, param$1, param$2, param$3) {\n return o(a0, a1, param, param$1, param$2, param$3);\n };\n case 7 :\n return function (param, param$1, param$2, param$3, param$4) {\n return o(a0, a1, param, param$1, param$2, param$3, param$4);\n };\n default:\n return app(o, [\n a0,\n a1\n ]);\n }\n }\n}\n\nfunction __2(o) {\n var arity = o.length;\n if (arity === 2) {\n return o;\n } else {\n return function (a0, a1) {\n return _2(o, a0, a1);\n };\n }\n}\n\nfunction _3(o, a0, a1, a2) {\n var arity = o.length;\n if (arity === 3) {\n return o(a0, a1, a2);\n } else {\n switch (arity) {\n case 1 :\n return app(o(a0), [\n a1,\n a2\n ]);\n case 2 :\n return app(o(a0, a1), [a2]);\n case 3 :\n return o(a0, a1, a2);\n case 4 :\n return function (param) {\n return o(a0, a1, a2, param);\n };\n case 5 :\n return function (param, param$1) {\n return o(a0, a1, a2, param, param$1);\n };\n case 6 :\n return function (param, param$1, param$2) {\n return o(a0, a1, a2, param, param$1, param$2);\n };\n case 7 :\n return function (param, param$1, param$2, param$3) {\n return o(a0, a1, a2, param, param$1, param$2, param$3);\n };\n default:\n return app(o, [\n a0,\n a1,\n a2\n ]);\n }\n }\n}\n\nfunction __3(o) {\n var arity = o.length;\n if (arity === 3) {\n return o;\n } else {\n return function (a0, a1, a2) {\n return _3(o, a0, a1, a2);\n };\n }\n}\n\nfunction _4(o, a0, a1, a2, a3) {\n var arity = o.length;\n if (arity === 4) {\n return o(a0, a1, a2, a3);\n } else {\n switch (arity) {\n case 1 :\n return app(o(a0), [\n a1,\n a2,\n a3\n ]);\n case 2 :\n return app(o(a0, a1), [\n a2,\n a3\n ]);\n case 3 :\n return app(o(a0, a1, a2), [a3]);\n case 4 :\n return o(a0, a1, a2, a3);\n case 5 :\n return function (param) {\n return o(a0, a1, a2, a3, param);\n };\n case 6 :\n return function (param, param$1) {\n return o(a0, a1, a2, a3, param, param$1);\n };\n case 7 :\n return function (param, param$1, param$2) {\n return o(a0, a1, a2, a3, param, param$1, param$2);\n };\n default:\n return app(o, [\n a0,\n a1,\n a2,\n a3\n ]);\n }\n }\n}\n\nfunction __4(o) {\n var arity = o.length;\n if (arity === 4) {\n return o;\n } else {\n return function (a0, a1, a2, a3) {\n return _4(o, a0, a1, a2, a3);\n };\n }\n}\n\nfunction _5(o, a0, a1, a2, a3, a4) {\n var arity = o.length;\n if (arity === 5) {\n return o(a0, a1, a2, a3, a4);\n } else {\n switch (arity) {\n case 1 :\n return app(o(a0), [\n a1,\n a2,\n a3,\n a4\n ]);\n case 2 :\n return app(o(a0, a1), [\n a2,\n a3,\n a4\n ]);\n case 3 :\n return app(o(a0, a1, a2), [\n a3,\n a4\n ]);\n case 4 :\n return app(o(a0, a1, a2, a3), [a4]);\n case 5 :\n return o(a0, a1, a2, a3, a4);\n case 6 :\n return function (param) {\n return o(a0, a1, a2, a3, a4, param);\n };\n case 7 :\n return function (param, param$1) {\n return o(a0, a1, a2, a3, a4, param, param$1);\n };\n default:\n return app(o, [\n a0,\n a1,\n a2,\n a3,\n a4\n ]);\n }\n }\n}\n\nfunction __5(o) {\n var arity = o.length;\n if (arity === 5) {\n return o;\n } else {\n return function (a0, a1, a2, a3, a4) {\n return _5(o, a0, a1, a2, a3, a4);\n };\n }\n}\n\nfunction _6(o, a0, a1, a2, a3, a4, a5) {\n var arity = o.length;\n if (arity === 6) {\n return o(a0, a1, a2, a3, a4, a5);\n } else {\n switch (arity) {\n case 1 :\n return app(o(a0), [\n a1,\n a2,\n a3,\n a4,\n a5\n ]);\n case 2 :\n return app(o(a0, a1), [\n a2,\n a3,\n a4,\n a5\n ]);\n case 3 :\n return app(o(a0, a1, a2), [\n a3,\n a4,\n a5\n ]);\n case 4 :\n return app(o(a0, a1, a2, a3), [\n a4,\n a5\n ]);\n case 5 :\n return app(o(a0, a1, a2, a3, a4), [a5]);\n case 6 :\n return o(a0, a1, a2, a3, a4, a5);\n case 7 :\n return function (param) {\n return o(a0, a1, a2, a3, a4, a5, param);\n };\n default:\n return app(o, [\n a0,\n a1,\n a2,\n a3,\n a4,\n a5\n ]);\n }\n }\n}\n\nfunction __6(o) {\n var arity = o.length;\n if (arity === 6) {\n return o;\n } else {\n return function (a0, a1, a2, a3, a4, a5) {\n return _6(o, a0, a1, a2, a3, a4, a5);\n };\n }\n}\n\nfunction _7(o, a0, a1, a2, a3, a4, a5, a6) {\n var arity = o.length;\n if (arity === 7) {\n return o(a0, a1, a2, a3, a4, a5, a6);\n } else {\n switch (arity) {\n case 1 :\n return app(o(a0), [\n a1,\n a2,\n a3,\n a4,\n a5,\n a6\n ]);\n case 2 :\n return app(o(a0, a1), [\n a2,\n a3,\n a4,\n a5,\n a6\n ]);\n case 3 :\n return app(o(a0, a1, a2), [\n a3,\n a4,\n a5,\n a6\n ]);\n case 4 :\n return app(o(a0, a1, a2, a3), [\n a4,\n a5,\n a6\n ]);\n case 5 :\n return app(o(a0, a1, a2, a3, a4), [\n a5,\n a6\n ]);\n case 6 :\n return app(o(a0, a1, a2, a3, a4, a5), [a6]);\n case 7 :\n return o(a0, a1, a2, a3, a4, a5, a6);\n default:\n return app(o, [\n a0,\n a1,\n a2,\n a3,\n a4,\n a5,\n a6\n ]);\n }\n }\n}\n\nfunction __7(o) {\n var arity = o.length;\n if (arity === 7) {\n return o;\n } else {\n return function (a0, a1, a2, a3, a4, a5, a6) {\n return _7(o, a0, a1, a2, a3, a4, a5, a6);\n };\n }\n}\n\nfunction _8(o, a0, a1, a2, a3, a4, a5, a6, a7) {\n var arity = o.length;\n if (arity === 8) {\n return o(a0, a1, a2, a3, a4, a5, a6, a7);\n } else {\n switch (arity) {\n case 1 :\n return app(o(a0), [\n a1,\n a2,\n a3,\n a4,\n a5,\n a6,\n a7\n ]);\n case 2 :\n return app(o(a0, a1), [\n a2,\n a3,\n a4,\n a5,\n a6,\n a7\n ]);\n case 3 :\n return app(o(a0, a1, a2), [\n a3,\n a4,\n a5,\n a6,\n a7\n ]);\n case 4 :\n return app(o(a0, a1, a2, a3), [\n a4,\n a5,\n a6,\n a7\n ]);\n case 5 :\n return app(o(a0, a1, a2, a3, a4), [\n a5,\n a6,\n a7\n ]);\n case 6 :\n return app(o(a0, a1, a2, a3, a4, a5), [\n a6,\n a7\n ]);\n case 7 :\n return app(o(a0, a1, a2, a3, a4, a5, a6), [a7]);\n default:\n return app(o, [\n a0,\n a1,\n a2,\n a3,\n a4,\n a5,\n a6,\n a7\n ]);\n }\n }\n}\n\nfunction __8(o) {\n var arity = o.length;\n if (arity === 8) {\n return o;\n } else {\n return function (a0, a1, a2, a3, a4, a5, a6, a7) {\n return _8(o, a0, a1, a2, a3, a4, a5, a6, a7);\n };\n }\n}\n\nexport {\n app ,\n _1 ,\n __1 ,\n _2 ,\n __2 ,\n _3 ,\n __3 ,\n _4 ,\n __4 ,\n _5 ,\n __5 ,\n _6 ,\n __6 ,\n _7 ,\n __7 ,\n _8 ,\n __8 ,\n}\n/* No side effect */\n","\n\n\nfunction isNested(x) {\n return x.BS_PRIVATE_NESTED_SOME_NONE !== undefined;\n}\n\nfunction some(x) {\n if (x === undefined) {\n return {\n BS_PRIVATE_NESTED_SOME_NONE: 0\n };\n } else if (x !== null && x.BS_PRIVATE_NESTED_SOME_NONE !== undefined) {\n return {\n BS_PRIVATE_NESTED_SOME_NONE: x.BS_PRIVATE_NESTED_SOME_NONE + 1 | 0\n };\n } else {\n return x;\n }\n}\n\nfunction nullable_to_opt(x) {\n if (x == null) {\n return ;\n } else {\n return some(x);\n }\n}\n\nfunction undefined_to_opt(x) {\n if (x === undefined) {\n return ;\n } else {\n return some(x);\n }\n}\n\nfunction null_to_opt(x) {\n if (x === null) {\n return ;\n } else {\n return some(x);\n }\n}\n\nfunction valFromOption(x) {\n if (!(x !== null && x.BS_PRIVATE_NESTED_SOME_NONE !== undefined)) {\n return x;\n }\n var depth = x.BS_PRIVATE_NESTED_SOME_NONE;\n if (depth === 0) {\n return ;\n } else {\n return {\n BS_PRIVATE_NESTED_SOME_NONE: depth - 1 | 0\n };\n }\n}\n\nfunction option_get(x) {\n if (x === undefined) {\n return ;\n } else {\n return valFromOption(x);\n }\n}\n\nfunction option_unwrap(x) {\n if (x !== undefined) {\n return x.VAL;\n } else {\n return x;\n }\n}\n\nexport {\n nullable_to_opt ,\n undefined_to_opt ,\n null_to_opt ,\n valFromOption ,\n some ,\n isNested ,\n option_get ,\n option_unwrap ,\n}\n/* No side effect */\n","\n\nimport * as Curry from \"./curry.js\";\nimport * as Caml_option from \"./caml_option.js\";\nimport * as Belt_SortArray from \"./belt_SortArray.js\";\n\nfunction treeHeight(n) {\n if (n !== undefined) {\n return n.h;\n } else {\n return 0;\n }\n}\n\nfunction copy(n) {\n if (n !== undefined) {\n return {\n k: n.k,\n v: n.v,\n h: n.h,\n l: copy(n.l),\n r: copy(n.r)\n };\n } else {\n return n;\n }\n}\n\nfunction create(l, x, d, r) {\n var hl = treeHeight(l);\n var hr = treeHeight(r);\n return {\n k: x,\n v: d,\n h: hl >= hr ? hl + 1 | 0 : hr + 1 | 0,\n l: l,\n r: r\n };\n}\n\nfunction singleton(x, d) {\n return {\n k: x,\n v: d,\n h: 1,\n l: undefined,\n r: undefined\n };\n}\n\nfunction heightGe(l, r) {\n if (r !== undefined) {\n if (l !== undefined) {\n return l.h >= r.h;\n } else {\n return false;\n }\n } else {\n return true;\n }\n}\n\nfunction updateValue(n, newValue) {\n if (n.v === newValue) {\n return n;\n } else {\n return {\n k: n.k,\n v: newValue,\n h: n.h,\n l: n.l,\n r: n.r\n };\n }\n}\n\nfunction bal(l, x, d, r) {\n var hl = l !== undefined ? l.h : 0;\n var hr = r !== undefined ? r.h : 0;\n if (hl > (hr + 2 | 0)) {\n var ll = l.l;\n var lr = l.r;\n if (treeHeight(ll) >= treeHeight(lr)) {\n return create(ll, l.k, l.v, create(lr, x, d, r));\n } else {\n return create(create(ll, l.k, l.v, lr.l), lr.k, lr.v, create(lr.r, x, d, r));\n }\n }\n if (hr <= (hl + 2 | 0)) {\n return {\n k: x,\n v: d,\n h: hl >= hr ? hl + 1 | 0 : hr + 1 | 0,\n l: l,\n r: r\n };\n }\n var rl = r.l;\n var rr = r.r;\n if (treeHeight(rr) >= treeHeight(rl)) {\n return create(create(l, x, d, rl), r.k, r.v, rr);\n } else {\n return create(create(l, x, d, rl.l), rl.k, rl.v, create(rl.r, r.k, r.v, rr));\n }\n}\n\nfunction minKey0Aux(_n) {\n while(true) {\n var n = _n;\n var n$1 = n.l;\n if (n$1 === undefined) {\n return n.k;\n }\n _n = n$1;\n continue ;\n };\n}\n\nfunction minKey(n) {\n if (n !== undefined) {\n return Caml_option.some(minKey0Aux(n));\n }\n \n}\n\nfunction minKeyUndefined(n) {\n if (n !== undefined) {\n return minKey0Aux(n);\n }\n \n}\n\nfunction maxKey0Aux(_n) {\n while(true) {\n var n = _n;\n var n$1 = n.r;\n if (n$1 === undefined) {\n return n.k;\n }\n _n = n$1;\n continue ;\n };\n}\n\nfunction maxKey(n) {\n if (n !== undefined) {\n return Caml_option.some(maxKey0Aux(n));\n }\n \n}\n\nfunction maxKeyUndefined(n) {\n if (n !== undefined) {\n return maxKey0Aux(n);\n }\n \n}\n\nfunction minKV0Aux(_n) {\n while(true) {\n var n = _n;\n var n$1 = n.l;\n if (n$1 === undefined) {\n return [\n n.k,\n n.v\n ];\n }\n _n = n$1;\n continue ;\n };\n}\n\nfunction minimum(n) {\n if (n !== undefined) {\n return minKV0Aux(n);\n }\n \n}\n\nfunction minUndefined(n) {\n if (n !== undefined) {\n return minKV0Aux(n);\n }\n \n}\n\nfunction maxKV0Aux(_n) {\n while(true) {\n var n = _n;\n var n$1 = n.r;\n if (n$1 === undefined) {\n return [\n n.k,\n n.v\n ];\n }\n _n = n$1;\n continue ;\n };\n}\n\nfunction maximum(n) {\n if (n !== undefined) {\n return maxKV0Aux(n);\n }\n \n}\n\nfunction maxUndefined(n) {\n if (n !== undefined) {\n return maxKV0Aux(n);\n }\n \n}\n\nfunction removeMinAuxWithRef(n, kr, vr) {\n var ln = n.l;\n if (ln !== undefined) {\n return bal(removeMinAuxWithRef(ln, kr, vr), n.k, n.v, n.r);\n } else {\n kr.contents = n.k;\n vr.contents = n.v;\n return n.r;\n }\n}\n\nfunction isEmpty(x) {\n return x === undefined;\n}\n\nfunction stackAllLeft(_v, _s) {\n while(true) {\n var s = _s;\n var v = _v;\n if (v === undefined) {\n return s;\n }\n _s = {\n hd: v,\n tl: s\n };\n _v = v.l;\n continue ;\n };\n}\n\nfunction findFirstByU(n, p) {\n if (n === undefined) {\n return ;\n }\n var left = findFirstByU(n.l, p);\n if (left !== undefined) {\n return left;\n }\n var v = n.k;\n var d = n.v;\n var pvd = p(v, d);\n if (pvd) {\n return [\n v,\n d\n ];\n }\n var right = findFirstByU(n.r, p);\n if (right !== undefined) {\n return right;\n }\n \n}\n\nfunction findFirstBy(n, p) {\n return findFirstByU(n, Curry.__2(p));\n}\n\nfunction forEachU(_n, f) {\n while(true) {\n var n = _n;\n if (n === undefined) {\n return ;\n }\n forEachU(n.l, f);\n f(n.k, n.v);\n _n = n.r;\n continue ;\n };\n}\n\nfunction forEach(n, f) {\n forEachU(n, Curry.__2(f));\n}\n\nfunction mapU(n, f) {\n if (n === undefined) {\n return ;\n }\n var newLeft = mapU(n.l, f);\n var newD = f(n.v);\n var newRight = mapU(n.r, f);\n return {\n k: n.k,\n v: newD,\n h: n.h,\n l: newLeft,\n r: newRight\n };\n}\n\nfunction map(n, f) {\n return mapU(n, Curry.__1(f));\n}\n\nfunction mapWithKeyU(n, f) {\n if (n === undefined) {\n return ;\n }\n var key = n.k;\n var newLeft = mapWithKeyU(n.l, f);\n var newD = f(key, n.v);\n var newRight = mapWithKeyU(n.r, f);\n return {\n k: key,\n v: newD,\n h: n.h,\n l: newLeft,\n r: newRight\n };\n}\n\nfunction mapWithKey(n, f) {\n return mapWithKeyU(n, Curry.__2(f));\n}\n\nfunction reduceU(_m, _accu, f) {\n while(true) {\n var accu = _accu;\n var m = _m;\n if (m === undefined) {\n return accu;\n }\n var v = m.k;\n var d = m.v;\n var l = m.l;\n var r = m.r;\n _accu = f(reduceU(l, accu, f), v, d);\n _m = r;\n continue ;\n };\n}\n\nfunction reduce(m, accu, f) {\n return reduceU(m, accu, Curry.__3(f));\n}\n\nfunction everyU(_n, p) {\n while(true) {\n var n = _n;\n if (n === undefined) {\n return true;\n }\n if (!p(n.k, n.v)) {\n return false;\n }\n if (!everyU(n.l, p)) {\n return false;\n }\n _n = n.r;\n continue ;\n };\n}\n\nfunction every(n, p) {\n return everyU(n, Curry.__2(p));\n}\n\nfunction someU(_n, p) {\n while(true) {\n var n = _n;\n if (n === undefined) {\n return false;\n }\n if (p(n.k, n.v)) {\n return true;\n }\n if (someU(n.l, p)) {\n return true;\n }\n _n = n.r;\n continue ;\n };\n}\n\nfunction some(n, p) {\n return someU(n, Curry.__2(p));\n}\n\nfunction addMinElement(n, k, v) {\n if (n !== undefined) {\n return bal(addMinElement(n.l, k, v), n.k, n.v, n.r);\n } else {\n return singleton(k, v);\n }\n}\n\nfunction addMaxElement(n, k, v) {\n if (n !== undefined) {\n return bal(n.l, n.k, n.v, addMaxElement(n.r, k, v));\n } else {\n return singleton(k, v);\n }\n}\n\nfunction join(ln, v, d, rn) {\n if (ln === undefined) {\n return addMinElement(rn, v, d);\n }\n if (rn === undefined) {\n return addMaxElement(ln, v, d);\n }\n var lv = ln.k;\n var ld = ln.v;\n var lh = ln.h;\n var ll = ln.l;\n var lr = ln.r;\n var rv = rn.k;\n var rd = rn.v;\n var rh = rn.h;\n var rl = rn.l;\n var rr = rn.r;\n if (lh > (rh + 2 | 0)) {\n return bal(ll, lv, ld, join(lr, v, d, rn));\n } else if (rh > (lh + 2 | 0)) {\n return bal(join(ln, v, d, rl), rv, rd, rr);\n } else {\n return create(ln, v, d, rn);\n }\n}\n\nfunction concat(t1, t2) {\n if (t1 === undefined) {\n return t2;\n }\n if (t2 === undefined) {\n return t1;\n }\n var kr = {\n contents: t2.k\n };\n var vr = {\n contents: t2.v\n };\n var t2r = removeMinAuxWithRef(t2, kr, vr);\n return join(t1, kr.contents, vr.contents, t2r);\n}\n\nfunction concatOrJoin(t1, v, d, t2) {\n if (d !== undefined) {\n return join(t1, v, Caml_option.valFromOption(d), t2);\n } else {\n return concat(t1, t2);\n }\n}\n\nfunction keepSharedU(n, p) {\n if (n === undefined) {\n return ;\n }\n var v = n.k;\n var d = n.v;\n var newLeft = keepSharedU(n.l, p);\n var pvd = p(v, d);\n var newRight = keepSharedU(n.r, p);\n if (pvd) {\n return join(newLeft, v, d, newRight);\n } else {\n return concat(newLeft, newRight);\n }\n}\n\nfunction keepShared(n, p) {\n return keepSharedU(n, Curry.__2(p));\n}\n\nfunction keepMapU(n, p) {\n if (n === undefined) {\n return ;\n }\n var v = n.k;\n var d = n.v;\n var newLeft = keepMapU(n.l, p);\n var pvd = p(v, d);\n var newRight = keepMapU(n.r, p);\n if (pvd !== undefined) {\n return join(newLeft, v, Caml_option.valFromOption(pvd), newRight);\n } else {\n return concat(newLeft, newRight);\n }\n}\n\nfunction keepMap(n, p) {\n return keepMapU(n, Curry.__2(p));\n}\n\nfunction partitionSharedU(n, p) {\n if (n === undefined) {\n return [\n undefined,\n undefined\n ];\n }\n var key = n.k;\n var value = n.v;\n var match = partitionSharedU(n.l, p);\n var lf = match[1];\n var lt = match[0];\n var pvd = p(key, value);\n var match$1 = partitionSharedU(n.r, p);\n var rf = match$1[1];\n var rt = match$1[0];\n if (pvd) {\n return [\n join(lt, key, value, rt),\n concat(lf, rf)\n ];\n } else {\n return [\n concat(lt, rt),\n join(lf, key, value, rf)\n ];\n }\n}\n\nfunction partitionShared(n, p) {\n return partitionSharedU(n, Curry.__2(p));\n}\n\nfunction lengthNode(n) {\n var l = n.l;\n var r = n.r;\n var sizeL = l !== undefined ? lengthNode(l) : 0;\n var sizeR = r !== undefined ? lengthNode(r) : 0;\n return (1 + sizeL | 0) + sizeR | 0;\n}\n\nfunction size(n) {\n if (n !== undefined) {\n return lengthNode(n);\n } else {\n return 0;\n }\n}\n\nfunction toListAux(_n, _accu) {\n while(true) {\n var accu = _accu;\n var n = _n;\n if (n === undefined) {\n return accu;\n }\n var k = n.k;\n var v = n.v;\n var l = n.l;\n var r = n.r;\n _accu = {\n hd: [\n k,\n v\n ],\n tl: toListAux(r, accu)\n };\n _n = l;\n continue ;\n };\n}\n\nfunction toList(s) {\n return toListAux(s, /* [] */0);\n}\n\nfunction checkInvariantInternal(_v) {\n while(true) {\n var v = _v;\n if (v === undefined) {\n return ;\n }\n var l = v.l;\n var r = v.r;\n var diff = treeHeight(l) - treeHeight(r) | 0;\n if (!(diff <= 2 && diff >= -2)) {\n throw {\n RE_EXN_ID: \"Assert_failure\",\n _1: [\n \"belt_internalAVLtree.res\",\n 457,\n 4\n ],\n Error: new Error()\n };\n }\n checkInvariantInternal(l);\n _v = r;\n continue ;\n };\n}\n\nfunction fillArrayKey(_n, _i, arr) {\n while(true) {\n var i = _i;\n var n = _n;\n var v = n.k;\n var l = n.l;\n var r = n.r;\n var next = l !== undefined ? fillArrayKey(l, i, arr) : i;\n arr[next] = v;\n var rnext = next + 1 | 0;\n if (r === undefined) {\n return rnext;\n }\n _i = rnext;\n _n = r;\n continue ;\n };\n}\n\nfunction fillArrayValue(_n, _i, arr) {\n while(true) {\n var i = _i;\n var n = _n;\n var l = n.l;\n var r = n.r;\n var next = l !== undefined ? fillArrayValue(l, i, arr) : i;\n arr[next] = n.v;\n var rnext = next + 1 | 0;\n if (r === undefined) {\n return rnext;\n }\n _i = rnext;\n _n = r;\n continue ;\n };\n}\n\nfunction fillArray(_n, _i, arr) {\n while(true) {\n var i = _i;\n var n = _n;\n var l = n.l;\n var v = n.k;\n var r = n.r;\n var next = l !== undefined ? fillArray(l, i, arr) : i;\n arr[next] = [\n v,\n n.v\n ];\n var rnext = next + 1 | 0;\n if (r === undefined) {\n return rnext;\n }\n _i = rnext;\n _n = r;\n continue ;\n };\n}\n\nfunction toArray(n) {\n if (n === undefined) {\n return [];\n }\n var size = lengthNode(n);\n var v = new Array(size);\n fillArray(n, 0, v);\n return v;\n}\n\nfunction keysToArray(n) {\n if (n === undefined) {\n return [];\n }\n var size = lengthNode(n);\n var v = new Array(size);\n fillArrayKey(n, 0, v);\n return v;\n}\n\nfunction valuesToArray(n) {\n if (n === undefined) {\n return [];\n }\n var size = lengthNode(n);\n var v = new Array(size);\n fillArrayValue(n, 0, v);\n return v;\n}\n\nfunction fromSortedArrayRevAux(arr, off, len) {\n switch (len) {\n case 0 :\n return ;\n case 1 :\n var match = arr[off];\n return singleton(match[0], match[1]);\n case 2 :\n var match_0 = arr[off];\n var match_1 = arr[off - 1 | 0];\n var match$1 = match_1;\n var match$2 = match_0;\n return {\n k: match$1[0],\n v: match$1[1],\n h: 2,\n l: singleton(match$2[0], match$2[1]),\n r: undefined\n };\n case 3 :\n var match_0$1 = arr[off];\n var match_1$1 = arr[off - 1 | 0];\n var match_2 = arr[off - 2 | 0];\n var match$3 = match_2;\n var match$4 = match_1$1;\n var match$5 = match_0$1;\n return {\n k: match$4[0],\n v: match$4[1],\n h: 2,\n l: singleton(match$5[0], match$5[1]),\n r: singleton(match$3[0], match$3[1])\n };\n default:\n var nl = len / 2 | 0;\n var left = fromSortedArrayRevAux(arr, off, nl);\n var match$6 = arr[off - nl | 0];\n var right = fromSortedArrayRevAux(arr, (off - nl | 0) - 1 | 0, (len - nl | 0) - 1 | 0);\n return create(left, match$6[0], match$6[1], right);\n }\n}\n\nfunction fromSortedArrayAux(arr, off, len) {\n switch (len) {\n case 0 :\n return ;\n case 1 :\n var match = arr[off];\n return singleton(match[0], match[1]);\n case 2 :\n var match_0 = arr[off];\n var match_1 = arr[off + 1 | 0];\n var match$1 = match_1;\n var match$2 = match_0;\n return {\n k: match$1[0],\n v: match$1[1],\n h: 2,\n l: singleton(match$2[0], match$2[1]),\n r: undefined\n };\n case 3 :\n var match_0$1 = arr[off];\n var match_1$1 = arr[off + 1 | 0];\n var match_2 = arr[off + 2 | 0];\n var match$3 = match_2;\n var match$4 = match_1$1;\n var match$5 = match_0$1;\n return {\n k: match$4[0],\n v: match$4[1],\n h: 2,\n l: singleton(match$5[0], match$5[1]),\n r: singleton(match$3[0], match$3[1])\n };\n default:\n var nl = len / 2 | 0;\n var left = fromSortedArrayAux(arr, off, nl);\n var match$6 = arr[off + nl | 0];\n var right = fromSortedArrayAux(arr, (off + nl | 0) + 1 | 0, (len - nl | 0) - 1 | 0);\n return create(left, match$6[0], match$6[1], right);\n }\n}\n\nfunction fromSortedArrayUnsafe(arr) {\n return fromSortedArrayAux(arr, 0, arr.length);\n}\n\nfunction cmpU(s1, s2, kcmp, vcmp) {\n var len1 = size(s1);\n var len2 = size(s2);\n if (len1 === len2) {\n var _e1 = stackAllLeft(s1, /* [] */0);\n var _e2 = stackAllLeft(s2, /* [] */0);\n while(true) {\n var e2 = _e2;\n var e1 = _e1;\n if (!e1) {\n return 0;\n }\n if (!e2) {\n return 0;\n }\n var h2 = e2.hd;\n var h1 = e1.hd;\n var c = kcmp(h1.k, h2.k);\n if (c !== 0) {\n return c;\n }\n var cx = vcmp(h1.v, h2.v);\n if (cx !== 0) {\n return cx;\n }\n _e2 = stackAllLeft(h2.r, e2.tl);\n _e1 = stackAllLeft(h1.r, e1.tl);\n continue ;\n };\n } else if (len1 < len2) {\n return -1;\n } else {\n return 1;\n }\n}\n\nfunction cmp(s1, s2, kcmp, vcmp) {\n return cmpU(s1, s2, kcmp, Curry.__2(vcmp));\n}\n\nfunction eqU(s1, s2, kcmp, veq) {\n var len1 = size(s1);\n var len2 = size(s2);\n if (len1 === len2) {\n var _e1 = stackAllLeft(s1, /* [] */0);\n var _e2 = stackAllLeft(s2, /* [] */0);\n while(true) {\n var e2 = _e2;\n var e1 = _e1;\n if (!e1) {\n return true;\n }\n if (!e2) {\n return true;\n }\n var h2 = e2.hd;\n var h1 = e1.hd;\n if (!(kcmp(h1.k, h2.k) === 0 && veq(h1.v, h2.v))) {\n return false;\n }\n _e2 = stackAllLeft(h2.r, e2.tl);\n _e1 = stackAllLeft(h1.r, e1.tl);\n continue ;\n };\n } else {\n return false;\n }\n}\n\nfunction eq(s1, s2, kcmp, veq) {\n return eqU(s1, s2, kcmp, Curry.__2(veq));\n}\n\nfunction get(_n, x, cmp) {\n while(true) {\n var n = _n;\n if (n === undefined) {\n return ;\n }\n var v = n.k;\n var c = cmp(x, v);\n if (c === 0) {\n return Caml_option.some(n.v);\n }\n _n = c < 0 ? n.l : n.r;\n continue ;\n };\n}\n\nfunction getUndefined(_n, x, cmp) {\n while(true) {\n var n = _n;\n if (n === undefined) {\n return ;\n }\n var v = n.k;\n var c = cmp(x, v);\n if (c === 0) {\n return n.v;\n }\n _n = c < 0 ? n.l : n.r;\n continue ;\n };\n}\n\nfunction getExn(_n, x, cmp) {\n while(true) {\n var n = _n;\n if (n !== undefined) {\n var v = n.k;\n var c = cmp(x, v);\n if (c === 0) {\n return n.v;\n }\n _n = c < 0 ? n.l : n.r;\n continue ;\n }\n throw {\n RE_EXN_ID: \"Not_found\",\n Error: new Error()\n };\n };\n}\n\nfunction getWithDefault(_n, x, def, cmp) {\n while(true) {\n var n = _n;\n if (n === undefined) {\n return def;\n }\n var v = n.k;\n var c = cmp(x, v);\n if (c === 0) {\n return n.v;\n }\n _n = c < 0 ? n.l : n.r;\n continue ;\n };\n}\n\nfunction has(_n, x, cmp) {\n while(true) {\n var n = _n;\n if (n === undefined) {\n return false;\n }\n var v = n.k;\n var c = cmp(x, v);\n if (c === 0) {\n return true;\n }\n _n = c < 0 ? n.l : n.r;\n continue ;\n };\n}\n\nfunction rotateWithLeftChild(k2) {\n var k1 = k2.l;\n k2.l = k1.r;\n k1.r = k2;\n var hlk2 = treeHeight(k2.l);\n var hrk2 = treeHeight(k2.r);\n k2.h = (\n hlk2 > hrk2 ? hlk2 : hrk2\n ) + 1 | 0;\n var hlk1 = treeHeight(k1.l);\n var hk2 = k2.h;\n k1.h = (\n hlk1 > hk2 ? hlk1 : hk2\n ) + 1 | 0;\n return k1;\n}\n\nfunction rotateWithRightChild(k1) {\n var k2 = k1.r;\n k1.r = k2.l;\n k2.l = k1;\n var hlk1 = treeHeight(k1.l);\n var hrk1 = treeHeight(k1.r);\n k1.h = (\n hlk1 > hrk1 ? hlk1 : hrk1\n ) + 1 | 0;\n var hrk2 = treeHeight(k2.r);\n var hk1 = k1.h;\n k2.h = (\n hrk2 > hk1 ? hrk2 : hk1\n ) + 1 | 0;\n return k2;\n}\n\nfunction doubleWithLeftChild(k3) {\n var x = k3.l;\n var v = rotateWithRightChild(x);\n k3.l = v;\n return rotateWithLeftChild(k3);\n}\n\nfunction doubleWithRightChild(k2) {\n var x = k2.r;\n var v = rotateWithLeftChild(x);\n k2.r = v;\n return rotateWithRightChild(k2);\n}\n\nfunction heightUpdateMutate(t) {\n var hlt = treeHeight(t.l);\n var hrt = treeHeight(t.r);\n t.h = (\n hlt > hrt ? hlt : hrt\n ) + 1 | 0;\n return t;\n}\n\nfunction balMutate(nt) {\n var l = nt.l;\n var r = nt.r;\n var hl = treeHeight(l);\n var hr = treeHeight(r);\n if (hl > (2 + hr | 0)) {\n var ll = l.l;\n var lr = l.r;\n if (heightGe(ll, lr)) {\n return heightUpdateMutate(rotateWithLeftChild(nt));\n } else {\n return heightUpdateMutate(doubleWithLeftChild(nt));\n }\n }\n if (hr > (2 + hl | 0)) {\n var rl = r.l;\n var rr = r.r;\n if (heightGe(rr, rl)) {\n return heightUpdateMutate(rotateWithRightChild(nt));\n } else {\n return heightUpdateMutate(doubleWithRightChild(nt));\n }\n }\n nt.h = (\n hl > hr ? hl : hr\n ) + 1 | 0;\n return nt;\n}\n\nfunction updateMutate(t, x, data, cmp) {\n if (t === undefined) {\n return singleton(x, data);\n }\n var k = t.k;\n var c = cmp(x, k);\n if (c === 0) {\n t.v = data;\n return t;\n }\n var l = t.l;\n var r = t.r;\n if (c < 0) {\n var ll = updateMutate(l, x, data, cmp);\n t.l = ll;\n } else {\n t.r = updateMutate(r, x, data, cmp);\n }\n return balMutate(t);\n}\n\nfunction fromArray(xs, cmp) {\n var len = xs.length;\n if (len === 0) {\n return ;\n }\n var next = Belt_SortArray.strictlySortedLengthU(xs, (function (param, param$1) {\n return cmp(param[0], param$1[0]) < 0;\n }));\n var result;\n if (next >= 0) {\n result = fromSortedArrayAux(xs, 0, next);\n } else {\n next = -next | 0;\n result = fromSortedArrayRevAux(xs, next - 1 | 0, next);\n }\n for(var i = next; i < len; ++i){\n var match = xs[i];\n result = updateMutate(result, match[0], match[1], cmp);\n }\n return result;\n}\n\nfunction removeMinAuxWithRootMutate(nt, n) {\n var rn = n.r;\n var ln = n.l;\n if (ln !== undefined) {\n n.l = removeMinAuxWithRootMutate(nt, ln);\n return balMutate(n);\n } else {\n nt.k = n.k;\n nt.v = n.v;\n return rn;\n }\n}\n\nexport {\n copy ,\n create ,\n bal ,\n singleton ,\n updateValue ,\n minKey ,\n minKeyUndefined ,\n maxKey ,\n maxKeyUndefined ,\n minimum ,\n minUndefined ,\n maximum ,\n maxUndefined ,\n removeMinAuxWithRef ,\n isEmpty ,\n stackAllLeft ,\n findFirstByU ,\n findFirstBy ,\n forEachU ,\n forEach ,\n mapU ,\n map ,\n mapWithKeyU ,\n mapWithKey ,\n reduceU ,\n reduce ,\n everyU ,\n every ,\n someU ,\n some ,\n join ,\n concat ,\n concatOrJoin ,\n keepSharedU ,\n keepShared ,\n keepMapU ,\n keepMap ,\n partitionSharedU ,\n partitionShared ,\n lengthNode ,\n size ,\n toList ,\n checkInvariantInternal ,\n fillArray ,\n toArray ,\n keysToArray ,\n valuesToArray ,\n fromSortedArrayAux ,\n fromSortedArrayRevAux ,\n fromSortedArrayUnsafe ,\n cmpU ,\n cmp ,\n eqU ,\n eq ,\n get ,\n getUndefined ,\n getWithDefault ,\n getExn ,\n has ,\n fromArray ,\n updateMutate ,\n balMutate ,\n removeMinAuxWithRootMutate ,\n}\n/* No side effect */\n","\n\nimport * as Caml from \"./caml.js\";\nimport * as Curry from \"./curry.js\";\nimport * as Caml_option from \"./caml_option.js\";\nimport * as Belt_SortArray from \"./belt_SortArray.js\";\nimport * as Belt_internalAVLtree from \"./belt_internalAVLtree.js\";\n\nfunction add(t, x, data) {\n if (t === undefined) {\n return Belt_internalAVLtree.singleton(x, data);\n }\n var k = t.k;\n if (x === k) {\n return Belt_internalAVLtree.updateValue(t, data);\n }\n var v = t.v;\n if (x < k) {\n return Belt_internalAVLtree.bal(add(t.l, x, data), k, v, t.r);\n } else {\n return Belt_internalAVLtree.bal(t.l, k, v, add(t.r, x, data));\n }\n}\n\nfunction get(_n, x) {\n while(true) {\n var n = _n;\n if (n === undefined) {\n return ;\n }\n var v = n.k;\n if (x === v) {\n return Caml_option.some(n.v);\n }\n _n = x < v ? n.l : n.r;\n continue ;\n };\n}\n\nfunction getUndefined(_n, x) {\n while(true) {\n var n = _n;\n if (n === undefined) {\n return ;\n }\n var v = n.k;\n if (x === v) {\n return n.v;\n }\n _n = x < v ? n.l : n.r;\n continue ;\n };\n}\n\nfunction getExn(_n, x) {\n while(true) {\n var n = _n;\n if (n !== undefined) {\n var v = n.k;\n if (x === v) {\n return n.v;\n }\n _n = x < v ? n.l : n.r;\n continue ;\n }\n throw {\n RE_EXN_ID: \"Not_found\",\n Error: new Error()\n };\n };\n}\n\nfunction getWithDefault(_n, x, def) {\n while(true) {\n var n = _n;\n if (n === undefined) {\n return def;\n }\n var v = n.k;\n if (x === v) {\n return n.v;\n }\n _n = x < v ? n.l : n.r;\n continue ;\n };\n}\n\nfunction has(_n, x) {\n while(true) {\n var n = _n;\n if (n === undefined) {\n return false;\n }\n var v = n.k;\n if (x === v) {\n return true;\n }\n _n = x < v ? n.l : n.r;\n continue ;\n };\n}\n\nfunction remove(n, x) {\n if (n === undefined) {\n return n;\n }\n var v = n.k;\n var l = n.l;\n var r = n.r;\n if (x !== v) {\n if (x < v) {\n return Belt_internalAVLtree.bal(remove(l, x), v, n.v, r);\n } else {\n return Belt_internalAVLtree.bal(l, v, n.v, remove(r, x));\n }\n }\n if (l === undefined) {\n return r;\n }\n if (r === undefined) {\n return l;\n }\n var kr = {\n contents: r.k\n };\n var vr = {\n contents: r.v\n };\n var r$1 = Belt_internalAVLtree.removeMinAuxWithRef(r, kr, vr);\n return Belt_internalAVLtree.bal(l, kr.contents, vr.contents, r$1);\n}\n\nfunction splitAux(x, n) {\n var v = n.k;\n var d = n.v;\n var l = n.l;\n var r = n.r;\n if (x === v) {\n return [\n l,\n Caml_option.some(d),\n r\n ];\n }\n if (x < v) {\n if (l === undefined) {\n return [\n undefined,\n undefined,\n n\n ];\n }\n var match = splitAux(x, l);\n return [\n match[0],\n match[1],\n Belt_internalAVLtree.join(match[2], v, d, r)\n ];\n }\n if (r === undefined) {\n return [\n n,\n undefined,\n undefined\n ];\n }\n var match$1 = splitAux(x, r);\n return [\n Belt_internalAVLtree.join(l, v, d, match$1[0]),\n match$1[1],\n match$1[2]\n ];\n}\n\nfunction split(x, n) {\n if (n !== undefined) {\n return splitAux(x, n);\n } else {\n return [\n undefined,\n undefined,\n undefined\n ];\n }\n}\n\nfunction mergeU(s1, s2, f) {\n if (s1 !== undefined) {\n if (s1.h >= (\n s2 !== undefined ? s2.h : 0\n )) {\n var v1 = s1.k;\n var d1 = s1.v;\n var l1 = s1.l;\n var r1 = s1.r;\n var match = split(v1, s2);\n return Belt_internalAVLtree.concatOrJoin(mergeU(l1, match[0], f), v1, f(v1, Caml_option.some(d1), match[1]), mergeU(r1, match[2], f));\n }\n \n } else if (s2 === undefined) {\n return ;\n }\n var v2 = s2.k;\n var d2 = s2.v;\n var l2 = s2.l;\n var r2 = s2.r;\n var match$1 = split(v2, s1);\n return Belt_internalAVLtree.concatOrJoin(mergeU(match$1[0], l2, f), v2, f(v2, match$1[1], Caml_option.some(d2)), mergeU(match$1[2], r2, f));\n}\n\nfunction merge(s1, s2, f) {\n return mergeU(s1, s2, Curry.__3(f));\n}\n\nfunction compareAux(_e1, _e2, vcmp) {\n while(true) {\n var e2 = _e2;\n var e1 = _e1;\n if (!e1) {\n return 0;\n }\n if (!e2) {\n return 0;\n }\n var h2 = e2.hd;\n var h1 = e1.hd;\n var c = Caml.int_compare(h1.k, h2.k);\n if (c !== 0) {\n return c;\n }\n var cx = vcmp(h1.v, h2.v);\n if (cx !== 0) {\n return cx;\n }\n _e2 = Belt_internalAVLtree.stackAllLeft(h2.r, e2.tl);\n _e1 = Belt_internalAVLtree.stackAllLeft(h1.r, e1.tl);\n continue ;\n };\n}\n\nfunction cmpU(s1, s2, cmp) {\n var len1 = Belt_internalAVLtree.size(s1);\n var len2 = Belt_internalAVLtree.size(s2);\n if (len1 === len2) {\n return compareAux(Belt_internalAVLtree.stackAllLeft(s1, /* [] */0), Belt_internalAVLtree.stackAllLeft(s2, /* [] */0), cmp);\n } else if (len1 < len2) {\n return -1;\n } else {\n return 1;\n }\n}\n\nfunction cmp(s1, s2, f) {\n return cmpU(s1, s2, Curry.__2(f));\n}\n\nfunction eqAux(_e1, _e2, eq) {\n while(true) {\n var e2 = _e2;\n var e1 = _e1;\n if (!e1) {\n return true;\n }\n if (!e2) {\n return true;\n }\n var h2 = e2.hd;\n var h1 = e1.hd;\n if (!(h1.k === h2.k && eq(h1.v, h2.v))) {\n return false;\n }\n _e2 = Belt_internalAVLtree.stackAllLeft(h2.r, e2.tl);\n _e1 = Belt_internalAVLtree.stackAllLeft(h1.r, e1.tl);\n continue ;\n };\n}\n\nfunction eqU(s1, s2, eq) {\n var len1 = Belt_internalAVLtree.size(s1);\n var len2 = Belt_internalAVLtree.size(s2);\n if (len1 === len2) {\n return eqAux(Belt_internalAVLtree.stackAllLeft(s1, /* [] */0), Belt_internalAVLtree.stackAllLeft(s2, /* [] */0), eq);\n } else {\n return false;\n }\n}\n\nfunction eq(s1, s2, f) {\n return eqU(s1, s2, Curry.__2(f));\n}\n\nfunction addMutate(t, x, data) {\n if (t === undefined) {\n return Belt_internalAVLtree.singleton(x, data);\n }\n var k = t.k;\n if (x === k) {\n t.k = x;\n t.v = data;\n return t;\n }\n var l = t.l;\n var r = t.r;\n if (x < k) {\n var ll = addMutate(l, x, data);\n t.l = ll;\n } else {\n t.r = addMutate(r, x, data);\n }\n return Belt_internalAVLtree.balMutate(t);\n}\n\nfunction fromArray(xs) {\n var len = xs.length;\n if (len === 0) {\n return ;\n }\n var next = Belt_SortArray.strictlySortedLengthU(xs, (function (param, param$1) {\n return param[0] < param$1[0];\n }));\n var result;\n if (next >= 0) {\n result = Belt_internalAVLtree.fromSortedArrayAux(xs, 0, next);\n } else {\n next = -next | 0;\n result = Belt_internalAVLtree.fromSortedArrayRevAux(xs, next - 1 | 0, next);\n }\n for(var i = next; i < len; ++i){\n var match = xs[i];\n result = addMutate(result, match[0], match[1]);\n }\n return result;\n}\n\nvar N;\n\nvar A;\n\nvar S;\n\nexport {\n N ,\n A ,\n S ,\n add ,\n get ,\n getUndefined ,\n getExn ,\n getWithDefault ,\n has ,\n remove ,\n splitAux ,\n split ,\n mergeU ,\n merge ,\n compareAux ,\n cmpU ,\n cmp ,\n eqAux ,\n eqU ,\n eq ,\n addMutate ,\n fromArray ,\n}\n/* No side effect */\n","\n\nimport * as Curry from \"./curry.js\";\nimport * as Caml_option from \"./caml_option.js\";\nimport * as Belt_internalMapInt from \"./belt_internalMapInt.js\";\nimport * as Belt_internalAVLtree from \"./belt_internalAVLtree.js\";\n\nfunction set(t, newK, newD) {\n if (t === undefined) {\n return Belt_internalAVLtree.singleton(newK, newD);\n }\n var k = t.k;\n if (newK === k) {\n return Belt_internalAVLtree.updateValue(t, newD);\n }\n var v = t.v;\n if (newK < k) {\n return Belt_internalAVLtree.bal(set(t.l, newK, newD), k, v, t.r);\n } else {\n return Belt_internalAVLtree.bal(t.l, k, v, set(t.r, newK, newD));\n }\n}\n\nfunction updateU(t, x, f) {\n if (t !== undefined) {\n var k = t.k;\n if (x === k) {\n var data = f(Caml_option.some(t.v));\n if (data !== undefined) {\n return Belt_internalAVLtree.updateValue(t, Caml_option.valFromOption(data));\n }\n var l = t.l;\n var r = t.r;\n if (l === undefined) {\n return r;\n }\n if (r === undefined) {\n return l;\n }\n var kr = {\n contents: r.k\n };\n var vr = {\n contents: r.v\n };\n var r$1 = Belt_internalAVLtree.removeMinAuxWithRef(r, kr, vr);\n return Belt_internalAVLtree.bal(l, kr.contents, vr.contents, r$1);\n }\n var v = t.v;\n var l$1 = t.l;\n var r$2 = t.r;\n if (x < k) {\n var ll = updateU(l$1, x, f);\n if (l$1 === ll) {\n return t;\n } else {\n return Belt_internalAVLtree.bal(ll, k, v, r$2);\n }\n }\n var rr = updateU(r$2, x, f);\n if (r$2 === rr) {\n return t;\n } else {\n return Belt_internalAVLtree.bal(l$1, k, v, rr);\n }\n }\n var data$1 = f(undefined);\n if (data$1 !== undefined) {\n return Belt_internalAVLtree.singleton(x, Caml_option.valFromOption(data$1));\n } else {\n return t;\n }\n}\n\nfunction update(t, x, f) {\n return updateU(t, x, Curry.__1(f));\n}\n\nfunction removeAux(n, x) {\n var v = n.k;\n var l = n.l;\n var r = n.r;\n if (x === v) {\n if (l === undefined) {\n return r;\n }\n if (r === undefined) {\n return l;\n }\n var kr = {\n contents: r.k\n };\n var vr = {\n contents: r.v\n };\n var r$1 = Belt_internalAVLtree.removeMinAuxWithRef(r, kr, vr);\n return Belt_internalAVLtree.bal(l, kr.contents, vr.contents, r$1);\n }\n if (x < v) {\n if (l === undefined) {\n return n;\n }\n var ll = removeAux(l, x);\n if (ll === l) {\n return n;\n } else {\n return Belt_internalAVLtree.bal(ll, v, n.v, r);\n }\n }\n if (r === undefined) {\n return n;\n }\n var rr = removeAux(r, x);\n return Belt_internalAVLtree.bal(l, v, n.v, rr);\n}\n\nfunction remove(n, x) {\n if (n !== undefined) {\n return removeAux(n, x);\n }\n \n}\n\nfunction removeMany(t, keys) {\n var len = keys.length;\n if (t !== undefined) {\n var _t = t;\n var _i = 0;\n while(true) {\n var i = _i;\n var t$1 = _t;\n if (i >= len) {\n return t$1;\n }\n var ele = keys[i];\n var u = removeAux(t$1, ele);\n if (u === undefined) {\n return u;\n }\n _i = i + 1 | 0;\n _t = u;\n continue ;\n };\n }\n \n}\n\nfunction mergeMany(h, arr) {\n var len = arr.length;\n var v = h;\n for(var i = 0; i < len; ++i){\n var match = arr[i];\n v = set(v, match[0], match[1]);\n }\n return v;\n}\n\nvar empty;\n\nvar isEmpty = Belt_internalAVLtree.isEmpty;\n\nvar has = Belt_internalMapInt.has;\n\nvar cmpU = Belt_internalMapInt.cmpU;\n\nvar cmp = Belt_internalMapInt.cmp;\n\nvar eqU = Belt_internalMapInt.eqU;\n\nvar eq = Belt_internalMapInt.eq;\n\nvar findFirstByU = Belt_internalAVLtree.findFirstByU;\n\nvar findFirstBy = Belt_internalAVLtree.findFirstBy;\n\nvar forEachU = Belt_internalAVLtree.forEachU;\n\nvar forEach = Belt_internalAVLtree.forEach;\n\nvar reduceU = Belt_internalAVLtree.reduceU;\n\nvar reduce = Belt_internalAVLtree.reduce;\n\nvar everyU = Belt_internalAVLtree.everyU;\n\nvar every = Belt_internalAVLtree.every;\n\nvar someU = Belt_internalAVLtree.someU;\n\nvar some = Belt_internalAVLtree.some;\n\nvar size = Belt_internalAVLtree.size;\n\nvar toList = Belt_internalAVLtree.toList;\n\nvar toArray = Belt_internalAVLtree.toArray;\n\nvar fromArray = Belt_internalMapInt.fromArray;\n\nvar keysToArray = Belt_internalAVLtree.keysToArray;\n\nvar valuesToArray = Belt_internalAVLtree.valuesToArray;\n\nvar minKey = Belt_internalAVLtree.minKey;\n\nvar minKeyUndefined = Belt_internalAVLtree.minKeyUndefined;\n\nvar maxKey = Belt_internalAVLtree.maxKey;\n\nvar maxKeyUndefined = Belt_internalAVLtree.maxKeyUndefined;\n\nvar minimum = Belt_internalAVLtree.minimum;\n\nvar minUndefined = Belt_internalAVLtree.minUndefined;\n\nvar maximum = Belt_internalAVLtree.maximum;\n\nvar maxUndefined = Belt_internalAVLtree.maxUndefined;\n\nvar get = Belt_internalMapInt.get;\n\nvar getUndefined = Belt_internalMapInt.getUndefined;\n\nvar getWithDefault = Belt_internalMapInt.getWithDefault;\n\nvar getExn = Belt_internalMapInt.getExn;\n\nvar checkInvariantInternal = Belt_internalAVLtree.checkInvariantInternal;\n\nvar mergeU = Belt_internalMapInt.mergeU;\n\nvar merge = Belt_internalMapInt.merge;\n\nvar keepU = Belt_internalAVLtree.keepSharedU;\n\nvar keep = Belt_internalAVLtree.keepShared;\n\nvar partitionU = Belt_internalAVLtree.partitionSharedU;\n\nvar partition = Belt_internalAVLtree.partitionShared;\n\nvar split = Belt_internalMapInt.split;\n\nvar mapU = Belt_internalAVLtree.mapU;\n\nvar map = Belt_internalAVLtree.map;\n\nvar mapWithKeyU = Belt_internalAVLtree.mapWithKeyU;\n\nvar mapWithKey = Belt_internalAVLtree.mapWithKey;\n\nexport {\n empty ,\n isEmpty ,\n has ,\n cmpU ,\n cmp ,\n eqU ,\n eq ,\n findFirstByU ,\n findFirstBy ,\n forEachU ,\n forEach ,\n reduceU ,\n reduce ,\n everyU ,\n every ,\n someU ,\n some ,\n size ,\n toList ,\n toArray ,\n fromArray ,\n keysToArray ,\n valuesToArray ,\n minKey ,\n minKeyUndefined ,\n maxKey ,\n maxKeyUndefined ,\n minimum ,\n minUndefined ,\n maximum ,\n maxUndefined ,\n get ,\n getUndefined ,\n getWithDefault ,\n getExn ,\n checkInvariantInternal ,\n remove ,\n removeMany ,\n set ,\n updateU ,\n update ,\n mergeU ,\n merge ,\n mergeMany ,\n keepU ,\n keep ,\n partitionU ,\n partition ,\n split ,\n mapU ,\n map ,\n mapWithKeyU ,\n mapWithKey ,\n}\n/* No side effect */\n","\n\nimport * as Curry from \"./curry.js\";\nimport * as Caml_option from \"./caml_option.js\";\n\nfunction keepU(opt, p) {\n if (opt !== undefined && p(Caml_option.valFromOption(opt))) {\n return opt;\n }\n \n}\n\nfunction keep(opt, p) {\n return keepU(opt, Curry.__1(p));\n}\n\nfunction forEachU(opt, f) {\n if (opt !== undefined) {\n return f(Caml_option.valFromOption(opt));\n }\n \n}\n\nfunction forEach(opt, f) {\n forEachU(opt, Curry.__1(f));\n}\n\nfunction getExn(x) {\n if (x !== undefined) {\n return Caml_option.valFromOption(x);\n }\n throw {\n RE_EXN_ID: \"Not_found\",\n Error: new Error()\n };\n}\n\nfunction mapWithDefaultU(opt, $$default, f) {\n if (opt !== undefined) {\n return f(Caml_option.valFromOption(opt));\n } else {\n return $$default;\n }\n}\n\nfunction mapWithDefault(opt, $$default, f) {\n return mapWithDefaultU(opt, $$default, Curry.__1(f));\n}\n\nfunction mapU(opt, f) {\n if (opt !== undefined) {\n return Caml_option.some(f(Caml_option.valFromOption(opt)));\n }\n \n}\n\nfunction map(opt, f) {\n return mapU(opt, Curry.__1(f));\n}\n\nfunction flatMapU(opt, f) {\n if (opt !== undefined) {\n return f(Caml_option.valFromOption(opt));\n }\n \n}\n\nfunction flatMap(opt, f) {\n return flatMapU(opt, Curry.__1(f));\n}\n\nfunction getWithDefault(opt, $$default) {\n if (opt !== undefined) {\n return Caml_option.valFromOption(opt);\n } else {\n return $$default;\n }\n}\n\nfunction orElse(opt, other) {\n if (opt !== undefined) {\n return opt;\n } else {\n return other;\n }\n}\n\nfunction isSome(x) {\n return x !== undefined;\n}\n\nfunction isNone(x) {\n return x === undefined;\n}\n\nfunction eqU(a, b, f) {\n if (a !== undefined) {\n if (b !== undefined) {\n return f(Caml_option.valFromOption(a), Caml_option.valFromOption(b));\n } else {\n return false;\n }\n } else {\n return b === undefined;\n }\n}\n\nfunction eq(a, b, f) {\n return eqU(a, b, Curry.__2(f));\n}\n\nfunction cmpU(a, b, f) {\n if (a !== undefined) {\n if (b !== undefined) {\n return f(Caml_option.valFromOption(a), Caml_option.valFromOption(b));\n } else {\n return 1;\n }\n } else if (b !== undefined) {\n return -1;\n } else {\n return 0;\n }\n}\n\nfunction cmp(a, b, f) {\n return cmpU(a, b, Curry.__2(f));\n}\n\nexport {\n keepU ,\n keep ,\n forEachU ,\n forEach ,\n getExn ,\n mapWithDefaultU ,\n mapWithDefault ,\n mapU ,\n map ,\n flatMapU ,\n flatMap ,\n getWithDefault ,\n orElse ,\n isSome ,\n isNone ,\n eqU ,\n eq ,\n cmpU ,\n cmp ,\n}\n/* No side effect */\n","\n\nimport * as Curry from \"./curry.js\";\nimport * as Caml_option from \"./caml_option.js\";\nimport * as Belt_SortArray from \"./belt_SortArray.js\";\n\nfunction copy(n) {\n if (n !== undefined) {\n return {\n v: n.v,\n h: n.h,\n l: copy(n.l),\n r: copy(n.r)\n };\n } else {\n return n;\n }\n}\n\nfunction create(l, v, r) {\n var hl = l !== undefined ? l.h : 0;\n var hr = r !== undefined ? r.h : 0;\n return {\n v: v,\n h: (\n hl >= hr ? hl : hr\n ) + 1 | 0,\n l: l,\n r: r\n };\n}\n\nfunction singleton(x) {\n return {\n v: x,\n h: 1,\n l: undefined,\n r: undefined\n };\n}\n\nfunction heightGe(l, r) {\n if (r !== undefined) {\n if (l !== undefined) {\n return l.h >= r.h;\n } else {\n return false;\n }\n } else {\n return true;\n }\n}\n\nfunction bal(l, v, r) {\n var hl = l !== undefined ? l.h : 0;\n var hr = r !== undefined ? r.h : 0;\n if (hl > (hr + 2 | 0)) {\n var ll = l.l;\n var lr = l.r;\n if (heightGe(ll, lr)) {\n return create(ll, l.v, create(lr, v, r));\n } else {\n return create(create(ll, l.v, lr.l), lr.v, create(lr.r, v, r));\n }\n }\n if (hr <= (hl + 2 | 0)) {\n return {\n v: v,\n h: (\n hl >= hr ? hl : hr\n ) + 1 | 0,\n l: l,\n r: r\n };\n }\n var rl = r.l;\n var rr = r.r;\n if (heightGe(rr, rl)) {\n return create(create(l, v, rl), r.v, rr);\n } else {\n return create(create(l, v, rl.l), rl.v, create(rl.r, r.v, rr));\n }\n}\n\nfunction min0Aux(_n) {\n while(true) {\n var n = _n;\n var n$1 = n.l;\n if (n$1 === undefined) {\n return n.v;\n }\n _n = n$1;\n continue ;\n };\n}\n\nfunction minimum(n) {\n if (n !== undefined) {\n return Caml_option.some(min0Aux(n));\n }\n \n}\n\nfunction minUndefined(n) {\n if (n !== undefined) {\n return min0Aux(n);\n }\n \n}\n\nfunction max0Aux(_n) {\n while(true) {\n var n = _n;\n var n$1 = n.r;\n if (n$1 === undefined) {\n return n.v;\n }\n _n = n$1;\n continue ;\n };\n}\n\nfunction maximum(n) {\n if (n !== undefined) {\n return Caml_option.some(max0Aux(n));\n }\n \n}\n\nfunction maxUndefined(n) {\n if (n !== undefined) {\n return max0Aux(n);\n }\n \n}\n\nfunction removeMinAuxWithRef(n, v) {\n var ln = n.l;\n if (ln !== undefined) {\n return bal(removeMinAuxWithRef(ln, v), n.v, n.r);\n } else {\n v.contents = n.v;\n return n.r;\n }\n}\n\nfunction isEmpty(n) {\n return n === undefined;\n}\n\nfunction stackAllLeft(_v, _s) {\n while(true) {\n var s = _s;\n var v = _v;\n if (v === undefined) {\n return s;\n }\n _s = {\n hd: v,\n tl: s\n };\n _v = v.l;\n continue ;\n };\n}\n\nfunction forEachU(_n, f) {\n while(true) {\n var n = _n;\n if (n === undefined) {\n return ;\n }\n forEachU(n.l, f);\n f(n.v);\n _n = n.r;\n continue ;\n };\n}\n\nfunction forEach(n, f) {\n forEachU(n, Curry.__1(f));\n}\n\nfunction reduceU(_s, _accu, f) {\n while(true) {\n var accu = _accu;\n var s = _s;\n if (s === undefined) {\n return accu;\n }\n _accu = f(reduceU(s.l, accu, f), s.v);\n _s = s.r;\n continue ;\n };\n}\n\nfunction reduce(s, accu, f) {\n return reduceU(s, accu, Curry.__2(f));\n}\n\nfunction everyU(_n, p) {\n while(true) {\n var n = _n;\n if (n === undefined) {\n return true;\n }\n if (!p(n.v)) {\n return false;\n }\n if (!everyU(n.l, p)) {\n return false;\n }\n _n = n.r;\n continue ;\n };\n}\n\nfunction every(n, p) {\n return everyU(n, Curry.__1(p));\n}\n\nfunction someU(_n, p) {\n while(true) {\n var n = _n;\n if (n === undefined) {\n return false;\n }\n if (p(n.v)) {\n return true;\n }\n if (someU(n.l, p)) {\n return true;\n }\n _n = n.r;\n continue ;\n };\n}\n\nfunction some(n, p) {\n return someU(n, Curry.__1(p));\n}\n\nfunction addMinElement(n, v) {\n if (n !== undefined) {\n return bal(addMinElement(n.l, v), n.v, n.r);\n } else {\n return singleton(v);\n }\n}\n\nfunction addMaxElement(n, v) {\n if (n !== undefined) {\n return bal(n.l, n.v, addMaxElement(n.r, v));\n } else {\n return singleton(v);\n }\n}\n\nfunction joinShared(ln, v, rn) {\n if (ln === undefined) {\n return addMinElement(rn, v);\n }\n if (rn === undefined) {\n return addMaxElement(ln, v);\n }\n var lh = ln.h;\n var rh = rn.h;\n if (lh > (rh + 2 | 0)) {\n return bal(ln.l, ln.v, joinShared(ln.r, v, rn));\n } else if (rh > (lh + 2 | 0)) {\n return bal(joinShared(ln, v, rn.l), rn.v, rn.r);\n } else {\n return create(ln, v, rn);\n }\n}\n\nfunction concatShared(t1, t2) {\n if (t1 === undefined) {\n return t2;\n }\n if (t2 === undefined) {\n return t1;\n }\n var v = {\n contents: t2.v\n };\n var t2r = removeMinAuxWithRef(t2, v);\n return joinShared(t1, v.contents, t2r);\n}\n\nfunction partitionSharedU(n, p) {\n if (n === undefined) {\n return [\n undefined,\n undefined\n ];\n }\n var value = n.v;\n var match = partitionSharedU(n.l, p);\n var lf = match[1];\n var lt = match[0];\n var pv = p(value);\n var match$1 = partitionSharedU(n.r, p);\n var rf = match$1[1];\n var rt = match$1[0];\n if (pv) {\n return [\n joinShared(lt, value, rt),\n concatShared(lf, rf)\n ];\n } else {\n return [\n concatShared(lt, rt),\n joinShared(lf, value, rf)\n ];\n }\n}\n\nfunction partitionShared(n, p) {\n return partitionSharedU(n, Curry.__1(p));\n}\n\nfunction lengthNode(n) {\n var l = n.l;\n var r = n.r;\n var sizeL = l !== undefined ? lengthNode(l) : 0;\n var sizeR = r !== undefined ? lengthNode(r) : 0;\n return (1 + sizeL | 0) + sizeR | 0;\n}\n\nfunction size(n) {\n if (n !== undefined) {\n return lengthNode(n);\n } else {\n return 0;\n }\n}\n\nfunction toListAux(_n, _accu) {\n while(true) {\n var accu = _accu;\n var n = _n;\n if (n === undefined) {\n return accu;\n }\n _accu = {\n hd: n.v,\n tl: toListAux(n.r, accu)\n };\n _n = n.l;\n continue ;\n };\n}\n\nfunction toList(s) {\n return toListAux(s, /* [] */0);\n}\n\nfunction checkInvariantInternal(_v) {\n while(true) {\n var v = _v;\n if (v === undefined) {\n return ;\n }\n var l = v.l;\n var r = v.r;\n var diff = (\n l !== undefined ? l.h : 0\n ) - (\n r !== undefined ? r.h : 0\n ) | 0;\n if (!(diff <= 2 && diff >= -2)) {\n throw {\n RE_EXN_ID: \"Assert_failure\",\n _1: [\n \"belt_internalAVLset.res\",\n 319,\n 4\n ],\n Error: new Error()\n };\n }\n checkInvariantInternal(l);\n _v = r;\n continue ;\n };\n}\n\nfunction fillArray(_n, _i, arr) {\n while(true) {\n var i = _i;\n var n = _n;\n var v = n.v;\n var l = n.l;\n var r = n.r;\n var next = l !== undefined ? fillArray(l, i, arr) : i;\n arr[next] = v;\n var rnext = next + 1 | 0;\n if (r === undefined) {\n return rnext;\n }\n _i = rnext;\n _n = r;\n continue ;\n };\n}\n\nfunction fillArrayWithPartition(_n, cursor, arr, p) {\n while(true) {\n var n = _n;\n var v = n.v;\n var l = n.l;\n var r = n.r;\n if (l !== undefined) {\n fillArrayWithPartition(l, cursor, arr, p);\n }\n if (p(v)) {\n var c = cursor.forward;\n arr[c] = v;\n cursor.forward = c + 1 | 0;\n } else {\n var c$1 = cursor.backward;\n arr[c$1] = v;\n cursor.backward = c$1 - 1 | 0;\n }\n if (r === undefined) {\n return ;\n }\n _n = r;\n continue ;\n };\n}\n\nfunction fillArrayWithFilter(_n, _i, arr, p) {\n while(true) {\n var i = _i;\n var n = _n;\n var v = n.v;\n var l = n.l;\n var r = n.r;\n var next = l !== undefined ? fillArrayWithFilter(l, i, arr, p) : i;\n var rnext = p(v) ? (arr[next] = v, next + 1 | 0) : next;\n if (r === undefined) {\n return rnext;\n }\n _i = rnext;\n _n = r;\n continue ;\n };\n}\n\nfunction toArray(n) {\n if (n === undefined) {\n return [];\n }\n var size = lengthNode(n);\n var v = new Array(size);\n fillArray(n, 0, v);\n return v;\n}\n\nfunction fromSortedArrayRevAux(arr, off, len) {\n switch (len) {\n case 0 :\n return ;\n case 1 :\n return singleton(arr[off]);\n case 2 :\n var x0 = arr[off];\n var x1 = arr[off - 1 | 0];\n return {\n v: x1,\n h: 2,\n l: singleton(x0),\n r: undefined\n };\n case 3 :\n var x0$1 = arr[off];\n var x1$1 = arr[off - 1 | 0];\n var x2 = arr[off - 2 | 0];\n return {\n v: x1$1,\n h: 2,\n l: singleton(x0$1),\n r: singleton(x2)\n };\n default:\n var nl = len / 2 | 0;\n var left = fromSortedArrayRevAux(arr, off, nl);\n var mid = arr[off - nl | 0];\n var right = fromSortedArrayRevAux(arr, (off - nl | 0) - 1 | 0, (len - nl | 0) - 1 | 0);\n return create(left, mid, right);\n }\n}\n\nfunction fromSortedArrayAux(arr, off, len) {\n switch (len) {\n case 0 :\n return ;\n case 1 :\n return singleton(arr[off]);\n case 2 :\n var x0 = arr[off];\n var x1 = arr[off + 1 | 0];\n return {\n v: x1,\n h: 2,\n l: singleton(x0),\n r: undefined\n };\n case 3 :\n var x0$1 = arr[off];\n var x1$1 = arr[off + 1 | 0];\n var x2 = arr[off + 2 | 0];\n return {\n v: x1$1,\n h: 2,\n l: singleton(x0$1),\n r: singleton(x2)\n };\n default:\n var nl = len / 2 | 0;\n var left = fromSortedArrayAux(arr, off, nl);\n var mid = arr[off + nl | 0];\n var right = fromSortedArrayAux(arr, (off + nl | 0) + 1 | 0, (len - nl | 0) - 1 | 0);\n return create(left, mid, right);\n }\n}\n\nfunction fromSortedArrayUnsafe(arr) {\n return fromSortedArrayAux(arr, 0, arr.length);\n}\n\nfunction keepSharedU(n, p) {\n if (n === undefined) {\n return ;\n }\n var v = n.v;\n var l = n.l;\n var r = n.r;\n var newL = keepSharedU(l, p);\n var pv = p(v);\n var newR = keepSharedU(r, p);\n if (pv) {\n if (l === newL && r === newR) {\n return n;\n } else {\n return joinShared(newL, v, newR);\n }\n } else {\n return concatShared(newL, newR);\n }\n}\n\nfunction keepShared(n, p) {\n return keepSharedU(n, Curry.__1(p));\n}\n\nfunction keepCopyU(n, p) {\n if (n === undefined) {\n return ;\n }\n var size = lengthNode(n);\n var v = new Array(size);\n var last = fillArrayWithFilter(n, 0, v, p);\n return fromSortedArrayAux(v, 0, last);\n}\n\nfunction keepCopy(n, p) {\n return keepCopyU(n, Curry.__1(p));\n}\n\nfunction partitionCopyU(n, p) {\n if (n === undefined) {\n return [\n undefined,\n undefined\n ];\n }\n var size = lengthNode(n);\n var v = new Array(size);\n var backward = size - 1 | 0;\n var cursor = {\n forward: 0,\n backward: backward\n };\n fillArrayWithPartition(n, cursor, v, p);\n var forwardLen = cursor.forward;\n return [\n fromSortedArrayAux(v, 0, forwardLen),\n fromSortedArrayRevAux(v, backward, size - forwardLen | 0)\n ];\n}\n\nfunction partitionCopy(n, p) {\n return partitionCopyU(n, Curry.__1(p));\n}\n\nfunction has(_t, x, cmp) {\n while(true) {\n var t = _t;\n if (t === undefined) {\n return false;\n }\n var v = t.v;\n var c = cmp(x, v);\n if (c === 0) {\n return true;\n }\n _t = c < 0 ? t.l : t.r;\n continue ;\n };\n}\n\nfunction cmp(s1, s2, cmp$1) {\n var len1 = size(s1);\n var len2 = size(s2);\n if (len1 === len2) {\n var _e1 = stackAllLeft(s1, /* [] */0);\n var _e2 = stackAllLeft(s2, /* [] */0);\n while(true) {\n var e2 = _e2;\n var e1 = _e1;\n if (!e1) {\n return 0;\n }\n if (!e2) {\n return 0;\n }\n var h2 = e2.hd;\n var h1 = e1.hd;\n var c = cmp$1(h1.v, h2.v);\n if (c !== 0) {\n return c;\n }\n _e2 = stackAllLeft(h2.r, e2.tl);\n _e1 = stackAllLeft(h1.r, e1.tl);\n continue ;\n };\n } else if (len1 < len2) {\n return -1;\n } else {\n return 1;\n }\n}\n\nfunction eq(s1, s2, c) {\n return cmp(s1, s2, c) === 0;\n}\n\nfunction subset(_s1, _s2, cmp) {\n while(true) {\n var s2 = _s2;\n var s1 = _s1;\n if (s1 === undefined) {\n return true;\n }\n if (s2 === undefined) {\n return false;\n }\n var v1 = s1.v;\n var l1 = s1.l;\n var r1 = s1.r;\n var v2 = s2.v;\n var l2 = s2.l;\n var r2 = s2.r;\n var c = cmp(v1, v2);\n if (c === 0) {\n if (!subset(l1, l2, cmp)) {\n return false;\n }\n _s2 = r2;\n _s1 = r1;\n continue ;\n }\n if (c < 0) {\n if (!subset(create(l1, v1, undefined), l2, cmp)) {\n return false;\n }\n _s1 = r1;\n continue ;\n }\n if (!subset(create(undefined, v1, r1), r2, cmp)) {\n return false;\n }\n _s1 = l1;\n continue ;\n };\n}\n\nfunction get(_n, x, cmp) {\n while(true) {\n var n = _n;\n if (n === undefined) {\n return ;\n }\n var v = n.v;\n var c = cmp(x, v);\n if (c === 0) {\n return Caml_option.some(v);\n }\n _n = c < 0 ? n.l : n.r;\n continue ;\n };\n}\n\nfunction getUndefined(_n, x, cmp) {\n while(true) {\n var n = _n;\n if (n === undefined) {\n return ;\n }\n var v = n.v;\n var c = cmp(x, v);\n if (c === 0) {\n return v;\n }\n _n = c < 0 ? n.l : n.r;\n continue ;\n };\n}\n\nfunction getExn(_n, x, cmp) {\n while(true) {\n var n = _n;\n if (n !== undefined) {\n var v = n.v;\n var c = cmp(x, v);\n if (c === 0) {\n return v;\n }\n _n = c < 0 ? n.l : n.r;\n continue ;\n }\n throw {\n RE_EXN_ID: \"Not_found\",\n Error: new Error()\n };\n };\n}\n\nfunction rotateWithLeftChild(k2) {\n var k1 = k2.l;\n k2.l = k1.r;\n k1.r = k2;\n var n = k2.l;\n var hlk2 = n !== undefined ? n.h : 0;\n var n$1 = k2.r;\n var hrk2 = n$1 !== undefined ? n$1.h : 0;\n k2.h = (\n hlk2 > hrk2 ? hlk2 : hrk2\n ) + 1 | 0;\n var n$2 = k1.l;\n var hlk1 = n$2 !== undefined ? n$2.h : 0;\n var hk2 = k2.h;\n k1.h = (\n hlk1 > hk2 ? hlk1 : hk2\n ) + 1 | 0;\n return k1;\n}\n\nfunction rotateWithRightChild(k1) {\n var k2 = k1.r;\n k1.r = k2.l;\n k2.l = k1;\n var n = k1.l;\n var hlk1 = n !== undefined ? n.h : 0;\n var n$1 = k1.r;\n var hrk1 = n$1 !== undefined ? n$1.h : 0;\n k1.h = (\n hlk1 > hrk1 ? hlk1 : hrk1\n ) + 1 | 0;\n var n$2 = k2.r;\n var hrk2 = n$2 !== undefined ? n$2.h : 0;\n var hk1 = k1.h;\n k2.h = (\n hrk2 > hk1 ? hrk2 : hk1\n ) + 1 | 0;\n return k2;\n}\n\nfunction doubleWithLeftChild(k3) {\n var k3l = k3.l;\n var v = rotateWithRightChild(k3l);\n k3.l = v;\n return rotateWithLeftChild(k3);\n}\n\nfunction doubleWithRightChild(k2) {\n var k2r = k2.r;\n var v = rotateWithLeftChild(k2r);\n k2.r = v;\n return rotateWithRightChild(k2);\n}\n\nfunction heightUpdateMutate(t) {\n var n = t.l;\n var hlt = n !== undefined ? n.h : 0;\n var n$1 = t.r;\n var hrt = n$1 !== undefined ? n$1.h : 0;\n t.h = (\n hlt > hrt ? hlt : hrt\n ) + 1 | 0;\n return t;\n}\n\nfunction balMutate(nt) {\n var l = nt.l;\n var r = nt.r;\n var hl = l !== undefined ? l.h : 0;\n var hr = r !== undefined ? r.h : 0;\n if (hl > (2 + hr | 0)) {\n var ll = l.l;\n var lr = l.r;\n if (heightGe(ll, lr)) {\n return heightUpdateMutate(rotateWithLeftChild(nt));\n } else {\n return heightUpdateMutate(doubleWithLeftChild(nt));\n }\n }\n if (hr > (2 + hl | 0)) {\n var rl = r.l;\n var rr = r.r;\n if (heightGe(rr, rl)) {\n return heightUpdateMutate(rotateWithRightChild(nt));\n } else {\n return heightUpdateMutate(doubleWithRightChild(nt));\n }\n }\n nt.h = (\n hl > hr ? hl : hr\n ) + 1 | 0;\n return nt;\n}\n\nfunction addMutate(cmp, t, x) {\n if (t === undefined) {\n return singleton(x);\n }\n var k = t.v;\n var c = cmp(x, k);\n if (c === 0) {\n return t;\n }\n var l = t.l;\n var r = t.r;\n if (c < 0) {\n var ll = addMutate(cmp, l, x);\n t.l = ll;\n } else {\n t.r = addMutate(cmp, r, x);\n }\n return balMutate(t);\n}\n\nfunction fromArray(xs, cmp) {\n var len = xs.length;\n if (len === 0) {\n return ;\n }\n var next = Belt_SortArray.strictlySortedLengthU(xs, (function (x, y) {\n return cmp(x, y) < 0;\n }));\n var result;\n if (next >= 0) {\n result = fromSortedArrayAux(xs, 0, next);\n } else {\n next = -next | 0;\n result = fromSortedArrayRevAux(xs, next - 1 | 0, next);\n }\n for(var i = next; i < len; ++i){\n result = addMutate(cmp, result, xs[i]);\n }\n return result;\n}\n\nfunction removeMinAuxWithRootMutate(nt, n) {\n var ln = n.l;\n var rn = n.r;\n if (ln !== undefined) {\n n.l = removeMinAuxWithRootMutate(nt, ln);\n return balMutate(n);\n } else {\n nt.v = n.v;\n return rn;\n }\n}\n\nexport {\n copy ,\n create ,\n bal ,\n singleton ,\n minimum ,\n minUndefined ,\n maximum ,\n maxUndefined ,\n removeMinAuxWithRef ,\n isEmpty ,\n stackAllLeft ,\n forEachU ,\n forEach ,\n reduceU ,\n reduce ,\n everyU ,\n every ,\n someU ,\n some ,\n joinShared ,\n concatShared ,\n keepSharedU ,\n keepShared ,\n keepCopyU ,\n keepCopy ,\n partitionSharedU ,\n partitionShared ,\n partitionCopyU ,\n partitionCopy ,\n lengthNode ,\n size ,\n toList ,\n checkInvariantInternal ,\n fillArray ,\n toArray ,\n fromSortedArrayAux ,\n fromSortedArrayRevAux ,\n fromSortedArrayUnsafe ,\n has ,\n cmp ,\n eq ,\n subset ,\n get ,\n getUndefined ,\n getExn ,\n fromArray ,\n addMutate ,\n balMutate ,\n removeMinAuxWithRootMutate ,\n}\n/* No side effect */\n","\n\nimport * as Belt_SortArrayInt from \"./belt_SortArrayInt.js\";\nimport * as Belt_internalAVLset from \"./belt_internalAVLset.js\";\n\nfunction has(_t, x) {\n while(true) {\n var t = _t;\n if (t === undefined) {\n return false;\n }\n var v = t.v;\n if (x === v) {\n return true;\n }\n _t = x < v ? t.l : t.r;\n continue ;\n };\n}\n\nfunction compareAux(_e1, _e2) {\n while(true) {\n var e2 = _e2;\n var e1 = _e1;\n if (!e1) {\n return 0;\n }\n if (!e2) {\n return 0;\n }\n var h2 = e2.hd;\n var h1 = e1.hd;\n var k1 = h1.v;\n var k2 = h2.v;\n if (k1 !== k2) {\n if (k1 < k2) {\n return -1;\n } else {\n return 1;\n }\n }\n _e2 = Belt_internalAVLset.stackAllLeft(h2.r, e2.tl);\n _e1 = Belt_internalAVLset.stackAllLeft(h1.r, e1.tl);\n continue ;\n };\n}\n\nfunction cmp(s1, s2) {\n var len1 = Belt_internalAVLset.size(s1);\n var len2 = Belt_internalAVLset.size(s2);\n if (len1 === len2) {\n return compareAux(Belt_internalAVLset.stackAllLeft(s1, /* [] */0), Belt_internalAVLset.stackAllLeft(s2, /* [] */0));\n } else if (len1 < len2) {\n return -1;\n } else {\n return 1;\n }\n}\n\nfunction eq(s1, s2) {\n return cmp(s1, s2) === 0;\n}\n\nfunction subset(_s1, _s2) {\n while(true) {\n var s2 = _s2;\n var s1 = _s1;\n if (s1 === undefined) {\n return true;\n }\n if (s2 === undefined) {\n return false;\n }\n var v1 = s1.v;\n var l1 = s1.l;\n var r1 = s1.r;\n var v2 = s2.v;\n var l2 = s2.l;\n var r2 = s2.r;\n if (v1 === v2) {\n if (!subset(l1, l2)) {\n return false;\n }\n _s2 = r2;\n _s1 = r1;\n continue ;\n }\n if (v1 < v2) {\n if (!subset(Belt_internalAVLset.create(l1, v1, undefined), l2)) {\n return false;\n }\n _s1 = r1;\n continue ;\n }\n if (!subset(Belt_internalAVLset.create(undefined, v1, r1), r2)) {\n return false;\n }\n _s1 = l1;\n continue ;\n };\n}\n\nfunction get(_n, x) {\n while(true) {\n var n = _n;\n if (n === undefined) {\n return ;\n }\n var v = n.v;\n if (x === v) {\n return v;\n }\n _n = x < v ? n.l : n.r;\n continue ;\n };\n}\n\nfunction getUndefined(_n, x) {\n while(true) {\n var n = _n;\n if (n === undefined) {\n return ;\n }\n var v = n.v;\n if (x === v) {\n return v;\n }\n _n = x < v ? n.l : n.r;\n continue ;\n };\n}\n\nfunction getExn(_n, x) {\n while(true) {\n var n = _n;\n if (n !== undefined) {\n var v = n.v;\n if (x === v) {\n return v;\n }\n _n = x < v ? n.l : n.r;\n continue ;\n }\n throw {\n RE_EXN_ID: \"Not_found\",\n Error: new Error()\n };\n };\n}\n\nfunction addMutate(t, x) {\n if (t === undefined) {\n return Belt_internalAVLset.singleton(x);\n }\n var k = t.v;\n if (x === k) {\n return t;\n }\n var l = t.l;\n var r = t.r;\n if (x < k) {\n t.l = addMutate(l, x);\n } else {\n t.r = addMutate(r, x);\n }\n return Belt_internalAVLset.balMutate(t);\n}\n\nfunction fromArray(xs) {\n var len = xs.length;\n if (len === 0) {\n return ;\n }\n var next = Belt_SortArrayInt.strictlySortedLength(xs);\n var result;\n if (next >= 0) {\n result = Belt_internalAVLset.fromSortedArrayAux(xs, 0, next);\n } else {\n next = -next | 0;\n result = Belt_internalAVLset.fromSortedArrayRevAux(xs, next - 1 | 0, next);\n }\n for(var i = next; i < len; ++i){\n result = addMutate(result, xs[i]);\n }\n return result;\n}\n\nvar S;\n\nvar N;\n\nvar A;\n\nexport {\n S ,\n N ,\n A ,\n has ,\n compareAux ,\n cmp ,\n eq ,\n subset ,\n get ,\n getUndefined ,\n getExn ,\n addMutate ,\n fromArray ,\n}\n/* No side effect */\n","\n\nimport * as Belt_internalAVLset from \"./belt_internalAVLset.js\";\nimport * as Belt_internalSetInt from \"./belt_internalSetInt.js\";\n\nfunction add(t, x) {\n if (t === undefined) {\n return Belt_internalAVLset.singleton(x);\n }\n var v = t.v;\n if (x === v) {\n return t;\n }\n var l = t.l;\n var r = t.r;\n if (x < v) {\n var ll = add(l, x);\n if (ll === l) {\n return t;\n } else {\n return Belt_internalAVLset.bal(ll, v, r);\n }\n }\n var rr = add(r, x);\n if (rr === r) {\n return t;\n } else {\n return Belt_internalAVLset.bal(l, v, rr);\n }\n}\n\nfunction mergeMany(h, arr) {\n var len = arr.length;\n var v = h;\n for(var i = 0; i < len; ++i){\n var key = arr[i];\n v = add(v, key);\n }\n return v;\n}\n\nfunction remove(t, x) {\n if (t === undefined) {\n return t;\n }\n var v = t.v;\n var l = t.l;\n var r = t.r;\n if (x === v) {\n if (l === undefined) {\n return r;\n }\n if (r === undefined) {\n return l;\n }\n var v$1 = {\n contents: r.v\n };\n var r$1 = Belt_internalAVLset.removeMinAuxWithRef(r, v$1);\n return Belt_internalAVLset.bal(l, v$1.contents, r$1);\n }\n if (x < v) {\n var ll = remove(l, x);\n if (ll === l) {\n return t;\n } else {\n return Belt_internalAVLset.bal(ll, v, r);\n }\n }\n var rr = remove(r, x);\n if (rr === r) {\n return t;\n } else {\n return Belt_internalAVLset.bal(l, v, rr);\n }\n}\n\nfunction removeMany(h, arr) {\n var len = arr.length;\n var v = h;\n for(var i = 0; i < len; ++i){\n var key = arr[i];\n v = remove(v, key);\n }\n return v;\n}\n\nfunction splitAuxNoPivot(n, x) {\n var v = n.v;\n var l = n.l;\n var r = n.r;\n if (x === v) {\n return [\n l,\n r\n ];\n }\n if (x < v) {\n if (l === undefined) {\n return [\n undefined,\n n\n ];\n }\n var match = splitAuxNoPivot(l, x);\n return [\n match[0],\n Belt_internalAVLset.joinShared(match[1], v, r)\n ];\n }\n if (r === undefined) {\n return [\n n,\n undefined\n ];\n }\n var match$1 = splitAuxNoPivot(r, x);\n return [\n Belt_internalAVLset.joinShared(l, v, match$1[0]),\n match$1[1]\n ];\n}\n\nfunction splitAuxPivot(n, x, pres) {\n var v = n.v;\n var l = n.l;\n var r = n.r;\n if (x === v) {\n pres.contents = true;\n return [\n l,\n r\n ];\n }\n if (x < v) {\n if (l === undefined) {\n return [\n undefined,\n n\n ];\n }\n var match = splitAuxPivot(l, x, pres);\n return [\n match[0],\n Belt_internalAVLset.joinShared(match[1], v, r)\n ];\n }\n if (r === undefined) {\n return [\n n,\n undefined\n ];\n }\n var match$1 = splitAuxPivot(r, x, pres);\n return [\n Belt_internalAVLset.joinShared(l, v, match$1[0]),\n match$1[1]\n ];\n}\n\nfunction split(t, x) {\n if (t === undefined) {\n return [\n [\n undefined,\n undefined\n ],\n false\n ];\n }\n var pres = {\n contents: false\n };\n var v = splitAuxPivot(t, x, pres);\n return [\n v,\n pres.contents\n ];\n}\n\nfunction union(s1, s2) {\n if (s1 === undefined) {\n return s2;\n }\n if (s2 === undefined) {\n return s1;\n }\n var h1 = s1.h;\n var h2 = s2.h;\n if (h1 >= h2) {\n if (h2 === 1) {\n return add(s1, s2.v);\n }\n var v1 = s1.v;\n var l1 = s1.l;\n var r1 = s1.r;\n var match = splitAuxNoPivot(s2, v1);\n return Belt_internalAVLset.joinShared(union(l1, match[0]), v1, union(r1, match[1]));\n }\n if (h1 === 1) {\n return add(s2, s1.v);\n }\n var v2 = s2.v;\n var l2 = s2.l;\n var r2 = s2.r;\n var match$1 = splitAuxNoPivot(s1, v2);\n return Belt_internalAVLset.joinShared(union(match$1[0], l2), v2, union(match$1[1], r2));\n}\n\nfunction intersect(s1, s2) {\n if (s1 === undefined) {\n return ;\n }\n if (s2 === undefined) {\n return ;\n }\n var v1 = s1.v;\n var l1 = s1.l;\n var r1 = s1.r;\n var pres = {\n contents: false\n };\n var match = splitAuxPivot(s2, v1, pres);\n var ll = intersect(l1, match[0]);\n var rr = intersect(r1, match[1]);\n if (pres.contents) {\n return Belt_internalAVLset.joinShared(ll, v1, rr);\n } else {\n return Belt_internalAVLset.concatShared(ll, rr);\n }\n}\n\nfunction diff(s1, s2) {\n if (s1 === undefined) {\n return s1;\n }\n if (s2 === undefined) {\n return s1;\n }\n var v1 = s1.v;\n var l1 = s1.l;\n var r1 = s1.r;\n var pres = {\n contents: false\n };\n var match = splitAuxPivot(s2, v1, pres);\n var ll = diff(l1, match[0]);\n var rr = diff(r1, match[1]);\n if (pres.contents) {\n return Belt_internalAVLset.concatShared(ll, rr);\n } else {\n return Belt_internalAVLset.joinShared(ll, v1, rr);\n }\n}\n\nvar empty;\n\nvar fromArray = Belt_internalSetInt.fromArray;\n\nvar fromSortedArrayUnsafe = Belt_internalAVLset.fromSortedArrayUnsafe;\n\nvar isEmpty = Belt_internalAVLset.isEmpty;\n\nvar has = Belt_internalSetInt.has;\n\nvar subset = Belt_internalSetInt.subset;\n\nvar cmp = Belt_internalSetInt.cmp;\n\nvar eq = Belt_internalSetInt.eq;\n\nvar forEachU = Belt_internalAVLset.forEachU;\n\nvar forEach = Belt_internalAVLset.forEach;\n\nvar reduceU = Belt_internalAVLset.reduceU;\n\nvar reduce = Belt_internalAVLset.reduce;\n\nvar everyU = Belt_internalAVLset.everyU;\n\nvar every = Belt_internalAVLset.every;\n\nvar someU = Belt_internalAVLset.someU;\n\nvar some = Belt_internalAVLset.some;\n\nvar keepU = Belt_internalAVLset.keepSharedU;\n\nvar keep = Belt_internalAVLset.keepShared;\n\nvar partitionU = Belt_internalAVLset.partitionSharedU;\n\nvar partition = Belt_internalAVLset.partitionShared;\n\nvar size = Belt_internalAVLset.size;\n\nvar toList = Belt_internalAVLset.toList;\n\nvar toArray = Belt_internalAVLset.toArray;\n\nvar minimum = Belt_internalAVLset.minimum;\n\nvar minUndefined = Belt_internalAVLset.minUndefined;\n\nvar maximum = Belt_internalAVLset.maximum;\n\nvar maxUndefined = Belt_internalAVLset.maxUndefined;\n\nvar get = Belt_internalSetInt.get;\n\nvar getUndefined = Belt_internalSetInt.getUndefined;\n\nvar getExn = Belt_internalSetInt.getExn;\n\nvar checkInvariantInternal = Belt_internalAVLset.checkInvariantInternal;\n\nexport {\n empty ,\n fromArray ,\n fromSortedArrayUnsafe ,\n isEmpty ,\n has ,\n add ,\n mergeMany ,\n remove ,\n removeMany ,\n union ,\n intersect ,\n diff ,\n subset ,\n cmp ,\n eq ,\n forEachU ,\n forEach ,\n reduceU ,\n reduce ,\n everyU ,\n every ,\n someU ,\n some ,\n keepU ,\n keep ,\n partitionU ,\n partition ,\n size ,\n toList ,\n toArray ,\n minimum ,\n minUndefined ,\n maximum ,\n maxUndefined ,\n get ,\n getUndefined ,\n getExn ,\n split ,\n checkInvariantInternal ,\n}\n/* No side effect */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as Caml_obj from \"rescript/lib/es6/caml_obj.js\";\nimport * as Belt_MapInt from \"rescript/lib/es6/belt_MapInt.js\";\nimport * as Belt_Option from \"rescript/lib/es6/belt_Option.js\";\nimport * as Belt_SetInt from \"rescript/lib/es6/belt_SetInt.js\";\nimport * as Caml_option from \"rescript/lib/es6/caml_option.js\";\n\nvar observers = {\n contents: undefined\n};\n\nvar signalObservers = {\n contents: undefined\n};\n\nvar signalPeeks = {\n contents: undefined\n};\n\nvar currentObserverId = {\n contents: undefined\n};\n\nvar pending = {\n contents: undefined\n};\n\nvar batching = {\n contents: false\n};\n\nfunction ensureSignalBucket(sid) {\n var match = Belt_MapInt.get(signalObservers.contents, sid);\n if (match !== undefined) {\n return ;\n } else {\n signalObservers.contents = Belt_MapInt.set(signalObservers.contents, sid, undefined);\n return ;\n }\n}\n\nfunction addDep(obsId, sid) {\n ensureSignalBucket(sid);\n var obs = Belt_Option.getExn(Belt_MapInt.get(observers.contents, obsId));\n if (!Caml_obj.equal(currentObserverId.contents, obsId)) {\n return ;\n }\n if (Belt_SetInt.has(obs.deps, sid) !== false) {\n return ;\n }\n obs.deps = Belt_SetInt.add(obs.deps, sid);\n var sset = Belt_Option.getExn(Belt_MapInt.get(signalObservers.contents, sid));\n signalObservers.contents = Belt_MapInt.set(signalObservers.contents, sid, Belt_SetInt.add(sset, obsId));\n}\n\nfunction clearDeps(obs) {\n Belt_SetInt.forEach(obs.deps, (function (sid) {\n var sset = Belt_MapInt.get(signalObservers.contents, sid);\n if (sset !== undefined) {\n signalObservers.contents = Belt_MapInt.set(signalObservers.contents, sid, Belt_SetInt.remove(Caml_option.valFromOption(sset), obs.id));\n return ;\n }\n \n }));\n obs.deps = undefined;\n}\n\nfunction schedule(obsId) {\n pending.contents = Belt_SetInt.add(pending.contents, obsId);\n if (batching.contents !== false) {\n return ;\n }\n var toRun = pending.contents;\n pending.contents = undefined;\n Belt_SetInt.forEach(toRun, (function (id) {\n var o = Belt_MapInt.get(observers.contents, id);\n if (o !== undefined) {\n clearDeps(o);\n currentObserverId.contents = id;\n o.run();\n currentObserverId.contents = undefined;\n return ;\n }\n \n }));\n}\n\nfunction notify(sid) {\n ensureSignalBucket(sid);\n var sset = Belt_MapInt.get(signalObservers.contents, sid);\n if (sset !== undefined) {\n return Belt_SetInt.forEach(Caml_option.valFromOption(sset), schedule);\n }\n \n}\n\nfunction untrack(f) {\n var prev = currentObserverId.contents;\n currentObserverId.contents = undefined;\n var r = f();\n currentObserverId.contents = prev;\n return r;\n}\n\nfunction batch(f) {\n var prev = batching.contents;\n batching.contents = true;\n var r = f();\n batching.contents = prev;\n if (pending.contents !== undefined) {\n var toRun = pending.contents;\n pending.contents = undefined;\n Belt_SetInt.forEach(toRun, (function (id) {\n schedule(id);\n }));\n }\n return r;\n}\n\nvar IntSet;\n\nvar IntMap;\n\nvar Observer;\n\nvar Id;\n\nexport {\n IntSet ,\n IntMap ,\n Observer ,\n Id ,\n observers ,\n signalObservers ,\n signalPeeks ,\n currentObserverId ,\n pending ,\n batching ,\n ensureSignalBucket ,\n addDep ,\n clearDeps ,\n schedule ,\n notify ,\n untrack ,\n batch ,\n}\n/* No side effect */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\n\nvar next = {\n contents: 0\n};\n\nfunction make() {\n next.contents = next.contents + 1 | 0;\n return next.contents;\n}\n\nexport {\n next ,\n make ,\n}\n/* No side effect */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as Xote__Id from \"./Xote__Id.res.mjs\";\nimport * as Xote__Core from \"./Xote__Core.res.mjs\";\nimport * as Belt_MapInt from \"rescript/lib/es6/belt_MapInt.js\";\n\nfunction run(fn) {\n var id = Xote__Id.make();\n var o = {\n id: id,\n kind: \"Effect\",\n run: (function () {\n fn();\n }),\n deps: undefined\n };\n Xote__Core.observers.contents = Belt_MapInt.set(Xote__Core.observers.contents, id, o);\n Xote__Core.clearDeps(o);\n Xote__Core.currentObserverId.contents = id;\n o.run();\n Xote__Core.currentObserverId.contents = undefined;\n var dispose = function () {\n var o = Belt_MapInt.get(Xote__Core.observers.contents, id);\n if (o !== undefined) {\n Xote__Core.clearDeps(o);\n Xote__Core.observers.contents = Belt_MapInt.remove(Xote__Core.observers.contents, id);\n return ;\n }\n \n };\n return {\n dispose: dispose\n };\n}\n\nvar IntSet;\n\nvar IntMap;\n\nvar Id;\n\nvar Observer;\n\nvar Signal;\n\nvar Core;\n\nexport {\n IntSet ,\n IntMap ,\n Id ,\n Observer ,\n Signal ,\n Core ,\n run ,\n}\n/* No side effect */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as Xote__Id from \"./Xote__Id.res.mjs\";\nimport * as Xote__Core from \"./Xote__Core.res.mjs\";\n\nfunction make(v) {\n var id = Xote__Id.make();\n Xote__Core.ensureSignalBucket(id);\n return {\n id: id,\n value: {\n contents: v\n },\n version: {\n contents: 0\n }\n };\n}\n\nfunction get(s) {\n var obsId = Xote__Core.currentObserverId.contents;\n if (obsId !== undefined) {\n Xote__Core.addDep(obsId, s.id);\n }\n return s.value.contents;\n}\n\nfunction peek(s) {\n return s.value.contents;\n}\n\nfunction set(s, v) {\n s.value.contents = v;\n s.version.contents = s.version.contents + 1 | 0;\n Xote__Core.notify(s.id);\n}\n\nfunction update(s, f) {\n set(s, f(s.value.contents));\n}\n\nvar IntSet;\n\nvar IntMap;\n\nvar Observer;\n\nvar Id;\n\nvar Core;\n\nexport {\n IntSet ,\n IntMap ,\n Observer ,\n Id ,\n Core ,\n make ,\n get ,\n peek ,\n set ,\n update ,\n}\n/* No side effect */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as Xote__Id from \"./Xote__Id.res.mjs\";\nimport * as Xote__Core from \"./Xote__Core.res.mjs\";\nimport * as Belt_MapInt from \"rescript/lib/es6/belt_MapInt.js\";\nimport * as Xote__Signal from \"./Xote__Signal.res.mjs\";\n\nfunction make(calc) {\n var s = Xote__Signal.make();\n var initialized = {\n contents: false\n };\n var id = Xote__Id.make();\n var recompute = function () {\n var next = calc();\n if (initialized.contents === false) {\n initialized.contents = true;\n return Xote__Signal.set(s, next);\n } else {\n return Xote__Signal.set(s, next);\n }\n };\n var o = {\n id: id,\n kind: {\n NAME: \"Computed\",\n VAL: s.id\n },\n run: recompute,\n deps: undefined\n };\n Xote__Core.observers.contents = Belt_MapInt.set(Xote__Core.observers.contents, id, o);\n Xote__Core.clearDeps(o);\n Xote__Core.currentObserverId.contents = id;\n o.run();\n Xote__Core.currentObserverId.contents = undefined;\n return s;\n}\n\nvar IntSet;\n\nvar IntMap;\n\nvar Signal;\n\nvar Core;\n\nvar Observer;\n\nvar Id;\n\nexport {\n IntSet ,\n IntMap ,\n Signal ,\n Core ,\n Observer ,\n Id ,\n make ,\n}\n/* No side effect */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as Xote__Effect from \"./Xote__Effect.res.mjs\";\nimport * as Xote__Signal from \"./Xote__Signal.res.mjs\";\nimport * as Xote__Computed from \"./Xote__Computed.res.mjs\";\n\nfunction text(content) {\n return {\n TAG: \"Text\",\n _0: content\n };\n}\n\nfunction textSignal(signal) {\n return {\n TAG: \"SignalText\",\n _0: signal\n };\n}\n\nfunction fragment(children) {\n return {\n TAG: \"Fragment\",\n _0: children\n };\n}\n\nfunction signalFragment(signal) {\n return {\n TAG: \"SignalFragment\",\n _0: signal\n };\n}\n\nfunction list(signal, renderItem) {\n var nodesSignal = Xote__Computed.make(function () {\n return Xote__Signal.get(signal).map(renderItem);\n });\n return {\n TAG: \"SignalFragment\",\n _0: nodesSignal\n };\n}\n\nfunction element(tag, attrsOpt, eventsOpt, childrenOpt, param) {\n var attrs = attrsOpt !== undefined ? attrsOpt : [].map(function (x) {\n return x;\n });\n var events = eventsOpt !== undefined ? eventsOpt : [].map(function (x) {\n return x;\n });\n var children = childrenOpt !== undefined ? childrenOpt : [].map(function (x) {\n return x;\n });\n return {\n TAG: \"Element\",\n tag: tag,\n attrs: attrs,\n events: events,\n children: children\n };\n}\n\nfunction div(attrs, events, children, param) {\n return element(\"div\", attrs, events, children, undefined);\n}\n\nfunction span(attrs, events, children, param) {\n return element(\"span\", attrs, events, children, undefined);\n}\n\nfunction button(attrs, events, children, param) {\n return element(\"button\", attrs, events, children, undefined);\n}\n\nfunction input(attrs, events, param) {\n return element(\"input\", attrs, events, undefined, undefined);\n}\n\nfunction h1(attrs, events, children, param) {\n return element(\"h1\", attrs, events, children, undefined);\n}\n\nfunction h2(attrs, events, children, param) {\n return element(\"h2\", attrs, events, children, undefined);\n}\n\nfunction h3(attrs, events, children, param) {\n return element(\"h3\", attrs, events, children, undefined);\n}\n\nfunction p(attrs, events, children, param) {\n return element(\"p\", attrs, events, children, undefined);\n}\n\nfunction ul(attrs, events, children, param) {\n return element(\"ul\", attrs, events, children, undefined);\n}\n\nfunction li(attrs, events, children, param) {\n return element(\"li\", attrs, events, children, undefined);\n}\n\nfunction render(node) {\n switch (node.TAG) {\n case \"Element\" :\n var el = document.createElement(node.tag);\n node.attrs.forEach(function (param) {\n el.setAttribute(param[0], param[1]);\n });\n node.events.forEach(function (param) {\n el.addEventListener(param[0], param[1]);\n });\n node.children.forEach(function (child) {\n var childEl = render(child);\n el.appendChild(childEl);\n });\n return el;\n case \"Text\" :\n return document.createTextNode(node._0);\n case \"SignalText\" :\n var signal = node._0;\n var el$1 = document.createTextNode(Xote__Signal.peek(signal));\n Xote__Effect.run(function () {\n var content = Xote__Signal.get(signal);\n el$1.textContent = content;\n });\n return el$1;\n case \"Fragment\" :\n var fragment = document.createDocumentFragment();\n node._0.forEach(function (child) {\n var childEl = render(child);\n fragment.appendChild(childEl);\n });\n return fragment;\n case \"SignalFragment\" :\n var signal$1 = node._0;\n var container = document.createElement(\"div\");\n container.setAttribute(\"data-signal-fragment\", \"true\");\n container.setAttribute(\"style\", \"display: contents\");\n Xote__Effect.run(function () {\n var children = Xote__Signal.get(signal$1);\n ((container.innerHTML = ''));\n children.forEach(function (child) {\n var childEl = render(child);\n container.appendChild(childEl);\n });\n });\n return container;\n \n }\n}\n\nfunction mount(node, container) {\n var el = render(node);\n container.appendChild(el);\n}\n\nfunction mountById(node, containerId) {\n var container = document.getElementById(containerId);\n if (container == null) {\n console.error(\"Container element not found: \" + containerId);\n return ;\n } else {\n return mount(node, container);\n }\n}\n\nvar Signal;\n\nvar Effect;\n\nvar Core;\n\nvar Computed;\n\nexport {\n Signal ,\n Effect ,\n Core ,\n Computed ,\n text ,\n textSignal ,\n fragment ,\n signalFragment ,\n list ,\n element ,\n div ,\n span ,\n button ,\n input ,\n h1 ,\n h2 ,\n h3 ,\n p ,\n ul ,\n li ,\n render ,\n mount ,\n mountById ,\n}\n/* No side effect */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as Xote__Core from \"./Xote__Core.res.mjs\";\nimport * as Xote__Effect from \"./Xote__Effect.res.mjs\";\nimport * as Xote__Signal from \"./Xote__Signal.res.mjs\";\nimport * as Xote__Computed from \"./Xote__Computed.res.mjs\";\nimport * as Xote__Component from \"./Xote__Component.res.mjs\";\n\nvar Component = Xote__Component;\n\nvar Computed = Xote__Computed;\n\nvar Core = Xote__Core;\n\nvar Effect = Xote__Effect;\n\nvar Signal = Xote__Signal;\n\nexport {\n Component ,\n Computed ,\n Core ,\n Effect ,\n Signal ,\n}\n/* No side effect */\n"],"names":["for_in","o","foo","x","equal","a","b","a_type","b_type","tag_a","tag_b","len_a","len_b","_i","i","result","do_key_a","key","do_key_b","sub","offset","len","j","app","_f","_args","args","f","init_arity","arity","d","Caml_array.sub","_1","a0","param","param$1","param$2","param$3","param$4","param$5","__1","some","valFromOption","depth","treeHeight","create","l","r","hl","hr","singleton","updateValue","newValue","bal","ll","lr","rl","rr","removeMinAuxWithRef","kr","vr","ln","get","_n","n","v","Caml_option.some","set","t","newK","newD","Belt_internalAVLtree.singleton","k","Belt_internalAVLtree.updateValue","Belt_internalAVLtree.bal","removeAux","r$1","Belt_internalAVLtree.removeMinAuxWithRef","remove","Belt_internalMapInt.get","getExn","Caml_option.valFromOption","heightGe","forEachU","forEach","Curry.__1","has","_t","add","Belt_internalAVLset.singleton","Belt_internalAVLset.bal","v$1","Belt_internalAVLset.removeMinAuxWithRef","Belt_internalSetInt.has","Belt_internalAVLset.forEach","observers","signalObservers","signalPeeks","currentObserverId","pending","batching","ensureSignalBucket","sid","match","Belt_MapInt.get","Belt_MapInt.set","addDep","obsId","obs","Belt_Option.getExn","Caml_obj.equal","Belt_SetInt.has","Belt_SetInt.add","sset","clearDeps","Belt_SetInt.forEach","Belt_SetInt.remove","schedule","toRun","id","notify","untrack","prev","batch","IntSet","IntMap","Observer","Id","next","make","run","fn","Xote__Id.make","Xote__Core.observers","Xote__Core.clearDeps","Xote__Core.currentObserverId","dispose","Belt_MapInt.remove","Signal","Core","Xote__Core.ensureSignalBucket","s","Xote__Core.addDep","peek","Xote__Core.notify","update","calc","Xote__Signal.make","initialized","recompute","Xote__Signal.set","text","content","textSignal","signal","fragment","children","signalFragment","list","renderItem","nodesSignal","Xote__Computed.make","Xote__Signal.get","element","tag","attrsOpt","eventsOpt","childrenOpt","attrs","events","div","span","button","input","h1","h2","h3","p","ul","li","render","node","el","child","childEl","el$1","Xote__Signal.peek","Xote__Effect.run","signal$1","container","mount","mountById","containerId","Effect","Computed","Component","Xote__Component","Xote__Computed","Xote__Core","Xote__Effect","Xote__Signal"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10]}
|